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

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



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

html {
	font-size: 16px;
}
body {
	text-align: justify;
	overflow-wrap: break-word;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.9375rem;
	font-weight: 400;
	font-feature-settings: "palt";
	line-height: 1.875rem;
	color: #383838;
	letter-spacing: 0.025em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
body:where(.single, .business-01, .business-02, .business-03, .business-04, .sustainability) {
	background-color: #f5f5f5;
}
a.underline {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.25em;
}
a.color {
	transition: 0.375s color ease;
}
a.color:hover {
	color: #dc0012;
}
h1 {
	font-size: 1.5rem;
	line-height: 2.25rem;
}
h2 {
	font-size: 1.375rem;
}
h3 {
	font-size: 1.25rem;
}
h4 {
	font-size: 1.0625rem;
}
h5,
h6 {
	font-size: 0.9375rem;
}
p.note {
	font-size: 0.8125rem;
	line-height: 1.5rem;
}
p:empty:before {
	content: none;
}
span.required {
	color: #dc0012;
}
*.indent {
	text-indent: -1em;
	padding-left: 1em;
}
*:focus-visible,
input:where([type="radio"], [type="checkbox"]):focus-visible + span {
	outline: 2px solid #dc0012;
	outline-offset: 1px;
}



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

label {
	display: inline-block;
	vertical-align: text-top;
}
input:where([type=text], [type=email], [type=number], [type=password], [type=search], [type=button], [type=submit]),
button,
textarea,
select,
:where(label, span).checkbox input[type=checkbox] + span,
label.file div.alternate p.button-file {
	border-radius: 2.5px;
}
input:where([type=text], [type=email], [type=number], [type=password], [type=search], [type=button], [type=submit]),
button,
textarea,
select {
	max-width: 100%;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	appearance: none;
}
input:where([type=text], [type=email], [type=number], [type=password], [type=search]),
textarea,
select,
:where(:where(label, span).radio input[type=radio], :where(label, span).checkbox input[type=checkbox]) + span {
	border: none;
	background-color: #f5f5f5;
}
input:where([type=text], [type=email], [type=number], [type=password], [type=search]),
textarea,
select {
	vertical-align: top;
	color: #383838;
}
input:where([type=text], [type=email], [type=number], [type=password], [type=search]),
select {
	height: 60px;
	padding: 0px 15px;
}
input:where([type=button], [type=submit]),
button,
label.file div.alternate p.button-file {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	height: 60px;
	text-align: center;
	font-weight: 500;
	line-height: 1.25rem;
	color: #ffffff;
	border: none;
	cursor: pointer;
	background-color: #383838;
	border-radius: 30px;
	transition: 0.375s background-color ease;
}
input:where([type=button], [type=submit]):hover,
button:hover,
label.file div.alternate p.button-file:hover {
	background-color: #dc0012;
}
input:where([type=button], [type=submit]),
button {
	width: 100%;
	max-width: 320px;
}
button {
	position: relative;
	overflow: hidden;
}
button::before {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
	background-color: #dc0012;
	content: "";
	transition: 0.375s transform ease;
	transform-origin: left top;
	transform: scaleX(0);
}
button:hover::before {
	transform: scaleX(1);
}
button span {
	position: relative;
}
input:where([type=radio], [type=checkbox]),
:where(:where(label, span).radio input[type=radio], :where(label, span).checkbox input[type=checkbox]) + span {
	aspect-ratio: 1;
	width: 25px;
}
:where(label, span):where(.radio, .checkbox) {
	display: inline-block;
	position: relative;
	vertical-align: text-top;
	margin-right: 5px;
}
input:where([type=radio], [type=checkbox]) {
	margin-right: 5px;
}
:where(label, span).radio input[type=radio],
:where(label, span).checkbox input[type=checkbox] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0px;
	opacity: 0;
}
:where(:where(label, span).radio input[type=radio], :where(label, span).checkbox input[type=checkbox]) + span {
	display: block;
	position: relative;
	cursor: pointer;
}
:where(:where(label, span).radio input[type=radio], :where(label, span).checkbox input[type=checkbox]) + span::before {
	position: absolute;
	content: "";
	opacity: 0;
	transition: 0.375s opacity ease;
}
:where(:where(label, span).radio input[type=radio], :where(label, span).checkbox input[type=checkbox]):checked + span::before {
	opacity: 1;
}
:where(label, span).radio input[type=radio] + span,
:where(label, span).radio input[type=radio] + span::before {
	border-radius: 50%;
}
:where(label, span).radio input[type=radio] + span::before {
	aspect-ratio: 1;
	width: 12px;
	left: calc(50% - calc(12px * 0.5));
	top: calc(50% - calc(12px * 0.5));
	background-color: #383838;
}
:where(label, span).checkbox input[type=checkbox] + span {
	border-radius: 5px;
}
:where(label, span).checkbox input[type=checkbox] + span::before {
	width: 10px;
	height: 15px;
	left: calc(calc(50% - calc(10px * 0.5)) + 1px);
	top: calc(50% - calc(15px * 0.5));
	border-right: 2px solid #383838;
	border-bottom: 2px solid #383838;
	transform: translate(-1px, -3px) rotate(45deg);
}
label.file {
	display: block;
	position: relative;
}
label.file input[type=file] {
	position: absolute;
	width: 100%;
	height: 100%;
	opacity: 0;
}
label.file div.alternate {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	position: relative;
	padding-right: 20px;
}
label.file div.alternate p:where(.button-file, .button-clear) {
	cursor: pointer;
}
label.file div.alternate p.button-file {
	width: 160px;
}
label.file div.alternate p.button-clear {
	display: none;
	position: absolute;
	width: 20px;
	height: 50px;
	right: 0px;
	top: 0px;
}
label.file.selected div.alternate p.button-clear {
	display: block;
}
label.file div.alternate p.button-clear::before,
label.file div.alternate p.button-clear::after {
	position: absolute;
	width: 100%;
	height: 0px;
	left: 0px;
	top: calc(50% - 1px);
	border-bottom: 2px solid #383838;
	content: "";
}
label.file div.alternate p.button-clear::before {
	transform: rotate(45deg);
}
label.file div.alternate p.button-clear::after {
	transform: rotate(-45deg);
}
label.file div.alternate p.name {
	width: calc(100% - 170px);
}
textarea {
	padding: 10px 15px;
}
select {
	padding-right: 40px;
	background-image: url(../images/arrow-select.svg);
	background-repeat: no-repeat;
	background-position: right 15px center;
	background-size: auto 10px;
}
::placeholder {
	color: #d9d9d9;
}
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.woff") format("woff");
	font-weight: normal !important;
	font-style: normal !important;
}
i.icon {
	font-family: "icon";
	line-height: 1em;
}
i.icon-symbol::before {
	content: "\e900";
}
i.icon-new-window::before {
	content: "\e901";
}
i.icon-instagram::before {
	content: "\e902";
}



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

br.small {
	display: none;
}
br.large {
	display: inline;
}
img.small {
	display: none;
}
img.large {
	display: block;
}
hr {
	height: 0px;
	border: none;
	border-bottom: 1px solid #d9d9d9;
	margin: 20px 0px;
}
iframe:where([src*="youtube.com"], .wp-embedded-content),
video {
	width: 100%;
}
iframe[src*="youtube.com"],
video {
	aspect-ratio: 16 / 9;
	height: auto;
}
mark {
	margin: 0px 5px;
	padding: 0px 5px;
	background-color: #f5f5f5;
	border-radius: 5px;
}



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

div#page {
	position: relative;
	overflow: hidden;
}
div#trigger {
	position: absolute;
	top: 50svh;
}
i.icon-symbol-circle {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	aspect-ratio: 1;
	width: 25px;
	font-size: 0.9375rem;
	border: 1px solid #383838;
	border-radius: 50%;
	transition: 0.375s color ease, 0.375s border-color ease, 0.375s background-color ease;
}
a:hover i.icon-symbol-circle {
	color: #ffffff;
	border-color: #dc0012;
	background-color: #dc0012;
}
i.icon-symbol-circle::before {
	transition: 0.375s transform ease;
}
a:hover i.icon-symbol-circle::before {
	transform: rotate(180deg);
}
p.button-default,
p.button-default > * {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
p.button-default {
	text-align: center;
	font-weight: 500;
	line-height: 1.25rem;
}
p.button-default > *,
p.button-default > * > * {
	position: relative;
}
p.button-default > * {
	align-items: center;
	width: 100%;
	max-width: 320px;
	height: 60px;
	overflow: hidden;
	color: #ffffff;
	background-color: #383838;
	border-radius: 30px;
	transition: 0.375s color ease;
}
p.button-default > *::before {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
	background-color: #dc0012;
	content: "";
	transition: 0.375s transform ease;
	transform-origin: left top;
	transform: scaleX(0);
}
p.button-default > *:hover::before {
	transform: scaleX(1);
}
p.button-alternate > * {
	color: #383838;
	border: 1px solid #383838;
	background-color: transparent;
	border-radius: 30px;
	transition: 0.375s color ease, 0.375s border-color ease;
}
p.button-alternate > *:hover {
	color: #ffffff;
	border-color: #dc0012;
}
p.button-default i.icon-symbol {
	position: absolute;
	right: 15px;
	top: calc(50% - 10px);
	font-size: 1.25rem;
}
p.button-default i.icon-new-window {
	display: inline-block;
	margin-left: 5px;
	transform: translateY(1px);
}
p.button-back {
	justify-content: flex-end;
}
p.button-back a {
	width: 140px;
	height: 40px;
	border-radius: 20px;
}
p.image {
	overflow: hidden;
}
p.image img {
	width: 100%;
}
p.image-zoom img {
	transition: 0.375s transform ease;
}
a:hover p.image-zoom img,
p.image-zoom a:hover img {
	transform: scale(1.0375);
}
*.scroll:where(.fade, .fade-slide, .fade-zoom, .fade-zoom-alternate, .fade-bounce),
*.scroll:where(.fade-each, .fade-each-slide, .fade-each-zoom, .fade-each-zoom-alternate, .fade-each-bounce) > * {
	opacity: 0;
	transition-duration: 1.25s;
}
*.scroll:where(.fade, .fade-slide, .fade-zoom, .fade-zoom-alternate, .fade-bounce).active,
*.scroll:where(.fade-each, .fade-each-slide, .fade-each-zoom, .fade-each-zoom-alternate, .fade-each-bounce).active > * {
	opacity: 1;
}
*.scroll.fade,
*.scroll.fade-each > * {
	transition-property: opacity;
	transition-timing-function: ease-in-out;
}
*.scroll.fade-slide,
*.scroll.fade-each-slide > * {
	transition-property: opacity, transform;
	transition-timing-function: ease-in-out, ease;
}
*.scroll.fade-slide-left,
*.scroll.fade-each-slide-left > * {
	transform: translate(40px, 0px);
}
*.scroll.fade-slide-right,
*.scroll.fade-each-slide-right > * {
	transform: translate(-40px, 0px);
}
*.scroll.fade-slide-up,
*.scroll.fade-each-slide-up > * {
	transform: translate(0px, 40px);
}
*.scroll.fade-slide-down,
*.scroll.fade-each-slide-down > * {
	transform: translate(0px, -40px);
}
*.scroll.fade-slide.active,
*.scroll.fade-each-slide.active > * {
	transform: translate(0px, 0px);
}
*.scroll:where(.fade-zoom, .fade-zoom-alternate, .fade-bounce),
*.scroll:where(.fade-each-zoom, .fade-each-zoom-alternate, .fade-each-bounce) > * {
	transition-property: opacity, transform;
}
*.scroll:where(.fade-zoom, .fade-zoom-alternate, .fade-bounce).active,
*.scroll:where(.fade-each-zoom, .fade-each-zoom-alternate, .fade-each-bounce).active > * {
	transform: scale(1);
}
*.scroll.fade-zoom,
*.scroll.fade-each-zoom > * {
	transition-timing-function: ease-in-out, ease;
	transform: scale(0.875);
}
*.scroll.fade-zoom-alternate,
*.scroll.fade-each-zoom-alternate > * {
	transition-timing-function: ease-in-out, linear(0, 0.402 7.4%, 0.711 15.3%, 0.929 23.7%, 1.008 28.2%, 1.067 33%, 1.099 36.9%, 1.12 41%, 1.13 45.4%, 1.13 50.1%, 1.111 58.5%, 1.019 83.2%, 1.004 91.3%, 1);
	transform: scale(0.375);
}
*.scroll.fade-zoom.active,
*.scroll.fade-each-zoom.active > *,
*.scroll.fade-zoom-alternate.active,
*.scroll.fade-each-zoom-alternate.active > *,
*.scroll.fade-bounce.active,
*.scroll.fade-each-bounce.active > * {
	transform: scale(1);
}
*.scroll.fade-bounce,
*.scroll.fade-each-bounce > * {
	transition-timing-function: ease-in-out, linear(0, 0.016, 0.063 9.1%, 0.25, 0.563, 1, 0.813 45.5%, 0.766, 0.75, 0.766, 0.813 63.6%, 1 72.7%, 0.953, 0.938, 0.953, 1, 0.984, 1);
	transform: scale(0.75);
}
*.split-text {
	opacity: 0;
}
html.active *.split-text {
	opacity: 1;
}
*.split-text > *:not(br) {
	display: inline-block;
}
*.delay-01 {
	transition-delay: calc(0.125s * 1);
}
*.delay-02 {
	transition-delay: calc(0.125s * 2);
}
*.delay-03 {
	transition-delay: calc(0.125s * 3);
}
*.delay-04 {
	transition-delay: calc(0.125s * 4);
}
*.delay-05 {
	transition-delay: calc(0.125s * 5);
}
*.delay-06 {
	transition-delay: calc(0.125s * 6);
}
*.delay-07 {
	transition-delay: calc(0.125s * 7);
}
*.delay-08 {
	transition-delay: calc(0.125s * 8);
}
*.delay-09 {
	transition-delay: calc(0.125s * 9);
}
*.delay-10 {
	transition-delay: calc(0.125s * 10);
}
div.grecaptcha-badge {
	z-index: 10;
	bottom: 80px !important;
}



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

header#header {
	position: relative;
	z-index: 100;
}
header#header :where(*#logo, nav#navi, p.instagram) {
	position: fixed;
}
header#header *#logo {
	left: 15px;
	top: 15px;
}
body.admin-bar header#header *#logo {
	top: 47px;
}
header#header *#logo svg {
	width: 105px;
}
header#header div#menu nav#navi {
	right: 55px;
	top: 35px;
}
body.admin-bar header#header div#menu nav#navi {
	top: 67px;
}
header#header div#menu nav#navi div.list,
header#header div#menu nav#navi div.list div.row > ul {
	display: flex;
	flex-wrap: wrap;
}
header#header div#menu nav#navi div.list div.row > ul > li {
	position: relative;
}
header#header div#menu nav#navi div.list div.row > ul > li > a {
	display: block;
	position: relative;
	font-weight: 500;
	padding: 5px 15px;
}
body.company header#header div#menu nav#navi div.list div.row > ul > li.company > a.color,
body:where(.business-01, .business-02, .business-03, .business-04) header#header div#menu nav#navi div.list div.row > ul > li.business > a.color,
body:where(.group-01, .group-02, .group-03, .group-04, .group-05, .group-06) header#header div#menu nav#navi div.list div.row > ul > li.group > a.color,
body.news header#header div#menu nav#navi div.list div.row > ul > li.news > a.color,
body.work header#header div#menu nav#navi div.list div.row > ul > li.work > a.color,
body.archive header#header div#menu nav#navi div.list div.row > ul > li.archive > a.color,
body.sustainability header#header div#menu nav#navi div.list div.row > ul > li.sustainability > a.color,
body.contact header#header div#menu nav#navi div.list div.row > ul > li.contact > a.color {
	color: #dc0012;
}
header#header div#menu nav#navi div.list div.row > ul > li > a::before {
	position: absolute;
	aspect-ratio: 1;
	width: 20px;
	left: calc(50% - 10px);
	top: -15px;
	font-family: "icon";
	font-size: 1.25rem;
	color: #dc0012;
	content: "\e900";
	opacity: 0;
	transition: 0.375s opacity ease, 0.375s transform ease;
	transform: translateY(5px) rotate(-90deg);
}
header#header div#menu nav#navi div.list div.row > ul > li:hover > a::before,
body.company header#header div#menu nav#navi div.list div.row > ul > li.company > a::before,
body:where(.business-01, .business-02, .business-03, .business-04) header#header div#menu nav#navi div.list div.row > ul > li.business > a::before,
body:where(.group-01, .group-02, .group-03, .group-04, .group-05, .group-06) header#header div#menu nav#navi div.list div.row > ul > li.group > a::before,
body.news header#header div#menu nav#navi div.list div.row > ul > li.news > a::before,
body.work header#header div#menu nav#navi div.list div.row > ul > li.work > a::before,
body.archive header#header div#menu nav#navi div.list div.row > ul > li.archive > a::before,
body.sustainability header#header div#menu nav#navi div.list div.row > ul > li.sustainability > a::before,
body.contact header#header div#menu nav#navi div.list div.row > ul > li.contact > a::before {
	opacity: 1;
	transform: translateY(0px) rotate(-90deg);
}
header#header div#menu nav#navi div.list div.row > ul > li i.icon-new-window {
	display: inline-block;
	margin-left: 5px;
	transform: translateY(1px);
}
header#header div#menu nav#navi div.list div.row > ul > li div.nest {
	position: absolute;
	width: 100px;
	height: 0px;
	left: 0px;
	top: 40px;
	overflow: hidden;
	background-color: #f5f5f5;
	border-radius: 10px;
	transition: 0.375s height ease;
}
body:where(.single, .business-01, .business-02, .business-03, .business-04, .sustainability) header#header div#menu nav#navi div.list div.row > ul > li div.nest {
	background-color: #ffffff;
}
header#header div#menu nav#navi div.list div.row > ul > li:hover div.nest:has(li:nth-child(4)) {
	height: calc(calc(1.5rem * 4) + calc(5px * 3) + 30px);
}
header#header div#menu nav#navi div.list div.row > ul > li:hover div.nest:has(li:nth-child(5)) {
	height: calc(calc(1.5rem * 5) + calc(5px * 4) + 30px);
}
header#header div#menu nav#navi div.list div.row > ul > li:hover div.nest:has(li:nth-child(6)) {
	height: calc(calc(1.5rem * 6) + calc(5px * 5) + 30px);
}
header#header div#menu nav#navi div.list div.row > ul > li.group div.nest {
	width: 230px;
}
header#header div#menu nav#navi div.list div.row > ul > li div.nest ul {
	padding: 15px 0px 15px 20px;
}
header#header div#menu nav#navi div.list div.row > ul > li div.nest ul li {
	font-size: 0.8125rem;
	line-height: 1.5rem;
}
header#header div#menu nav#navi div.list div.row > ul > li div.nest ul li:not(:last-child) {
	margin-bottom: 5px;
}
header#header div#menu p.instagram {
	right: 20px;
	top: 40px;
	font-size: 1.625rem;
}
body.admin-bar header#header div#menu p.instagram {
	top: 72px;
}

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

body.home header#header *#logo svg :where(path, rect:not([style*="fill:none"])) {
	transition: 0.375s fill ease;
}
body.home div:not(:where(.main-alternate, .menu-header)) header#header *#logo svg :where(#g, #h, #i, #m, #j, #n, #k) {
	fill: #ffffff !important;
}
body.home div:not(:where(.main-alternate, .menu-header)) header#header div#menu nav#navi div.list div.row > ul > li:hover > a {
	color: #dc0012;
}
body.home div:not(:where(.main-alternate, .menu-header)) header#header div#menu nav#navi div.list div.row > ul > li:not(:hover) > a,
body.home div:not(:where(.main-alternate, .menu-header)) header#header div#menu p.instagram a.color:not(:hover) {
	color: #ffffff;
}



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

div:where(#cover, #space-cover) {
	height: 100lvh;
}
div#cover {
	position: fixed;
	width: 100%;
	left: 0px;
	top: 0px;
	z-index: 1;
}
body.admin-bar div:where(#cover, #space-cover) {
	height: calc(100lvh - 32px);
}
body.admin-bar div#cover {
	top: 32px;
}
div.main div#cover {
	visibility: hidden;
}
div#cover :where(div.image, p.button-scroll),
div#cover div.image p.row,
div#cover div.image p.row span {
	position: absolute;
}
div#cover div.image,
div#cover div.image p.row,
div#cover div.image p.row span {
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
}
div#cover div.image p.row span {
	display: block;
	animation-duration: 6.75s;
	animation-timing-function: linear;
	animation-iteration-count: 1;
	animation-fill-mode: forwards;
}
div#cover div.image p.row span.zoom {
	animation-name: cover-image;
}
@keyframes cover-image {
	0% { transform: scale(1); }
	100% { transform: scale(1.0625); }
}
div#cover div.image p.row img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
div#cover p.button-scroll {
	position: absolute;
	right: 20px;
	bottom: 30px;
	z-index: 10;
	text-align: center;
	font-family: "Roboto", sans-serif;
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 20px;
}
div#cover p.button-scroll a {
	display: block;
	position: relative;
	width: 60px;
}
div#cover p.button-scroll a::before,
div#cover p.button-scroll span {
	transition: 0.375s color ease;
}
div#cover p.button-scroll a::before {
	position: absolute;
	aspect-ratio: 1;
	width: 20px;
	left: calc(50% - 10px);
	bottom: -17.5px;
	font-family: "icon";
	font-size: 1.25rem;
	color: #dc0012;
	content: "\e900";
	transition: 0.375s transform ease;
	transform: translateY(0px) rotate(-90deg);
}
div#cover p.button-scroll a:hover::before {
	transform: translateY(5px) rotate(-90deg);
}
div#cover p.button-scroll span {
	color: #383838;
}
div#cover p.button-scroll a:hover span {
	color: #dc0012;
}



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

div#title {
	position: relative;
}
div#title p.image img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
div#title div.text {
	width: 1000px;
	margin: 0px auto;
	padding-top: 160px;
}
div#title div.text h1 {
	font-family: "Roboto", sans-serif;
	font-size: 5rem;
	font-weight: 700;
	line-height: 5rem;
}
div#title div.text p.sub {
	font-size: 1.5rem;
	font-weight: 500;
}
div#title div.text p.sub::before {
	content: "【";
}
div#title div.text p.sub::after {
	content: "】";
}
body:where(.group-01, .group-02, .group-03, .group-04) div#title p.image {
	height: 620px;
}
div#title.image-text p.image {
	height: 380px;
}
div#title.image-text div.text {
	position: absolute;
	left: calc(50% - 500px);
	bottom: 40px;
	z-index: 1;
	color: #ffffff;
}



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

main,
main section,
main section div.inner-section {
	position: relative;
}
main {
	position: relative;
}
main aside#sidebar nav#navi-sub ul li {
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.5rem;
}
main aside#sidebar nav#navi-sub ul li.active a,
body.business-01 main aside#sidebar nav#navi-sub ul li.business-01 a,
body.business-02 main aside#sidebar nav#navi-sub ul li.business-02 a,
body.business-03 main aside#sidebar nav#navi-sub ul li.business-03 a,
body.business-04 main aside#sidebar nav#navi-sub ul li.business-04 a,
body.group-01 main aside#sidebar nav#navi-sub ul li.group-01 a,
body.group-02 main aside#sidebar nav#navi-sub ul li.group-02 a,
body.group-03 main aside#sidebar nav#navi-sub ul li.group-03 a,
body.group-04 main aside#sidebar nav#navi-sub ul li.group-04 a,
body.group-05 main aside#sidebar nav#navi-sub ul li.group-05 a,
body.group-06 main aside#sidebar nav#navi-sub ul li.group-06 a {
	color: #dc0012;
}
@media (max-width:1479px) {
main aside#sidebar {
	width: calc(100% - 80px);
	margin: 100px auto 0px auto;
}
main aside#sidebar nav#navi-sub ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 0px -30px -5px 0px;
}
main aside#sidebar nav#navi-sub ul li {
	position: relative;
	margin: 0px 30px 5px 0px;
}
main aside#sidebar nav#navi-sub ul li:not(:last-child)::before {
	position: absolute;
	width: 0px;
	height: 15px;
	right: -15px;
	top: 5px;
	border-right: 1px solid #d9d9d9;
	content: "";
}
}
@media (min-width:1480px) {
main aside#sidebar {
	--sidebar-fixed-top: 160px;
	position: fixed;
	left: 15px;
	top: var(--sidebar-fixed-top);
	z-index: 50;
}
body.admin-bar main aside#sidebar {
	--sidebar-fixed-top: 192px;
}
main aside#sidebar nav#navi-sub ul li a {
	display: block;
	position: relative;
	padding: 2.5px 0px 5px 20px;
}
main aside#sidebar nav#navi-sub ul li a::before {
	position: absolute;
	aspect-ratio: 1;
	width: 6px;
	left: 4px;
	top: 12px;
	background-color: #dc0012;
	content: "";
	border-radius: 50%;
	opacity: 0;
	transition: 0.375s opacity ease;
}
main aside#sidebar nav#navi-sub ul li a:hover::before,
main aside#sidebar nav#navi-sub ul li.active a::before,
body.business-01 main aside#sidebar nav#navi-sub ul li.business-01 a::before,
body.business-02 main aside#sidebar nav#navi-sub ul li.business-02 a::before,
body.business-03 main aside#sidebar nav#navi-sub ul li.business-03 a::before,
body.business-04 main aside#sidebar nav#navi-sub ul li.business-04 a::before,
body.group-01 main aside#sidebar nav#navi-sub ul li.group-01 a::before,
body.group-02 main aside#sidebar nav#navi-sub ul li.group-02 a::before,
body.group-03 main aside#sidebar nav#navi-sub ul li.group-03 a::before,
body.group-04 main aside#sidebar nav#navi-sub ul li.group-04 a::before,
body.group-05 main aside#sidebar nav#navi-sub ul li.group-05 a::before,
body.group-06 main aside#sidebar nav#navi-sub ul li.group-06 a::before {
	opacity: 1;
}
body:where(.group-01, .group-02, .group-03, .group-04, .group-05, .group-06) main aside#sidebar {
	position: absolute;
	left: calc(50% - 50vw);
	top: 100px;
}
body:where(.group-01, .group-02, .group-03, .group-04, .group-05, .group-06) div.main-alternate main aside#sidebar {
	position: fixed;
	top: var(--sidebar-fixed-top);
}
div#page main aside#sidebar.sidebar-bottom {
	position: absolute;
	top: auto;
	bottom: 100px;
}
}
main section div.inner-section {
	width: 1000px;
	margin: 0px auto;
	padding: 100px 0px;
}
main section:last-child div.inner-section {
	padding-bottom: 160px;
}
main section header.common {
	margin-bottom: 100px;
}
main section header.common p.description {
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 2.25rem;
}
main article.frame {
	margin-bottom: 60px;
	padding: 60px;
	background-color: #ffffff;
	border-radius: 20px;
}
main div.category ul {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -5px -5px 0px;
}
main div.category ul li {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	height: 20px;
	font-size: 0.6875rem;
	font-weight: 500;
	line-height: 1rem;
	color: #dc0012;
	border: 1px solid #dc0012;
	margin: 0px 5px 5px 0px;
	padding: 0px 10px 1px 10px;
	background-color: #ffffff;
	border-radius: 10px;
}
main p.more a,
main a p.more {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
main p.more span {
	display: block;
	position: relative;
	font-family: "Roboto", sans-serif;
	font-weight: 700;
	margin-right: 10px;
}
main p.more span::before {
	position: absolute;
	width: 100%;
	height: 0px;
	left: 0px;
	bottom: 2px;
	border-bottom: 1px solid #dc0012;
	content: "";
	transition: 0.375s transform ease;
	transform-origin: left top;
	transform: scaleX(0);
}
main p.more a:hover span::before,
main a:hover p.more span::before {
	transform: scaleX(1);
}
main p.more i.icon-symbol-circle {
	width: 50px;
	font-size: 1.25rem;
}
main div#other {
	background-color: #ffffff;
}
main div#other div.inner-other {
	width: 1000px;
	margin: 0px auto;
	padding: 100px 0px;
}
main div#other h2 {
	font-size: 1.5rem;
	font-weight: 500;
	margin-bottom: 40px;
}
main ul.bullet li,
main article.common div.body ul li {
	position: relative;
	padding-left: 20px;
}
main ul.bullet li::before,
main article.common div.body ul li::before {
	position: absolute;
	aspect-ratio: 1;
	width: 6px;
	left: 4px;
	top: 13px;
	background-color: #383838;
	content: "";
	border-radius: 50%;
}
main ol.decimal,
main article.common div.body ol {
	padding-left: 20px;
}
main ol.decimal li,
main article.common div.body ol li {
	list-style-type: decimal;
}
main article.common div.body a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.25em;
}
main article.common div.body > *:not(:last-child),
main article.common div.body blockquote > *:not(:last-child) {
	margin-bottom: 20px;
}
main article.common div.body :where(h1, h2, h3, h4, h5, h6, strong) {
	font-weight: 700;
}
main article.common div.body em {
	font-style: italic;
}
main article.common div.body blockquote {
	padding: 20px;
	background-color: #f5f5f5;
	border-radius: 10px;
}
main article.common div.body table {
	width: 100%;
}
main article.common div.body table :where(th, td) {
	border: 1px solid #d9d9d9;
	padding: 10px;
}
main article.common div.body table th {
	background-color: #f5f5f5;
}
main article.common div.body img.alignleft {
	margin-left: 0px;
	margin-right: auto;
}
main article.common div.body img.alignright {
	margin-left: auto;
	margin-right: 0px;
}
main article.common div.body img.aligncenter {
	margin-left: auto;
	margin-right: auto;
}
main div#pager {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	font-family: "Roboto", sans-serif;
	font-weight: 500;
	margin: 100px 0px -10px 0px;
}
main div#pager :where(span.current, a) {
	display: block;
	margin-bottom: 10px;
	padding: 0px 15px;
	transition: 0.375s color ease;
}
main div#pager :where(span.current, a:hover) {
	color: #dc0012;
}
main div#pager a {
	position: relative;
}
main div#pager a:where(.prev, .next)::before {
	position: absolute;
	aspect-ratio: 1;
	width: 12px;
	top: 8px;
	border-right: 2px solid #383838;
	border-bottom: 2px solid #383838;
	content: "";
	transition: 0.375s border-color ease;
}
main div#pager a:hover:where(.prev, .next)::before {
	border-color: #dc0012;
}
main div#pager a.prev {
	padding-left: 20px;
}
main div#pager a.prev::before {
	left: 1px;
	transform: rotate(135deg);
}
main div#pager a.next {
	padding-right: 20px;
}
main div#pager a.next::before {
	right: 1px;
	transform: rotate(-45deg);
}

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

body.home main {
	overflow: hidden;
	z-index: 1;
	background-color: #ffffff;
}
body.home main div.background,
body.home main div.background i.icon {
	position: absolute;
	left: 0px;
	top: 0px;
}
body.home main div.background i.icon {
	display: flex;
	flex-wrap: wrap;
	font-size: 100rem;
	color: #f5f5f5;
	transform: translate(-0.375em, -100px);
}
body.home section header h2 {
	font-family: "Roboto", sans-serif;
	font-size: 4.375rem;
	font-weight: 700;
	line-height: 4.375rem;
}
body.home section header p.sub {
	font-size: 1.25rem;
	font-weight: 500;
}
body.home section header p.sub:not(:last-child) {
	margin-bottom: 60px;
}
body.home section header p.sub::before {
	content: "【";
}
body.home section header p.sub::after {
	content: "】";
}
body.home section header p.description {
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 2.25rem;
}
main section#home-introduction :where(h2, div.description, p.illust) {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
main section#home-introduction h2 {
	margin-bottom: 60px;
}
main section#home-introduction h2 img {
	width: calc(507px * 0.875);
}
main section#home-introduction div.description {
	margin-bottom: 100px;
}
main section#home-introduction div.description div.inner-description p.row {
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 2.25rem;
}
main section#home-introduction div.description div.inner-description p.row:not(:last-child) {
	margin-bottom: 40px;
}
main section#home-introduction p.illust img {
	width: 1040px;
}
main section#home-news :where(header, p.more) {
	position: absolute;
	left: 0px;
}
main section#home-news header {
	top: 100px;
}
main section#home-news div.inner-section {
	padding: 160px 0px 100px 240px;
}
main section#home-news div.list-news div.row {
	border-bottom: 1px solid #d9d9d9;
}
main section#home-news div.list-news div.row a {
	border-radius: 0px;
}
main section#home-news div.list-news div.row:nth-child(2n+1) a {
	background-color: transparent;
}
main section#home-news p.more {
	top: 240px;
}
main section:where(#home-company, #home-business, #home-group) header {
	margin-bottom: 60px;
}
main section:where(#home-company, #home-business) header {
	text-align: center;
}
main section#home-company div.inner-section {
	width: 1160px;
}
main section#home-company div.list {
	position: relative;
	height: 560px;
	margin-right: -20px;
}
main section#home-company div.list div.row {
	position: absolute;
	color: #ffffff;
}
main section#home-company div.list div.row a {
	display: block;
	position: relative;
	height: 100%;
	overflow: hidden;
	border-radius: 10px;
}
main section#home-company div.list div.row :where(p.image, div.text) {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
}
main section#home-company div.list div.row p.image img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
main section#home-company div.list div.row div.text {
	padding: 20px;
}
main section#home-company div.list div.row div.text :where(h3, p.sub) {
	font-weight: 700;
}
main section#home-company div.list div.row div.text h3 {
	font-size: 1.5rem;
}
main section#home-company div.list div.row div.text p.sub {
	font-family: "Roboto", sans-serif;
	font-size: 0.8125rem;
	margin-bottom: 10px;
}
main section#home-company div.list div.row div.text i.icon-symbol-circle,
main div#banner-work div.text i.icon-symbol-circle {
	border-color: #ffffff;
}
main section#home-company div.list div.row a:hover div.text i.icon-symbol-circle,
main div#banner-work a:hover div.text i.icon-symbol-circle {
	color: #dc0012;
	background-color: #ffffff;
}
main section#home-company div.list div.row-01 {
	height: 100%;
}
main section#home-company div.list div:where(.row-01, .row-02, .row-03) {
	width: calc(33.33% - 20px);
	top: 0px;
}
main section#home-company div.list div:where(.row-01, .row-04) {
	left: 0px;
}
main section#home-company div.list div:where(.row-02, .row-03, .row-04) {
	height: calc(50% - 10px);
}
main section#home-company div.list div:where(.row-02, .row-04) {
	left: 33.33%;
}
main section#home-company div.list div.row-03 {
	left: 66.66%;
}
main section#home-company div.list div.row-04 {
	width: calc(66.66% - 20px);
	bottom: 0px;
}
main section#home-business div.inner-section {
	width: 1160px;
	padding: 100px 60px;
	background-color: #f5f5f5;
	border-radius: 20px;
}
main section#home-business div.products div.header p.sub {
	font-family: "Roboto", sans-serif;
	font-size: 0.8125rem;
	font-weight: 700;
}
main section#home-business p.illust {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-bottom: 60px;
}
main section#home-business p.illust img {
	width: 1040px;
}
main section#home-business div.products div.header {
	text-align: center;
	margin-bottom: 40px;
}
main section#home-business div.products div.header h3 {
	position: relative;
	font-size: 1.5rem;
	font-weight: 500;
}
main section#home-business div.products div.header h3::before,
main section#home-business div.products div.header h3::after {
	position: absolute;
	width: calc(50% - 90px);
	top: 17px;
	border-bottom: 1px solid #d9d9d9;
	content: "";
}
main section#home-business div.products div.header h3::before {
	left: 0px;
}
main section#home-business div.products div.header h3::after {
	right: 0px;
}
main section#home-business div.products div.list {
	display: flex;
	flex-wrap: wrap;
	margin-right: -20px;
}
main section#home-business div.products div.list div.row {
	width: calc(25% - 20px);
	margin-right: 20px;
}
main section#home-business div.products div.list div.row a {
	display: block;
	height: 100%;
	padding: 30px 20px;
	background-color: #ffffff;
	border-radius: 10px;
	transition: 0.375s background-color ease;
}
main section#home-business div.products div.list div.row a:hover {
	background-color: #e6e6e6;
}
main section#home-business div.products div.list div.row p.icon {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-bottom: 20px;
}
main section#home-business div.products div.list div.row p.icon img {
	width: 150px;
}
main section#home-business div.products div.list div.row h4 {
	text-align: center;
	font-size: 1.25rem;
	font-weight: 500;
	margin-bottom: 10px;
}
main section#home-group div.slide-text {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-right: -140px;
}
main section#home-group div.slide-text div.text {
	width: 400px;
}
main section#home-group div.slide-text div.text p.description,
main section#home-group div.slide-text div.text ul li {
	font-size: 1.0625rem;
	font-weight: 500;
}
main section#home-group div.slide-text div.text p.description {
	line-height: 2.25rem;
	margin-bottom: 40px;
}
main section#home-group div.slide-text div.text ul li {
	border-bottom: 1px solid #d9d9d9;
}
main section#home-group div.slide-text div.text ul li:first-child {
	border-top: 1px solid #d9d9d9;
}
main section#home-group div.slide-text div.text ul li a {
	display: block;
	padding: 20px 0px;
	transition: 0.375s text-indent ease, 0.375s color ease, 0.375s background-color ease;
}
main section#home-group div.slide-text div.text ul li a:hover,
main section#home-group div.slide-text div.text ul li.active a {
	text-indent: 20px;
	color: #dc0012;
	background-color: #f5f5f5;
}
main section#home-group div.slide-text div.slide {
	width: calc(100% - 480px);
}
main section#home-group div.slide-text div.slide div.list {
	margin-right: calc(50% - 50vw);
	clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}
main section#home-group div.slide-text div.slide div.list div.inner-list {
	display: flex;
	flex-wrap: wrap;
	width: 99999px;
}
main section#home-group div.slide-text div.slide div.list div.row {
	width: 660px;
}
main section#home-group div.slide-text div.slide div.list div.row p.image {
	margin-bottom: 20px;
}
main section#home-group div.slide-text div.slide div.list div.row h3 svg {
	width: auto;
	height: calc(34px * 0.75);
}
main section#home-group div.slide-text div.slide div.list div.row h3 svg :where(path, rect:not([style*="fill:none"])) {
	fill: #383838 !important;
	transition: 0.375s fill ease;
}
main section#home-group div.slide-text div.slide div.list div.row a:hover h3 svg :where(path, rect:not([style*="fill:none"])) {
	fill: #dc0012 !important;
}
main div#banner-work {
	position: relative;
	width: 1160px;
	overflow: hidden;
	z-index: 1;
	margin: 0px auto -240px auto;
	border-radius: 20px;
}
main div#banner-work a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	height: 600px;
}
main div#banner-work p.image {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
}
main div#banner-work p.image img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
main div#banner-work a:hover p.image-zoom img {
	transform: scale(1.01875);
}
main div#banner-work div.text {
	position: relative;
	width: 100%;
	z-index: 1;
	text-align: center;
	color: #ffffff;
	transition: 0.375s color ease;
}
main div#banner-work a:hover div.text {
	color: #dc0012;
}
main div#banner-work div.text h2 {
	font-family: "Roboto", sans-serif;
	font-size: 4.375rem;
	font-weight: 700;
	line-height: 4.375rem;
}
main div#banner-work div.text p.sub {
	font-size: 1.25rem;
	font-weight: 500;
	margin-bottom: 10px;
}
main div#banner-work div.text p.sub:not(:last-child) {
	margin-bottom: 10px;
}
main div#banner-work div.text p.sub::before {
	content: "【";
}
main div#banner-work div.text p.sub::after {
	content: "】";
}
main div#banner-work a:hover div.text p.more i.icon-symbol-circle {
	color: #ffffff;
	border-color: #dc0012;
	background-color: #dc0012;
}
main section#home-archive {
	background-color: #dc0012;
}
main section#home-archive header {
	position: absolute;
	width: 1160px;
	left: calc(50% - 580px);
	bottom: -20px;
	z-index: 1;
	color: #dc0012;
}
main section#home-archive header h2 {
	font-size: 7rem;
	line-height: 7rem;
}
main section#home-archive header p.sub {
	position: absolute;
	left: 270px;
	bottom: 80px;
}
main section#home-archive div.inner-section {
	width: auto;
	padding: 340px 0px 0px 0px;
}
main section#home-archive div.slide div.inner-slide {
	display: flex;
	flex-wrap: wrap;
	width: 99999px;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
	animation-fill-mode: forwards;
}
main section#home-archive div.slide-total-01 div.inner-slide {
	animation-name: home-archive-01;
	animation-duration: calc(12.5s * 1);
}
main section#home-archive div.slide-total-02 div.inner-slide {
	animation-name: home-archive-02;
	animation-duration: calc(12.5s * 2);
}
main section#home-archive div.slide-total-03 div.inner-slide {
	animation-name: home-archive-03;
	animation-duration: calc(12.5s * 3);
}
main section#home-archive div.slide-total-04 div.inner-slide {
	animation-name: home-archive-04;
	animation-duration: calc(12.5s * 4);
}
main section#home-archive div.slide-total-05 div.inner-slide {
	animation-name: home-archive-05;
	animation-duration: calc(12.5s * 5);
}
@keyframes home-archive-01 {
	0% { transform: translateX(0px); }
	100% { transform: translateX(calc(-450px * 1)); }
}
@keyframes home-archive-02 {
	0% { transform: translateX(0px); }
	100% { transform: translateX(calc(-450px * 2)); }
}
@keyframes home-archive-03 {
	0% { transform: translateX(0px); }
	100% { transform: translateX(calc(-450px * 3)); }
}
@keyframes home-archive-04 {
	0% { transform: translateX(0px); }
	100% { transform: translateX(calc(-450px * 4)); }
}
@keyframes home-archive-05 {
	0% { transform: translateX(0px); }
	100% { transform: translateX(calc(-450px * 5)); }
}
main section#home-archive div.slide div.row {
	width: 450px;
}
main section#home-archive div.slide div.row div.text {
	display: none;
}
main section#home-archive a.alternate {
	position: absolute;
	width: 100%;
	height: calc(100% - 340px);
	left: 0px;
	bottom: 0px;
	z-index: 1;
}

/* company
-------------------------------------------------------------------------------- */

body.company main section:where(#philosophy, #message, #overview)::before {
	position: absolute;
	width: 1000px;
	height: 0px;
	left: calc(50% - 500px);
	bottom: 0px;
	border-bottom: 1px solid #d9d9d9;
	content: "";
}
body.company main section header {
	margin-bottom: 60px;
}
body.company main section header h2 {
	display: flex;
	flex-wrap: wrap;
	font-size: 1.75rem;
	font-weight: 700;
	margin-bottom: 10px;
}
body.company main section header h2 span,
body.company main section header h2 span i {
	position: relative;
	display: block;
}
body.company main section header h2 span {
	padding: 0px 5px;
}
body.company main section header h2 span::before {
	position: absolute;
	width: 100%;
	height: 0px;
	left: 0px;
	bottom: -5px;
	border-bottom: 10px solid #f5f5f5;
	content: "";
}
body.company main section header p.sub {
	font-family: "Roboto", sans-serif;
	font-size: 1.0625rem;
	font-weight: 500;
}
main section#philosophy div.list div.row {
	position: relative;
	padding-left: 240px;
}
main section#philosophy div.list div.row:not(:last-child) {
	margin-bottom: 100px;
}
main section#philosophy div.list div.row h3 {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	position: absolute;
	left: 0px;
	top: 0px;
}
main section#philosophy div.list div.row h3 :where(i.icon, span) {
	display: block;
}
main section#philosophy div.list div.row h3 i.icon {
	font-size: 2.75rem;
	color: #dc0012;
}
main section#philosophy div.list div.row h3 span {
	font-size: 1.5rem;
	font-weight: 500;
	padding-bottom: 4px;
}
main section#philosophy div.list div.row-01 p.description {
	position: relative;
	font-size: 1.75rem;
	font-weight: 500;
	line-height: 3.5rem;
	transform: translateY(-7px);
}
main section#philosophy div.list div.row-01 p.description::before {
	position: absolute;
	width: 40px;
	height: 0px;
	left: -60px;
	top: 28px;
	border-bottom: 1px solid #d9d9d9;
	content: "";
}
main section#philosophy div.list div.row-02 {
	padding-top: 100px;
}
main section#philosophy div.list div.row-02 h4 img {
	width: 507px;
}
main section:where(#message, #overview) div.headline-body {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
main section:where(#message, #overview) div.headline-body h3 {
	width: calc(100% - 560px);
	font-size: 2rem;
	font-weight: 500;
	line-height: 3.5rem;
	transform: translateY(-5px);
}
main section:where(#message, #overview) div.headline-body div.body {
	width: 560px;
}
main section#message div.headline-body div.body p:where(.description, .name) {
	margin-bottom: 60px;
}
main section:where(#message, #overview) div.headline-body div.body p.description {
	font-size: 1.0625rem;
	line-height: 2.25rem;
}
main section#message div.headline-body div.body p.name span {
	display: block;
}
main section#message div.headline-body div.body p.name span.span {
	font-size: 1.0625rem;
}
main section#message div.headline-body div.body p.name span.main {
	font-size: 1.5rem;
	font-weight: 500;
}
main section#message div.headline-body div.body p.image {
	border-radius: 10px;
}
main section#overview div.list-wrapper {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
main section#overview div.headline-body {
	margin-bottom: 100px;
}
main section#overview div.list {
	width: calc(50% - 40px);
}
main section#overview div.list div.row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	border-bottom: 1px dashed #d9d9d9;
	padding: 30px 0px;
}
main section#overview div.list div.row:first-child {
	border-top: 1px dashed #d9d9d9;
}
main section#overview div.list div.row p.label {
	width: 120px;
	font-weight: 500;
}
main section#overview div.list div.row p.body {
	width: calc(100% - 120px);
}
main section#location div.block:not(:last-child) {
	margin-bottom: 100px;
}
main section#location div.block h3 {
	font-size: 1.25rem;
	font-weight: 500;
	margin-bottom: 20px;
}
main section#location div.block div.list div.row {
	display: flex;
	flex-wrap: wrap;
	border-bottom: 1px dashed #d9d9d9;
	padding: 30px 0px;
}
main section#location div.block div.list div.row:first-child {
	border-top: 1px dashed #d9d9d9;
}
main section#location div.block div.list div.row h4 {
	width: 320px;
	font-size: 0.9375rem;
	font-weight: 500;
}
main section#location div.block div.list div.row h4 a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}
main section#location div.block div.list div.row h4 i.icon {
	margin-left: 10px;
}
main section#location div.block div.list div.row p.address {
	width: 260px;
}
main section#location div.block div.list div.row p.tel {
	width: 300px;
}
main section#location div.block div.list div.row p.google-maps {
	width: calc(100% - 880px);
}
main section#history {
	background-color: #f5f5f5;
}
main section#history div.list div.row {
	display: flex;
	flex-wrap: wrap;
	padding: 30px 40px;
	background-color: #ffffff;
	border-radius: 10px;
}
main section#history div.list div.row:not(:last-child) {
	margin-bottom: 10px;
}
main section#history div.list div.row p.label {
	display: flex;
	flex-wrap: wrap;
	width: 160px;
	font-weight: 500;
}
main section#history div.list div.row p.label span {
	display: block;
}
main section#history div.list div.row p.label span.year {
	width: 65px;
}
main section#history div.list div.row p.label span.month {
	text-align: right;
	width: 35px;
}
main section#history div.list div.row p.body {
	position: relative;
	width: calc(100% - 160px);
}
main section#history div.list div.row p.body:not(:last-child) {
	margin-bottom: 40px;
}
main section#history div.list div.row p.body:not(:last-child)::before {
	position: absolute;
	width: calc(100% + 160px);
	left: -160px;
	bottom: -20px;
	border-bottom: 1px dashed #d9d9d9;
	content: "";
}

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

main section#business div.frame {
	padding: 60px;
	background-color: #ffffff;
	border-radius: 20px;
}
main section#business div.block:not(:last-child) {
	border-bottom: 1px solid #d9d9d9;
	margin-bottom: 60px;
	padding-bottom: 60px;
}
main section#business div.block div.header {
	margin-bottom: 60px;
}
main section#business div.block div.header :where(h2, p.sub) {
	font-weight: 700;
}
main section#business div.block div.header h2 {
	font-size: 1.75rem;
	line-height: 2.25rem;
}
main section#business div.block div.header p.sub {
	font-family: "Roboto", sans-serif;
	font-size: 0.8125rem;
}
main section#business div.block-summary div.column {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	position: relative;
	border-bottom: 1px solid #d9d9d9;
	margin-bottom: 60px;
	padding-bottom: 40px;
}
main section#business div.block-summary div.column::before {
	position: absolute;
	width: 0px;
	height: calc(100% - 40px);
	left: 320px;
	top: 0px;
	border-right: 1px solid #d9d9d9;
	content: "";
}
main section#business div.block-summary div.column div.left {
	width: 320px;
	text-align: center;
}
main section#business div.block-summary div.column div.left p.label {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	margin-bottom: 10px;
}
main section#business div.block-summary div.column div.left p.label span {
	display: block;
}
main section#business div.block-summary div.column div.left p.label span.text {
	font-size: 1.0625rem;
	font-weight: 500;
	margin-right: 10px;
}
main section#business div.block-summary div.column div.left p.label span.number {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	aspect-ratio: 1;
	width: 30px;
	font-family: "Roboto", sans-serif;
	font-weight: 700;
	color: #ffffff;
	background-color: #dc0012;
	border-radius: 50%;
}
main section#business div.block-summary div.column div.left h1 {
	font-size: 2.75rem;
	font-weight: 500;
	line-height: 2.75rem;
	margin-bottom: 10px;
}
main section#business div.block-summary div.column div.left p.sub {
	font-family: "Roboto", sans-serif;
	font-weight: 700;
}
main section#business div.block-summary div.column div.right {
	width: calc(100% - 380px);
}
main section#business div.block-summary div.column div.right h2 {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 2.75rem;
}
main section#business div.block-summary div.illust-text {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	margin: 0px -40px 100px 0px;
}
main section#business div.block-summary div.illust-text div.text {
	width: calc(100% - 560px);
}
main section#business div.block-summary div.illust-text p.illust {
	width: 520px;
}
main section#business div.block-summary div.illust-text p.illust img {
	width: 100%;
}
main section#business div.block-summary div.list {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -40px -40px 0px;
}
main section#business div.block-summary div.list div.row {
	width: calc(33.33% - 40px);
	margin: 0px 40px 40px 0px;
}
main section#business div.block-summary div.list div.row p.image {
	margin-bottom: 20px;
}
main section#business div.block-summary div.list div.row h3 {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	height: 3.75rem;
	text-align: center;
	font-size: 1.25rem;
	font-weight: 700;
	color: #dc0012;
	margin-bottom: 10px;
}
main section#business div.block-strengths div.list div.row {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
main section#business div.block-strengths div.list div.row:not(:last-child) {
	margin-bottom: 40px;
}
main section#business div.block-strengths div.list div.row h3 {
	width: 240px;
	font-size: 1.25rem;
	font-weight: 500;
	color: #dc0012;
}
main section#business div.block-strengths div.list div.row p.description {
	width: calc(100% - 280px);
}
main section#business div.block-products div.list {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -40px 20px 0px;
}
main section#business div.block-products div.list div.row {
	width: calc(33.33% - 40px);
	margin: 0px 40px 40px 0px;
}
main section#business div.block-products div.list div.row p.image {
	margin-bottom: 20px;
}
main section#business div.block-products div.list div.row h3 {
	font-size: 1.25rem;
	font-weight: 500;
	margin-bottom: 10px;
}
main section#business div.block-products div.list div.row-horizontal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	width: 100%;
	margin-right: -40px;
}
main section#business div.block-products div.list div.row-horizontal p.image {
	width: calc(33.33% - 40px);
	margin: 0px 40px 0px 0px;
}
main section#business div.block-products div.list div.row-horizontal div.text {
	width: calc(66.66% - 40px);
}
main section#business div.block-manufacturers ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
main section#business div.block-manufacturers ul li {
	width: calc(50% - 10px);
	font-weight: 500;
	padding: 10px 20px;
}
main section#business div.block-manufacturers ul li:where(:nth-child(4n+1), :nth-child(4n+2)) {
	background-color: #f5f5f5;
}
main nav#navi-bottom-business {
	width: 1000px;
	margin: 0px auto;
	padding-bottom: 160px;
}
main nav#navi-bottom-business h2 {
	font-size: 1.5rem;
	font-weight: 500;
	margin-bottom: 40px;
}
main nav#navi-bottom-business div.list {
	display: flex;
	flex-wrap: wrap;
}
main nav#navi-bottom-business div.list div.row {
	width: calc(33.33% - 20px);
	text-align: center;
	margin-right: 20px;
}
main nav#navi-bottom-business div.list div.row a {
	display: block;
	padding: 30px 20px;
	background-color: #ffffff;
	border-radius: 10px;
	transition: 0.375s background-color ease;
}
main nav#navi-bottom-business div.list div.row a:hover {
	background-color: #e6e6e6;
}
main nav#navi-bottom-business div.list div.row p.icon {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-bottom: 20px;
}
main nav#navi-bottom-business div.list div.row p.icon img {
	width: 150px;
}
main nav#navi-bottom-business div.list div.row h3 {
	font-size: 1.25rem;
	font-weight: 500;
}
main nav#navi-bottom-business div.list div.row p.sub {
	font-family: "Roboto", sans-serif;
	font-weight: 700;
}

/* group
-------------------------------------------------------------------------------- */

main section#group div.block:not(:last-child) {
	margin-bottom: 160px;
}
main section#group div.block div.header {
	margin-bottom: 60px;
}
main section#group div.block div.header :where(h2, p.sub) {
	font-weight: 700;
}
main section#group div.block div.header h2 {
	font-size: 1.75rem;
	line-height: 2.25rem;
}
main section#group div.block div.header p.sub {
	font-family: "Roboto", sans-serif;
	font-size: 0.8125rem;
}
main section#group div.block-summary h1 {
	margin-bottom: 60px;
}
main section#group div.block-summary h1 svg {
	width: auto;
	height: 34px;
}
main section#group div.block-summary p.description {
	width: 50%;
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 2.25rem;
}
main section#group div.block-overview div.list {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -40px -40px 0px;
}
main section#group div.block-overview div.list div.row {
	width: calc(33.33% - 40px);
	margin: 0px 40px 40px 0px;
}
main section#group div.block-overview div.list div.row p.image {
	margin-bottom: 20px;
}
main section#group div.block-overview div.list div.row h3 {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	height: 3.75rem;
	text-align: center;
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 10px;
}
main section#group div.block-overview div.list div.row-horizontal {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	width: 100%;
	margin-right: -40px;
}
main section#group div.block-overview div.list div.row-horizontal p.image {
	width: calc(33.33% - 40px);
	margin: 0px 40px 0px 0px;
}
main section#group div.block-overview div.list div.row-horizontal div.text {
	width: calc(66.66% - 40px);
}
main section#group div.block-overview div.list div.row-horizontal div.text h3 {
	display: block;
	height: auto;
	text-align: justify;
}
main section#group div.block-strengths div.header {
	text-align: center;
	color: #dc0012;
}
main section#group div.block-strengths div.list {
	display: flex;
	flex-wrap: wrap;
	margin-right: -20px;
}
main section#group div.block-strengths div.list div.row {
	width: calc(33.33% - 20px);
	border: 1px solid #dc0012;
	margin-right: 20px;
	padding: 30px 20px;
	border-radius: 10px;
}
main section#group div.block-strengths div.list div.row h3 {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	height: 3.75rem;
	text-align: center;
	font-size: 1.25rem;
	font-weight: 700;
	color: #dc0012;
	margin-bottom: 10px;
}
main section#group div.block-products div.list {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -20px -20px 0px;
}
main section#group div.block-products div.list div.row {
	width: calc(33.33% - 20px);
	margin: 0px 20px 20px 0px;
	padding: 30px 20px;
	background-color: #f5f5f5;
	border-radius: 10px;
}
main section#group div.block-products div.list div.row h3 {
	font-size: 1.25rem;
	font-weight: 700;
	color: #dc0012;
	margin-bottom: 10px;
}
main section#group div.block-products div.list div.row p.description {
	min-height: calc(1.875rem * 5);
}
main section#group div.block-manufacturers ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
main section#group div.block-manufacturers ul li {
	width: calc(50% - 10px);
	font-weight: 500;
	padding: 10px 20px;
}
main section#group div.block-manufacturers ul li:where(:nth-child(4n+1), :nth-child(4n+2)) {
	background-color: #f5f5f5;
}
main section#group div.block-specialty div.list {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -40px -40px 0px;
}
main section#group div.block-specialty div.list div.row {
	width: calc(33.33% - 40px);
	margin: 0px 40px 40px 0px;
}
main section#group div.block-specialty div.list div.row p.image {
	margin-bottom: 10px;
}
main section#group div.block-specialty div.list div.row p.caption {
	text-align: center;
}
main section#group div.block-location div.list {
	margin-bottom: 160px;
}
main section#group div.block-location div.list div.row:not(:last-child) {
	border-bottom: 1px dashed #d9d9d9;
	margin-bottom: 60px;
	padding-bottom: 60px;
}
main section#group div.block-location div.list div.row div.map-text {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}
main section#group div.block-location div.list div.row div.map-text div.text {
	width: calc(100% - 640px);
}
main section#group div.block-location div.list div.row div.map-text div.text h3 {
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 20px;
}
main section#group div.block-location div.list div.row div.map-text div.text p.fax:not(:last-child) {
	margin-bottom: 10px;
}
main section#group div.block-location div.list div.row div.map-text div.text p.url i.icon-new-window {
	display: inline-block;
	margin-left: 5px;
	transform: translateY(1px);
}
main section#group div.block-location div.list div.row div.map-text div.map {
	width: 600px;
	overflow: hidden;
}
main section#group div.block-location div.list div.row div.map-text div.map iframe {
	width: 100%;
	height: 360px;
}
main section#group div.block-location div.image {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -20px -20px 0px;
}
main section#group div.block-location div.image p.row {
	width: calc(33.33% - 20px);
	overflow: hidden;
	cursor: pointer;
	margin: 0px 20px 20px 0px;
}
main section#group div.block-location div.image p.row img {
	width: 100%;
	transition: 0.375s transform ease;
}
main section#group div.block-location div.image p.row:hover img {
	transform: scale(1.0375);
}
main nav#navi-bottom-group {
	width: 1000px;
	margin: 0px auto;
	padding-bottom: 160px;
}
main nav#navi-bottom-group h2 {
	font-family: "Roboto", sans-serif;
	font-size: 5rem;
	font-weight: 700;
	line-height: 5rem;
	border-bottom: 1px solid #d9d9d9;
	margin-bottom: 60px;
	padding-bottom: 40px;
}
main nav#navi-bottom-group p.sub {
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.5rem;
	margin: 0px 0px -20px 85px;	
}
main nav#navi-bottom-group div.list {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -40px -40px 0px;
}
main nav#navi-bottom-group div.list div.row {
	width: calc(33.33% - 40px);
	margin: 0px 40px 40px 0px;
}
main nav#navi-bottom-group div.list div.row h3 {
	position: relative;
	margin-bottom: 20px;
}
main nav#navi-bottom-group div.list div.row h3 svg {
	width: auto;
	height: calc(34px * 0.625);
}
main nav#navi-bottom-group div.list div.row h3 svg :where(path, rect:not([style*="fill:none"])) {
	fill: #383838 !important;
	transition: 0.375s fill ease;
}
main nav#navi-bottom-group div.list div.row a:hover h3 svg :where(path, rect:not([style*="fill:none"])) {
	fill: #dc0012 !important;
}
main nav#navi-bottom-group div.list div.row h3 i.icon-symbol-circle {
	position: absolute;
	right: 0px;
	top: 0px;
}

/* news
-------------------------------------------------------------------------------- */

main div.created-category,
main div.created-category div.category ul {
	display: flex;
	flex-wrap: wrap;
}
main div.created-category {
	align-items: center;
}
main div.created-category p.created {
	width: 100px;
	font-family: "Roboto", sans-serif;
	font-weight: 500;
}
main div.created-category div.category {
	width: calc(100% - 100px);
}
main div.list-news div.row {
	line-height: 1.5rem;
}
main div.list-news div.row a {
	display: flex;
	flex-wrap: wrap;
	padding: 30px 40px;
	border-radius: 10px;
}
main div.list-news div.row:nth-child(2n+1) a {
	background-color: #f5f5f5;
}
main div.list-news div.row div.created-category {
	width: 240px;
}
main div.list-news div.row h3 {
	width: calc(100% - 240px);
	font-size: 1.0625rem;
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.25em;
	transition: 0.375s color ease, 0.375s text-decoration-color ease;
}
main div.list-news div.row a:hover h3 {
	color: #dc0012;
	text-decoration-color: #dc0012;
}
main article.news header {
	border-bottom: 1px solid #d9d9d9;
	margin-bottom: 60px;
	padding-bottom: 40px;
}
main article.news header div.created-category {
	margin-bottom: 15px;
}
main article.news header h1 {
	font-size: 1.25rem;
	font-weight: 500;
}

/* work
-------------------------------------------------------------------------------- */

main div.list-work {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -40px -40px 0px;
}
main div.list-work div.row {
	width: calc(33.33% - 40px);
	margin: 0px 40px 40px 0px;
}
main div.list-work div.row p.image,
main div.list-work div.row:not(:has(p.location)):has(div.category) h3,
main div.list-work div.row:has(div.category) p.location {
	margin-bottom: 10px;
}
main div.list-work div.row :where(h3, p.location),
main article.work :where(h1, p.location) {
	font-weight: 500;
}
main div.list-work div.row h3 {
	font-size: 1.0625rem;
}
main article.work p.image {
	margin-bottom: 40px;
}
main article.work p.image-vertical {
	aspect-ratio: 1;
}
main article.work p.image-vertical img {
	object-fit: contain;
	width: 100%;
	height: 100%;
}
main article.work header:not(:last-child) {
	margin-bottom: 60px;
}
main article.work header h1 {
	font-size: 1.25rem;
}
main article.work:not(:has(p.location)):has(div.category) header h1,
main article.work:has(div.category) header p.location {
	margin-bottom: 20px;
}

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

main section#sustainability div.list {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -20px -20px 0px;
}
main section#sustainability div.list div.row {
	margin: 0px 20px 20px 0px;
	padding: 60px;
	background-color: #ffffff;
	border-radius: 10px;
}
main section#sustainability div.list div:where(.row-01, .row-04, .row-05) {
	width: calc(50% - 70px);
}
main section#sustainability div.list div:where(.row-02, .row-03) {
	width: calc(50% + 30px);
}
main section#sustainability div.list div.row h2 {
	text-align: center;
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 40px;
}
main section#sustainability div.list div.row p.image {
	max-width: 320px;
	margin: 0px auto 20px auto;
	border-radius: 10px;
}

/* archive
-------------------------------------------------------------------------------- */

main div.list-archive {
	display: flex;
	flex-wrap: wrap;
	margin: 0px -40px -40px 0px;
}
main div.list-archive div.row {
	width: calc(33.33% - 40px);
	margin: 0px 40px 40px 0px;
}
main div.list-archive div.row p.image,
main div.list-archive div.row:not(:has(p.created)):has(div.category) h3,
main div.list-archive div.row:has(div.category) p.created {
	margin-bottom: 10px;
}
main div.list-archive div.row :where(h3, p.created),
main article.archive :where(h1, p.created) {
	font-weight: 500;
}
main div.list-archive div.row h3 {
	font-size: 1.0625rem;
}
main div.list-archive div.row p.created,
main article.archive p.created {
	font-family: "Roboto", sans-serif;
}
main article.archive :where(p.image, div.video, p.button-default) {
	margin-bottom: 40px;
}
main article.archive p.image-vertical {
	aspect-ratio: 1;
}
main article.archive p.image-vertical img {
	object-fit: contain;
	width: 100%;
	height: 100%;
}
main article.archive header:not(:last-child) {
	margin-bottom: 60px;
}
main article.archive header div.created-category {
	margin-bottom: 15px;
}
main article.archive header h1 {
	font-size: 1.25rem;
}

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

main section.form div.header {
	margin-bottom: 100px;
}
main section.form div.header p.description {
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 2.25rem;
	margin-bottom: 20px;
}
main section.form div.header p.required {
	position: relative;
	padding-left: 20px;
}
main section.form div.header p.required::before {
	position: absolute;
	aspect-ratio: 1;
	width: 12px;
	left: 0px;
	top: 11px;
	background-color: #dc0012;
	content: "";
	border-radius: 50%;
}
main section.form span.wpcf7-list-item {
	margin: 0px;
}
main section.form div.component-wrapper {
	margin-bottom: 60px;
}
main section.form div.component {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	position: relative;
}
main section.form div.component:not(:last-child) {
	margin-bottom: 40px;
}
div.confirm main section.form div.component {
	border-bottom: 1px solid #d9d9d9;
	margin-bottom: 0px;
	padding: 30px 0px;
}
div.confirm main section.form div.component:first-child {
	border-top: 1px solid #d9d9d9;
}
main section.form div.component p.label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	position: relative;
	width: 240px;
	height: 60px;
	font-weight: 500;
	padding: 0px 0px 2px 20px;
}
main section.form div.component:has(span:where(.wpcf7-radio, .wpcf7-checkbox)) p.label {
	height: auto;
}
div.confirm main section.form div.component p.label {
	display: block;
	height: auto;
	padding: 0px;
}
main section.form div.component p.label span.required {
	position: absolute;
	aspect-ratio: 1;
	width: 12px;
	left: 0px;
	top: calc(50% - 6px);
	background-color: #dc0012;
	border-radius: 50%;
}
div.confirm main section.form div.component p.label span.required {
	display: none;
}
main section.form div.component div.body {
	width: calc(100% - 240px);
}
main section.form div.component div.body span.wpcf7-form-control-wrap {
	display: block;
}
main section.form div.component-horizontal div.body {
	display: flex;
	flex-wrap: wrap;
}
main section.form div.component div.body span:where(.wpcf7-radio, .wpcf7-checkbox) {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: -10px;
}
main section.form div.component div.body span:where(.wpcf7-radio, .wpcf7-checkbox) span.wpcf7-list-item {
	display: block;
	margin: 0px 0px 10px 0px;
}
main section.form div.component div.body span:where(.wpcf7-radio, .wpcf7-checkbox) span.wpcf7-list-item:not(:last-child) {
	margin-right: 30px;
}
main section.form div.component div.body span:where(.wpcf7-radio, .wpcf7-checkbox) span.wpcf7-list-item > label {
	display: block;
}
main section.form div.component div.body :where(input[type=text], input[type=email], select, textarea) {
	width: 100%;
}
div.confirm main section.form div.component div.body :where(input[type=text], input[type=email], select, textarea) {
	field-sizing: content;
	height: auto;
	border: none;
	pointer-events: none;
	padding: 0px;
	background-color: transparent;
}
div.confirm main section.form div.component div.body select {
	background-image: none;
}
div.confirm main section.form div.component div.body textarea {
	resize: none;
}
div.confirm main section.form div.component div.body span.wpcf7-list-item {
	pointer-events: none;
}
div.confirm main section.form div.component div.body span.wpcf7-list-item:not(:has(input:checked)) {
	display: none;
}
div.confirm main section.form div.component div.body span.wpcf7-list-item label:where(.radio, .checkbox) {
	display: none;
}
main section.form div.component-postal-code div.body div.row-01 {
	width: 120px;
}
div.confirm main section.form div.component-postal-code div.body div.row-01 {
	width: auto;
}
main section.form div.component-postal-code div.body p.separate {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 40px;
	height: 60px;
}
div.confirm main section.form div.component-postal-code div.body p.separate {
	display: inline;
	width: auto;
	height: auto;
}
main section.form div.component-postal-code div.body div.row-02 {
	width: 160px;
}
div.confirm main section.form div.component-postal-code div.body div.row-02 {
	width: auto;
}
div.confirm main section.form label.file {
	pointer-events: none;
}
div.confirm main section.form label.file div.alternate p.button-file {
	display: none;
}
div.confirm main section.form label.file div.alternate p.button-clear {
	display: none;
}
main section.form div.component div.body span.wpcf7-not-valid-tip,
main section.form div.agreement span.wpcf7-not-valid-tip {
	position: absolute;
	left: 0px;
	bottom: -25px;
	font-size: 0.8125rem;
	line-height: 25px;
	color: #dc0012;
}
main section.form div.component div.body:has(span:where(.wpcf7-radio, .wpcf7-checkbox)) span.wpcf7-not-valid-tip {
	bottom: -15px;
}
main section.form div.component div.body span.wpcf7-list-item-label {
	font-weight: 500;
}
main section.form div.component div.body span.wpcf7-not-valid-tip {
	width: 100%;
}
main section.form div.agreement {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	margin-bottom: 60px;
}
div.confirm main section.form div.agreement {
	display: none;
}
main section.form div.agreement span.wpcf7-list-item,
main section.form div.agreement span.wpcf7-list-item > label {
	display: block;
}
main section.form div.agreement span.wpcf7-list-item {
	margin-right: 5px;
}
main section.form div.agreement span.wpcf7-list-item-label {
	display: none;
}
main section.form div.agreement span.wpcf7-not-valid-tip {
	width: 240px;
}
main section.form div.action {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
main section.form div.action :where(input[type=button], input[type=submit], button) {
	margin: 0px 10px;
}
main section.form div.action span.wpcf7-spinner {
	display: none;
}
main section.form form.submitting div.action .button-submit {
	pointer-events: none;
}
main section.form div.wpcf7-response-output {
	text-align: center;
	line-height: 1.5rem;
	border: none;
	margin: 40px 0px 0px 0px;
	padding: 10px;
	background-color: #f5f5f5;
	border-radius: 10px;
}
div.confirm main section.form :where(input[type=button], input[type=submit], button).button-confirm,
main section.form :where(input[type=button], input[type=submit], button):where(.button-back, .button-submit) {
	display: none;
}
div.confirm main section.form :where(input[type=button], input[type=submit], button):where(.button-back, .button-submit) {
	display: flex;
}

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

main section#privacy-policy div.block:not(:last-child) {
	margin-bottom: 100px;
}
main section#privacy-policy div.block h2 {
	font-size: 1.75rem;
	font-weight: 500;
	line-height: 2.25rem;
	margin-bottom: 40px;
}
main section#privacy-policy div.block div.list div.row {
	position: relative;
	padding-left: 95px;
}
main section#privacy-policy div.block div.list div.row:not(:last-child) {
	margin-bottom: 40px;
}
main section#privacy-policy div.block div.list div.row::before {
	position: absolute;
	width: 0px;
	height: calc(100% - 10px);
	left: 55px;
	top: 5px;
	border-right: 1px solid #d9d9d9;
	content: "";
}
main section#privacy-policy div.block div.list div.row p.number {
	position: absolute;
	left: 0px;
	top: 2px;
	font-family: "Roboto", sans-serif;
	font-size: 1.75rem;
	font-weight: 700;
}
main section#privacy-policy div.block div.list div.row h3,
main section#privacy-policy div.block div.information h3 {
	font-size: 1.0625rem;
	font-weight: 500;
	margin-bottom: 5px;
}



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

div#modal {
	position: fixed;
	width: 100%;
	height: 0;
	left: 0px;
	top: 0px;
	overflow: hidden;
	overscroll-behavior: contain;
	z-index: 9999;
	pointer-events: none;
	opacity: 0;
	transition: 0.375s opacity ease-in-out;
}
div#modal.active {
	height: 100lvh;
	pointer-events: auto;
}
body.admin-bar div#modal.active {
	height: calc(100lvh - 32px);
	top: 32px;
}
div#modal.fade {
	opacity: 1;
}
div#modal::before {
	position: fixed;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
	z-index: 20;
	background-color: #000000;
	content: "";
	opacity: 0.875;
}
div#modal div.inner-modal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	position: relative;
	width: min(100%, 1000px);
	height: 100%;
	z-index: 30;
	margin: 0px auto;
}
div#modal p.button-close {
	position: fixed;
	aspect-ratio: 1;
	width: 60px;
	right: 0px;
	top: 0px;
	z-index: 1;
	cursor: pointer;
}
body.admin-bar div#modal p.button-close {
	top: 72px;
}
div#modal p.button-close::before,
div#modal p.button-close::after {
	position: absolute;
	width: 30px;
	height: 0px;
	left: calc(50% - 15px);
	top: calc(50% - 0.5px);
	border-bottom: 1px solid #ffffff;
	content: "";
}
div#modal p.button-close::before {
	transform: rotate(45deg);
}
div#modal p.button-close::after {
	transform: rotate(-45deg);
}
div#modal div.slide {
	position: relative;
	aspect-ratio: 320 / 210;
	width: 100%;
}
div#modal div.slide div:where(.image, .pager),
div#modal div.slide div.image p.row {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0px;
	top: 0px;
}
div#modal div.slide div.image {
	overflow: hidden;
}
div#modal div.slide div.image p.row {
	opacity: 0;
	transition: 0.375s opacity ease;
}
div#modal div.slide div.image p.row.active {
	opacity: 1;
}
div#modal div.slide div.image p.row img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
div#modal div.slide div.pager {
	pointer-events: none;
}
div#modal div.slide div.pager p.button {
	position: absolute;
	aspect-ratio: 1;
	width: 20px;
	top: calc(50% - 10px);
	border-right: 1px solid #ffffff;
	border-bottom: 1px solid #ffffff;
	pointer-events: auto;
	cursor: pointer;
}
div#modal div.slide div.pager p.button-prev {
	left: -40px;
	transform: rotate(135deg);
}
div#modal div.slide div.pager p.button-next {
	right: -40px;
	transform: rotate(-45deg);
}



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

footer#footer {
	position: relative;
	color: #ffffff;
	background-color: #dc0012;
}
footer#footer a.color:hover {
	color: #f29fa6;
}
footer#footer p#button-page-top {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 10;
	pointer-events: none;
	text-align: center;
	font-family: "Roboto", sans-serif;
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 20px;
	opacity: 0;
	transition: 0.375s opacity ease;
}
div.scroll footer#footer p#button-page-top {
	pointer-events: auto;
	opacity: 1;
}
div.footer footer#footer p#button-page-top {
	position: absolute;
	top: -40px;
	bottom: auto;
}
footer#footer p#button-page-top a {
	display: block;
	position: relative;
	width: 60px;
}
footer#footer p#button-page-top a::before,
footer#footer p#button-page-top span {
	transition: 0.375s color ease;
}
footer#footer p#button-page-top a::before {
	position: absolute;
	aspect-ratio: 1;
	width: 20px;
	left: calc(50% - 10px);
	top: -17.5px;
	font-family: "icon";
	font-size: 1.25rem;
	color: #dc0012;
	content: "\e900";
	transition: 0.375s transform ease;
	transform: translateY(0px) rotate(90deg);
}
footer#footer p#button-page-top a:hover::before {
	transform: translateY(-5px) rotate(90deg);
}
footer#footer p#button-page-top span {
	color: #383838;
}
footer#footer p#button-page-top a:hover span {
	color: #dc0012;
}
footer#footer div.inner-footer {
	position: relative;
	width: 1000px;
	margin: 0px auto;
	padding: 100px 0px 40px 0px;
}
footer#footer div.banner {
	margin-bottom: 60px;
}
footer#footer div.banner div.list {
	display: flex;
	flex-wrap: wrap;
	overflow: hidden;
	border: 1px solid #ffffff;
}
footer#footer div.banner div.list div.row {
	width: 33.33%;
}
footer#footer div.banner div.list div.row a {
	display: block;
	position: relative;
	height: 180px;
	padding: 20px;
	transition: 0.375s color ease, 0.375s background-color ease;
}
footer#footer div.banner div.list div.row a:hover {
	color: #dc0012;
	background-color: #ffffff;
}
footer#footer div.banner div.list div.row:not(:last-child) a {
	border-right: 1px solid #ffffff;
}
footer#footer div.banner div.list div.row h3 {
	font-family: "Roboto", sans-serif;
	font-size: 1.75rem;
	font-weight: 700;
}
footer#footer div.banner div.list div.row p.sub {
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.5rem;
}
footer#footer div.banner div.list div.row p.sub i.icon {
	display: inline-block;
	font-size: 0.9375rem;
	margin-left: 5px;
	transform: translateY(1px);
}
footer#footer div.banner div.list div.row i.icon-symbol {
	position: absolute;
	right: 10px;
	bottom: 20px;
	font-size: 2.5rem;
}
footer#footer div.banner div.list div.row i.icon-symbol::before {
	display: inline-block;
	transition: 0.375s transform ease;
}
footer#footer div.banner div.list div.row a:hover i.icon-symbol::before {
	transform: rotate(180deg);
}
footer#footer div.logo-navi-footer {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	border-bottom: 1px solid #ffffff;
	margin-bottom: 20px;
	padding-bottom: 40px;
}
footer#footer div.logo-navi-footer h3 {
	width: 200px;
}
footer#footer div.logo-navi-footer h3 svg {
	width: 157px;
}
footer#footer div.logo-navi-footer h3 svg :where(path, rect:not([style*="fill:none"])) {
	fill: #ffffff !important;
}
footer#footer div.logo-navi-footer nav#navi-footer div.list {
	display: flex;
	flex-wrap: wrap;
}
footer#footer div.logo-navi-footer nav#navi-footer div.list div.row:not(:last-child) {
	margin-right: 100px;
}
footer#footer div.logo-navi-footer nav#navi-footer div.list div.row > ul > li:not(:last-child) {
	margin-bottom: 10px;
}
footer#footer div.logo-navi-footer nav#navi-footer div.list div.row > ul > li > a {
	font-weight: 500;
}
footer#footer div.logo-navi-footer nav#navi-footer div.list div.row > ul > li i.icon-new-window {
	display: inline-block;
	margin-left: 5px;
	transform: translateY(1px);
}
footer#footer div.logo-navi-footer nav#navi-footer div.list div.row > ul > li div.nest {
	padding-top: 10px;
}
footer#footer div.logo-navi-footer nav#navi-footer div.list div.row > ul > li div.nest li {
	font-size: 0.8125rem;
	line-height: 1.5rem;
}
footer#footer div.logo-navi-footer nav#navi-footer div.list div.row > ul > li div.nest li:not(:last-child) {
	margin-bottom: 5px;
}
footer#footer div.logo-navi-footer nav#navi-footer div.list div.row > ul > li div.nest li a {
	position: relative;
	padding-left: 20px;
}
footer#footer div.logo-navi-footer nav#navi-footer div.list div.row > ul > li div.nest li a::before {
	position: absolute;
	width: 10px;
	height: 0px;
	left: 0px;
	top: 10px;
	border-bottom: 1px solid #ffffff;
	content: "";
	transition: 0.375s border-color ease;
}
footer#footer div.logo-navi-footer nav#navi-footer div.list div.row > ul > li div.nest li a:hover::before {
	border-color: #f29fa6;
}
footer#footer p.instagram,
footer#footer p.instagram a {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
}
footer#footer p.instagram {
	font-size: 1.625rem;
	margin-bottom: 20px;
}
footer#footer p.instagram a {
	align-items: center;
}
footer#footer p.instagram :where(i.icon, span) {
	display: block;
}
footer#footer p.instagram i.icon {
	margin-right: 5px;
}
footer#footer p.instagram span {
	font-family: "Roboto", sans-serif;
	font-size: 0.9375rem;
	font-weight: 700;
}
footer#footer div.information p.label {
	font-family: "Roboto", sans-serif;
	font-size: 1.75rem;
	font-weight: 700;
	margin-bottom: 10px;
}
footer#footer div.information p.address span.google-maps {
	display: inline-block;
	margin-left: 15px;
}
footer#footer div.information p.tel-fax span {
	display: inline-block;
}
footer#footer div.information p.tel-fax span:not(:last-child) {
	margin-right: 15px;
}
footer#footer p:where(.privacy-policy, .copyright) {
	position: absolute;
	right: 0px;
	font-size: 0.8125rem;
	line-height: 1.5rem;
}
footer#footer p.privacy-policy {
	bottom: 70px;
}
footer#footer p.copyright {
	bottom: 40px;
	font-family: "Roboto", sans-serif;
}
