@charset "UTF-8";

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

::selection {
 background-color: #BD1B20;
 color: #fff;
}

hr{margin: 0;}

html {
 box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
 font-size: 62.5%;
 height: 100%;
 scroll-behavior: smooth;
 scroll-padding-top: 50px;
}

body {
 color: #333;
 /*font-family:  "ヒラギノ角ゴ ProN W3", HiraKakuProN-W3, 游ゴシック, "Yu Gothic", メイリオ, Meiryo, Verdana, Helvetica, Arial, sans-serif;*/
 font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
 background:#fff;
 font-size: 16px!important;
 font-weight: 400;
 line-height: 1.2;
 margin:0;
 padding:0;
 max-width: 100%;
 height: 100%;
}

/*フッター固定用*/
/*.wrapper{

 min-height: 100vh;
 position: relative;
 /*padding-bottom: 150px;/*フッターの高さ
 box-sizing: border-box;
}
@media screen and (max-width: 767px) {
.wrapper{
 padding-bottom: 220px;/*フッターの高さ
}
}
*/

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

a{
 text-decoration: none;
 color: #333;
}

a:hover{
 opacity: 0.7;
 transition: 0.8s;
}

i{
 margin: 0 5px;
}

p,div{
 line-height: 1.8;
}

a:visited{
 /*color: inherit!important;/*親と同じ*/
}

ul{
 padding-left: 0;
}

/*フェードイン*/
/* 画面外にいる状態 */
.fadein {
 opacity : 0.1;
 transform : translate(0, 50px);
 transition : all 500ms;
}

/* 画面内に入った状態 */
.fadein.scrollin {
 opacity : 1;
 transform : translate(0, 0);
}


/*簡易表示切り替え用*/
.pc { display: block !important; }
.sp { display: none !important; }
@media only screen and (max-width: 750px) {
.pc { display: none !important; }
.sp { display: block !important; }
}
@media only screen and (max-width: 750px) {
img { max-width: 100%; }
}


/* カーソル本体 */
.custom-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  background-color: #bd1b21;
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: width 0.2s ease, height 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
  z-index: 9999;
}

/* ホバー時の拡大 */
.custom-cursor.hover {
  width: 50px;
  height: 50px;
  background-color: #bd1b21;
  mix-blend-mode: difference;
}
@media screen and (max-width: 767px) {
  .custom-cursor {
   display: none;
  }
}




/*///////////////////////////////////////
横から表示
・flow-wrap　→　横並び（gridかflex指定）
・flow-inner　→　横並びにした要素の装飾はここに追加していく
・class名を変える場合はjsも変更
///////////////////////////////////////*/
.flow-wrap {
 opacity: 0;
 transform: translateY(20px);
 transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.flow-inner {
 display: block;
 opacity: 0;
 transform: translateY(20px);
 transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.flow-inner.show {
 opacity: 1;
 transform: translateY(0);
}



/* パンくず */
div#breadcrumb {
 font-size: 94%;
 background-color: #fff;
 border-bottom: 1px solid #bd1b21;
 color: #bd1b21;
 font-weight: bold;
}

div#breadcrumb ul{
 padding:5px 5px 5px 20px;
 margin: 0;
}

div#breadcrumb  ul li{
 display:inline;
 line-height:20px;
 font-size: 0.7em;
}

div#breadcrumb  ul li a{
 color: #bd1b21;
 font-weight: normal;
}

/*///////////////////////////////////////
ヘッダー
///////////////////////////////////////*/
#header{
 display: flex;
 justify-content: space-between;
 align-items: center;
 width: 100%;
 height: 70px;
 position: absolute;
 z-index: 1;
 background-color: #333;
 transition: 0.5s;
}

.sitetitle{
 font-size: 1.3em;
 margin: 0;
}
.sitetitle a{
 color: #fff;
}
.sitetitle img{
 display: block;
 margin: 0 auto;
 width: 150px;
}


#top-head {
  width: 100%;
  /*max-width: 1920px;*/
  /*height: 60px;*/
  height: 70px;
  /*background: rgba(0,0,0,1);*/
  background-image: linear-gradient(0deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2) 29%);
  opacity: 1;
  display: flex;
  align-items: center;
  position: fixed;
  z-index: 999;
  transition: 0.5s;
}
#top-head02 {
  width: 100%;
  /*max-width: 1920px;*/
  /*height: 60px;*/
  height: 70px;
  background: #fff;
  opacity: 1;
  display: flex;
  align-items: center;
  position: fixed;
  z-index: 999;
  transition: 0.5s;
}
#top-head .inner,
#top-head02 .inner {
  /*float: left;*/
  width: 90%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: 0.5s;
  padding-left: 10px;
}
/*logo style*/
.inner h1 a {
  color: #fff;
  text-decoration: none;
  font-weight: bold;
  transition: 0.5s;
}
/*nav style*/
#top-head nav ul,
#top-head02 nav ul {
  display: flex;
  list-style-type: none;
  align-items: center;
  transition: 0.5s;
}
#top-head nav ul li,
#top-head02 nav ul li {
  display: block;
  width: 150px;
  max-width: 100%;
  text-align: center;
  transition: 0.5s;
  font-weight: bold;
  font-size: 14px;
}
#top-head nav ul li span,
#top-head02 nav ul li span{
  display: block;
  text-align: center;
  font-size: 9px;
  color: #35BFF1!important;
}
/*nav link style*/
#top-head nav ul li a,
#top-head02 nav ul li span {
  text-decoration: none;
  /*padding: 16px;*/
  font-size: 14px;
  color: #fff;
  font-weight: bold;
  line-height: 1;
  transition: 0.5s;
}
#top-head nav ul li a:hover,
#top-head02 nav ul li a:hover {
  color: #BBD8FF;
}
#nav_toggle {
  display: none;
}
img {
  /*margin-top: 60px;*/
  width: 100%;
}
/*============================
mobile style
============================*/
@media screen and (max-width:680px) {
/*hamburger menu style*/
  #nav_toggle,
  #nav_toggle02{
    display: block;
    width: 30px;
    height: 30px;
    position: relative;
    top: 4px;
    z-index: 100;
  }
  #nav_toggle div,
  #nav_toggle02 div{
    position: relative;
  }
/*hamburger menu close style*/
  #nav_toggle span{
    display: block;
    height: 2px;
    background: #333;
    position:absolute;
    width: 100%;
    left: 0;
    -webkit-transition: 0.5s ease-in-out;
    -moz-transition: 0.5s ease-in-out;
    transition: 0.5s ease-in-out;
  }
  #nav_toggle02 span{
    display: block;
    height: 2px;
    background: #333;
    position:absolute;
    width: 100%;
    left: 0;
    -webkit-transition: 0.5s ease-in-out;
    -moz-transition: 0.5s ease-in-out;
    transition: 0.5s ease-in-out;
  }
  #nav_toggle span:nth-child(1),
  #nav_toggle02 span:nth-child(1){
    top:0px;
  }
  #nav_toggle span:nth-child(2),
  #nav_toggle02 span:nth-child(2){
    top:10px;
  }
  #nav_toggle span:nth-child(3),
  #nav_toggle02 span:nth-child(3){
    top:20px;
  }
/*hamburger menu open style*/
  .open #nav_toggle span:nth-child(1),
  .open #nav_toggle02 span:nth-child(1) {
    top: 10px;
    -webkit-transform: rotate(135deg);
    -moz-transform: rotate(135deg);
    transform: rotate(135deg);
  }
  .open #nav_toggle span:nth-child(2),
  .open #nav_toggle02 span:nth-child(2) {
    width: 0;
    left: 50%;
  }
  .open #nav_toggle span:nth-child(3),
  .open #nav_toggle02 span:nth-child(3) {
    top: 10px;
    -webkit-transform: rotate(-135deg);
    -moz-transform: rotate(-135deg);
    transform: rotate(-135deg);
  }
/*nav style*/
  #top-head nav,
  #top-head02 nav {
    display: none;
    position: absolute;
    top: 60px;
    left: 0;
    width: 100%;
    height: 1040px;
    background: #fff;
    z-index: 999;
  }
  #top-head nav ul,
  #top-head02 nav ul {
    display: block;
    width: 100%;
  }
  #top-head nav ul li,
  #top-head02 nav ul{
    text-align: center;
    border-bottom: 1px solid #dcdcdc;
  }
  #top-head nav ul li:last-child,
  #top-head02 nav ul li:last-child{
    border: none;
  }
/*nav link style*/
  #top-head nav ul li a,
  #top-head02 nav ul li a{
  display: flex;
  align-items: center;
  justify-content: center;
	color: #333;
  /*
	height: 50px;
	padding-top: 20px;
  */
	line-height: 5;
  }

/*SP時メニュー内部*/
	.innerSP{
	 display: block!important;
	 width: 100%;
	}
	.menu{
	 display: block!important;
	 width: 100%!important;
	}
	#top-head nav ul li,
	#top-head02 nav ul li{
	 display: block!important;
	 width: 100%!important;
	 height: 70px;
	}
  #top-head {
    background: #fff;
  }
}


.headBtn{
 display: flex;
 align-items: center;
 justify-content: center;
 background-image: linear-gradient(179deg, rgba(0, 0, 0, 1), rgba(255, 0, 0, 1));
 color: #fff!important;
 width: 200px;
 height: 70px;
 font-weight: bold;
 font-size: 14px;
 margin-left: 40px;
 opacity: 1;
}

@media screen and (max-width: 767px) {
  .headBtn{
    width: 100%;
    margin-left: 0px;
   }
}


/* スクロールしてscroll-navクラスがついたときのヘッダーデザイン */
.scroll-nav {
  background: #fff!important;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
  height: 45px!important;
}
.scroll-nav .logo,
.scroll-nav ul li a {
  color: #333!important;
}
.scroll-nav #nav_toggle span{
  background: #333!important;
}
.scroll-nav nav{
 top: 45px!important;
 transition: 0.5s;
}
.scroll-nav .headBtn{
 height: 45px;
}


/*///////////////////////////////////////
背景
///////////////////////////////////////*/
.bg-red{
 background: #bd1b21;
}



/*///////////////////////////////////////
見出し
///////////////////////////////////////*/
h2{
 font-size: 2em;
 color: #333;
}

.center_hd {
 display: flex;
 align-items: center;
 justify-content: center;
 text-align: center;
 margin: 50px auto;
 font-weight: bold;
}
.center_hd::before,
.center_hd::after {
 content: '';
 flex-grow: 1;
 height: 7px;
 background: #bd1b21;
}

.left_border{
 display: flex;
 align-items: center;
 font-weight: bold;
 color: #333;
 gap: 10px;
 line-height: 1.2;
 font-size: 1.8em;
}
.left_border span{
 display: block;
 font-size: 0.6em;
 color: #bd1b21;
 text-align: left;
}
.left_border::before{
 content: '';
 display: block;
 width: 40px;
 height: 5px;
 background: #bd1b21;
}

.left_border_w{
 color: #fff;
}
.left_border_w span{
 color: #fff;
}
.left_border_w::before{
 background: #fff;
}


/*下線右下斜め*/
.bottom_line {
 font-weight: bold;
 font-size: 1.5em;
 position: relative;
 padding-bottom: 10px;
 display: inline-block;
 color: #333;
}
.bottom_line::after {
 content: "";
 position: absolute;
 left: 0;
 bottom: 0;
 width: 100%;
 height: 2px;
 background: #c00;
}
.bottom_line::before {
  content: "";
  position: absolute;
  bottom: 0;
  right: -33px;
  width: 35px;
  height: 2px;
  background-color: #c00;
  transform: rotate(45deg);
  transform-origin: left bottom;
}


@media screen and (max-width: 767px) {
.center_hd{
 margin: 10px auto;
}

.bottom_line::before {
 right: -17px;
 width: 35px;
}
.bottom_line::after {
 width: 95%;
}
}

/*///////////////////////////////////////
メインコンテンツ
///////////////////////////////////////*/

/*メインイメージ*/
.mainimg{
 display: block;
 position: relative;
}
.mainimg img,
.mainimg video{
 width: 100%;
 height: 900px;
 object-fit: cover;
 user-drag: none;
 -webkit-user-drag: none;
 -moz-user-select: none;
}
.mainimg::before{
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 900px;
  background: rgba(0, 0, 0, 0.3);
  background-image: repeating-linear-gradient(-45deg, rgba(0 0 0 / .2) 0px, rgba(0 0 0 / .2) 1px, rgba(0 0 0 / 0) 0%, rgba(0 0 0 / 0) 50%);
  background-size: 6px 6px;
 }

.img-dark img{
 display: block;
 background-color: #333;
 opacity: 0.7;
}


@media screen and (max-width: 767px) {
.mainimg img,
.mainimg video{
 height: 600px;
}

.mainimg::before{
  height: 600px;
 }
}

/*メインイメージ　動画の場合*/
.kv{
 height: 100vh;
 display: flex;
 justify-content: center;
 align-items: center;
 position: relative;
}
.video{
 width: 100%;
 height: 100vh;
 background: url(./images/mainimg.jpg) no-repeat center/cover;
 position: absolute;
 top: 0;
 left: 0;
 overflow: hidden;
 z-index: -1;
}

.video::after{
 content: '';
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100vh;
 background: rgba(0, 0, 0, 0.3);
 background-image: repeating-linear-gradient(-45deg, rgba(0 0 0 / .2) 0px, rgba(0 0 0 / .2) 1px, rgba(0 0 0 / 0) 0%, rgba(0 0 0 / 0) 50%);
 background-size: 6px 6px;
}
.video video{
 min-width: 100%;
 min-height: 100%;
 width: auto;
 height: auto;
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translateX(-50%) translateY(-50%);
}


/*メインイメージ　テキスト*/
.imgcontent{
 color:#fff;
 font-weight: bold;
 position: absolute;
 top:40%;
 left: 5%;
 text-shadow: 0px 0px 7px rgba(0, 0, 0, 0.4);
 font-size:3em;
 line-height: 1.1;
 margin: 0;
}

#text1, #text2, #text3 {
  display: inline-block;
  overflow: hidden;
  white-space: nowrap;
  transform: scaleX(0);
  transform-origin: left;
}

#text1 {
  animation: s1 6s forwards;
}
@keyframes s1 {
  from { transform: scaleX(0); }
  33% { transform: scaleX(1); }
  to { transform: scaleX(1); }
}

#text2 {
  animation: s2 6s forwards;
}
@keyframes s2 {
  0% { transform: scaleX(0); }
  33% { transform: scaleX(0); }
  66% { transform: scaleX(1); }
  to { transform: scaleX(1); }
}

#text3 {
  animation: s3 6s forwards;
}
@keyframes s3 {
  0% { transform: scaleX(0); }
  66% { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

.text3-size{
 display: block;
 line-height: 2;
 margin-top: 30px;
 font-size: 15px;
}
@media screen and (max-width: 767px) {
.text3-size{
 font-size: 11px;
}
}


/*コンテンツ領域*/

main {
 margin: 6rem 0 0 0;
}
section {
 /*margin: 5rem 0;*/
 padding: 3rem 0;
}

.center {
 text-align: center;
 /*margin-bottom: 4rem;*/
}
.container {
 margin: 0 auto;
 max-width: 1200px;
 padding: 0 2.0rem;
 position: relative;
}


/*///////////////////////////////////////
ボタン
///////////////////////////////////////*/
.btn01 {
 display: block;
 width: 300px;
 line-height: 60px;
 text-align: center;
 text-decoration: none;
 color: #fff;
 background-color: #bd1b21;
 margin: 50px 0;
}
.btn01_w {
 color: #fff;
 border: 1px solid #fff;
}
@media screen and (max-width: 767px) {
.btn01 {
 margin: 30px 0;
}
}
.btn01 a {
 display: block;
 width: 300px;
 line-height: 60px;
 text-align: center;
 text-decoration: none;
 color: #fff;
 background-color: #bd1b21;
 position: relative;
}
.btn01_w a{
  width: 290px;
 }
.btn01 a::before {
 border-right: 2px solid #fff;
 border-top: 2px solid #fff;
 bottom: 0;
 content: "";
 height: 7px;
 width: 7px;
 margin: auto;
 position: absolute;
 right: 30px;
 top: 0;
 transform: rotate(45deg);
 transition: right .3s;
}
.btn01 a:hover {
 color: #fff;
 opacity: 1;
}
.btn01 a:hover::before {
  right: 25px;
}

/*2*/
a.btn02 {
 display: flex;
 justify-content: space-between;
 align-items: center;
 text-align: center;
 text-decoration: none;
 width: 250px;
 margin: 0px 0px 0px 30px;
 padding: 1rem 4rem;
 font-weight: bold;
 background: #333;
 color: #fff!important;
 position: relative;
 transition: 0.5s;
 border: 1px solid #fff;
}
a.btn02::before {
 content: '';
 position: absolute;
 top: calc(50% - 2px);
 right: 1em;
 transform: translateY(calc(-50% - 2px)) rotate(45deg);
 width: 10px;
 height: 1px;
 background: #fff;
}
a.btn02::after {
 content: '';
 position: absolute;
 top: 50%;
 right: 1em;
 transform: translateY(-50%);
 width: 30px;
 height: 1px;
 background-color: #fff;
}
a.btn02:hover {
 background: #fff;
 color: #333!important;
 opacity: 1;
}
a.btn02:hover::before,
a.btn02:hover::after{
 background: #333;
}

/*3*/
.btn03 {
 display: flex;
 align-items: center;
 justify-content: center;
 line-height: 1;
 text-decoration: none;
 color: #fff!important;
 font-size: 18px;
 border-radius: 0px;
 width: 300px;
 height: 40px;
 font-weight: bold;
 border: 0.8px solid #fff;
 transition: 0.3s;
 box-shadow: 3px 3px 0px 0px rgba(20,70,105,1);
 background-color: #1D5881;
 margin: 20px auto;
}

.btn03:hover {
 box-shadow: 0 0 #1D5881;
 color: #fff;
 background-color: #1D5881;
}

/*///////////////////////////////////////
セクション区切り
///////////////////////////////////////*/
.gray-back {
 /*background-color: #f5f5f5;*/
 background-color: #fff;
 color: #333;
 padding: 150px 0;
}
.blue-back {
 /*background-color: #1cb4d3;*/
 background-color: #e6f0ff;
 padding: 150px 0;
}

.gray-back {
 position: relative;
}
.gray-back::before {
 border-color: transparent #e6f0ff transparent transparent;
 border-style: solid;
 border-width: 50px 100vw 0 0;
 bottom: 0;
 content: "";
 height: 0;
 position: absolute;
}




/*///////////////////////////////////////
固定ページタイトルエリア
///////////////////////////////////////*/
.pagetitle{
 display: flex;
 justify-content: flex-start;
 align-items: center;
 font-size: 80%;
 font-weight: bold;
 height: 250px;
 padding: 70px 70px 0;
 background: #bd1b21;
 border-radius: 0 0 100px 0;
 gap: 30px;
}
.pagetitle img{
 width: 130px;
 height: auto;
}
.pagetitle-right p{
 display: block;
 font-size: 1.2em;
 color: #fff;
 margin: 0;
}

/*サービス一覧ページタイトルエリア*/
/*
.pagetitle-service{
 background: url(./images/titleBG2.jpg) no-repeat center center / cover;
 background-color: #fff;
}
*/

/*プライバシーポリシーページタイトルエリア*/
/*
.pagetitle-privacy{
 background: url(./images/titleBG3.jpg) no-repeat center center / cover;
 background-color: #fff;
}
 */

/*会社概要sページタイトルエリア*/
/*
.pagetitle-company{
 background: url(./images/titleBG4.jpg) no-repeat center center / cover;
 background-color: #fff;
}
 */

/*お問い合わせページタイトルエリア*/
/*
.pagetitle-contact{
 background: url(./images/titleBG1.jpg) no-repeat center center / cover;
 background-color: #fff;
}
*/


.pagetitle h2{
 font-size: 2em;
 margin: 0 auto;
 color: #fff!important;
	/*
 text-shadow:1px 1px 0 #FFF, -1px -1px 0 #FFF,
              -1px 1px 0 #FFF, 1px -1px 0 #FFF,
              0px 1px 0 #FFF,  0-1px 0 #FFF,
              -1px 0 0 #FFF, 1px 0 0 #FFF;
	*/
}

@media only screen and (max-width: 800px) {
  .pagetitle{
    height: 250px;
    padding: 70px 20px 0;
    border-radius: 0 0 80px 0;
    gap: 10px;
   }
  .pagetitle img{
    width: 80px;
   }
}


/*///////////////////////////////////////
会社概要
///////////////////////////////////////*/


.kaisya-gaiyou {
  border-collapse: collapse;
  width: 100%;
}

.kaisya-gaiyou th,
.kaisya-gaiyou td {
  border-bottom: 1px solid #dbe1e8;
  padding: 15px;
}

.kaisya-gaiyou th {
  /*background: #f9fafc;*/
  text-align: left;
  width: 200px;
}

@media only screen and (max-width: 800px) {
  .kaisya-gaiyou tr,
  .kaisya-gaiyou th,
  .kaisya-gaiyou td {
    display: block;
    width: auto;
  }

  .kaisya-gaiyou tr:first-child {
    border-top: 1px solid #dbe1e8;
  }

  .kaisya-gaiyou th,
  .kaisya-gaiyou td {
    border-top: none;
  }
}


/*///////////////////////////////////////
お問い合わせフォーム
///////////////////////////////////////*/
#cf7-area {
 width:100%;
 margin: 0 auto;
}

.cf7-item {
 display: flex;
 align-items: flex-start;
 justify-content: center;
 margin: 0 0 1.75em;
 border-bottom: 1px solid #ddd;
 padding-bottom: 10px;
}

.cf7-q {
 width: 30%;
}

.cf7-a {
 width: 60%;
}

/* 各項目共通 */
#cf7-area label{
 font-weight:bold;
}

#cf7-area input[type="text"],#cf7-area input[type="email"],#cf7-area input[type="tel"],#cf7-area textarea,#cf7-area input[type="date"],#cf7-area select {
 width: 100%;
 padding: 10px;
 font-size: 14px;
 height: 40px;
 border-radius: 3px;
}

#cf7-area input[type="text"]:focus,#cf7-area input[type="email"]:focus,#cf7-area input[type="tel"]:focus,#cf7-area textarea:focus,#cf7-area input[type="date"]:focus,#cf7-area select:focus {
 background: #fff0f0;
 border: 2px solid #BD1B20;
 outline: 0;
}

#cf7-area input[type="checkbox"], #cf7-area input[type="radio"]{
 appearance: auto;
}

#cf7-area .wpcf7-list-item {
 display: block;
}

#cf7-area textarea{
 height:200px;
 padding: 0.625em 0.4375em;
}

.cf7-accept-check{
 text-align: center;
 margin: 50px auto;
}

.cf7-submit {
 width: 40%;
 margin: 0 auto;
 text-align: center;
}

#cf7-area input[type="submit"]{
 width: 100%;
 background-color: #BD1B20;
 color: #ffffff;
 border-radius: 5px;
 font-size: 1.2em;
 padding: 1em 10px;
}

#cf7-area input[type="submit"]:hover{
 background-color:#ffffff;
 border: 2px solid #BD1B20;
 color:#BD1B20;
}

.cf7-btn{
 width: 40%;
 margin: 0 auto;
 text-align: center;
}

/*　必須ラベル　*/
.cf7-req{
 font-size:0.7em;
 padding: 4px 6px;
 border-radius: 5px;
 background: #eb2a2a;
 color: #ffffff;
 margin-left: 10px;
 display:inline-block;
}
/*任意ラベル*/
.cf7-any{
 font-size:0.7em;
 padding: 4px 6px;
 border-radius: 5px;
 background: #0b52a0;
 color: #ffffff;
 margin-left: 10px;
 display:inline-block;
}

.reserve{
 display: grid;
 grid-template-columns: repeat(2,1fr);
 gap: 5px;
 margin: 5px auto;
 align-items: flex-end;
}

@media screen and (max-width:768px){
.cf7-item {
 display: block;
}

#cf7-area label{
 display: block;
 margin-bottom: 10px;
}

.cf7-q {
 width: 100%;
 margin: 0;
}

.cf7-a {
 width: 100%;
}

#cf7-area input[type="text"], #cf7-area input[type="email"], #cf7-area input[type="tel"], #cf7-area textarea{
 margin-left: 0;
}

.cf7-submit{
 width: 90%;
}
}

/*///////////////////////////////////////
フッター
///////////////////////////////////////*/

/*固定用*/
footer{
/*
 width: 100%;
 color: #fff;
 text-align: center;
 padding: 30px 0;
 position: absolute;
 bottom: 0;
 height: 150px;
*/
}

.footer {
 padding: 2rem;
 font-size: 15px;
 color: #fff;
 background-color: #bc1b21;
 margin-top: auto;
 border-top: 0.8px solid #fff;
}

.footer a{
 /*font-weight: bold!important;*/
 color: #fff;
}

.footer-left{
 display: flex;
 align-items: flex-start;
 gap: 20px;
 padding: 20px;
 background: #fff;
 color: #333;
}

.sub-menu{
 display: block!important;
}

  .copyright {
 text-align: center;
 padding: 10px 0px;
 font-size:0.8em;
  }

@media screen and (max-width: 767px) {
.footer-left{
 flex-wrap: wrap;
}

footer{
 /*height: 220px;*/
}
  .copyright {
 padding: 10px 0px 30px;
  }
}


@media (min-width: 768px) {
  .md-flex {
    display: flex;
    align-items: flex-start;
  }

  .md-justify-between {
    justify-content: space-between;
    gap: 10px;
  }
}


/*///////////////////////////////////////
記事詳細ページ
///////////////////////////////////////*/

/*コメント削除*/
.wp-block-latest-comments__comment-meta{
 display: none;
}

/*本文エリア*/
.single-main{
 display: flex;
 justify-content: center;
 margin-bottom: 30px;
}
.single-area{
 display: block;
 width: 70%;
 height: fit-content;/*高さを記事のコンテンツに合わせる*/
 padding: 0px 50px 0 0;
 /*border: 2px solid #ddd;*/
 /*border-top: 5px solid #002588;*/
}

.blog-content img{
 width: 100%;
 margin:0px auto 30px;
}

.blog-detail__title{
 font-size: 2em;
 color: #b2302b;
 margin-top: 0;
 margin-bottom: 10px;
}

.blog-detail_cate{
 display: inline-block;
 font-size: 0.8em;
 background: #b2302b;
 padding: 3px 5px;
 border-radius: 30px;
 margin: 0 5px 0 0;
 color: #fff;
}

/*ウィジェットエリア*/
.widget{
 margin: 0!important;
}

.widget-area{
 display: block;
 width: 25%;
 padding: 0 30px;
 /*border: 1.5px solid #ddd;*/
 height: fit-content;
}
.widget-area ul{
  padding-left: 0;
}
.widget-area li{
 list-style: none;
}
.widget-area li a{
 display: block;
 color: #333;
 /*adding-top: 20px;*/
 border-bottom: 1px solid #333;
 padding: 10px 0;
}
.widget-title{
 border-left: 5px solid #b2302b;
 padding-left: 10px;
 color: #333;
 font-weight: bold;
 font-size: 1em;
}
.widget select{
 padding: 10px;
 width: 100%;
 font-size: 1em;
 border: none;
 border-bottom: 1px solid #333;
}
.wp-block-heading{
 display: block;
 margin: 10px 0;
 font-size: 1em;
}

@media screen and (max-width: 768px){
.single-main{
 flex-wrap: wrap;
}
.single-area{
 width: 100%;
 padding: 20px 0;
}
.widget-area{
 width: 100%;
 margin-top: 30px;
 padding: 20px 0;
}

.blog-detail__title{
 font-size: 1.3em;
 color: #b2302b;
 margin-top: 10px;
}
}

/*アイキャッチ*/
.blog-detail__image{
 margin: 30px auto;
}

/*本文*/
.blog-detail__body{
 display: block;
 margin: 0px auto;
 text-align: left;
 /*padding: 30px 0;*/
}

/*前後の記事へ*/
.prev-next-link a {
  border-bottom: 1px #ddd solid;
  display: block;
  text-decoration: none;
  padding: 14px 40px;
  color: #bd1b20;
}
.prev-next-link a:hover {
  background-color: #f6f6f6;
}
.prev-next-link a:first-child {
  border-top: 1px #ddd solid;
}
.prev-next-label {
  font-size: 1rem;
  color: #333;
  margin-bottom: 10px;
}
/* Images */
.thumb-wrap {
  display: flex;
}
.thumb-wrap p {
  margin: 0 0 0 16px;
}
.thumb-wrap img {
  width: 80px;
  height: 100%;
}

/* Larger devices */
@media ( min-width: 600px) {
  .prev-next-link {
    display: flex;
  }
  .prev-next-link a {
    flex: 1;
  }
  .prev-next-link a,
  .prev-next-link a:first-child {
    border: none;
  }
  .next-link {
    text-align: right;
  }
}


/*///////////////////////////////////////
テキストボックス
///////////////////////////////////////*/
.txtBox{
 display: block;
 margin: 30px auto 50px;
 width: 100%;
 text-align: left;
 font-size: 14px;
 line-height: 1.5;
}
.txtBox_center{
 display: block;
 margin: 30px auto 50px;
 width: 100%;
 text-align: center;
 font-size: 14px;
 line-height: 1.5;
}
@media screen and (max-width: 768px){
.txtBox{
 text-align: left;
 margin: 10px auto 20px;
}
.txtBox_center{
 text-align: left;
}
}

/*///////////////////////////////////////
アーカイブページ
///////////////////////////////////////*/
.blog-item{
 /*display: flex;*/
 display: block;
 align-items: center;
 /*margin: 30px auto;*/
 /*background-color: #F8F9FF;*/
 border: 1px solid #ddd;
 color: #333;
 padding: 0px;
}
.blog-item02{
 display: grid;
 grid-template-columns: 200px 1fr;
}
.blog-item__thumbnail-image{
 display: block;
 width: 100%;
 height: 150px;
 object-fit: cover;
}
.blog-item__content{
 padding: 20px;
}
.blog-item__title{
 margin: 0 0 20px;
 color: #333;
}
.blog-item__read{
 color: #333;
 font-size: 0.9em;
 font-weight: 500;
}
.blog-item__button{
 display: block;
 padding: 5px 10px;
 background-color: #333;
 color: #fff;
 text-align: center;
}
.blog-list__wrap{
 display: block;
 padding: 10px 0;
}


/*アイキャッチ付き一覧　category-event.php　参照*/
.arciveTitle{
 font-size: 30px;
}
.arciveList{
 display: flex;
 /*flex-wrap: wrap;*/
 justify-content: space-between;
}
.arcive-inner{
 display: flex;
 flex-wrap: wrap;
 width: 73%;
}
.blog-list__list-item{
 display: block;
 margin: 10px;
}
.blog-img{
 display: block;
 width: 100%;
 overflow: hidden;
 height: 200px;
}
.blog-img img{
 width: 100%;
 height: 200px;
 object-fit: cover;
 transition: transform .6s ease;
}
.blog-img img:hover{
 transform: scale(1.1);
}
.blog-item__thumbnail-image{
 display: block;
 width: 100%;
 height: 150px;
 object-fit: cover;
}
.blog-item__content{
 /*margin-left: 30px;*/
}
.blog-item__title{
 margin: 0 0 0px;
 color: #333;
 font-size: 15px;
}
.blog-item__read{
 color: #333;
 font-size: 0.9em;
 font-weight: 500;
}
.blog-item__button{
 display: block;
 padding: 5px 10px;
 background-color: #000;
 color: #fff;
 text-align: center;
}

.pagination{
 display: block;
 width: 100%;
}


@media screen and (max-width: 768px){
.arciveList,
.arcive-inner{
 display: block;
 width: 100%;
}
.blog-list__list-item{
 display: block;
 width: 95%;
 margin: 30px auto;
}
.blog-img02,
.blog-img02 img{
 border-radius: 10%;
}

.blog-item02{
 grid-template-columns: 1fr;
}
}


/*ページャー*/
.page-numbers{
 display: flex;
 margin: 30px auto;
 align-items: center;
 justify-content: center;
}
.page-numbers{
 padding-left: 0;
}
.page-numbers li{
 list-style: none;
}
.page-numbers a{
 list-style: none;
 display: block;
 width: 50px;
 height: 50px;
 background: #bd1b20;
 text-align: center;
 line-height: 50px;
 color: #fff;
 margin: 5px;
}
.page-numbers span{
 list-style: none;
 display: block;
 width: 50px;
 height: 50px;
 background: #fff;
 color: #bd1b20;
 font-weight: bold;
 text-align: center;
 line-height: 50px;
}

@media screen and (max-width: 768px){
.blog-item{
 flex-wrap: wrap;
}
.blog-item__thumbnail-image{
 display: block;
 height: 100%;
}
.blog-item__title{
 display: block;
 margin: 10px auto;
}
.navigation{
 position: initial;
 opacity: 1;
 width: 100%;
}
}



/*///////////////////////////////////////
レスポンシブ表示
///////////////////////////////////////*/
@media screen and (max-width: 768px){

/*ヘッダー*/
#header{
 height: 60px;
}

.header {
 flex-direction: column;
 /*margin-bottom: 10px;*/
}

.sitetitle {
 font-size: 1.1em;
}

.header-box {
 display: none;
}


/*スライダー*/
.mainslider .sliderImg img, .mainslider .sliderImg video{
 height: 100vh;
}
.slideContent{
 font-size: 1.2em;
}


/*見出し*/
h2{
 font-size: 1.2em;
}

/*メインコンテンツ*/

.imgcontent{
 max-width: 100%;
 top:40%;
 font-size: 1.6em;
 line-height: 1.4;
 z-index: 9;
}

/*フッター*/
#nav ul{
 display: inline-block;
}
#nav li{
 display: inline-block;
 width: 160px;
}

}



/*///////////////////////////////////////
お知らせ
///////////////////////////////////////*/

.news-list2{
  list-style: none outside;
  margin: 0;
  padding: 0;
}
.news-list2 li:first-child{
 border-top: 1px solid #ddd;
}
.news-list2 .item a{
  display: block;
  text-decoration: none;
  color: #333;
  padding: 20px 0px 20px 0px;
}

.news-list2 .item {
  border-bottom: 1px solid #ddd;
}

.news-list2 .item:first-child a{
 /* border-top: 1px solid #CCC;*/
}
.news-list2 .item .date{
  text-align: left;
  margin: 0;
  min-width: 120px;
  font-size: 16px;
  color: #bd1b21;
  padding: 0 20px 0 0;
}
.news-list2 .item .cate{
  display: inline-block;
  background-color: #002588;
  width: 100px;
  font-size: 16px;
  color: #fff;
  padding: 0px;
  margin: 0px 35px 0px 0px;
  text-align: center;
}

/*カテゴリーごとに色変え　クラス名はカテゴリースラッグ名と同じにする*/
.cate-event{
  display: inline-block;
  width: 100px;
  font-size: 16px;
  color: #fff;
  padding: 0px;
  margin: 0px 35px 0px 0px;
  text-align: center;
  background-color: #fcba03;
}


.news-list2 .item .title{
  margin: 0;
  width: 100%;
  text-align: left;
  font-size: 1em;
  font-weight: bold;
}
.news-list2 .item a:hover .title{
  color: #BC1B21;
}

.news-more{
 display: inline-block;
 font-weight: bold;
 margin-top: 15px;
 margin-bottom: 20px;
}


@media screen and (max-width: 767px){
.news-list2 .item a{
  flex-wrap: wrap;
  padding: 15px 0px;
}
.news-list2 .item .date{
  min-width: 100px;
}
.news-list2 .item .title{
  margin-top: 10px;
}
}


/*///////////////////////////////////////
プライバシーポリシー
///////////////////////////////////////*/
.privacy_h3{
 display: block;
 background-color: #0b52a0;
 text-align: left;
 font-size: 1.2em;
 color: #fff;
 margin: 30px auto 0px;
 padding: 10px;
}


/*///////////////////////////////////////
フッターメニュー
///////////////////////////////////////*/
.footerMenu{
 text-align: left;
}
.footerMenu ul{
 display: flex;
 list-style: none;
 padding-left: 0;
}
.footerMenu li{
 display: block;
 margin: 0 20px;
}
.footerMenu  > li > a{
 display: block;
 padding: 0 15px;
 line-height: 40px;
 color: #00459B;
 font-size: 15px;
 text-decoration: none;
}

.footerMenu i{
 vertical-align: middle;
}

@media screen and (max-width: 767px){
.footerMenu ul{
 display: block;
}
}


/*///////////////////////////////////////
カラム
///////////////////////////////////////*/
.col02{
 display: grid;
 grid-template-columns: repeat(2,1fr);
 gap: 30px;
}
.header-con{
 display: none;
}
@media screen and (max-width: 767px){
.col02{
 grid-template-columns: 1fr;
}
.header-con{
 display: grid;
 grid-template-columns: repeat(2,1fr);
}
.header-tel{
 background: #bd1b21;
 color:#fff;
 padding: 20px;
 text-align: center;
 font-size: 1.2em;
 font-weight: bold;
}
.header-tel i{
 display: block;
 font-size: 2em;
 margin-bottom: 5px;
}
.header-mail{
 background: #333333;
 color:#fff;
 padding: 20px;
 text-align: center;
 font-size: 1.2em;
 font-weight: bold;
}
.header-mail i{
 display: block;
 font-size: 2em;
 margin-bottom: 5px;
}
}

/*///////////////////////////////////////
インデックスコンテンツ
///////////////////////////////////////*/

/*事業案内*/
.hover-card {
 position: relative;
 overflow: hidden;
 width: 100%;
 cursor: pointer;
}
.hover-image {
 width: 100%;
 height: auto;
 transition: transform 0.6s ease, filter 0.4s ease;
 display: block;
}
/*
.hover-copy{
 display: block;
 position: absolute;
 top: 15%;
 transform: translateY(-15%);
 -webkit-transform: translateY(-15%);
 -ms-transform: translateY(-15%);
 font-weight: bold;
 z-index: 2;
 text-align: left;
}
.hover-copy span{
 color: #fff;
 font-size: 18px;
 background: #bc1b21;
 padding: 5px;
}
 */
.hover-text {
 position: absolute;
 bottom: 2px;
 font-size: 1.2em;
 right: 0;
 display: inline-block;
 padding: 15px 30px;
 background: #fff;
 color: #333;
 font-weight: bold;
 text-align: center;
 transition: background 0.4s ease;
 z-index: 2;
}
.hover-text span{
 font-size: 1.3em;
 font-weight: bold;
 color: #bd1b21;
}
.hover-card::before {
 content: "";
 position: absolute;
 /*top: 100%;*/
 top: 87%;
 left: -50%;
 width: 200%;
 height: 100%;
 background: #bd1b21;
 transform: rotate(10deg);
 transition: top 0.5s ease;
 z-index: 1;
}
a.hover-card{
 opacity: 1;
}
.hover-card:hover::before {
 top: 0;
 background: rgba(189, 27, 33, 0.3);
}
.hover-card:hover .hover-image {
 transform: scale(1.1);
 filter: brightness(0.9);
}
.hover-card:hover .hover-text {
 background: rgba(189, 27, 33, 1);
 color: #fff;
}
.hover-card:hover .hover-text span{
 color: #fff;
}


.hover-copy {
  display: block;
  position: absolute;
  top: 7%;
  left: 16%;
  transform: translate(-50%, -15%);
  font-weight: bold;
  z-index: 2;
  text-align: center;
  text-shadow: 2px 2px 5px rgba(0,0,0,0.7);
  /*width: 75%;*/
}
.hover-copy02 {
 display: block;
 position: absolute;
 top: 7%;
 right: 4%;
 transform: translate(-50%, -15%);
 font-weight: bold;
 z-index: 2;
 text-align: center;
 text-shadow: 2px 2px 5px rgba(0,0,0,0.7);
 /*width: 75%;*/
}

.hover-copy span,
.hover-copy02 span{
 display: block;
 color: #fff;
 font-size: 18px;
 padding: 15px 10px;
 margin-bottom: 10px;
 background: linear-gradient(45deg, #bc1b21, #ff6a00);
 border-radius: 12px;
 box-shadow: 0 0 20px rgba(188, 27, 33, 0.7);
 transform: skew(-5deg);
 transition: transform 0.4s ease;
}

/* ホバーしたときだけアニメーション */
.hover-card:hover .hover-copy span {
  animation: pulse 1.2s infinite;
}
/* アニメーションの定義 */
@keyframes pulse {
  0% { transform: skew(-5deg) scale(1); }
  50% { transform: skew(-5deg) scale(1.1); }
  100% { transform: skew(-5deg) scale(1); }
}

@media screen and (max-width: 767px){
.hover-card{
 margin: 100px 0 0px;
}
.hover-text {
 font-size: 1em;
 padding: 15px 10px;
}
.hover-copy {
 top: 10%;
 left: 50%;
 width: 95%;
}
.hover-copy02 {
 top: 62%;
 left: 50%;
 right: auto; /* ← 念のため reset */
 width: 95%;
 transform: translate(-50%, -15%);
}
.hover-copy span,
.hover-copy02 span{
 font-size: 14px;
}
}


/*お客様の声スライダー*/
.voice-card{
  padding: 0 20px 0px 20px;
 }
 .voice-card .swiper-slide {
  background: white;
  border: 8px solid #b2302b;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  position: relative;
  max-width: 300px;
  flex: 0 0 auto;
  margin-bottom: 50px;
 }
 .voice-card a{
  display: block;
  padding: 20px 0;
 }
 .voice-img {
  width: 200px;
  height: 150px;
  margin: 0 auto;
  margin-top: -28px;
  object-fit: cover;
 }
 .voice-card .slide-content {
  padding: 0 16px;
  color: #333;
  font-size: 14px;
  /*font-weight: bold;*/
 }
 .voice-card .slide-title {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 8px;
 }
 .voice-card .slide-title span {
  color: #b2302b;
  font-weight: bold;
 }
 .voice-card .slide-date {
  display: none; /* 日付が不要なら非表示 */
 }
 /* ▼の飾り */
 .voice-card .swiper-slide::after {
  content: '';
  position: absolute;
  bottom: -28px;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  height: 25px;
  background-color: #b2302b;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
 }
 .voice-card .swiper-slide:last-child {
  margin-right: 0;
 }
 .voice-name{
  display: block;
  text-align: center;
  margin: 15px auto;
  color: #333;
  font-weight: bold;
 }
 .voice-name span{
  color: #b2302b;
  font-size: 1.2em;
  margin-right: 5px;
 }
 .voice-card .swiper-wrapper {
  box-sizing: content-box;
 }

.voice-head{
 display: flex;
 justify-content: space-between;
 align-items: center;
 flex-wrap: wrap;
}

.swiper-button-next,.swiper-button-prev{
  background-color: rgba(255,255,255,0.8);
  border: 1px solid #333;
  width: 50px;
  height: 50px;
}
.swiper-button-next{
  right: 0;
}
.swiper-button-prev{
  left: 0;
}
.swiper-button-next::after{
  content: '>';
  color: #333;
  font-size: 1.5rem;
}
.swiper-button-prev::after{
  content: '<';
  color: #333;
  font-size: 1.5rem;
}


/*施工事例*/
.news-list{
 display: grid;
 grid-template-columns: repeat(4,1fr);
 justify-content: center;
 gap: 10px;
 list-style: none outside;
 margin: 0 0 50px 0;
 padding: 0;
}
.news-list .item a{
 text-decoration: none;
 color: #fff;
 padding: 15px 0px 15px 0px;
}
.news-list .item {
 background: #fff;
 color: #333;
 padding: 10px 10px 50px;
 position: relative;
 height: auto;
}
.news-list .item:first-child a{
 /* border-top: 1px solid #CCC;*/
}
.news-list .item .date{
 margin: 0;
 min-width: 120px;
 font-size: 16px;
 color: #999;
 padding: 0 20px 0 0;
}
.news-list .item .title{
 margin: 20px 0 0;
 width: 100%;
 color: #bd1b21;
 font-weight: bold;
 text-align: left;
}
 .news-list .item a:hover .title{
   /*color: #35BFF1;*/
 }

.exce{
 display: block;
 color: #333;
 font-size: 0.9em;
 /*font-weight: bold;*/
 margin: 20px auto 20px;
}
.s-more{
 display: block;
 background: #bd1b21;
 color: #fff;
 padding: 10px;
 text-align: center;
 position: absolute;
 bottom: 10px;
 left: 50%;
 transform: translateX(-50%);
 -webkit-transform: translateX(-50%);
 -ms-transform: translateX(-50%);
 width: 90%;
}


 @media screen and (max-width: 767px){
 .news-list .item a{
   flex-wrap: wrap;
   padding: 15px 0px;
 }
 .news-list .item .date{
   min-width: 100px;
 }
 .news-list .item .title{
   margin-top: 10px;
 }
 .news-list{
  grid-template-columns: 1fr;
 }
 }

/*お知らせ追加分*/
.notice2col{
 display: grid;
 grid-template-columns: 400px 1fr;
 gap: 10px;
}

@media screen and (max-width: 768px){
.notice2col{
 grid-template-columns: 1fr;
}
}


/*About*/
.aboutBG{
 background: url(./images/a-pitBG.jpg) no-repeat top center/cover;
 background-attachment: fixed;
 padding-bottom: 30px;
}
.aboutBG h2,
.aboutBG p{
 color: #fff;
}
.aboutBG h2{
 font-size: 2em;
}
.aboutBG p{
 line-height: 1.8;
 font-size: 14px;
}
.about2col{
 display: grid;
 grid-template-columns: 700px 1fr;
 margin: 30px auto;
 align-items: end;
 gap: 50px;
}
.about2col img{
 margin-bottom: 30px;
}
@media screen and (max-width: 768px){
.about2col{
 grid-template-columns: 1fr;
}
}


/*お問い合わせ*/
.fotter2col{
 display:grid;
 grid-template-columns: repeat(2,1fr);
 gap: 30px;
 align-items: flex-end;
}
@media screen and (max-width: 768px){
.fotter2col{
 grid-template-columns: 1fr;
}
}

.fotter2col i{
 font-size: 2em;
}
.telcontact{
 display: block;
 border: 5px solid #bd1b21;
 text-align: center;
 padding: 20px;
 background: #fff;
 color: #bd1b21;
 font-size: 1.3em;
 font-weight: bold;
}
.tel{
 display: flex;
 background: #bd1b21;
 color: #fff;
 font-weight: bold;
 padding: 10px;
 max-width: 300px;
 margin: 10px auto;
 align-items: center;
 gap: 10px;
 justify-content: center;
 font-size: 1.1em;
}
a.tel:hover{
 color: #fff;
}
.mailcontact{
 display: block;
 border: 5px solid #333;
 text-align: center;
 padding: 20px;
 background: #fff;
 color: #333;
 font-size: 1.3em;
 font-weight: bold;
}
.mail{
 display: flex;
 background: #333;
 color: #fff;
 font-weight: bold;
 padding: 10px;
 max-width: 300px;
 font-size: 0.8em;
 margin: 10px auto;
 align-items: center;
 justify-content: center;
 gap: 10px;
}



/*///////////////////////////////////////
デントリペア
///////////////////////////////////////*/
.bigtxt{
 display: block;
 color: #bd1b21;
 font-size: 1.6em;
 font-weight: bold;
}

.dent-wrap{
 display: grid;
 grid-template-columns: repeat(4,1fr);
 gap: 20px;
 background: #bd1b21;
 padding: 20px;
}
.dent-wrap img{
 display: block;
 width: 100px;
 margin: 10px auto 15px;
}
.dent-wrap div{
 display: block;
 background: #fff;
 color: #333;
 padding: 10px;
 text-align: center;
}
.dent-wrap div h3 span{
 display: block;
 font-size: 0.8em;
 font-weight: normal;
 margin: 0;
}
.dent-wrap div h3 span::before{
 content: "＼";
}
.dent-wrap div h3 span::after{
 content: "／";
}
.dent-wrap div span{
 display: block;
 color: #bd1b21;
 font-size: 1em;
 font-weight: bold;
 margin-bottom: 18px;
}
@media screen and (max-width: 768px){
  .dent-wrap{
    grid-template-columns: 1fr;
    margin: 30px auto;
   }
  }


/*料金テーブル*/
.price-table-container {
  margin: 4rem auto;
  background-color: #fff;
  font-family: 'Helvetica Neue', sans-serif;
  color: #222;
}
.price-table {
  width: 100%;
  border-collapse: collapse;
}
.price-table thead {
  background-color: #e60012;
  color: #fff;
}
.price-table th,
.price-table td {
  padding: 1.2rem;
  text-align: center;
  border-bottom: 1px solid #ddd;
}
.price-table tbody tr:hover {
  background-color: #fef2f2;
}

.price-table td strong {
  color: #e60012;
  font-weight: bold;
}

.highlight-row {
  background-color: #ffe5e5;
  color: #c30000;
  font-weight: bold;
}

/* スマホ用レイアウト */
@media (max-width: 768px) {
  .price-table thead {
    display: none;
  }

  .price-table, .price-table tbody, .price-table tr, .price-table td {
    display: block;
    width: 100%;
  }

  .price-table tr {
    margin-bottom: 2rem;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 1rem;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
  }

  .price-table td {
    text-align: left;
    padding: 0.5rem 0.8rem;
    position: relative;
  }

  .price-table td::before {
    content: attr(data-label);
    font-weight: bold;
    color: #555;
    display: block;
    margin-bottom: 0.3rem;
  }
}

/*取り扱いカード*/
.card-flex{
 display: flex;
 align-items: center;
 gap: 10px;
 margin: 20px auto;
}
.card-flex img{
 display: block;
 width: 50px;
}

/*出張修理*/
.areaBox{
display: block;
background:#ffebeb;
margin: 20px auto;
padding: 20px;
}
.areaBox ul{
 display: flex;
 flex-wrap: wrap;
 list-style: none;
 gap: 10px;
 background: #fff;
 margin-top: 0;
 padding: 10px;
 border-radius: 3px;
}
.areaBox ul li{
 display: block;
}
.areaBox h3{
 margin-top: 0;
 border-left: 5px solid #bd1b21;
 padding-left: 10px;
}
.areaBox span{
 display: inline-block;
 background: #bd1b21;
 padding: 5px 30px;
 border-radius: 3px;
 color: #fff;
 font-weight: bold;
}


/*施工例*/
.exampleBox{
 display: block;
}
.exampleBox h3{
 display: block;

}

/*ビフォーアフター*/
.img-compare {
 position: relative;
 width: 100%;
 max-width: 600px;
 overflow: hidden;
 user-select: none;
}
.img-compare img {
 display: block;
 width: 100%;
 pointer-events: none;
 height: 100%;
 object-fit: cover;
}
.img-overlay {
 position: absolute;
 top: 0;
 left: 0;
 width: 50%;
 height: 100%;
 overflow: hidden;
 z-index: 2;
}
.img-before {
 position: absolute;
 top: 0;
 left: 0;
}
.image-after {
 position: absolute;
 top: 0;
 left: 0;
 z-index: 1;
}
.img-slider-handle {
 position: absolute;
 top: 0;
 left: 50%;
 transform: translateX(-50%);
 width: 4px;
 height: 100%;
 background-color: #bd1b21;
 cursor: ew-resize;
 z-index: 3;
}
.img-label {
 position: absolute;
 top: 10%;
 left: 50%;
 transform: translate(-50%, -50%);
 background: rgba(0, 0, 0, 0.6);
 color: #fff;
 padding: 8px 16px;
 font-size: 1rem;
 white-space: nowrap;
 border-radius: 4px;
 pointer-events: none;
 z-index: 5;
}
.img-label02{
 left: 75%;
}
.label-before {
 z-index: 5;
}
.label-after {
 z-index: 2;
}
@media (max-width: 768px) {
.img-label02{
  left: 75%;
 }
}



/*///////////////////////////////////////
ウインドリペア
///////////////////////////////////////*/
.example2col{
 display: grid;
 grid-template-columns: 410px 1fr;
 gap: 30px;
 align-items: flex-start;
 margin-top: 30px;
}
.exampleBox02{
 display: block;
 background: #bd1b21;
 padding: 10px;
 margin-bottom: 30px;
}
.exampleBox02-inner{
  display: block;
  background: #fff;
  padding: 20px;
}
.exampleBox02-title{
 display: flex;
 margin-bottom: 10px;
 font-size: 1.5em;
 font-weight: bold;
 gap: 10px;
 align-items: center;
}
.exampleBox02-title span{
 display: flex;
 background-color: #bd1b21;
 border-radius: 50%;
 width: 40px;
 height: 40px;
 justify-content: center;
 align-items: center;
 color: #fff;
}
.exampleBox02-inner p{
 margin: 0;
}
@media (max-width: 768px) {
  .example2col{
    grid-template-columns: 1fr;
   }
  .example2col img{
    height: 250px;
    width: 100%;
    object-fit: cover;
  }
}

.osusume{
 display: block;
 background: #bd1b21 url(./images/hibi.png) right 0px bottom 0px no-repeat;
 background-size: 300px auto;
 position: relative;
 border-radius: 30px;
 color: #fff;
 box-shadow: 5px 5px 0px 0px rgba(0, 0, 0, 1);
 padding: 30px 20px;
 margin: 30px auto 0;
}
.osusume h4{
 border-bottom: 1px solid #fff;
 padding-bottom: 10px;
 font-size: 1.8em;
 display: block;
 width: 500px;
 margin: 0 auto;
}
.osusume h4 span{
 display: inline-block;
 padding: 0px 1px;
 margin-left: 3px;
 background: #fff;
 color: #bd1b21;
 font-size: 1.2em;
}
.osusume-maru::after{
 content: "●";
 display: block;
 color: #fff;
 font-size: 1.5em;
 position: absolute;
 top: 5px;
 left: 15px;
}
.osusume-maru::before{
 content: "●";
 display: block;
 color: #fff;
 font-size: 1.5em;
 position: absolute;
 top: 5px;
 right: 15px;
}
.osusume ul{
 font-size: 1.7em;
 display: block;
 width: 500px;
 margin: 0 auto;
 list-style: none;
 text-align: left;
 margin-top: 20px;
}
.osusume ul li{
 background: url(./images/ico-list.png) left 0px top 15px no-repeat;
 background-size: 35px auto;
 padding-left: 50px;
 line-height: 2.5;
 font-weight: bold;
}
.osusume img{
 display: block;
 position: absolute;
 left: 0;
 bottom: -20px;
 width: 250px;
}

/* タブレット用（768px〜1024px） */
@media screen and (max-width: 1024px) {
  .osusume img{
    width: 160px;
    }
}
@media (max-width: 768px) {
.osusume{
 padding: 30px 10px 120px;
 background-size: 180px auto;
}
.osusume h4{
 font-size: 1.5em;
 width: 100%;
}
.osusume ul{
 width: 100%;
 font-size: 1.2em;
}
.osusume ul li{
 background: url(./images/ico-list.png) left 0px top 8px no-repeat;
 background-size: 30px auto;
 padding-left: 40px;
 line-height: 2.5;
 }
 .osusume img{
 width: 160px;
 }
}



/*///////////////////////////////////////
保証内容
///////////////////////////////////////*/
.hosyoBG {
 display: block;
 background-color: #ffebec;
 background-image: url(./images/sankaku.png), url(./images/sankaku02.png);
 background-repeat: no-repeat, no-repeat;
 background-position: left top, right bottom;
 background-size: 250px auto, 250px auto;
 margin-top: 50px;
 padding: 50px 20px;
}

.hosyoBG img{
 width: 300px;
 max-width: 100%;
}
.hosyo-inner{
 display: block;
 background: #fff;
 width: 800px;
 max-width: 100%;
 margin: 30px auto;
 padding-bottom: 1px;
}
.hosyo-inner span{
 display: block;
 color: #fff;
 background-color: #bd1b21;
 padding: 10px;
 font-size: 1.3em;
 font-weight: bold;
}
.hosyo-inner ul{
 display: block;
 width: 700px;
 max-width: 100%;
 margin: 0 auto;
 text-align: left;
}
.hosyo-inner ul li{
 margin: 20px 0;
}
@media (max-width: 768px) {
.hosyo-inner ul{
 max-width: 85%;
}
.hosyoBG {
  background-color: #ffebec;
  background-image: none;
 }
}


/*///////////////////////////////////////
会社概要
///////////////////////////////////////*/
.aboutBox{
 display: block;
 border-bottom:1px solid #ddd;
 margin-bottom: 30px;
}
.aboutBox div{
 display: block;
 border-left: 5px solid #bd1b20;
 padding-left: 10px;
 font-weight: bold;
}

.imgfade{
 width: 100%;
 height: 400px;
 position: relative;
 margin-top: 30px;
}
.image {
 position: absolute;
 top: 0;
 left: 0;
 bottom: 0;
 right: 0;
 opacity: 0;
 background-size: cover;
 background-position: center center;
 animation: image-switch-animation 25s infinite;
}
.src1 {
 background-image: url(./images/hdn2.png);
}
.src2 {
 background-image: url(./images/XC90.jpg);
}
@keyframes image-switch-animation {
  0%   { opacity: 1; }
  10%  { opacity: 1; }
  40%  { opacity: 1; }
  50%  { opacity: 0; }
  100% { opacity: 0; }
}
.image:nth-of-type(1) {
  animation-delay: 0s;
}
.image:nth-of-type(2) {
  animation-delay: 12.5s;
}

@media (max-width: 768px) {
  .imgfade{
    height: 150px;
   }
}


/*///////////////////////////////////////
お問い合わせ
///////////////////////////////////////*/
.contact-flex{
 display:flex;
 gap:10px;
 align-items:center;
 color: #bd1b20;
}
.contact-flex i{
 font-size: 1.2em;
}
.contact-title{
 display: flex;
 font-weight: bold;
 align-items: center;
 gap: 10px;
 margin: 30px 0px 10px;
}

.wpcf7-acceptance input[type="checkbox"] {
 width: 20px;
 height: 20px;
 accent-color: #bd1b20; /* チェックの色を変更（ブラウザ対応） */
}
.wpcf7-acceptance label {
 font-size: 14px;
 color: #333;
 display: flex;
 align-items: center;
 gap: 8px;
}

/*ファイル*/
.wpcf7-file{
 display: inline-block;
 background-color: #fff;
 font-size: 1.3rem;
 height: 40px;
 padding-left: 0;
 border: 1px dotted #ddd;
 border-radius: 3px;
 margin-top: 10px;
 max-width: 90%;
}
input[type=file]::file-selector-button {
 padding: 0.5em;
 margin-right: 1em;
 border: none;
 color: #fff;
 background: #3972b7;
 height: 100%;
 cursor: pointer;
}


/*///////////////////////////////////////
記事一覧
///////////////////////////////////////*/
.post-list{
 display: grid;
 grid-template-columns: repeat(3,1fr);
 gap: 10px;
}
.post-list02{
 display: block;
}
.arcive-title{
 display: block;
 margin: 10px auto;
 font-weight: bold;
}

@media (max-width: 768px) {
  .post-list{
    grid-template-columns: 1fr;
   }
}



/*///////////////////////////////////////
プライバシーポリシー
///////////////////////////////////////*/
.privacy-head{
 border-left: 5px solid #bd1b21;
 padding-left: 10px;
 font-size: 1.5em;
 margin-bottom: 0;
}



/*///////////////////////////////////////
検索フォーム
///////////////////////////////////////*/
input[type="search"]{
 width: 150px;
 max-width: 100%;
 border: 1px solid #ddd;
 padding: 10px!important;
}

.search-form .search-submit {
  padding: 12px;
  cursor: pointer;
  background: #bc1b21;
  color: #fff;
  border: none;
}

.marker-red{
 display: inline-block;
 background: #bc1b21;
 color: #fff;
 font-weight: bold;
 padding: 0 3px;
}
.bold-txt{
 font-weight: bold;
 color:#bc1b21
}




/*///////////////////////////////////////
休業日カレンダー
///////////////////////////////////////*/
.calendar {
 width: 350px;
 max-width: 100%;
 color: #333;
}
.calendar h2{
 font-size: 1em;
 color: #fff;
 margin-top: 0;
}
@media (max-width: 768px) {
.calendar h2{
 margin-top: 30px;
}
}
