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

br.small {
	display: inline;
}
br.large {
	display: none;
}
img.small {
	display: block;
}
img.large {
	display: none;
}



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

div.language p.icon,
p.instagram {
	height: 35px;
}
span.large {
	display: none;
}
span.small {
	display: block;
}
:where(span, i, em).no-small {
	display: none;
}



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

header#header :where(*#logo, div.language),
header#header div#menu :where(nav#navi, p.button-contact, p.instagram) {
	position: static;
	top: auto;
}
header#header :where(*#logo, p#button-menu, div.language, div#menu) {
	position: fixed;
}
header#header :where(*#logo, p#button-menu) {
	z-index: 20;
}
header#header *#logo {
	height: auto;
	left: 25px;
	top: 15px;
}
header#header *#logo svg {
	display: block;
	width: calc(211px * 0.75);
}
header#header *#logo svg :where(path, polygon, rect:not([width="211"])) {
	transition: 0.25s fill ease;
}
div.menu-header header#header *#logo svg :where(path, polygon, rect:not([width="211"])) {
	fill: #353535 !important;
}
header#header :where(p#button-menu, div.language) {
	top: 25px;
}
header#header p#button-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 80px;
	height: 35px;
	right: 70px;
	font-family: "Inter", sans-serif;
	font-size: 0.9375rem;
	color: #353535;
	cursor: pointer;
	background-color: #ffffff;
	border-radius: 17.5px;
}
header#header p#button-menu::before {
	content: "Menu"
}
div.menu-header header#header p#button-menu::before {
	content: "Close"
}
header#header div.language {
	right: 25px;
	z-index: 30;
}
div.menu-header header#header div.language p.icon {
	color: #353535;
}
div.menu-header header#header div.language ul li a:hover,
body:not(.en) div.menu-header header#header div.language ul li.jp a,
body.en div.menu-header header#header div.language ul li.en a {
	color: #7ab7a9;
	border-color: #7ab7a9;
	background-color: #eae7e1;
}
header#header div#menu {
	width: 100%;
	height: 100%;
	right: 0px;
	top: 0px;
	overflow: auto;
	z-index: 10;
	background-color: #eae7e1;
	transform: translateX(100%);
	transition: 0.25s transform ease;
	-webkit-overflow-scrolling: touch;
}
div.menu-header header#header div#menu {
	transform: translateX(0%);
}
header#header div#menu::-webkit-scrollbar {
	display: none;
}
header#header div#menu div.inner-menu {
	padding: 120px 25px 25px 25px;
}
header#header div#menu nav#navi {
	right: auto;
	margin-bottom: 60px;
}
header#header div#menu nav#navi ul {
	display: block;
	height: auto;
	padding: 0px;
	background-color: transparent;
	border-radius: 0px;
}
header#header div#menu nav#navi ul li {
	text-align: center;
	font-size: 1.25rem;
	font-weight: 500;
	margin: 0px;
}
header#header div#menu nav#navi ul li:not(:last-child) {
	margin-bottom: 40px;
}
header#header div#menu p.button-contact {
	right: auto;
}
header#header div#menu p.instagram {
	position: absolute;
	right: 25px;
	bottom: 25px;
}
header#header div#menu p.instagram a {
	color: #353535;
}



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

div#cover {
	min-height: 560px;
	padding: 85px 25px 25px 25px;
}
body.admin-bar div#cover {
	height: 100svh;
}
div#cover div.text {
	padding: 0px 20px;
}
div#cover div.text div.inner-text {
	padding-bottom: 10px;
}
div#cover div.text div.headline {
	margin-bottom: 40px;
}
div#cover div.text div.headline h2 {
	font-size: 1.75rem;
	line-height: 3rem;
}
body.en div#cover div.text div.headline h2 {
	font-size: 1.75rem;
	line-height: 2.75rem;
}
body.en div#cover div.text div.headline h3 {
	font-size: 1.25rem;
	line-height: 2rem;
}
div#cover div.text ul {
	margin: 0px -10px;
}
div#cover div.text ul li {
	height: calc(150px * 0.575);
	font-size: 0.875rem;
	line-height: 1.25rem;
}
body.en div#cover div.text ul li {
	font-size: 0.625rem;
	line-height: 0.875rem;
}
div#cover div.text ul li:not(:last-child) {
	margin-right: 15px;
}
div#cover div.text ul li:not(:nth-child(2)) {
	background-size: auto calc(135px * 0.575);
}
div#cover div.text ul li:nth-child(1) {
	width: calc(150px * 0.575);
}
div#cover div.text ul li:nth-child(2) {
	width:  calc(135px * 0.575);
	background-size: auto calc(150px * 0.575);
}
div#cover div.text ul li:nth-child(3) {
	width:  calc(194px * 0.575);
}
div#cover div.text p.symbol {
	width: 240px;
}
div#cover p.button-scroll {
	left: 2.5px;
	bottom: 25px;
	font-size: 0.8125rem;
}



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

main section div.inner-section {
	width: auto;
	padding: 60px 25px;
}
main section header {
	margin-bottom: 40px;
}
main section header p.sub {
	margin-bottom: 20px;
}
main section header h2 {
	font-size: 2.375rem;
	line-height: 3rem;
}

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

main section#about-us::before {
	width: calc(1050px * 0.375);
	height: calc(560px * 0.375);
	left: calc(50% - calc(calc(1050px * 0.375) * 0.5));
	top: 20px;
}
main section#about-us h3 {
	font-size: 1.75rem;
	line-height: 2.75rem;
	margin-bottom: 40px;
}
main section#items-handled div.list {
	justify-content: center;
	margin: 0px -25px 20px -25px;
	padding: 0px;
}
main section#items-handled div.list div.row {
	aspect-ratio: 163 / 135;
	width: 163px;
	margin: 0px 10px 20px 10px;
	background-image: url(../images/background-frame-02.svg);
}
main section#items-handled div.list div.row:first-child {
	margin-left: calc(50vw - calc(163px * 0.5));
	margin-right: calc(50vw - calc(163px * 0.5));
}
main section#items-handled div.list div.row::before {
	width: calc(62px * 0.75);
	right: 40px;
}
main section#items-handled div.list div.row h3 {
	font-size: 1.375rem;
	line-height: 2rem;
}
body.en main section#items-handled div.list div.row h3 {
	font-size: 1.375rem;
	line-height: 1.625rem;
}
main section#items-handled div.list div.row h3:not(:last-child) {
	margin-bottom: 10px;
}
main section#items-handled div.list div.row p.description {
	font-size: 0.875rem;
	line-height: 1.25rem;
}
body.en main section#items-handled div.list div.row p.description {
	font-size: 0.625rem;
	line-height: 0.875rem;
}
main section#items-handled div.list ~ p.description {
	font-size: 1.125rem;
	line-height: 2rem;
}
main section#services div.block:not(:last-child) {
	margin-bottom: 60px;
}
main section#services div.block h3 {
	font-size: 2.375rem;
	line-height: 3rem;
	margin-bottom: 40px;
}
main section#services div.block div.list div.row {
	display: block;
	text-align: left;
	color: #ffffff;
}
main section#services div.block div.list div.row:not(:last-child) {
	margin-bottom: 40px;
}
body.en main section#services div.block div.list div.row:not(:last-child) {
	margin-bottom: 40px;
}
main section#services div.block div.list div.row div.inner-row {
	position: relative;
	min-height: 40px;
	padding-left: 60px;
}
body.en main section#services div.block div.list div.row div.inner-row {
	min-height: 40px;
	padding-left: 60px;
}
main section#services div.block div.list div.row p.number {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	position: absolute;
	width: 45px;
	height: 40px;
	left: 0px;
	top: 0px;
	color: #7ab7a9;
	background: url(../images/background-frame-01.svg) no-repeat center;
	background-size: auto 100%;
	font-size: 0.875rem;
	margin-bottom: 0px;
}
body.en main section#services div.block div.list div.row p.number {
	width: 45px;
	height: 40px;
}
body.en main section#services div.block div.list div.row h4 {
	font-size: 1.375rem;
	line-height: 2rem;
}
main section#services div.block div.list div.row h4:not(:last-child) {
	margin-bottom: 10px;
}
main section#services div.block div.list div.row p.description {
	font-size: 1.125rem;
}
main section#services div.block-01 div.list {
	display: block;
	margin: 0px;
}
main section#services div.block-01 div.list div.row {
	aspect-ratio: auto;
	width: auto;
	color: #ffffff;
	margin: 0px;
	background-image: none;
}
main section#services div.block-02 div.list {
	margin-bottom: 60px;
}
main section#services div.block-02 div.list div.row {
	aspect-ratio: auto;
	width: auto;
	margin: 0px;
	background-image: none;
}
main section#services div.block-02 p.emphasis {
	font-size: 1.625rem;
	line-height: 2.25rem;
}
main section#services div.block-02 p.emphasis span {
	margin-bottom: -15px;
}
main section#services div.block-02 p.emphasis span i {
	margin-bottom: 15px;
}
main section#case-studies div.list div.row {
	padding-left: 0px;
}
main section#case-studies div.list div.row:not(:last-child) {
	margin-bottom: 40px;
}
main section#case-studies div.list div.row p.number {
	position: static;
	left: auto;
	top: auto;
	margin-bottom: 10px;
}
main section#case-studies div.list div.row h3 {
	font-size: 1.625rem;
	line-height: 2.25rem;
}
main section#case-studies div.list div.row ul li {
	font-size: 1.125rem;
	line-height: 2rem;
}
main section#case-studies div.list div.row ul li::before {
	width: 6px;
	height: 6px;
	top: 14px;
}

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

main section.form div.form {
	padding: 0px;
}
main section.form div.form div.component-wrapper {
	margin-bottom: 60px;
}
main section.form div.form div.component {
	display: block;
}
main section.form div.form div.component p.label {
	display: block;
	width: auto;
	height: auto;
	margin-bottom: 10px;
}
main section.form div.form div.component div.body {
	width: auto;
}
main section.form div.form div.action {
	display: block;
	flex-wrap: wrap;
	justify-content: center;
}
main section.form div.form div.action :where(input:where([type=button], [type=submit]), button) {
	margin: 0px auto;
}
main section.form div.form div.action :where(input:where([type=button], [type=submit]), button):not(:last-child) {
	margin-right: auto;
	margin-bottom: 20px;
}



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

footer#footer {
	padding: 50px 25px 20px 25px;
}
footer#footer div.logo-misc,
footer#footer div.logo-misc div.misc {
	display: block;
}
footer#footer div.logo-misc {
	margin-bottom: 0px;
}
footer#footer div.logo-misc p.logo {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-bottom: 40px;
}
footer#footer div.logo-misc div.misc nav#navi-footer {
	max-width: 400px;
	margin: 0px auto;
	padding-bottom: 40px;
}
footer#footer div.logo-misc div.misc nav#navi-footer ul {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: -10px;
}
footer#footer div.logo-misc div.misc nav#navi-footer ul li {
	width: 50%;
	margin-bottom: 15px;
}
footer#footer div.logo-misc div.misc nav#navi-footer ul li:not(:last-child) {
	margin-right: 0px;
}
footer#footer div.logo-misc div.misc nav#navi-footer ul li:nth-child(2n+1) {
	width: 62.5%;
}
footer#footer div.logo-misc div.misc nav#navi-footer ul li:nth-child(2n) {
	width: 37.5%;
}
footer#footer div.logo-misc div.misc nav#navi-footer ul li.terms-of-use-privacy-policy {
	width: 100%;
	font-size: 0.8125rem;
	padding-top: 10px;
}
footer#footer div.logo-misc div.misc :where(p.instagram, div.language) {
	position: absolute;
	bottom: 20px;
}
footer#footer div.logo-misc div.misc p.instagram {
	right: 70px;
	margin-right: 0px;
}
footer#footer div.logo-misc div.misc div.language {
	right: 25px;
}
footer#footer div.logo-misc div.misc div.language ul {
	top: auto;
	bottom: 45px;
}
