@charset "utf-8";



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

br.large {
	display: none;
}
br.small {
	display: inline;
}
img.small {
	display: block;
}
img.large {
	display: none;
}
span.no-large {
	display: inline;
}
*.margin-bottom-wide {
	margin-bottom: 60px;
}



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

body:not(.home):not(:has(div#title p.image)) div#page {
	padding-top: 70px;
}
nav#navi-side {
	display: none;
}
div.table-wrapper {
	max-width: 100%;
	overflow: auto;
	padding-bottom: 1px;
	-webkit-overflow-scrolling: touch;
}
div.table-wrapper::-webkit-scrollbar {
	height: 15px;
}
div.table-wrapper::-webkit-scrollbar-track {
	background: linear-gradient(180deg, transparent 79.99%, #696969 80%, #696969 86.66%, transparent 86.67%, transparent 100%);
}
div.table-wrapper::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, transparent 66.66%, #696969 66.67%, #696969 100%);
}



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

header#header::before {
	position: fixed;
	width: 100%;
	height: 75px;
	left: 0px;
	top: 0px;
	z-index: 10;
	background-color: rgba(255, 255, 255, 0.875);
	content: "";
	opacity: 0;
	transition: 0.25s opacity ease;
}
div.scroll header#header::before {
	opacity: 1;
}
header#header *#logo {
	left: 20px;
	top: 20px;
}
body.admin-bar header#header *#logo {
	top: 20px;
}
header#header *#logo a {
	height: 36px;
}
header#header p#button-menu {
	width: 40px;
	height: 40px;
	right: 20px;
	top: 20px;
}
body.admin-bar header#header p#button-menu {
	top: 20px;
}
header#header p#button-menu::before {
	bottom: 0px;
	font-size: 0.625rem;
}
header#header p#button-menu i {
  width: 40px;
  left: calc(50% - 20px);
	top: calc(50% - 8px);
}
header#header p#button-menu i:nth-child(1) {
	transform: translateY(-5px);
}
header#header p#button-menu i:nth-child(2) {
	transform: translateY(5px);
}
header#header div#menu {
	transform: translateX(100%);
	transition: 0.25s transform ease;
}
body.admin-bar header#header div#menu {
	height: 100%;
	top: 0px;
}
body.menu-header header#header div#menu {
	transform: translateX(0%);
}
header#header nav#navi {
	overflow: auto;
}
header#header nav#navi div.products,
header#header nav#navi div.misc-sns,
header#header nav#navi div.background {
	display: block;
	position: static;
	height: auto;
	top: auto;
}
header#header nav#navi div.products {
	display: none;
}
header#header nav#navi div.misc-sns {
	width: auto;
	right: auto;
	padding: 0px;
}
header#header nav#navi div.misc-sns div.inner-misc-sns {
	max-width: none;
}
header#header nav#navi div.misc-sns div.misc {
	display: block;
	padding: 90px 40px 40px 40px;
}
header#header nav#navi div.misc-sns div.misc > ul {
	width: auto;
}
header#header nav#navi div.misc-sns div.misc > ul > li {
	display: block;
	border-bottom: 1px solid rgba(255, 255, 255, 0.125);
}
header#header nav#navi div.misc-sns div.misc > ul > li:not(.sustainability):not(.site-map) {
	margin-bottom: 0px;
}
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: block;
}
header#header nav#navi div.misc-sns div.misc > ul > li > a {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	position: relative;
	font-size: 1.125rem;
	line-height: 1.75rem;
	padding: 10px;
}
header#header nav#navi div.misc-sns div.misc > ul > li.privacy-policy > a {
	margin-right: -20px;
}
header#header nav#navi div.misc-sns div.misc > ul > li > a span.button {
	position: absolute;
	width: 25px;
	height: 25px;
	right: 10px;
	top: calc(50% - 12.5px);
	overflow: hidden;
	background-color: #ffffff;
	border-radius: 50%;
}
header#header nav#navi div.misc-sns div.misc > ul > li > a span.button::before,
header#header nav#navi div.misc-sns div.misc > ul > li > a span.button i {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
}
header#header nav#navi div.misc-sns div.misc > ul > li > a span.button::before {
	content: "";
	opacity: 0;
	background-color: #404040;
	border-radius: 50%;
	transform: scale(0);
	transition: 0.25s opacity ease, 0.25s transform ease;
}
header#header nav#navi div.misc-sns div.misc > ul > li > a span.button:hover::before {
	opacity: 1;
	transform: scale(1.025);
}
header#header nav#navi div.misc-sns div.misc > ul > li > a span.button i {
	z-index: 1;
}
header#header nav#navi div.misc-sns div.misc > ul > li > a span.button i::before,
header#header nav#navi div.misc-sns div.misc > ul > li > a span.button i::after {
	position: absolute;
	width: 8px;
	height: 0px;
	left: calc(50% - 4px);
	top: calc(50% - 1px);
	border-bottom: 2px solid #696969;
	content: "";
	transition: 0.25s border-color ease, 0.25s opacity ease, 0.25s transform ease;
}
header#header nav#navi div.misc-sns div.misc > ul > li > a span.button:hover i::before,
header#header nav#navi div.misc-sns div.misc > ul > li > a span.button:hover i::after {
	border-color: #ffffff;
}
header#header nav#navi div.misc-sns div.misc > ul > li > a span.button i::after {
	transform: rotate(90deg);
}
header#header nav#navi div.misc-sns div.misc > ul > li.open > a span.button i::before {
	opacity: 0;
	transform: rotate(90deg);
}
header#header nav#navi div.misc-sns div.misc > ul > li.open > a span.button i::after {
	transform: rotate(180deg);
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest,
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row div.nest-nest {
	height: 0px;
	overflow: hidden;
	pointer-events: none;
}
header#header nav#navi div.misc-sns div.misc > ul > li.open div.nest,
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row.open div.nest-nest {
	pointer-events: auto;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest {
	color: #1a1a1a;
	margin: 0px -40px;
	background-color: #ffffff;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list {
	padding: 30px 40px;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row:not(:last-child) {
	border-bottom: 1px solid #999999;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row p.headline {
	font-size: 1rem;
	font-weight: 500;
	line-height: 2rem;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row p.headline a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	position: relative;
	padding: 10px 0px 10px 10px;
	transition: 0.25s color ease;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row p.headline a:hover,
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row.open p.headline a {
	color: #4d85c7;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row p.headline span.arrow {
	width: 25px;
	height: 25px;
	font-size: 0.5rem;
	color: #ffffff;
	margin-right: 15px;
	background-color: #696969;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row p.headline span.arrow::before {
	background-color: #404040;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row.open p.headline span.arrow::before {
	opacity: 1;
	transform: scale(1);
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row p.headline span.button {
	position: absolute;
	width: 10px;
	height: 10px;
	right: 18.5px;
	top: calc(50% - 5px);
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row p.headline span.button::before,
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row p.headline span.button::after {
	position: absolute;
	width: 8px;
	height: 0px;
	left: calc(50% - 4px);
	top: calc(50% - 1px);
	border-bottom: 2px solid #696969;
	content: "";
	transition: 0.25s opacity ease, 0.25s transform ease;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row p.headline span.button::after {
	transform: rotate(90deg);
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row.open p.headline span.button::before {
	opacity: 0;
	transform: rotate(90deg);
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row.open p.headline span.button::after {
	transform: rotate(180deg);
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row div.nest-nest {
	padding: 0px 0px 0px 50px;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row div.nest-nest p {
	font-size: 1rem;
	font-weight: 500;
	margin-bottom: 10px;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row div.nest-nest ul {
	padding-bottom: 20px;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row div.nest-nest ul li:not(:last-child) {
	margin-bottom: 5px;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row div.nest-nest ul li a {
	display: block;
	position: relative;
	padding-left: 10px;
	transition: 0.25s color ease;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row div.nest-nest ul li a:hover {
	color: #4d85c7;
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row div.nest-nest ul li a::before {
	position: absolute;
	width: 5px;
	height: 0px;
	left: 0px;
	top: 15px;
	border-bottom: 1px solid #1a1a1a;
	content: "";
}
header#header nav#navi div.misc-sns div.misc > ul > li div.nest div.list div.row div.nest-nest ul li a:hover::before {
	border-color: #4d85c7;
}
header#header nav#navi div.misc-sns div.misc div.button-wrapper {
	display: block;
	width: auto;
	margin-right: 0px;
}
header#header nav#navi div.misc-sns div.misc p.button-default {
	width: auto;
	margin-right: 0px;
}
header#header nav#navi div.misc-sns div.misc p.button-default:not(:last-child) {
	margin-bottom: 10px;
}
header#header nav#navi div.misc-sns div.sns {
	padding: 40px 0px;
	background-color: #ffffff;
}
header#header nav#navi div.misc-sns div.sns ul {
	justify-content: center;
}
header#header nav#navi div.background {
	display: none;
}
header#header nav#navi-alternate {
	display: none;
}



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

div#breadcrumb {
	top: 90px;
	padding: 0px 20px;
}



/* --------------------------------------------------------------------------------
cover
-------------------------------------------------------------------------------- */

div#cover {
	margin: 0px -120px;
	padding: 240px 0px 80px 0px;
}
div#cover h1 {
	position: absolute;
	width: 100%;
	left: 0px;
	top: 120px;
	text-align: center;
	font-size: 2rem;
	line-height: 3.25rem;
}
div#cover h1 i:last-child {
	margin-right: -0.5em;
}



/* --------------------------------------------------------------------------------
title
-------------------------------------------------------------------------------- */

div#title:not(:has(p.image)) {
	padding-top: 120px;
}
div#title:has(p.image) {
	height: 360px;
}
div#title div.text {
	width: 100%;
	padding: 0px 30px;
}
div#title:has(p.image) div.text {
	left: 0px;
	bottom: 40px;
}
div#title div.text h1 {
	font-size: 2.25rem;
	line-height: 3rem;
}



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

main:has(aside#sidebar) section div.inner-section {
	width: auto;
	min-height: 0px;
	padding-left: 30px;
}
main:has(aside#sidebar) section div.inner-section {
	min-height: 0px;
}
@media (max-width:1560px) {
main:has(aside#sidebar) section div.inner-section {
	width: auto;
	padding-left: 30px;
}
}
main aside#sidebar {
	position: static;
	width: auto;
	left: auto;
	top: auto;
	padding: 80px 30px 0px 30px;
	background-color: transparent;
	border-radius: 0px;
}
main aside#sidebar.fixed {
	position: static;
}
body.admin-bar main aside#sidebar.fixed {
	top: auto;
}
main aside#sidebar.release {
	position: static;
	bottom: auto;
}
main aside#sidebar div.block ul {
	display: none;
}
main aside#sidebar div.block select {
	display: block;
	width: 100%;
}
main section div.inner-section {
	width: auto;
	padding: 80px 30px;
}
main h2.headline-alternate {
	font-size: 2rem;
	line-height: 2.75rem;
	margin-bottom: 100px;
}
main h2.headline-alternate::before {
	width: 60px;
	bottom: -40px;
}
main article.common div.body h2.headline {
	font-size: 1.5rem;
	line-height: 2.25rem;
}
main article.common div.body h3.headline::before {
	width: 8px;
	height: 8px;
	left: 2px;
	top: 14px;
}
main article.common div.body div#index {
	padding: 20px 30px 30px 30px;
}
main article.common div.body div#index ul {
	padding-left: 5px;
}
main article.common div.body div.column-related div.list-column-related div.row a {
	padding: 20px;
}
main article.common div.body div.column-related div.list-column-related div.row a::before {
	left: 20px;
}
main article.common div.body div.column-related div.list-column-related div.row p.image {
	width: auto;
}
main article.common div.body div.column-related div.list-column-related div.row div.text {
	width: auto;
}
main :where(div#pager, nav#navi-article) {
	margin-top: 80px;
}
main div#pager a.prev {
	margin-right: 20px;
}
main div#pager a.next {
	margin-left: 20px;
}
main nav#navi-article ul {
	width: auto;
}

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

main section#home-news div.inner-section {
	padding: 40px 30px;
	border-radius: 0px;
}
main section:where(#home-news, #home-column) header {
	margin-bottom: 40px;
}
main section:where(#home-news, #home-column) header h2 {
	font-size: 2.25rem;
	line-height: 3rem;
}
main section#home-news div.list-news-alternate,
main section#home-column div.list-column-alternate {
	margin-bottom: 40px;
}
main section:where(#home-news, #home-column) p.button-more {
	position: static;
	justify-content: center;
}
main section#home-news p.button-more {
	right: auto;
	top: auto;
}
main section#home-column p.button-more {
	right: auto;
	top: auto;
}
main section#home-menu div.list div.row:not(:last-child) {
	margin-bottom: 40px;
}
main section#home-menu div.list div.row p.image {
	aspect-ratio: 1.25;
}
main section#home-menu div.list div.row p.image img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
main section#home-menu div.list div.row a:hover p.image img {
	transform: scale(1.0375);
}
main section#home-menu div.list div.row p.image span {
	top: 20px;
	font-size: 3rem;
	line-height: 2.5rem;
}
main section#home-menu div.list div.row div.text {
	padding: 20px;
}
main section#home-menu div.list div.row div.text h3 {
	font-size: 1.5rem;
	line-height: 2rem;
	margin-bottom: 15px;
	padding-left: 50px;
}
main section#home-menu div.list div.row div.text h3::before {
	width: 40px;
	top: 18px;
}
main section#home-menu div.list div.row div.text p.more span.arrow {
	width: 35px;
	height: 35px;
	font-size: 0.5rem;
}

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

main section#statement div.list div.row:not(:last-child) {
	margin-bottom: 60px;
}
main section#statement div.list div.row h2 {
	font-size: 1.5rem;
}
main section#statement div.list div.row p.description {
	font-size: 2rem;
	line-height: 3.25rem;
}
main section#top-message div.image-text {
	display: block;
}
main section#top-message div.image-text p.image {
	width: auto;
	max-width: 380px;
	margin: 0px auto 40px auto;
}
main section#top-message div.image-text div.text {
	width: auto;
}
main section#outline div.list {
	margin-bottom: 60px;
}
main section#outline div.list div.row {
	display: block;
	padding: 20px;
}
main section#outline div.list div.row p.label {
	width: auto;
	margin-bottom: 10px;
}
main section#outline div.list div.row div.body {
	width: auto;
}
main section#outline div.image {
	margin: 0px -30px;
}
main section#outline div.image div.inner-image {
	height: 250px;
}
@keyframes outline {
	0% { transform: translateX(0px); }
	100% { transform: translateX(calc(-1520px * 0.5)); }
}
main section#outline div.image div.group {
	width: calc(1520px * 0.5);
	height: calc(500px * 0.5);
}
main section#outline div.image div.group p.row:not(:nth-child(3n)) {
	width: calc(320px * 0.5);
	height: calc(240px * 0.5);
}
main section#outline div.image div.group p.row:nth-child(3n) {
	width: calc(400px * 0.5);
	height: calc(400px * 0.5);
	top: calc(50px * 0.5);
}
main section#outline div.image div.group p.row:nth-child(3n+2) {
	top: calc(260px * 0.5);
}
main section#outline div.image div.group p.row:nth-child(3) {
	left: calc(340px * 0.5);
}
main section#outline div.image div.group p.row:where(:nth-child(4), :nth-child(5)) {
	left: calc(760px * 0.5);
}
main section#outline div.image div.group p.row:nth-child(6) {
	left: calc(1100px * 0.5);
}
main section#history div.list div.row {
	align-items: flex-start;
}
main section#history div.list div.row:last-child:before,
main section#history div.list div.row::after {
	position: absolute;
	content: "";
}
main section#history div.list div.row::before {
	height: calc(100% - 27px);
	top: auto;
	bottom: 0px;
	background-color: #ffffff;
}
main section#history div.list div.row::after {
	top: 27px;
}
main section#history div.list div.row p.year {
	padding-top: 20px;
}
main section#history div.list div.row div.body-wrapper {
	display: block;
	padding: 20px;
}
main section#history div.list div.row div.body {
	width: auto;
}
main section#history div.list div.row:not(.row-label) div.body:not(:last-child) {
	margin-bottom: 10px;
}
main section#history div.list div.row div.body div.month-description {
	display: block;
	flex-wrap: wrap;
}
main section#history div.list div.row div.body div.month-description p.month {
	width: auto;
}
main section#history div.list div.row div.body div.month-description p.description {
	width: auto;
}
main section#office div.list div.row,
main section#office div.list div.row div.text {
	display: block;
}
main section#office div.list div.row div.text {
	width: auto;
}
main section#office div.list div.row div.text div.inner-text {
	padding: 20px;
}
main section#office div.list div.row div.map {
	width: auto;
}
main section#office div.list div.row div.map iframe {
	height: 250px;
}

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

main section#business header {
	text-align: justify;
	margin-bottom: 60px;
}
main section#business div.list div.row,
main section#business div.list div.row div.text {
	display: block;
}
main section#business div.list div.row div.text {
	width: auto;
}
main section#business div.list div.row div.text div.inner-text {
	padding: 20px;
}
main section#business div.list div.row div.text h2 {
	font-size: 1.75rem;
	line-height: 2.5rem;
}
main section#business div.list div.row p.image {
	width: auto;
}
main section#flow header {
	margin-bottom: 60px;
}
main section#flow header h2.headline-alternate {
	margin-bottom: 60px;
}
main section#flow div.list {
	display: block;
	margin: 0px;
}
main section#flow div.list div.row {
	width: auto;
	margin: 0px;
	padding: 20px;
}
main section#flow div.list div.row:not(:last-child) {
	margin-bottom: 40px;
}
main section#flow div.list div.row h3 {
	margin: 0px -20px 20px -20px;
}
main section#flow div.list div.row h3::before {
	width: calc(100% - 40px);
	left: 20px;
}

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

main div.list-products {
	display: block;
	margin: 0px;
}
main div.list-products div.row {
	width: auto;
	margin: 0px;
}
main div.list-products div.row:not(:last-child) {
	margin-bottom: 40px;
}
main article.products header,
main article.products div.block:not(:last-child) {
	margin-bottom: 80px;
}
main article.products header div.column {
	display: block;
}
main article.products header div.column::before {
	display: none;
}
main article.products header div.column div:where(.main, .sub) {
	padding-bottom: 0px;
}
main article.products header div.column div.main {
	width: auto;
	border-bottom: 1px solid #999999;
	margin-bottom: 20px;
	padding-bottom: 20px;
}
main article.products header div.column div.main h1 {
	font-size: 2rem;
	line-height: 2.75rem;
}
main article.products header div.column div.sub {
	width: auto;
}
main article.products header div.column div.sub p.description {
	margin-bottom: 20px;
}
main article.products header div.column div.sub div.navi {
	position: static;
	left: auto;
	bottom: auto;
}
main article.products header div.slide {
	margin: 0px -30px;
}
main article.products header div.slide div.image {
	aspect-ratio: 1000 / 700;
}
main article.products header div.slide div.pager p.button {
	width: 35px;
	height: 35px;
	top: calc(50% - 17.5px);
}
main article.products header div.slide div.pager p.button span.arrow {
	width: 35px;
	height: 35px;
	font-size: 0.5rem;
}
main article.products header div.slide div.pager p.button-prev {
	left: 10px;
}
main article.products header div.slide div.pager p.button-next {
	right: 10px;
}
main article.products header div.slide p.good-design {
	left: 20px;
	top: 20px;
}
main article.products header div.slide p.good-design img {
	width: calc(74px * 0.5);
}
main article.products header div.slide p.point {
	height: 30px;
	right: 10px;
	bottom: 10px;
	font-size: 0.75rem;
	line-height: 0.75rem;
	padding: 0px 15px;
	border-radius: 15px;
}
main article.products header.alternate {
	top: 75px;
}
body.admin-bar main article.products header.alternate {
	top: 75px;
}
main article.products header.alternate div.inner-header {
	height: auto;
	pointer-events: none;
	transition: 0.25s opacity ease;
}
div.scroll main article.products header.alternate div.inner-header,
main article.products header.alternate div.column {
	height: auto;
	pointer-events: auto;
}
main article.products header.alternate div.column {
	display: block;
	padding: 10px 30px;
}
main article.products header.alternate div.column::before {
	display: none;
}
main article.products header.alternate div.column div.main {
	display: none;
}
main article.products header.alternate div.column div.sub {
	width: auto;
}
main article.products header.alternate div.column div.sub div.navi ul li a::before {
	display: none;
}
main article.products div.block h2 {
	font-size: 1.75rem;
	line-height: 2.5rem;
}
main article.products div.block table:where(.spec-01, .spec-04, .example) {
	width: 660px;
}
main article.products div.block table.spec-01 thead th:nth-child(1) {
	width: 110px;
}
main article.products div.block table.spec-01 thead th:nth-child(2) {
	width: 330px;
}
main article.products div.block table.spec-01 thead th:nth-child(3) {
	width: 220px;
}
main article.products div.block table.spec-04 thead th:nth-child(4) {
	width: 330px;
}
main article.products div.block table.spec-05 {
	width: 880px;
}
main article.products div.block table.spec-05 thead th {
	width: 110px;
}
main article.products div.block table.example thead th:not(:nth-child(3)) {
	width: 165px;
}
main article.products div.block table.example thead th:nth-child(3) {
	width: 330px;
}
main article.products div.block-feature div:where(.list, .diagram, .list-alternate):not(:last-child) {
	margin-bottom: 60px;
}
main article.products div.block-feature div:where(.diagram, .image, .diagram-image, .list-alternate) {
	display: block;
}
main article.products div.block-feature div.diagram p.row {
	margin: 0px 0px 60px 0px;
}
main article.products div.block-feature div.diagram p.row:not(:last-child) {
	margin-right: auto;
}
main article.products div.block-feature div.image {
	margin: 0px;
}
main article.products div.block-feature div.image p.row {
	width: auto;
	margin: 0px;
}
main article.products div.block-feature div.image p.row:not(:last-child) {
	margin-bottom: 20px;
}
body.mitsuba-drain main article.products div.block-feature div.diagram-image p.diagram {
	margin: 0px 0px 60px 0px;
}
body.mitsuba-drain main article.products div.block-feature div.diagram-image p.image {
	width: auto;
}
body.artifact main article.products div.block-feature div.list-alternate {
	margin-right: 0px;
}
body.artifact main article.products div.block-feature div.list-alternate div.row {
	width: auto;
	margin-right: 0px;
}
body.artifact main article.products div.block-feature div.list-alternate div.row:not(:last-child) {
	margin-bottom: 40px;
}
body.artifact main article.products div.block-feature > p.description {
	text-align: justify;
}
main article.products div.block-spec > p:where(.description, .diagram):not(:last-child),
main article.products div.block-spec > div.table-wrapper:not(:last-child),
main article.products div.block-spec div:where(.diagram, .diagram-table-wrapper, .image-table-wrapper):not(:last-child) {
	margin-bottom: 60px;
}
main article.products div.block-spec div:where(.diagram, .diagram-table-wrapper, .image-table-wrapper) {
	display: block;
}
main article.products div.block-spec div.diagram p.row:not(:last-child),
main article.products div.block-spec div:where(.diagram-table-wrapper, .image-table-wrapper) div.table-wrapper:not(:last-child) {
	margin: 0px auto 60px auto;
}
main article.products div.block-spec div.image {
	display: block;
	margin: 0px;
}
main article.products div.block-spec div.image p.row {
	width: auto;
	margin: 0px;
}
main article.products div.block-spec div.image p.row:not(:last-child) {
	margin-bottom: 20px;
}
body.elasto-drain main article.products div.block-spec div.image-table-wrapper div.table-wrapper {
	margin-right: 0px;
}
body.arch-drain-surface-drain main article.products div.block-spec p.diagram {
	margin-left: 0px;
}
body.arch-roofing-surface-drain main article.products div.block-spec p.diagram {
	margin-left: 0px;
}
main article.products div.block-example div.list {
	padding: 20px;
}
main article.products div.block-example div:where(.headline-diagram, .image-diagram) {
	display: block;
}
main article.products div.block-example div.headline-diagram :where(h3, p.diagram),
main article.products div.block-example div.image-diagram p:where(.image, .diagram) {
	width: auto;
}
main article.products div.block-example div.headline-diagram h3 {
	margin-bottom: 20px;
}
main article.products div.block-example div.image-diagram p.image:not(:last-child) {
	margin-bottom: 20px;
}
body.driven-in-drain main article.products div.block-example p.diagram {
	margin-left: 0px;
}
body.mizuderun main article.products div.block-example div.list-alternate div.row {
	display: block;
}
body.mizuderun main article.products div.block-example div.list-alternate div.row:not(:last-child) {
	margin-bottom: 60px;
}
body.mizuderun main article.products div.block-example div.list-alternate div.row h3 {
	margin: 0px 0px 20px 0px;
}
body.slope-drain main article.products div.block-example div.list-alternate {
	margin: 0px;
}
body.slope-drain main article.products div.block-example div.list-alternate {
	display: block;
}
body.slope-drain main article.products div.block-example div.list-alternate div.row {
	margin: 0px;
}
body.slope-drain main article.products div.block-example div.list-alternate div.row:not(:last-child) {
	margin-bottom: 60px;
}
body.slope-drain main article.products div.block-example div.list-alternate div.row h3 {
	margin-bottom: 20px;
}
body.slope-drain main article.products div.block-example div.list-alternate div.row-03 div.diagram-table-wrapper {
	display: block;
}
body.slope-drain main article.products div.block-example div.list-alternate div.row-03 p.diagram {
	margin: 0px 0px 60px 0px;
}
main article.products div.block-products-alternate h3 {
	margin-bottom: 20px;
}
main article.products div.block-products-alternate div.diagram-table-wrapper {
	display: block;
}
main article.products div.block-products-alternate div.diagram-table-wrapper:not(:last-child) {
	margin-bottom: 60px;
}
main article.products div.block-products-alternate div.diagram-table-wrapper p.diagram {
	margin: 0px 0px 60px 0px;
}
body.extrusions main article.products div.block-products-alternate div.diagram-table-wrapper p.diagram {
	margin-left: 0px;
}
main article.products div.block-works div.list-works-wrapper {
	margin-bottom: 0px;
}
main article.products div.block-faq div.segment-faq-wrapper {
	padding: 40px 20px;
}
main div#search {
	margin-bottom: 60px;
}
main div#search div.headline-form {
	display: block;
}
main div#search h2 {
	font-size: 1.75rem;
	line-height: 2.5rem;
	margin-bottom: 20px;
}
main div#search form {
	width: auto;
}
main div#search form p.label {
	width: 100%;
	margin-bottom: 10px;
}
main div#search form input[type=text] {
	width: calc(100% - 90px);
}
main div#search div.detail div.inner-detail {
	padding: 20px;
}
main div#search div.detail div.segment:last-child {
	padding: 0px 0px 70px 0px;
}
main div#search div.detail p.button-clear {
	right: 20px;
	bottom: 20px;
}

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

main section#basic header {
	margin-bottom: 80px;
}
main section#basic header p.image {
	padding: 20px;
}
main section#basic div.headline-symbol {
	display: block;
}
main section#basic div.headline-symbol p.headline {
	text-align: center;
	font-size: 2rem;
	line-height: 2.75rem;
	margin: 0px 0px 40px 0px;
}
main section#basic div.headline-symbol p.symbol {
	width: calc(345px * 0.75);
	margin: 0px auto;
}
main section:where(#basic, #contribution) p.description {
	padding: 0px;
}
main section#contribution p.logo {
	margin-bottom: 60px;
}
main section#contribution p.logo img {
	width: calc(590px * 0.5);
}
main section#activity div.list div.row {
	padding: 20px;
}
main section#activity div.list div.row div.icon-text {
	display: block;
}
main section#activity div.list div.row:has(div.busters) div.icon-text {
	margin-bottom: 60px;
	padding-bottom: 60px;
}
main section#activity div.list div.row div.icon-text p.icon {
	width: auto;
	max-width: calc(215px * 0.75);
	margin: 0px auto 20px auto;
}
main section#activity div.list div.row div.icon-text div.text {
	width: auto;
}
main section#activity div.list div.row div.busters {
	padding: 0px;
}
main section#activity div.list div.row div.busters p.description {
	width: auto;
	margin-bottom: 20px;
}
main section#activity div.list div.row div.busters p.button-default {
	margin-top: 0px;
}
main section#activity div.list div.row div.busters p.button-default a {
	width: 100%;
}

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

main div.list-news-column div.row a,
main div.list-news-alternate div.row a,
main div.list-column-alternate {
	display: block;
}
main div.list-news-column div.row p.image {
	width: auto;
	margin-bottom: 20px;
}
main div.list-news-column div.row div.text {
	width: auto;
	padding-bottom: 40px;
}
main div.list-news-column div.row div.text h3 span.arrow,
main div.list-news-alternate div.row h3 span.arrow {
	top: auto;
}
main div.list-news-column div.row div.text h3 {
	padding-right: 0px;
}
main div.list-news-column div.row div.text h3 span.arrow {
	display: none;
}
main div.list-news-column div.row div.text p.more-alternate {
	display: block;
	position: absolute;
	right: 0px;
	bottom: 0px;
}
main div.list-news-column div.row div.text p.more-alternate span.arrow {
	width: 35px;
	height: 35px;
	font-size: 0.5rem;
	color: #ffffff;
	background-color: #696969;
}
main div.list-news-alternate div.row {
	padding-bottom: 20px;
}
main div.list-news-alternate div.row div.created-category {
	width: auto;
	margin-bottom: 10px;
}
main div.list-news-alternate div.row h3 {
	width: auto;
	padding: 0px 0px 40px 0px;
}
main div.list-news-alternate div.row h3 span.arrow {
	top: auto;
	bottom: 0px;
}
main div.list-column-alternate {
	margin: 0px;
}
main div.list-column-alternate div.row {
	width: auto;
	margin: 0px;
}
main div.list-column-alternate div.row:not(:last-child) {
	margin-bottom: 40px;
}
main article.news-column {
	width: auto;
}
main article.news-column header h1 {
	font-size: 1.5rem;
	line-height: 2.25rem;
}

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

main div.list-works {
	display: block;
	margin: 0px;
}
main div.list-works div.row {
	width: auto;
	margin: 0px;
}
main div.list-works div.row:not(:last-child) {
	margin-bottom: 40px;
}

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

main div.segment-faq h3 {
	padding: 40px 35px 40px 10px;
}
main div.segment-faq h3 span {
	width: 25px;
	height: 25px;
	right: 10px;
	top: calc(50% - 12.5px);
}
main div.segment-faq h3 span i::before,
main div.segment-faq h3 span i::after {
	width: 8px;
	left: calc(50% - 4px);
}
main div.list-faq div.row {
	padding: 40px 0px;
}
main div.list-faq div.row h4 {
	margin-bottom: 20px;
	padding-left: 40px;
}
main div.list-faq div.row h3::before,
main div.list-faq div.row div.answer::before {
	top: -5px;
	font-size: 2rem;
	line-height: 2rem;
}
main div.list-faq div.row div.answer {
	padding-left: 40px;
}
main div.list-faq div.row div.answer::before {
	left: 0px;
}
main div.list-faq div.row div.answer div.body {
	margin-bottom: 20px;
}
main div.list-faq div.row div.answer div.category-products {
	display: block;
	margin-left: 0px;
}
main div.list-faq div.row div.answer div.category-products div:where(.category, .products):not(:last-child) {
	margin-right: 0px;
}

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

main section.form div.header {
	margin-bottom: 60px;
}
main section.form div.form div.component {
	display: block;
}
main section.form div.form div.component-catalog {
	margin-right: 0px;
}
main section.form div.mw_wp_form_preview div.form div.component {
	padding: 20px 0px;
}
main section.form div.form div.component p.label {
	width: auto;
	height: auto;
	margin-bottom: 10px;
}
main section.form div.form div.component div.body {
	width: auto;
}
main section.form div.form div.component-catalog div.body {
	display: block;
}
main section.form div.form div.component div.body div.list div.row {
	display: block;
}
main section.form div.form div.component div.body div.list div.row:not(:last-child) {
	margin-bottom: 30px;
}
main section.form div.form div.component div.body div.list div.row p.label-row {
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 10px;
}
main section.form div.mw_wp_form_preview div.form div.component div.body div.list div.row p.label-row {
	width: 100%;
}
main section.form div.form div.component div.body div.list div.row div.body-row {
	width: 100%;
}
main section.form div.mw_wp_form_preview div.form div.component div.body div.list div.row div.body-row {
	width: 100%;
}
main section.form div.form div.component div.body div.list div.row div.body-row div.postal-code-01 {
	width: calc(calc(calc(100% - 120px) * 0.5) * 0.875);
}
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: calc(calc(calc(100% - 120px) * 0.5) * 1.125);
}
main section.form div.form div.component div.body div.list div.row div.body-row div.postal-code-alternate {
	width: calc(100% - 100px);
}
main section.form div.form div.component div.body div.list div.row div.body-row p#button-auto {
	margin-right: 0px;
}
main section.form div.form div.component div.body div.list div.row div.body-row p.note {
	display: block;
	width: 100%;
	height: auto;
	text-align: right;
	padding-top: 10px;
}
main section.form div.form div.component div.body span:where(.mwform-radio-field, .mwform-checkbox-field) {
	margin-top: 5px;
}
main section.form div.form div.component-catalog div.body span.mwform-checkbox-field {
	display: block;
	width: auto;
}
main section.form div.form div.agreement {
	width: auto;
	margin: 0px 0px 60px 0px;
}
main section.form div.form div.agreement span.horizontal-item ~ p {
	margin-right: -40px;
}
main section.form div.form div.agreement span.error {
	top: 25px;
}
main section.form div.form div.agreement p.note {
	padding-top: 20px;
}
main section.form div.form div.action {
	display: block;
	padding-left: 0px;
}
main section.form div.mw_wp_form_preview div.form div.action button {
	width: 100%;
}
main section.form div.form div.action button:not(:last-child) {
	margin: 0px 0px 20px 0px;
}
main section#contact div.header div.list div.row-tel p.tel span.number {
	font-size: 1.5rem;
	margin-right: 0px;
}
main section#catalog div.catalog {
	margin-bottom: 60px;
	padding: 60px 0px;
}
main section#catalog div.catalog p.description {
	text-align: justify;
	margin-bottom: 40px;
	padding: 0px 20px;
}
main section#catalog div.catalog div.list {
	margin: 0px -10px -10px 0px;
}
main section#catalog div.catalog div.list div.row {
	width: calc(50% - 10px);
	margin: 0px 10px 10px 0px;
	padding: 20px 20px 10px 20px;
}
main section#catalog-download div.list {
	margin: 0px -10px -10px 0px;
}
main section#catalog-download div.list div.row {
	width: calc(50% - 10px);
	margin: 0px 10px 10px 0px;
	padding: 20px 20px 10px 20px;
}

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

main section#site-map ul {
	display: block;
	margin: 0px;
}
main section#site-map ul li {
	width: auto;
	margin: 0px;
}
main section#site-map ul li:not(:last-child) {
	margin-bottom: 20px;
}
main section#site-map ul li.products {
	width: auto;
}
main section#site-map div.nest {
	padding: 20px 0px 0px 0px;
}
main section#site-map div.nest ul li:not(:last-child) {
	margin-bottom: 20px;
}

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

main section#privacy-policy div.list div.row:not(:last-child) {
	margin-bottom: 40px;
}



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

div#modal div.inner-modal {
	display: block;
	padding: 70px 0px 40px 0px;
}
div#modal p.button-close {
	width: 40px;
	height: 40px;
	right: 20px;
	top: 20px;
}
body.admin-bar div#modal p.button-close {
	top: 20px;
}
div#modal p.button-close::before,
div#modal p.button-close::after {
	width: 40px;
  left: calc(50% - 20px);
	top: calc(50% - 8px);
}
div#modal p.button-close span {
	bottom: 0px;
	font-size: 0.625rem;
}
div#modal div.slide {
	width: 100%;
	max-width: none;
}
div#modal div.slide div.list div.row div.text {
	padding: 0px 40px;
}
div#modal div.slide div.list div.row div.text p.products {
	padding-right: 0px;
}
div#modal div.slide div.list div.row div.text p.products:not(:last-child) {
	margin-bottom: 20px;
}
div#modal div.slide div.list div.row div.text div.navi {
	position: static;
	right: auto;
	bottom: auto;
}
div#modal div.slide div.list div.row div.text div.navi p.button {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 120px;
	height: 40px;
	cursor: pointer;
	background: linear-gradient(115deg, #4561d8, #57b2b2);
	border-radius: 20px;
	transition: 0.25s filter ease;
	filter: brightness(0.625);
}
div#modal div.slide div.list div.row div.text div.navi p.button:where(:hover, .active) {
	filter: brightness(1);
}
div#modal div.slide div.list div.row div.text div.navi p.button:not(:last-child) {
	margin-right: 10px;
}



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

footer#footer div.contact {
	padding: 60px 40px;
}
footer#footer div.contact p.description {
	text-align: justify;
}
footer#footer div.contact div.button-wrapper {
	display: block;
	margin-right: 0px;
}
footer#footer div.contact p.button-default {
	width: auto;
	margin-right: 0px;
}
footer#footer div.contact p.button-default:not(:last-child) {
	margin-bottom: 20px;
}
footer#footer div.contact p.button-default a {
	height: 100px;
	padding-left: 70px;
}
footer#footer div.contact p.button-default i.icon {
	left: 20px;
	top: calc(50% - 1.125rem);
	font-size: 2.25rem;
}
footer#footer div.contact p.button-default span.text {
	font-size: 1.125rem;
	line-height: 1.5rem;
}
footer#footer div.contact p.button-default span.text i.label {
	font-size: 1rem;
	margin-right: 5px;
}
footer#footer div.contact p.button-default span.text i.time {
	font-size: 0.875rem;
	line-height: 1.25rem;
}
footer#footer nav#navi-footer {
	padding: 60px 40px;
}
footer#footer nav#navi-footer p#button-page-top {
	display: none;
}
footer#footer nav#navi-footer div:where(.main, .sub) {
	width: auto;
}
footer#footer nav#navi-footer div.main {
	border-bottom: none;
	margin-bottom: 10px;
	padding-right: 0px;
	padding-bottom: 0px;
}
footer#footer nav#navi-footer div:where(.main, .sub) ul {
	display: block;
}
footer#footer nav#navi-footer div.main ul {
	margin-bottom: 40px;
}
footer#footer nav#navi-footer div.main ul li:not(:last-child) {
	margin: 0px 0px 20px 0px;
}
footer#footer nav#navi-footer div.main ul li a {
	height: 35px;
	padding-right: 0px;
}
footer#footer nav#navi-footer div.sub {
	display: none;
}
footer#footer nav#navi-footer div.banner {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	position: static;
	right: auto;
	top: auto;
	margin-right: -20px;
}
footer#footer nav#navi-footer div.banner p.row {
	width: calc(50% - 20px);
	margin-right: 20px;
}
footer#footer nav#navi-footer div.banner p.row:not(:last-child) {
	margin-bottom: 0px;
}
footer#footer nav#navi-footer div.banner p.row a {
	width: auto;
}
footer#footer div.misc {
	width: auto;
}
body.single-products footer#footer div.misc {
	padding-bottom: 70px;
}
footer#footer div.misc div.information-sns div.information {
	display: block;
	text-align: center;
	text-indent: 0.05em;
}
footer#footer div.misc div.information-sns div.information p.logo {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 0px 0px 20px 0px;
}
footer#footer div.misc div.information-sns div.information h3 {
	margin-right: 0px;
}
footer#footer div.misc div.information-sns div.information p.address {
	margin-bottom: 30px;
}
footer#footer div.misc div.information-sns div.sns {
	position: static;
	right: auto;
	top: auto;
}
footer#footer div.misc div.information-sns div.sns ul {
	justify-content: center;
}
