/*
Theme Name:takumicorp
*/

@charset "UTF-8";

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
   リセットcssの代用
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/*========= LoadingのためのCSS ===============*/

/* Loading背景画面設定　*/
#splash {
  /*fixedで全面に固定*/
	position: fixed;
	width: 100%;
	height: 100%;
	z-index: 999;
	background:#eee;
	text-align:center;
	color:#fff;
}

/* Loading画像中央配置　*/
#splash_logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

/* Loading アイコンの大きさ設定　*/
#splash_logo svg{
    width:500px;
}

@media (max-width: 768px){
  #splash_logo {
    top: 30%;
    left: 47%;
   }
  #splash_logo svg{
    width:100%;
}
}

/* ローディング用CSS 2回目以降読み込まないようにする */
#splash.loading {
  position: fixed;
	width: 100%;
	height: 100%;
	z-index: 999;
	background:#eee;
	text-align:center;
	color:#fff;
  opacity: 1;
  visibility: visible;
}

#splash.loading.is-active {
  opacity: 0;
  visibility: hidden;
}

#splash_logo.loading-animation {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
  opacity: 0;
  visibility: hidden;
}

#splash_logo.loading-animation.is-active {
  opacity: 1;
  visibility: visible;
}


/*=============== SVGアニメーション内の指定 =================*/

/*アニメーション前の指定*/
#mask path {
		fill-opacity: 0;/*最初は透過0で見えない状態*/
		transition: fill-opacity .8s;/*カラーがつく際のアニメーション0.5秒で変化*/
		fill: none;/*塗りがない状態*/
		stroke: #0464b4;/*線の色*/
	}

/*アニメーション後に.doneというクラス名がで付与された時の指定*/
#mask.done path{
	  fill: #0464b4;/*塗りの色*/
	  fill-opacity: 1;/*透過1で見える状態*/
	  stroke: #fff;/*線の色なし*/
	}



/*基本設定
-----------*/

html {
  font-size: 100%;
  visibility: hidden;
}
/*読み込みが完了したら表示*/
html.wf-active {
  visibility: visible;
}
/*文字、背景設定*/
body {
  font-family: kozuka-gothic-pr6n, sans-serif;
  line-height: 1.7;
  color: #040404;
  background-color: #fff;
}

a {
  text-decoration: none;
}

img {
  max-width: 100%;
}



/*HEADER
----------------------------------------------------*/

/*タクミのロゴ*/
.logo {
  width: 300px;
  height: auto;
}
/*電話番号の画像*/
.phone {
  width: 280px;
  height: auto;
}

/* =================
ハンバーガーボタンの実装
================= */
/*PCでは非表示*/
.hamburger-menu
{
  display: none;
} 
/*四角の部分*/
.menu-btn {
  position: relative;
  display: flex;
  height: 40px;
  width: 40px;
  justify-content: center;
  align-items: center;
  z-index: 90;
  background-color: #0464b4;
}
.menu-btn:hover {
  cursor: pointer;
}
/* 三本線の実装 */
.menu-btn span,
.menu-btn span:before,
.menu-btn span:after {
  content: "";
  display: block;
  height: 2px;
  width: 20px;
  border-radius: 3px;
  background-color: #ffffff;
  position: absolute;
}
.menu-btn span:before {
  bottom: 8px;
}
.menu-btn span:after {
  top: 8px;
}
/* チェックボックスを非表示にする */
#menu-btn-check {
  display: none;
}
 
#menu-btn-check:checked ~ .menu-btn span {
  background-color: rgba(
    255,
    255,
    255,
    0
  ); /*メニューオープン時は真ん中の線を透明にする*/
}
 
/* メニューを開いている時はハンバーガーボタンが×になる */
#menu-btn-check:checked ~ .menu-btn span::before {
  bottom: 0;
  transform: rotate(45deg);
}
#menu-btn-check:checked ~ .menu-btn span::after {
  top: 0;
  transform: rotate(-45deg);
}

/* =================
メニュー部分の実装
================= */
 
.menu-content {
  width: 80%;
  height: 100%;
  position: fixed;
  top: 0;
   /* メニューを外に出しておく */
  left: 100%;
  z-index: 80;
  background-color: #0464b4;
  transition: all 0.5s; /*アニメーションを滑らかにする*/
}
.menu-content ul {
  padding: 70px 10px 0;
}
.menu-content ul li {
  border-bottom: solid 1px #ffffff;
  list-style: none;
}
.menu-content ul li a {
  display: block;
  width: 100%;
  font-size: 15px;
  box-sizing: border-box;
  color: #ffffff;
  text-decoration: none;
  padding: 9px 15px 10px 0;
  position: relative;
}
 
#menu-btn-check:checked ~ .menu-content {
  left: 30%; /*メニューを画面内へ動かす*/
}

/*ヘッダーのロゴと電話番号*/
.page-header {
  display: flex;
  width: 1200px;
  left: 1rem;
  right: 1rem;
  justify-content: space-between;
  margin: auto;
}
/*ページ中央に最大幅設定*/
.wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 4px;
}

@media (max-width: 768px){
  .wrapper
  {
    max-width: 100%;
  }
  .page-header
  {
    max-width: 100%;
  }
  .logo
  {
    width: 150px;
    height: auto;
  }
  .phone
  {
    display: none;
  }
  .hamburger-menu
  {
    display: inline-block;
  }
  }
/*home
----------------------------------------------------*/

#home .page-title {
  text-transform: none;
}

.guide
{ font-family: yu-mincho-pr6n, sans-serif;
  text-align: center;
  line-height: 1.5;
  margin-top: 20px;
}

/*slick　スライダー設定
------------------------------------------\*/
.box
{
  top: 0;
  position: relative;
}

.slider-2 .slick-slide {
  width: 1000px;
  height: 500px;
  margin: 0 40px;
  position: relative;
  overflow: hidden;
}
.slider-2 .slick-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.slider-2 .slick-arrow {
  z-index: 2;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background-color: #fff;
  cursor: pointer;
  border: none;
  outline: none;
  font-size: 0;
  position: absolute;
  top: 220px;
  filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.16));
}
.slider-2 .slick-arrow::before {
  content: '';
  display: block;
  width: 12px;
  height: 12px;
  border: 1px solid #0464b4;
  border-width: 3px 3px 0 0;
  position: absolute;
  top: 24px;
  transform: rotate(45deg);
}
.slider-2 .slick-next {
  right: 0;
}
.slider-2 .slick-prev {
  left: 0;
}
.slider-2 .slick-next::before {
  left: 20px;
}
.slider-2 .slick-prev::before {
  border-width: 0 0 3px 3px;
  right: 22px;
}
.dots-2 .slick-dots {
  text-align: center;
}
.dots-2 .slick-dots li {
  display: inline-block;
}
.dots-2 .slick-dots button {
  display: block;
  width: 10px;
  height: 10px;
  margin: 6px;
  font-size: 0;
  padding: 0;
  border: 0;
  outline: none;
  cursor: pointer;
  background: #bcbcbc;
  border-radius: 50%;
}
.dots-2 .slick-dots .slick-active button {
  background: #0464b4;
}

.slider img {
  width:auto;
  height:70%;
}

/*slickのJSで書かれるタグ内、スライド左右の余白調整*/

.slider .slick-slide {
  margin:0 10px;/*スライド左右の余白調整*/
}

/*スライダー以外のトップ画*/
.haikei
{
  z-index: -1;
  width: 100vw;
}

@media (max-width: 768px)
{
  .slider-2 .slick-slide {
    width: 600px;
    height: 300px;
    margin:0;
    position: relative;
    overflow: hidden;
  }
  .slider-2 .slick-arrow {
    width: 40px;
    height: 40px;
    top: 150px;
  }
  .slider-2 .slick-arrow::before {   
    top: 12px;
    left: 15px;
  }

  .slider-2 .slick-next::before {
    left: 10px;
  }

  .home-content
  {
    position: fixed;
    top:0;
    left:0;
  }
}

.haikei
{
  max-height: 50%
}
  
@media (max-width:768px)
{
  .haikei{
  max-width: none;
  max-height: 40vh;
  display: block;
  position: relative;
  }
}
/*home-content
----------------------------------------------------*/


/*トップページの白背景用*/
.home-content {
  z-index: 1;
  position:absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  /*left:20%;
  top:33%;
  width:800px;
  height:50%;
  text-align: center;*/
}
.home-content p
{
  background: rgba(255, 255, 255, 0.6);
  /*max-width: 800px; 
  margin-top: 0;
  margin-bottom: 0;*/
}


.box2 {
  z-index: 1;
  position:absolute;
  right: auto;
  top:38%;
  width:100%;
  text-align: center;
}
.box2a {  /*タイトルが長いページ用*/
  z-index: 1;
  position:absolute;
  right: auto;
  top:40%;
  width:100%;
  text-align: center;
}

.slogan {   /*トップページの目標文*/
  font-size: 2.8rem;
  line-height: 1.4;
  background: rgba(255, 255, 255, 0.6);
  max-width: 900px;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  font-weight: 900
}

.siro-haikei{
  background: rgba(255, 255, 255, 0.6);
  padding: 1.5vh; 
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.siro-haikei2     /*タイトルが長いページ用*/
{
  background: rgba(255, 255, 255, 0.6);
  padding: 1.5vh;
  margin-right: auto;
  margin-left: auto;
  width: 100%;
}

.title {
  font-size: 3rem;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  line-height: 1.7;
  font-weight: 900;
}
.title2       /*タイトルが長いページ用*/
{
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  line-height: 1.7;
  font-weight: 700;
  font-size: 2rem;
}


@media (max-width: 768px)
{
.home-content
{
  position:relative;
  margin-top:55px;
  max-width:100%;
}
.home-content p
{
  font-size: 0.8rem;
  color:#0464b4;
  line-height: 1.2;
  margin-top:10px;
  max-width: 80%;
  margin-left: auto;
  margin-right: auto;
}
.slogan
{
  font-size: 1.3rem;
  background: none;
  max-width: 100%;
  font-weight: 700;
  margin-left: auto;
  margin-right: auto;
}
.guide
{ font-family: yu-mincho-pr6n, sans-serif;
  line-height: 1.3;
  margin-top: 30px!important;
  font-size: 0.9rem;
  max-width: 85%;
}
.box2 {
  z-index: 1;
  position:absolute;
  right: auto;
  top:35%;
  width:100%;
  text-align: center;
}
.box2a {
  z-index: 1;
  position:absolute;
  left:0;
  right: auto;
  top:32%;
  width:100%;
  text-align: center;
}
.siro-haikei{
  padding: 0; 
}
.siro-haikei2{
  padding: 1rem; 
  margin-right: 1rem;
}


.title {
  font-size: 1.8rem;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  line-height: 1.7;
  font-weight: 700;
}
.title2 {
  font-size: 1.8rem;
  font-family: fot-tsukuaoldmin-pr6n, sans-serif;
  line-height: 1;
  font-weight: 700;
}
}

/*========= ナビゲーションドロップダウンのためのCSS ===============*/

/*==ナビゲーション全体の設定*/
.main-nav{
	background:#0464b4;
	color:#040404;
	text-align: center;
  position:relative;
  font-weight: 600;
  z-index:998;
}
/*ナビゲーションを横並びに*/
.main-nav ul{
	list-style: none;
	display: flex;
	justify-content: center;
}

/*ナビ間に白線追加*/
.main-nav :not(:first-child)::before
{
  content: "";
  width: 1px;
  height: 100%;
  background-color: #fff;
  position: absolute;
  top: 0;
  left: 0;
  transition:all .3s;
}

/*2階層目以降は横並びにしない*/
.main-nav ul ul{
	display: block;
}

/*下の階層のulや矢印の基点にするためliにrelativeを指定*/
.main-nav ul li{
	position: relative;
}

/*ナビゲーションのリンク設定*/
.main-nav ul li a{
	display: block;
  color: #040404;
	background-color: #0464b4;
	padding:15px 55px;
	transition:all .3s;
}

.main-nav ul li li a{
	padding:10px 35px;
}

.main-nav ul li a:hover{
	color:#fff;
  background:#28BFE7;	
}

/*== 2階層目の設定 */

/*下の階層を持っているulの指定*/
.main-nav li.has-child ul{
    /*絶対配置で位置を指定*/
	position: absolute;
	left:0;
	top:56px;
	z-index: 4;
    /*形状を指定*/
	width:175px;
    /*はじめは非表示*/
	visibility: hidden;
	opacity: 0;
    /*アニメーション設定*/
	transition: all .3s;
}

/*hoverしたら表示*/
.main-nav li.has-child:hover > ul,
.main-nav li.has-child ul li:hover > ul,
.main-nav li.has-child:active > ul,
.main-nav li.has-child ul li:active > ul{
  visibility: visible;
  opacity: 1;
}

/*ナビゲーションaタグの形状*/
.main-nav li.has-child ul li a{
	color: #fff;
	border-bottom:solid 1px rgba(255,255,255,0.6);
}

.main-nav li.has-child ul li:last-child a{
	border-bottom:none;
}

.main-nav li.has-child ul li a:hover,
.main-nav li.has-child ul li a:active{
	background:#28BFE7;
}

/*==768px以下の形状*/

@media screen and (max-width:768px){
  .main-nav
  {
    display: none;
  }
  .breadcrumb
  {
    margin-top: 30px;
    margin-left: 0.5rem;
    font-size: 0.85rem;
  }
}


/*main
----------------------------------------------------*/

/*モーションの設定*/
/*下からふわっ*/
.fadeUpTrigger{
  opacity: 0;
  }
.fadeUp {
    animation-name: fadeUpAnime;
    animation-duration:2s;
    animation-fill-mode:forwards;
    opacity: 0;
}
@keyframes fadeUpAnime{
from {
    opacity: 0;
    transform: translateY(100px);
}
to {
    opacity: 1;
    transform: translateY(0);
}
}

/*文字に水色の四角が覆いかぶさるアニメーション、トップページ用*/
/*========= レイアウトのためのCSS ===============*/

.bgextend{
	width: 600px;
	padding: 20px;
	margin:0 20px 20px 0;
	box-sizing:border-box;
}

/*========= 背景色の動きのCSS ===============*/

/*背景色が伸びて出現 共通*/
.bgextend{
	animation-name:bgextendAnimeBase;
	animation-duration:1s;
  animation-delay: 5.5s;
	animation-fill-mode:forwards;
	position: relative;
	overflow: hidden;/*　はみ出た色要素を隠す　*/
	opacity:0;
}

@keyframes bgextendAnimeBase{
  from {
    opacity:0;
  }

  to {
    opacity:1;  
}
}

/*中の要素*/
.bgappear{
	animation-name:bgextendAnimeSecond;
	animation-duration:1s;
	animation-delay: 6.3s;
	animation-fill-mode:forwards;
	opacity: 0;
}

@keyframes bgextendAnimeSecond{
	0% {
	opacity: 0;
	}
	100% {
	opacity: 1;
}
}

/*--------- 右から --------*/
.bgRLextend::before{
	animation-name:bgRLextendAnime;
	animation-duration:1s;
  animation-delay: 5.5s;
	animation-fill-mode:forwards;
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #0464b4;/*伸びる背景色の設定*/
}
@keyframes bgRLextendAnime{
	0% {
		transform-origin:right;
		transform:scaleX(0);
	}
	50% {
		transform-origin:right;
		transform:scaleX(1);
	}
	50.001% {
		transform-origin:left;
	}
	100% {
		transform-origin:left;
		transform:scaleX(0);
	}
}

/*背景色が右から出てくるアニメーション。そのほか用*/
/*========= レイアウトのためのCSS ===============*/
.bgextend2{
	width: 800px;
	padding: 0;
	margin:0;
	box-sizing:border-box;
}
/*========= 背景色の動きのCSS ===============*/
.bgextend2{
	animation-name:bgextendAnimeBase;
	animation-duration:1s;
  animation-delay: 0.7s;
	animation-fill-mode:forwards;
	position: relative;
	overflow: hidden;/*　はみ出た色要素を隠す　*/
	opacity:0;
}

@keyframes bgextendAnimeBase{
  from {
    opacity:0;
  }

  to {
    opacity:1;  
}
}

/*中の要素*/
.bgappear3{
	animation-name:bgextendAnimeSecond;
	animation-duration:1s;
	animation-delay: 1.5s;
	animation-fill-mode:forwards;
	opacity: 0;
}

@keyframes bgextendAnimeSecond{
	0% {
	opacity: 0;
	}
	100% {
	opacity: 1;
}
}

/*--------- 右から --------*/
.bgRLextend2::before{
	animation-name:bgRLextendAnime;
	animation-duration:1s;
  animation-delay: 0.7s;
	animation-fill-mode:forwards;
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #0464b4;/*伸びる背景色の設定*/
}
@keyframes bgRLextend2Anime{
	0% {
		transform-origin:right;
		transform:scaleX(0);
	}
	50% {
		transform-origin:right;
		transform:scaleX(1);
	}
	50.001% {
		transform-origin:left;
	}
	100% {
		transform-origin:left;
		transform:scaleX(0);
	}
}

@media (max-width: 768px)
{
  .bgextend{
    width: 100vw;
  }
  .bgextend2{
    width: 100vw;
  }
}



/*会社概要のテーブル設定*/
table
{
  margin-top: 20px;
  margin-left: 0.4rem;
  width: 800px;
  border-collapse: collapse;
  border: none;
}

table td
{
  border-width: 1px 0px;
  padding: 10px 30px;
  border: none;
  border-left: 1px solid #bcbcbc;
  border-top: 1px solid #bcbcbc;
  font-size: 0.9rem;
}
td:first-child
{
  border-left: none;
}

@media (max-width: 768px)
{
  table
  {
    max-width: 100%;
  }
  table td
  {
    padding: 5px 7px;
  }
}


/*topic-contents 投稿記事表示設定
----------------------------------------------------*/
.topic-contents
{
  display: flex;
  justify-content: space-between;
  margin-bottom: 50px;
}

article
{
  width: 68%;
}
.sub-title
{ display: flex;
  font-family: paralucent, sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 1.4rem;
  margin-top: 1.1rem;
  margin-left: 1rem
}
.wrapper article
{
  width: 100%;
}
.topic-info
{
  position:relative;
  margin-bottom: 40px;
}
.topic-date
{
  background: #0464b4;
  border-radius: 50%;
  color: #fff;
  width: 90px;
  height: 80px;
  font-size: 1.3rem;
  text-align: center;
  position: absolute;
  top: 0;
  padding-top: 10px;
  margin-top: 10px;
}
.topic-date span
{
  font-size: 1rem;
  border-top: 1px rgba(255, 255, 255, 0.6) solid;
  padding-top: 5px;
  display: block;
  width: 60%;
  margin: 0 auto;
}
.topic-title
{
  display: flex;
  font-size: 2rem;
  font-weight: 700;
  width: 700px;
  border-bottom: 3px #0464b4 solid;
}

.product .topic-title
{
  width: 900px;
}
.topic-main
{
  margin-left: 100px;
}

.topic-main p
{
  margin-bottom: 2rem;
}

.aligncenter{
	display: block;
	margin-left: auto;
	margin-right: auto;
}
.alignright{
	float: right;
	margin-left: 1.5em;
}
.alignleft{
	float: left;
	margin-right: 1.5em;
}
@media (max-width: 768px)
{
	.alignright{
		float: none;
		margin-left: 0;
	}
	.alignleft{
		float: none;
		margin-right: 0;
	}

  .topic-title
{
  width: 100vw;
}

  .topic-main
  { 
   margin-left: 10px;
   margin-top: 3rem; 
  }
  .sub-title
{ display: none;
}
.topic-info .topic-title
{
  font-size: 1.5rem;
  width: auto;
  margin-top: 10px;
}
.product .topic-title
{
  width: 100vw;
}
.topic-date
{
  margin-top: 0;
}
}

@media (max-width: 768px)
  {
.front-topic
{
  width: 100vw;
}
}

/*section
----------------------------------------------------*/

.timeline { /*会社概要の年表用*/
  list-style: none;
  margin-left: 20px;
}
.timeline > li {
  margin-bottom: 60px;
}

@media ( min-width : 768px ) {
  /* デスクトップ用のCSS */
  .timeline
  {
    font-size: 0.95rem;
  }

  .timeline > li {
    overflow: hidden;
    margin: 0;
    position: relative;
  }
  .timeline-date {
    width: 110px;
    float: left;
    margin-top: 20px;
  }
  .timeline-content {
    width: 75%;
    float: left;
    border-left: 3px #e5e5d1 solid;
    padding-left: 30px;
  }

  .timeline-content p{
    margin-top: 20px;
  }

  .timeline-content:before {
    content: '';
    width: 12px;
    height: 12px;
    background: #0464b4;
    position: absolute;
    left: 106px;
    top: 28px;
    border-radius: 100%;
  }
  .timeline span
{
  display:none
} 

}

/*事業内容ページ設定*/
.business-field
{
  display: flex;
  justify-content: space-between;
}

.field-img
{
  width: 50%;
 
}

.field-text
{
  width: 55%;
  font-size: 0.92rem;
}
.business-field .field-text
{
  margin-top: 10px; 
  font-size: 1rem; 
  width: 45%;
}

.business-field .field-img
{
  margin-top: 20px;
  margin-bottom: 20px;
  margin-right: 150px;
  position: relative;
  width: 50%;
  height: 50%;
}

.field-text .subtopic-title
{
  width: 100%;
}

.sub-title .bs
{
  width: 1000px;
}

@media (max-width:768px)
{
  .business-field
  {
    display: block;
  }
  .business-field .field-text
  {
    font-size: 0.85rem; 
    line-height: 1.8;
    width: 95%;
  }
  .business-field .field-img
  {
    margin-top: 15px;
    margin-bottom: 10px;
    margin-right: 1rem;
    position: relative;
    width: 90%;
    height: auto;
  }
  .field-img
{
  width: 80%;
  margin-left: auto;
  margin-right: auto;
}
.field-text
{
  width: 95%;
  font-size: 0.8rem;
  line-height: 1.5;
}
.sub-title .bs
{
  width: 100%;
}
}

/*受託開発の説明*/
.bf-lists
{
  display: flex;
  flex-wrap: wrap;
  z-index: 5;
  position: absolute;
  top: 30%;
  width: 100%;
  height: 250px;
  padding-top: 0%;
  padding-bottom: 0%;
}
.bf-list
{
  display: flex;
  flex-wrap: nowrap;
  width: 16.665%;
  height: 100%;
  background-color: none;
  position: relative;
  transition: all .3s;
  list-style: none;
}

.bf-list:hover
{
  cursor: pointer;
}

.bf-list:not(:first-child)::before
{
  content: "";
  height: 100%;
  background-color: none;
  position: absolute;
  top: 0;
  left: 0;
  transition:all .3s;
}

.bf-list div
{
  display: flex;
  justify-content: center;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: #fff;
  font-size: 1.1rem;
  font-weight: 500;
  transition: all .3s;
}

.bf-dropdown-lists
{
  transform: scaleY(0);/*デフォルトでは非表示の状態にしておく*/
  transform-origin: center top;/*変形を適応する基準をtopとする*/
  transition: all .3s;/*表示の変化を0.3秒に指定*/
  width: 100%;
  position: absolute;
  top: 250px;
  left: 0;
  
}
.bf-list:hover .bf-dropdown-lists
{
  
  transform: scaleY(1);
}
.bf-dropdown-list
{
  height: 140px;
  transition: all .3s;
  position: relative;
  list-style: none;
}
.bf-dropdown-list:not(:first-child)::before
{
  content: "";
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.bf-dropdown-list div
{
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  text-decoration: none;
}

.bf-lists li div
{
  position: relative;
}

@media (max-width:768px)
{
 .wrapper .bf-lists
{
  top: 30%;
  width: 100%;
  height: 150px;
  padding-top: 0%;
  padding-bottom: 0%;
}
.wrapper .bf-dropdown-lists
{
  top: 78px;
}
.bf-lists li div
{
  font-size: 0.7rem;
  line-height: 1.5;
}
}

/*製品情報説明用*/
.product-p
{
  padding: 12px 10px;
  line-height: 1.4;
  margin-left: 20px;
}

.product-info
{
  display: flex;
  justify-content: space-between;
  margin-top: 20px;
  margin-left: 30px;
  margin-right: 100px;
  margin-bottom: 10px;
}

.product-info h4
{
  font-size: 1.325rem;
}
.product-info div
{
  max-width: 45%;
  line-height: 1.4;
  font-size: 0.95rem;
}
.product-info span
{
  width: 2px;
  height: 400px;
  background-color: #0464b4;
}

@media (max-width:768px)
{
 .product-p
  {
    padding: 0!important;
    font-size: 0.9rem;
    line-height: 1.5;
    margin-top: 10px;
    margin-left: 12px;
    margin-right: 20px;
  }
  .product-info
  {
  display: block;
  margin-top: 20px;
  margin-left: 10px;
  margin-right: 10px;
  margin-bottom: 10px;
  }
  .product-info div
{
  max-width: 95%;
  line-height: 1.5;
  font-size: 0.9rem;
}
.product-ps
{
  padding: 0!important;
  margin-left: 10px!important;
}
}


/*ぴこらく説明用*/
.pikoraku
{
  display: flex;
  justify-content: space-between;
  margin-bottom: 80px;
  margin-top: 80px;
}

.pikoraku-movie
{
  width: 50%;
  aspect-ratio: 16/9;
  margin-top: 4rem;
  margin-right: 1rem;
}

@media (max-width:768px)
{
  .pikoraku
  {
  display: block;
  }
  .pikoraku-movie
{
  width: 95%;
  aspect-ratio: 16/9;
  margin-top: 1rem;
  margin-left: 0.5rem;
  margin-right: 0;
}
}

.section-info
{
  width: 40%;
}
.margin-info
{
  width: 80%;
}
.margin-info p
{
  padding: 12px 10px;
  line-height: 1.4;
  margin-left: 20px;
}
.section-info p
{
  padding: 12px 10px;
  line-height: 1.4;
  margin-left: 20px;
}

@media  (max-width: 768px)
{
.margin-info
{
  width: 100%;
}

.margin-info p
{
  margin-left: 5px;
  line-height: 1.6;
}
.section-info p
  {
    font-size: 0.8rem;
    line-height: 1.8;
  }
}

/*地図設定*/
.location-map
{
  width: auto;
  margin-top: 80px;
  margin-right: 5vh;
}
.lmap2
{
  display: none;
}

#location .wrapper
{
  display: flex;
  justify-content: space-between;
}


@media (max-width:768px)
{
  .section-info
{
  width: 90%;
}
.section-info p
{
  margin-left: 10px;
  font-size: 0.95rem;
}
  #location .wrapper
{
  display: block;
}
.location-map
{
  margin-top: 0;
  margin-right: 0;
}
.lmap1
{
  display: none;
}
.lmap2
{
  display: block;
}

}

/*リストを数字で表示*/
.count-list
{
  padding: 0px 10px 12px 10px; 
  line-height: 1.4; 
  margin-left: 20px; 
  list-style-type: decimal;
  list-style-position: inside;
  text-indent: -1em;
}
/*リストを・で表示*/
.count-list2
{
  padding: 0px 10px 12px 10px; 
  line-height: 1.4; 
  list-style-type: disc;
  list-style-position: inside;
  text-indent: -1em;
  margin-left: 40px;
  margin-top: 20px;
}
.count-list li
{
  margin-bottom: 10px;
}

/*個人情報取り扱い説明ページ用テーブル設定*/
.table-2
{
  margin-top: 20px;
  margin-left: 0.4rem;
  width: 800px;
  margin-bottom: 20px;
  border-collapse: collapse;
  border: 2px solid #bcbcbc;
}

.table-2 th
{
  border-width: 1px 0px;
  padding: 10px 30px;
  border: 1px solid #bcbcbc;
  background-color:#dedede;
}

.table-2 td
{
  border-width: 1px 0px;
  padding: 10px 30px;
  font-size: 0.9rem;
  border: 1px solid #bcbcbc;
}

.recruit
{
  width: 80%;
}

@media (max-width:768px)
{
  .recruit
  {
  width: 100%;
  }
  .count-list2
  {
    margin-left: 25px;
  }
  .table-2
  {
  margin-left: 0.1rem;
  }
  .table-2 th
  {
  padding: 10px 20px;
  }
  .table-2 td
  {
  padding: 10px 20px;
  }
  .margin-info .topic-title
  {
    display: flex;
    font-size: 1.5rem;
    font-weight: 700;
    max-width: 100%;
    border-bottom: 3px #0464b4 solid;
    line-height: 1.2;
  }
}

/*採用情報、部署説明用*/
.table-3
{
  margin-top: 10px;
  margin-left: 1.9rem;
  max-width: 800px;
  margin-bottom: 20px;
  border-collapse: collapse;
}

.table-3 th
{
  border-width: 1px 0px;
  padding: 10px 20px;
  border: 1px solid #bcbcbc;
  background-color:#dedede;
  width: 26%;
}

.table-3 td
{
  border-width: 1px 0px;
  padding: 10px 20px;
  font-size: 0.9rem;
  border: 1px solid #bcbcbc;
}

@media screen and (max-width: 768px) {
table
{
  width: 100%;
  font-size: 0.8rem;
}


  .table-3 {
    margin-top: 5px;
    width: 95%;
    margin-left: 0.5rem;
  }
  .table-3 th,
  .table-3 td {
    border-bottom: none;
    display: block;
    width: 89%;
    padding: 7px 20px;
    font-size: 0.8rem;
  }
  .recruit-contact
  {
  width: 93%;
  margin-left: 0.3rem;
  }
}

.subtopic-title
{
  font-size: 1.5rem;
  font-weight: 500;
  width: 700px;
  border-bottom: 1.5px #0464b4 solid;
}

@media (max-width:768px)
{
.subtopic-title
{
  width: 100%;
  font-size: 1.2rem;
}
}

/*お問い合わせリンクをホバーしたら色を薄くする*/
.recruit-contact img:hover
{
  opacity:0.7;
	transition:0.1s;
  filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.30));
}


/*アコーディオンパネル*/
.accordion-area{
  list-style: none;
  max-width: 900px;
}

.accordion-area li{
  margin: 10px 0;
}

.accordion-area section {
border: 1px solid #ccc;
}

.rec-title
{ position: relative;/*+マークの位置基準とするためrelative指定*/
  cursor: pointer;
  padding: 3% 3% 3% 50px;
  transition: all .5s ease;
  font-size: 1.5rem;
  font-weight: 500;
  max-width: 1000px;
  border-bottom: none;
}

/*アイコンの＋と×*/
.rec-title::before,
.rec-title::after{
    position: absolute;
    content:'';
    width: 15px;
    height: 2px;
    background-color: #0464b4;
    
}
.rec-title::before{
    top:48%;
    left: 15px;
    transform: rotate(0deg);
    
}
.rec-title::after{    
    top:48%;
    left: 15px;
    transform: rotate(90deg);

}
/*　closeというクラスがついたら形状変化　*/
.rec-title.close::before{
	transform: rotate(45deg);
}

.rec-title.close::after{
	transform: rotate(-45deg);
}

/*アコーディオンで現れるエリア*/
.rec-box {
  display: none;/*はじめは非表示*/
  margin:0 3% 3% 3%;
  padding: 3%;
}

/*ページトップへ移動*/
/*リンクの形状*/
#page-top a{
	display: flex;
	justify-content:center;
	align-items:center;
	background:#0464b4;
	border-radius: 50%;
	width: 70px;
	height: 70px;
	color: #fff;
	text-align: center;
	text-transform: uppercase; 
	text-decoration: none;
	font-size:0.7rem;
	transition:all 0.3s;
}

#page-top a:hover{
	background: #777;
}

/*リンクを右下に固定*/
#page-top {
	position: fixed;
	right: 80px;
	bottom:120px;
	z-index: 999;
    /*はじめは非表示*/
	opacity: 0;
	transform: translateY(100px);
}

/*　上に上がる動き　*/

#page-top.UpMove{
	animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
  from {
    opacity: 0;
	transform: translateY(100px);
  }
  to {
    opacity: 1;
	transform: translateY(0);
  }
}

/*　下に下がる動き　*/

#page-top.DownMove{
	animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
  	opacity: 1;
	transform: translateY(0);
  }
  to {
  	opacity: 1;
	transform: translateY(100px);
  }
}


@media (max-width:768px)
{
  #page-top {
    position: fixed;
    right: 300px;
    bottom:120px
  }
}

/*footer
----------------------------------------------------*/
footer
{
  background-color:#040404;
  text-align: left;
  padding: 0;
}
footer p
{
  color:#fff;
  font-size: 0.875rem;
}
footer nav
{
  background-color: #2b2b2b;
  padding: 4px;
}
footer nav ul
{
  display: flex;
  font-size: 0.75rem;
  list-style: none;
}
footer nav a
{
  color: #53b3ce;
}
footer nav ul li:hover
{
  color: #fff;
}

.menu-suba
{
  flex-grow: 0.05;
  position: relative;
}
.menu-suba::after {
	position: absolute;
	top: 0;
	left: 80%;
	margin: 0 1rem;
	content: "";
	width: 1px;
	height: 100%;
  background-color: #040404;
}
.menu-subb
{
  flex-grow: 0.05;
  position: relative;
}
.menu-subb::after {
	position: absolute;
	top: 0;
	left: 80%;
	margin: 0 1rem;
	content: "";
	width: 1px;
	height: 100%;
  background-color: #040404;
}
.menu-subc
{
  flex-grow: 0.05;
  position: relative;
}
.banner
{
  display: flex;
  list-style: none;
  justify-content: flex-end;
  margin-top: 10px;
  gap: 0 4px;
}

@media (max-width:768px)
{
  footer nav ul
  {
    display: block;
  }
  .menu-suba::after {
    width: 0px;
  }
  .menu-subb::after {
    width: 0px;
  }
}

/*ホバーしたら色を薄くする*/
.banner img:hover
{
  opacity:0.7;
	transition:0.1s;
  filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.30));
}


/* Contact Form7 */

.contact7 {
	width: 650px;
	box-sizing: border-box;
}
.contact7 dd {
	margin: 0 0 10px 0;
	background-color:none;
}
.contact7 dt {
	font-weight: normal;
  height: 35px;
}

/* 必須マーク */
.contact7 .must {
	background: #FF1A00;
}

/* 任意マーク */
.contact7 .optional {
	background: #999;
}

.contact7 .must,
.contact7 .optional {
	color: #FFF;
	border-radius: 3px;
	font-size: 10px;
	margin-left: 10px;
	padding: 5px 10px;
	letter-spacing: 2px;
}
.btn_contact7 {
	text-align: center;
}
.btn_contact7 input {
	width: 70%;
	background-color: #0464b4;
	color: #FFF;
	font-size: 1.1em;
	font-weight: bold;
	letter-spacing: 0.2em;
	border: 1px solid #0464b4;
	-webkit-transition: 0.3s;
	-moz-transition: 0.3s;
	-o-transition: 0.3s;
	-ms-transition: 0.3s;
	transition: 0.3s;	
}
.btn_contact7 input:hover {
	background-color: #FFF;
	color: #0464b4; 
}
.wpcf7 input[name="your-name"],
.wpcf7 input[name="your-zip"],
.wpcf7 input[name="your-address"],
.wpcf7 input[name="your-tel"],
.wpcf7 input[name="your-email"],
.wpcf7 input[name="your-subject"] {
        height: 25px !important;
}

.wpcf7 textarea[name="your-message"] {
        width: 350px;
        height: 250px !important;
}

@media screen and (min-width: 768px) {
.contact7 dt {
	float: left;
	clear: left;
	width: 35%;
	padding: 5px 10px 5px 0;
	}
.contact7 dd {
	margin-left: 35%;
	}

.btn_contact7 input {
	width: 70%;
	background-color: #0464b4;
	color: #FFF;
	font-size: 1.1em;
	font-weight: bold;
	letter-spacing: 0.2em;
	border: 1px solid #0464b4;
	-webkit-transition: 0.3s;
	-moz-transition: 0.3s;
	-o-transition: 0.3s;
	-ms-transition: 0.3s;
	transition: 0.3s;	
}
.btn_contact7 input:hover {
	background-color: #FFF;
	color: #0464b4; 
}
}

/*topicsの一部文字列非表示*/
.screen-reader-text
{
  display:none
}

.pro-haikei
{
  display: none;
}

@media (max-width:768px){
  .pro-slider
  {
    display: none!important;
  }
  .pro-haikei
  {
    display: block;
  }
  }