@import url(./css-func.css);



/* *****************************************************************************
* 基礎部分
* *****************************************************************************/
html {
	position: relative;
	height: 100%;
}

body {
	position: relative;
	margin: 0;
	padding: 0;
	min-width: 1280px;
	height: 100%;
	font-size: 0;
	font-family: 'Helvetica Neue', Arial,
		'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
	font-variant-ligatures: none;
	line-height: 1.5;
	letter-spacing: 0;
	transition: all .4s ease;
}

[contenteditable]:focus {
	outline: none;
}

img {
	pointer-events: none;
}



/* *****************************************************************************
* 伸び棒
* *****************************************************************************/
div.grow-line {
	margin-top: 16px;
	width: 25%;
	height: 1px;
}

div.grow-line.bold {
	margin: 4px 0 12px 0;
	height: 2px;
	background-color: #e6e6e6;
}

div.grow-line.middle {
	width: 50%;
}



/* *****************************************************************************
* 見出し
* *****************************************************************************/
div.ttl-01 {
	margin: 0 0 50px 0;
}

div.ttl-01 .ttl-01-jp {
	margin: 0;
}

div.ttl-01 .ttl-01.en {
	margin: 0;
}



div.ttl-02 {
	position: relative;
	align-items: center;
}

div.ttl-02 div.ttl-02-side {
	flex-grow: 1;
	border-top: 3px solid #fff;
}

div.ttl-02 div.ttl-02-inner {
	flex-grow: 2;
}

div.ttl-02 .ttl-02-jp {
	margin: 0;
}

div.ttl-02 .ttl-02-en {
	margin: 0;
}



div.ttl-03 {
	margin: 0;
}

div.ttl-03 .ttl-jp {
	margin: 0;
}

div.ttl-03 .ttl-en {
	margin: 0;
}



div.ttl-04 {
	position: relative;
	margin: 0 0 50px 0;
	padding: 25px 0 0 0;
}

div.ttl-04::before {
	content: '';
	position: absolute;
	display: inherit;
	top: 0;
	border-top: 1px solid #000;
	width: 50px;
}

div.ttl-04 .ttl-jp {
	margin: 0 0 10px 0;
}

div.ttl-04 .ttl-en {
	margin: 0;
}



div.ttl-05 {
	position: relative;
	display: flex;
	flex-direction: row;
	align-items: center;
	margin: 0 0 50px 0;
}

div.ttl-05::before {
	content: '';
	position: absolute;
	display: inherit;
	top: 0;
	bottom: 0;
	left: -50px;
	margin: auto 0;
	width: 25px;
	height: 0;
	border-top: 3px solid #000;
}

div.ttl-05 .ttl-jp {
}

div.ttl-05 .ttl-en {
	margin: 0 0 0 25px;
}

/* *****************************************************************************
* 小見出し
* *****************************************************************************/
h1.mttl-01 {
	margin: 0 0 50px 0;
	padding: 10px 25px;
	border-left: 1px solid #000;
}

/* *****************************************************************************
* 画像
* *****************************************************************************/
div.img-protect {
	position: relative;
}

div.img-protect::after {
	content: '';
	position: absolute;
	display: inherit;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}



/* *****************************************************************************
* ダイアログ
* *****************************************************************************/
div.dialog {
	position: fixed;
	display: none;
	margin: auto;
	border-radius: 8px;
	box-shadow: 0 4px 8px rgba(0,0,0,.2);
	background-color: #fff;
	opacity: 0;
	transition: all .2s ease;
	z-index: 9001;
}

div.dialog.enable {
	display: block;
}

div.dialog.show {
	opacity: 1;
}

div.dialog.modal {
	z-index: 9002;
}

div.dialog.modal:before {
	content: '';
	position: fixed;
	display: inline-block;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,.4);
	z-index: -1;
}



/* *****************************************************************************
* ヘッダー
* *****************************************************************************/
header.p-index-header {
	position: fixed;
	box-sizing: border-box;
	padding: 8px;
	top: 0;
	width: 100%;
	height: 100px;
	background: linear-gradient(to bottom, #00000040, #00000000);
	transition: all .8s cubic-bezier(0.215, 0.61, 0.355, 1);
	z-index: 1011;
}

header.p-index-header.scrolled {
	height: 80px;
	background: #fff;
}

header.p-index-header div.inner {
	position: relative;
	display: inherit;
	flex-grow: 1;
	box-sizing: border-box;
	padding: 0 32px;
}

header.p-index-header div.inner div.section {
	position: relative;
	display: inherit;
	align-self: stretch;
	box-sizing: border-box;
}

header.p-index-header div.inner div.section.name {
	justify-content: flex-start;
	flex-grow: 1;
}

header.p-index-header div.inner div.section.menu {
	flex-grow: 1;
	text-align: right;
}

header.p-index-header div.inner div.section.name a {
	display: inherit;
	align-self: center;
	flex-grow: 1;
	height: 100%;
}

header.p-index-header div.inner div.section.name a i {
	background-image: url(../img/header-title.png);
	background-size: 100%;
	background-position: center;
	background-repeat: no-repeat;
	width: 100%;
	max-width: 400px;
	filter: invert(0);
	transition: all .8s cubic-bezier(0.215, 0.61, 0.355, 1);
}

header.p-index-header.scrolled div.inner div.section.name a i {
	filter: invert(1);
}

header.p-index-header div.inner div.section.name a span {
	align-self: center;
	padding: 0 0 0 25px;
}

header.p-index-header div.inner div.section.menu ul {
	display: inherit;
	flex-grow: 1;
	justify-content: space-around;
	align-self: center;
	box-sizing: border-box;
	margin: 0;
}

header.p-index-header div.inner div.section.menu li {
	display: inline-block;
	box-sizing: border-box;
	margin: 0 0 0 32px;
	min-width: 80px;
	text-shadow: 0 1px 2px rgba(0,0,0,.4);
}

header.p-index-header.scrolled div.inner div.section.menu li {
	text-shadow: 0 0 0 #000 !important;
}

header.p-index-header div.inner div.section.menu a {
	position: relative;
	color: inherit;
}

header.p-index-header div.inner div.section.menu a:before {
	content: '';
	position: absolute;
	width: 0;
	height: 2px;
	top: 32px;
	background-color: #b6b6b6;
	transition: all .2s ease;
}

header.p-index-header.scrolled div.inner div.section.menu a:before {
	top: 24px;
}

header.p-index-header div.inner div.section.menu a:hover:before {
	width: 100%;
}



/* *****************************************************************************
* パララックス
* *****************************************************************************/
div.p-index-parallax {
	min-width: 1280px;
	width: 100%;
	height: 60%;
	margin: 0 0 100px 0;
}

div.p-index-parallax div.inner {
	position: relative;
	display: inherit;
	flex-direction: column;
	align-self: stretch;
	box-sizing: border-box;
	padding: 100px 100px 0 100px;
	width: 100%;
	background-image: url(../img/parallax-02.jpg);
	background-size: cover;
}

div.p-index-parallax div.inner div.section {
	position: relative;
	display: inherit;
	box-sizing: border-box;
	vertical-align: top;
}

div.p-index-parallax div.inner div.section.body {
	flex-grow: 1;
	padding: 0;
	width: 100%;
	border: none;
	box-shadow: none;
	background: none;
}

div.p-index-parallax div.inner div.section.body span.text {
	flex-grow: 1;
	align-self: center;
}

div.p-index-parallax div.inner div.section.slider {
	justify-content: center;
	padding: 16px 0;
	height: 64px;
	text-align: center;
}

div.p-index-parallax div.inner div.section.slider i.slider-icon {
	padding: 0 16px;
	background-image: url(../img/svg/panorama_fish_eye.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 20px;
	width: 20px;
	height: 20px;
}

/* *****************************************************************************
* 新着情報
* *****************************************************************************/
section.p-index-news {
	margin: 0 0 100px 0;
}

section.p-index-news dl.inner {
	margin: 0 100px;
}

section.p-index-news dl dt {
	display: inherit;
}

section.p-index-news dl dt.head {
	flex-grow: 1;
	flex-direction: column;
	/*width: 40%;*/
}

section.p-index-news dl dt.body {
	flex-grow: 2;
	padding: 0 0 0 50px;
}

section.p-index-news dl dt.body ul.list {
	flex-grow: 1;
	padding: 0;
}

section.p-index-news dl dt.body ul.list li.item {
	margin: 0 0 8px 0;
}

section.p-index-news dl dt.body ul.list li.item a {
	padding: 8px 32px 32px 32px;
	border-bottom: 1px solid #999;
}

section.p-index-news dl dt.body ul.list li.item a time {
	margin: 0 32px 0 0;
	letter-spacing: 1px;
}

section.p-index-news dl dt.body ul.list li.item a span.category {
	margin: 0 32px 0 0;
	padding: 0 8px;
	border: 1px solid #333;
	letter-spacing: 1px;
}

section.p-index-news dl dt.body ul.list li.item a span.text {
}

/* *****************************************************************************
* 会社情報
* *****************************************************************************/
section.p-index-about {
	margin: 0 0 100px 0;
	max-width: 100%;
}

section.p-index-about dl.inner {
	margin: 0 100px;
}

section.p-index-about dl dt {
	flex-grow: 1;
	display: inherit;
	align-items: stretch;
}

section.p-index-about dl dt.pic {
	min-width: 40%;
	background-image: url(../img/company-front.jpg);
	background-position: center;
	background-size: cover;
}

section.p-index-about dl dt.body {
	flex-direction: column;
	box-sizing: border-box;
	padding: 100px;
}

section.p-index-about dl dt.body p.text {
	margin: 0 0 50px 0;
	word-wrap: break-word;
}

/* *****************************************************************************
* 業務紹介
* *****************************************************************************/
section.p-index-work {
	margin: 0 0 100px 0;
	max-width: 100%;
}

section.p-index-work div.p-index-work-item {
	position: relative;
	display: inherit;
	flex-grow: 1;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
	padding: 100px;
	width: 50%;
	background-color: #fff;
	overflow: hidden;
	z-index: 0;
}

section.p-index-work div.p-index-work-item::before {
	content: '';
	position: absolute;
	display: inherit;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-size: cover;
	transition: all 1s ease;
	transform: scale(1, 1);
	transform-origin: center;
	z-index: -2;
}

section.p-index-work .item-survey::before {
	background-image: url(../img/survey-wide.jpg);
}

section.p-index-work .item-design::before {
	background-image: url(../img/design.jpg);
}

section.p-index-work div.p-index-work-item::after {
	content: '';
	position: absolute;
	display: inherit;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(96, 125, 139, .533);
	z-index: -1;
}

section.p-index-work div.p-index-work-item:hover::before {
	transform: scale(1.2, 1.2);
}

section.p-index-work p.text {
	margin: 0 0 50px 0;
	word-wrap: break-word;
}

/* *****************************************************************************
* その他
* *****************************************************************************/
section.p-index-other {
	margin: 0 0 100px 0;
	padding: 0 100px;
	max-width: 100%;
	justify-content: space-around;
}

section.p-index-other a.p-index-other-item {
	position: relative;
	display: inherit;
	flex-grow: 1;
	margin: 0 0 0 50px;
	height: 50%;
	overflow: hidden;
	z-index: 0;
}

section.p-index-other a.p-index-other-item:nth-of-type(1) {
	margin: 0;
}

section.p-index-other a.p-index-other-item::before {
	content: '';
	position: absolute;
	display: inherit;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-size: cover;
	transition: all 1s cubic-bezier(0.76, 0, 0.24, 1);
	transform: scale(1, 1);
	transform-origin: center;
	z-index: -2;
}

section.p-index-other .item-company::before {
	background-image: url(../img/company-entrance.jpg);
}

section.p-index-other .item-recruit::before {
	background-image: url(../img/recruit.jpg);
}

section.p-index-other a.p-index-other-item:hover::before {
	transform: scale(1.1, 1.1);
}

section.p-index-other a.p-index-other-item::after {
	content: '';
	position: absolute;
	display: inherit;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: rgba(96, 125, 139, .533);
	z-index: -1;
}

/* *****************************************************************************
* お問い合わせ
* *****************************************************************************/
section.p-common-contact {
	display: flex;
	flex-grow: 1;
	flex-direction: column;
	margin: 0 0 100px 0;
}

section.p-common-contact.p-index {
	margin: 0;
	padding: 50px 100px 100px 100px;
}

section.p-common-contact div.contact-upper {
	display: inherit;
	flex-grow: 1;
	justify-content: center;
	padding: 0 0 50px 0;
}

section.p-common-contact div.contact-inner {
	display: inherit;
	flex-grow: 1;
	flex-direction: row;
	justify-content: center;
}

section.p-common-contact div.contact-inner div.section {
	display: inherit;
	flex-basis: 50%;
	justify-content: center;
	align-items: center;
}

section.p-common-contact div.contact-inner div.section.tel img {
	width: 32px;
}

section.p-common-contact div.contact-inner div.section.tel p {
	padding: 0 0 0 25px;
}

section.p-common-contact div.contact-inner div.section.mail {
	border-left: 1px solid #000;
}

/* *****************************************************************************
* フッター
* *****************************************************************************/
footer.p-common-footer {
	flex-grow: 1;
	flex-direction: column;
	padding: 100px;
}

footer.p-common-footer div.footer-inner {
	display: inherit;
	flex-grow: 1;
	flex-direction: row;
	justify-content: center;
	padding: 0 0 50px 0;
}

footer.p-common-footer div.footer-inner div.section {
	display: inherit;
}

footer.p-common-footer div.footer-inner div.section.info {
	align-items: flex-start;
}

footer.p-common-footer div.footer-inner div.section.info a {
	display: inherit;
}

footer.p-common-footer div.footer-inner div.section.info a i {
	background-image: url(../img/logo-white.png);
	background-size: 50px;
	width: 50px;
	height: 50px;
}

footer.p-common-footer div.footer-inner div.section.info a span {
	align-self: center;
	padding: 0 0 0 25px;
}

footer.p-common-footer div.footer-inner div.section.sitemap {
	flex-direction: row-reverse;
	margin: 0 0 0 50px;
}

footer.p-common-footer div.footer-inner div.section.sitemap ul {
	padding: 0 0 0 64px;
}

footer.p-common-footer div.footer-inner div.section.sitemap span.parent-name {
	display: inline-block;
	padding: 0 0 8px 0;
}

footer.p-common-footer div.footer-inner div.section.sitemap li {
	padding: 4px 0;
	list-style: none;
}

footer.p-common-footer div.bottoms {
	flex-grow: 1;
	justify-content: center;
}

footer.p-common-footer div.bottoms div.copyright {}

footer.p-common-footer div.bottoms div.copyright p {}

/* *****************************************************************************
* 基礎ページのアッパー
* *****************************************************************************/
div.p-compose-upper {
	position: relative;
	flex-grow: 1;
	align-items: center;
	box-sizing: border-box;
	margin: 0 0 100px 0;
	padding: 100px;
	height: 50%;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	z-index: 0;
}

div.p-compose-upper::before {
	content: '';
	position: absolute;
	display: inherit;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: rgba(96, 125, 139, .533);
	z-index: -1;
}

div.p-compose-upper div.title {
	position: relative;
	display: inherit;
	left: -100px;
	padding: 10px 100px;
}

div.p-compose-upper.upper-company {
	background-image: url(../img/company-entrance.jpg);
}

div.p-compose-upper.upper-business {
	background-image: url(../img/survey-wide.jpg);
}

div.p-compose-upper.upper-recruit {
	background-image: url(../img/recruit.jpg);
}

div.p-compose-upper.upper-blog {
	background-image: url(../img/blog.jpg);
}

div.p-compose-upper.upper-contact {
	background-image: url(../img/contact.jpg);
}

/* *****************************************************************************
* ボディ
* *****************************************************************************/
div.p-compose-body {
	flex-grow: 1;
	justify-content: center;
}

div.p-compose-body div.body-inner {
	display: inherit;
	flex-grow: 1;
	flex-direction: column;
	padding: 0 200px;
}

div.p-compose-body section.instant-section {
	position: relative;
	display: inherit;
	align-items: flex-start;
	margin: 0 0 100px 0;
}

div.p-compose-body section.instant-section dl.section-inner {
	display: inherit;
}

div.p-compose-body section.instant-section dl.section-inner dt {
	display: inherit;
	padding: 0 0 0 50px;
}

div.p-compose-body section.instant-section dl.section-inner dt:nth-of-type(1) {
	padding: 0;
}

/* *****************************************************************************
* ナビゲーション
* *****************************************************************************/
nav.p-compose-nav {
	flex-grow: 1;
	margin: 0 0 100px 0;
}

nav.p-compose-nav ul.list {
	display: inherit;
	flex-grow: 1;
	justify-content: space-around;
	padding: 0;
}

nav.p-compose-nav ul.list li.item {
	display: inherit;
	flex-grow: 1;
	border-right: 1px solid #000;
	transition: all .2s cubic-bezier(0.85, 0, 0.15, 1);
}

nav.p-compose-nav ul.list li.item:nth-of-type(1) {
	border-left: 1px solid #000;
}

nav.p-compose-nav ul.list li.item:hover {
	color: #fff;
}

nav.p-compose-nav ul.list li.item a {
	position: relative;
	display: inherit;
	flex-grow: 1;
	align-items: center;
	justify-content: center;
	padding: 10px 0;
}

nav.p-compose-nav ul.list li.item i.item-icon {
	position: absolute;
	bottom: -10px;
	left: 0;
	width: 100%;
	height: 24px;
	background-image: url(../img/svg/expand_more.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 24px;
	transition: all .2s ease;
}

nav.p-compose-nav ul.list li.item:hover i.item-icon {
	bottom: -20px;
}

/* *****************************************************************************
* ブログリスト
* *****************************************************************************/
div.p-blog-blogtop {
	display: flex;
	flex-grow: 1;
	margin: 100px;
}

div.p-blog-blogtop div.blogtop-inner {
	display: inherit;
	flex-basis: 100%;
	flex-direction: column;
	padding: 50px;
}

/* *****************************************************************************
* ブログアイテム
* *****************************************************************************/
div.p-blog-blogitem {
	display: flex;
	flex-grow: 1;
}

div.p-blog-blogitem ul.list {
	display: inherit;
	flex-grow: 1;
	flex-direction: column;
	padding: 0;
}

div.p-blog-blogitem li.item {
	display: inherit;
	flex-grow: 1;
	margin: 0 0 50px 0;
	padding: 0 0 50px 0;
	border-bottom: 1px solid #999;
}

div.p-blog-blogitem li.item div.section {
	display: inherit;
	flex-grow: 1;
}

div.p-blog-blogitem li.item div.section.banner {
	flex-basis: 30%;
}

div.p-blog-blogitem li.item div.section.banner a {
	background-repeat: no-repeat;
	background-position: center;
	background-size: 100%;
	transition: background-size .8s cubic-bezier(0.215, 0.61, 0.355, 1);
}

div.p-blog-blogitem li.item div.section.banner a:hover {
	background-size: 120%;
}

div.p-blog-blogitem li.item div.section.right {
	flex-basis: 70%;
	flex-direction: column;
	margin: 16px 0;
	padding: 0 0 0 50px;
}

div.p-blog-blogitem li.item div.section.right a {
	align-items: flex-start;
}

div.p-blog-blogitem li.item div.section.right a time {
	margin: 0 50px 0 0;
	letter-spacing: 1px;
}

div.p-blog-blogitem li.item div.section.right a span.category {
	margin: 0 50px 0 0;
	padding: 0 8px;
	border: 1px solid #333;
	letter-spacing: 1px;
	white-space: nowrap;
}

div.p-blog-blogitem li.item div.section.right a span.text {
	overflow-wrap: break-word;
}

/* *****************************************************************************
* 月別記事用フォルダ
* *****************************************************************************/
div.news-directory {
padding: 16px 0 0 0;
}

div.news-directory div.folder {
position: relative;
display: flex;
align-items: center;
padding: 0 0 0 32px;
height: 32px;
}

div.news-directory div.folder:before {
content: '';
position: absolute;
display: block;
top: 0;
left: 0;
width: 32px;
height: 32px;
background-image: url(../img/arrow.png);
background-position: center;
background-size: 20px;
background-repeat: no-repeat;
transform: rotate(90deg);
transition: all .2s ease;
}

div.news-directory.close div.folder:before {
transform: rotate(0);
}

div.news-directory ul {
padding: 0 24px;
list-style: none;
}

div.news-directory.close ul {
display: none;
}

/* *****************************************************************************
* ボディ2列
* *****************************************************************************/
div.body.column div.container {
flex-direction: row;
}

div.body.column div.container div.section {
width: 50%;
}

div.body.column div.container div.section.text {
flex-grow: 1;
}

div.body.column div.container div.section.news-tree {
width: 30%;
max-width: 30%;
border-left: 1px solid #e6e6e6;
}

div.body.column div.container div.img-container {
width: 100%;
height: 100%;
}

div.body.column div.container img {
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
}

/* *****************************************************************************
* アクセス
* *****************************************************************************/
div.access {
display: flex;
}

div.access div.route {
width: 30%;
}

div.access div.route ul.where-abouts {
padding: 32px;
}

div.access div.route ul.where-abouts li {
padding: 16px 0 0 0;
list-style: none;
}

div.access div.route ul.where-abouts li:nth-of-type(1) {
padding-top: 0;
}

div.access div.route ul.guide {
padding: 0;
}

div.access div.route ul.guide li {
position: relative;
padding: 16px 0 16px 48px;
border-top: 1px solid #e6e6e6;
list-style: none;
}

div.access div.route ul.guide li:nth-of-type(1) {
border: none;
}

div.access div.route ul.guide i {
position: absolute;
left: 8px;
width: 32px;
height: 32px;
font-size: 32px;
}

div.access div.embed {
flex-grow: 1;
}

/* *****************************************************************************
* お問合せフォーム
* *****************************************************************************/
div.contact-form {}

div.contact-form div.container {
display: flex;
flex-direction: column;
box-sizing: border-box;
margin: 0 auto;
padding: 32px;
width: 100%;
max-width: 1280px;
}

div.contact-form div.container div.section {
display: flex;
flex-direction: column;
box-sizing: border-box;
padding: 8px;
}

div.contact-form div.container div.section span {
padding: 0 0 8px 0;
}

/* *****************************************************************************
* 送信ボックス
* *****************************************************************************/
div.contact-submit-box {
box-sizing: border-box;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
margin: 40px 40px 0 40px;
}

/* *****************************************************************************
* お問合せ情報
* *****************************************************************************/
div.contact-detail {
display: flex;
margin: 40px 0 40px 80px;
min-height: 88px;
}

div.contact-detail div.division {
position: relative;
display: flex;
margin: 0 0 0 48px;
}

div.contact-detail div.division:nth-of-type(1) {
margin: 0;
}

div.contact-detail div.division i {
position: absolute;
left: 0;
top: 0;
width: 48px;
height: 48px;
font-size: 48px;
}

div.contact-detail div.division div.text {
display: flex;
flex-direction: column;
padding: 0 0 0 64px;
}

/* *****************************************************************************
* 表
* *****************************************************************************/
table.instant-table {
	width: 100%;
	border-collapse: collapse;
}

table.instant-table th,
table.instant-table tr,
table.instant-table td {
	box-sizing: border-box;
	padding: 25px;
	text-align: left;
}

table.instant-table tr {
	border-top: 1px solid #e6e6e6;
	border-bottom: 1px solid #e6e6e6;
}

/* *****************************************************************************
* ボタン
* *****************************************************************************/
div.btn-01 {}

div.btn-01 a.btn-01-inner {
	position: relative;
	box-sizing: border-box;
	display: inline-block;
	padding: 16px 32px;
	border-width: 3px;
	border-style: solid;
	transition: all .2s cubic-bezier(0.85, 0, 0.15, 1);
	overflow: hidden;
	z-index: 0;
}

div.btn-01 .btn-black {
	border-color: #000;
	color: #000;
}

div.btn-01 .btn-white {
	border-color: #fff;
	color: #fff;
}

div.btn-01 .btn-black:hover {
	color: #fff;
}

div.btn-01 .btn-white:hover {
	color: #000;
}

div.btn-01 a.btn-01-inner::before {
	content: '';
	position: absolute;
	display: inline-block;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transform: translateX(-100%);
	transition: inherit;
	z-index: -1;
}

div.btn-01 .btn-black::before {
	background-color: #000;
}

div.btn-01 .btn-white::before {
	background-color: #fff;
}

div.btn-01 a.btn-01-inner:hover:before {
	transform: translateX(0);
}

/* *****************************************************************************
* フォーム用テーブル
* *****************************************************************************/
table.input-form {
width: 100%;
border-collapse: collapse;
font-size: 0;
}

table.input-form th,
table.input-form tr,
table.input-form td {
box-sizing: border-box;
padding: 10px 20px;
font-size: 11px;
font-weight: normal;
color: #666;
text-align: left;
transform: rotate(0.001deg);
}

table.input-form tr {
border-top: 1px solid #e6e6e6;
border-bottom: 1px solid #e6e6e6;
}

table.input-form tr:nth-child(odd) { 
background-color: #fafafa;
}

/******************************************************************************/
/* テキストボックス */
/******************************************************************************/
input.width-max { width: 100%; }

input.form-input {
box-sizing: border-box;
padding: 0 8px;
height: 32px;
border: 1px solid #e6e6e6;
border-radius: 2px;
font-size: 12px;
font-family: sans-serif;
font-variant-ligatures: none;
color: #666;
}

input.form-input:focus {
outline: 0;
}

input.form-input::-webkit-input-placeholder { 
color: #d6d6d6;
}

input.form-input.unable-input {
border: 1px solid #e6e6e6;
background-color: #f6f6f6;
color: #91969d;
}

input.form-input.connect-right {
width: calc(100% - 28px);
border-right-width: 0;
border-radius: 2px 0 0 2px;
}

/******************************************************************************/
/* テキストエリア */
/******************************************************************************/
textarea {
padding: 0 8px;
height: 32px;
border: 1px solid #e6e6e6;
border-radius: 2px;
font-size: 12px;
font-family: sans-serif;
font-variant-ligatures: none;
color: #666; 
resize: none;
}

textarea:focus {
outline: 0;
}

/******************************************************************************/
/* セレクトボックス */
/******************************************************************************/
select.form-input {
padding: 0 8px;
height: 28px;
border: 1px solid #e6e6e6;
border-radius: 2px;
font-size: 12px;
font-family: sans-serif;
font-variant-ligatures: none;
color: #666;
}

select.form-input:focus {
outline: 0;
border: 1px solid #e6e6e6;
}

select.form-input.unable-input {
border: 1px solid #e6e6e6;
background-color: #f6f6f6;
color: #91969d;
}