@charset "utf-8";



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

*, *::before, *::after {
	box-sizing: border-box;
	font: inherit;
	border: none;
	margin: 0;
	padding: 0;
}
html {
	-webkit-text-size-adjust: none;
	-webkit-tap-highlight-color: transparent;
}
a {
	text-decoration: none;
	color: inherit;
}
article, aside, footer, header, iframe, img, main, nav, section, video {
	display: block;
}
ol, ul {
	list-style: none;
}
table {
	border-collapse: collapse;
}
img {
	max-width: 100%;
	height: auto;
}



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

html {
	visibility: hidden;
	font-size: 16px;
}
html.wf-active,
html.delay {
	visibility: visible;
}
body {
	text-align: justify;
	overflow-wrap: break-word;
	font-family: source-han-sans-japanese, "Yu Gothic", YuGothic, sans-serif;
	font-size: 1rem;
	font-weight: 400;
	font-feature-settings: "palt";
	line-height: 1.75rem;
	letter-spacing: 0.025em;
	color: #404040;
	background-color: #fcfaf5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
a.underline {
	text-decoration: underline;
}
a.color {
	transition: 0.25s color ease;
}
a.color:hover {
	color: #999999;
}
h1 {
	font-size: 1.5rem;
}
h2 {
	font-size: 1.375rem;
}
h3 {
	font-size: 1.25rem;
}
h4,
h5,
h6 {
	font-size: 1rem;
}
p.indent {
	text-indent: -1em;
	padding-left: 1em;
}
p.note {
	font-size: 0.875rem;
	line-height: 1.5rem;
}
p:empty:before {
	content: none;
}
span.required {
	color: #7db7db;
}



/* --------------------------------------------------------------------------------
form
-------------------------------------------------------------------------------- */

input[type=text],
input[type=email],
input[type=number],
input[type=password],
input[type=search],
input[type=tel],
input[type=button],
input[type=submit],
button,
textarea,
select {
	display: inline-block;
	max-width: 100%;
	vertical-align: top;
	font-family: "Yu Gothic", YuGothic, sans-serif;
	font-size: 1rem;
	outline: none;
	border: none;
	margin: 0px;
	border-radius: 5px;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
input[type=text],
input[type=email],
input[type=number],
input[type=password],
input[type=search],
input[type=tel],
textarea,
select {
	color: #404040;
	background-color: #ffffff;
}
input[type=text],
input[type=email],
input[type=number],
input[type=password],
input[type=search],
input[type=tel],
select {
	height: 50px;
	line-height: 50px;
}
input[type=text],
input[type=email],
input[type=number],
input[type=password],
input[type=search],
input[type=tel] {
	padding: 0px 20px;
}
input[type=button],
input[type=submit],
button {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 300px;
	height: 50px;
	color: #fcfaf5;
	cursor: pointer;
	background-color: #696969;
	transition: 0.25s background-color ease;
}
input[type=button]:hover,
input[type=submit]:hover,
button:hover {
	background-color: #404040;
}
input[type=radio],
input[type=checkbox] {
	position: relative;
	vertical-align: middle;
	width: 20px;
	margin-right: 5px;
	transform: translate(-9999px, -4px);
}
input[type=radio]::before,
input[type=checkbox]::before,
input[type=radio]::after,
input[type=checkbox]::after {
	position: absolute;
	left: 9999px;
	top: 0px;
	cursor: pointer;
	content: "";
}
input[type=radio]::before,
input[type=checkbox]::before,
label.alternate input[type=radio] + span,
label.alternate input[type=checkbox] + span {
	width: 26px;
	height: 26px;
	border: 1px solid #404040;
}
input[type=radio]::after,
input[type=checkbox]::after,
label.alternate input[type=radio] + span::before,
label.alternate input[type=checkbox] + span::before {
	opacity: 0;
	transition: 0.25s opacity ease;
}
input[type=radio]:checked::after,
input[type=checkbox]:checked::after,
label.alternate input[type=radio]:checked + span::before,
label.alternate input[type=checkbox]:checked + span::before {
	opacity: 1;
}
input[type=radio]::after,
input[type=checkbox]::after,
label.alternate input[type=radio] + span::before,
label.alternate input[type=checkbox] + span::before {
	width: 24px;
	height: 24px;
	background-color: #999999;
}
input[type=radio]::after,
input[type=checkbox]::after {
	transform: translate(1px, 1px);
}
@-moz-document url-prefix() {
	input[type=radio],
	input[type=checkbox] {
		margin-right: 0px;
		transform: translate(0px, 0px);
	}
}
@supports (-ms-ime-align:auto) {
	input[type=radio],
	input[type=checkbox] {
		margin-right: 0px;
		transform: translate(0px, 0px);
	}
}
@media all and (-ms-high-contrast:none) {
	input[type=radio],
	input[type=checkbox] {
		margin-right: 0px;
		transform: translate(0px, 0px);
	}
}
label {
	vertical-align: middle;
}
label.alternate {
	display: inline-block;
	vertical-align: middle;
	cursor: pointer;
	margin-right: 5px;
}
label.alternate input[type=radio],
label.alternate input[type=checkbox] {
	display: none;
}
label.alternate input[type=radio] + span,
label.alternate input[type=checkbox] + span {
	display: block;
	position: relative;
	cursor: pointer;
	transform: translate(0px, -1px);
}
label.alternate input[type=radio] + span::before,
label.alternate input[type=checkbox] + span::before {
	display: block;
	position: absolute;
	content: "";
	transform: translate(0px, 0px);
}
textarea {
	line-height: 1.5rem;
	padding: 20px;
}
select {
	padding: 0px 40px 0px 20px;
	background: #ffffff url(../images/arrow-select.svg) no-repeat right 20px center;
	background-size: auto 10px;
}
select::-ms-expand {
	display: none;
}
::-webkit-input-placeholder {
	color: #cccccc;
}
:-ms-input-placeholder {
	color: #cccccc;
}
::placeholder {
	color: #cccccc;
}
form#searchform label.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}



/* --------------------------------------------------------------------------------
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-arrow:before {
	content: "\e900";
}
i.icon-list:before {
	content: "\e901";
}
i.icon-download:before {
	content: "\e902";
}
i.icon-instagram:before {
	content: "\e903";
}
i.icon-twitter:before {
	content: "\e904";
}
i.icon-youtube:before {
	content: "\e905";
}
i.icon-line:before {
	content: "\e906";
}
i.icon-list-alternate:before {
	content: "\e907";
}
i.icon-quotation:before {
	content: "\e908";
}



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

br.small {
	display: none;
}
br.large {
	display: inline;
}
hr {
	height: 0px;
	border-width: 1px 0px 0px 0px;
	border-style: solid;
	border-color: #e2e2e2;
	margin: 20px 0px;
}
mark {
	padding: 0px 5px;
	background-color: #f4f4f4;
	border-radius: 2.5px;
}
div.video-wrapper {
	position: relative;
	padding-bottom: 56.25%;
}
div.video-wrapper iframe {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
}
iframe.wp-embedded-content {
	display: block;
	width: 100%;
}
span.no-large {
	display: none;
}
*.margin-bottom {
	margin-bottom: 40px;
}
*.margin-bottom-narrow {
	margin-bottom: 20px;
}



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

div#page {
	position: relative;
	overflow: hidden;
}
div#trigger {
	position: absolute;
	left: 0px;
	top: 50vh;
	pointer-events: none;
}
div#language {
	position: absolute;
	height: 100vh;
	right: 20px;
	top: 0px;
	z-index: 20;
	writing-mode: vertical-rl;
	pointer-events: none;
	transition: 0.25s color ease;
}
body.menu-header:not(.menu-header-products) div#language {
	position: fixed;
	color: #fcfaf5;
}
body.menu-header:not(.menu-header-products).admin-bar div#language {
	top: 32px;
}
div#language a {
	transition: 0.25s color ease;
}
div#language a:hover {
	color: #999999;
}
body.menu-header:not(.menu-header-products) div#language a:hover {
	color: #404040;
}
div#language ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
div#language ul li {
	pointer-events: auto;
	line-height: 1.25rem;
}
body:not(.en) div#language ul li.jp,
body.en div#language ul li.en {
	font-weight: 700;
}
div#language ul li:not(:last-child)::after {
	font-weight: 400;
	margin: 10px 0px;
	content: "/";
}
div.sns ul li a {
	transition: 0.25s opacity ease;
}
div.sns ul li a:hover {
	opacity: 0.625;
}
p.image,
p.diagram {
	overflow: hidden;
}
p.image img {
	width: 100%;
	height: auto;
}
p.image img.small {
	display: none;
}
p.image-zoom img {
	transition: 0.25s transform ease;
}
p.image-zoom a:hover img {
	transform: scale(1.075);
}
p.diagram img {
	max-width: 100%;
	height: auto;
	margin: auto;
}
p.button-gradation a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: relative;
	overflow: hidden;
	transition: 0.25s color ease;
}
p.button-gradation a::before {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
	content: "";
	background: linear-gradient(115deg, #4561d8 -50%, #57b2b2);
	opacity: 0;
	border-radius: 20px;
	transition: 0.25s opacity ease;
}
p.button-gradation a:hover::before {
	opacity: 1;
}
p.button-gradation span {
	position: relative;
}
ul.bullet li {
	position: relative;
	padding-left: 20px;
}
ul.bullet li::before {
	position: absolute;
	width: 6px;
	height: 6px;
	left: 4px;
	top: 12px;
	background-color: #404040;
	content: "";
	border-radius: 50%;
}
span.arrow {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: relative;
	overflow: hidden;
	font-family: "icon";
	font-size: 0.625rem;
	font-weight: 400;
	line-height: 1em;
	color: #404040;
	background-color: #fcfaf5;
	border-radius: 50%;
	transition: 0.25s color ease-in-out;
}
a:hover span.arrow,
*.anchor-alternate:hover span.arrow {
	color: #fcfaf5;
}
span.arrow::before {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
	content: "";
	opacity: 0;
	background-color: #404040;
	border-radius: 50%;
	transform: scale(0);
	transition: 0.25s opacity ease, 0.25s transform ease;
}
a:hover span.arrow::before,
*.anchor-alternate:hover span.arrow::before {
	opacity: 1;
	transform: scale(1.025);
}
span.arrow::after {
	position: relative;
	content: "\e900";
}
*.headline-gradation {
	position: relative;
}
*.headline-gradation span {
	display: flex;
	flex-wrap: wrap;
	overflow: hidden;
}
*.headline-gradation span.main {
	position: absolute;
	left: 0px;
	top: 0px;
	z-index: 1;
	color: transparent;
	background: linear-gradient(115deg, #4561d8, #57b2b2);
	opacity: 0;
	transition: 1s opacity 2s ease-in-out;
	-webkit-background-clip: text;
}
*.headline-gradation.active span.main {
	opacity: 1;
}
*.headline-gradation span i {
	display: block;
}
*.headline-gradation span.sub i {
	color: #7db7db;
	opacity: 0;
	transform: translateY(100%);
	transition: 0.75s opacity ease-in, 0.75s transform ease;
}
*.headline-gradation.active span.sub i {
	opacity: 1;
	transform: translateY(0%);
}
*.headline-gradation span.sub i:nth-child(1) {
	transition-delay: calc(calc(0.075s * 0) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(2) {
	transition-delay: calc(calc(0.075s * 1) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(3) {
	transition-delay: calc(calc(0.075s * 2) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(4) {
	transition-delay: calc(calc(0.075s * 3) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(5) {
	transition-delay: calc(calc(0.075s * 4) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(6) {
	transition-delay: calc(calc(0.075s * 5) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(7) {
	transition-delay: calc(calc(0.075s * 6) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(8) {
	transition-delay: calc(calc(0.075s * 7) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(9) {
	transition-delay: calc(calc(0.075s * 8) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(10) {
	transition-delay: calc(calc(0.075s * 9) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(11) {
	transition-delay: calc(calc(0.075s * 10) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(12) {
	transition-delay: calc(calc(0.075s * 11) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(13) {
	transition-delay: calc(calc(0.075s * 12) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(14) {
	transition-delay: calc(calc(0.075s * 13) + 0.25s);
}
*.headline-gradation span.sub i:nth-child(15) {
	transition-delay: calc(calc(0.075s * 14) + 0.25s);
}
*.scroll.fade {
	opacity: 0;
	transition: 1s opacity ease-in-out;
}
*.scroll.fade.active {
	opacity: 1;
}
*.scroll.fade-slide {
	opacity: 0;
	transition: 1s opacity ease-in-out, 1s transform ease;
	transform: translateY(60px);
}
*.scroll.fade-slide.active {
	opacity: 1;
	transform: translateY(0px);
}
*.scroll.fade-scale {
	opacity: 0;
	transition: 1s opacity ease-in-out, 1s transform ease;
	transform: scale(0.875);
}
*.scroll.fade-scale.active {
	opacity: 1;
	transform: scale(1);
}

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

body.home div#language {
	opacity: 0;
	transition: 1s opacity 2.75s ease;
}
body.home div.scroll div#language {
	transition-delay: 0s;
}
body.home.cover div#language {
	opacity: 1;
}

/* en
-------------------------------------------------------------------------------- */

body.en-home div#language {
	opacity: 0;
	transition: 1s opacity 2.75s ease;
}
body.en-home div.scroll div#language {
	transition-delay: 0s;
}
body.en-home.cover div#language {
	opacity: 1;
}



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

header#header {
	position: relative;
}
header#header *#logo,
header#header p#button-menu,
header#header div#menu {
	position: fixed;
}
header#header *#logo {
	left: 50px;
	top: 45px;
	z-index: 20;
}
body.admin-bar header#header *#logo {
	top: 77px;
}
header#header *#logo a {
	display: block;
	height: 42px;
}
header#header *#logo a::before {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
	background: url(../images/logo-white.svg) no-repeat center;
	background-size: auto 100%;
	content: "";
	opacity: 0;
	transition: 0.25s opacity ease;
}
body.menu-header header#header *#logo a::before {
	opacity: 1;
}
header#header *#logo img {
	position: relative;
	width: auto;
	height: 100%;
	transition: 0.25s opacity ease;
}
body.menu-header header#header *#logo img {
	opacity: 0;
}
header#header p#button-menu {
	width: 60px;
	height: 60px;
	right: 75px;
	top: 36px;
	z-index: 30;
  cursor: pointer;
}
body.admin-bar header#header p#button-menu {
	top: 68px;
}
header#header p#button-menu::before {
	position: absolute;
	width: 100%;
	left: 0px;
	bottom: 10px;
	text-align: center;
	font-size: 0.75rem;
	line-height: 1.25rem;
	content: "MENU";
  transition: 0.25s color ease;
}
body.menu-header:not(.menu-header-products) header#header p#button-menu::before {
	color: #ffffff;
	content: "CLOSE";
}
header#header p#button-menu i {
  display: block;
  position: absolute;
  background-color: #404040;
  width: 60px;
  height: 1px;
  left: calc(50% - 30px);
  top: calc(50% - 10.5px);
  transition: 0.25s all ease;
  transform-origin: 50% 50%;
}
body.menu-header:not(.menu-header-products) header#header p#button-menu i {
	background-color: #fcfaf5;
}
header#header p#button-menu i:nth-child(1) {
	transform: translateY(-6px);
}
header#header p#button-menu i:nth-child(2) {
	transform: translateY(6px);
}
body.menu-header:not(.menu-header-products) header#header p#button-menu i:nth-child(1),
body.menu-header:not(.menu-header-products) header#header p#button-menu i:nth-child(2) {
  width: 0px;
  left: 50%;
  opacity: 0;
	transform: translateY(0px);
}
header#header p#button-menu i:nth-child(3),
header#header p#button-menu i:nth-child(4) {
	opacity: 0;
}
body.menu-header:not(.menu-header-products) header#header p#button-menu i:nth-child(3),
body.menu-header:not(.menu-header-products) header#header p#button-menu i:nth-child(4) {
	opacity: 1;
}
body.menu-header:not(.menu-header-products) header#header p#button-menu i:nth-child(3) {
	transform: rotate(15deg);
}
body.menu-header:not(.menu-header-products) header#header p#button-menu i:nth-child(4) {
	transform: rotate(-15deg);
}
header#header div#menu {
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
	overflow: hidden;
	z-index: 10;
	transform: translateY(-100%);
	transition: 0.375s transform ease;
	-webkit-overflow-scrolling: touch;
}
body.admin-bar header#header div#menu {
	height: calc(100% - 32px);
	top: 32px;
}
body.menu-header header#header div#menu {
	transform: translateY(0%);
}
header#header div#menu::-webkit-scrollbar {
  display: none;
}
header#header nav#navi {
	position: relative;
	height: 100%;
}
header#header nav#navi div.products,
header#header nav#navi div.misc-sns,
header#header nav#navi div.background {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	position: absolute;
	height: 100%;
	top: 0px;
}
header#header nav#navi div.products {
	justify-content: flex-end;
	width: calc(50% - 120px);
	left: 0px;
	z-index: 2;
	padding: 40px 80px 0px 0px;
	background-color: #404040;
}
header#header nav#navi div.products::before {
	position: absolute;
	width: 520px;
	height: 100%;
	left: 100%;
	top: 0%;
	pointer-events: none;
	background-color: #404040;
	content: "";
	transition: 0.25s transform ease;
	transform-origin: left center;
	transform: scaleX(0);
}
header#header.open-products nav#navi div.products::before {
	pointer-events: auto;
	transform: scaleX(1);
}
header#header nav#navi div.products p.button-close {
	display: none;
	position: absolute;
	width: 60px;
	height: 60px;
	right: 75px;
	top: 36px;
	z-index: 10;
	cursor: pointer;
	transition: 0.25s transform ease;
}
body.menu-header-products header#header nav#navi div.products p.button-close {
	display: block;
}
header#header.open-products nav#navi div.products p.button-close {
	transform: translateX(520px);
}
header#header nav#navi div.products p.button-close::before,
header#header nav#navi div.products p.button-close::after {
	position: absolute;
	width: 60px;
	height: 0px;
  left: calc(50% - 30px);
	top: calc(50% - 10.5px);
	border-bottom: 1px solid #fcfaf5;
	content: "";
}
header#header nav#navi div.products p.button-close::before {
	transform: rotate(15deg);
}
header#header nav#navi div.products p.button-close::after {
	transform: rotate(-15deg);
}
header#header nav#navi div.products p.button-close span {
	position: absolute;
	width: 100%;
	left: 0px;
	bottom: 10px;
	text-align: center;
	font-size: 0.75rem;
	line-height: 1.25rem;
	color: #ffffff;
}
header#header nav#navi div.products p.button-close span::before {
	content: "CLOSE";
}
header#header nav#navi div.products div.inner-products {
	width: 100%;
	max-width: 400px;
}
header#header nav#navi div.products h2 {
	margin-bottom: 40px;
}
header#header nav#navi div.products h2 a {
	display: block;
	position: relative;
}
header#header nav#navi div.products h2 span:not(.arrow),
header#header nav#navi div.products h2 span i {
	display: block;
}
header#header nav#navi div.products h2 span.main {
	display: flex;
	flex-wrap: wrap;
	font-size: 3.5rem;
	font-weight: 500;
	line-height: 4rem;
}
header#header nav#navi div.products h2 span.main i {
	color: transparent;
	background: linear-gradient(115deg, #4561d8, #57b2b2);
	transition: 0.25s color ease;
  -webkit-background-clip: text;
}
header#header nav#navi div.products h2 a:hover span.main i {
	color: #7db7db;
}
header#header nav#navi div.products h2 span.sub {
	font-size: 0.875rem;
	font-weight: 500;
	color: #7db7db;
	letter-spacing: 0.05em;
}
body.menu-header-products header#header nav#navi div.products h2 span.sub {
	display: none;
}
header#header nav#navi div.products h2 span.sub-alternate {
	display: none;
	position: absolute;
	right: 60px;
	top: 30px;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 20px;
	color: #7db7db;
	letter-spacing: 0.05em;
}
body.menu-header-products header#header nav#navi div.products h2 span.sub-alternate {
	display: block;
}
header#header nav#navi div.products h2 span.arrow {
	position: absolute;
	width: 50px;
	height: 50px;
	right: 0px;
	top: 15px;
	color: #404040;
	background: linear-gradient(90deg, #7db7db, #67be8f);
}
header#header nav#navi div.products h2 span.arrow::before {
	background-color: #fcfaf5;
}
header#header nav#navi div.products div.list div.row {
	position: relative;
	color: #999999;
	border-bottom: 1px solid #999999;
}
header#header nav#navi div.products div.list div.row p.headline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 2rem;
	cursor: pointer;
	padding: 20px 0px 20px 30px;
	transition: 0.25s color ease;
}
header#header nav#navi div.products div.list div.row p.headline:hover,
header#header nav#navi div.products div.list div.row.open p.headline {
	color: #fcfaf5;
}
header#header nav#navi div.products div.list div.row p.headline span.arrow {
	width: 25px;
	height: 25px;
	font-size: 0.375rem;
	color: #404040;
	margin-right: 15px;
	background-color: #999999;
}
header#header nav#navi div.products div.list div.row p.headline span.arrow::before {
	background-color: #fcfaf5;
}
header#header nav#navi div.products div.list div.row.open p.headline span.arrow::before {
	opacity: 1;
	transform: scale(1);
}
header#header nav#navi div.products div.list div.row div.nest {
	position: absolute;
	width: 600px;
	left: 100%;
	top: 0px;
	color: #fcfaf5;
	pointer-events: none;
	padding: 0px 80px;
	opacity: 0;
	transition: 0.25s opacity ease;
}
header#header nav#navi div.products div.list div.row div.nest-child {
	padding-top: 70px;
}
header#header nav#navi div.products div.list div.row div.nest:not(.nest-child) {
	padding-top: 20px;
}
header#header nav#navi div.products div.list div.row div.nest:not(.nest-child)::before {
	position: absolute;
	width: calc(100% - 80px);
	height: 0px;
	left: 0px;
	top: -1px;
	border-bottom: 1px solid #999999;
	content: "";
	transition: 0.25s transform ease;
	transform-origin: left top;
	transform: scaleX(0);
}
header#header nav#navi div.products div.list div.row.open div.nest:not(.nest-child)::before {
	transform: scaleX(1);
}
header#header nav#navi div.products div.list div.row.open div.nest {
	pointer-events: auto;
	opacity: 1;
}
header#header nav#navi div.products div.list div.row div.nest div.list-nest {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	height: 400px;
}
header#header nav#navi div.products div.list div.row div.nest p {
	font-size: 1.125rem;
	font-weight: 500;
	margin-bottom: 10px;
}
header#header nav#navi div.products div.list div.row div.nest ul {
	padding-bottom: 40px;
}
header#header nav#navi div.products div.list div.row div.nest ul li:not(:last-child) {
	margin-bottom: 5px;
}
header#header nav#navi div.products div.list div.row div.nest ul li a {
	display: block;
	position: relative;
	padding-left: 10px;
	transition: 0.25s color ease;
}
header#header nav#navi div.products div.list div.row div.nest ul li a:hover {
	color: #999999;
}
header#header nav#navi div.products div.list div.row div.nest ul li a::before {
	position: absolute;
	width: 5px;
	height: 0px;
	left: 0px;
	top: 15px;
	border-bottom: 1px solid #fcfaf5;
	content: "";
	transition: 0.25s border-color ease;
}
header#header nav#navi div.products div.list div.row div.nest ul li a:hover::before {
	border-color: #999999;
}
header#header nav#navi div.misc-sns {
	justify-content: flex-start;
	width: calc(50% + 120px);
	right: 0px;
	color: #fcfaf5;
	padding: 40px 0px 0px 120px;
	background: linear-gradient(150deg, #4561d8 -50%, #57b2b2 87.5%);
}
body.menu-header-products header#header nav#navi div.misc-sns {
	display: none;
}
header#header nav#navi div.misc-sns div.inner-misc-sns {
	position: relative;
	width: 100%;
	max-width: 600px;
	padding-bottom: 80px;
}
header#header nav#navi div.misc-sns div.misc {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
header#header nav#navi div.misc-sns div.misc > ul {
	width: 50%;
}
header#header nav#navi div.misc-sns div.misc > ul > li {
	display: flex;
	flex-wrap: wrap;
}
header#header nav#navi div.misc-sns div.misc > ul > li:not(.column):not(.site-map) {
	margin-bottom: 25px;
}
header#header nav#navi div.misc-sns div.misc > ul > li.home,
header#header nav#navi div.misc-sns div.misc > ul > li.products,
header#header nav#navi div.misc-sns div.misc > ul > li.privacy-policy {
	display: none;
}
header#header nav#navi div.misc-sns div.misc > ul > li > a {
	transition: 0.25s color ease;
}
header#header nav#navi div.misc-sns div.misc > ul > li > a:hover {
	color: #404040;
}
header#header nav#navi div.misc-sns div.misc > ul > li > a > span {
	display: block;
	font-weight: 500;
}
header#header nav#navi div.misc-sns div.misc > ul > li > a > span.main {
	font-size: 2rem;
	line-height: 2.5rem;
	margin-bottom: 5px;
}
header#header nav#navi div.misc-sns div.misc > ul > li > a > span.sub {
	font-size: 0.875rem;
	letter-spacing: 0.05em;
}
header#header nav#navi div.misc-sns div.sns {
	position: absolute;
	left: 50%;
	bottom: 0px;
}
header#header nav#navi div.misc-sns div.sns ul {
	display: flex;
	flex-wrap: wrap;
}
header#header nav#navi div.misc-sns div.sns ul li:not(:last-child) {
	margin-right: 30px;
}
header#header nav#navi div.background {
	left: 0px;
	z-index: 1;
	pointer-events: none;
}
body.menu-header-products header#header nav#navi div.background,
header#header.open-products nav#navi div.background {
	width: 100%;
	pointer-events: auto;
}

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

body.home header#header *#logo,
body.home header#header p#button-menu {
	opacity: 0;
	transition: 1s opacity 2.75s ease;
}
body.home div.scroll header#header *#logo,
body.home div.scroll header#header p#button-menu {
	transition-delay: 0s;
}
body.home.cover header#header *#logo,
body.home.cover header#header p#button-menu {
	opacity: 1;
}

/* en
-------------------------------------------------------------------------------- */

body.en-home header#header *#logo,
body.en-home header#header p#button-menu {
	opacity: 0;
	transition: 1s opacity 2.75s ease;
}
body.en-home div.scroll header#header *#logo,
body.en-home div.scroll header#header p#button-menu {
	transition-delay: 0s;
}
body.en-home.cover header#header *#logo,
body.en-home.cover header#header p#button-menu {
	opacity: 1;
}
body.en header#header div#menu {
	color: #fcfaf5;
	background: linear-gradient(150deg, #4561d8 -25%, #57b2b2 87.5%);
}
body.en header#header nav#navi {
	overflow: auto;
}
body.en header#header nav#navi a {
	display: inline-block;
	transition: 0.25s color ease;
}
body.en header#header nav#navi a:hover {
	color: #404040;
}
body.en header#header nav#navi > ul {
	width: 980px;
	padding: 120px 0px;
	margin: auto;
}
body.en header#header nav#navi > ul > li {
	text-align: left;
}
body.en header#header nav#navi > ul > li:not(:last-child) {
	margin-bottom: 30px;
}
body.en header#header nav#navi > ul > li > a {
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 2.75rem;
}
body.en header#header nav#navi > ul > li div.nest ul {
	padding-top: 20px;
}
body.en header#header nav#navi > ul > li div.nest ul li {
	font-weight: 500;
}
body.en header#header nav#navi > ul > li div.nest ul li:not(:last-child) {
	margin-bottom: 20px;
}
body.en header#header nav#navi > ul > li div.nest ul li a {
	position: relative;
	padding-left: 80px;
}
body.en header#header nav#navi > ul > li div.nest ul li a::before {
	position: absolute;
	width: 50px;
	height: 0px;
	left: 20px;
	top: 15px;
	border-bottom: 1px solid #fcfaf5;
	content: "";
	transition: 0.25s border-color ease;
}
body.en header#header nav#navi > ul > li div.nest ul li a:hover::before {
	border-color: #404040;
}



/* --------------------------------------------------------------------------------
breadcrumb
-------------------------------------------------------------------------------- */

div#breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	height: 140px;
	color: #999999;
	padding: 0px 105px;
}
div#breadcrumb a {
	color: #999999;
	transition: 0.25s color ease;
}
div#breadcrumb a:hover {
	color: #404040;
}
div#breadcrumb p {
	font-size: 0.75rem;
	line-height: 1.25rem;
}
div#breadcrumb p span {
	position: relative;
}
div#breadcrumb p span:not(:last-child) {
	margin-right: 30px;
}
div#breadcrumb p span:not(:last-child)::before {
	position: absolute;
	width: 6px;
	height: 6px;
	right: -16px;
	top: 7px;
	border-right: 1px solid #999999;
	border-top: 1px solid #999999;
	content: "";
	transform: rotate(45deg);
}



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

div#cover {
	position: relative;
	width: 100%;
	min-height: 100vh;
}
body.admin-bar div#cover {
	height: calc(100vh - 32px);
}
div#cover p.image,
div#cover div.text {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
}
div#cover p.image {
	opacity: 0;
	transition: 1s opacity 0.25s ease;
}
body.cover div#cover p.image {
	opacity: 1;
}
div#cover p.image img {
	object-fit: cover;
	width: 100%;
	height: 100%;
	clip-path: circle(150% at 68.5% 50%);
	transition: 1.625s clip-path 2.75s cubic-bezier(0.15, 0.85, 0.25, 1);
}
body.cover div#cover p.image img {
	clip-path: circle(32.5% at 68.5% 50%);
}
@media (max-height:980px) {
body.cover div#cover p.image img {
	clip-path: circle(27.5% at 64.5% 50%);
}
}
@media (max-height:800px) {
body.cover div#cover p.image img {
	clip-path: circle(25% at 60.5% 50%);
}
}
div#cover div.text h2 {
	position: absolute;
	left: calc(50% - 580px);
	top: calc(50% + 100px);
	font-size: 3.5rem;
	font-weight: 700;
	line-height: 5.5rem;
	color: #fcfaf5;
	letter-spacing: 0.05em;
	transition: 1.25s font-size 3s ease, 1.5s color 2.75s ease, 1.25s transform 3s ease;
}
body.cover div#cover div.text h2 {
	font-size: 5rem;
	color: #404040;
	transform: translate(20px, -40px);
}
div#cover div.text h2 span {
	opacity: 0;
	transition: 1s opacity ease-in-out;
}
body.cover div#cover div.text h2 span {
	opacity: 1;
}
body.cover div#cover div.text h2 span:nth-child(1) {
	transition-delay: calc(calc(0.125s * 0) + 0.75s);
}
body.cover div#cover div.text h2 span:nth-child(2) {
	transition-delay: calc(calc(0.125s * 1) + 0.75s);
}
body.cover div#cover div.text h2 span:nth-child(3) {
	transition-delay: calc(calc(0.125s * 2) + 0.75s);
}
body.cover div#cover div.text h2 span:nth-child(4) {
	transition-delay: calc(calc(0.125s * 3) + 0.75s);
}
body.cover div#cover div.text h2 span:nth-child(5) {
	transition-delay: calc(calc(0.125s * 4) + 0.75s);
}
body.cover div#cover div.text h2 span:nth-child(6) {
	transition-delay: calc(calc(0.125s * 5) + 0.75s);
}
body.cover div#cover div.text h2 span:nth-child(7) {
	transition-delay: calc(calc(0.125s * 6) + 0.75s);
}
div#cover p#button-scroll {
	position: absolute;
	width: 20px;
	height: 140px;
	right: 20px;
	bottom: 20px;
	writing-mode: vertical-rl;
	font-size: 0.75rem;
	line-height: 1.25rem;
	opacity: 0;
	transition: 1s opacity 2.75s ease;
}
body.cover div#cover p#button-scroll {
	opacity: 1;
}
div#cover p#button-scroll a {
	display: block;
	position: relative;
	height: 100%;
	transition: 0.25s color ease;
}
div#cover p#button-scroll a:hover {
	color: #999999;
}
div#cover p#button-scroll a::before {
	position: absolute;
	width: 0px;
	height: 80px;
	left: calc(50% - 0.5px);
	bottom: 0px;
	border-right: 1px solid #404040;
	content: "";
	transition: 0.25s border-color ease;
}
div#cover p#button-scroll a:hover::before {
	border-color: #999999;
}
div#cover p#button-scroll span {
	display: block;
	animation: button-scroll 2.5s ease-out infinite;
}
@keyframes button-scroll {
	0% { transform: translateY(0px); }
	49.99% { transform: translateY(10px); }
	50.01% { transform: translateY(10px); }
	100% { transform: translateY(0px); }
}
div#title div.text,
div#title-products div.text {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	width: 980px;
	height: 200px;
	margin: auto;
}
div#title div.text:not(:last-child) {
	margin-bottom: 40px;
}
div#title div.text h1 {
	display: flex;
	flex-wrap: wrap;
	font-size: 5rem;
	font-weight: 500;
	line-height: 7rem;
	margin-right: 30px;
}
div#title div.text p.sub {
	font-weight: 700;
	opacity: 0;
	transition: 1s opacity 2.25s ease;
	transform: translateY(-15px);
}
div.active div#title div.text p.sub {
	opacity: 1;
}
div#title div.image,
div#title-products p.image {
	opacity: 0;
	transition: 1s opacity 0.75s ease-in-out;
}
div#title div.image {
	position: relative;
	height: 650px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}
div.active div#title div.image,
div.active div#title-products p.image {
	opacity: 2;
}
body.products div#title div.image {
	background-image: url(../images/title-image-products.jpg);
}
body.works div#title div.image {
	background-image: url(../images/title-image-works.jpg);
}
body.business div#title div.image {
	background-image: url(../images/title-image-business.jpg);
}
body.about-us div#title div.image {
	background-image: url(../images/title-image-about-us.jpg);
}
body.sustainability div#title div.image {
	background-color: #f4f4f4;
	background-image: url(../images/title-image-sustainability.png);
	background-size: contain;
}
body.faq div#title div.image {
	background-image: url(../images/title-image-faq.jpg);
}
div#title div.image div.text-image {
	position: absolute;
	width: 860px;
	left: calc(50% - 430px);
	bottom: 80px;
	color: #fcfaf5;
}
div#title div.image div.text-image p.sub,
div#title div.image div.text-image h2 {
	font-weight: 700;
	letter-spacing: 0.05em;
}
div#title div.image div.text-image p.sub {
	font-size: 1.125rem;
	margin-bottom: 10px;
}
div#title div.image div.text-image h2 {
	font-size: 2rem;
	line-height: 2.5rem;
	margin-bottom: 30px;
}
div#title-products div.text {
	text-align: left;
	margin-bottom: 40px;
	opacity: 0;
	transition: 1s opacity 0.5s ease-in-out;
}
div.active div#title-products div.text {
	opacity: 1;
}
div#title-products div.text ul.category,
div#title-products div.text div.title {
	width: 100%;
}
div#title-products div.text ul.category {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 20px;
}
div#title-products div.text ul.category li {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	height: 30px;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.25rem;
	color: #fcfaf5;
	padding: 0px 20px;
	border-radius: 15px;
}
div#title-products div.text ul.category li:first-child {
	background-color: #696969;
}
div#title-products div.text ul.category li:not(:first-child) {
	background-color: #999999;
}
div#title-products div.text ul.category li:not(:last-child) {
	margin-right: 10px;
}
div#title-products div.text div.title {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	font-weight: 700;
}
div#title-products div.text div.title h1 {
	font-size: 3.5rem;
	line-height: 4rem;
}
div#title-products div.text div.title h1:not(:last-child) {
	margin-right: 20px;
}
div#title-products div.text div.title p.sub {
	font-size: 1.125rem;
	letter-spacing: 0.05em;
}

/* en
-------------------------------------------------------------------------------- */

body.en-home div#cover div.text {
	text-align: left;
}
body.en-home div#cover div.text h2,
body.en-home div#cover div.text p.description {
	position: absolute;
	left: calc(50% - 560px);
	opacity: 0;
}
body.en-home div#cover div.text h2 {
	top: calc(50% - 220px);
	font-size: 2.25rem;
	line-height: 3rem;
	transition: 1.5s color 2.75s ease, 1.25s opacity 1.125s ease-in-out, 1.25s transform 3s ease;
}
body.en-home.cover div#cover div.text h2,
body.en-home.cover div#cover div.text p.description {
	opacity: 1;
	transform: translate(60px, 0px);
}
body.en-home.cover div#cover div.text h2 {
	font-size: 2.25rem;
}
body.en-home div#cover div.text p.description {
	width: 420px;
	top: calc(50% + 20px);
	color: #fcfaf5;
	transition: 1.5s color 2.75s ease, 1.25s opacity 1.25s ease-in-out, 1.25s transform 3s ease;
}
body.en-home.cover div#cover div.text p.description {
	color: #404040;
}



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

main {
	position: relative;
}
main.sidebar {
	min-height: 100vh;
}
main section,
main section div.inner-section {
	position: relative;
}
main section div.inner-section {
	width: 980px;
	margin: auto;
	padding: 120px 0px;
}
main.sidebar section div.inner-section {
	width: 1100px;
	padding-left: 240px;
}
main section article.common div.body a {
	text-decoration: underline;
}
main article.common div.body h1,
main article.common div.body h2,
main article.common div.body h3,
main article.common div.body h4,
main article.common div.body h5,
main article.common div.body h6,
main article.common div.body p,
main article.common div.body blockquote,
main article.common div.body ul,
main article.common div.body ol,
main article.common div.body table {
	clear: both;
}
main section article.common div.body h1,
main section article.common div.body h2,
main section article.common div.body h3,
main section article.common div.body h4,
main section article.common div.body h5,
main section article.common div.body h6,
main section article.common div.body strong {
	font-weight: 700;
}
main section article.common div.body em {
	font-style: italic;
}
main section article.common div.body blockquote {
	padding: 20px;
	background-color: #f4f4f4;
}
main section article.common div.body ul li {
	position: relative;
	padding-left: 20px;
}
main section article.common div.body ul li::before {
	position: absolute;
	width: 6px;
	height: 6px;
	left: 4px;
	top: 12px;
	background-color: #404040;
	content: "";
	border-radius: 50%;
}
main section article.common div.body ol {
	padding-left: 20px;
}
main section article.common div.body ol li {
	list-style-type: decimal;
}
main section article.common div.body table {
	width: 100%;
}
main section article.common div.body table th,
main section article.common div.body table td {
	border: 1px solid #e2e2e2;
	padding: 10px;
}
main section article.common div.body table th {
	background-color: #f4f4f4;
}
main article.common div.body img.alignleft {
	float: left;
}
main article.common div.body img.alignright {
	float: right;
}
main article.common div.body img.aligncenter {
	margin-left: auto;
	margin-right: auto;
}
main section article.common div.body a.wp-block-button__link,
main section article.common div.body a.wp-block-file__button {
	display: inline-block;
	height: 40px;
	text-decoration: none;
	font-size: 1rem;
	line-height: 38px;
	border: 1px solid #696969;
	padding: 0px 20px;
	background-color: #696969;
	border-radius: 20px;
	transition: 0.25s background-color ease;
}
main section article.common div.body a.wp-block-button__link:hover,
main section article.common div.body a.wp-block-file__button:hover {
	background-color: #404040;
}
main div#pager,
main nav#navi-article {
	line-height: 1rem;
	margin-top: 120px;
}
main div#pager,
main nav#navi-article ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
main div#pager span.current,
main div#pager a,
main nav#navi-article ul li a {
	display: block;
}
main div#pager span.current,
main div#pager a:hover:not(.prev):not(.next),
main nav#navi-article ul li.list a:hover {
	color: #404040;
}
main nav#navi-article ul li a {
	color: #696969;
}
main div#pager a {
	color: #cccccc;
}
main div#pager span.current,
main div#pager a:not(.prev):not(.next) {
	margin: 0px 10px;
}
main div#pager a:not(.prev):not(.next) {
	transition: 0.25s color ease;
}
main div#pager a.prev {
	margin-right: 40px;
}
main div#pager a.next {
	margin-left: 40px;
}
main div#pager span.arrow,
main nav#navi-article span.arrow {
	width: 50px;
	height: 50px;
	color: #fcfaf5;
	background-color: #696969;
}
main div#pager a.prev span.arrow,
main nav#navi-article ul li.prev span.arrow {
	transform: scaleX(-1);
}
main nav#navi-article ul {
	position: relative;
	width: 440px;
	height: 50px;
	margin-left: auto;
	margin-right: auto;
}
main nav#navi-article ul li.prev,
main nav#navi-article ul li.next {
	position: absolute;
	top: 0px;
	font-weight: 500;
}
main nav#navi-article ul li.prev {
	left: 0px;
}
main nav#navi-article ul li.next {
	right: 0px;
}
main nav#navi-article ul li.prev span.arrow {
	margin-right: 20px;
}
main nav#navi-article ul li.next span.arrow {
	margin-left: 20px;
}
main nav#navi-article ul li.prev a,
main nav#navi-article ul li.next a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}
main nav#navi-article ul li.list {
	font-size: 2.5rem;
	line-height: 2.5rem;
}
main nav#navi-article ul li.list a {
	transition: 0.25s color ease;
}

/* sidebar
-------------------------------------------------------------------------------- */

main aside#sidebar {
	position: absolute;
	width: 240px;
	left: calc(50% - 550px);
	top: 0px;
	z-index: 1;
	padding-top: 120px;
}
html.delay main aside#sidebar {
	opacity: 1;
}
main aside#sidebar.fixed {
	position: fixed;
}
body.admin-bar main aside#sidebar.fixed {
	padding-top: 152px;
}
main aside#sidebar.fixed.release {
	position: absolute;
}
main aside#sidebar div.block:not(:last-child) {
	margin-bottom: 20px;
}
main aside#sidebar div.block h3 {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: 10px;
}
main aside#sidebar div.block ul li {
	font-weight: 500;
}
main aside#sidebar div.block ul li:not(:last-child) {
	margin-bottom: 10px;
}
main aside#sidebar div.block ul.indent li {
	padding-left: 20px;
}
main aside#sidebar div.block ul li a {
	color: #cccccc;
	transition: 0.25s color ease;
}
main aside#sidebar div.block ul li a:hover,
main aside#sidebar div.block ul li.active a,
div.scroll-anchor-0 main aside#sidebar div.block ul.anchor li:nth-child(1) a,
div.scroll-anchor-1 main aside#sidebar div.block ul.anchor li:nth-child(2) a,
div.scroll-anchor-2 main aside#sidebar div.block ul.anchor li:nth-child(3) a,
div.scroll-anchor-3 main aside#sidebar div.block ul.anchor li:nth-child(4) a,
div.scroll-anchor-4 main aside#sidebar div.block ul.anchor li:nth-child(5) a,
div.scroll-anchor-5 main aside#sidebar div.block ul.anchor li:nth-child(6) a,
div.scroll-anchor-6 main aside#sidebar div.block ul.anchor li:nth-child(7) a,
div.scroll-anchor-7 main aside#sidebar div.block ul.anchor li:nth-child(8) a,
div.scroll-anchor-8 main aside#sidebar div.block ul.anchor li:nth-child(9) a,
div.scroll-anchor-9 main aside#sidebar div.block ul.anchor li:nth-child(10) a {
	color: #404040;
}
main aside#sidebar div.block-archive ul li:first-child {
	display: none;
}
main aside#sidebar div.block select {
	display: none;
}
main aside#sidebar p.button-catalog-alternate,
main aside#sidebar p.button-contact-alternate,
main aside#sidebar p.button-products {
	position: absolute;
	width: 200px;
	height: 60px;
	left: -20px;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.125rem;
}
main aside#sidebar p.button-catalog-alternate {
	top: calc(calc(calc(1.75rem + 10px) * 5) + 140px);
}
main aside#sidebar p.button-contact-alternate {
	top: calc(calc(calc(1.75rem + 10px) * 5) + 210px);
}
main aside#sidebar p.button-products {
	top: calc(calc(calc(1.75rem + 10px) * 5) + 280px);
}
body.admin-bar main aside#sidebar.fixed p.button-catalog-alternate {
	top: calc(calc(calc(1.75rem + 10px) * 5) + 172px);
}
body.admin-bar main aside#sidebar.fixed p.button-contact-alternate {
	top: calc(calc(calc(1.75rem + 10px) * 5) + 242px);
}
body.admin-bar main aside#sidebar.fixed p.button-products {
	top: calc(calc(calc(1.75rem + 10px) * 5) + 312px);
}
main aside#sidebar p.button-catalog-alternate a,
main aside#sidebar p.button-contact-alternate a,
main aside#sidebar p.button-products a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	color: #fcfaf5;
	padding-left: 20px;
	border-radius: 5px;
}
main aside#sidebar p.button-catalog-alternate a,
main aside#sidebar p.button-contact-alternate a {
	background-color: #7db7db;
}
main aside#sidebar p.button-products a {
	background: linear-gradient(115deg, #4561d8 -50%, #57b2b2);
}
main aside#sidebar p.button-catalog-alternate a::before,
main aside#sidebar p.button-contact-alternate a::before,
main aside#sidebar p.button-products a::before {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
	background-color: #999999;
	content: "";
	opacity: 0;
	border-radius: 5px;
	transition: 0.25s opacity ease;
}
main aside#sidebar p.button-catalog-alternate a:hover::before,
main aside#sidebar p.button-contact-alternate a:hover::before,
main aside#sidebar p.button-products a:hover::before {
	opacity: 1;
}
main aside#sidebar p.button-catalog-alternate a span.text,
main aside#sidebar p.button-contact-alternate a span.text,
main aside#sidebar p.button-products a span.text {
	position: relative;
}
main aside#sidebar p.button-catalog-alternate a span.arrow,
main aside#sidebar p.button-contact-alternate a span.arrow,
main aside#sidebar p.button-products a span.arrow {
	position: absolute;
	width: 25px;
	height: 25px;
	right: 20px;
	top: calc(50% - 12.5px);
	z-index: 1;
	font-size: 0.375rem;
	color: #7db7db;
	background-color: #fcfaf5;
}
main aside#sidebar p.button-catalog-alternate a:hover span.arrow,
main aside#sidebar p.button-contact-alternate a:hover span.arrow,
main aside#sidebar p.button-products a:hover span.arrow {
	color: #fcfaf5;
}

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

main section#home-menu div.list div.row:not(:last-child) {
	margin-bottom: 160px;
}
main section#home-menu div.list div.row:nth-child(2n+1) {
	transform: translateX(120px);
}
main section#home-menu div.list div.row h2 {
	display: flex;
	flex-wrap: wrap;
	width: calc(100% - 240px);
	font-size: 6.5rem;
	font-weight: 500;
	line-height: 7rem;
	margin: 0px auto 30px auto;
}
main section#home-menu div.list div.row:nth-child(3) h2 {
	justify-content: flex-end;
}
main section#home-menu div.list div.row:nth-child(3) h2 span.main {
	left: auto;
	right: 0px;
}
main section#home-menu div.list div.row p.image {
	width: 980px;
	height: 600px;
	border-radius: 20px;
	opacity: 0;
	transition: 1s opacity ease-in-out, 1s transform ease;
}
main section#home-menu div.list div.row:nth-child(2n+1) p.image {
	transform: translateX(-60px);
}
main section#home-menu div.list div.row:nth-child(2n) p.image {
	transform: translateX(60px);
}
main section#home-menu div.list div.row p.image.active {
	opacity: 1;
	transform: translateX(0px);
}
main section#home-menu div.list div.row div.text {
	position: relative;
	width: 600px;
	color: #fcfaf5;
	margin-top: -140px;
	padding: 60px 40px 40px 60px;
	background: linear-gradient(135deg, #4561d8 -50%, #57b2b2);
	border-radius: 10px;
}
main section#home-menu div.list div.row:nth-child(2n+1) div.text {
	margin-left: auto;
	margin-right: 90px;
}
main section#home-menu div.list div.row:nth-child(2n) div.text {
	margin-left: 90px;
	margin-right: auto;
}
main section#home-menu div.list div.row:nth-child(4) div.text {
	width: 800px;
}
main section#home-menu div.list div.row div.text h3 {
	position: relative;
	font-size: 1.625rem;
	font-weight: 700;
	line-height: 2.5rem;
	letter-spacing: 0.05em;
	margin-bottom: 20px;
	padding-left: 60px;
}
main section#home-menu div.list div.row div.text h3::before {
	position: absolute;
	width: 50px;
	height: 0px;
	left: 0px;
	top: 20px;
	border-bottom: 1px solid #fcfaf5;
	content: "";
}
main section#home-menu div.list div.row div.text p.description {
	margin-bottom: 30px;
}
main section#home-menu div.list div.row div.text p.more {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	font-weight: 700;
}
main section#home-menu div.list div.row div.text p.more a {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
}
main section#home-menu div.list div.row div.text p.more span.arrow {
	width: 50px;
	height: 50px;
	color: #7db7db;
	margin-left: 10px;
	background-color: #fcfaf5;
}
main section#home-menu div.list div.row div.text p.more a:hover span.arrow {
	color: #fcfaf5;
}
main section#home-news div.inner-section {
	width: 800px;
}
main section#home-news header,
main section#home-column header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	margin-bottom: 60px;
}
main section#home-news header h2,
main section#home-column header h2 {
	font-size: 3.5rem;
	font-weight: 500;
	line-height: 4rem;
	margin-right: 30px;
}
main section#home-news header p.more,
main section#home-column header p.more {
	font-weight: 700;
	transform: translateY(-5px);
}
main section#home-news header p.more a,
main section#home-column header p.more a {
	border-bottom: 1px solid #404040;
	transition: 0.25s color ease, 0.25s border-color ease;
}
main section#home-news header p.more a:hover,
main section#home-column header p.more a:hover {
	color: #999999;
	border-color: #999999;
}
main section#home-news {
	background-color: #e4eef2;
}
main section#home-column div.inner-section,
main section#home-menu-alternate div.inner-section {
	width: 920px;
}
main section#home-column header {
	padding-left: 60px;
}
main section#home-menu-alternate div.button-wrapper {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
main section#home-menu-alternate div.button-wrapper p.button {
	width: calc(50% - 10px);
}
main section#home-menu-alternate div.button-wrapper p.button a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	position: relative;
	height: 160px;
	color: #fcfaf5;
	padding-left: 40px;
	background: linear-gradient(135deg, #4561d8 -25%, #57b2b2);
	border-radius: 10px;
	transition: 0.25s color ease;
}
main section#home-menu-alternate div.button-wrapper p.button a:hover {
	color: #cccccc;
}
main section#home-menu-alternate div.button-wrapper p.button i {
	display: block;
}
main section#home-menu-alternate div.button-wrapper p.button i.main {
	font-size: 2rem;
	font-weight: 700;
	line-height: 2.5rem;
	margin-bottom: 5px;
}
main section#home-menu-alternate div.button-wrapper p.button i.sub {
	font-weight: 500;
}
main section#home-menu-alternate div.button-wrapper p.button span.arrow {
	position: absolute;
	width: 50px;
	height: 50px;
	right: 40px;
	top: calc(50% - 25px);
	color: #7db7db;
	background-color: #fcfaf5;
}
main section#home-menu-alternate div.button-wrapper p.button a:hover span.arrow {
	color: #fcfaf5;
}

/* products
-------------------------------------------------------------------------------- */

main section#products div.inner-section {
	padding-top: 0px;
	padding-bottom: 0px;
}
main section#products div.block {
	padding: 120px 0px;
}
main section#products div.header {
	text-align: center;
	border-bottom: 1px solid #e2e2e2;
	margin-bottom: 120px;
	padding-bottom: 80px;
}
main section#products div.header h2,
main section#products div.header p.sub {
	text-indent: 0.05em;
	font-weight: 700;
	letter-spacing: 0.05em;
}
main section#products div.header h2 {
	font-size: 2.5rem;
	line-height: 3rem;
	margin-bottom: 10px;
}
main section#products div.header p.sub {
	font-size: 0.875rem;
	margin-bottom: 30px;
}
main section#products div.segment:not(:last-child) {
	border-bottom: 1px solid #e2e2e2;
	margin-bottom: 120px;
	padding-bottom: 120px;
}
main section#products div.segment h3.headline {
	text-align: center;
	text-indent: 0.05em;
	font-size: 2rem;
	font-weight: 700;
	line-height: 2.5rem;
	color: #57a2d1;
	letter-spacing: 0.05em;
	margin-bottom: 100px;
}
main section#products div.list-products div.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
main section#products div.list-products div.row:not(:last-child) {
	margin-bottom: 100px;
}
main section#products div.list-products div.row:nth-child(2n) {
	flex-direction: row-reverse;
}
main section#products div.list-products div.row p.image {
	width: 500px;
	border-radius: 10px;
}
main section#products div.list-products div.row div.text {
	width: calc(100% - 540px);
	padding-top: 40px;
}
main section#products div.list-products div.row div.text div.headline-description {
	margin-bottom: 40px;
}
main section#products div.list-products div.row div.text h3 {
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 2.25rem;
}
main section#products div.list-products div.row div.text h3:not(:last-child) {
	margin-bottom: 20px;
}
main section#products div.list-products div.row div.text p.button {
	display: flex;
	text-indent: 0.05em;
	flex-wrap: wrap;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.05em;
}
main section#products div.list-products div.row:nth-child(2n+1) div.text p.button {
	justify-content: flex-end;
}
main section#products div.list-products div.row div.text p.button a {
	width: 160px;
	height: 40px;
	color: #fcfaf5;
	background-color: #696969;
	border-radius: 20px;
}
main section#products div.list-products div.row div.text p.button a::before {
	border-radius: 20px;
}
body.single-products section header {
	margin-bottom: 80px;
	padding-left: 60px;
}
body.single-products section header h2 {
	display: flex;
	flex-wrap: wrap;
	font-size: 3.75rem;
	font-weight: 500;
	line-height: 5.25rem;
}
body.single-products section header h2 span {
	color: transparent;
	background: linear-gradient(115deg, #4561d8, #57b2b2);
  -webkit-background-clip: text;
}
body.single-products section header p.sub {
	position: relative;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	padding-left: 60px;
}
body.single-products section header p.sub::before {
	position: absolute;
	width: 50px;
	height: 0px;
	left: 0px;
	top: 15px;
	border-bottom: 1px solid #404040;
	content: "";
}
body.single-products main section:not(#summary):not(#feature):not(#misc) div.content {
	padding-left: 60px;
}
body.single-products main section div.block {
	position: relative;
}
body.single-products main section div.block:not(:last-child) {
	margin-bottom: 120px;
}
body.single-products main section div.block-border:not(:last-child) {
	border-bottom: 1px solid #e2e2e2;
	margin-bottom: 80px;
	padding-bottom: 80px;
}
body.single-products main section div.block-over-left {
	margin-left: -60px;
}
body.single-products main section div.header {
	margin-bottom: 60px;
}
body.single-products main section div.header h3 {
	font-size: 2rem;
	font-weight: 700;
	line-height: 2.5rem;
	letter-spacing: 0.05em;
}
body.single-products main section div.header h3:not(:last-child) {
	margin-bottom: 20px;
}
/* body.single-products main section div.list-common div.row {
	overflow: hidden;
	padding: 40px;
	background-color: #ffffff;
	border-radius: 10px;
	box-shadow: 2.5px 2.5px 7.5px rgba(0, 0, 0, 0.05);
} */
/* body.single-products main section div.list-common div.row {
	width: 630px;
}
body.single-products main section div.list-common div.row-narrow {
	width: 580px;
}
body.single-products main section div.list-common div.row-wide {
	width: 730px;
} */
body.single-products main section div.list-common div.row {
	padding: 0px 40px;
}
body.single-products main section div.list-common div.row:not(:last-child) {
	border-bottom: 1px solid #e2e2e2;
	margin-bottom: 60px;
	padding-bottom: 60px;
}
/* body.single-products main section div.list-common div.row:nth-child(2n) {
	margin-left: auto;
	margin-right: 0px;
} */
body.single-products main section div.list-common div.row h4,
body.single-products main section div.list-common div.row p.description {
	margin-bottom: 20px;
}
body.single-products main section div.list-common div.row h4 {
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 2.25rem;
}
body.single-products main section div.list-common div.row h4 span {
	display: inline-block;
	font-size: 1.125rem;
	line-height: 1.5rem;
	margin-right: 10px;
	transform: translateY(1px);
}
body.single-products main section div.list-common div.row p.image,
body.single-products main section div.list-common div.row p.diagram {
	margin-left: auto;
	margin-right: auto;
}
body.single-products main section div.list-point {
	position: relative;
}
body.single-products main section div.list-point div.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 320px;
	height: 320px;
	text-align: center;
	border-radius: 50%;
}
body.single-products main section div.list-point div.row-large {
	width: 400px;
	height: 400px;
}
body.single-products main section div.list-point div.row h5,
body.single-products main section div.list-point div.row p {
	font-weight: 700;
}
body.single-products main section div.list-point div.row h5 {
	font-size: 1.25rem;
	border-bottom: 1px solid #696969;
	margin-bottom: 10px;
	padding-bottom: 10px;
}
body.single-products main section div.list-point div.row h5 span {
	display: block;
	font-size: 0.875rem;
	font-weight: 500;
}
body.single-products main section div.list-point div.row dl dt {
	font-weight: 700;
	margin-bottom: 5px;
}
body.single-products main section div.list-point div.row dl dd {
	font-size: 0.875rem;
	line-height: 1.5rem;
	color: #999999;
}
body.single-products main section div.list-point div.row dl dd:not(:last-child) {
	margin-bottom: 10px;
}
body.single-products main section div.list-works {
	margin-bottom: -20px;
}
body.single-products main section div.list-works div.row {
	margin-bottom: 20px;
}
body.single-products main section div.list-works div.row p.image {
	margin-bottom: 0px;
}
body.single-products main section div.list-works div.row div.text {
	display: none;
}
body.single-products main section table caption {
	position: relative;
	text-align: left;
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	padding-bottom: 10px;
}
body.single-products main section table caption span {
	font-size: 1rem;
	font-weight: 400;
}
body.single-products main section table caption span.right {
	position: absolute;
	right: 0px;
	top: 0px;
}
body.single-products main section table th,
body.single-products main section table td {
	vertical-align: middle;
	font-size: 0.875rem;
	line-height: 1.125rem;
}
body.single-products main section table th.left,
body.single-products main section table td.left {
	text-align: left;
}
body.single-products main section table th.right,
body.single-products main section table td.right {
	text-align: right;
}
body.single-products main section table thead th,
body.single-products main section table tbody td {
	text-align: center;
	border-top: 1px solid #e2e2e2;
	border-bottom: 1px solid #e2e2e2;
	padding: 10px 0px;
}
body.single-products main section table thead th:not(:last-child),
body.single-products main section table thead th.border,
body.single-products main section table tbody td:not(:last-child),
body.single-products main section table tbody td.border {
	border-right: 1px solid #e2e2e2;
}
body.single-products main section table tfoot td {
	line-height: 1.25rem;
	padding-top: 10px;
}
body.single-products main section table tfoot td p.example {
	position: relative;
	padding-left: 2em;
}
body.single-products main section table tfoot td p.example::before {
	position: absolute;
	left: 0px;
	top: 0px;
	content: "例）";
}
body.single-products main section table tfoot td p.example-calculation {
	position: relative;
	padding-left: 4.5em;
}
body.single-products main section table tfoot td p.example-calculation::before {
	position: absolute;
	left: 0px;
	top: 0px;
	content: "［計算例］";
}
body.single-products main section table tfoot td sup {
	font-size: 0.625rem;
	line-height: 1rem;
}
body.single-products main p.button-catalog {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	text-indent: 0.05em;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: 120px;
}
body.single-products main p.button-catalog a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: relative;
	width: 620px;
	height: 100px;
	color: #fcfaf5;
	margin: auto;
	padding-right: 70px;
	background-color: #7db7db;
	border-radius: 10px;
}
body.single-products main p.button-catalog a span.arrow {
	position: absolute;
	width: 50px;
	height: 50px;
	right: 40px;
	top: calc(50% - 25px);
	color: #7db7db;
	background-color: #fcfaf5;
}
body.single-products main p.button-catalog a:hover span.arrow {
	color: #fcfaf5;
}
body.single-products main nav#navi-article {
	margin-top: 0px;
}
body.single-products main nav#navi-article ul li.prev,
body.single-products main nav#navi-article ul li.next {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	height: 50px;
}
body.single-products main nav#navi-article ul li.prev a,
body.single-products main nav#navi-article ul li.next a {
	position: relative;
	transition: 0.25s color ease;
}
body.single-products main nav#navi-article ul li.prev a:hover,
body.single-products main nav#navi-article ul li.next a:hover {
	color: #404040;
}
body.single-products main nav#navi-article ul li.prev a::before,
body.single-products main nav#navi-article ul li.next a::before {
	position: absolute;
	width: 70px;
	height: 0px;
	top: 50%;
	border-bottom: 1px solid #696969;
	content: "";
}
body.single-products main nav#navi-article ul li.prev a::before {
	left: 100px;
}
body.single-products main nav#navi-article ul li.next a::before {
	right: 100px;
}
main section#summary p.sub,
main section#summary h2 {
	text-align: left;
	letter-spacing: 0.05em;
}
main section#summary p.sub {
	font-size: 1.125rem;
	margin-bottom: 10px;
}
main section#summary h2 {
	font-size: 2rem;
	font-weight: 700;
	line-height: 2.5rem;
	margin-bottom: 40px;
}
main section#feature div.development,
main section#feature div.pass {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: -200px;
	text-align: center;
	font-size: 0.875rem;
	line-height: 1.5rem;
	border: 1px solid #696969;
	border-radius: 50%;
}
main section#feature div.development {
	width: 200px;
	height: 200px;
	right: 140px;
}
main section#feature div.pass {
	width: 260px;
	height: 260px;
	right: 110px;
	padding-bottom: 20px;
}
main section#feature div.development p,
main section#feature div.pass p {
	font-weight: 500;
}
main section#feature div.pass p {
	border-bottom: 1px solid #696969;
	margin-bottom: 10px;
	padding-bottom: 10px;
}
main section#feature div.pass ul {
	color: #999999;
}
main section#feature div.list {
	margin: 0px -20px -20px 0px;
}
main section#feature div.list div.row {
	width: calc(50% - 20px);
	min-height: 192px;
	margin: 0px 20px 20px 0px;
	padding: 40px;
	background-color: #ffffff;
	border-radius: 10px;
	box-shadow: 2.5px 2.5px 7.5px rgba(0, 0, 0, 0.05);
}
main section#feature div.list div.row:nth-child(2) {
	margin-top: 120px;
}
main section#feature div.list div.row h3 {
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 2.25rem;
	margin-bottom: 20px;
}
main section#feature div.list div.row h3 span {
	display: inline-block;
	font-size: 1.125rem;
	line-height: 1.5rem;
	margin-right: 10px;
	transform: translateY(1px);
}
main section#feature div.list div.row p.description:not(:last-child),
main section#feature div.list div.row p.image:not(:last-child),
main section#feature div.list div.row p.diagram:not(:last-child) {
	margin-bottom: 20px;
}
main section#feature div.list div.row p.caption {
	text-align: center;
	font-size: 0.875rem;
	line-height: 1.25rem;
}
main section#feature div.list div.row dl dt {
	font-weight: 700;
	margin-bottom: 5px;
}
main section#feature div.list div.row dl dd:not(:last-child) {
	margin-bottom: 10px;
}
main section#feature div.image {
	display: flex;
	flex-wrap: wrap;
}
main section#feature div.image-one {
	justify-content: center;
}
main section#feature div.image-two-left {
	padding-right: 200px;
}
main section#feature div.image-two-right {
	padding-left: 200px;
}
main section#feature div.image-two-separate {
	justify-content: space-between;
}
main section#feature div.image-one p.row {
	width: 630px;
}
main section#feature div.image-two p.row {
	width: 50%;
}
main section#feature div.image-two-separate p.row:nth-child(1) {
	width: calc(100% - 290px);
}
main section#feature div.image-two-separate p.row:nth-child(2) {
	width: 280px;
}
main section#feature div.image-three p.row {
	width: 33.33%;
}
main section#feature div.image p.row img {
	width: 100%;
	height: auto;
}
main section#feature div.detail {
	position: relative;
	color: #696969;
	padding: 80px 0px 80px 80px;
}
main section#feature div.detail::before {
	position: absolute;
	width: calc(100% + 160px);
	height: 100%;
	left: 0px;
	top: 0px;
	background-color: #e4eef2;
	content: "";
	border-radius: 20px;
}
main section#feature div.detail div.inner-detail:not(:last-child) {
	position: relative;
}
main section#feature div.detail div.header,
main section#feature div.detail div.list-detail:not(:last-child),
main section#feature div.detail div.list-point-03:not(:last-child),
main section#feature div.detail p.image-03:not(:last-child) {
	margin-bottom: 60px;
}
main section#feature div.detail div.header,
main section#feature div.detail div.list-detail {
	position: relative;
}
main section#feature div.detail div.header {
	font-weight: 700;
	letter-spacing: 0.05em;
}
main section#feature div.detail div.header p.sub {
	display: flex;
	flex-wrap: wrap;
	font-size: 1.25rem;
	line-height: 2.25rem;
	margin-bottom: 10px;
}
main section#feature div.detail div.header p.sub span {
	display: block;
	border-bottom: 2px solid #696969;
}
main section#feature div.detail div.header h3 {
	font-size: 1.625rem;
	line-height: 2.5rem;
	letter-spacing: 0.05em;
}
main section#feature div.detail div.list-detail div.row {
	width: 300px;
}
main section#feature div.detail div.list-detail div.row:not(:last-child) {
	margin-bottom: 20px;
}
main section#feature div.detail div.list-detail div.row h4,
main section#feature div.detail div.list-detail div.row p {
	padding-left: 20px;
}
main section#feature div.detail div.list-detail div.row h4 {
	position: relative;
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: 5px;
}
main section#feature div.detail div.list-detail div.row h4::before {
	position: absolute;
	width: 15px;
	height: 15px;
	left: 0px;
	top: 8px;
	background-color: #696969;
	content: "";
	border-radius: 50%;
}
main section#feature div.detail div.list-point div.row {
	background-color: #fcfaf5;
}
main section#feature div.detail div.list-point-01 {
	height: 640px;
}
main section#feature div.detail div.list-point-03 {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
main section#feature div.detail div.list-point-01 div.row,
main section#feature div.detail div.list-point-02 div.row {
	position: absolute;
}
main section#feature div.detail div.list-point-01 div.row:nth-child(1) {
	left: 380px;
	top: -440px;
}
main section#feature div.detail div.list-point-01 div.row:nth-child(2) {
	left: 80px;
	top: -40px;
}
main section#feature div.detail div.list-point-01 div.row:nth-child(3) {
	left: 460px;
	top: 20px;
}
main section#feature div.detail div.list-point-01 div.row:nth-child(4) {
	left: 160px;
	top: 320px;
}
main section#feature div.detail div.list-point-02 div.row {
	left: 420px;
	top: -380px;
}
main section#feature div.detail div.list-point-03 div.row:nth-child(1) {
	margin-right: 60px;
}
main section#feature div.detail div.list-point-03 div.row:nth-child(2) {
	margin-top: 100px;
}
main section#feature div.detail p.image-01 {
	position: absolute;
	width: 450px;
	right: -60px;
	top: 120px;
}
main section#feature div.detail p.image-02,
main section#feature div.detail p.image-03 {
	position: relative;
}
main section#feature div.detail p.image-02 {
	width: 650px;
}
main section#feature div.detail p.image-03 {
	width: 350px;
}
main section#feature div.detail div.image-caption {
	position: absolute;
	width: 320px;
	right: 0px;
	top: 120px;
}
main section#feature div.detail div.image-caption p.image {
	margin-bottom: 20px;
}
main section#feature div.detail div.image-caption p.caption {
	text-align: center;
}
main section#feature div.detail div.reason,
main section#feature div.detail div.comparison {
	position: relative;
	padding: 40px;
	background-color: #fcfaf5;
}
main section#feature div.detail div.reason {
	margin-bottom: 20px;
}
main section#feature div.detail div.reason h4,
main section#feature div.detail div.comparison h4 {
	position: relative;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 2.25rem;
	margin-bottom: 20px;
	padding-left: 60px;
}
main section#feature div.detail div.reason h4::before,
main section#feature div.detail div.comparison h4::before {
	position: absolute;
	width: 50px;
	height: 0px;
	left: 0px;
	top: 17px;
	border-bottom: 1px solid #696969;
	content: "";
}
main section#feature div.detail div.reason div.list-diagram {
	display: flex;
	flex-wrap: wrap;
	padding: 0px 40px;
}
main section#feature div.detail div.reason div.list-diagram ul {
	width: calc(100% - 215px);
	padding-top: 40px;
}
main section#feature div.detail div.reason div.list-diagram ul li {
	font-weight: 500;
}
main section#feature div.detail div.reason div.list-diagram ul li:not(:last-child) {
	margin-bottom: 5px;
}
main section#feature div.detail div.reason div.list-diagram ul li::before {
	background-color: #696969;
}
main section#feature div.detail div.reason div.list-diagram p.diagram {
	width: 215px;
}
main section#feature div.detail div.comparison div.list-comparison {
	display: flex;
	flex-wrap: wrap;
	margin-right: -20px;
}
main section#feature div.detail div.comparison div.list-comparison div.row-comparison {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	width: calc(50% - 20px);
	margin-right: 20px;
}
main section#feature div.detail div.comparison div.list-comparison div.row-comparison p.image {
	width: 190px;
}
main section#feature div.detail div.comparison div.list-comparison div.row-comparison div.text {
	width: calc(100% - 210px);
}
main section#feature div.detail div.comparison div.list-comparison div.row-comparison div.text h5 {
	font-size: 1.125rem;
	font-weight: 700;
	margin-bottom: 20px;
}
main section#feature div.block-shape-kind {
	padding-left: 60px;
}
main section#feature div.block-shape-kind div.segment:not(:last-child) {
	margin-bottom: 60px;
}
main section#feature div.block-shape-kind div.segment h4 {
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 2.25rem;
	margin-bottom: 40px;
}
main section#feature div.block-shape-kind div.segment div.diagram-image {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
main section#feature div.block-shape-kind div.segment div.diagram-image p.diagram {
	width: 360px;
}
main section#feature div.block-shape-kind div.segment div.diagram-image p.image {
	width: calc(100% - 380px);
}
main section#feature div.block-shape-kind div.segment div.table-wrapper {
	margin-bottom: 40px;
}
main section#feature div.block-shape-kind div.segment table {
	width: 400px;
}
main section#feature div.block-shape-kind div.segment table thead th:nth-child(1) {
	width: 100px;
}
main section#feature div.block-shape-kind div.segment table thead th:nth-child(2),
main section#feature div.block-shape-kind div.segment table thead th:nth-child(3) {
	width: 150px;
}
main section#feature div.block-shape-kind div.segment div.kind {
	padding: 40px;
	background-color: #ffffff;
	border-radius: 10px;
}
main section#feature div.block-shape-kind div.segment div.kind h5 {
	position: relative;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 2.25rem;
	margin-bottom: 40px;
	padding-left: 60px;
}
main section#feature div.block-shape-kind div.segment div.kind h5::before {
	position: absolute;
	width: 50px;
	height: 0px;
	left: 0px;
	top: 17px;
	border-bottom: 1px solid #696969;
	content: "";
}
main section#feature div.block-shape-kind div.segment div.kind div.list-kind {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -40px -40px 0px;
}
main section#feature div.block-shape-kind div.segment div.kind div.list-kind div.row {
	width: calc(50% - 40px);
	margin: 0px 40px 40px 0px;
}
main section#feature div.block-shape-kind div.segment div.kind div.list-kind div.row p.headline {
	font-size: 1.125rem;
	font-weight: 700;
	margin-bottom: 5px;
}
main section#spec div.list-diagram {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -40px -40px 0px;
}
main section#spec div.list-diagram div.row {
	width: calc(50% - 40px);
	margin: 0px 40px 40px 0px;
}
main section#spec div.list-diagram div.row h4,
main section#spec div.list-size div.row div.list-nest div.row-nest h4 {
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 2.25rem;
	margin-bottom: 20px;
}
main section#spec div.list-diagram div.row h4 span,
main section#spec div.list-size div.row div.list-nest div.row-nest h4 span {
	display: inline-block;
	font-size: 1.125rem;
	line-height: 1.5rem;
	margin-right: 10px;
	transform: translateY(1px);
}
main section#spec div.list-size div.row {
	padding: 0px 40px;
}
main section#spec div.list-size div.row:not(:last-child) {
	border-bottom: 1px solid #e2e2e2;
	margin-bottom: 60px;
	padding-bottom: 60px;
}
main section#spec div.list-size div.row h3 {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 2.5rem;
	letter-spacing: 0.05em;
	margin-bottom: 20px;
}
main section#spec div.list-size div.row h3 span {
	font-size: 2.5rem;
}
main section#spec div.list-size div.row div.list-nest {
	display: flex;
	flex-wrap: wrap;
	margin-right: -15px;
}
main section#spec div.list-size div.row div.list-nest div.row-nest {
	width: calc(33.33% - 15px);
	margin-right: 15px;
}
main section#spec div.list-point-01 {
	height: 700px;
}
main section#spec div.list-point-01 div.row {
	position: absolute;
	background-color: #ffffff;
}
main section#spec div.list-point-01 div.row:nth-child(1) {
	left: 0px;
	top: 0px;
}
main section#spec div.list-point-01 div.row:nth-child(2) {
	left: 380px;
	top: 80px;
}
main section#spec div.list-point-01 div.row:nth-child(3) {
	left: 120px;
	top: 380px;
}
main section#spec div.column {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
main section#spec div.column-02 {
	padding-right: 60px;
}
main section#spec div.column-01 div.left {
	width: calc(100% - 390px);
}
main section#spec div.column-01 div.right {
	width: 390px;
}
main section#spec div.column-02 div.right {
	width: 360px;
}
main section#spec div.column-01 div.right div.image {
	display: block;
}
main section#spec div.column div.right div.image p.row:not(:last-child) {
	margin-bottom: 20px;
}
main section#spec div.column div.right div.image p.row img,
main section#spec div.column div.right div.diagram p.row img {
	width: 100%;
	height: auto;
}
main section#spec div.column div.right div.diagram p.row:not(:last-child) {
	margin-bottom: 40px;
}
main section#spec div.image {
	display: flex;
	flex-wrap: wrap;
}
main section#spec div.image-two p.row {
	width: 50%;
}
main section#spec p.diagram-extra-wide {
	width: 650px;
}
main section#spec p.image-wide,
main section#spec p.diagram-wide {
	width: 600px;
}
main section#spec p.image-wide-alternate,
main section#spec p.diagram-wide-alternate {
	width: 620px;
}
main section#spec p.image-medium,
main section#spec p.diagram-medium,
main section#example p.diagram-medium {
	width: 550px;
}
main section#spec p.image-narrow,
main section#spec p.diagram-narrow,
main section#special p.diagram-narrow,
main section#combined p.diagram-narrow,
main section#example p.diagram-narrow {
	width: 500px;
}
main section#spec p.image-narrow-alternate,
main section#spec p.diagram-narrow-alternate {
	width: 450px;
}
main section#spec p.image-extra-narrow,
main section#spec p.diagram-extra-narrow,
main section#combined p.diagram-extra-narrow {
	width: 400px;
}
main section#spec p.image-extra-narrow-alternate,
main section#spec p.diagram-extra-narrow-alternate {
	width: 340px;
}
main section#spec p.image span.caption,
main section#spec p.diagram span.caption {
	display: block;
	font-size: 1.125rem;
	font-weight: 500;
	margin-bottom: 10px;
}
body.arch-drain main section#spec table.size-01,
body.arch-roofing main section#spec table.size-01,
body.side-drain main section#spec table.size-01,
body.rec-drain main section#spec table.size-01,
body.elasto-drain main section#spec table.size-01,
body.arch-drain-surface-drain main section#spec table.size-01,
body.arch-roofing-surface-drain main section#spec table.size-01,
body.arch-panel main section#spec table.size-01,
body.bury-drain main section#spec table.structure-01 {
	width: 400px;
}
body.seal-drain main section#spec table.size-01,
body.mitsuba-drain main section#spec table.size-01,
body.bury-drain main section#spec table.size-02,
body.mitsuba-drain main section#spec table.cross-01 {
	width: 300px;
}
body.slope-drain main section#spec table.size-03 {
	width: 380px;
}
body.bury-drain main section#spec table.amount-01 {
	width: 775px;
}
body.bury-drain main section#spec table.amount-02 {
	width: 425px;
}
body.seal-drain main section#spec table.material-01 {
	width: 650px;
}
body.slope-drain main section#spec table.material-02 {
	width: 675px;
}
body.arch-panel main section#spec table.standard-01,
body.mitsuba-drain main section#spec table.drain-01 {
	width: 600px;
}
body.mitsuba-drain main section#spec table.use-01 {
	width: 625px;
}
body.driven-in-drain main section#spec table.drain-02,
body.mizuderun main section#spec table.drain-02 {
	width: 450px;
}
body.slope-drain main section#spec table.drain-03 {
	width: 750px;
}
body.mitsuba-drain main section#spec table.drain-04 {
	width: 525px;
}
main section#spec table.performance-01 tbody td:nth-child(1),
main section#spec table.size-01 thead th,
main section#spec table.size-02 thead th:nth-child(1),
main section#spec table.size-03 thead th:nth-child(1),
main section#spec table.size-03 thead tr:nth-child(1) th:nth-child(3),
main section#spec table.structure-01 thead th,
main section#spec table.material-01 thead th:nth-child(3),
main section#spec table.material-01 thead tr:nth-child(2) th,
main section#spec table.material-01 thead tr:nth-child(2) th,
main section#spec table.material-02 thead th:nth-child(2),
main section#spec table.cross-01 thead th {
	width: 100px;
}
main section#spec table.performance-01 tbody td:nth-child(2),
main section#spec table.size-02 thead th:nth-child(2),
main section#spec table.amount-01 thead th:nth-child(1),
main section#spec table.amount-02 thead th:nth-child(1),
main section#spec table.material-01 thead th:nth-child(1) {
	width: 200px;
}
main section#spec table.amount-01 thead th:nth-child(2),
main section#spec table.material-01 thead th:nth-child(2),
main section#spec table.material-02 thead th:nth-child(1),
main section#spec table.standard-01 thead th,
main section#spec table.drain-02 thead th,
main section#spec table.drain-03 thead th:nth-child(1),
main section#spec table.drain-03 thead th:nth-child(2),
main section#spec table.use-01 tbody tr:nth-child(1) td:nth-child(2) {
	width: 150px;
}
main section#spec table.amount-01 thead th:nth-child(3),
main section#spec table.material-02 thead th:nth-child(3) {
	width: 50px;
}
main section#spec table.size-03 thead tr:nth-child(2) th,
main section#spec table.amount-01 thead tr:nth-child(2) th,
main section#spec table.amount-02 thead th:nth-child(2),
main section#spec table.amount-02 thead th:nth-child(3),
main section#spec table.amount-02 thead th:nth-child(4),
main section#spec table.drain-01 thead th,
main section#spec table.drain-03 thead th:nth-child(3),
main section#spec table.drain-03 thead tr:nth-child(2) th:nth-child(1),
main section#spec table.drain-03 thead tr:nth-child(2) th:nth-child(2),
main section#spec table.drain-03 thead tr:nth-child(2) th:nth-child(3),
main section#spec table.drain-03 thead tr:nth-child(2) th:nth-child(4),
main section#spec table.drain-03 thead tr:nth-child(2) th:nth-child(5),
main section#spec table.drain-04 thead th,
main section#spec table.material-02 thead th:nth-child(4),
main section#spec table.material-02 thead th:nth-child(5),
main section#spec table.material-02 thead th:nth-child(6),
main section#spec table.material-02 thead th:nth-child(7),
main section#spec table.material-02 thead th:nth-child(8) {
	width: 75px;
}
main section#spec table thead th.separate {
	position: relative;
	overflow: hidden;
}
main section#spec table thead th.separate::before {
	position: absolute;
	width: 100px;
	height: 0px;
	left: calc(50% - 50px);
	top: calc(50% - 0.5px);
	border-bottom: 1px solid #e2e2e2;
	content: "";
	transform: rotate(25deg);
}
main section#spec table thead th.separate span {
	position: absolute;
}
main section#spec table thead th.separate span:nth-child(1) {
	right: 5px;
	top: 5px;
}
main section#spec table thead th.separate span:nth-child(2) {
	left: 5px;
	bottom: 5px;
}
main section#spec table.use-01 tbody tr:nth-child(1) td:nth-child(1) {
	width: 125px;
}
main section#spec table.use-01 tbody tr:nth-child(1) td:nth-child(3) {
	width: 300px;
}
main section#combined div.list-common div.row div.margin-side {
	padding: 0px 85px;
}
main section#combined div.list-common div.row p.image:not(:last-child) {
	margin-bottom: 40px;
}
main section#combined div.list-common div.row div.image,
main section#combined div.list-common div.row div.diagram,
main section#combined div.list-common div.row div.diagram-image {
	display: flex;
	flex-wrap: wrap;
	margin-right: -10px;
}
main section#combined div.list-common div.row div.image:not(:last-child),
main section#combined div.list-common div.row div.diagram:not(:last-child) {
	margin-bottom: 40px;
}
main section#combined div.list-common div.row div.image p.row,
main section#combined div.list-common div.row div.diagram p.row,
main section#combined div.list-common div.row div.diagram-image p.diagram,
main section#combined div.list-common div.row div.diagram-image p.image {
	margin-right: 10px;
}
main section#combined div.list-common div.row div.image p.row,
main section#combined div.list-common div.row div.diagram-image p.diagram,
main section#combined div.list-common div.row div.diagram-image p.image {
	width: calc(50% - 10px);
}
main section#combined div.list-common div.row div.image p.row img,
main section#combined div.list-common div.row div.diagram p.row img {
	height: auto;
	margin: auto;
}
main section#combined div.list-common div.row div.diagram p.row {
	width: calc(33.33% - 10px);
}
main section#products-alternate div.list div.row:not(:last-child) {
	margin-bottom: 120px;
}
main section#products-alternate div.list div.row h3 {
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 2.25rem;
	margin-bottom: 20px;
}
main section#products-alternate div.list div.row h3 span {
	display: inline-block;
	font-size: 1.125rem;
	line-height: 1.5rem;
	margin-right: 10px;
	transform: translateY(1px);
}
main section#products-alternate div.list div.row div.diagram-table-wrapper {
	display: flex;
	flex-wrap: wrap;
}
main section#products-alternate div.list div.row div.diagram-table-wrapper:not(:last-child) {
	margin-bottom: 20px;
}
main section#products-alternate div.list div.row div.diagram-table-wrapper p.diagram {
	width: 300px;
	margin-right: 60px;
}
main section#products-alternate div.list div.row div.diagram-table-wrapper div.table-wrapper {
	padding-top: 40px;
}
main section#products-alternate div.list div.row div.diagram-table-wrapper table {
	width: 400px;
}
main section#products-alternate div.list div.row div.diagram-table-wrapper table thead th:nth-child(1) {
	width: 130px;
}
main section#products-alternate div.list div.row div.diagram-table-wrapper table thead th:not(:nth-child(1)) {
	width: 90px;
}
main section#movie div.content {
	padding: 0px 120px;
}
main section#movie div.video-wrapper {
	margin-bottom: 60px;
}
main section#movie h3,
main section#movie p.description {
	margin-bottom: 20px;
}
main section#movie h3 {
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 2.25rem;
	letter-spacing: 0.05em;
}
main section#movie p.more,
main section#movie p.more a {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
}
main section#movie p.more a {
	align-items: center;
}
main section#movie p.more span.text {
	font-size: 0.875rem;
	font-weight: 700;
	border-bottom: 1px solid #404040;
	margin-right: 20px;
	transition: 0.25s border-color ease;
}
main section#movie p.more a:hover span.text {
	border-color: #999999;
}
main section#movie p.more span.arrow {
	width: 50px;
	height: 50px;
	color: #fcfaf5;
	background-color: #696969;
}
body.single-products main section#works div#tmp-works,
body.single-products main section#works div.list-works-wrapper div.list-works,
body.single-products main section#works div#pager {
	display: none;
}
body.single-products main section#works div.list-works-wrapper div.list-works.active {
	display: flex;
}
body.single-products main section#works div#pager.active {
	display: block;
}
body.single-products main section#works div#pager ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
body.single-products main section#works div#pager ul li {
	cursor: pointer;
}
body.single-products main section#works div#pager ul li.prev {
	margin-right: 40px;
	transform: scaleX(-1);
}
body.single-products main section#works div#pager ul li.next {
	margin-left: 40px;
}
body.single-products main section#works div#pager ul li.prev.disable,
body.single-products main section#works div#pager ul li.next.disable {
	display: none;
}
body.single-products main section#works div#pager ul li.number {
	margin: 0px 10px;
	transition: 0.25s color ease;
	color: #cccccc;
}
body.single-products main section#works div#pager ul li.number:hover,
body.single-products main section#works div#pager ul li.number.current {
	color: #404040;
}

/* works
-------------------------------------------------------------------------------- */

main section div.list-works {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -20px -40px 0px;
}
main section div.list-works div.row {
	width: calc(33.33% - 20px);
	margin: 0px 20px 40px 0px;
}
main section div.list-works div.row p.image {
	margin-bottom: 10px;
}
main section div.list-works div.row div.text {
	text-align: center;
}
main section div.list-works div.row div.text ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
main section div.list-works div.row div.text ul li {
	font-size: 0.875rem;
}
main section div.list-works div.row div.text ul li:not(:last-child)::after {
	margin: 0px 5px;
	content: "/";
}
main section div.list-works div.row div.text p.products {
	font-size: 1.125rem;
	font-weight: 700;
	margin-bottom: 5px;
}
main section div.list-works div.row div.text h3 {
	font-size: 0.875rem;
	font-weight: 500;
	color: #999999;
}

/* business
-------------------------------------------------------------------------------- */

main section.service div.summary {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}
main section.service div.summary p.image {
	overflow: visible;
	transform-origin: center top;
	transition: 0.25s transform ease;
}
main section.service div.summary p.image span {
	display: block;
	width: 520px;
	height: 520px;
	overflow: hidden;
	border-radius: 50%;
}
main section.service.open div.summary p.image {
	transform: scale(calc(440 / 520));
}
main section.service div.summary div.text {
	width: calc(100% - 560px);
}
main section.service div.summary div.text p.sub,
main section.service div.summary div.text h2 {
	font-weight: 700;
	letter-spacing: 0.05em;
}
main section.service div.summary div.text p.sub {
	font-size: 0.875rem;
	margin-bottom: 10px;
}
main section.service div.summary div.text h2 {
	font-size: 1.75rem;
	line-height: 2.75rem;
	margin-bottom: 20px;
}
main section.service div.summary div.text p.description {
	margin-bottom: 40px;
}
main section.service div.summary div.text p.button {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 160px;
	height: 40px;
	font-size: 0.875rem;
	font-weight: 500;
	cursor: pointer;
	color: #fcfaf5;
	border: 1px solid #696969;
	background-color: #696969;
	border-radius: 20px;
	transition: 0.25s color ease, 0.25s border-color ease, 0.25s background-color ease;
}
main section.service div.summary div.text p.button span:nth-child(1),
main section.service.open div.summary div.text p.button span:nth-child(2) {
	display: block;
}
main section.service.open div.summary div.text p.button span:nth-child(1),
main section.service div.summary div.text p.button span:nth-child(2) {
	display: none;
}
main section.service.open div.summary div.text p.button {
	color: #696969;
	background-color: transparent;
}
main section.service div.summary div.text p.button:hover,
main section.service.open div.summary div.text p.button:hover {
	color: #fcfaf5;
	border-color: #404040;
	background-color: #404040;
}
main section.service div.detail {
	position: relative;
	height: 0px;
	overflow: hidden;
	pointer-events: none;
	margin-left: calc(-50vw + 310px);
	margin-right: calc(-50vw + 550px);
}
main section.service.open div.detail {
	pointer-events: auto;
}
main section.service div.detail::before,
main section.service div.detail::after {
	position: absolute;
	width: 100vw;
	left: calc(50% - 50vw);
	top: 0px;
	content: "";
}
main section.service div.detail::before {
	height: 100%;
	background-color: #f4f1ea;
}
main section.service div.detail::after {
	height: 5px;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0) 100%);
}
main section.service div.detail div.inner-detail {
	position: relative;
	width: 1100px;
	margin: auto;
	padding: 100px 0px 100px 240px;
}
main section.service div.detail div.list div.row {
	position: relative;
	padding: 40px;
	background-color: #ffffff;
	border-radius: 10px;
	box-shadow: 2.5px 2.5px 7.5px rgba(0, 0, 0, 0.05);
}
main section.service div.detail div.list div.row:not(:last-child) {
	margin-bottom: 40px;
}
main section.service div.detail div.list div.row:nth-child(2n+1) {
	transform: translateX(-60px);
}
main section.service div.detail div.list div.row div.image-text {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
main section.service div.detail div.list div.row div.image-text p.image {
	width: 350px;
}
main section.service div.detail div.list div.row div.image-text div.text {
	width: calc(100% - 390px);
	padding-top: 40px;
}
main section.service div.detail div.list div.row div.image-text div.text h3 {
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 2.25rem;
	letter-spacing: 0.05em;
	margin-bottom: 30px;
}
main section.service div.detail div.list div.row p.button {
	position: absolute;
	right: 40px;
	bottom: 40px;
}
main section.service div.detail div.list div.row p.button a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 160px;
	height: 40px;
	font-size: 0.875rem;
	font-weight: 500;
	color: #fcfaf5;
	background-color: #696969;
	border-radius: 20px;
}
main section.service div.detail div.list div.row p.note {
	font-size: 0.875rem;
	padding-top: 20px;
}
main section#service-01 header {
	text-align: center;
	margin-bottom: 80px;
}
main section#service-01 header p.description {
	text-indent: 0.05em;
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 2.5rem;
	letter-spacing: 0.05em;
}
main section#service-01 div.summary,
main section#service-03 div.summary,
main section#service-05 div.summary {
	flex-direction: row-reverse;
	margin-right: -60px;
}
main section#service-02 div.summary,
main section#service-04 div.summary {
	margin-left: -60px;
}
main section#service-04 div.detail div.header {
	text-align: center;
	margin-bottom: 80px;
}
main section#service-04 div.detail div.header h3 {
	text-indent: 0.05em;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 2.75rem;
	letter-spacing: 0.05em;
	margin-bottom: 30px;
}
main section#service-04 div.detail div.header p.description {
	line-height: 2rem;
}
main section#service-04 div.detail div.segment {
	position: relative;
	width: 740px;
	margin-left: auto;
	margin-right: auto;
}
main section#service-04 div.detail div.segment:not(:last-child) {
	margin-bottom: 60px;
}
main section#service-04 div.detail div.segment-01,
main section#service-04 div.detail div.segment-03 {
	padding-top: 60px;
}
main section#service-04 div.detail div.segment-01 {
	padding-left: 250px;
}
main section#service-04 div.detail div.segment-02,
main section#service-04 div.detail div.segment-04 {
	padding-top: 180px;
}
main section#service-04 div.detail div.segment-03 {
	padding-left: 190px;
}
main section#service-04 div.detail div.segment-04 {
	padding-right: 60px;
}
main section#service-04 div.detail div.segment div.headline {
	position: absolute;
	width: 210px;
	height: 210px;
	top: 0px;
	text-align: center;
	font-weight: 700;
	padding-top: 55px;
	background-color: #c3e0eb;
	border-radius: 50%;
}
main section#service-04 div.detail div.segment-01 div.headline {
	left: 0px;
}
main section#service-04 div.detail div.segment-02 div.headline,
main section#service-04 div.detail div.segment-04 div.headline {
	right: 60px;
}
main section#service-04 div.detail div.segment-03 div.headline {
	left: -60px;
}
main section#service-04 div.detail div.segment div.headline p.number,
main section#service-04 div.detail div.segment div.headline h4 {
	font-size: 1.375rem;
	line-height: 2rem;
}
main section#service-04 div.detail div.segment div.headline h4:not(:last-child) {
	margin-bottom: 10px;
}
main section#service-04 div.detail div.segment div.headline p.sub {
	font-size: 0.875rem;
	line-height: 1.25rem;
}
main section#service-04 div.detail div.segment p.description {
	font-weight: 500;
	margin-bottom: 40px;
}
main section#service-04 div.detail div.segment-02 p.description,
main section#service-04 div.detail div.segment-04 p.description {
	padding-left: 60px;
}
main section#service-04 div.detail div.segment div.diagram-note {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}
main section#service-04 div.detail div.segment div.diagram-note p.diagram {
	width: 222px;
}
main section#service-04 div.detail div.segment div.diagram-note p.note {
	width: calc(100% - 262px);
}
main section#service-04 div.detail div.segment-04 div.table-wrapper {
	margin-bottom: 60px;
}
main section#service-04 div.detail div.segment-02 table {
	width: 720px;
}
main section#service-04 div.detail div.segment-04 table {
	width: 620px;
}
main section#service-04 div.detail div.segment table th,
main section#service-04 div.detail div.segment table td {
	text-align: center;
	font-size: 0.875rem;
	line-height: 1.5rem;
	border: 1px solid #999999;
	padding: 10px 20px;
}
main section#service-04 div.detail div.segment-02 table thead tr th:nth-child(1),
main section#service-04 div.detail div.segment-02 table thead tr th:nth-child(2),
main section#service-04 div.detail div.segment-04 table thead tr th:nth-child(2) {
	width: 140px;
}
main section#service-04 div.detail div.segment-02 table thead tr th:nth-child(3) {
	width: 440px;
}
main section#service-04 div.detail div.segment-04 table thead tr th:nth-child(1) {
	width: 60px;
}
main section#service-04 div.detail div.segment-04 table thead tr th:nth-child(3) {
	width: 420px;
}
main section#service-04 div.detail div.segment table tbody tr td:nth-child(3) {
	text-align: left;
}
main section#service-04 div.detail div.segment-04 div.list-flow {
	width: 400px;
	padding-left: 60px;
}
main section#service-04 div.detail div.segment div.list-flow div.row-flow {
	border-bottom: 1px solid #999999;
	padding: 20px;
}
main section#service-04 div.detail div.segment div.list-flow div.row-flow h5,
main section#service-04 div.detail div.segment div.list-flow div.row-flow p {
	padding-left: 30px;
}
main section#service-04 div.detail div.segment div.list-flow div.row-flow h5 {
	position: relative;
	font-size: 1.125rem;
	font-weight: 700;
	color: #57a2d1;
}
main section#service-04 div.detail div.segment div.list-flow div.row-flow h5:not(:last-child) {
	margin-bottom: 5px;
}
main section#service-04 div.detail div.segment div.list-flow div.row-flow h5 span {
	position: absolute;
	left: 0px;
	top: 0px;
}
main section#service-05 div.detail p.description {
	text-align: center;
	line-height: 2rem;
}
main section#flow {
	background-color: #696969;
}
main section#flow div.inner-section,
main section#contact-alternate div.inner-section {
	width: 800px;
	padding-left: 0px;
}
main section#flow header,
main section#contact-alternate header {
	text-align: center;
	text-indent: 0.05em;
	font-weight: 700;
	letter-spacing: 0.05em;
}
main section#flow header {
	color: #fcfaf5;
	margin-bottom: 80px;
}
main section#flow header h2 {
	font-size: 1.75rem;
	margin-bottom: 20px;
}
main section#flow header p.sub {
	font-size: 1.375rem;
}
main section#flow div.list {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -40px -80px 0px;
}
main section#flow div.list div.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: relative;
	width: calc(33.33% - 40px);
	height: 240px;
	text-align: center;
	text-indent: 0.05em;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin: 0px 40px 80px 0px;
	background: linear-gradient(135deg, #7db7db 12.5%, #67be8f 87.5%);
	border-radius: 10px;
}
main section#flow div.list div.row p.label {
	position: relative;
	font-size: 1.25rem;
	line-height: 1.625rem;
	margin-bottom: 50px;
}
main section#flow div.list div.row p.label::before {
	position: absolute;
	width: 50px;
	height: 0px;
	left: calc(50% - 25px);
	bottom: -25px;
	border-bottom: 1px solid #404040;
	content: "";
}
main section#flow div.list div.row p.headline {
	text-indent: 0.05em;
	font-size: 1.375rem;
	letter-spacing: 0.05em;
}
main section#flow div.list div.row p.arrow,
main section#flow div.list div.row p.arrow::before,
main section#flow div.list div.row p.line {
	position: absolute;
}
main section#flow div.list div.row:not(:last-child) p.arrow {
	width: 20px;
	height: 20px;
	transform: rotate(45deg);
}
main section#flow div.list div.row:nth-child(1) p.arrow,
main section#flow div.list div.row:nth-child(2) p.arrow,
main section#flow div.list div.row:nth-child(4) p.arrow,
main section#flow div.list div.row:nth-child(5) p.arrow {
	right: -10px;
	top: calc(50% - 10px);
	transform: scaleY(0.625);
}
main section#flow div.list div.row:nth-child(3) p.arrow {
	left: calc(50% - 10px);
	bottom: -10px;
	transform: scaleX(0.625);
}
main section#flow div.list div.row p.arrow::before {
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
	content: "";
	background-color: #67be8f;
	transform: rotate(45deg);
}
main section#flow div.list div.row:nth-child(3) p.line {
	position: absolute;
	width: calc(200% + 82px);
	height: 30px;
	left: calc(-200% + 39px);
	bottom: -70px;
	border-left: 2px dotted #f4f4f4;
	border-top: 2px dotted #f4f4f4;
}
main section#flow div.list div.row:nth-child(3) p.line::before {
	position: absolute;
	width: 0px;
	height: 20px;
	right: 0px;
	top: -20px;
	border-right: 2px dotted #f4f4f4;
	content: "";
}
main section#contact-alternate header {
	margin-bottom: 60px;
}
main section#contact-alternate header h2 {
	text-indent: 0.05em;
	font-size: 2.25rem;
	font-weight: 700;
}
main section#contact-alternate p.description {
	text-align: center;
	margin-bottom: 80px;
}
main section#contact-alternate div.button-wrapper {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
main section#contact-alternate div.button-wrapper p.button {
	width: calc(50% - 10px);
	text-align: center;
	text-indent: 0.05em;
	font-weight: 700;
	letter-spacing: 0.05em;
}
main section#contact-alternate div.button-wrapper p.button a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: relative;
	height: 120px;
	color: #fcfaf5;
	background: linear-gradient(135deg, #4561d8 -25%, #57b2b2);
	border-radius: 10px;
	transition: 0.25s color ease;
}
main section#contact-alternate div.button-wrapper p.button a:hover {
	color: #cccccc;
}
main section#contact-alternate div.button-wrapper p.button-tel a {
	padding-top: 5px;
}
main section#contact-alternate div.button-wrapper p.button span,
main section#contact-alternate div.button-wrapper p.button i {
	display: block;
}
main section#contact-alternate div.button-wrapper p.button-tel i.tel {
	font-size: 1.75rem;
}
main section#contact-alternate div.button-wrapper p.button-tel i.tel em {
	display: inline-block;
	font-size: 1.125rem;
	margin-right: 10px;
	transform: translateY(-3px);
}
main section#contact-alternate div.button-wrapper p.button-mail {
	font-size: 1.375rem;
	line-height: 2.25rem;
}
main section#contact-alternate div.button-wrapper p.button-mail a {
	padding-right: 60px;
}
main section#contact-alternate div.button-wrapper p.button span.arrow {
	position: absolute;
	width: 50px;
	height: 50px;
	right: 30px;
	top: calc(50% - 25px);
	color: #7db7db;
	background-color: #fcfaf5;
}
main section#contact-alternate div.button-wrapper p.button a:hover span.arrow {
	color: #fcfaf5;
}

/* about-us
-------------------------------------------------------------------------------- */

body.about-us section header {
	margin-bottom: 80px;
}
body.about-us section header h2 {
	display: flex;
	flex-wrap: wrap;
	font-size: 3.75rem;
	font-weight: 500;
	line-height: 5.25rem;
}
body.about-us section header h2 span {
	color: transparent;
	background: linear-gradient(115deg, #4561d8, #57b2b2);
  -webkit-background-clip: text;
}
body.about-us section header p.sub {
	position: relative;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	padding-left: 60px;
}
body.about-us section header p.sub::before {
	position: absolute;
	width: 50px;
	height: 0px;
	left: 0px;
	top: 15px;
	border-bottom: 1px solid #404040;
	content: "";
}
main section#statement header {
	padding-left: 200px;
}
main section#statement div.list {
	margin-bottom: 200px;
}
main section#statement div.list div.row:not(:last-child) {
	margin-bottom: 100px;
}
main section#statement div.list div.row:nth-child(1) {
	transform: translateX(40px);
}
main section#statement div.list div.row:nth-child(2) {
	transform: translateX(240px);
}
main section#statement div.list div.row:nth-child(3) {
	transform: translateX(-40px);
}
main section#statement div.list div.row h3,
main section#statement div.list div.row p.description {
	opacity: 0;
	transition: 1s opacity ease-in-out, 1s transform ease;
}
main section#statement div.list div.row.active h3,
main section#statement div.list div.row.active p.description {
	opacity: 1;
	transform: translateX(0px);
}
main section#statement div.list div.row h3 {
	font-size: 6.75rem;
	font-weight: 700;
	line-height: 7.25rem;
	color: #e4eef2;
	transform: translateX(-60px);
}
main section#statement div.list div.row p.description {
	position: relative;
	z-index: 1;
	font-size: 1.625rem;
	font-weight: 700;
	line-height: 2.5rem;
	letter-spacing: 0.075em;
	margin-top: -30px;
	padding-left: 120px;
	transition-delay: 0.375s;
	transform: translateX(20px);
}
main section#statement div.guideline h3 {
	text-align: center;
	text-indent: 0.075em;
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 2.25rem;
	letter-spacing: 0.075em;
}
main section#statement div.guideline ul {
	position: relative;
	height: 380px;
}
main section#statement div.guideline ul li {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: absolute;
	width: 280px;
	height: 280px;
	font-size: 1.25rem;
	font-weight: 700;
	color: #fcfaf5;
	letter-spacing: 0.075em;
	padding-left: 10px;
	background: linear-gradient(135deg, #419bd3, #5fb9b5);
	border-radius: 50%;
	opacity: 0;
	transition: 1s opacity ease-in-out, 1s transform ease;
	transform: scale(0.875);
}
main section#statement div.guideline ul.active li {
	opacity: 1;
	transform: scale(1);
}
main section#statement div.guideline ul li:nth-child(1) {
	left: 0px;
	top: -80px;
}
main section#statement div.guideline ul li:nth-child(2) {
	transition-delay: 0.25s;
	left: 280px;
	bottom: 0px;
}
main section#statement div.guideline ul li:nth-child(3) {
	transition-delay: 0.5s;
	right: 0px;
	top: -30px;
}
main section#top-message p.image-small {
	display: none;
}
main section#top-message h3 {
	font-size: 1.625rem;
	font-weight: 500;
	line-height: 2.5rem;
	margin-bottom: 40px;
}
main section#top-message div.image-text {
	display: flex;
	flex-wrap: wrap;
	flex-direction: row-reverse;
	justify-content: space-between;
}
main section#top-message div.image-text p.image {
	width: 340px;
}
main section#top-message div.image-text div.text {
	width: calc(100% - 400px);
}
main section#top-message div.image-text div.text p.description {
	margin-bottom: 80px;
}
main section#top-message div.image-text div.text p.name {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
}
main section#top-message div.image-text div.text p.name span {
	display: block;
}
main section#top-message div.image-text div.text p.name span.sub {
	font-size: 0.875rem;
	line-height: 1.25rem;
	margin-right: 30px;
}
main section#top-message div.image-text div.text p.name span.main {
	font-size: 1.625rem;
	font-weight: 500;
	letter-spacing: 0.1em;
}
main section#company-profile header,
main section#company-profile div.content {
	padding-left: 120px;
}
main section#company-profile table {
	width: 100%;
	margin-bottom: 100px;
}
main section#company-profile table th,
main section#company-profile table td,
main section#history table th,
main section#history table td {
	vertical-align: middle;
	border-bottom: 1px solid #e2e2e2;
	padding-bottom: 20px;
}
main section#company-profile table tr:not(:first-child) th,
main section#company-profile table tr:not(:first-child) td,
main section#history table tr:not(:first-child) th,
main section#history table tr:not(:first-child) td {
	padding-top: 20px;
}
main section#company-profile table td ol {
	padding-left: 20px;
}
main section#company-profile table td ol li {
	list-style-type: decimal;
}
main section#company-profile p.image {
	margin-left: -120px;
	border-radius: 10px;
}
main section#history div.content {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
}
main section#history table {
	width: calc(50% - 20px);
}
main section#history table th,
main section#history table td {
	height: calc(3.5rem + 40px);
}
main section#history table th {
	width: 100px;
}
main section#office-factory header {
	padding-left: 200px;
}
main section#office-factory div.list div.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	overflow: hidden;
	background-color: #ffffff;
	border-radius: 10px;
}
main section#office-factory div.list div.row:not(:last-child) {
	margin-bottom: 20px;
}
main section#office-factory div.list div.row div.text {
	width: calc(100% - 480px);
	padding-left: 60px;
}
main section#office-factory div.list div.row div.text h3 {
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 10px;
}
main section#office-factory div.list div.row div.map {
	width: 480px;
	height: 340px;
}
main section#office-factory div.list div.row div.map iframe {
	width: 100%;
	height: 100%;
}

/* news, column
-------------------------------------------------------------------------------- */

main section div.list-news-column div.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}
main section div.list-news-column div.row:not(:last-child) {
	margin-bottom: 60px;
}
main section div.list-news-column div.row p.image {
	aspect-ratio: 350 / 230;
	width: 350px;
}
main section div.list-news-column div.row div.text {
	width: calc(100% - 390px);
}
main section div.list-news-column div.row div.text div.created-category,
main section div.list-news-alternate div.row div.created-category,
main section div.list-column-alternate div.row div.created-category,
main section article.news-column header div.created-category {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}
main section div.list-news-column div.row div.text div.created-category {
	margin-bottom: 10px;
}
main section div.list-news-column div.row div.text div.created-category p.created,
main section div.list-news-alternate div.row div.created-category p.created,
main section div.list-column-alternate div.row div.created-category p.created,
main section article.news-column header div.created-category p.created {
	width: 100px;
	font-size: 0.875rem;
	font-weight: 500;
}
main section div.list-news-column div.row div.text div.created-category p.created:has(span),
main section div.list-news-alternate div.row div.created-category p.created:has(span),
main section div.list-column-alternate div.row div.created-category p.created:has(span),
main section article.news-column header div.created-category p.created:has(span) {
	width: 220px;
}
main section div.list-news-column div.row div.text div.created-category p.created span,
main section div.list-news-alternate div.row div.created-category p.created span,
main section div.list-column-alternate div.row div.created-category p.created span,
main section article.news-column header div.created-category p.created span {
	margin-left: 5px;
}
main section div.list-news-column div.row div.text div.created-category p.category,
main section div.list-news-alternate div.row div.created-category p.category,
main section div.list-column-alternate div.row div.created-category p.category,
main section article.news-column header div.created-category p.category {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	height: 25px;
	overflow: hidden;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1rem;
	color: #fcfaf5;
	padding: 0px 10px;
	background-color: #7db7db;
	border-radius: 12.5px;
}
main section div.list-news-column div.row div.text div.created-category p.category:not(:last-child),
main section div.list-news-alternate div.row div.created-category p.category:not(:last-child),
main section div.list-column-alternate div.row div.created-category p.category:not(:last-child),
main section article.news-column header div.created-category p.category:not(:last-child) {
	margin-right: 5px;
}
main section div.list-news-column div.row div.text h3 {
	font-size: 1rem;
	font-weight: 500;
	margin-bottom: 20px;
}
main section div.list-news-column div.row div.text h3 a {
	display: block;
	position: relative;
	padding-right: 45px;
}
main section div.list-news-column div.row div.text h3 span.arrow,
main section div.list-news-alternate div.row h3 span.arrow,
main section div.list-column-alternate div.row h3 span.arrow {
	position: absolute;
	width: 35px;
	height: 35px;
	right: 0px;
	bottom: 0px;
	font-size: 0.5rem;
}
main section div.list-news-column div.row div.text h3 span.arrow,
main section div.list-column-alternate div.row h3 span.arrow {
	color: #fcfaf5;
	background-color: #696969;
}
main section div.list-news-column div.row div.text p.more-small {
	display: none;
}
main section div.list-news-alternate div.row,
main section div.list-column-alternate {
	display: flex;
	flex-wrap: wrap;
}
main section div.list-news-alternate div.row {
	align-items: center;
	border-bottom: 1px solid #f0f5f7;
	padding-bottom: 30px;
}
main section div.list-news-alternate div.row:not(:last-child) {
	margin-bottom: 30px;
}
main section div.list-news-alternate div.row div.created-category {
	width: 230px;
}
main section div.list-news-alternate div.row h3 {
	width: calc(100% - 230px);
	font-size: 1rem;
}
main section div.list-news-alternate div.row h3 a {
	display: block;
	position: relative;
	padding-right: 45px;
}
main section div.list-news-alternate div.row h3 span.arrow {
	color: #7db7db;
	background-color: #fcfaf5;
}
main section div.list-news-alternate div.row h3 a:hover span.arrow {
	color: #fcfaf5;
}
main section div.list-column-alternate {
	margin: 0px -20px -40px 0px;
}
main section div.list-column-alternate div.row {
	width: calc(33.33% - 20px);
	margin: 0px 20px 40px 0px;
}
main section div.list-column-alternate div.row p.image {
	aspect-ratio: 350 / 230;
	margin-bottom: 20px;
}
main section div.list-column-alternate div.row div.created-category {
	margin-bottom: 5px;
	padding: 0px 20px;
}
main section div.list-column-alternate div.row h3 {
	font-size: 1rem;
	padding-left: 20px;
}
main section div.list-column-alternate div.row h3 a {
	display: block;
	position: relative;
	min-height: 3.5rem;
	padding-right: 45px;
}
main section article.news-column {
	width: 800px;
	margin: auto;
}
main section article.news-column header {
	margin-bottom: 30px;
}
main section article.news-column header div.created-category {
	margin-bottom: 20px;
}
main section article.news-column header h1 {
	text-align: left;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 2.5rem;
	letter-spacing: 0.05em;
}

/* sustainability
-------------------------------------------------------------------------------- */

body.sustainability main section div.content {
	padding-left: 60px;
}
body.sustainability main section h2 {
	position: relative;
	font-size: 1.5rem;
	font-weight: 500;
	margin-bottom: 40px;
	padding-left: 60px;
}
body.sustainability main section h2::before {
	position: absolute;
	width: 50px;
	height: 0px;
	left: 0px;
	top: 15px;
	border-bottom: 1px solid #696969;
	content: "";
}
main section#basic div.content,
main section#contribution div.content {
	padding-right: 200px;
}
main section#basic div.headline-symbol {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	margin: 0px -20px 60px -40px;
}
main section#basic div.headline-symbol p.headline {
	width: calc(100% - 320px);
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 4rem;
	letter-spacing: 0.05em;
}
main section#basic div.headline-symbol p.symbol {
	width: 260px;
}
main section#basic p.description,
main section#contribution p.description {
	line-height: 2rem;
}
main section#basic p.description strong,
main section#contribution p.description strong {
	font-size: 1.125rem;
	font-weight: 700;
}
main section#contribution p.logo {
	width: 360px;
	margin-bottom: 100px;
}
main section#activity div.list div.row {
	padding: 40px;
	background-color: #ffffff;
	border-radius: 10px;
	box-shadow: 2.5px 2.5px 7.5px rgba(0, 0, 0, 0.05);
}
main section#activity div.list div.row:not(:last-child) {
	margin-bottom: 40px;
}
main section#activity div.list div.row div.icon-text {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}
main section#activity div.list div.row div.icon-text p.icon {
	width: 215px;
}
main section#activity div.list div.row div.icon-text div.text {
	width: calc(100% - 255px);
}
main section#activity div.list div.row div.icon-text div.text h3 {
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 2.25rem;
	letter-spacing: 0.05em;
	margin-bottom: 30px;
}
main section#activity div.list div.row div.video,
main section#activity div.list div.row div.doctor {
	padding: 80px 60px 0px 60px;
}
main section#activity div.list div.row div.video {
	border-top: 1px solid #e2e2e2;
	margin-top: 40px;
}
main section#activity div.list div.row div.video h4,
main section#activity div.list div.row div.doctor h4 {
	text-align: center;
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 30px;
}
main section#activity div.list div.row div.video p.description,
main section#activity div.list div.row div.video p.image {
	margin-bottom: 40px;
}
main section#activity div.list div.row div.video p.description {
	padding: 0px 60px;
}
main section#activity div.list div.row div.video p.button {
	text-align: center;
	font-weight: 700;
	line-height: 1.5rem;
	margin-bottom: 40px;
}
main section#activity div.list div.row div.video p.button a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: relative;
	max-width: 360px;
	height: 90px;
	color: #fcfaf5;
	margin: auto;
	padding-right: 35px;
	background-color: #999999;
	border-radius: 10px;
	transition: 0.25s background-color ease;
}
main section#activity div.list div.row div.video p.button a:hover {
	background-color: #696969;
}
main section#activity div.list div.row div.video p.button span.arrow {
	position: absolute;
	width: 35px;
	height: 35px;
	right: 20px;
	top: calc(50% - 17.5px);
	font-size: 0.5rem;
	color: #696969;
	background-color: #fcfaf5;
}
main section#activity div.list div.row div.video p.button a:hover span.arrow {
	color: #fcfaf5;
}
main section#activity div.list div.row div.doctor div.illust-text {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding-left: 40px;
}
main section#activity div.list div.row div.doctor div.illust-text p.illust {
	width: 200px;
	padding-bottom: 20px;
}
main section#activity div.list div.row div.doctor div.illust-text div.text {
	width: calc(100% - 280px);
}
main section#activity div.list div.row div.doctor div.illust-text div.text p.description {
	margin-bottom: 60px;
}
main section#activity div.list div.row div.doctor div.illust-text div.text p.illust-small {
	display: none;
}
main section#activity div.list div.row div.doctor div.illust-text div.text p.button {
	text-align: center;
	font-weight: 700;
	line-height: 1.5rem;
}
main section#activity div.list div.row div.doctor div.illust-text div.text p.button a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: relative;
	height: 90px;
	color: #fcfaf5;
	padding-right: 35px;
	background-color: #999999;
	border-radius: 10px;
	transition: 0.25s background-color ease;
}
main section#activity div.list div.row div.doctor div.illust-text div.text p.button a:hover {
	background-color: #696969;
}
main section#activity div.list div.row div.doctor div.illust-text div.text p.button span.arrow {
	position: absolute;
	width: 35px;
	height: 35px;
	right: 20px;
	top: calc(50% - 17.5px);
	font-size: 0.5rem;
	color: #696969;
	background-color: #fcfaf5;
}
main section#activity div.list div.row div.doctor div.illust-text div.text p.button a:hover span.arrow {
	color: #fcfaf5;
}

/* faq
-------------------------------------------------------------------------------- */

main section#faq div.inner-section {
	width: 800px;
}
main section#faq div.segment {
	border-bottom: 1px solid #e2e2e2;
	margin-bottom: 40px;
}
main section#faq div.segment h2 {
	position: relative;
	font-size: 1.5rem;
	font-weight: 500;
	cursor: pointer;
	margin-bottom: 40px;
	padding: 0px 90px 0px 20px;
	transition: 0.25s color ease;
}
main section#faq div.segment h2:hover {
	color: #999999;
}
main section#faq div.segment h2 span {
	position: absolute;
	width: 50px;
	height: 50px;
	right: 20px;
	top: calc(50% - 25px);
	overflow: hidden;
	cursor: pointer;
	background-color: #696969;
	border-radius: 50%;
}
main section#faq div.segment h2 span::before,
main section#faq div.segment h2 span i {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
}
main section#faq div.segment h2 span::before {
	content: "";
	opacity: 0;
	background-color: #404040;
	border-radius: 50%;
	transform: scale(0);
	transition: 0.25s opacity ease, 0.25s transform ease;
}
main section#faq div.segment h2:hover span::before {
	opacity: 1;
	transform: scale(1.025);
}
main section#faq div.segment h2 span i {
	z-index: 1;
}
main section#faq div.segment h2 span i::before,
main section#faq div.segment h2 span i::after {
	position: absolute;
	width: 12px;
	height: 2px;
	left: calc(50% - 6px);
	top: calc(50% - 1px);
	background-color: #fcfaf5;
	content: "";
	transition: 0.25s opacity ease, 0.25s transform ease;
}
main section#faq div.segment h2 span i::after {
	transform: rotate(90deg);
}
main section#faq div.segment.open h2 span i::before {
	opacity: 0;
	transform: rotate(90deg);
}
main section#faq div.segment.open h2 span i::after {
	transform: rotate(180deg);
}
main section#faq div.segment div.list {
	height: 0px;
	overflow: hidden;
	pointer-events: none;
}
main section#faq div.segment.open div.list {
	pointer-events: auto;
}
main section#faq div.segment div.list div.row {
	padding: 40px 0px 40px 40px;
}
main section#faq div.segment div.list div.row:first-child {
	padding-top: 0px;
}
main section#faq div.segment div.list div.row:not(:last-child) {
	border-bottom: 1px solid #e2e2e2;
}
main section#faq div.segment div.list div.row h3,
main section#faq div.segment div.list div.row div.answer {
	position: relative;
}
main section#faq div.segment div.list div.row h3 {
	font-size: 1.125rem;
	font-weight: 500;
	margin-bottom: 25px;
	padding-left: 50px;
}
main section#faq div.segment div.list div.row h3::before,
main section#faq div.segment div.list div.row div.answer::before {
	position: absolute;
	width: 40px;
	height: 50px;
	top: -6px;
	font-size: 2.5rem;
	font-weight: 500;
	line-height: 2.5rem;
	color: transparent;
}
main section#faq div.segment div.list div.row h3::before {
	left: 0px;
	content: "Q";
	background: linear-gradient(115deg, #4561d8, #57b2b2);
  -webkit-background-clip: text;
}
main section#faq div.segment div.list div.row div.answer {
	padding-left: 100px;
}
main section#faq div.segment div.list div.row div.answer::before {
	left: 50px;
	content: "A";
	background: linear-gradient(115deg, #7db7db, #67be8f);
  -webkit-background-clip: text;
}
main section#faq div.segment div.list div.row div.answer div.body {
	margin-bottom: 40px;
}
main section#faq div.segment div.list div.row div.answer div.category-products {
	display: flex;
	flex-wrap: wrap;
	margin-left: -50px;
}
main section#faq div.segment div.list div.row div.answer div.category-products p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	font-size: 0.875rem;
	color: #696969;
}
main section#faq div.segment div.list div.row div.answer div.category-products p:not(:last-child) {
	margin-right: 20px;
}
main section#faq div.segment div.list div.row div.answer div.category-products p::before {
	display: block;
	font-size: 0.75rem;
	margin-right: 5px;
}
main section#faq div.segment div.list div.row div.answer div.category-products p.category::before {
	content: "カテゴリー：";
}
main section#faq div.segment div.list div.row div.answer div.category-products p.products::before {
	content: "製品：";
}

/* form
-------------------------------------------------------------------------------- */

main section.form div.inner-section {
	width: 800px;
}
main section.form div.header {
	margin-bottom: 80px;
}
main section.form div.mw_wp_form_preview div.header {
	display: none;
}
main section.form div.form div.component {
	display: flex;
	flex-wrap: wrap;
	position: relative;
	margin-bottom: 40px;
}
main section.form div.form div.component-catalog {
	margin-right: -120px;
}
main section.form div.mw_wp_form_preview div.form div.component {
	border-bottom: 1px solid #e2e2e2;
	margin-bottom: 0px;
	padding: 40px 20px;
}
main section.form div.mw_wp_form_preview div.form div.component-first {
	border-top: 1px solid #e2e2e2;
}
main section.form div.mw_wp_form_preview div.form div.component-last {
	margin-bottom: 60px;
}
main section.form div.form div.component p.label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	width: 220px;
	height: 50px;
	font-weight: 500;
}
main section.form div.mw_wp_form_preview div.form div.component p.label {
	display: block;
	height: auto;
}
main section.form div.form div.component p.label span.require {
	margin-left: 10px;
}
main section.form div.mw_wp_form_preview div.form div.component p.label span.require {
	display: none;
}
main section.form div.form div.component div.body {
	width: calc(100% - 220px);
}
main section.form div.form div.component-catalog div.body,
main section.form div.form div.component-name div.body,
main section.form div.form div.component-name-furigana div.body {
	display: flex;
	flex-wrap: wrap;
}
main section.form div.mw_wp_form_preview div.form div.component-radio div.body,
main section.form div.mw_wp_form_preview div.form div.component-checkbox div.body {
	padding-top: 0px;
}
main section.form div.form div.component-name div.body div.name-sei,
main section.form div.form div.component-name div.body div.name-mei,
main section.form div.form div.component-name-furigana div.body div.name-furigana-sei,
main section.form div.form div.component-name-furigana div.body div.name-furigana-mei {
	width: calc(50% - 5px);
}
main section.form div.mw_wp_form_preview div.form div.component-name div.body div.name-sei,
main section.form div.mw_wp_form_preview div.form div.component-name div.body div.name-mei,
main section.form div.mw_wp_form_preview div.form div.component-name-furigana div.body div.name-furigana-sei,
main section.form div.mw_wp_form_preview div.form div.component-name-furigana div.body div.name-furigana-mei {
	width: auto;
}
main section.form div.form div.component-name div.body div.name-sei,
main section.form div.form div.component-name-furigana div.body div.name-furigana-sei {
	margin-right: 10px;
}
main section.form div.form div.component div.body div.list div.row {
	display: flex;
	flex-wrap: wrap;
}
main section.form div.form div.component div.body div.list div.row:not(:last-child) {
	margin-bottom: 20px;
}
main section.form div.form div.component div.body div.list div.row p.label-row,
main section.form div.form div.component div.body div.list div.row div.body-row p.separate,
main section.form div.form div.component div.body div.list div.row div.body-row p#button-auto,
main section.form div.form div.component div.body div.list div.row div.body-row p.note {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	height: 50px;
}
main section.form div.form div.component div.body div.list div.row p.label-row {
	width: 100px;
}
main section.form div.mw_wp_form_preview div.form div.component div.body div.list div.row p.label-row,
main section.form div.mw_wp_form_preview div.form div.component div.body div.list div.row div.body-row p.separate {
	display: block;
	height: auto;
}
main section.form div.mw_wp_form_preview div.form div.component div.body div.list div.row p.label-row {
	width: 120px;
}
main section.form div.form div.component div.body div.list div.row div.body-row {
	display: flex;
	flex-wrap: wrap;
	position: relative;
	width: calc(100% - 100px);
}
main section.form div.mw_wp_form_preview div.form div.component div.body div.list div.row div.body-row {
	width: calc(100% - 120px);
}
main section.form div.form div.component div.body div.list div.row div.body-row div.postal-code-01 {
	width: 90px;
}
main section.form div.mw_wp_form_preview div.form div.component div.body div.list div.row div.body-row div.postal-code-01 {
	width: auto;
}
main section.form div.form div.component div.body div.list div.row div.body-row div.postal-code-02 {
	width: 110px;
	margin-right: 10px;
}
main section.form div.form div.component div.body div.list div.row div.body-row div.postal-code-alternate {
	width: 185px;
	margin-right: 10px;
}
main section.form div.form div.component div.body div.list div.row div.body-row p.separate,
main section.form div.form div.component div.body div.list div.row div.body-row p#button-auto {
	justify-content: center;
	text-align: center;
}
main section.form div.form div.component div.body div.list div.row div.body-row p.separate {
	width: 20px;
}
main section.form div.form div.component div.body div.list div.row div.body-row p#button-auto,
main section.form div.form div.component div.body div.list div.row div.body-row p.note {
	font-size: 0.875rem;
	line-height: 1.25rem;
}
main section.form div.form div.component div.body div.list div.row div.body-row p#button-auto {
	width: 90px;
	font-weight: 500;
	color: #fcfaf5;
	cursor: pointer;
	margin-right: 10px;
	background-color: #696969;
	border-radius: 5px;
	transition: 0.25s background-color ease;
}
main section.form div.mw_wp_form_preview div.form div.component div.body div.list div.row div.body-row p#button-auto,
main section.form div.mw_wp_form_preview div.form div.component div.body div.list div.row div.body-row p.note {
	display: none;
}
main section.form div.form div.component div.body div.list div.row div.body-row p#button-auto:hover {
	background-color: #404040;
}
main section.form div.form div.component div.body div.list div.row div.body-row p.note {
	color: #999999;
}
main section.form div.form div.component div.body input[type=text],
main section.form div.form div.component div.body input[type=email],
main section.form div.form div.component div.body textarea,
main section.form div.form div.component div.body select {
	width: 100%;
}
main section.form div.form textarea[name=download_url] {
	display: none;
}
main section.form div.form div.component div.body span.mwform-radio-field,
main section.form div.form div.component div.body span.mwform-checkbox-field {
	margin: 9px 0px 0px 0px;
}
main section.form div.form div.component div.body span.mwform-radio-field.horizontal-item,
main section.form div.form div.component:not(.component-catalog) div.body span.mwform-checkbox-field.horizontal-item {
	display: inline-block;
}
main section.form div.form div.component div.body span.mwform-radio-field.horizontal-item:not(:last-child),
main section.form div.form div.component:not(.component-catalog) div.body span.mwform-checkbox-field.horizontal-item:not(:last-child) {
	margin-right: 20px;
}
main section.form div.form div.component-catalog div.body span.mwform-checkbox-field {
	width: 33.33%;
	margin-right: 0px;
}
main section.form div.form div.component div.body span.error,
main section.form div.form div.agreement span.error {
	font-size: 0.875rem;
	color: #7db7db;
}
main section.form div.form div.component-catalog div.body span.error {
	width: 100%;
}
main section.form div.form div.agreement {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	width: calc(100% - 220px);
	position: relative;
	margin: 0px 0px 60px auto;
}
main section.form div.mw_wp_form_preview div.form div.agreement {
	display: none;
}
main section.form div.form div.agreement span.horizontal-item {
	margin-right: 5px;
}
main section.form div.form div.agreement span.horizontal-item > label {
	display: block;
}
main section.form div.form div.agreement span.mwform-checkbox-field-text {
	display: none;
}
main section.form div.form div.agreement span.error {
	position: absolute;
	right: 0px;
	top: 0px;
}
main section.form div.form div.agreement p.note {
	width: 100%;
	padding: 10px 0px 0px 35px;
}
main section.form div.form div.action {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding-left: 220px;
}
main section.form div.mw_wp_form_preview div.form div.action {
	padding-left: 0px;
}
main section.form div.form div.action input[type=submit] {
	width: 100%;
	height: 100px;
	font-size: 1.125rem;
	font-weight: 700;
}
main section.form div.mw_wp_form_preview div.form div.action input[type=submit] {
	width: calc(50% - 10px);
}
main section.form div.form div.action input[name=submitBack] {
	margin-right: 20px;
}
main section.form div.mw_wp_form_complete p.description {
	text-align: center;
}
main section.form div.form div:has(> input[name=download_url]) {
	display: none;
}
main section#contact div.header div.list div.row:not(:last-child) {
	margin-bottom: 40px;
}
main section#contact div.header div.list div.row p.label {
	font-weight: 500;
	margin-bottom: 10px;
}
main section#contact div.header div.list div.row-tel-fax p.tel-fax {
	font-weight: 500;
	letter-spacing: 0.05em;
}
main section#contact div.header div.list div.row-tel-fax p.tel-fax span.tel::after {
	margin: 0px 10px;
	content: "/";
}
main section#contact div.header div.list div.row-tel-fax p.tel-fax span i.prefix {
	margin-right: 10px;
}
main section#contact div.header div.list div.row-tel-fax p.tel-fax span.tel i.number {
	font-size: 1.5rem;
	letter-spacing: 0.1em;
	margin-right: 10px;
}
main section#contact div.header div.list div.row-mail p.description,
main section#catalog div.header p.description {
	margin-bottom: 20px;
}
main section#catalog div.header h2 {
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 2rem;
	letter-spacing: 0.05em;
	margin-bottom: 40px;
}
main section#catalog div.catalog {
	position: relative;
	margin: 0px -50px 80px -50px;
	padding: 80px 0px;
}
main section#catalog div.catalog::before {
	position: absolute;
	width: 100vw;
	height: 100%;
	left: calc(50% - 50vw);
	top: 0px;
	background-color: #e4eef2;
	content: "";
}
main section#catalog div.mw_wp_form_preview div.catalog {
	display: none;
}
main section#catalog div.catalog p.description,
main section#catalog div.catalog div.list {
	position: relative;
}
main section#catalog div.catalog p.description {
	text-align: center;
	font-weight: 700;
	margin-bottom: 60px;
}
main section#catalog div.catalog div.list {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -20px -20px 0px;
}
main section#catalog div.catalog div.list div.row {
	width: calc(25% - 20px);
	margin: 0px 20px 20px 0px;
	padding: 30px 30px 15px 30px;
	background-color: #ffffff;
	border-radius: 10px;
	box-shadow: 2.5px 2.5px 7.5px rgba(0, 0, 0, 0.05);
}
main section#catalog div.catalog div.list div.row p.image {
	cursor: pointer;
	margin-bottom: 15px;
}
main section#catalog div.catalog div.list div.row div.label-text {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 0px -10px;
}
main section#catalog div.catalog div.list div.row div.label-text span.text {
	display: block;
	width: calc(100% - 35px);
	min-height: 3rem;
	line-height: 1.5rem;
}
main section#catalog-download div.list {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -20px -20px 0px;
}
main section#catalog-download div.list div.row {
	width: calc(25% - 20px);
	margin: 0px 20px 20px 0px;
	padding: 30px 30px 15px 30px;
	background-color: #ffffff;
	border-radius: 10px;
	box-shadow: 2.5px 2.5px 7.5px rgba(0, 0, 0, 0.05);
}
main section#catalog-download div.list div.row p.image {
	cursor: pointer;
	margin-bottom: 15px;
}
main section#catalog-download div.list div.row p.image img {
	transition: 0.25s opacity ease;
}
main section#catalog-download div.list div.row p.image a:hover img {
	opacity: 0.875;
}
main section#catalog-download div.list div.row p.label {
	position: relative;
	line-height: 1.5rem;
	padding-right: 30px;
}
main section#catalog-download div.list div.row p.label i.icon {
	position: absolute;
	right: 0px;
	top: 3px;
	font-size: 1.125rem;
	margin-left: 5px;
}

/* privacy-policy
-------------------------------------------------------------------------------- */

main section#privacy-policy div.inner-section {
	width: 800px;
}
main section#privacy-policy div.segment:not(:last-child) {
	margin-bottom: 40px;
}
main section#privacy-policy div.segment h2 {
	font-size: 1.125rem;
	font-weight: 700;
	margin-bottom: 15px;
}
main section#privacy-policy div.segment ul:not(:last-child) {
	margin-bottom: 1.75rem;
}
main section#privacy-policy div.segment ul li {
	position: relative;
	padding-left: 1.5em;
}
main section#privacy-policy div.segment ul li span {
	position: absolute;
	left: 0px;
	top: 0px;
}

/* en
-------------------------------------------------------------------------------- */

body.en main section header {
	margin-bottom: 80px;
}
body.en main section header h2 {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	font-size: 3.75rem;
	font-weight: 500;
	line-height: 5.25rem;
}
body.en main section header h2:not(:last-child) {
	margin-bottom: 20px;
}
body.en main section header h2 span {
	color: transparent;
	background: linear-gradient(115deg, #4561d8, #57b2b2);
  -webkit-background-clip: text;
}
main section#product-information div.inner-section {
	width: 980px;
}
main section#product-information header {
	margin-bottom: 120px;
}
main section#product-information header h2 {
	font-size: 5.25rem;
	line-height: 6rem;
}
main section#product-information div.segment:last-child,
main section#product-information div.group-segment:last-child {
	margin-bottom: 120px;
}
main section#product-information div.segment:not(:last-child),
main section#product-information div.group-segment:not(:last-child) {
	margin-bottom: 240px;
}
main section#product-information div.segment h3 {
	position: relative;
	font-size: 1.5rem;
	font-weight: 700;
	margin-bottom: 60px;
	padding-left: 60px;
}
main section#product-information div.segment h3::before {
	position: absolute;
	width: 50px;
	height: 0px;
	left: 0px;
	top: 15px;
	border-bottom: 1px solid #696969;
	content: "";
}
main section#product-information div.segment div.list {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -40px -60px 0px;
}
main section#product-information div.segment div.list div.row {
	width: calc(50% - 40px);
	margin: 0px 40px 60px 0px;
}
main section#product-information div.segment div.list div.row:nth-child(2n),
main section#product-information div.group-segment div.segment:nth-child(2n) {
	transform: translateY(120px);
}
main section#product-information div.segment div.list div.row div.inner-row {
	overflow: hidden;
	border-radius: 20px;
}
main section#product-information div.segment div.list div.row div.text {
	color: #fcfaf5;
	padding: 40px;
	background: linear-gradient(115deg, #4561d8 -25%, #57b2b2 87.5%);
}
main section#product-information div.segment div.list div.row div.text h4 {
	text-align: left;
	font-size: 1.75rem;
	font-weight: 700;
	margin-bottom: 20px;
}
main section#product-information div.segment div.list div.row div.text p.description {
	min-height: calc(1.75rem * 5);
}
main section#product-information div.group-segment {
	display: flex;
	flex-wrap: wrap;
	margin-right: -40px;
}
main section#product-information div.group-segment div.segment {
	width: calc(50% - 40px);
	margin-right: 40px;
}
main section#product-information div.group-segment div.segment div.list {
	display: block;
	margin: 0px;
}
main section#product-information div.group-segment div.segment div.list div.row {
	width: auto;
	margin: 0px;
}
main section#corporate-profile div.inner-section {
	width: 740px;
}
main section#corporate-profile table {
	width: 100%;
}
main section#corporate-profile table th,
main section#corporate-profile table td {
	border-bottom: 1px solid #e2e2e2;
	padding-bottom: 20px;
}
main section#corporate-profile table tr:not(:first-child) th,
main section#corporate-profile table tr:not(:first-child) td {
	padding-top: 20px;
}
main section#corporate-profile table th {
	width: 260px;
	font-weight: 500;
}
main section#download-catalog div.inner-section,
main section#contact-us div.inner-section {
	width: 680px;
}
main section#download-catalog header p.description {
	text-align: center;
	font-size: 1.125rem;
	font-weight: 500;
}
main section#download-catalog div.list div.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	padding: 40px;
	background: #ffffff;
	border-radius: 10px;
	box-shadow: 2.5px 2.5px 7.5px rgba(0, 0, 0, 0.05);
}
main section#download-catalog div.list div.row:not(:last-child) {
	margin-bottom: 20px;
}
main section#download-catalog div.list div.row p.image {
	width: 165px;
}
main section#download-catalog div.list div.row p.image img {
	transition: 0.25s opacity ease;
}
main section#download-catalog div.list div.row p.image a:hover img {
	opacity: 0.75;
}
main section#download-catalog div.list div.row div.text {
	width: calc(100% - 205px);
}
main section#download-catalog div.list div.row div.text h3 {
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 20px;
}
main section#download-catalog div.list div.row div.text p.description {
	margin-bottom: 40px;
}
main section#download-catalog div.list div.row div.text p.download {
	font-weight: 700;
}
main section#download-catalog div.list div.row div.text p.download a {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
}
main section#download-catalog div.list div.row div.text p.download i.icon {
	font-size: 1.75rem;
	font-weight: 400;
	margin-left: 10px;
}
main section#contact-us {
	color: #fcfaf5;
	background-color: #404040;
}
main section#contact-us div.component {
	display: block;
}
main section#contact-us div.component-last {
	margin-bottom: 80px;
}
main section#contact-us div.mw_wp_form_preview div.form div.component {
	border-color: #696969;
}
main section#contact-us div.component p.label,
main section#contact-us div.component div.body {
	width: auto;
}
main section#contact-us div.component p.label {
	display: block;
	height: auto;
	margin-bottom: 10px;
}
main section#contact-us div.action {
	padding-left: 0px;
}
main section#contact-us div.action input[type=submit] {
	background: transparent linear-gradient(115deg, #4561d8 -25%, #57b2b2 87.5%);
	transition: 0.25s opacity ease;
}
main section#contact-us div.action input[type=submit]:hover {
	opacity: 0.75;
}

/* site-map
-------------------------------------------------------------------------------- */

main section#site-map ul {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -50px -20px 0px;
}
main section#site-map ul li {
	width: calc(33.33% - 50px);
	margin: 0px 50px 20px 0px;
}
main section#site-map ul li.products {
	width: calc(100% - 50px);
}
main section#site-map ul li a {
	display: block;
	position: relative;
	font-size: 1.125rem;
	font-weight: 700;
	color: #57a2d1;
	border-bottom: 1px solid #57a2d1;
	padding: 20px 0px;
	transition: 0.25s color ease;
}
main section#site-map ul li a:hover {
	color: #696969;
}
main section#site-map ul li a span.arrow {
	position: absolute;
	width: 35px;
	height: 35px;
	right: 0px;
	top: 18px;
	font-size: 0.5rem;
	color: #ffffff;
	background-color: #57a2d1;
	transition: 0.25s background-color ease;
}
main section#site-map ul li a span.arrow::before {
	background-color: #696969;
}
main section#site-map div.nest {
	padding: 30px 0px;
}
main section#site-map div.nest ul li a {
	height: auto;
	font-size: 1rem;
	font-weight: 500;
	color: #696969;
	border-bottom: none;
	padding: 0px 0px 0px 35px;
}
main section#site-map div.nest ul li a:hover {
	color: #57a2d1;
}
main section#site-map div.nest ul li a span.arrow {
	width: 25px;
	height: 25px;
	left: 0px;
	right: auto;
	top: 3px;
	font-size: 0.375rem;
	background-color: #696969;
}
main section#site-map div.nest ul li a span.arrow::before {
	background-color: #57a2d1;
}



/* --------------------------------------------------------------------------------
modal
-------------------------------------------------------------------------------- */

div#modal {
	position: fixed;
	width: 100%;
	height: 0%;
	left: 0px;
	top: 0px;
	overflow: auto;
	z-index: 9999;
	pointer-events: none;
	opacity: 0;
	transition: 0.25s opacity ease;
	-webkit-overflow-scrolling: touch;
}
div#modal.active {
	height: 100%;
	pointer-events: auto;
}
div#modal.fade {
	opacity: 1;
}
div#modal:not(.fixed) {
	padding: 60px 0px;
}
div#modal::before,
div#modal.fixed div.inner-modal {
	position: fixed;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
}
div#modal::before {
	background-color: rgba(0, 0, 0, 0.875);
	content: "";
}
div#modal:not(.fixed) div.inner-modal {
	position: relative;
	width: 920px;
	margin: auto;
	padding: 60px;
	background-color: #fcfaf5;
}
div#modal.fixed div.inner-modal {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
div#modal p.button-close {
	position: fixed;
	width: 60px;
	height: 60px;
	right: 75px;
	top: 36px;
	z-index: 10;
	cursor: pointer;
}
body.admin-bar div#modal p.button-close {
	top: 68px;
}
div#modal p.button-close::before,
div#modal p.button-close::after {
	position: absolute;
	width: 60px;
	height: 0px;
  left: calc(50% - 30px);
	top: calc(50% - 10.5px);
	border-bottom: 1px solid #fcfaf5;
	content: "";
}
div#modal p.button-close::before {
	transform: rotate(15deg);
}
div#modal p.button-close::after {
	transform: rotate(-15deg);
}
div#modal p.button-close span {
	position: absolute;
	width: 100%;
	left: 0px;
	bottom: 10px;
	text-align: center;
	font-size: 0.75rem;
	line-height: 1.25rem;
	color: #ffffff;
}
div#modal p.button-close span::before {
	content: "CLOSE";
}
div#modal p.button-close-alternate {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: absolute;
	width: 140px;
	height: 40px;
	right: 50px;
	bottom: 50px;
	font-size: 0.875rem;
	font-weight: 700;
	border: 1px solid #404040;
	cursor: pointer;
	border-radius: 5px;
	transition: 0.25s color ease, 0.25s background-color ease;
}
div#modal p.button-close-alternate:hover {
	color: #fcfaf5;
	background-color: #404040;
}
div#modal div.slide {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	position: absolute;
	width: calc(100% - 160px);
	height: calc(100% - 160px);
	left: 80px;
	top: 80px;
}
div#modal div.slide div.list,
div#modal div.slide div.list div.row {
	position: absolute;
	width: 100%;
	left: 0px;
	top: 0px;
}
div#modal div.slide div.list {
	height: 100%;
}
div#modal div.slide div.list div.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	height: 0px;
	overflow: hidden;
}
div#modal div.slide div.list div.row.active {
	height: 100%;
	overflow: visible;
}
div#modal div.slide div.list div.row p.image {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
	transform: translateY(-20px);
}
div#modal div.slide div.list div.row p.image img {
	object-fit: contain;
	width: 100%;
	height: 100%;
}
div#modal div.slide div.list div.row p.title,
div#modal div.slide div.list div.row p.button {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	position: absolute;
	height: 40px;
	bottom: -40px;
	font-weight: 500;
}
div#modal div.slide div.list div.row p.title {
	width: calc(100% - 240px);
	left: 0px;
	color: #fcfaf5;
}
div#modal div.slide div.list div.row p.button {
	width: 240px;
	right: 0px;
	font-size: 0.875rem;
}
div#modal div.slide div.list div.row p.button a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	background-color: #fcfaf5;
	border-radius: 20px;
	transition: 0.25s color ease, 0.25s background-color ease;
}
div#modal div.slide div.list div.row p.button a:hover {
	color: #fcfaf5;
}
div#modal div.slide div.list div.row p.button a::before {
	border-radius: 20px;
}
div#modal div.privacy-policy p.headline,
div#modal div.privacy-policy div.segment:not(:last-child) {
	margin-bottom: 40px;
}
div#modal div.privacy-policy p.headline {
	font-size: 1.125rem;
	font-weight: 700;
}
div#modal div.privacy-policy div.segment h2 {
	font-size: 1.125rem;
	font-weight: 700;
	margin-bottom: 15px;
}
div#modal div.privacy-policy div.segment ul:not(:last-child) {
	margin-bottom: 1.75rem;
}
div#modal div.privacy-policy div.segment ul li {
	position: relative;
	padding-left: 1.5em;
}
div#modal div.privacy-policy div.segment ul li span {
	position: absolute;
	left: 0px;
	top: 0px;
}



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

footer#footer {
	position: relative;
}
footer#footer div.contact {
	color: #fcfaf5;
	padding: 80px 0px 60px 0px;
	background-color: #999999;
}
footer#footer div.contact div.inner-contact {
	width: 920px;
	margin: auto;
}
footer#footer div.contact div.headline-list {
	display: flex;
	flex-wrap: wrap;
	margin-right: -80px;
}
footer#footer div.contact p.headline {
	width: calc(33.33% - 80px);
	margin-right: 80px;
}
footer#footer div.contact p.headline span {
	display: block;
}
footer#footer div.contact p.headline span.main {
	font-size: 3.125rem;
	font-weight: 500;
	line-height: 3.5rem;
	margin-bottom: 5px;
}
footer#footer div.contact p.headline span.sub,
footer#footer div.contact div.list div.row {
	font-weight: 500;
	letter-spacing: 0.05em;
}
footer#footer div.contact p.headline span.sub {
	font-size: 0.875rem;
}
footer#footer div.contact div.list {
	width: 66.66%;
}
footer#footer div.contact div.list div.row:not(:last-child) {
	margin-bottom: 30px;
}
footer#footer div.contact div.list div.row-tel-fax p.label {
	margin-bottom: 10px;
}
footer#footer div.contact div.list div.row-tel-fax p.tel-fax {
	position: relative;
	padding-left: 60px;
}
footer#footer div.contact div.list div.row-tel-fax p.tel-fax::before {
	position: absolute;
	width: 50px;
	height: 0px;
	left: 0px;
	top: 16px;
	border-bottom: 1px solid #fcfaf5;
	content: "";
}
footer#footer div.contact div.list div.row-tel-fax p.tel-fax span.tel::after {
	margin: 0px 10px;
	content: "/";
}
footer#footer div.contact div.list div.row-tel-fax p.tel-fax span.tel a:hover {
	color: #cccccc;
}
footer#footer div.contact div.list div.row-tel-fax p.tel-fax span i.prefix {
	margin-right: 10px;
}
footer#footer div.contact div.list div.row-tel-fax p.tel-fax span.tel i.number {
	display: inline-block;
	font-size: 1.25rem;
	letter-spacing: 0.1em;
	margin-right: 10px;
}
footer#footer div.contact div.list div.row-mail {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}
footer#footer div.contact div.list div.row-mail p.label {
	margin-right: 10px;
}
footer#footer div.contact div.list div.row-mail p.button {
	font-size: 0.875rem;
}
footer#footer div.contact div.list div.row-mail p.button a {
	width: 200px;
	height: 40px;
	color: #696969;
	background-color: #fcfaf5;
	border-radius: 20px;
}
footer#footer div.contact div.list div.row-mail p.button a:hover {
	color: #fcfaf5;
}
footer#footer div.contact div.list div.row-mail p.button a::before {
	border-radius: 20px;
}
footer#footer div.contact div.button-wrapper-small {
	display: none;
}
footer#footer nav#navi-footer {
	position: relative;
	color: #999999;
	padding: 60px 0px;
	background-color: #404040;
}
footer#footer nav#navi-footer p#button-page-top {
	position: fixed;
	width: 20px;
	height: 155px;
	right: 20px;
	bottom: 20px;
	writing-mode: vertical-rl;
	text-align: right;
	font-size: 0.75rem;
	line-height: 1.25rem;
	color: #404040;
	pointer-events: none;
	opacity: 0;
	transition: 0.25s color ease, 0.25s opacity ease;
}
div.scroll footer#footer nav#navi-footer p#button-page-top {
	pointer-events: auto;
	opacity: 1;
}
footer#footer nav#navi-footer p#button-page-top.footer-alternate {
	position: absolute;
}
footer#footer nav#navi-footer p#button-page-top a {
	display: block;
	position: relative;
	height: 100%;
	transition: 0.25s color ease;
}
footer#footer nav#navi-footer p#button-page-top a:hover,
footer#footer nav#navi-footer p#button-page-top.footer a {
	color: #999999;
}
footer#footer nav#navi-footer p#button-page-top.footer a:hover {
	color: #fcfaf5;
}
footer#footer nav#navi-footer p#button-page-top a::before {
	position: absolute;
	width: 0px;
	height: 80px;
	left: calc(50% - 0.5px);
	top: 0px;
	border-right: 1px solid #404040;
	content: "";
	transition: 0.25s border-color ease;
}
footer#footer nav#navi-footer p#button-page-top a:hover::before,
footer#footer nav#navi-footer p#button-page-top.footer a::before {
	border-color: #999999;
}
footer#footer nav#navi-footer p#button-page-top.footer a:hover::before {
	border-color: #fcfaf5;
}
footer#footer nav#navi-footer div.main,
footer#footer nav#navi-footer div.sub {
	width: 920px;
	margin: auto;
}
footer#footer nav#navi-footer div.main {
	position: relative;
	border-bottom: 1px solid #696969;
	margin-bottom: 25px;
	padding-right: 200px;
	padding-bottom: 30px;
}
footer#footer nav#navi-footer div.main ul,
footer#footer nav#navi-footer div.sub ul {
	display: flex;
	flex-wrap: wrap;
}
footer#footer nav#navi-footer div.main ul li:not(:last-child) {
	margin-right: 40px;
}
footer#footer nav#navi-footer div.main ul li a,
footer#footer nav#navi-footer div.sub ul li a {
	transition: 0.25s color ease;
}
footer#footer nav#navi-footer div.main ul li a {
	padding-right: 45px;
}
footer#footer nav#navi-footer div.main ul li a:hover,
footer#footer nav#navi-footer div.sub ul li a:hover {
	color: #fcfaf5;
}
footer#footer nav#navi-footer div.main ul li a,
footer#footer nav#navi-footer div.main ul li span {
	display: block;
}
footer#footer nav#navi-footer div.main ul li a {
	position: relative;
}
footer#footer nav#navi-footer div.main ul li span.main {
	font-size: 2.375rem;
	font-weight: 500;
	line-height: 3rem;
	margin-bottom: 5px;
}
footer#footer nav#navi-footer div.main ul li span.sub {
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.05em;
}
footer#footer nav#navi-footer div.main ul li span.arrow {
	position: absolute;
	width: 35px;
	height: 35px;
	right: 0px;
	top: 12px;
	font-size: 0.5rem;
	background-color: #999999;
	transition: 0.25s background-color ease;
}
footer#footer nav#navi-footer div.main ul li a:hover span.arrow {
	color: #404040;
}
footer#footer nav#navi-footer div.main ul li span.arrow::before {
	background-color: #fcfaf5;
}
footer#footer nav#navi-footer div.main p#banner-roop,
footer#footer nav#navi-footer div.main p#banner-busters {
	position: absolute;
	width: 140px;
	top: 0px;
}
footer#footer nav#navi-footer div.main p#banner-roop {
	right: 150px;
}
footer#footer nav#navi-footer div.main p#banner-roop a,
footer#footer nav#navi-footer div.main p#banner-busters a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	height: 80px;
	border: 1px solid #999999;
	transition: 0.25s background-color ease;
}
footer#footer nav#navi-footer div.main p#banner-roop a:hover,
footer#footer nav#navi-footer div.main p#banner-busters a:hover {
	background-color: #999999;
}
footer#footer nav#navi-footer div.main p#banner-roop img,
footer#footer nav#navi-footer div.main p#banner-busters img {
	width: auto;
}
footer#footer nav#navi-footer div.main p#banner-roop img {
	height: 28px;
}
footer#footer nav#navi-footer div.main p#banner-busters {
	right: 0px;
}
footer#footer nav#navi-footer div.main p#banner-busters img {
	height: 60px;
}
footer#footer nav#navi-footer div.sub {
	position: relative;
	letter-spacing: 0.05em;
	padding-right: 180px;
}
footer#footer nav#navi-footer div.sub ul:first-child {
	margin-bottom: 5px;
}
footer#footer nav#navi-footer div.sub ul li {
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 35px;
}
footer#footer nav#navi-footer div.sub ul li:not(:last-child) {
	margin-right: 40px;
}
footer#footer nav#navi-footer div.sub p.button-mailmagazine {
	position: absolute;
	right: 0px;
	bottom: 0px;
	font-size: 0.875rem;
	font-weight: 500;
}
footer#footer nav#navi-footer div.sub p.button-mailmagazine a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 180px;
	height: 35px;
	border: 1px solid #999999;
	transition: 0.25s color ease, 0.25s border-color ease, 0.25s background-color ease;
}
footer#footer nav#navi-footer div.sub p.button-mailmagazine a:hover {
	color: #404040;
	border-color: #fcfaf5;
	background-color: #fcfaf5;
}
footer#footer div.misc {
	width: 1100px;
	margin: auto;
	padding: 30px 0px 20px 0px;
}
footer#footer div.misc div.information-sns {
	position: relative;
	margin-bottom: 30px;
}
footer#footer div.misc div.information-sns div.information {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	letter-spacing: 0.05em;
}
footer#footer div.misc div.information-sns div.information p.logo {
	margin-right: 60px;
}
footer#footer div.misc div.information-sns div.information p.logo img {
	width: auto;
	height: 42px;
}
footer#footer div.misc div.information-sns div.information h3 {
	font-size: 1rem;
	margin-right: 20px;
}
footer#footer div.misc div.information-sns div.sns {
	position: absolute;
	right: 0px;
	top: 10px;
}
footer#footer div.misc div.information-sns div.sns ul {
	display: flex;
	flex-wrap: wrap;
}
footer#footer div.misc div.information-sns div.sns ul li:not(:last-child) {
	margin-right: 30px;
}
footer#footer div.misc div.information-sns div.sns ul li img {
	width: auto;
	height: 24px;
}
footer#footer div.misc p.copyright {
	text-align: center;
	text-indent: 0.075em;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.25rem;
	color: #999999;
	letter-spacing: 0.075em;
}

/* en
-------------------------------------------------------------------------------- */

body.en footer#footer {
	padding: 30px 0px 20px 0px;
}
body.en footer#footer div.information {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	width: 920px;
	margin: 0px auto 30px auto;
}
body.en footer#footer div.information div.text {
	width: 480px;
}
body.en footer#footer div.information div.text h3 {
	font-size: 1.125rem;
	font-weight: 700;
	margin-bottom: 10px;
}
body.en footer#footer div.information div.text div.list div.row {
	display: flex;
	flex-wrap: wrap;
	font-size: 0.875rem;
	line-height: 1.5rem;
}
body.en footer#footer div.information div.text div.list div.row:not(:last-child) {
	margin-bottom: 5px;
}
body.en footer#footer div.information div.text div.list div.row p.label {
	width: 80px;
	font-weight: 500;
}
body.en footer#footer div.information div.text div.list div.row p.body {
	width: calc(100% - 80px);
}
body.en footer#footer p.copyright {
	width: 920px;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.25rem;
	color: #999999;
	letter-spacing: 0.075em;
	margin: auto;
	padding-left: 440px;
}

/* add 2022.11.17
-------------------------------------------------------------------------------- */

main article.common div.body h2.headline,
main article.common div.body h3.headline,
main article.common div.body h4.headline {
	position: relative;
	font-weight: 700;
}
main article.common div.body h2.headline,
main article.common div.body h3.headline {
	margin-bottom: 20px;
}
main article.common div.body h2.headline *,
main article.common div.body h3.headline *,
main article.common div.body h4.headline * {
	font-weight: 700 !important;
}
main article.common div.body h2.headline {
	font-size: 1.75rem;
	line-height: 2.5rem;
	padding-left: 20px;
}
main article.common div.body h2.headline::before {
	position: absolute;
	width: 0px;
	height: calc(100% - 4px);
	left: 0px;
	top: 3px;
	border-right: 5px solid #7db7db;
	content: "";
	border-radius: 2.5px;
}
main article.common div.body h3.headline {
	font-size: 1.5rem;
	line-height: 2.5rem;
	color: #7db7db;
	padding-left: 25px;
}
main article.common div.body h3.headline::before {
	position: absolute;
	width: 10px;
	height: 10px;
	left: 3px;
	top: 17px;
	background-color: #7db7db;
	content: "";
	border-radius: 50%;
}
main article.common div.body h4.headline {
	font-size: 1.125rem;
	margin-bottom: 10px;
}
main article.common div.body div#index {
	border: 1px solid #7db7db;
	padding: 30px 40px 40px 40px;
	background-color: #ffffff;
	border-radius: 20px;
}
main article.common div.body div#index p.headline {
	font-size: 1.25rem;
	font-weight: 700;
	color: #7db7db;
	margin-bottom: 20px;
}
main article.common div.body div#index p.headline::before {
	display: inline-block;
	font-family: "icon";
	font-size: 1.125rem;
	font-weight: 400;
	margin-right: 10px;
	content: "\e907";
}
main article.common div.body div#index ul {
	padding-left: 40px;
}
main article.common div.body div#index ul li {
	font-size: 1.125rem;
	padding-left: 0px;
}
main article.common div.body div#index ul li.h2 {
	font-weight: 700;
}
main article.common div.body div#index ul li::before {
	display: none;
}
main article.common div.body div#index ul li:not(:last-child) {
	margin-bottom: 10px;
}
main article.common div.body div#index ul li a {
	display: block;
	position: relative;
	text-decoration: none;
}
main article.common div.body div#index ul li.h2 a {
	padding-left: 25px;
}
main article.common div.body div#index ul li.h3 {
	font-weight: 500;
}
main article.common div.body div#index ul li.h3 a {
	padding-left: 60px;
}
main article.common div.body div#index ul li a::before {
	position: absolute;
	content: "";
}
main article.common div.body div#index ul li.h2 a::before {
	width: 10px;
	height: 10px;
	left: 0px;
	top: 8px;
	border-right: 2px solid #7db7db;
	border-top: 2px solid #7db7db;
	transform: rotate(135deg);
}
main article.common div.body div#index ul li.h3 a::before {
	width: 5px;
	height: 5px;
	left: 45px;
	top: 13px;
	background-color: #7db7db;
	border-radius: 50%;
}
main article.common div.body div.column-related:last-child {
	padding-top: 80px;
}
main article.common div.body div.column-related a {
	text-decoration: none;
}
main article.common div.body div.column-related h2.headline {
	margin-bottom: 40px;
}
main article.common div.body div.column-related div.list-column-related div.row {
	align-items: flex-start;
	position: relative;
	padding: 40px 30px 30px 30px;
	background-color: #ffffff;
	border-radius: 20px;
}
main article.common div.body div.column-related div.list-column-related div.row::before {
	position: absolute;
	left: 30px;
	top: -15px;
	font-family: "icon";
	font-size: 2.5rem;
	line-height: 2.5rem;
	color: #7db7db;
	content: "\e908";
}
main article.common div.body div.column-related div.list-column-related div.row:not(:last-child) {
	margin-bottom: 40px;
}
main article.common div.body div.column-related div.list-column-related div.row h3 {
	width: 100%;
	text-align: left;
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 20px;
}
main article.common div.body div.column-related div.list-column-related div.row h3 a {
	text-decoration: none;
}
main article.common div.body div.column-related div.list-column-related div.row p.image {
	width: 200px;
}
main article.common div.body div.column-related div.list-column-related div.row div.text {
	width: calc(100% - 220px);
}
body.single main section#contact-alternate div.inner-section {
	width: 660px;
	padding-top: 0px;
}
body.single main section#contact-alternate div.button-wrapper p.button-mail a {
	padding-right: 40px;
}
body.single main section#contact-alternate div.button-wrapper p.button span.arrow {
	width: 35px;
	height: 35px;
	right: 20px;
	top: calc(50% - 17.5px);
	font-size: 0.5rem;
}
