@charset "UTF-8";

/*!
Theme Name: takata-child
Description: 
Theme URI: 
Author: 
Author URI: 
Template:takata
Version:    1.1.3
*/

/************************************
** 子テーマ用のスタイルを書く
************************************/
/*必要ならばここにコードを書く*/

/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1023px以下*/
@media screen and (max-width: 1023px) {
  /*必要ならばここにコードを書く*/
}

/*834px以下*/
@media screen and (max-width: 834px) {
  /*必要ならばここにコードを書く*/
}

/*480px以下*/
@media screen and (max-width: 480px) {
  /*必要ならばここにコードを書く*/
}

/* ヘッダーロゴの最大高さを変更 */
.header-container-in.hlt-top-menu .logo-header img {
  max-height: 35px;
  width: auto;
}
@media screen and (max-width: 570px) {
  img.site-logo-image {
    max-width: 60vw;
    height: auto;
  }
}

div.announcement {
  display: none !important;
}

@media screen and (max-width: 570px) {
  div.announcement {
    display: block !important;
  }
  div.announcement img {
    max-width: 100%;
    width: 85vw;
    height: auto;
    text-align: center;
    margin: auto;
  }
}

/*-------スマホメシェアボタン非表示-------*/
@media screen and (max-width: 780px) {
  li.share-menu-button {
    display: none !important;
  }
}

/*-------スマホメニュー左マージン 2em-------*/
.menu-content .menu-drawer {
  padding: 2em 1em 30px 2em;
}

/*-------メニュー余白調整------*/
#navi .navi-in > ul > li > a {
  padding: 0 1em;
}

ul#menu-main_menu li i,
ul.menu-drawer li i {
  color: #0190d4;
}

/* ------フォントサイズ定義------------ */
/*基準を1rem=10pxに設定*/
html {
  font-size: 62.5%;
}
/*最小値:1.1rem → 可変（0.9rem + 0.625vw（画面幅320px:2px, 800px:5px, 1200px:7.5px））→ 最大値:1.6rem*/
.font_size_S {
  font-size: clamp(1.1rem, calc(0.9rem + 0.625vw), 1.6rem);
}
/*最小値:1.2rem → 可変（1rem + 0.625vw（画面幅320px:2px, 800px:5px, 1200px:7.5px））→ 最大値:1.7rem*/
.font_size_M {
  font-size: clamp(1.2rem, calc(1rem + 0.625vw), 1.7rem);
}
/*最小値:1.6rem → 可変（2rem + 0.625vw（画面幅320px:2px, 800px:5px, 1200px:7.5px））→ 最大値:2.5rem*/
.font_size_MM {
  font-size: clamp(2rem, calc(1.8rem + 0.625vw), 2.5rem);
}
/*最小値:1.6rem → 可変（2.2rem + 0.625vw（画面幅320px:2px, 800px:5px, 1200px:7.5px））→ 最大値:2.9rem*/
.font_size_L {
  font-size: clamp(2.4rem, calc(2.2rem + 0.625vw), 2.9rem);
}
/* ------フォントサイズ定義 END------------ */

/* ------コンテンツ幅------------ */
_.wrap {
  width: 1256px;
  margin: 0 auto;
}

/*------文字大きさ、装飾------------*/
* h1 {
  font-size: clamp(2rem, 2vw + 1rem, 2.7rem);
  color: #0190d4;
  font-weight: 600;
}
h2 {
  font-size: clamp(2rem, 2vw + 1rem, 3.6rem) !important;
  border-style: none;
  font-weight: 600;
  position: relative;
  text-align: center;
  color: #000066;
  background-color: rgba(255, 255, 255, 0) !important;
  margin-bottom: 2.5rem !important;
  padding: 0 0 1.5rem 0 !important;
}
h2:before {
  position: absolute;
  bottom: -5px;
  left: calc(50% - 30px);
  width: 60px;
  height: 5px;
  content: "";
  border-radius: 3px;
  background: #f18705;
}

* h3,
* h4 {
  border-style: none !important;
  padding-left: 0 !important;
}

h3.c_red {
  font-size: clamp(1.8rem, 2vw + 1rem, 2.4rem);
  color: #ff3300;
  text-align: center;
  font-weight: normal;
  margin-bottom: 0;
}

h3 {
  font-size: clamp(1.8rem, 2vw + 1rem, 1.9rem);
  border-bottom-color: #cccccc;
  line-height: 1.4;
  border-bottom-style: none;
  margin-bottom: 1.5em;
  font-weight: bold;
}
* h3:after {
  border-bottom-style: none;
}

* h4 {
  line-height: 1.3;
  font-weight: bold;
}
* p,
* table th,
* td,
* li {
  font-size: clamp(1.3rem, 0.991rem + 0.55vw, 1.4rem);
  line-height: 1.5;
}

* dt,
* dd {
  font-size: clamp(1.3rem, 0.991rem + 0.55vw, 1.4rem);
}
@media screen and (max-width: 570px) {
  * p,
  * table th,
  * td,
  * li {
    line-height: 1.4;
  }
}
/*------文字大きさ、装飾 END------------*/
html {
  scroll-behavior: smooth;
}

body img {
  max-width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

/* 横スクロールを出さない（まずはこれ） */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden; /* 確実に消す */
  margin: 0;
  padding: 0;
}

/* はみ出しの典型原因（幅計算）対策 */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* 画像/動画/iframe/svgs が親幅を超えないように */
img,
svg,
video,
iframe,
canvas {
  max-width: 100%;
  height: auto;
}

/* “100vw” が原因で横に1〜数pxはみ出すのを抑える用（よくある） */
body * {
  max-width: 100vw;
}

/* 可能なら hidden より安全な clip（対応ブラウザならこっちが自然） */
@supports (overflow-x: clip) {
  html,
  body {
    overflow-x: clip;
  }
}

/************************************
** インデックスページのエントリーカードのPV数を非表示
************************************/

.entry-card .admin-pv {
  display: none;
}

.related-entry-card-meta,
.entry-card-meta {
  display: none;
}
.related-entry-card-content,
.entry-card-content {
  padding-bottom: 0;
}

.ect-3-columns {
  justify-content: flex-start;
}

/*------メインメニュー　お問い合わせ------*/

.navi-in > ul li#menu-item-19 a {
  background-color: #f18705;
  color: #ffffff;
  font-size: 110%;
  font-weight: bold;
}
.navi-in > ul li#menu-item-139 a {
  background-color: #131b52;
  color: #ffffff;
  font-size: 110%;
  font-weight: bold;
  color: #ffffff;
}
.navi-in > ul li#menu-item-139 .fa-phone {
  color: #ffff00;
}

/*---------トップページ------------*/

.page-id-12 h1.entry-title,
.date-tags,
.author-info {
  display: none;
}

h1.entry-title {
  color: #f18705;
}

/*　－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－

◆wordpress style.cssに使用するスタイルシートの標準部分です。　ここから

－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－*/

_.page-id-15 #main {
  padding-top: 0;
}

/*----------アピールエリア---------*/

.appeal-content {
  max-width: 1400px;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.7);
  -moz-border-radius: 10px;
  -webkit-border-radius: 10px;
  border-radius: 10px;
  box-shadow: 0 0 8px gray;
  padding: 6rem 2rem;
}
@media only screen and (max-width: 570px) {
  .appeal-content {
    padding: 2rem 1rem;
  }
}
.appeal-title {
  font-size: clamp(2.2rem, 2vw + 1rem, 4.6rem);
  margin-bottom: 2rem;
  color: #000066;
  text-shadow: 2px 3px 3px rgba(255, 255, 255, 0.4);
  font-weight: bold;
  text-align: center;
}
.appeal-message p {
  text-align: center;
  font-size: clamp(1.5rem, 2vw + 1rem, 2.4rem);
  margin-bottom: 4.5rem;
  font-weight: bold;
  text-shadow: 1px 2px 2px rgba(255, 255, 255, 0.6);
}

a.appeal-button {
  font-size: clamp(1.7rem, 2vw + 1rem, 2.4rem);
  margin-bottom: 2rem;
}
@media only screen and (max-width: 570px) {
  .appeal-title {
    margin-bottom: 1rem;
  }

  .appeal-message p {
    margin-bottom: 1.5rem;
  }

  a.appeal-button {
    margin-bottom: 1.5rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/*----------アピールエリア 時間差表示---------*/

.appeal-content {
  opacity: 0;
  transform: translateY(40px);
  animation: appealContentShow 1.2s ease-out forwards;
  animation-delay: 1s;
}

@keyframes appealContentShow {
  from {
    opacity: 0;
    transform: translateY(40px);
  }

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

/*---------------HOME---------------*/

.wide_box_notice {
  background-color: #0190d4;
  margin: 0 calc(50% - 50vw);
  padding: 1em;
  width: 100vw;
}
.notice_main {
  max-width: 1196px;
  width: 100%;
  margin: auto;
  padding: 0 0.5em;
  background-color: #ffffff;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
}

/*---------足踏み--------*/

_.foot_stomp {
  background: url(https://www.warehouse.takata-sc.com/wp-content/uploads/foot_stomp_01.svg)
      no-repeat left top,
    url(https://www.warehouse.takata-sc.com/wp-content/uploads/foot_stomp_02.svg)
      no-repeat right bottom;
  background-size: auto 180px, auto 200px;
}

.foot_stomp {
  position: relative;
  height: 280px;
  width: 100%;
}

/* 共通設定：初期状態は opacity 0 */
.foot_stomp::before,
.foot_stomp::after {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  opacity: 0;
}

/* 左足：.activeがついたらアニメーション開始 */
.foot_stomp.active::before {
  top: 0;
  left: 0;
  width: 100%;
  height: 180px;
  background-image: url(https://www.warehouse.takata-sc.com/wp-content/uploads/foot_stomp_01.svg);
  background-position: left top;
  background-size: auto 180px;
  animation: stomp-once 0.5s ease-out forwards;
  animation-delay: 0.2s; /* 画面に入ってから少し待って開始 */
}

/* 右足：.activeがついたら1.2s遅れて開始 */
.foot_stomp.active::after {
  bottom: 0;
  right: 0;
  width: 100%;
  height: 200px;
  background-image: url(https://www.warehouse.takata-sc.com/wp-content/uploads/foot_stomp_02.svg);
  background-position: right bottom;
  background-size: auto 200px;
  animation: stomp-once 0.5s ease-out forwards;
  animation-delay: 0.9s;
}

/* スマホ非表示設定 */
@media screen and (max-width: 767px) {
  .foot_stomp::before,
  .foot_stomp::after {
    display: none;
  }
  .foot_stomp {
    height: auto;
  }
}

@keyframes stomp-once {
  0% {
    opacity: 0;
    transform: scale(1.3);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
@media only screen and (max-width: 834px) {
  .foot_stomp {
    background-image: none;
    height: auto; /* 親要素の高さに合わせて調整 */
  }
}

ul.check {
  position: relative;
  max-width: 760px;
  margin: auto auto 1.5em auto;
}
ul.check li {
  list-style-type: none !important;
  padding: 0 0 0.1em 0;
  margin-bottom: 0.4em;
  font-size: clamp(1.2rem, 0.991rem + 0.55vw, 1.6rem);
  border-bottom: 2px dotted #f18705;
}

ul.check li:before {
  font-family: "Font Awesome 5 Free";
  content: "\f14a";
  position: absolute;
  margin-right: 0.3em;
  left: 1em; /*左端からのアイコンまで*/
  color: #ff0000; /*アイコン色*/
}

.own_factory {
  max-width: 780px;
  background-color: rgba(153, 255, 255, 0.1);
  padding: 1.5em;
  margin: auto;
  border: 1px solid #e5e5e5;
}

/*------うまい・早い・安い-------*/

.strengths_wide_main {
  background-color: rgba(204, 204, 204, 0.3);
  margin: 0 calc(50% - 50vw);
  padding: 4em 1em;
  width: 100vw;
}

ul.strengths {
  display: -webkit-box;
  display: -moz-box;
  display: box;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin: 0 auto;
  padding: 0;
  gap: 20px;
  max-width: 1196px;
  width: 100%;
}
ul.strengths li {
  flex-basis: 31%;
  -webkit-flex-basis: 31%;
  -ms-flex-basis: 31%;
  list-style-type: none;
  margin: 0 auto 0 auto;
  background-color: #ffffff;
  padding: 1.5em;
  border-radius: 5px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
  text-align: center;
  flex: 1;
}
ul.strengths li .icon {
  margin: 0 auto !important;
  padding: 0 !important;
}
ul.strengths li .icon img {
  max-height: 200px;
  width: auto;
  vertical-align: middle !important;
}

ul.strengths li > h3 {
  font-size: clamp(2rem, 2vw + 1rem, 3.6rem) !important;
  margin: 0;
  color: #f18705;
}
@media only screen and (max-width: 570px) {
  ul.strengths li {
    flex-basis: 100%;
    -webkit-flex-basis: 100%;
    -ms-flex-basis: 100%;
    padding: 1em;
  }
}

/* 初期状態：透明で少し下に配置 */
.strengths li {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

/* アニメーション実行時のクラス */
.strengths li.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* 左から順番に遅延させる設定（n番目の要素ごとに0.4秒ずつずらす） */
.strengths li:nth-child(1) {
  transition-delay: 0.4s;
}
.strengths li:nth-child(2) {
  transition-delay: 0.8s;
}
.strengths li:nth-child(3) {
  transition-delay: 1.2s;
}

.wide_box_slide {
  margin: 0 calc(50% - 50vw);
  padding: 0;
  width: 100vw;
}

/*---他社で止まった案件---*/

table.case {
  border-collapse: collapse;
  width: 100%;
}
table.case th,
table.case td {
  padding: 10px;
  border: solid 1px #ccc;
  text-align: center;
  box-sizing: border-box;
}
table.case th:nth-child(1) {
  background: rgba(233, 233, 233, 0.5);
  color: #000000;
}
table.case th:nth-child(2) {
  background: rgba(19, 27, 82, 1);
  color: #ffffff;
}
table.case th:nth-child(3) {
  background: rgba(241, 135, 5, 1);
  color: #ffffff;
}
@media screen and (max-width: 640px) {
  table.case .head {
    display: none;
  }
  table.case {
    width: 100%;
  }
  table.case td {
    display: block;
    width: 100%;
    border-bottom: none;
    font-size: clamp(1.3rem, 0.991rem + 0.55vw, 1.5rem);
  }
  table.case td:nth-child(3n) {
    color: rgba(241, 135, 5, 1);
  }
  table.case td:first-child {
    background: rgba(19, 27, 82, 1);
    color: #fff;
    font-weight: bold;
  }
  table.case td:before {
    content: attr(data-label);
    font-size: clamp(1.2rem, 0.991rem + 0.55vw, 1.3rem);
    font-weight: bold;
    color: rgba(19, 27, 82, 1);
    display: block;
  }
  table.case tr:last-child {
    border-bottom: solid 1px #ccc;
  }
}

/*---よくあるご質問---*/

dl.qa {
}
dl.qa dt::before {
  content: "Q";
  font-weight: 900;
  padding-right: 0.3em;
  color: #ff0000;
  font-size: clamp(2rem, calc(1.8rem + 0.625vw), 2.5rem);
}
dl.qa dt {
  font-size: clamp(1.4rem, 0.991rem + 0.55vw, 1.8rem) !important;
  color: rgba(19, 27, 82, 1);
  font-weight: bold;
}
dl.qa dd {
  font-size: clamp(1.2rem, 0.991rem + 0.55vw, 1.5rem) !important;
  margin-bottom: 1em;
  margin-left: 1.8em;
}

/*---施工例---*/

ul.case_main {
  display: -webkit-box;
  display: -moz-box;
  display: box;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin: 0 auto 2rem auto;
  padding: 0;
  -webkit-align-items: center;
  align-items: center;
}
ul.case_main li.left {
  flex-basis: 50%;
  -webkit-flex-basis: 50%;
  -ms-flex-basis: 50%;
  list-style-type: none;
  margin: 0 auto 0 auto;
  padding: 0;
}
ul.case_main li.left img {
  margin: 0 auto;
  vertical-align: bottom;
  padding: 0;
  transition-duration: 0.5s;
}

ul.case_main li.right {
  flex-basis: 50%;
  -webkit-flex-basis: 50%;
  -ms-flex-basis: 50%;
  list-style-type: none;
  margin: 0;
  padding-left: 1.5rem;
}

@media only screen and (max-width: 570px) {
  ul.case_main li.left,
  ul.case_main li.right {
    flex-basis: 100%;
    -webkit-flex-basis: 100%;
    -ms-flex-basis: 100%;
    margin: 0;
  }
}

ul.case_detail {
  display: -webkit-box;
  display: -moz-box;
  display: box;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin: 0;
  padding: 0;
  -webkit-align-items: center;
  align-items: center;
}
ul.case_detail li {
  flex-basis: 48%;
  -webkit-flex-basis: 48%;
  -ms-flex-basis: 48%;
  list-style-type: none;
  margin: 0 auto 0 auto;
}
ul.case_detail li h4 {
  margin-bottom: 1rem;
  border-bottom-width: 2px !important;
  border-bottom-style: dotted !important;
  border-bottom-color: #ff6600 !important;
  display: inline-block;
  padding-bottom: 0.3rem;
}
ul.case_detail li span {
  display: inline-block;
  font-size: 160%;
  font-weight: bold;
  color: #131b52;
}

@media only screen and (max-width: 570px) {
  ul.case_detail li {
    flex-basis: 100%;
    -webkit-flex-basis: 100%;
    -ms-flex-basis: 100%;
    margin: 0 auto 2% auto;
  }
}

/*---お問い合わせはこちら---*/

.wide_box_contact {
  background-color: rgba(19, 27, 82, 1);
  margin: 0 calc(50% - 50vw);
  padding: 4rem 1em 4rem !important;
  width: 100vw;
}
.contact_main {
  text-align: center;
  margin: auto;
}
.contact_main h3 {
  text-align: center;
  margin: auto;
  font-size: clamp(2rem, 1.2rem + 2vw, 3.6rem) !important;
  color: #ffffff;
}
.contact_main p {
  color: #ffffff;
  text-align: center;
  margin: auto auto 3rem auto;
}
.contact_main p.btn {
  padding: 0;
}
.contact_main p.btn a {
  font-size: clamp(1.6rem, 1.2rem + 2vw, 2.6rem) !important;
  /* background-color: rgba(241, 135, 5, 1); */
  color: #ffffff;
  text-decoration: none;
  display: inline-block;
  /* padding: 0.3rem 0.5rem; */
}
@media screen and (max-width: 640px) {
  .contact_main p {
    margin: auto auto 2rem auto;
  }
}

.wide_box_about {
  background-color: rgba(255, 255, 255, 1);
  margin: 0 calc(50% - 50vw);
  padding: 0;
  width: 100vw;
}
.about_main {
  margin: auto;
  text-align: center;
  padding: 0 0 4rem 0 !important;
}
.about_main img {
  max-height: 50px;
  width: auto;
}

.about_main p {
  text-align: center;
  margin: 2rem auto auto auto;
}

/* Googleマップのiframe自体に直接強制する */
iframe[src*="google.com/maps"] {
  height: 400px !important;
  min-height: 400px !important;
  display: block; /* 隙間防止 */
}

.google-map-wrapper {
  position: relative;
  width: 100%;
  /* PCなど広い画面では高さを最大600pxに制限する */
  max-height: 400px;
  /* アスペクト比（例：横16対縦9）を維持。環境に合わせて数値を調整してください */
  aspect-ratio: 16 / 9;
}

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

/*---Top footer上部の余白0---*/

/* footer直前の余白を徹底的に消す */
.page-id-12 #contents,
_.page-id-12 #main,
_.page-id-12 .main,
_.page-id-12 .content,
_.page-id-12 .content-in,
.page-id-12 .main-scroll,
.page-id-12 .article,
.page-id-12 .article-in,
.page-id-12 .article-footer,
.page-id-12 .entry-content,
.page-id-12 .content-bottom,
.page-id-12 .main-bottom,
.page-id-12 .pager-post-navi,
.page-id-12 .related-entry-card-wrap,
.page-id-12 .comment-area,
.page-id-12 .footer,
.page-id-12 #footer,
.page-id-12 #footer-in {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}
.page-id-12 #main,
.page-id-12 .main,
.page-id-12 .content,
.page-id-12 .content-in {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
/* 記事本文の最後の要素の下余白を消す */
.page-id-12 .entry-content > *:last-child,
.page-id-12 .article-content > *:last-child,
.page-id-12 .article > *:last-child,
.page-id-12 .main > *:last-child,
.page-id-12 .content > *:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* 画像やpタグが最後にある時の余白対策 */
.page-id-12 .entry-content p:last-child,
.page-id-12 .entry-content div:last-child,
.page-id-12 .entry-content section:last-child,
.page-id-12 .entry-content figure:last-child,
.page-id-12 .entry-content img:last-child {
  margin-bottom: 0 !important;
}

/* footer側の上余白も消す */
.page-id-12 #footer,
.page-id-12 .footer,
.page-id-12 #footer-in {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/*　－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－

◆wordpress style.cssに使用するスタイルシートの標準部分です。　ここまで

－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－*/

/*---------テキストを両端揃え調整------------*/
* p {
  text-align: justify;
  word-break: break-all;
  text-justify: inter-character;
}
/*---------テキストを両端揃え調整 END------------*/

.t_indent {
  text-indent: -1em;
  margin-left: 1em;
}

/* ------区切りマージン---------- */
section {
  margin-bottom: 6rem;
}
article {
  _margin-bottom: 0;
}
nav {
  margin-bottom: 0;
}
@media only screen and (max-width: 570px) {
  section {
    margin-bottom: 2rem;
  }
}
/* ------区切りマージン END---------- */

/*--------全画面テスト----------*/
.all_display {
  margin: 0 calc(50% - 50vw);
  padding: 0 calc(50vw - 50% + 1.5em);
  width: 100vw;
  background-color: #ff0000;
  height: 300px;
}
/*--------全画面テスト end----------*/

/* ------全体の要素に適用------------- */
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

/* ------全画面---------- */
.wide_box_01 {
  background-color: rgba(195, 154, 107, 1);
  margin: 0 calc(50% - 50vw);
  padding: 1em;
  width: 100vw;
}
.wide_box_02 {
  background-color: rgba(255, 255, 255, 1);
  margin: 0 calc(50% - 50vw);
  padding: 1em;
  width: 100vw;
}
/* ------全画面 END---------- */

/* ------フェードイン------------ */

/* CSS（基本：2秒フェードイン） */
.fadein {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 2s ease, transform 2s ease;
  will-change: opacity, transform;
}
.fadein.is-show {
  opacity: 1;
  transform: translateY(0);
}

/* ★834px以下は無効（最初から表示） */
@media (max-width: 834px) {
  .fadein {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    will-change: auto;
  }
}

/* ------フェードイン END------------ */

/* ------リンク------------ */
* a {
  transition: 0.3s ease-in-out;
}

/* ------電話番号　スマホのみリンク------------ */
@media (min-width: 770px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}
/* ------電話番号　スマホのみリンク END------------ */

/*画像透明度（マウスオーバー時）
---------------------------------*/
a img {
  border: none;
  verticle-align: top;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

a:hover img {
  opacity: 0.7;
  /* 透過レベル */
  filter: alpha(opacity=80);
}
/*画像透明度（マウスオーバー時）end
---------------------------------*/

/* ------アンカー上部余白------------ */
:target::before {
  content: "";
  display: block;
  height: 90px;
  margin: -90px 0 0;
}
/* ------アンカー上部余白 END------------ */

/* ------PC・スマホ表示、非表示------------ */
.pc_item {
  display: block;
}
.sp_item {
  display: none;
}
@media only screen and (max-width: 570px) {
  .pc_item {
    display: none;
  }

  .sp_item {
    display: block;
  }
}
/* ------PC・スマホ表示、非表示 END------------ */

/* スマホ　回り込み解除 */
@media only screen and (max-width: 570px) {
  img.alignright,
  img.alignleft {
    float: none;
    clear: both;
    display: block;
    text-align: center;
    margin: auto;
  }
}
/* スマホ　回り込み解除 end */

/* 回り込みクリア*/
.clear {
  clear: both;
  margin: 0 !important;
  padding: 0 !important;
}
/* 回り込みクリア end*/

/*画像透明度（マウスオーバー時）
---------------------------------*/
a img {
  border: none;
  verticle-align: top;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  -o-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}
a:hover img {
  opacity: 0.7;
  /* 透過レベル */
  filter: alpha(opacity=80);
}
/*画像透明度（マウスオーバー時）end
---------------------------------*/

/*---------You Tube 埋め込み-----------------*/
.video {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.video iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
}
/*---------You Tube 埋め込み END-----------------*/

/* -------reCAPTCHA 保護マークを調整------------ */
.grecaptcha-badge {
  position: fixed;
  margin-bottom: 80px;
}
.grecaptcha_box {
  padding: 1em;
  border: 1px solid #cccccc;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
}
/* -------reCAPTCHA 保護マークを調整 END------------ */

/*-----NEWSプラグイン------*/
.whatsnew hr {
  display: none;
}
div.whatsnew dl {
  border-top-style: none;
  border-bottom-width: 2px;
  border-bottom-style: solid;
  border-bottom-color: #ffffff;
}
div.whatsnew dt,
div.whatsnew dd {
  border-bottom-width: 1px;
  border-bottom-style: dotted;
  border-bottom-color: #0190d4;
}
div.whatsnew dt {
  color: #0190d4 !important;
  width: 8.5em;
}

div.whatsnew dd .newmark {
  background-color: #ff0000;
}
.whatsnew a {
  color: #000 !important;
}

_div.whatsnew hr:first-child {
  display: none;
}
_div.whatsnew dl a:hover {
  background-color: rgba(255, 255, 255, 0);
}
/*-----NEWSプラグイン END------*/

/* -------BOXレイアウト------------ */
ul.col2 {
  display: -webkit-box;
  display: -moz-box;
  display: box;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin: 0;
  padding: 0;
}
ul.col2 li {
  flex-basis: 48%;
  -webkit-flex-basis: 48%;
  -ms-flex-basis: 48%;
  list-style-type: none;
  margin: 0 auto 0 auto;
}
ul.col2 li img {
  margin: auto auto 0 auto;
  padding: 0;
  transition-duration: 0.5s;
}
@media only screen and (max-width: 570px) {
  ul.col2 li {
    flex-basis: 100%;
    -webkit-flex-basis: 100%;
    -ms-flex-basis: 100%;
    margin: 0 auto 2% auto;
  }
}
/* -------BOXレイアウト END------------ */

/* -------リストレイアウト------------ */
dl.w_5 {
  box-sizing: border-box;
}
dl.w_5 dl {
  background: #eee;
  margin-bottom: 1em !important;
}
dl.w_5 dd {
  padding: 0px 0.5em 5px 0.5em;
  margin: 0px 0px 3px 0px;
}
dl.w_5 dt {
  width: 5em !important;
  float: left;
  font-weight: normal !important;
  color: #000000 !important;
  text-align: center !important;
}
dl.w_5 dd {
  margin-left: 5em !important;
}
dl.w_5 dd:after {
  content: "";
  display: block;
  clear: both;
}

@media only screen and (max-width: 570px) {
  dl.w_5 dt,
  dl.w_5 dd {
    float: none !important;
    clear: both !important;
    width: 98% !important;
    padding: 0 !important;
    text-align: left !important;
  }
  dl.w_5 dt {
    font-weight: bold !important;
    color: #1b9d6f !important;
    margin: auto auto auto 0 !important;
  }
  dl.w_5 dd {
    margin: auto auto 1.3em 0 !important;
  }
}

dl.about {
  display: -webkit-box; /*Android4.3*/
  display: -moz-box; /*Firefox21*/
  display: -ms-flexbox; /*IE10*/
  display: -webkit-flex; /*PC-Safari,iOS8.4*/
  display: flex;
  -ms-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  width: 100%;
}
dl.about dt {
  flex-basis: 6em;
  -webkit-flex-basis: 6em;
  -ms-flex-basis: 6em;
  list-style-type: none;
  text-align: left;
  color: #000000;
}
dl.about dd {
  margin: 0;
  flex-basis: calc(100% - 6em);
  -webkit-flex-basis: calc(100% - 6em);
  -ms-flex-basis: calc(100% - 6em);
  list-style-type: none;
}
@media screen and (max-width: 570px) {
  dl.about dd {
    margin: 0;
    flex-basis: calc(100% - 7em);
    -webkit-flex-basis: calc(100% - 7em);
    -ms-flex-basis: calc(100% - 7em);
    list-style-type: none;
  }
}
/* -------リストレイアウト　END------------ */

/* -------Facebook------------ */
/* スマホ用 */
@media screen and (max-width: 767px) {
  .fb_container {
    width: 100%;
    max-width: 100%;
    margin: auto;
  }
}
/* PC用 */
@media screen and (min-width: 768px) {
  .fb_container {
    width: 100%;
    margin: auto;
  }
}
/* -------Facebook END------------ */

/* -------footer------------ */

.footer-bottom {
  margin-top: 0;
}

.footer p {
  margin-bottom: 1.5em;
}

ul.footer_sns_icon {
  display: flex;
  justify-content: flex-start; /* 左詰め */
  align-items: center; /* 縦位置を揃える */
  gap: 12px; /* li同士の間隔 */
  list-style: none;
  padding: 0;
  margin: 0;
}

ul.footer_sns_icon li {
  margin: 0; /* テーマ側のli余白がある場合の対策 */
}

ul.footer_sns_icon img {
  display: block; /* 画像の下にできる隙間対策 */
  height: 20px; /* 好みで調整 */
  width: auto;
}

ul.footer_menu {
  list-style: none;
  font-weight: bold;
  margin-bottom: 1.5em;
}
ul.footer_menu a {
  text-decoration: none;
}
ul.footer_menu a:hover {
  color: #ffff00 !important;
}
ul.footer_menu span {
  font-size: 1.2em;
  margin-bottom: 0.3em;
  display: block;
}
ul.footer_menu li {
  font-size: 1em;
  margin-bottom: 0.5em;
}

ul.footer_menu li:before {
  content: "－";
}

/*---------------contactform7----------------------- */
.form {
  font-size: clamp(1.3rem, 0.991rem + 0.55vw, 1.4rem);
}

/*必須、任意アイコン*/
.icon_must {
  background-color: #d90000;
  color: #ffffff;
  padding: 0.2em 0.4em;
}
.icon_any {
  background-color: #131b52;
  color: #ffffff;
  padding: 0.2em 0.4em;
}
/*必須、任意アイコン END*/

.from_name {
  display: -webkit-box;
  display: -moz-box;
  display: box;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.item_box {
  flex-basis: 48%;
  -webkit-flex-basis: 48%;
  -ms-flex-basis: 48%;
  box-sizing: border-box;
}

/* 最初の.item-box要素を左寄せに配置 */
.item_box:first-child {
  margin-left: 0;
}

/* スマホの場合 */
@media screen and (max-width: 480px) {
  .from_name {
    margin: auto;
    row-gap: 1em;
  }
  .item_box {
    flex-basis: 100%;
    -webkit-flex-basis: 100%;
    -ms-flex-basis: 100%;
  }
}

.wpcf7 img {
  display: inline;
}

/*テキスト*/
.wpcf7 input[type="text"] {
  height: 3em; /* テキストエリアの高さ */
  resize: vertical; /* 垂直方向のみのリサイズ */
}

.wpcf7 input[type="text"].w_40 {
  border: 1px solid #999999;
  width: 40%;
  margin-top: 0.8em;
}
.wpcf7 input[type="text"].w_60 {
  border: 1px solid #999999;
  width: 60%;
}
@media only screen and (max-width: 570px) {
  .wpcf7 input[type="text"].w_40 {
    width: 100%;
  }
  .wpcf7 input[type="text"].w_60 {
    width: 97%;
    margin-right: 1em;
  }
}

.wpcf7 input[type="number"] {
  width: 50px;
}

/*TEL*/
.wpcf7 input[type="tel"] {
  border: 1px solid #999999;
  margin-top: 0.8em;
  width: 30%;
  height: 3em; /* テキストエリアの高さ */
  resize: vertical; /* 垂直方向のみのリサイズ */
}

form select,
.wpcf7 input[name="your-subject"] {
  border: 1px solid #999999;
  width: 50%;
}
.wpcf7 input[type="text"],
.wpcf7 textarea {
  border: 1px solid #999999;
}

form select {
  border: 1px solid #999999;
  width: 40%;
  margin-top: 0.3em;
}

/*メール*/
.wpcf7 input[name="your-email"].w_60,
.wpcf7 input[name="your-email_confirm"].w_60 {
  border: 1px solid #999999;
  width: 60%;
  height: 3em; /* テキストエリアの高さ */
  resize: vertical; /* 垂直方向のみのリサイズ */
  margin: 0.3em 0 0 0;
}
@media only screen and (max-width: 570px) {
  .wpcf7 input[name="your-email"].w_60,
  .wpcf7 input[name="your-email_confirm"].w_60 {
    width: 97%;
    padding-right: 1em;
  }
  form select,
  .wpcf7 input[type="tel"],
  .wpcf7 input[name="your-subject"] {
    max-width: 100%;
    width: 100%;
  }
}

.wpcf7 textarea[name="your-message2"],
.wpcf7 textarea[name="your-message"] {
  margin-top: 0.8em;
}

@media only screen and (max-width: 570px) {
  .wpcf7 input[type="tel"] {
    max-width: 100%;
    width: 100%;
  }

  .wpcf7 textarea[name="your-message2"],
  .wpcf7 textarea[name="your-message"] {
    max-width: 100%;
    width: 100%;
    border: 1px solid #999999;
  }
}

.wpcf7 input[name="zip"] {
  width: 15%;
}

@media only screen and (max-width: 570px) {
  .wpcf7 input[type="tel"] {
    width: 60%;
  }
  .wpcf7 input[name="zip"] {
    width: 40%;
  }
}

#content form input[type="text"].form_width10 {
  max-width: 10%;
}

#content form input[type="text"].form_width15 {
  max-width: 15%;
}

#content form input[type="text"].form_width20 {
  max-width: 20%;
}

#content form input[type="text"].form_width30 {
  max-width: 30%;
}

#content form input[type="text"].form_width40 {
  max-width: 40%;
}

#content form input[type="text"].form_width50 {
  max-width: 50%;
}

#content form input[type="text"].form_width60 {
  max-width: 60%;
}

#content form input[type="text"].form_width70 {
  max-width: 70%;
}

#content form input[type="text"].form_width80 {
  max-width: 80%;
}

@media only screen and (max-width: 570px) {
  #content form input[type="text"].form_width30,
  #content form input[type="text"].form_width40,
  #content form input[type="text"].form_width50,
  #content form input[type="text"].form_width60,
  #content form input[type="text"].form_width70,
  #content form input[type="text"].form_width80 {
    max-width: 100%;
    width: 100%;
  }
}

@media only screen and (max-width: 570px) {
  #content form input[type="text"].form_width10_20 {
    max-width: 20%;
  }
  #content form input[type="text"].form_width95 {
    width: 95%;
  }
}

/*送信ボタン
---------------------------------*/

.sideTower form#searchform input#searchsubmit {
  width: 25%;
}

form#searchform input#s {
  width: 55%;
}

@media only screen and (max-width: 570px) {
  .sideTower form#searchform input#searchsubmit {
    width: 28%;
  }
  form#searchform input#s {
    width: 56%;
  }
}

.btn-primary:disabled {
  border-style: none;
}

/*送信ボタン*/
input[type="submit"] {
  background-color: #131b52 !important;
  padding: 0.3em;
  margin: auto;
  text-align: center;
  max-width: 12em;
  width: 100%;
  color: #ffffff;
  font-weight: bold;
  font-size: 1.2em;
  display: block;
}
input[type="submit"]:hover {
  background-color: #d90000 !important;
}
/*送信ボタン end
---------------------------------*/

/*コンタクトフォーム　改行禁止
---------------------------------*/
#content form span.wpcf7-form-control-wrap {
  display: inline;
}
/*コンタクトフォーム　改行禁止 end
---------------------------------*/

legend {
  display: block;
  width: auto;
  padding: 0 0em 0 0;
  margin-left: -1em;
}

fieldset {
  margin-bottom: 20px;
  padding: 1em 1em 2em 1em;
  border: 1px solid #c39a6b;
  overflow: hidden;
}
@media only screen and (max-width: 570px) {
  legend {
    margin-left: -1.55em;
    font-size: clamp(1.3rem, 0.991rem + 0.55vw, 1.4rem);
  }
  legend.sp_m {
    margin-left: -0.05em;
  }
  fieldset {
    padding: 0.5em 0.5em 1.5em 1.5em;
  }
  fieldset.sp_m {
    padding: 0.5em 0 1.8em 0;
    line-height: 1.8;
    font-size: clamp(1.3rem, 0.991rem + 0.55vw, 1.4rem);
  }
  fieldset.sp_m label {
    line-height: 2.4;
  }
}

label {
  overflow: hidden;
  zoom: 1;
  float: left;
  margin: 0 1em 0 0;
}
@media only screen and (max-width: 570px) {
  label {
    margin: 0 0 0 0;
  }
}

/*注意アイコン*/
span.wpcf7-not-valid-tip {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
span.wpcf7-not-valid-tip:before {
  margin-bottom: 0.5em !important;
  height: 0 !important;
}
div.wpcf7-validation-errors,
span.wpcf7-not-valid-tip:before {
  font-family: "Font Awesome 5 Free";
  content: "\f071";
  color: #ffcc00;
  margin-right: 0.3em;
  display: block;
}
div.wpcf7-validation-errors {
  color: #ffffff;
}
div.wpcf7-validation-errors:before {
  font-family: "Font Awesome 5 Free";
  content: "\f071";
  color: #ffcc00;
  margin-right: 0.3em;
}
.fas {
  color: #f2c100;
  font-size: 120%;
}

/*-----承認確認-----*/
.wpcf7-list-item {
  margin: 0 0 0 1em;
  float: left;
}

.t_block {
  overflow: hidden;
}

.wpcf7 input[type="checkbox"] {
  margin: 0 0.3em 0 0;
  padding: 0;
}

.kiyaku_box {
  height: 15em;
  overflow-x: hidden;
  padding: 1em;
  border: 1px solid #ffb7b7;
  margin-bottom: 30px;
}

.warning {
  border-bottom-width: 2px;
  border-bottom-style: dotted;
  border-bottom-color: #ff0000;
  padding-bottom: 0.1em;
}
/*---------------contactform7 END----------------------- */

/*---------- MARGIN ----------*/
.mt0 {
  margin-top: 0px;
}
.mt5 {
  margin-top: 5px;
}
.mt8 {
  margin-top: 8px;
}
.mt10 {
  margin-top: 10px;
}
.mt15 {
  margin-top: 15px;
}
.mt20 {
  margin-top: 20px;
}
.mt25 {
  margin-top: 25px;
}
.mt30 {
  margin-top: 30px;
}
.mt40 {
  margin-top: 40px;
}
.mt50 {
  margin-top: 50px;
}
.mb00 {
  margin-bottom: 0px;
}
.mb01 {
  margin-bottom: 1px;
}
.mb02 {
  margin-bottom: 2px;
}
.mb03 {
  margin-bottom: 3px;
}
.mb04 {
  margin-bottom: 4px;
}
.mb05 {
  margin-bottom: 5px;
}
.mb10 {
  margin-bottom: 10px;
}
.mb15 {
  margin-bottom: 15px;
}
.mb20 {
  margin-bottom: 20px;
}
.mb25 {
  margin-bottom: 25px;
}
.mb30 {
  margin-bottom: 30px;
}
.mb40 {
  margin-bottom: 40px;
}
.mb45 {
  margin-bottom: 45px;
}
.mb50 {
  margin-bottom: 50px;
}
.mb100 {
  margin-bottom: 100px;
}
.mr10 {
  margin-right: 10px;
}
.mr20 {
  margin-right: 20px;
}
.mr30 {
  margin-right: 30px;
}
.mr40 {
  margin-right: 40px;
}
.mr50 {
  margin-right: 50px;
}
.ml10 {
  margin-left: 10px;
}
.ml20 {
  margin-left: 20px;
}
.ml30 {
  margin-left: 30px;
}
.ml40 {
  margin-left: 40px;
}
.ml50 {
  margin-left: 50px;
}
.ml-1 {
  margin-left: -1px;
}
.ml-2 {
  margin-left: -2px;
}
.ml-3 {
  margin-left: -3px;
}
.ml-4 {
  margin-left: -4px;
}
.ml-5 {
  margin-left: -5px;
}
.mr-1 {
  margin-right: -1px;
}
.mr-2 {
  margin-right: -2px;
}
.mr-3 {
  margin-right: -3px;
}
.mr-4 {
  margin-right: -4px;
}
.mr-5 {
  margin-right: -5px;
}

/*---------- PADDING ----------*/
.pt10 {
  padding-top: 10px;
}
.pt20 {
  padding-top: 20px;
}
.pt30 {
  padding-top: 30px;
}
.pt35 {
  padding-top: 35px;
}
.pt40 {
  padding-top: 40px;
}
.pt50 {
  padding-top: 50px;
}
.pb00 {
  padding-bottom: 0;
}
.pb10 {
  padding-bottom: 10px;
}
.pb20 {
  padding-bottom: 20px;
}
.pb30 {
  padding-bottom: 30px;
}
.pb40 {
  padding-bottom: 40px;
}
.pb50 {
  padding-bottom: 50px;
}
.pr10 {
  padding-right: 10px;
}
.pr20 {
  padding-right: 20px;
}
.pr30 {
  padding-right: 30px;
}
.pr40 {
  padding-right: 40px;
}
.pr50 {
  padding-right: 50px;
}
.pl10 {
  padding-left: 10px;
}
.pl20 {
  padding-left: 20px;
}
.pl30 {
  padding-left: 30px;
}
.pl40 {
  padding-left: 40px;
}
.pl50 {
  padding-left: 50px;
}

/*追加分*/
/*画面幅いっぱい*/
.full_screen {
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
}

.page-id-14 iframe {
  /* height: initial; */
}

.form-container {
  width: 100%;
  overflow: hidden;
}
.responsive-iframe {
  width: 100%;
  max-width: 100%;
  height: 3600px;
  border: none;
  display: block;
}

@media screen and (max-width: 767px) {
  div.form-container iframe.responsive-iframe {
    height: 3800px !important;
    overflow: hidden !important;
    pointer-events: auto !important;
  }
}
