@charset "utf-8";



/* --------------------------------------------------------------------------------
reset
-------------------------------------------------------------------------------- */

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;
}
article, aside, details, figcaption, figure,
footer, header, main, 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;
}



/* --------------------------------------------------------------------------------
essential
-------------------------------------------------------------------------------- */

html {
	font-size: 16px;
}
body {
	text-align: justify;
  font-family: "Noto Sans JP", "Yu Gothic", YuGothic, sans-serif;
	font-size: 1rem;
	font-weight: 400;
	font-feature-settings: "palt";
	line-height: 1.625rem;
	color: #000000;
	letter-spacing: 0.05em;
	background-color: #d0d0d0;
	-webkit-text-size-adjust: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
a {
	text-decoration: none;
	color: inherit;
}
h1 {
	font-size: 1.5rem;
}
h2 {
	font-size: 1.375rem;
}
h3 {
	font-size: 1.25rem;
}
h4 {
	font-size: 1rem;
}
p.indent {
	text-indent: -1em;
	padding-left: 1em;
}
p.note {
	font-size: 0.9375rem;
	line-height: 1.5rem;
}



/* --------------------------------------------------------------------------------
icon
-------------------------------------------------------------------------------- */

@font-face {
  font-family: "icon";
  src: url("../fonts/icon.ttf") format("truetype"), url("../fonts/icon.woff") format("woff"), url("../fonts/icon.svg") format("svg");
  font-weight: normal;
  font-style: normal;
}
i.icon {
  font-family: "icon";
  line-height: 1em;
}
i.icon-tel:before {
  content: "\e900";
}
i.icon-location:before {
  content: "\e901";
}
i.icon-new-window:before {
  content: "\e902";
}
i.icon-services-01-01:before {
  content: "\e903";
}
i.icon-services-01-02:before {
  content: "\e904";
}
i.icon-services-01-03:before {
  content: "\e905";
}
i.icon-services-01-04:before {
  content: "\e906";
}
i.icon-services-02-01:before {
  content: "\e907";
}
i.icon-services-02-02:before {
  content: "\e908";
}
i.icon-services-03-01:before {
  content: "\e909";
}
i.icon-services-03-02:before {
  content: "\e90a";
}
i.icon-services-04-01:before {
  content: "\e90b";
}
i.icon-services-05-01:before {
  content: "\e90c";
}
i.icon-calendar:before {
  content: "\e90d";
}
i.icon-speaker:before {
  content: "\e90e";
}



/* --------------------------------------------------------------------------------
misc
-------------------------------------------------------------------------------- */

img {
	display: block;
	max-width: 100%;
	height: auto;
}
br.small {
	display: none;
}
br.large {
	display: inline;
}
span.no-laarge {
	display: none;
}
span.no-small {
	display: inline;
}



/* --------------------------------------------------------------------------------
page
-------------------------------------------------------------------------------- */

div#page {
	position: relative;
	overflow: hidden;
}
div#page div#blind {
	position: fixed;
	width: 100%;
	height: 100%;
	right: 0px;
	top: 0px;
	z-index: 9999;
	background-color: #000000;
	transition: 0.5s width 0.125s ease-in-out;
}
div#page.active div#blind {
	width: 0%;
}
div#page *.text-effect span {
  display: flex;
  flex-wrap: wrap;
}
div#page *.text-effect-center span {
	justify-content: center;
}
div#page *.text-effect-center span i {
	padding-left: 0.1em;
	padding-right: 0.1em;
}
div#page *.text-effect span i {
  position: relative;
  overflow: hidden;
}
div#page *.text-effect-01 span i {
	color: #ffffff;
}
div#page *.text-effect-02 span i {
	color: #000000;
}
div#page *.text-effect-03 span i {
	color: #f4f4f4;
}
div#page nav.navi-working-campaign {
	max-width: 340px;
}
div#page nav.navi-working-campaign p.button:not(:last-child) {
	margin-bottom: 20px;
}
div#page nav.navi-working-campaign p.button a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	position: relative;
	height: 80px;
	border: 2px solid #ffffff;
	transition: 0.25s color ease;
}
div#page nav.navi-working-campaign p.button a:hover {
	color: #000000;
}
div#page nav.navi-working-campaign p.button a::before {
	position: absolute;
	width: 0%;
	height: 100%;
	left: 0px;
	top: 0px;
	background-color: #ffffff;
	content: "";
	transition: 0.25s width ease;
}
div#page nav.navi-working-campaign p.button a:hover::before {
	width: 100%;
}
div#page nav.navi-working-campaign p.button a::after {
	position: absolute;
	width: 5px;
	height: 10px;
	right: 10px;
	top: calc(50% - 5px);
	background: url(../images/arrow-more-white.svg) no-repeat center;
	background-size: auto 100%;
	content: "";
}
div#page nav.navi-working-campaign p.button a:hover::after {
	background-image: url(../images/arrow-more.svg);
}
div#page nav.navi-working-campaign p.button span {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	position: relative;
	width: 100%;
	padding: 0px 20px;
}
div#page nav.navi-working-campaign p.button i,
div#page nav.navi-working-campaign p.button i.text em {
	display: block;
}
div#page nav.navi-working-campaign p.button i.icon {
	width: 30px;
	font-size: 1.875rem;
}
div#page nav.navi-working-campaign p.button i.text {
	width: calc(100% - 45px);
	font-weight: 500;
	padding-top: 5px;
}
div#page nav.navi-working-campaign p.button i.text em.main {
	font-size: 1.25rem;
}
div#page nav.navi-working-campaign p.button i.text em.sub {
	font-size: 0.75rem;
}



/* --------------------------------------------------------------------------------
header
-------------------------------------------------------------------------------- */

header.header {
	width: 100%;
	height: 60px;
	left: 0px;
	z-index: 20;
	color: #ffffff;
}
header#header {
	position: absolute;
	top: 15px;
}
header#header-alternate {
	position: fixed;
	top: 0px;
	background-color: #000000;
	transition: 0.25s transform ease;
	transform: translateY(-105px);
}
body.admin-bar header#header-alternate {
	top: 32px;
}
div.scroll-01 header#header-alternate {
	transform: translateY(0px);
}
header.header h1 {
	position: absolute;
	left: 50px;
	top: calc(calc(60px - calc(47px * 0.75)) * 0.5);
}
header.header h1 a {
  display: block;
  width: calc(312px * 0.75);
  height: calc(47px * 0.75);
}
header.header h1 img {
	width: auto;
	height: 100%;
}
header.header nav.navi-working-campaign {
	display: none;
}
header.header nav.navi {
	padding: 13px 260px 0px 0px;
}
header.header nav.navi > ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
}
header.header nav.navi > ul > li {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 2.125rem;
}
header.header nav.navi > ul > li:not(:last-child) {
	margin-right: 30px;
}
header.header nav.navi > ul > li > a {
	display: block;
	position: relative;
}
header.header nav.navi > ul > li > a::before,
header.header nav.navi > ul > li > a::after {
	position: absolute;
	left: 0px;
	bottom: 0px;
	border-bottom: 2px solid #ffffff;
	content: "";
}
header.header nav.navi > ul > li > a::before {
	width: 100%;
	opacity: 0.3;
}
header.header nav.navi > ul > li > a::after {
	width: 0%;
	transition: 0.25s width ease;
}
header.header nav.navi > ul > li > a:hover::after,
body.services header.header nav.navi > ul > li.services > a::after,
body.about header.header nav.navi > ul > li.about > a::after,
body.recruit header.header nav.navi > ul > li.recruit > a::after {
	width: 100%;
}
header.header nav.navi > ul > li span.sub {
	display: none;
}
header.header p.tel {
	position: absolute;
	right: 50px;
	top: 13px;
	text-align: center;
	font-family: "Century Gothic W01 Bold", sans-serif;
	font-size: 1.125rem;
	line-height: 1.875rem;
}
header.header p.tel a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	position: relative;
	width: 180px;
	height: 34px;
	border: 2px solid #ffffff;
	transition: 0.25s color ease;
}
header.header p.tel a:hover {
	color: #000000;
}
header.header p.tel a::before {
	position: absolute;
	width: 0%;
	height: 100%;
	left: 0px;
	top: 0px;
	background-color: #ffffff;
	content: "";
	transition: 0.25s width ease;
}
header.header p.tel a:hover::before {
	width: 100%;
}
header.header p.tel span {
	position: relative;
}
header.header p.tel span::before {
	display: inline-block;
  font-family: "icon";
  line-height: 1em;
  content: "\e900";
	transform: translateY(2px);
}
header.header nav.navi div.nest {
	display: none;
	position: absolute;
	width: 100%;
	left: 0px;
	top: 60px;
}
body.services header#header-alternate nav.navi div.nest {
	display: block;
}
header.header nav.navi div.nest ul {
	display: flex;
	flex-wrap: wrap;
}
header.header nav.navi div.nest ul li {
	width: 20%;
	font-size: 0.75rem;
	font-weight: 500;
}
header.header nav.navi div.nest ul li a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	height: 45px;
	color: #ffffff;
	background-color: #000000;
	transition: 0.25s color ease, 0.25s background-color ease;
}
header.header nav.navi div.nest ul li a:hover,
body.services-01 header.header nav.navi div.nest ul li.services-01 a,
body.services-02 header.header nav.navi div.nest ul li.services-02 a,
body.services-03 header.header nav.navi div.nest ul li.services-03 a,
body.services-04 header.header nav.navi div.nest ul li.services-04 a,
body.services-05 header.header nav.navi div.nest ul li.services-05 a {
	color: #000000;
	background-color: #ffffff;
}
body.services-02 header.header nav.navi div.nest ul li.services-01 a,
body.services-03 header.header nav.navi div.nest ul li.services-02 a,
body.services-04 header.header nav.navi div.nest ul li.services-03 a,
body.services-05 header.header nav.navi div.nest ul li.services-04 a {
	color: #ffffff;
	background-color: #000000;
}
header.header nav.navi div.nest ul li a::before {
	display: inline-block;
  font-family: "icon";
	font-size: 1.5rem;
  line-height: 1em;
	margin-right: 10px;
	transform: translateY(1px);
}
header.header nav.navi div.nest ul li:nth-child(1) a::before {
  content: "\e903";
}
header.header nav.navi div.nest ul li:nth-child(2) a::before {
  content: "\e907";
}
header.header nav.navi div.nest ul li:nth-child(3) a::before {
  content: "\e909";
}
header.header nav.navi div.nest ul li:nth-child(4) a::before {
  content: "\e90b";
}
header.header nav.navi div.nest ul li:nth-child(5) a::before {
  content: "\e90c";
}



/* --------------------------------------------------------------------------------
cover, title
-------------------------------------------------------------------------------- */

div#cover {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: fixed;
	width: 100%;
	height: 100vh;
	left: 0px;
	top: 0px;
	overflow: hidden;
	color: #ffffff;
	background-color: #000000;
}
div.scroll-02 div#cover {
	visibility: hidden;
}
div#cover p.image {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
	background: url(../images/cover-image.jpg) no-repeat center;
	background-size: cover;
	transition: 1.75s transform ease;
	transform: scale(1.075);
}
div.active div#cover p.image {
	transform: scale(1);
}
div#cover h1 {
	position: relative;
	text-indent: 0.075em;
	font-family: TsukuOldGothicStd-B, "Yu Gothic", YuGothic, sans-serif;
	font-size: 3.75rem;
	line-height: 4rem;
	letter-spacing: 0.075em;
	opacity: 0;
	transition: 1.25s opacity 0.5s ease;
	transform: translateY(-10px);
}
div#cover h1.active {
	opacity: 1;
}
div#cover p.button-scroll {
	position: absolute;
	width: 100px;
	left: calc(50% - 50px);
	bottom: 20px;
	text-align: center;
	line-height: 1.25rem;
	font-family: "Avenir Next W01 Bold Italic", sans-serif;
}
div#cover p.button-scroll a {
	display: block;
	opacity: 0.5;
	transition: 0.25s opacity ease;
}
div#cover p.button-scroll a:hover {
	opacity: 1;
}
div#cover p.button-scroll a::after {
	display: block;
	width: 14px;
	height: 7px;
	margin: 5px auto 0px auto;
	background: url(../images/arrow-scroll.svg) no-repeat center;
	background-size: auto 100%;
	content: "";
}
div#cover nav.navi-working-campaign {
	position: absolute;
	width: 340px;
	z-index: 10;
	right: 40px;
	bottom: 40px;
}
div#space-cover {
	height: 100vh;
}
div#title p.image {
	height: 450px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}
body.services div#title p.image {
	background-image: url(../images/title-image-services.jpg);
}
body.about div#title p.image {
	background-image: url(../images/title-image-about.jpg);
}
body.recruit div#title p.image {
	background-image: url(../images/title-image-recruit.jpg);
}
div#title div.text {
	position: relative;
	text-align: center;
	margin-bottom: 75px;
	transform: translateY(-65px);
}
div#title div.text h1 {
	font-family: "Avenir Next W01 Bold Italic", sans-serif;
	font-size: 6.875rem;
	line-height: 7.25rem;
	color: #ffffff;
	margin-bottom: 30px;
}
div#title div.text p.sub {
	font-size: 1.625rem;
	font-weight: 700;
	margin-bottom: 60px;
}
div#title div.text p.description {
	text-indent: 0.075em;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 2rem;
	letter-spacing: 0.075em;
}



/* --------------------------------------------------------------------------------
content
-------------------------------------------------------------------------------- */

div#content {
	position: relative;
	background-color: #d0d0d0;
}
div#content p.image img {
	width: 100%;
	height: auto;
}
div#content section div.inner-section {
	position: relative;
	width: 1000px;
	margin: auto;
	padding: 160px 0px;
}
div#content section header {
	margin-bottom: 50px;
}
div#content section header h2 {
	font-family: "Avenir Next W01 Bold Italic", sans-serif;
	font-size: 4.625rem;
	line-height: 5rem;
	margin-bottom: 20px;
}
div#content section header p.sub {
	font-size: 1.375rem;
	font-weight: 700;
}
div#content section div.block {
	background-color: #ffffff;
}
div#content section div.block:not(:last-child) {
	margin-bottom: 100px;
}
div#content section div.block div.inner-block {
	padding: 100px;
}
div#content section div.block div.header {
	text-align: center;
	margin-bottom: 80px;
}
div#content section div.block div.header h2 {
	font-family: "Avenir Next W01 Bold Italic", sans-serif;
	font-size: 6.25rem;
	line-height: 5.625rem;
	letter-spacing: 0em;
	margin: 0px -100px;
}
div#content section div.block div.header p.sub {
	text-indent: 0.075em;
	font-size: 1.875rem;
	font-weight: 700;
	line-height: 2.25rem;
	letter-spacing: 0.075em;
	transform: translateY(-20px);
}
div#content section div.block div.list div.row {
	display: flex;
	flex-wrap: wrap;
	letter-spacing: 0.075em;
}
div#content section div.block div.list div.row a {
	transition: 0.25s opacity ease;
}
div#content section div.block div.list div.row a:hover {
	opacity: 0.5;
}
div#content section div.block div.list div.row p.label {
	width: 180px;
	text-align: center;
	text-indent: 0.075em;
	font-weight: 500;
	border-top: 1px solid #000000;
	padding: 30px 0px;
}
div#content section div.block div.list div.row:last-child p.label {
	border-bottom: 1px solid #000000;
}
div#content section div.block div.list div.row-no-border:last-child p.label {
	border-bottom: none;
	padding-bottom: 0px;
}
div#content section div.block div.list div.row div.body {
	box-sizing: border-box;
	width: calc(100% - 180px);
	border-top: 1px solid #d0d0d0;
	padding: 30px 0px 30px 40px;
}
div#content section div.block div.list div.row:last-child div.body {
	border-bottom: 1px solid #d0d0d0;
}
div#content section div.block div.list div.row-no-border:last-child div.body {
	border-bottom: none;
	padding-bottom: 0px;
}
div#content section div.block div.list div.row div.body p.map {
	font-size: 0.75rem;
	margin: 20px 0px 10px 0px;
}
div#content section div.block div.list div.row div.body p.map a::after {
	display: inline-block;
  font-family: "icon";
	font-size: 1.125rem;
  line-height: 1em;
	margin-left: 5px;
  content: "\e901";
	transform: translateY(4px);
}
div#content section div.block div.list div.row div.body div.map {
	position: relative;
	height: 280px;
}
div#content section div.block div.list div.row div.body div.map iframe {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
}
div#content section#contact {
	text-align: center;
	text-indent: 0.075em;
	letter-spacing: 0.075em;
}
div#content section#contact div.inner-section {
	width: 640px;
	padding-top: 0px;
}
div#content section#contact header {
	border-bottom: 2px solid #000000;
	margin-bottom: 30px;
	padding-bottom: 30px;
}
div#content section#contact header h2 {
	font-family: "Avenir Next LT W01 Bold", sans-serif;
	font-size: 3.5rem;
	line-height: 4rem;
	margin-bottom: 10px;
}
div#content section#contact header p.sub {
	font-size: 1.25rem;
}
div#content section#contact p.description {
	margin-bottom: 50px;
}
div#content section#contact p.tel {
	font-family: "Century Gothic W01 Bold", sans-serif;
	font-size: 2.5rem;
	line-height: 2.75rem;
	margin-bottom: 10px;
}
div#content section#contact p.tel a::before {
	display: inline-block;
  font-family: "icon";
	font-size: 2.25rem;
  line-height: 1em;
  content: "\e900";
	transform: translateY(3px);
}
div#content section#contact p.time {
	font-size: 0.9375rem;
}
div#content nav#navi-footer {
	color: #ffffff;
	padding: 120px 0px;
	background: url(../images/navi-footer-image.jpg) no-repeat center;
	background-size: cover;
}
div#content nav#navi-footer ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
div#content nav#navi-footer ul li {
	display: flex;
	flex-wrap: wrap;
	font-size: 1.125rem;
	font-weight: 700;
	margin: 0px 15px;
}
body.services div#content nav#navi-footer ul li.services,
body.about div#content nav#navi-footer ul li.about,
body.recruit div#content nav#navi-footer ul li.recruit {
	display: none;
}
div#content nav#navi-footer ul li a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	position: relative;
	width: 320px;
	height: 120px;
	border: 2px solid #ffffff;
	background-color: rgba(255, 255, 255, 0.3);
	transition: 0.25s color ease;
}
div#content nav#navi-footer ul li a:hover {
	color: #000000;
}
div#content nav#navi-footer ul li a::before {
	position: absolute;
	width: 0%;
	height: 100%;
	left: 0px;
	top: 0px;
	background-color: #ffffff;
	content: "";
	transition: 0.25s width ease;
}
div#content nav#navi-footer ul li a:hover::before {
	width: 100%;
}
div#content nav#navi-footer ul li a::after {
	position: absolute;
	width: 7px;
	height: 14px;
	right: 20px;
	top: calc(50% - 7px);
	background: url(../images/arrow-more-white.svg) no-repeat center;
	background-size: auto 100%;
	content: "";
}
div#content nav#navi-footer ul li a:hover::after {
	background-image: url(../images/arrow-more.svg);
}
div#content nav#navi-footer ul li span {
	position: relative;
}

/* home
-------------------------------------------------------------------------------- */

body.home div#content {
	background-color: #f4f4f4;
}
div#content section#campaign p.banner img {
	width: 100%;
	height: auto;
}
div#content section#campaign p.banner img.small {
	display: none;
}
div#content section#home-services {
	color: #ffffff;
	background: url(../images/home-image-services.jpg) no-repeat center;
	background-size: cover;
}
div#content section#home-services p.description {
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 1.75rem;
	letter-spacing: 0.1em;
	margin-bottom: 40px;
}
div#content section#home-services p.description-small {
	display: none;
}
div#content section#home-services p.button {
	display: flex;
	flex-wrap: wrap;
	font-size: 0.875rem;
	font-weight: 700;
}
div#content section#home-services p.button a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	position: relative;
	width: 160px;
	height: 56px;
	border: 2px solid #ffffff;
	transition: 0.25s color ease;
}
div#content section#home-services p.button a:hover {
	color: #000000;
}
div#content section#home-services p.button a::before {
	position: absolute;
	width: 0%;
	height: 100%;
	left: 0px;
	top: 0px;
	background-color: #ffffff;
	content: "";
	transition: 0.25s width ease;
}
div#content section#home-services p.button a:hover::before {
	width: 100%;
}
div#content section#home-services p.button a::after {
	position: absolute;
	width: 5px;
	height: 10px;
	right: 10px;
	top: calc(50% - 5px);
	background: url(../images/arrow-more-white.svg) no-repeat center;
	background-size: auto 100%;
	content: "";
}
div#content section#home-services p.button a:hover::after {
	background-image: url(../images/arrow-more.svg);
}
div#content section#home-services p.button span {
	position: relative;
}
body.home div#content section#contact div.inner-section {
	padding-top: 160px;
}

/* services
-------------------------------------------------------------------------------- */

div#content nav#navi-services {
	position: relative;
	width: 1000px;
	margin: auto;
	border-bottom: 5px solid #ffffff;
}
div#content nav#navi-services::before {
	position: absolute;
	width: 20%;
	height: 5px;
	left: 0%;
	bottom: -10px;
	border-top: 5px solid #000000;
	background: url(../images/arrow-navi.svg) no-repeat center;
	background-size: auto 100%;
	content: "";
	opacity: 0;
	transition: 0.25s left ease, 0.25s opacity ease;
}
div#content nav#navi-services:hover::before {
	opacity: 1;
}
div#content nav#navi-services.services-01::before {
	left: 0%;
}
div#content nav#navi-services.services-02::before {
	left: 20%;
}
div#content nav#navi-services.services-03::before {
	left: 40%;
}
div#content nav#navi-services.services-04::before {
	left: 60%;
}
div#content nav#navi-services.services-05::before {
	left: 80%;
}
div#content nav#navi-services ul {
	display: flex;
	flex-wrap: wrap;
}
div#content nav#navi-services ul li {
	width: 20%;
	text-align: center;
	font-weight: 700;
	line-height: 1.375rem;
}
div#content nav#navi-services ul li a {
	display: block;
	position: relative;
	padding-bottom: 20px;
}
div#content nav#navi-services ul li i.icon {
	display: block;
	width: 56px;
	height: 56px;
	overflow: hidden;
	font-size: 56px;
	font-weight: 400;
	color: #ffffff;
	background-color: #000000;
	margin: 0px auto 15px auto;
	border-radius: 10px;
}
div#content nav#navi-services ul li span.outer {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	height: 2.75rem;
}
div#content section#services div.block div.segment:not(:last-child) {
	border-bottom: 1px solid #000000;
	margin-bottom: 80px;
	padding-bottom: 80px;
}
div#content section#services div.block div.slide {
	margin-bottom: 40px;
}
div#content section#services div.block div.slide div.image {
	position: relative;
	margin-bottom: 10px;
	padding-bottom: 60%;
}
div#content section#services div.block div.slide div.image p.row {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
}
div#content section#services div.block div.slide.active div.image p.row {
	opacity: 0;
}
div#content section#services div.block div.slide div.navi {
	display: flex;
	flex-wrap: wrap;
	margin-right: -10px;
}
div#content section#services div.block div.slide div.navi p.row {
	position: relative;
	width: calc(14.28% - 10px);
	cursor: pointer;
	margin-right: 10px;
	opacity: 0.3;
	transition: 0.25s opacity ease;
}
div#content section#services div.block div.slide div.navi p.row:hover,
div#content section#services div.block div.slide div.navi p.row.active {
	opacity: 1;
}
div#content section#services div.block h3 {
font-family: "Avenir Next LT W01 Bold", sans-serif;
font-size: 2.5rem;
line-height: 2.75rem;
letter-spacing: 0.025em;
margin-bottom: 10px;
}
div#content section#services div.block h4 {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 20px;
}
div#content section#services div.block h4 i.icon {
	display: block;
	width: 22px;
	height: 22px;
	overflow: hidden;
	font-size: 22px;
	font-weight: 400;
	color: #ffffff;
	margin-right: 5px;
	background-color: #000000;
	border-radius: 2.5px;
}
div#content section#services div.block p.description {
	letter-spacing: 0.075em;
}
div#content section#services div.block p.price {
	margin-bottom: 10px;
}
div#content section#services div.block p.price.no-margin {
	margin-bottom: 0px;
}
div#content section#services div.block p.price span,
div#content section#services div.block p.price sup {
	display: inline-block;
}
div#content section#services div.block p.price span {
	font-weight: 700;
}
div#content section#services div.block p.price span.label {
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.25rem;
	border: 1px solid #000000;
	margin-right: 10px;
	padding: 0px 5px;
	transform: translateY(-2px);
}
div#content section#services div.block p.price sup {
	font-size: 0.625rem;
	margin-right: -2.5px;
	transform: translate(-7.5px, -10px);
}
div#content section#services div.block p.price span.number,
div#content section#services div.block p.price span.unit {
	color: #c80000;
}
div#content section#services div.block p.price span.number {
	font-size: 1.6875rem;
	transform: translateY(2px);
}
div#content section#services div.block p.price span.unit {
	font-size: 1.0625rem;
}
div#content section#services div.block p.price span.suffix {
	font-size: 0.9375rem;
	margin-right: 30px;
}
div#content section#services div.block p.headline {
	font-weight: 700;
	font-size: 1.0625rem;
	margin-bottom: 5px;
}

/* about, recruit
-------------------------------------------------------------------------------- */

div#content section#about div.inner-section,
div#content section#recruit div.inner-section {
	padding-top: 0px;
}
div#content section#about p.image {
	margin: 0px -50px;
}
div#content section#about p.image img.small {
	display: none;
}
div#content section#about div#about-01 {
	position: relative;
	transform: translateY(-50px);
	margin-bottom: 50px;
}
div#content section#about div#about-01 p.description {
	width: 640px;
	letter-spacing: 0.075em;
	margin: auto;
}



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

footer#footer {
	position: relative;
	z-index: 10;
	text-align: center;
	font-size: 0.9375rem;
	line-height: 1.625rem;
	color: #ffffff;
	padding: 120px 0px 40px 0px;
	background-color: #000000;
}
footer#footer p#button-page-top {
	position: fixed;
	width: 50px;
	height: 50px;
	right: 40px;
	bottom: 40px;
	z-index: 10;
	font-family: "Avenir Next W01 Bold Italic", sans-serif;
	line-height: 1.5rem;
	color: #000000;
	pointer-events: none;
	opacity: 0;
	transition: 0.25s opacity ease;
}
div.scroll-02 footer#footer p#button-page-top {
	pointer-events: auto;
	opacity: 1;
}
footer#footer p#button-page-top a {
	display: block;
	box-sizing: border-box;
	height: 100%;
	padding-top: 10px;
	background-color: #ffffff;
	border-radius: 50%;
	transition: 0.25s opacity ease;
}
footer#footer p#button-page-top a:hover {
	opacity: 0.75;
}
footer#footer p#button-page-top a::before {
	display: block;
	width: 14px;
	height: 7px;
	margin: auto;
	background: url(../images/arrow-page-top.svg) no-repeat center;
	background-size: auto 100%;
	content: "";
}
footer#footer div.information {
	font-weight: 500;
	margin-bottom: 60px;
}
footer#footer div.information a {
	transition: 0.25s opacity ease;
}
footer#footer div.information a:hover {
	opacity: 0.625;
}
footer#footer div.information h3 {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-bottom: 40px;
}
footer#footer div.information h3 img {
	width: auto;
	height: 47px;
}
footer#footer div.information p.company-address span.company {
	margin-right: 15px;
}
footer#footer p.button {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	font-weight: 700;
	margin-bottom: 80px;
}
footer#footer p.button a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	position: relative;
	width: 320px;
	height: 56px;
	border: 2px solid #ffffff;
	transition: 0.25s color ease;
}
footer#footer p.button a:hover {
	color: #000000;
}
footer#footer p.button a::before {
	position: absolute;
	width: 0%;
	height: 100%;
	left: 0px;
	top: 0px;
	background-color: #ffffff;
	content: "";
	transition: 0.25s width ease;
}
footer#footer p.button a:hover::before {
	width: 100%;
}
footer#footer p.button span {
	position: relative;
}
footer#footer p.button span::after {
	display: inline-block;
  font-family: "icon";
	font-size: 1.125rem;
	font-weight: 400;
  line-height: 1em;
	margin-left: 5px;
  content: "\e902";
	transform: translateY(2px);
}
footer#footer p.copyright {
	text-align: center;
	text-indent: 0.1em;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	color: #808080;
}
