@charset "UTF-8";

.noto_sans {font-family: 'Noto Sans JP', sans-serif;}
.noto_serif {font-family: 'Noto Serif JP', serif;}
.zen_maru {font-family: 'Zen Maru Gothic', sans-serif;}

/*--HOVER==========================================--*/
a:hover {opacity: .75;}

/*--layout-base
===================================================--*/
body {
	line-height: 1.8;
	background: url('/pigeon-protector/assets/img/bg.jpg') no-repeat top center fixed;
	background-size: cover;
}

/* ----------
  header
------------------------------*/
header {
	position: fixed;
	z-index: 5;
	width: 100%;
	padding: 10px 0;
	border-bottom: 10px solid;
	border-image: linear-gradient(to right, #004ea2 50%, #e8374a 50%) 1;
	background-color: #fff;
}

.header_inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	width: 100%;
	margin: 0 auto;
	padding: 0 1.5em;
}
.header_logo {width: calc(100% - 3em - 165px); min-height: 50px;}
.header_logo a img {max-height: 50px;}

@media screen and (max-width:1200px) {
	.header_inner {padding: 0 2%;}
}

@media screen and (max-width:768px) {
	.header_logo {width: calc(100% - 4% - 60px); min-height: 50px;}
}


/* ----------
  ハト飛来
------------------------------*/
@media screen and (min-width: 641px) {
	.birds {
	  position: fixed;
		top: -200px;
		left: -200px;
	  margin: 30px 0;
	  width: 120px;
	  height: 114px;
	  z-index: 999;
	  animation: bird 20S infinite ease-in-out;
	  filter: drop-shadow(8px 8px 5px rgba(30,30,30,0.5));
	}
	.birds_hatopro {
		position: fixed;
		top: 100%;
		right: 120px;
	  width: 300px;
	  height: 58px;
	  z-index: 999;
	  animation: bird_hatopro 20S infinite ease-in-out;
	  filter: drop-shadow(2px 2px 2px rgba(30,30,30,0.5));
	}
}
@media all and (max-width: 640px) {
	.birds {display: none;}
	.birds_hatopro {display: none;}
}
@media print {
	.birds {display: none;}
	.birds_hatopro {display: none;}
}

@keyframes bird{
   0%{transform: translate(0,0);}
  10%{transform: translate(calc(100vw + 400px),0) rotate(-15deg);}
  17%{transform: translate(calc(100vw - 120px), 93vh) rotate(15deg);}
  19%{transform: translate(calc(100vw - 120px), 93vh) rotate(16deg);}
  27%{transform: translate(calc(100vw - 140px), 94vh) skew(-2deg,-2deg) scale(0.8,0.8);}
  35%{transform: translate(calc(100vw - 130px), 87vh) rotate(-15deg);}
  38%{transform: translate(0,0);}
 100%{transform: translate(0,0);}
}

@keyframes bird_hatopro{
   0%{transform: translate(0,0);}
   5%{transform: translate(0,-58px);}
  45%{transform: translate(0,-58px);}
  50%{transform: translate(0,0);}
  100%{transform: translate(0,0);}
}


/* ----------
  ハト電線
------------------------------*/
.densen {
	display: block;
	margin: 120px auto 50px;
	width: 100%;
	background: url("/pigeon-protector/assets/img/hatos_B_line.png") repeat-X center;
}
.densen figure {text-align: center;}

/* ----------
  footer
------------------------------*/
footer {
	position: relative;
	z-index: 1000;
	padding: 20px 0 10px;
	border-top: 10px solid;
	border-image: linear-gradient(to right, #004ea2 50%, #e8374a 50%) 1;
	background: #fff;
}

.foot_logo {
	text-align: center;
	height: 50px;
}
.foot_logo img {
	height: 100%;
}

footer p {
	margin-top: 1.5em;
	text-align: center;
	font-size: 0.8em;
}

@media screen and (max-width:640px) {
	.foot_logo img {height: 50px;}
}


/* フリーダイヤル */
.footer2 {
	padding: 30px 0;
	background-color: #fff;
	text-align: center;
}

.footer2 h3 {
	padding: 5px 0;
	border-radius: 1.5em;
	color: #555;
	font-size: 1.5em;
	font-weight: bold;
}

.footer2 h3 br {
	display: inline;
}

.footer2 .tel_member {
	font-size: 1.5em;
	font-weight: bold;
	color: #0066c9;
}

.footer2 .tel_free {
	display: inline-block;
	margin-right: 5px;
	padding: 2px 0;
	border: 4px solid #333;
	background: #0066c9;
	color: #fff;
	font-weight: bold;
	vertical-align: bottom;
}

@media screen and (min-width:981px) {
	.footer2 h3 br {display: none;}
	.footer2 .tel_member {font-size: 3em;}
	.footer2 .tel_free {padding: 15px 10px;}
}

/* 購入について */
.foot_about_shop {
	width: 100%;
	max-width: 640px;
	margin: 1em auto 0;
	border: 1px solid #258;
	padding: 1em;
}

.foot_about_shop h4 {
	margin-bottom: 0.5em;
	padding-bottom: 0.5em;
	color: #258;
	border-bottom: 1px solid #258;
	font-size: 1.125em;
}

.foot_about_shop p {
	font-size: 0.875em;
}

.foot_about_shop a {
	display: inline-block;
	margin: 0 1em;
	color: #1c7bc4;
}

/* ----------
  content
------------------------------*/
.container {
	padding: 30px 0;
}
.content {
	width: 100%;
	max-width: 1200px;
	margin-right: auto;
	margin-left: auto;
}

.columns {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.column2 {width: calc(100% / 2 - 20px);}
.column3 {width: calc(100% / 3 - 20px);}
.column3-2 {width: calc((100% / 3)*2 - 20px);}

@media all and (max-width:1200px) {
	.content {padding: 1.5em;}
}
@media all and (max-width:768px) {
	.container {padding: 0;}
}


/*========= ナビゲーションのためのCSS ===============*/
/*アクティブになったエリア*/
.gnavi.panelactive {
	/*position:fixed;にし、z-indexの数値を大きくして前面へ*/
	position: fixed;
	z-index: 999;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
}

/*丸の拡大*/
.circle-bg {
	position: fixed;
	z-index: 3;
	/*丸の形*/
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: #efefef;
	/*丸のスタート位置と形状*/
	transform: scale(0);
	/*scaleをはじめは0に*/
	top: -50px;
	left: calc(50% - 50px);
	/*50%から円の半径を引いた値*/
	transition: all .6s;
	/*0.6秒かけてアニメーション*/
}

.circle-bg {
	border-bottom: 2px solid #bbb;
}

.circle-bg.circleactive {
	transform: scale(50);
	/*クラスが付与されたらscaleを拡大*/
}

/*ナビゲーションの縦スクロール*/
.gnavi_list {
	display: none;
	/*はじめは表示なし*/
	/*ナビの数が増えた場合縦スクロール*/
	position: fixed;
	z-index: 99;
	width: 100%;
	height: 100vh;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}

.gnavi.panelactive .gnavi_list {
	display: block;
	/*クラスが付与されたら出現*/
}

/*ナビゲーション*/
.gnavi ul {
	opacity: 0;
	/*ナビゲーション天地中央揃え※レイアウトによって調整。不必要なら削除*/
	position: absolute;
	z-index: 99;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

/*背景が出現後にナビゲーションを表示*/
.gnavi.panelactive ul {
	opacity: 1;
}

/* 背景が出現後にナビゲーション li を表示※レイアウトによって調整。不必要なら削除*/
.gnavi.panelactive ul li {
	animation-name: gnaviAnime;
	animation-duration: 1s;
	animation-delay: .2s;
	/*0.2 秒遅らせて出現*/
	animation-fill-mode: forwards;
	opacity: 0;
}

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


/*リストのレイアウト設定*/
.gnavi li {
	text-align: center;
	list-style: none;
}

.gnavi li a {
	color: #333;
	text-decoration: none;
	padding: 10px;
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: bold;
}


/*========= ボタンのためのCSS ===============*/
.gnavimail {
	position: relative;
	z-index: 9999;
	cursor: pointer;
	width: 100%;
	max-width: 165px;
	height: 50px;
	margin-left: auto;
}
.gnavimail a {
	display: block;
	width: 100%;
	height: 100%;
}
.gnavimail a img {max-height: 50px;}

@media all and (max-width:768px) {
	.gnavimail {max-width: 60px;}
}

.gnavibtn {
	position: relative;
	z-index: 9999;
	/*ボタンを最前面に*/
	cursor: pointer;
	width: 10%;
	max-width: 50px;
	height: 40px;
	margin-left: auto;
}

/*×に変化*/
.gnavibtn span {
	display: inline-block;
	transition: all .4s;
	position: absolute;
	left: 10px;
	height: 3px;
	border-radius: 2px;
	background-color: #666;
	width: 56%;
}

.gnavibtn span:nth-of-type(1) {top: 10px;}
.gnavibtn span:nth-of-type(2) {top: 20px;}
.gnavibtn span:nth-of-type(3) {top: 31px;}

.gnavibtn.active span:nth-of-type(1) {top: 18px; left: 18px; transform: translateY(6px) rotate(-45deg); width: 41%;}
.gnavibtn.active span:nth-of-type(2) {opacity: 0;}
.gnavibtn.active span:nth-of-type(3) {top: 30px; left: 18px; transform: translateY(-6px) rotate(45deg); width: 41%;}


/*===============
  ページTOPへ
==========================================*/
/*リンクの形状*/
#page-top a {
	display: flex;
	justify-content: center;
	align-items: center;
	background: #0066c9;
	border-radius: 5px;
	width: 60px;
	height: 60px;
	color: #fff;
	text-align: center;
	text-transform: uppercase;
	text-decoration: none;
	font-size: 0.6rem;
	transition: all 0.3s;
}

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

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

/*　上に上がる動き　*/
#page-top.UpMove {animation: UpAnime 0.5s forwards;}

@keyframes UpAnime {
	from {opacity: 0; transform: translateY(140px);}
	to {opacity: 1; transform: translateY(0);}
}

/*　下に下がる動き　*/
#page-top.DownMove {animation: DownAnime 0.5s forwards;}

@keyframes DownAnime {
	from {opacity: 1; transform: translateY(0);}
	to {opacity: 0; transform: translateY(140px);}
}


/*===============
  スクロールアニメーション設定
==========================================*/
.fadein-item {
  opacity: 0;
  transition: all 0.6s ease;
}

/* スライド方向 */
.fadein-item[data-direction="left"] {
  transform: translateX(-100px);
}
.fadein-item[data-direction="right"] {
  transform: translateX(100px);
}
.fadein-item[data-direction="bottom"],
.fadein-item:not([data-direction]) {
  transform: translateY(20px);
}

/* アニメーション済み */
.fadein-item.show {
  opacity: 1;
  transform: translate(0, 0);
}