@charset "utf-8";
:root {
	--theme-color: #0A3D80;/*テーマカラー　今回は設定なし*/
	--font-color: #000;/*フォント色*/
	--footer-bg-color: #f1f1f1;/*フッター背景色*/
	--footer-border-color: #0A3D80;/*フッターボーダー色*/
	--bg-color: #fff;/*背景色*/
	--main-font: 'Noto Sans JP', sans-serif;/*メインフォント ress.cssでデって済みですが、予備的に設定*/
	--heading-font-jp: "Zen Kaku Gothic New", sans-serif;/*見出しフォント*/
	--heading-font-en: 'Poppins', sans-serif;
	--heading-color: #0A3D80;
	--header-color: rgba(255,255,255,1);/*ヘッダー背景色*/
	--header-active-color: rgba(255,255,255,1);/*スクロールした後のヘッダー背景色*/
	--header-height: 80px;/*アンカーリンクの調整*/
	--boder-color: #CFCFCF;
}

body {
	color: var(--font-color);
	background-color: var(--bg-color);
}

/*リキャプチャ設定*/
.grecaptcha-badge { visibility: hidden; }


/*hero section*/
.hero {
	position: relative;
	width: 100%;
	/* height: 100vh; */
	height: 177.8666vw;
	z-index: 1;
}

.slider_wrap {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: -1;
}

.eyecatch {
	position: absolute;
	top: 0;
	left: 21.87vw;
	bottom: 0;
	right: auto;
	margin: auto;
	width: 17.9vw;
	min-width: 67px;
	z-index: 10;
}


/*メイン画像スライドショー（SP）*/
.slide_image1 {
	width: 100%;
	/* height: 100vh; */
	height: 177.8666vw;
	background: url(../img/top_slide1_sp.webp) no-repeat center/cover;
}


h2 {
	color: var(--heading-color);
}

.heading_h2_en h2 {
	font-family: var(--heading-font-en);
	letter-spacing: 0.3rem;
}

.heading_h2_jp h2 {
	font-family: var(--heading-font-jp);
}


.anchor {
	/* margin-top: calc(var(--header-height) * (-1)); */
	/* padding-top: var(--header-height); */
	padding-top: 20px;
}

.row_reverse {
	flex-direction: row-reverse;
}

/*header*/
.header1 {
	transition: .3s;
}

.header1.active {
	background: var(--header-active-color);
}

main {
	position: relative;
	z-index: 1;
	background: var(--bg-color);
	/* padding-bottom: 50px; */
}

/*season*/
.section {
	padding-top: 100px;
}

.inner {
	max-width: 1435px;
	margin: 0 auto;
	padding: 0 17.5px;
}

.heading_h2_wrap {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 3.2rem;
	/* margin-bottom: 120px; */
	margin-bottom: 60px;
	font-weight: 300;
}

.heading_h2 {
	text-align: center;
	margin-bottom: 20px;
}

.heading_h2 h2 {
	font-size: 1.2rem;
	font-weight: 900;
	padding-bottom: 13px;
}

.heading_h2 span {
	font-weight: 700;
	font-family: var(--heading-font-en);
	font-size: 2rem;
	color: #434343;
	position: relative;
}

.heading_h2 span:before {
	content: '';
	display: block;
	width: 24px;
	height: 1px;
	background: #000;
	position: absolute;
	top: -6px;
	left: 50%;
	transform: translateX(-50%);
}


/*お知らせ*/
.news_section {
	padding-top: 15px;
	padding-bottom: 80px;
}

.news_section .inner {
	display: grid;
}

.news_section .heading_h2 {
	display: flex;
	align-items: center;
	margin-bottom: 0;
	column-gap: 12px;
}

.news_section .heading_h2 h2 {
	padding-bottom: 0;
}

.news_section .heading_h2 span {
	position: relative;
}

.news_section .heading_h2 span:before {
	content: '';
	display: block;
	width: 1px;
	height: 14px;
	background: #000;
	position: absolute;
	right: -6px;
	left: auto;
	top: 50%;
	transform: translateY(-50%);
}

.news_list ul {
	margin-bottom: 25px;
}

.news_list li {
	border-bottom: 1px solid var(--boder-color);
	padding: 15px 0;
	display: flex;
	column-gap: 20px;
}

.news_list li time {
	display: inline-block;
	color: var(--theme-color);
	font-weight: 700;
}

.news_list li a {
	color: #1a1a1a;
	text-decoration: none;
}

.news_list li a:hover {
	text-decoration: underline;
}


.link_btn {
	display: grid;
	width: 120px;
	height: 35px;
	place-items: center;
	text-decoration: none;
	color: #fff;
	background: var(--heading-color);
	transition: .3s;
	margin: 0 auto;
	border: 1px solid var(--heading-color);
	border-radius: 4px;
	font-family: var(--heading-font-jp);
	font-weight: 900;
}

.link_btn:hover {
	background: #fff;
	color: var(--heading-color);
}


.top_bg01_wrap {
	max-width: 125px;
	height: 57px;
	margin: 0 auto;
}


/*About*/
.about_section {
	padding-top: 80px;
}

.about_section .heading_h2 {
	margin-bottom: 35px;
}

.about_inner {
  display: flex;
	flex-direction: column;
	gap: 30px;
}

.about_inner_img {
	width: 85%;
	overflow: hidden;
	border-radius: 0 8px 8px 0;
}

.about_inner .txt {
	padding: 0 17.5px;
}

.about_inner .txt h3 {
	font-family: "Shippori Mincho B1", serif;;
	font-size: 2rem;
	margin-bottom: 30px;
	text-align: center;
	font-weight: 400;
}

.about_inner_p_wrap {
	text-align: center;
	line-height: 1.85;
}

.about_inner_p_wrap p:not(:first-child) {
	margin-top: 20px;
}

.about_section .link_btn {
	margin-top: 40px;
}

.business_top_p_wrap {
	text-align: center;
	line-height: 1.85;
}

.gallery {
	margin-top: 40px;
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 60px;
}

.gallery figure {
	text-align: center;
}

.name_wrap {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 15px;
}

.name_area h3 {
	font-size: 1.5rem;
	font-weight: 700;
}

.name_area h3 + span {
	font-size: 1.2rem;
	color: var(--theme-color);
	font-family: "M PLUS 1p", sans-serif;
}

.business_section .link_btn {
	margin-top: 60px;
}

.item_img {
	margin-bottom: 15px;
}

.works_section {
	padding-bottom: 80px;
}

.works_top_p_wrap {
	text-align: center;
}

.slider2 {
	overflow: hidden;
	margin-top: 40px;
}

.counter {
	font-size: 1.8rem;
	font-family: var(--heading-font-en);
	letter-spacing: 0.3rem;
	color: var(--heading-color);
	font-weight: 700;
}

.works_slider_border {
	margin-left: 9px;
	padding-left: 9px;
	border-left: 2px solid #0A3D80;
}

.swiper2 {
	position: relative;
}

.slider2 .name_area h3 + span {
	color: #0A3D80;
}

.slider2 .menu_description {
	padding-left: 18px;
}

.slider2 .swiper-wrapper {
	padding-bottom: 50px;
}

.swiper-pagination {
	bottom: 0 !important;
}

.slider2 .prev_next_button {
	display: none;
}

.swiper-pagination-bullet {
	background: #CFCFCF !important;
	opacity: 1 !important;
}

.swiper-pagination-bullet-active {
	background: #55BDF1 !important;
	width: 10px !important;
	height: 10px !important;
}

.works_section .link_btn {
	margin-top: 60px;
}

.top_bg02_wrap {
	max-width: 60px;
	height: 71px;
	margin: 0 auto;
}


.company_section {
	padding-top: 80px;
	padding-bottom: 100px;
}

.company_section .heading_h2 {
	margin-bottom: 35px;
}

/*カスタムフィールドテーブル*/
.acf_table dl {
	display: grid;
	grid-template-columns: 130px auto;
}

.acf_table dl:first-child {
	border-top: 1px solid #cfcfcf;
}

.acf_table dl {
	border-bottom: 1px solid #cfcfcf;
}

.acf_table dl dt {
	padding: 18px 14px;
	color: #0A3D80;
	font-weight: 700;
}

.acf_table dl dd {
	padding: 18px 0;
}


/*バナー*/
.banner_area {
	position: relative;
	background-image: url(../img/banner1.webp);
	background-color: #0A3D80CC;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	display: block !important;
	overflow: hidden;
}

.banner_area::after {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background: #0A3D80;
	opacity: 0.8;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
}
	
.banner_link {
	padding: clamp(40px, 5.20vw, 100px) 17.5px 40px;
	position: relative;
	z-index: 3;
	text-align: center;
	background-image: url(../img/banner_top_sp.svg);
	background-repeat: no-repeat;
	background-position: left 0 top 0;
	background-size: 100%;
	display: block !important;
	overflow: hidden;
}

.banner_link .heading_h2 {
	margin-bottom: 40px;
}

.banner_link .heading_h2_jp h2 {
	color: #fff;
}

.banner_link .heading_h2 span {
	color: #fff;
}

.banner_link .heading_h2 span:before {
	background: #fff;
}

.banner_link .link_btn {
	font-size: 1.5rem;
	width: 60px;
	height: 116px;
	color: #0A3D80;
	background: #fff;
	border: 1px solid #fff;
	transition: .3s;
}

.banner_link .link_btn .tilt-text {
  display: inline-block;   /* transform を効かせるために必須 */
  transform: rotate(-15deg);
}

.banner_link .link_btn:hover {
	color: #fff;
	background: #0A3D80;
	border: 1px solid #fff;
}

.access_section {
	padding-top: 100px;
	padding-bottom: 100px;
}

.access_section .heading_h2 {
	margin-bottom: 40px;
}

.access_contents_wrap {
	display: grid;
	row-gap: 20px;
	grid-template-columns: 1fr;
}

.map {
	order: 1;
	position: relative;
	width: 100%;
	padding-top: 78%;
}

.map iframe {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}

.access_txt {
	order: 2;
	line-height: 2;
}

.access .heading_h2 {
	margin-bottom: 30px;
}

.access address {
	margin-bottom: 20px;
}


/*contact*/
.top_contact_section {
	padding-bottom: 120px;
}

.top_contact_inner {
	background-color: #55BDF1;
	height: 350px;
}

.top_contact_inner_inner {
	background-color: #fff;
	padding: 37px 30px 56px;
	position: relative;
	max-width: 375px;
	margin: 0 auto;
	text-align: center;
	height: 350px;
}

.top_contact_section .heading_h2 {
	margin-bottom: 40px;
}

.contact_deco {
	position: absolute;
	width: auto;
	height: 100%;
	top: 0;
}

.contact_deco img {
	height: 100%;
}

.cd_left {
	left: 0;
}

.cd_right {
	right: 0;
}

.top_contact_txt {
	line-height: 2;
}

.top_contact_section .link_btn {
	margin-top: 40px;
	width: 140px;
}

.top_contact_tel {
	margin-top: 10px;
}

.top_contact_tel a {
	color: inherit;
	text-decoration: none;
}

/*フッター*/
footer {
	background: var(--footer-bg-color);
	position: relative;
	z-index: 5;
	padding: 40px 0 20px;
}

.footer_right address p {
	line-height: 2;
}

.footer_right address p:not(:first-child) {
	margin-top: 10px;
}

.footer_kenko-sns {
	margin-top: 40px;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	column-gap: 30px;
}

.footer_kenko_logo {
	max-width: 125px;
}

.footer_bottom_ul {
	display: flex;
	gap: 10px;
	margin-left: auto;
}

.footer_bottom_ul li a {
	text-decoration: none;
	color: var(--font-color);
	font-size: 1.3rem;
	transition: .3s;
}

.footer_bottom_ul li a:hover {
	opacity: .8;
}

.copy {
	text-align: center;
	color: #5E5E5E;
}

.sp_img {
	display: block;
}

.pc_img {
	display: none;
}

/*下層・お知らせ一覧*/
.subpage_h2 {
	text-align: center;
	color: #434343;
	font-size: 2.2rem;
	margin-bottom: 60px;
	font-weight: 700;
}

.subpage_section section:not(:first-of-type) {
	margin-top: 100px;
}

.subpage_h3 {
	display: flex;
	align-items: center;
	font-size: 1.8rem;
	font-weight: 500;
	color: #0A3D80;
	padding-left: 16px;
	position: relative;
}

.subpage_h3::before {
	content: "";
	width: 41px;
	height: 41px;
	background: #CEEFFF;
	border-radius: 50%;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	z-index: -1;
}

.subpage_h3:after {
	content: "";
	height: 2px;
	flex-grow: 1;
	background-color: #CFCFCF;
	margin-left: 1rem;
}

.business_shuyou .business_contents {
	margin-top: 50px;
}

.business_shuyou_card_wrap {
	max-width: 220px;
	margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.business_shuyou_card {
  height: 0;
  padding-bottom: 100%;
  position: relative;
	color: #fff;
}

.business_shuyou_card_wrap .business_shuyou_card:nth-of-type(1),
.business_shuyou_card_wrap .business_shuyou_card:nth-child(4){
	background-color: #0A3D80;
}

.business_shuyou_card_wrap .business_shuyou_card:nth-of-type(2),
.business_shuyou_card_wrap .business_shuyou_card:nth-child(3){
	background-color: #0075B0;
}

.business_shuyou_card_inner {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	row-gap: 5px;
	text-align: center;
}

.business_shuyou_card.water::after {
	content: "※1";
	position: absolute;
	right: 1px;
	bottom: 1px;
}

.business_shuyou_card.manhole::after {
	content: "※2";
	position: absolute;
	right: 1px;
	bottom: 1px;
}

.water .business_shuyou_card_icon {
	max-width: 32%;
}

.manhole .business_shuyou_card_icon {
	max-width: 51%;
}

.tank .business_shuyou_card_icon {
	max-width: 35%;
}

.gas .business_shuyou_card_icon {
	max-width: 42%;
}

.business_shuyou_card_txt {
	font-weight: 500;
}

.business_shuyou_note {
	margin-top: 5px;
	display: grid;
	row-gap: 5px;
	justify-content: center;
}

.business_shuyou .link_btn {
	margin-top: 50px;
}

.business_eigyou .business_contents {
	margin-top: 20px;
}

.business_eigyou_ul {
	background-color: #fff;
	border-radius: 8px;
	margin: 0 16px;
	padding: 30px 32px;
	box-shadow: 0 2px 10px 3px rgba(104, 104, 104, 0.2);
	display: grid;
	row-gap: 10px;
}

.business_eigyou_ul li {
	font-size: 1.4rem;
	letter-spacing: .1em;
	padding-left: 8px;
	position: relative;
}

.business_eigyou_ul li::after {
	content: "";
	position: absolute;
	left: 0;
	top: 10px;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background-color: #55BDF1;
}

.business_ippan .business_contents {
	margin-top: 20px;
}

.business_ippan_top_txt {
	line-height: 1.786;
	font-size: 1.4rem;
}

.business_ippan_img_wrap {
	margin-top: 30px;
	display: grid;
	gap: 10px;
	grid-template-columns: 5fr 4fr;  /* 下の段を 2:1 の比率に */
  grid-template-rows: 150px 150px;
}

.business_ippan img {
	border-radius: 8px;
	width: 100%;
  height: 100%;
  object-fit: cover;
}

.business_ippan img:first-child {
  grid-column: 1 / -1;/* 上の横長画像だけ横に2列分使う */
}

.business_eizen .business_contents {
	margin-top: 20px;
}

.business_eizen_top_txt {
	line-height: 1.786;
	font-size: 1.4rem;
}

.business_eizen_top_txt:not(:first-of-type) {
	margin-top: 14px;
}

.business-main_top_txt p {
	font-size: 1.4rem;
	letter-spacing: .03em;
}

.business-main_top_txt p:not(:first-of-type) {
	margin-top: 10px;
}

.business-main_contents {
	display: grid;
	row-gap: 15px;
}

.business-main_contents:first-of-type {
	margin-top: 100px;
}

.business-main_contents:not(:first-of-type) {
	margin-top: 100px;
}

.business-main_img {
	border-radius: 8px;
}

.shitei-kyuusui .business-main_icon {
	width: 25px;
	height: 25px;
}

.shitei-gesui .business-main_icon {
	width: 40px;
	height: 25px;
}

.joukasou .business-main_icon {
	width: 34px;
	height: 30px;
}

.kouatsu .business-main_icon {
	width: 38px;
	height: 38px;
}

.business-main_h3 {
	font-size: 1.6rem;
	font-weight: 500;
	margin-top: 10px;
}

.business-main_contents_p {
	margin-top: 20px;
	font-size: 1.4rem;
}

.business-main_contents_p p:not(:first-of-type) {
	margin-top: 30px;
}

.about_message .about_contents {
	margin-top: 20px;
	display: grid;
	row-gap: 30px;
}

.about_message_img_wrap {
	max-width: 185px;
	margin: 0 auto;
}

.about_message_img_wrap img {
	border-radius: 8px;
}

.message_img_note {
	margin-top: 5px;
	font-size: 1.2rem;
	text-align: right;
	line-height: 1.4;
}

.about_message_txt {
	padding: 0 30px;
	font-size: 1.4rem;
}

.about_message_txt p:not(:first-of-type) {
	margin-top: 5px;
}

.about_message_txt span {
	font-size: 1.6rem;
	font-weight: 700;
}

.about_overview .about_contents {
	margin-top: 20px;
}

.about_overview .about_contents:not(:first-of-type) {
	margin-top: 40px;
}

.about_h4 {
	text-align: center;
	font-size: 1.6rem;
	font-weight: 500;
}

.about_dl_table {
	margin-top: 10px;
	border-top: 1px solid #CFCFCF;
}

.about_dl_table > dl {
	border-bottom: 1px solid #CFCFCF;
	display: grid;
	grid-template-columns: 130px auto;
	column-gap: 20px;
	padding: 14px 0;
	align-items: baseline;
}

.about_dl_table dl.dd_wide {
	grid-template-columns: 120px auto;
	column-gap: 10px;
}

.about_dl_table dl.dd_wide dd {
	line-height: 2;
}

.about_dl_table dl > dt {
	font-size: 1.4rem;
	font-weight: 500;
	padding-left: 17px;
	position: relative;
}

.about_dl_table dl > dt::before {
	content: '';
	position: absolute;
	width: 12px;
	height: 12px;
	background-color: #0A3D80;
	border-radius: 2px;
	top: 6px;
	left: 0;
}

.about_dl_table dl dd {
	font-size: 1.4rem;
}

.about_dl_table dl dd.dd_adjust dl {
	display: flex;
	column-gap: 5px;
	justify-content: space-between;
	align-items: flex-start;
}

.about_dl_table dl dd dl dt {
	font-weight: 400;
	padding-left: 0;
}

.about_dl_table dl dd dl dt::before {
	display: none;
}

.about_history .about_contents {
	margin-top: 20px;
}

.about_history .about_dl_table dl > dt {
	padding-left: 0;
}

.about_history .about_dl_table dl > dt::before {
	display: none;
}

.about_access .about_contents {
	margin-top: 20px;
}

.about_access .access_contents_wrap {
	row-gap: 10px;
}

.about_access .access_txt {
	padding: 0 16px;
	font-size: 1.4rem;
	line-height: 1.5;
}

.about_access .access_txt dl:not(:first-of-type) {
	margin-top: 20px;
}

.about_access .access_txt dl dt {
	font-weight: 500;
	margin-bottom: 10px;
}

.about_access .map {
	padding-top: 56%;
}

.works_example {
	display: grid;
	row-gap: 100px;
}

.works_item {
  display: grid;
	row-gap: 10px;
}

.works_img {
	aspect-ratio: 2/1;
	padding-left: 17.5px;
}

.works_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px 0 0 10px;
}

.works_item:nth-of-type(even) .works_img {
	padding-left: 0;
	padding-right: 17.5px;
}

.works_item:nth-of-type(even) .works_img img {
  border-radius: 0 10px 10px 0;
}

.works_txt {
  background: #fff;
  padding: 0 17.5px;
	text-align: center;
}

.works_h3 {
	font-size: 1.6rem;
	font-weight: 700;
	padding-top: 28px;
	position: relative;
}

.works_h3::before {
	content: '';
	background-image: url(../img/sub_works_deco.svg);
	background-repeat: no-repeat;
	width: 25px;
	height: 26px;
	display: inline-block;
	background-size: contain;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}

.works_category {
	font-size: 1.4rem;
	margin-top: 5px;
}

.works_desc_wrap {
	font-size: 1.4rem;
	margin-top: 20px;
}

.works_result_h3 {
	font-size: 1.6rem;
	font-weight: 500;
	color: #0A3D80;
	margin-bottom: 50px;
	text-align: center;
}

.works_result_ul {
  display: grid;
  row-gap: 20px;
}

.works_result_ul li {
	box-shadow: 0 4px 4px 0px rgba(0, 0, 0, 0.25),0 2px 10px 3px rgba(104, 104, 104, 0.2);
	border-radius: 5px;
}

.works_result_ul_head {
  font-size: 1.5rem;
	font-weight: 700;
  position: relative;
  cursor: pointer;
  padding: 15px 16px;
	text-align: center;
  transition: .8s;
}

.plus_icon {
  width: 15px;
  height: 15px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 16px;
}

.plus_icon::before {
  content: "";
  width: 15px;
  height: 2px;
  background: #000;
  position: absolute;
  margin: auto;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}

.plus_icon::after {
  content: "";
  width: 2px;
  height: 15px;
  background: #000;
  position: absolute;
  margin: auto;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  transition: .3s;
}

.works_result_ul_head.active .plus_icon::after {
  transform: scale(0);
}

.works_result_ul_body {
  display: none;
  padding: 0 16px 20px;
}

.works_result_category {
	font-size: 1.4rem;
	font-weight: 500;
	color: #0A3D80;
	padding-bottom: 5px;
	border-bottom: 1px solid #0A3D80;
	display: grid;
	grid-template-columns: 1fr 1fr;
	text-align: center;
	column-gap: 32px;
}

.works_result_category div:first-of-type {
	display: none;
}

.works_result_desc {
	padding: 10px 0;
}

.works_result_area {
	font-size: 1.3rem;
	letter-spacing: .1em;
	display: flex;
	align-items: center;
	font-weight: 500;
	color: #0A3D80;
	padding: 0 16px;
}

.works_result_area:before,
.works_result_area:after {
	content: "";
	height: 1px;
	flex-grow: 1;
	background-color: #CFCFCF;
}

.works_result_area:before {
	margin-right: 1rem;
}

.works_result_area:after {
	margin-left: 1rem;
}

.works_result_place {
	margin-top: 15px;
	font-size: 1.3rem;
	display: grid;
	grid-template-columns: 1fr 1fr;
	text-align: center;
	column-gap: 32px;
	align-items: center;
}

.works_result_place div:first-of-type {
	display: none;
}

.news_list.subpage_news_list {
	max-width: 1035px;
	width: 100%;
	margin: 0 auto;
}

.news_inner {
	max-width: 1035px;
	margin: 0 auto;
	padding: 0 17.5px;
}

.subpage_news_h3 {
	margin-bottom: 25px;
	color: #0A3D80;
	font-weight: 500;
	font-size: 1.8rem;
	text-align: center;
}

.subpage_news_list li {
  border-bottom: none;
	flex-direction: column;
  row-gap: 5px;
}

.subpage_news_list li time {
	font-size: 1.2rem;
	color: #000;
	font-weight: 400;
}

.subpage_news_list li a {
	font-size: 1.4rem;
	color: #0A3D80;
	font-weight: 500;
}

.time_cat {
	margin-bottom: 20px;
}

.news_article_h2 {
	font-size: 1.8rem;
	font-weight: 500;
	color: #0A3D80;
}

.article_main {
	font-size: 1.4rem;
}

.article_main > *:not(:first-child) {
	margin-top: 15px;
}

.article_main dt {
	background: #f2f2f2;
	margin: 0 0 5px 0;
	line-height: 200%;
	font-weight: bold;
	font-size: 1.2rem;
	padding: 0 10px;
}

.article_main dd {
	margin: 0 0 10px 0;
	line-height: 200%;
	padding: 0 10px;
}

.privacy_contents > ol {
  list-style: none; /* デフォルト数字を消す */
  counter-reset: num;
	display: grid;
	row-gap: 50px;
}

.privacy_contents > ol > li {
  counter-increment: num;
  position: relative;
}

.privacy_contents > ol > li::before {
  content: counter(num) ".";
  position: absolute;
  left: 21px; /* 好きな位置に調整 */
  font-size: 1.8rem;
	font-weight: 500;
	color: #0A3D80;
}

.privacy_contents > ol > li .subpage_h3 {
	padding-left: 43px;
	align-items: flex-end;
}

.privacy_contents > ol > li .subpage_h3::before {
	top: -7px;
	transform: translateY(0);
}

.privacy_contents > ol > li .subpage_h3::after {
	margin-bottom: 14px;
}

.privacy_contents_body {
	margin-top: 20px;
	font-size: 1.4rem;
}

.privacy_contents_body > *:not(:first-child) {
	margin-top: 15px;
}

.privacy_contents_body ul {
	list-style: disc;
	padding-left: 18px;
	display: grid;
	row-gap: 3px;
}

.col_3_pc {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 60px;
	/* margin-bottom: 220px; */
	margin-bottom: 100px;
}

.col_3_pc .txt {
	text-align: center;
}

.introduction .number {
	color: var(--theme-color);
	font-size: 1.8rem;
	font-family: var(--heading-font-jp);
	font-weight: 900;
}

.introduction h3 {
	font-size: 2.2rem;
	font-family: var(--heading-font-jp);
	margin: 10px 0 0;
	line-height: 1.3;
}

.introduction h3 + span {
	color: var(--theme-color);
	font-size: 1.4rem;
}

.introduction figure {
	text-align: center;
}

.col_3_pc .txt p {
	margin-top: 20px;
	text-align: left;
	font-size: 1.4rem;
}

.col_3_pc li {
	display: flex;
	flex-direction: column-reverse;
	row-gap: 20px;
}

.pc_br {
	display: none;
}

.sp_br {
	display: block;
}

@media screen and (min-width: 768px) {

	.section {
		padding-top: 200px;
	}

	.news_section {
    padding-top: 100px;
    padding-bottom: 150px;
	}

	.heading_h2 {
		margin-bottom: 65px;
	}

	.heading_h2 span {
		font-size: 4rem;
	}

	.news_section .heading_h2 {
    column-gap: 20px;
	}

	.news_section .heading_h2 span:before {
    height: 24px;
    right: -10px;
	}

	.heading_h2 h2 {
    font-size: 1.5rem;
	}

	/*メインビジュアル*/
	.hero {
		height: 52.83vw;
	}

	.slide_image {
		height: 52.83vw;
	}

	/*メイン画像スライドショー*/
	.slide_image1 {
		width: 100%;
		background: url(../img/top_slide1.webp) no-repeat center/cover;
	}

	.slider_wrap {
		height: 52.83vw;
		top: 0;
	}

	.eyecatch {
		width: 8.07vw;
		left: 9.74vw;
	}

	.pc_img {
		display: block;
	}

	.sp_img {
		display: none;
	}

	.news_section .inner {
		display: flex;
		justify-content: space-between;
		column-gap: 30px;
		margin-bottom: 0;
		align-items: flex-start;
	}

	.news_section .inner .heading_h2 {
		width: 30%;
	}

	.news_list {
		max-width: 950px;
		width: calc(70% - 30px);
	}

	.news_list ul {
		margin-bottom: 50px;
	}

	.news_list li {
		padding: 50px 7%;
	}

	.link_btn {
    width: 200px;
    height: 60px;
	}

	.top_bg01_wrap {
    max-width: 299px;
    height: 136px;
	}

	/*About*/
	.about_section {
    padding-top: 150px;
	}

	.about_section .heading_h2 {
    margin-bottom: 110px;
	}

	/*季節限定メニュー*/
	.gallery {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		column-gap: 50px;
		margin-top: 65px;
		margin-bottom: 100px;
	}

	.item_img {
    margin-bottom: 20px;
	}

	.name_wrap {
    margin-bottom: 20px;
	}

	.name_area h3 {
    font-size: 2.4rem;
	}

	.name_area h3 + span {
    font-size: 1.5rem;
	}

	.slider2 {
    margin-top: 60px;
	}

	.counter {
    font-size: 2rem;
	}

	.works_slider_border {
    margin-left: 13px;
    padding-left: 13px;
	}

	.slider2 .menu_description {
    padding-left: 26px;
	}

	.slider2 .swiper-pagination {
		display: none;
	}

	.slider2 .prev_next_button {
		display: flex;
		width: 150px;
		column-gap: 50px;
		justify-content: center;
		margin: 0 auto;
	}

	/* 前へ次への矢印カスタマイズ */
	.swiper-button-prev,
	.swiper-button-next {
		height: 50px !important;
		width: 50px !important;
		position: relative !;
	}

	/* 前へ次への矢印カスタマイズ */
	.swiper-button-prev::before,
	.swiper-button-next::before {
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		content: "";
	}

	.swiper-button-prev:after,
	.swiper-button-next:after {
		background-repeat: no-repeat;
		background-size: contain;
		content: "" !important;
		height: 50px;
		margin: auto;
		width: 50px;
	}

	.swiper-button-prev:after {
		background: url(../img/slide_left_arrow.svg);
	}

	.swiper-button-next:after {
		background: url(../img/slide_right_arrow.svg);
	}

	.swiper-button-prev:hover,
	.swiper-button-next:hover {
		opacity: .8;
	}

	.prev_next_button .swiper-button-prev,
	.prev_next_button .swiper-button-next {
		position: relative;
		-webkit-flex-shrink: 0;
		-ms-flex-negative: 0;
		flex-shrink: 0;
		margin: 0;
	}

	.works_section .link_btn {
    margin-top: 100px;
	}

	.works_section {
    padding-bottom: 100px;
	}

	.top_bg02_wrap {
    max-width: 132px;
    height: 157px;
    margin: 0 auto;
	}

	.company_section {
    padding-top: 100px;
    padding-bottom: 150px;
	}

	.company_section .heading_h2 {
    margin-bottom: 110px;
	}

	.acf_table dl {
    grid-template-columns: 30% auto;
	}

	.acf_table dl dt {
		padding: 30px 24%;
	}

	.acf_table dl dd {
		padding: 30px 10% 30px 0;
	}

	.banner_link {
    padding: clamp(40px, 5.20vw, 100px) 17.5px 100px;
    background-image: url(../img/banner_top.svg);
	}

	.banner_link .heading_h2 {
    margin-bottom: 80px;
	}

	.banner_link .link_btn {
    height: 200px;
	}

	.access_section {
    padding-top: 150px;
    padding-bottom: 200px;
	}

	.access_section .heading_h2 {
    margin-bottom: 110px;
	}

	.top_contact_section {
    padding-bottom: 220px;
	}

	.top_contact_inner {
    height: 400px;
	}

	.top_contact_inner_inner {
    padding: 0 30px 0;
    position: relative;
    max-width: 816px;
    height: 400px;
	}

	.top_contact_section .heading_h2 {
    margin-bottom: 65px;
	}

	.top_contact_section .link_btn {
    margin-top: 65px;
    width: 200px;
	}

	.top_contact_tel {
    margin-top: 20px;
	}

	/*下層ページ*/
	.subpage_h2 {
    text-align: left;
    font-size: 4rem;
    margin-bottom: 80px;
		font-weight: 900;
	}

	.subpage_section section:not(:first-of-type) {
    margin-top: 150px;
	}

	.subpage_h3 {
    font-size: 3.2rem;
    font-weight: 700;
    padding-left: 25px;
	}

	.subpage_h3:after {
		display: none;
	}

	.subpage_h3::before {
		background: url(../img/subpage_head_pc_deco.png);
		background-repeat: no-repeat;
    width: 73px;
    height: 73px;
	}

	.business_shuyou .business_contents {
		max-width: 924px;
		margin: 50px auto 0;
	}

	.business_shuyou_card_wrap {
    max-width: 100%;
    grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.business_shuyou_card_wrap .business_shuyou_card:nth-child(3) {
    background-color: #0A3D80;
	}

	.business_shuyou_card_wrap .business_shuyou_card:nth-child(4) {
    background-color: #0075B0;
	}

	.business_shuyou_card_inner {
    row-gap: 20px;
	}

	.business_shuyou_card_txt {
		font-size: 2rem;
		letter-spacing: .1em;
	}

	.business_shuyou_card.water::after {
    right: 10px;
    bottom: 20px;
	}

	.business_shuyou_card.manhole::after {
    right: 10px;
    bottom: 20px;
	}

	.business_shuyou_note {
    justify-content: unset;
		margin-top: 10px;
    row-gap: 10px;
		font-size: 1.4rem;
	}

	.business_eigyou .business_contents {
    margin-top: 90px;
	}

	.business_eigyou_ul {
    border-radius: 12px;
    margin: 0 auto;
		max-width: 1070px;
    padding: 50px 34px;
    row-gap: 40px;
		column-gap: 10px;
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}

	.business_eigyou_ul li {
    font-size: 1.5rem;
	}

	.business_ippan .business_contents {
    margin-top: 60px;
	}

	.business_ippan_top_txt {
    font-size: 1.5rem;
	}

	.business_ippan_img_wrap {
    margin-top: 50px;
    gap: 30px;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: 1fr;
	}

	.business_ippan img {
    border-radius: 12px;
	}

	.business_ippan img:first-child {
    grid-column: auto;
	}

	.business_eizen .business_contents {
    margin-top: 60px;
	}

	.business_eizen_top_txt {
    font-size: 1.5rem;
	}

	.business-main_top_txt p {
    font-size: 1.5rem;
	}

	.business-main_top_txt p:not(:first-of-type) {
    margin-top: 5px;
	}

	.business-main_contents {
		max-width: 1200px;
		margin: 0 auto;
		grid-template-columns: 1fr 1fr;
    column-gap: 8%;
		align-items: center;
		justify-content: space-between;
	}

	.business-main_contents:first-of-type {
    margin-top: 200px;
	}

	.business-main_contents:nth-of-type(odd) .business-main_img {
    border-radius: 250px 12px 12px 12px;
	}

	.business-main_contents:nth-of-type(even) .business-main_img {
    border-radius: 12px 250px 12px 12px;
		order: 2;
	}

	.shitei-kyuusui .business-main_icon {
		width: 49px;
		height: 49px;
	}

	.shitei-gesui .business-main_icon {
		width: 68px;
		height: 42px;
	}

	.joukasou .business-main_icon {
		width: 55px;
		height: 49px;
	}

	.kouatsu .business-main_icon {
		width: 63px;
		height: 63px;
	}

	.business-main_h3 {
    font-size: 2.4rem;
    margin-top: 15px;
	}

	.business-main_contents_p {
    margin-top: 30px;
    font-size: 1.5rem;
		line-height: 2;
	}

	.business-main_contents_p p:not(:first-of-type) {
    margin-top: 60px;
	}

	.about_message,.about_overview,.about_history,.about_access {
		max-width: 1140px;
		margin: 110px auto 0;
	}

	.about_message .about_contents {
    max-width: 880px;
		margin: 60px auto 0;
    justify-content: space-between;
		grid-template-columns: 55% 33%;
	}

	.about_message_img_wrap {
		order: 2;
		max-width: 100%;
		width: 100%;
	}

	.about_message_img_wrap img {
    border-radius: 12px;
	}

	.message_img_note {
    margin-top: 10px;
    font-size: 1.5rem;
		line-height: 1.75;
	}

	.about_message_txt {
    padding: 0;
    font-size: 1.5rem;
		line-height: 1.75;
	}

	.about_message_txt p:not(:first-of-type) {
    margin-top: 15px;
	}

	.about_message_txt span {
    font-size: 2rem;
	}

	.about_overview .about_contents {
    margin-top: 80px;
	}

	.about_overview .about_contents:not(:first-of-type) {
    margin-top: 60px;
	}

	.about_h4 {
    text-align: left;
    font-size: 2.4rem;
    font-weight: 700;
	}

	.about_dl_table {
    margin-top: 15px;
	}

	.about_dl_table > dl {
    grid-template-columns: auto 50%;
    padding: 22px 0;
	}

	.about_dl_table dl > dt {
    font-size: 2rem;
    font-weight: 700;
	}

	.about_dl_table dl > dt::before {
		top: 12px;
	}

	.about_dl_table dl dd {
    font-size: 1.5rem;
		line-height: 2;
	}

	.about_dl_table dl.dd_wide {
    grid-template-columns: auto 50%;
	}

	.about_dl_table dl dd dl {
		display: flex;
    column-gap: 10px;
	}

	.about_dl_table dl dd dl dt {
    font-size: 1.5rem;
		width: 130px;
	}

	.about_dl_table dl dd.dd_adjust dl {
		justify-content: unset;
	}

	.about_dl_table dl dd.dd_adjust dl dt {
		width: 200px;
	}

	.about_history .about_contents {
    margin-top: 80px;
	}

	.about_access .about_contents {
    margin: 60px auto 0;
		max-width: 880px;
	}

	.about_access .access_contents_wrap {
		flex-direction: row-reverse;
		justify-content: space-between;
		align-items: flex-start;
	}

	.about_access .map {
    padding-top: 39%;
		width: 70%;
	}

	.about_access .access_txt {
		width: 23%;
		flex-direction: column;
		padding: 0;
		font-size: 1.5rem;
    line-height: 1.75;
	}

	.about_access .access_txt dl dt {
    font-weight: 700;
    margin-bottom: 10px;
	}

	.about_access .access_txt dl:not(:first-of-type) {
    margin-top: 30px;
	}

	.works_result_h3 {
    font-size: 3.2rem;
    font-weight: 700;
    margin-bottom: 80px;
	}

	.works_result_ul {
    row-gap: 40px;
		max-width: 940px;
		margin: 0 auto;
	}

	.works_result_ul li {
    border-radius: 20px;
	}

	.works_result_ul_head {
    font-size: 2rem;
    padding: 30px;
	}

	.plus_icon {
    width: 20px;
    height: 20px;
    right: 30px;
	}

	.plus_icon::before {
    width: 20px;
	}

	.plus_icon::after {
    height: 20px;
	}

	.works_result_ul_body {
    padding: 0 30px 60px;
	}

	.works_result_category {
    font-size: 2rem;
    font-weight: 700;
    padding-bottom: 10px;
    border-bottom: 3px solid #0A3D80;
    column-gap: 32px;
		grid-template-columns: 22% 1fr 1fr;
		text-align: left;
	}

	.works_result_category div:first-of-type {
		display: block;
	}

	.works_result_desc {
    padding: 30px 0 0;
	}

	.works_result_area {
    font-size: 1.5rem;
    font-weight: 700;
		padding: 0 30px;
	}

	.works_result_area:before, .works_result_area:after {
    height: 3px;
		flex-grow: unset;
	}

	.works_result_area:before {
    margin-right: 2rem;
		width: 6%;
	}

	.works_result_area:after {
    margin-left: 2rem;
		flex-grow: 1;
	}

	.works_result_place {
    margin-top: 25px;
    font-size: 1.5rem;
		grid-template-columns: 22% 1fr 1fr;
		text-align: left;
	}

	.works_result_place div:first-of-type {
		display: block;
	}

	.subpage_news_h3 {
    margin-bottom: 60px;
    font-weight: 700;
    font-size: 3.2rem;
	}

	.subpage_news_list li {
		padding: 20px 0;
		flex-direction: row;
		column-gap: 80px;
		align-items: center;
	}

	.subpage_news_list li time {
    font-size: 1.5rem;
	}

	.subpage_news_list li a {
    font-size: 2rem;
    font-weight: 700;
	}

	.time_cat {
    margin-bottom: 50px;
	}

	.news_article_h2 {
    font-size: 3.2rem;
    font-weight: 700;
	}

	.news_article {
		margin-bottom: 120px;
	}

	.article_main {
    font-size: 1.5rem;
	}

	.article_main dl {
    display: grid;
		grid-template-columns: 150px auto;
		border-bottom: 1px solid #ddd;
	}

	.article_main dt {
		margin: 0;
		line-height: 200%;
		font-weight: bold;
		font-size: 1.3rem;
		border-top: 1px solid #ddd;
		padding: 12px 10px 10px 0;
		background: #fff;
	}

	.article_main dd {
		margin: 0;
		line-height: 200%;
		background: #f9f9f9;
		padding: 12px 10px 10px 10px;
		font-size: 1.3rem;
		border-top: 1px solid #ddd;
	}

	.article_main > *:not(:first-child) {
    margin-top: 30px;
	}

	.privacy_contents > ol {
    row-gap: 100px;
	}

	.privacy_contents > ol > li::before {
    left: 36px;
    font-size: 3.2rem;
    font-weight: 700;
	}

	.privacy_contents > ol > li .subpage_h3 {
    padding-left: 76px;
 }

	.privacy_contents > ol > li .subpage_h3::before {
		background: #CEEFFF;
    top: -13px;
	}

	.privacy_contents > ol > li .subpage_h3::after {
    display: block;
    margin-bottom: 24px;
		margin-left: 2rem;
	}

	.privacy_contents_body {
    margin-top: 40px;
    font-size: 1.5rem;
		padding: 0 30px;
	}

	.privacy_contents_body > *:not(:first-child) {
    margin-top: 20px;
	}

	.privacy_contents_body ul {
    row-gap: 6px;
	}



	.pc_br {
		display: block;
	}

	.sp_br {
		display: none;
	}

}

@media screen and (min-width: 1130px) {

	.header1 .logo img, .header_subpage .logo img {
    width: 333px;
	}

	/*フッター*/
	.footer_top {
		position: relative;
	}

	.footer_right address p:not(:first-child) {
    margin-top: 20px;
	}

	.footer_kenko-sns {
		position: absolute;
    margin-top: 0;
    flex-direction: column;
    row-gap: 20px;
		right: 0;
		bottom: 30px;
	}

	.footer_kenko_logo {
    max-width: 158px;
	}

	.footer_bottom_ul {
    gap: 20px;
	}

	.footer_bottom_ul li a {
    font-size: 1.5rem;
	}

	.copy {
		text-align: right;
	}
}

@media screen and (min-width: 1024px) {

	.about_inner {
		flex-direction: row;
		gap: 2em 0;
		align-items: center;
	}

	.about_inner_img {
		width: min(950px,49.5%);
    border-radius: 0 12px 12px 0;
	}

	.about_inner .txt {
		padding: 17.5px;
		width: 50.5%;
		display: flex;
		justify-content: center;
	}

	.about_inner .txt div {
		max-width: 550px;
	}

	.about_inner .txt h3 {
		font-size: 3rem;
		margin-bottom: 30px;
		text-align: left;
	}

	.about_inner_p_wrap {
    text-align: left;
	}

	.about_section .link_btn {
    margin-top: 100px;
	}

	.inner_map {
		max-width: 100%;
		padding: 0;
	}

	.access_contents_wrap{
		display: flex;
		gap: 2em 0;
	}

	.map_section {
		display: flex;
		gap: 2rem;
		align-items: center;
	}

	.map {
		order: 2;
		width: 66%;
		padding-top: 25.4%;
	}

	.access_txt {
		order: 1;
		padding: 17.5px;
		display: flex;
		justify-content: center;
		width: 34%;
	}

	.access div {
		max-width: 550px;
	}

	.works_example {
		row-gap: 0;
	}

	.works_item {
		position: relative;
		grid-template-columns: 1fr 1fr;
		align-items: center;
	}

	.works_item:not(:first-of-type) {
		margin-top: -4.17vw;
	}

	.works_img {
    aspect-ratio: 8 / 5;
    padding-left: 0;
	}

	.works_item:nth-of-type(odd) .works_img {
		order: 2;
	}

	.works_item:nth-of-type(even) .works_img {
    padding-right: 0;
	}

	.works_item:nth-of-type(even) .works_img img,
	.works_item:nth-of-type(odd) .works_img img {
    border-radius: 0;
	}

	.works_item:first-of-type .works_img img {
    border-radius: 20px 0 0 0;
	}

	.works_item:last-of-type .works_img img {
    border-radius: 0 0 20px 0;
	}

	.works_txt {
		position: relative;
		z-index: 2;
		min-height: 22.66vw;
		display: flex;
		align-items: center;
		padding: 0;
	}

	.works_item:nth-of-type(odd) .works_txt {
		margin-right: -11.33vw;
		border-radius: 0 280px 280px 0;
		flex-direction: row-reverse;
	}

	.works_item:nth-of-type(even) .works_txt {
		margin-left: -11.33vw;
		border-radius: 280px 0 0 280px;
	}

	.works_txt_head {
		min-width: 22.66vw;
	}

	.works_h3 {
    font-size: 2.4rem;
    padding-top: 4.9vw;
	}

	.works_h3::before {
    width: 53px;
    height: 54px;
	}

	.works_category {
    font-size: 2rem;
    margin-top: 2.1vw;
	}

	.works_category span {
		display: inline-block;
	}

	.works_desc_wrap {
    font-size: 1.5rem;
    margin-top: 0;
		max-width: 400px;
	}

	.works_item:nth-of-type(odd) .works_desc_wrap {
		padding-left: 17.5px;
		text-align: right;
	}

	.works_item:nth-of-type(even) .works_desc_wrap {
		padding-right: 17.5px;
		text-align: left;
	}

}

