/*
Theme Name:original
Author:SolabotSchool
Version:1.00
*/

/*全体設定*/
/*ヘッダー*/
/*フッター*/
/*トップページ*/
/*各ページ*/
/*会社概要・求人募集*/
/*フォーム*/

/*メディアクエリ・ブレイクポイント*/

/*-----------------------------------------------全体設定-----------------------------------------------*/
/* reset */
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;}
ul{list-style:none;}
table{border-collapse:collapse;border-spacing:0;}
caption,th{text-align:left;}
q:before,q:after{content:'';}
object,embed{vertical-align:top;}
legend{display:none;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
img,abbr,acronym,fieldset{border:0;}

img {
	display: block;
    width: 100%;
    height: auto;
}

/*全体幅*/
*, *:before, *:after { box-sizing: border-box;}

/*フォント*/
div,a,p,span {
	font-family: 'Noto Sans JP';
  font-weight: 500;
}
h1,h2,h3,h4,h5 {
	font-family: 'Noto Sans JP';
  font-weight: 700;
}

/*スクロールインアニメーション*/
.scroll_in {
  opacity: 0;
  transition: all 1s;
}
.scroll_in.active {
  opacity: 1;
}

/*フェードインアニメーション*/
.scroll_in_fade {
  opacity: 0;
}
.scroll_in_fade.active {
  opacity: 0;
}

.fade_in_bottom.active {
  animation-name: fade_in_bottom;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes fade_in_bottom {
  0% {
     opacity: 0;
     transform: translateY(20px);
  }
  100% {
     opacity: 1;
     transform: translateY(0px);
  }
}

.fade_in_left.active {
  animation-name: fade_in_left;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes fade_in_left {
  0% {
     opacity: 0;
     transform: translateX(-150px);
  }
  100% {
     opacity: 1;
     transform: translateX(0px);
  }
}

.fade_in_right.active {
  animation-name: fade_in_right;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  animation-delay: 0.5s;
}
@keyframes fade_in_right {
  0% {
     opacity: 0;
     transform: translateX(150px);
  }
  100% {
     opacity: 1;
     transform: translateX(0px);
  }
}

/*サイド追尾メニュー*/
.fixed_menu_side {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  opacity: 0;
  visibility: hidden;
  transition: all 1s;
}
.fixed_menu_side.show {
  opacity: 1;
  visibility: visible;
}
.fixed_menu_item {
  transition: all 0.5s;
}
.fixed_menu_item:hover {
  opacity: 0.8;
}
.fixed_menu_item a {
  font-size: 1.2vw;
  font-weight: 500;
  text-decoration: none;
  text-shadow: 0 0 10px #333;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #d00;
  width: 6vw;
  height: 6vw;
  text-align: center;
}
.fixed_menu_item.menu_contact a {
  background-image: linear-gradient(90deg, #102651, #6ca3b8 50%, #badae1);
}
.fixed_menu_item.menu_recruit a {
  background-image: linear-gradient(132deg, #4a514e, #60af60);
}

/*トップへ戻る*/
.back-to-top {
  position: fixed;
  bottom: 0;
  right: 0;
  width: 6vw;
  height: 3vw;
  background: #000;
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  transition: all 1s;
  cursor: pointer;
}
.back-to-top:before {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% + 0.4vw);
  left: 50%;
  transform: translate(-50%,-50%) rotate(-45deg);
  color: #fff;
  width: 0.8vw;
  height: 0.8vw;
  border-top: 4px solid #fff;
  border-right: 4px solid #fff;
}
.back-to-top.show {
  opacity: 1;
  visibility: visible;
}
.back-to-top:hover {
  opacity: 0.8;
}

/*オーバーレイリンク*/
.overlay_link {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
}

/*-----------------------------------------------ヘッダー-----------------------------------------------*/
#masthead {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 999;
}

.main-header-content {
  display: flex;
  justify-content: space-between;
  padding: 1vw 1.6vw 1vw 2.4vw;
}
.site-branding {
  display: flex;
  align-items: center;
  position: relative;
  z-index: 104;
}
.site-logo {
  width: 14vw;
  transition: all 1s;
}
.header_nav {
  margin-left: auto;
  margin-right: 1vw;
}
.header_nav_container {
  height: 100%;
  padding-left: 1vw;
}
.nav_item {
  margin-right: 1vw;
}

/* Drawer Button */
.drawer-hamburger {
  background-color: transparent;
  box-sizing: content-box;
  display: block;
  outline: 0;
  padding: 0.8vw 0 0;
  transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
  width: 2.4vw;
  min-width: 2.4vw;
  z-index: 102;
  border: 0;
  cursor: pointer;
}
.drawer-hamburger:hover,
.drawer-hamburger:focus {
	background-color: transparent;
}
.drawer-hamburger-icon {
	position: relative;
	display: block;
}
.drawer-hamburger-icon,
.drawer-hamburger-icon:before,
.drawer-hamburger-icon:after {
	background-color: #111;
	height: 2px;
	transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
	width: 100%;
}
.drawer-hamburger-icon:before,
.drawer-hamburger-icon:after {
	position: absolute;
	left: 0;
	content: ' ';
}
.drawer-hamburger-icon {
  background: transparent;
}
.drawer-hamburger-icon::before {
  top: -0.6vw;
}
.drawer-hamburger-icon::after {
  top: -0.1vw;
}
.hamburger_text {
  font-weight: 700;
  display: block;
  margin-top: 0.2vw;
  opacity: 1;
  transition: all 0.3s;
  font-size: 0.75vw;
}
.drawer-opened .hamburger_text {
  opacity: 0;
}
.drawer-opened .drawer-hamburger-icon {
	background-color: transparent;
}
.drawer-opened .drawer-hamburger-icon:before,
.drawer-opened .drawer-hamburger-icon:after {
	top: 0;
}
.drawer-opened .drawer-hamburger-icon:before {
	transform: rotate(45deg);
}
.drawer-opened .drawer-hamburger-icon:after {
	transform: rotate(-45deg);
}

/* Drawer Navigation */
.drawer-overlay {
	display: none;
	height: 100vh;
	left: 0;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 100;
  background: #00000080;
}
.drawer-navigation {
	background: #fff;
	height: 100vh;
	overflow-y: auto;
	position: fixed;
	right: 0;
	top: 0;
	transform: translateX(100%);
	transition: all 1.2s cubic-bezier(0.190, 1.000, 0.220, 1.000);
	width: 30vw;
	z-index: 101;
	-webkit-overflow-scrolling: touch;
  padding: 1.6vw 4vw 0;
}
.drawer-navigation-content {
	box-sizing: border-box;
	height: 100%;
	overflow-y: auto;
	padding: 60px 75px 60px 40px;
	width: 100%;
}
.drawer-opened .drawer-overlay {
	display: block;
}
.drawer-opened .drawer-navigation {
	box-shadow: 0 0 90px rgba(0, 0, 0, 0.2);
	transform: translateX(0);
}

.drawer_logo {
  width: 15vw;
  margin-bottom: 3vh;
}
.header_nav_container .nav_item {
  margin: 0 0 4.3vh;
  list-style: disc;
}
.header_nav_container .nav_item a {
  text-decoration: none;
  display: block;
  color: #000;
}
.header_nav_container .nav_item .nav_label {
  font-size: 1.4vw;
  color: #000;
  padding-left: 0.2vw;
  line-height: 1;
  vertical-align: bottom;
}
.header_nav_container .child_menu li {
  color: #000;
  font-size: 1vw;
  font-weight: 400;
  margin-bottom: 0.8vw;
}
.header_nav_container .child_menu {
  padding-left: 0.8vw;
  margin-top: 2vh;
}
.header_nav_container .child_menu li {
  position: relative;
  list-style: disclosure-closed;
}
.header_nav_container .child_menu li::marker {
  color: #aaa;
}
.header_nav_container .child_menu li:nth-child(5), .header_nav_container .child_menu li:nth-child(6) {
  margin-bottom: 0;
}

/* ドロワーメニュー展開時：スクロール位置保持のための設定 */
html.overflow_hidden {
    overflow: hidden !important; 
}

body.overflow_hidden {
    overflow: hidden !important;
    position: fixed; /* ページを固定 */
    width: 100%;     /* 幅を維持 */
    /* top: 負の値; はJSで動的に付与されます */
}
/* メニューを開いたとき、ヘッダーにズレ防止のpaddingを適用 */
.main-header.drawer-opened {
    padding-right: 0; /* デフォルト値 */
}
body.overflow_hidden .main-header {
    /* JSで計算した値と同じだけpaddingを適用する必要がありますが、
       ヘッダーがfixedの場合、このCSSを適用するとズレが戻る場合があります */
    padding-right: var(--scrollbar-width, 15px); /* JSで計算した値をCSS変数で渡すのが理想 */
}

/*-----------------------------------------------フッター-----------------------------------------------*/
.footer_container {
  background: url(/wp-content/themes/original/images/footer/footer_bg.webp);
  background-size: 100% 100%;
  padding: 4vw 7vw 0;
  aspect-ratio: 16/9;
}
.footer_contents {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.footer_logo {
  width: 22vw;
}
.footer_nav {
  width: 56vw;
}
.footer_nav li a {
  text-decoration: none;
  color: #fff;
}
.footer_nav_top {
  display: flex;
  margin-bottom: 2vw;
}
.footer_nav_top .has_child {
}
.footer_nav .nav_label {
  font-size: 2vw;
  padding-left: 1.8vw;
  color: #fff;
  position: relative;
  line-height: 1;
  display: block;
}
.footer_nav .nav_label::before {
  content: "";
  display: block;
  position: absolute;
  top: calc(50% + 0.2vw);
  left: 0;
  transform: translateY(-50%);
  width: 1.2vw;
  height: 1.2vw;
  border-radius: 0.2vw;
  background-image: linear-gradient(#ece3f2, #c8b3dc 70%, #b091cc);
  border: inset 4px #ece3f2;
}
.footer_nav_top .has_child .nav_label {
  margin-bottom: 1vw;
}
.child_menu.grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 1.1vw;
}
.child_menu li {
  font-size: 1.2vw;
  color: #fff;
}
.footer_nav_bottom {
  display: flex;
  justify-content: space-between;
}
.footer_nav_top .has_child:nth-child(2) {
  margin: 0 3vw;
  padding: 0 3vw;
  position: relative;
}
.footer_nav_top .has_child:nth-child(2):before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 2px;
  height: 80%;
  background: #fff;
  transform: translateY(-50%);
}
.footer_nav_top .has_child:nth-child(2)::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 0;
  width: 2px;
  height: 80%;
  background: #fff;
  transform: translateY(-50%);
}

/*-----------------------------------------------トップページ-----------------------------------------------*/
.home #page {
  padding-top: 0;
}
.home.page #content {
  width: 100%;
}
.fv {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  z-index: -1;
}
.fv_container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
}
.fv_media {
  position: absolute; 
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
/* 画像要素の設定 */
.fv_image {
  /* 中央配置 */
  position: absolute;
  top: 0;
  left: 0;
  
  /* 拡大時に親要素全体を覆い尽くすサイズ */
  min-width: 100%;
  min-height: 100%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  
  /* GSAPでscaleを適用するための準備 */
  transform-origin: top center;
}
.fv-scroll-spacer {
  /* 画面を通過する間にアニメーションが実行されるように、高さを設定 */
  height: 30vh; /* 例: 画面半分をスクロールする間に拡大を完了させる */
}
.fv_contents {
  position: relative;
  height: 100vh;
}
.fv_copy {
  position: absolute;
  bottom: 28vh;
  right: 10.4vw;
  z-index: 1;
  font-size: 2.8vw;
  font-weight: 500;
  color: #fff;
  text-shadow: 1px 1px 5px #000;
  visibility: hidden;
}
.wf-active .fv_copy {
  visibility: visible;
}
.fv_scroll {
  position: absolute;
  bottom: 2.6vw;
  right: 5vw;
  filter: drop-shadow(1px 1px 3px #000);
  width: 4.9vw;
  z-index: 1;
}


/*パララックス部分*/
.parallax_col3 {
  overflow: hidden;
  height: 160vh;
  background: #fff;
}
.parallax_items {
  display: flex;
  justify-content: space-between;
  position: relative;
}
.parallax_item {
  width: calc(100% / 3 - 1vw);
  position: relative;
  overflow: hidden;
}
.parallax_item img {
	width: 100%;
	height: auto;
	display: block;
	margin-bottom: 2vw;
}
.parallax_title {
  font-size: 5.5vw;
  text-align: center;
  line-height: 1;
  padding: 2vw 0;
  font-weight: 700;
}

.parallax_main {
  position: absolute;
  top: 20vw;
  left: 50%;
  z-index: 1;
  transform: translateX(-50%);
  width: 52vw;
}
.parallax_main_block {
  position: relative;
  padding: 4vw 8vw;
  border-radius: 1.6vw;
  background: #ffffffdb;
}
.parallax_main_block .title {
  font-size: 2.6vw;
  font-weight: 500;
  line-height: 1.3;
  margin-bottom: 2vw;
}
.parallax_main_block .text {
  font-size: 1.4vw;
  line-height: 1.8;
}
.parallax_main_sign {
  position: absolute;
  top: 50%;
  left: 0vw;
  font-size: 1.6vw;
  transform: translateY(-50%) rotate(-90deg);
  font-weight: 700;
}

/*トップページセクション*/
.section_outer {
  background: #fff;
}
.section_inner {
  width: 80vw;
  margin: auto;
  padding: 6vw 0;
}
.section_title {
  display: flex;
  align-items: center;
  position: relative;
  font-size: 4vw;
  padding-bottom: 1vw;
  margin-bottom: 2vw;
}
.section_title_line {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}
.section_title_icon {
  width: 2.4vw;
  margin-right: 1vw;
}
/*トップページNEWS*/
.home_news_items {
  background: #ededed;
  padding: 3vw 4vw;
}
.home_news_item {
  margin-bottom: 2vw;
}
.home_news_item:last-child {
  margin-bottom: 0;
}
.home_news_item a {
  font-size: 1.8vw;
  color: #000;
  text-decoration: none;
  display: flex;
  align-items: center;
}
.news_date {
  font-weight: 500;
  margin-right: 4vw;
}
/*トップページSERVICE*/
/*SERVICE*/
.service .section_outer {
  overflow: hidden;
}
.section_title.with_caption {
  justify-content: space-between;
}
.section_title.with_caption .caption {
  margin-left: auto;
}
.service_contents {
  display: flex;
  justify-content: space-around;
  margin-bottom: 6vw;
}
.service_image {
  width: 40%;
}
.service_text p {
  font-size: 2vw;
  text-align: center;
  padding-top: 2vw;
  line-height: 1.8;
  font-weight: 500;
}
.service_text p .emphasis {
  font-size: 150%;
  margin: 0 0.6vw;
  color: #ff5757;
}
.service_category {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6vw;
}
.service_category.air_conditioning {
  margin-bottom: 0;
}
.service_category_image {
  width: 40%;
  margin-right: 3vw;
  flex-shrink: 0;
  position: relative;
}
.service_category_image img {
  height: 100%;
}
.service_category_head {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}
.section_h3 {
  text-align: center;
}
.section_h3 .main {
  font-size: 4vw;
  color: #fff;
  display: block;
  text-shadow: 0 0 10px #000;
  white-space: nowrap;
  line-height: 1;
  margin-bottom: 1vw;
}
.section_h3 .sub {
  font-size: 2.8vw;
  color: #fff;
  display: block;
  text-shadow: 0 0 10px #000;
  white-space: nowrap;
  line-height: 1;
}
.service_category_contents {
  flex-grow: 1;
}
.category_caption {
  font-size: 1.4vw;
  text-align: center;
  font-weight: 500;
  line-height: 1.4;
  padding-bottom: 1vw;
  margin-bottom: 1vw;
  position: relative;
}
.category_caption_line {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}
.category_items.col2 {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.category_items.col2 .category_item {
  width: calc(50% - 0.6vw);
}
.category_item {
  position: relative;
  margin-bottom: 1.2vw;
}
.category_item:nth-last-child(1),.category_item:nth-last-child(2) {
  margin-bottom: 0;
}
.service_category.air_conditioning .category_item {
  margin-bottom: 2vw;
}
.service_category.air_conditioning .category_item:last-child {
  margin-bottom: 0;
}
.category_item_label {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  font-size: 1.8vw;
  color: #fff;
  text-shadow: 0 0 10px #000;
}
.category_item:before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 94%;
  height: 85%;
  border: 2px solid #fff;
  pointer-events: none;
}
.service_category.water_supply .category_item::before {
  width: 90%;
}
.service_category_copy {
  background: #fffc;
  text-align: center;
  width: 28vw;
  margin: 3vw auto 0;
  padding: 1vw;
}
.service_category_copy .copy_title {
  display: flex;
  align-items: center;
  font-size: 1.7vw;
  font-weight: 500;
  justify-content: center;
  color: #ff5757;
  margin-bottom: 0.4vw;
  text-shadow: 2px 2px 4px #fff;
}
.service_category_copy img {
  width: 3vw;
  margin-right: 0.4vw;
}
.service_category_copy .copy_text {
  font-size: 1.2vw;
  font-weight: 500;
  color: #ff5757;
  text-shadow: 2px 2px 4px #fff;
}
.service_category.air_conditioning .section_h3 .sub {
  font-size: 2vw;
}
.service_category.air_conditioning .service_category_head {
  top: calc(50% + 4vw);
}
/*トップページポイント*/
.point_items {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 50vw;
  margin: 4vw auto 0;
}
.point_item {
  width: 46%;
  text-align: center;
}
.point_item.item1 {
  margin-right: 3vw;
}
.point_item.item3 {
  margin-top: 3vw;
}
.point_item_title {
  font-size: 2vw;
  font-weight: 500;
  line-height: 1;
  background: #3087f4;
  color: #fff;
  padding: 0.8vw 0;
  margin-bottom: 2vw;
}
.piont_item_caption {
  color: #ff5757;
  font-size: 1.6vw;
  font-weight: 500;
}
.point_item_image {
  margin: 0 auto 2vw;
}
.point_item.item1 .point_item_image {
  width: 5vw;
}
.point_item.item2 .point_item_image {
  width: 9.3vw;
}
.point_item.item3 .point_item_image {
  width: 9.3vw;
}
/*トップページ流れ*/
.flow_items {
  width: 51vw;
  margin: 3vw auto 0;
}
.flow_item {
  padding: 5vw 0 4vw;
}
.flow_item_container {
  width: 30vw;
  margin: auto;
  text-align: center;
}
.flow_item_title {
  font-size: 3vw;
  font-weight: 500;
  padding-bottom: 1vw;
  margin-bottom: 1vw;
  border-bottom: 2px solid #fff;
  color: #fff;
  text-shadow: 0 0 10px #000;
}
.flow_item_text {
  font-size: 1.9vw;
  font-weight: 500;
  line-height: 1.4;
  color: #fff;
  text-shadow: 0 0 10px #000;
}
.flow_item.item1 {
  background: url(/wp-content/themes/original/images/home/flow_item_bg1.webp);
  background-size: 100% 100%;
}
.flow_item.item2 {
  background: url(/wp-content/themes/original/images/home/flow_item_bg2.webp);
  background-size: 100% 100%;
}
.flow_item.item3 {
  background: url(/wp-content/themes/original/images/home/flow_item_bg3.webp);
  background-size: 100% 100%;
}
.flow_item.item4 {
  background: url(/wp-content/themes/original/images/home/flow_item_bg4.webp);
  background-size: 100% 100%;
}
/*トップページお客様の声*/
.reviews_item_contents {
  background: #213753;
  padding: 1vw;
  height: 100%;
}
.reviews_item_image img {
  aspect-ratio: 1/0.746;
  object-fit: cover;
}
.reviews_item_meta {
  display: flex;
  align-items: center;
  font-size: 1.4vw;
  color: #fff;
  font-weight: 500;
  margin-bottom: 0.6vw;
}
.reviews_item_meta img {
  margin-right: 1vw;
  width: auto;
  height: 2vw;
}
.reviews_item_text {
  font-size: 0.9vw;
  font-weight: 500;
  color: #fff;
  min-height: 6vw;
}
.recruit_container {
  width: 60vw;
  margin: auto;
  padding: 6vw 0 12vw;
}
/*スライダー部分*/
/* 既存の設定 (swiper-slideの縮小・拡大) */
.slide_reviews .swiper-slide {
  transform: scale(0.8) !important;
  transition: .7s; /* スケールアニメーションの時間を維持 */
  cursor: pointer;
}
.slide_reviews .swiper-slide-active {
  transform: scale(1) !important;
  transition: .7s;
  z-index: 1;
}

/* ⬇️ 💡 追記する修正：ワープ処理時のアニメーションを停止させる 💡 ⬇️ */

/* スライド移動中のワープが発生する際に、CSSアニメーションを無効化する */
/* Swiperが瞬間的に位置をリセットする際に付与されるクラス/属性を利用 */
.slide_reviews .swiper-wrapper[style*="transition-duration: 0ms"] .swiper-slide {
    /* transform の切り替えアニメーションだけを無効化する */
    transition: none !important;
}

/*トップページ許認可について*/
.official_permission_image {
  width: 40vw;
  margin: 3vw auto 0;
}
.official_permission_caption {
  width: 28vw;
  margin: auto;
}
.official_permission_images {
  display: flex;
  justify-content: space-between;
}
.official_permission_image {
  width: 40vw;
  margin: 3vw auto 0;
}

/*-----------------------------------------------各ページ-----------------------------------------------*/
#page {
  padding-top: 4vw;
}
.page #content {
  width: 85vw;
  margin: auto;
}
/*セクションアンカー*/
.section_block {
  padding-top: 4vw;
  margin-top: -4vw;
  margin-bottom: 8vw;
}
/*水道・空調ページ*/
.page_kv_container {
  width: 82vw;
  margin: auto;
}
.section_block .section_inner {
  padding: 0;
}
.page_kv {
  margin-bottom: 4vw;
}
.trouble {
  margin-bottom: 4vw;
}
.page_kv_contents {
  position: relative;
}
.kv_image {
  position: relative;
}
.page_kv_title {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.kv_image > img {
  width: 82%;
  margin-left: auto;
  margin-right: 5vw;
}
.page_kv_title .main {
  font-size: 6vw;
  letter-spacing: 1vw;
  color: #7c6e4e;
  line-height: 1.2;
}
.page_kv_title .sub {
  font-size: 2.6vw;
  letter-spacing: 1vw;
  color: #7c6e4e;
  line-height: 1;
}
.page_kv_container .fv_scroll {
  right: -1vw;
  bottom: -1.4vw;
  width: 5.6vw;
  filter: none;
}
.page .section_inner {
  width: 90vw;
}
.section_inner.col2 {
  display: flex;
  align-items: self-start;
  justify-content: space-between;
  padding-bottom: 0;
}
.page_section_title {
  font-size: 1.6vw;
  color: #7d6e4e;
  position: relative;
  margin-bottom: 2vw;
  text-align: center;
  display: inline-block;
  padding: 0 2vw 1vw;
}
.section_inner.col2 .page_section_title {
  width: 12%;
  padding: 0 0 1vw;
}
.section_inner.col2 .page_section_contents {
  width: 84%;
}
.page_section_contents .main_text {
  margin-bottom: 2vw;
}
.page_section_contents .main_text p {
  font-size: 1.6vw;
  color: #7d6e4e;
}
.page_section_contents .images {
  display: flex;
}
.page_section_contents .image_item {
  width: 18vw;
  margin-right: 2vw;
}
.page_section_contents .image_item img {
  aspect-ratio: 1/1;
  object-fit: cover;
}
.case_items {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1vw;
  position: relative;
}
.case_item img {
  aspect-ratio: 1/1;
  object-fit: cover;
}
.case_items_label {
  position: absolute;
  top: -2vw;
  left: 0.6vw;
  transform: rotate(90deg);
  transform-origin: bottom left;
}
.case_items_label .main {
  font-size: 3vw;
  line-height: 1.2;
  color: #7c6e4e;
  font-weight: 700;
  letter-spacing: 1vw;
}
.case_items_label .sub {
  font-size: 1.2vw;
  line-height: 1.2;
  color: #7c6e4e;
  font-weight: 700;
  letter-spacing: 1vw;
}
.washing_machine_stand .case_items_label .main {
  letter-spacing: 0.8vw;
}
.washing_machine_stand .case_items_label {
  top: -6vw;
}
.air_conditioner_business .case_items_label {
  top: -6vw;
}
.section_title.aircon .section_title_icon {
  width: 6vw;
}
.section_title.aircon .sub {
  font-size: 2vw;
  width: 32vw;
  margin-left: auto;
  text-align: center;
  color: #ff5757;
  line-height: 1.2;
}
/*-----------------------------------------------会社概要・求人募集-----------------------------------------------*/
.page.recruit #content,.page.about #content {
  width: 100%;
}
.recruit #page {
  padding: 0;
}
.recruit_main,.about_main {
  width: 80vw;
  margin: 4vw auto 8vw;
  max-width: 1160px;
}
.recruit_head,.about_head {
  margin-bottom: 2vw;
  padding-left: 1vw;
  position: relative;
}
.recruit_head:before,.about_head:before {
  content: "";
  display: block;
  width: 0.6vw;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  background-image: linear-gradient(#102651, #6ca3b8 35%, #badae1 75% 100%);
}
.recruit_block_title .sub,.about_block_title .sub {
  font-size: 1vw;
  line-height: 1;
  margin-bottom: 0.4vw;
}
.recruit_block_title .main,.about_block_title .main {
  font-size: 1.6vw;
  font-weight: 600;
  line-height: 1;
}
.recruit_block,.about_block {
  margin-bottom: 4vw;
}
.occupation {
  display: flex;
  align-items: center;
  margin-bottom: 1vw;
}
.occupation_label_main {
  background: #162b46;
  color: #fff;
  font-size: 1vw;
  padding: 0.2vw 0.6vw 0.3vw;
  margin-right: 1vw;
}
.occupation_label_sub {
  font-size: 1vw;
}
.recruit_table th,.recruit_table td,.about_table th,.about_table td {
  border: 2px solid #000;
}
.recruit_table,.about_table {
  width: 100%;
}
.recruit_table th,.about_table th {
  width: 20%;
  font-size: 1vw;
  text-align: center;
  background: #e5f7ff;
}
.recruit_table td,.about_table td {
  font-size: 1vw;
  padding: 1.6vw;
  line-height: 1.8;
}

/*-----------------------------------------------フォーム-----------------------------------------------*/
.form_container {
  width: 80vw;
  margin: auto;
  max-width: 1160px;
}
.form_contents {
  margin-bottom: 6vw;
}
.contact_item {
  margin-bottom: 1vw;
}
.contact_label {
  font-size: 1vw;
  margin-bottom: 0.4vw;
}
.form_contents input,.form_contents textarea {
  width: 100%;
  font-size: 1vw;
  padding: 1vw;
  border-radius: 0.2vw;
}
.contact_table th,.contact_table td {
  border: 1px solid #000;
  padding: 1vw;
}
.contact_table {
  width: 100%;
  margin-bottom: 2vw;
}
.contact_table th {
  background: #e5f7ff;
  width: 38%;
  position: relative;
}
.required {
  position: absolute;
  top: 50%;
  right: 1vw;
  transform: translateY(-50%);
  font-size: 80%;
  background: #d97474;
  color: #fff;
  border-radius: 0.2vw;
  padding: 0.1vw 0.6vw 0.2vw;
}
.required.optional {
  background: #777;
}
.contact_item.radio label {
  display: flex;
  align-items: center;
  cursor: pointer;
}
.contact_item.radio .wpcf7-list-item {
  margin-left: 0;
  margin-right: 2vw;
}
.contact_item.radio input {
  width: auto;
  margin-right: 0.3vw;
  transform: scale(1.1);
  margin-top: 0.2vw;
}
.contact_confirm_btn_area {
  width: 50%;
  margin: auto;
  position: relative;
}
#confirm_btn {
  background-image: linear-gradient(90deg, #102651, #6ca3b8 50%, #badae1);
  font-size: 1.6vw;
  line-height: 1;
  border: 0;
  box-shadow: 0 6px 1px 0px #999;
  color: #fff;
  text-shadow: 0 0 10px #333;
  cursor: pointer;
  border-radius: 0.6vw;
  width: 100%;
  padding: 1vw 0;
}
.wpcf7-spinner {
  position: absolute !important;
  top: -1.2vw;
  right: -3vw;
}
.contact_item.radio .wpcf7-list-item-label {
  font-size: 1vw;
}
.wpcf7 form.sent .wpcf7-response-output {
  text-align: center;
  border: none;
  font-size: 1vw;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.wpcf7 form.sent .wpcf7-response-output:before {
  content: '';
  width: 0.8vw;
  height: 0.3vw;
  border-left: 2px solid #25AF01;
  border-bottom: 2px solid #25AF01;
  transform: rotate(-45deg);
  margin-right: 0.4vw;
}

/*規約同意*/
.acceptance {
  margin-bottom: 3vw;
  margin-top: 3vw;
}
.acceptance_text {
  width: 43vw;
  margin: 0 auto 1vw;
  font-size: 1vw;
}
.acceptance label {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1vw;
  font-weight: 700;
}
.acceptance span {
  display: block;
  margin: 0;
}
.acceptance input {
  width: auto;
  margin-right: 0.6vw;
  transform: scale(1.2);
}

/*フォームのポップアップ*/
#confirmation_popup {
	/* 全画面表示 */
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	/* 背景色（少し透明度を持たせる） */
	background: rgba(0, 0, 0, 0.8);
	/* 最前面に表示 */
	z-index: 9999;
	/* ポップアップを中央に配置 */
	display: flex;
	justify-content: center;
	align-items: center;
	/* 初期状態は非表示 */
	display: none;
}
.popup_content {
	background: #fff;
	padding: 30px;
	border-radius: 8px;
	/* 最大幅を設定し、コンテンツが溢れたらスクロール */
	max-width: 800px;
	max-height: 90vh;
	overflow-y: auto;
	width: 90%;
	position: relative;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
#confirmation_details {
	margin-bottom: 20px;
	border: 1px solid #ddd;
	padding: 15px;
}
/* 確認画面での入力内容の表示を整えるCSS */
#confirmation_details p {
	margin: 5px 0;
	border-bottom: 1px dashed #eee;
	padding-bottom: 5px;
}
#confirmation_details strong {
	display: inline-block;
	min-width: 100px;
	/* ラベルの幅を揃えるため */
	font-weight: bold;
	margin-right: 10px;
}
.popup_actions {
	text-align: center;
	margin-top: 20px;
}
.popup_actions button {
	padding: 10px 20px;
	margin: 0 10px;
	cursor: pointer;
}
#final_submit_btn {
	background: #0073aa;
	/* WordPressの標準カラーなど */
	color: white;
	border: none;
}
#edit_btn {
	background: #f0f0f0;
	color: #333;
	border: 1px solid #ccc;
}


.contact #content {
  margin: 2vw auto 8vw;
}

/*-------------------------------------メディアクエリ750以下【SPのみ】-------------------------------------*/
@media only screen and (max-width: 750px) {
	.pc_only {
		display: none !important;
	}
	/*ヘッダー*/
	.header_nav {
		display: none;
	}
	.site-logo {
		width: 50vw;
	}
	.site-title a {
		font-size: 4vw;
	}
	.main-header-content {
		padding: 4vw;
	}
  .drawer-hamburger {
		width: 9vw;
		line-height: 1;
		margin-top: 1vw;
    color: #000;
	}
	.drawer-hamburger-icon::before {
		top: -0.1vw;
	}
	.drawer-hamburger-icon::before {
		top: -2vw;
	}
	.hamburger_text {
		font-size: 2.8vw;
		margin-top: 0.8vw;
	}
	body.overflow_hidden .main-header {
		padding-right: 0;
	}
	.drawer-navigation {
		width: 100%;
		padding: 16vw 12vw;
	}
	.drawer_logo {
		display: none;
	}
  .header_nav_container .nav_item {
    margin-bottom: 3vh;
  }
	.header_nav_container .nav_item .nav_label {
		font-size: 5vw;
	}
	.header_nav_container .child_menu {
		padding-left: 4vw;
    margin-top: 1.2vh;
	}
	.header_nav_container .child_menu li {
		font-size: 4.6vw;
		margin-bottom: 3vw;
	}
  /*Footer*/
	.footer_contents {
		font-size: 3vw;
    display: block;
	}
	.footer_container {
		padding: 8vw 4vw;
		aspect-ratio: 9/16;
		background: url(/wp-content/themes/original/images/footer/footer_bg_sp.webp);
		background-size: auto;
		background-size: 100% 100%;
	}
	.footer_logo {
		width: 60vw;
		margin: 0 0 6vw;
	}
	.footer_nav {
		width: 48%;
    margin-left: auto;
	}
	.footer_nav_top {
		display: block;
	}
	.footer_nav .nav_label {
		font-size: 5vw;
    padding-left: 6vw;
	}
	.footer_nav .nav_label::before {
		width: 4vw;
		height: 4vw;
		border-width: 2px;
	}
	.child_menu li {
		font-size: 4vw;
		margin-bottom: 2vw;
	}
	.footer_nav_top .has_child .nav_label {
		margin-bottom: 3vw;
	}
	.footer_nav_top .has_child:nth-child(2)::before, .footer_nav_top .has_child:nth-child(2)::after {
		height: 100%;
		width: 1px;
    display: none;
	}
	.footer_nav_bottom {
		display: block;
	}
	.footer_nav_bottom li {
		margin-bottom: 6vw;
	}
  .footer_nav_top .has_child {
		margin-bottom: 6vw;
	}
	.footer_nav_top .has_child:nth-child(2) {
		margin-left: 0;
		margin-right: 0;
		margin-bottom: 6vw;
		padding: 0;
	}
	.child_menu.grid li:nth-last-child(1), .child_menu.grid li:nth-last-child(2) {
		margin-bottom: 0;
	}
	/*トップページ*/
	/*FV*/
	.fv_copy {
		bottom: 11vw;
    left: 10vw;
    font-size: 10vw;
    line-height: 1.5;
    font-weight: 700;
	}
	.fv_scroll {
		width: 12vw;
		bottom: 6vw;
		right: 6vw;
	}
  /*パララックス部分*/
	.parallax_title {
		padding: 8vw 0;
	}
	.parallax_col3 {
		height: 120vh;
	}
  .parallax_item {
    width: calc(100% / 2 - 1vw);
  }
	.parallax_main {
		width: 85vw;
		top: 50vw;
	}
	.parallax_main_block {
		border-radius: 8vw;
		padding: 8vw 8vw;
	}
	.parallax_main_block .title {
		font-size: 8vw;
		margin-bottom: 6vw;
	}
	.parallax_main_block .text {
		font-size: 4vw;
		line-height: 1.5;
	}
	.parallax_main_sign {
		font-size: 4vw;
		position: static;
		transform: none;
		display: inline-block;
		margin-bottom: 8vw;
		padding-bottom: 1vw;
		border-bottom: 2px solid;
		font-weight: 500;
		letter-spacing: 0.6vw;
	}
  /*セクション全体*/
	.section_inner {
		padding: 12vw 0;
	}
	.section_title {
		font-size: 6.2vw;
		padding-bottom: 2vw;
		margin-bottom: 4vw;
	}
	.section_title_icon {
		width: 5vw;
		margin-right: 2vw;
	}
	/*News*/
	.home_news_items {
		padding: 5vw;
	}
	.home_news_item {
		margin-bottom: 4vw;
	}
	.home_news_item a {
		font-size: 4vw;
		display: block;
	}
	.news_date {
		display: block;
		margin-right: 0;
	}
	.section_title.with_caption {
		flex-wrap: wrap;
		justify-content: start;
	}
	.section_title.with_caption .caption {
		margin-left: 0;
	}
	/*Service*/
	.service_contents {
		display: block;
		margin-bottom: 12vw;
	}
	.service_image {
		width: 100%;
		margin-bottom: 6vw;
	}
	.service_text p {
		font-size: 4vw;
		padding-top: 0;
	}
	.service_category {
		display: block;
		margin-bottom: 12vw;
	}
	.service_category_image {
		width: 100%;
		margin-right: 0;
		margin-bottom: 9vw;
	}
	.category_caption {
		font-size: 4vw;
		padding-bottom: 3vw;
		margin-bottom: 6vw;
	}
	.section_h3 .main {
		font-size: 10vw;
    margin-bottom: 3vw;
	}
	.section_h3 .sub {
		font-size: 6vw;
	}
  .service_category.air_conditioning .section_h3 .sub {
    font-size: 5vw;
  }
	.category_item_label {
		font-size: 7vw;
    white-space: nowrap;
	}
	.category_item {
		margin-bottom: 2vw;
		width: calc(50% - 0.6vw);
	}
  .category_items.col2 {
		display: block;
	}
	.category_items.col2 .category_item {
		width: 100%;
		margin-bottom: 4vw;
	}
	.service_category.air_conditioning .category_item {
		width: 100%;
	}
  .service_category.air_conditioning .category_item img {
		aspect-ratio: 1/0.7;
		object-fit: cover;
	}
  .service_category.air_conditioning .section_h3 .sub {
		font-size: 5vw;
	}
	.service_category_copy {
		width: 70vw;
		padding: 4vw 4vw 8vw;
		margin-top: 6vw;
	}
	.service_category_copy .copy_title {
		font-size: 4.6vw;
		margin-bottom: 3vw;
	}
	.service_category_copy .copy_text {
		font-size: 3.6vw;
	}
	.service_category_copy img {
		width: 8vw;
	}
  /*ポイント*/
	.point_items {
		width: 78%;
    display: block;
	}
	.point_item {
		width: 100%;
		margin-right: 0;
    margin-bottom: 12vw;
	}
	.point_item_title {
		font-size: 4.4vw;
		padding: 3vw 0;
		margin-bottom: 4vw;
	}
	.point_item.item1 {
		margin-right: 0;
	}
	.point_item_image {
		margin: 0 auto 2vw;
	}
	.point_item.item1 .point_item_image {
		width: 14vw;
	}
	.point_item.item2 .point_item_image {
		width: 16vw;
		margin: 9.2vw auto 8vw;
	}
	.point_item.item3 .point_item_image {
		width: 18vw;
		margin: 9.2vw auto 8vw;
	}
	.piont_item_caption {
		font-size: 5vw;
	}
  /*Flow*/
	.flow_items {
		width: 100%;
	}
	.flow_item {
		padding: 12vw 0 10vw;
	}
	.flow_item_container {
		width: 64vw;
	}
	.flow_item_title {
		font-size: 6vw;
	}
	.flow_item_text {
		font-size: 4vw;
	}
  /*お客様の声*/
	.reviews_item_contents {
		padding: 4vw;
	}
	.reviews_item_meta {
		font-size: 4vw;
		margin-bottom: 2vw;
	}
	.reviews_item_meta img {
		height: 6vw;
		margin-right: 3vw;
	}
	.reviews_item_text {
		font-size: 3.4vw;
	}
  /*許認可について*/
  .official_permission_images {
		display: block;
	}
	.official_permission_caption {
		width: 100%;
	}
	.official_permission_image {
		width: 100%;
	}
  /*求人募集*/
  .recruit_container {
    width: 90%;
  }
  /*サイドボタン・トップへ戻るボタン*/
	.fixed_menu_item a {
		width: 16vw;
		height: 16vw;
		font-size: 3.6vw;
	}
	.back-to-top {
		width: 16vw;
		height: 12vw;
	}
	.back-to-top::before {
		width: 3vw;
		height: 3vw;
	}
  /*各ページ*/
	#page {
		padding-top: 16vw;
	}
	.page #content {
		width: 90vw;
	}
	/*水道・空調ページ*/
	.section_block {
		margin-bottom: 12vw;
    padding-top: 16vw;
    margin-top: -16vw;
	}
	.page_kv {
		margin-bottom: 4vw;
	}
	.page_kv_container {
		width: 100%;
	}
	.kv_image>img {
		width: 88%;
		margin-right: 6vw;
	}
	.page_kv_title .main {
		font-size: 8vw;
	}
	.page_kv_title .sub {
		font-size: 4vw;
	}
	.page_kv_container .fv_scroll {
		width: 10vw;
		right: -4vw;
		z-index: 0;
	}
	.trouble {
		margin-bottom: 8vw;
	}
	.section_inner.col2 {
		display: block;
	}
	.page_section_title {
		font-size: 4.4vw;
		padding-bottom: 2vw;
		margin-bottom: 4vw;
	}
	.section_inner.col2 .page_section_title {
		width: auto;
		padding-bottom: 2vw;
	}
	.section_inner.col2 .page_section_contents {
		width: 100%;
	}
	.page_section_contents .main_text {
		margin-bottom: 4vw;
	}
	.page_section_contents .main_text p {
		font-size: 4vw;
	}
	.page_section_contents .images {
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 4vw;
	}
	.page_section_contents .image_item {
		width: 42vw;
		margin: 0;
	}
	.case_items {
		gap: 4vw;
    grid-template-columns: repeat(2, 1fr);
	}
  .case_items_label {
		top: -8vw;
	}
	.case_items_label .main {
		font-size: 6vw;
	}
	.case_items_label .sub {
		font-size: 5vw;
	}
  .washing_machine_stand .case_items_label .main {
    white-space: nowrap;
  }
  .air_conditioner_business .case_items_label {
    top: -8vw;
  }
  .air_conditioner_business .main {
    white-space: nowrap;
  }
  .section_title.aircon .sub {
		width: 100%;
		font-size: 3.4vw;
		margin-top: 1vw;
		margin-bottom: 1vw;
	}
	.air-conditioning-equipment .section_title.aircon {
		flex-wrap: wrap;
	}
	.section_title.aircon .section_title_icon {
		width: 8vw;
	}
  /*フォーム*/
	.recruit_main, .about_main{
		width: 90vw;
	}
	.recruit_head, .about_head {
		padding-left: 4vw;
		margin-bottom: 6vw;
	}
	.recruit_head::before, .about_head::before {
		width: 2vw;
	}
	.recruit_block_title .sub, .about_block_title .sub {
		font-size: 5vw;
		margin-bottom: 1.8vw;
	}
	.recruit_block_title .main, .about_block_title .main {
		font-size: 5vw;
	}
	.recruit_block, .about_block {
		margin-bottom: 8vw;
	}
	.occupation {
		margin-bottom: 4vw;
	}
	.occupation_label_main {
		font-size: 4vw;
		padding: 0.4vw 1.6vw 0.7vw;
		margin-right: 2vw;
	}
	.occupation_label_sub {
		font-size: 4vw;
	}
	.recruit_table th, .about_table th {
		font-size: 4vw;
		display: block;
		width: 100%;
		padding: 2vw 0;
	}
	.recruit_table td, .about_table td {
		display: block;
		font-size: 4vw;
		border-bottom: 0;
	}
	.recruit_table, .about_table {
		border-spacing: 0;
		border-bottom: 2px solid;
	}
	.recruit_table th, .recruit_table td, .about_table th, .about_table td {
		border-bottom: 0;
	}
	.form_container {
		width: 90vw;
	}
	.contact_table {
		border-bottom: 2px solid #000;
		margin-bottom: 4vw;
	}
	.contact_table th, .contact_table td {
		display: block;
		width: 100%;
		border: 2px solid #000;
		border-bottom: 0;
		font-size: 4vw;
		padding: 2vw;
	}
	.contact_label {
		margin-bottom: 0;
	}
	.required {
		right: auto;
		left: 1.4vw;
	}
	.contact_table th {
		padding-left: 10vw;
	}
	.form_contents input, .form_contents textarea {
		font-size: 4vw;
		padding: 2vw;
	}
	.contact_item.radio .wpcf7-list-item-label {
		font-size: 4vw;
	}
	.contact_item.radio input {
		margin-right: 1.6vw;
	}
	.contact_item.radio .wpcf7-list-item {
		margin-right: 6vw;
	}
	.contact_confirm_btn_area {
		width: 100%;
	}
	#confirm_btn {
		font-size: 5vw;
		padding: 3vw 0;
		border-radius: 1.8vw;
	}
	.form_contents {
		margin-bottom: 12vw;
	}
  .acceptance {
		margin-bottom: 6vw;
		margin-top: 6vw;
	}
	.acceptance_text {
		width: 100%;
		font-size: 4vw;
		margin-bottom: 4vw;
	}
	.acceptance input {
		margin-right: 3vw;
	}
	.acceptance label {
		font-size: 4vw;
	}
	
}
/*--------------------------------メディアクエリ750以上【タブレット以上】---------------------------------*/
@media only screen and (min-width: 751px) {
	.sp_only {
		display: none !important;
	}
}