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

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



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

div.sns ul {
	justify-content: center;
}
span.arrow {
	width: 60px;
}



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

header#header *#logo {
	left: 20px;
	top: 20px;
}
body.admin-bar header#header *#logo {
	top: 20px;
}
header#header *#logo svg {
	width: calc(165px * 0.875);
}
header#header p#button-menu {
	right: 10px;
	top: 0px;
}
body.admin-bar header#header p#button-menu {
	top: 0px;
}
header#header > div.visit-brochure {
	display: none;
}
header#header div.visit-brochure ul {
	justify-content: center;
}
header#header div#menu {
	width: 100%;
}
header#header div#menu div.inner-menu {
	padding: 100px 30px 40px 30px;
}
header#header div#menu nav#navi ul li {
	text-align: center;
}
header#header div#background-menu {
	display: none;
}



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

body.admin-bar div:where(#cover, #space-cover) {
	height: 100svh;
}
body.admin-bar div#cover {
	top: 0px;
}
div#cover p.logo {
	left: 20px;
	bottom: 20px;
}
div#cover p.logo svg {
	width: calc(165px * 1.625);
}



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

div#title {
	padding: 120px 0px 80px 0px;
}
div#page:not(:has(div#tab-contact)) div#title::before {
	width: calc(100vw - 60px);
	left: calc(50% - 50vw + 30px);
}
div#title h1 {
	font-size: 2.5rem;
	line-height: 3.25rem;
	margin-bottom: 15px;
}



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

main div#tab-contact {
	width: 100%;
	margin-bottom: 0px;
}
main div#tab-contact ul {
	margin-right: 0px;
}
main div#tab-contact ul li {
	width: 33.33%;
	margin-right: 0px;
}
main div#tab-contact ul li:not(:last-child) {
	border-right: 1px solid #f0f0eb;
}
main div#tab-contact ul li a {
	height: 60px;
	border-radius: 0px;
}
main div#tab-contact ul li span i.main {
	font-size: 1rem;
	line-height: 1.25rem;
}
main div#tab-contact ul li span i.sub {
	font-size: 0.625rem;
	line-height: 1rem;
}
main section div.inner-section {
	width: auto;
	padding: 80px 30px;
}
main section:last-child div.inner-section {
	padding-bottom: 160px;
}
main section.wide div.inner-section {
	width: auto;
}
main section header.common {
	margin-bottom: 60px;
}
main section header.common h2 {
	font-size: 2.5rem;
	line-height: 3.25rem;
}
main div.list-category {
	margin-bottom: 80px;
}
main div.list-category ul {
	justify-content: flex-start;
	margin: 0px -10px -10px 0px;
}
main div.list-category ul li {
	margin: 0px 10px 10px 0px;
}
main div.related {
	padding-top: 80px;
}
main div.related::before {
	width: calc(100vw - 60px);
	left: calc(50% - 50vw + 30px);
}
main p:where(.more-add, .back) {
	margin-top: 80px;
}
main div.fix {
	height: 540px;
}
main nav#navi-sub ul {
	display: block;
	margin-right: 0px;
}
main nav#navi-sub ul li {
	width: 300px;
	margin: 0px auto;
}
main nav#navi-sub ul li:not(:last-child) {
	margin-bottom: 20px;
}

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

main section#home-information header.common {
	margin-bottom: 30px;
}
main section#home-information div.list-information {
	margin-bottom: 80px;
}
main section#home-concept div.inner-section {
	display: block;
	width: auto;
	height: auto;
	padding: 120px 30px;
}
main section#home-concept div.image {
	width: calc(100% + 10px);
	margin-right: -10px;
}
main section#home-concept div.image div.list {
	width: calc(33.33% - 10px);
	margin-right: 10px;
}
main section#home-concept div.image div.list div.inner-list {
	height: calc((100cqw * (500 / 430) + 10px) * 9);
}
@keyframes home-concept-01 {
	0% { transform: translateY(calc((100cqw * (500 / 430) + 10px) * -9)); }
	100% { transform: translateY(0px); }
}
@keyframes home-concept-02 {
	0% { transform: translateY(0px); }
	100% { transform: translateY(calc((100cqw * (500 / 430) + 10px) * -9)); }
}
main section#home-concept div.image div.list p.row:not(:last-child) {
	margin-bottom: 10px;
}
main section#home-concept div.text {
	width: auto;
}
main section#home-concept div.text div.inner-text {
	padding: 40px 30px;
}
main section#home-concept div.text h3 {
	font-size: 1.75rem;
	line-height: 3rem;
	margin-bottom: 40px;
}
main section#home-concept div.text p.description {
	margin-bottom: 40px;
}
main section#home-products div.inner-section {
	width: auto;
	padding: 160px 30px;
}
main section#home-products div.list div.row {
	display: block;
}
main section#home-products div.list div.row:nth-child(2n+1) {
	padding-left: 0px;
}
main section#home-products div.list div.row:nth-child(2n) {
	padding-right: 0px;
}
main section#home-products div.list div.row:not(.row-04) {
	margin-bottom: 80px;
}
main section#home-products div.list div.row-03 {
	padding-right: 0px;
}
main section#home-products div.list div.row p.image:not(:last-child) {
	margin-bottom: 40px;
}
main section#home-products div.list div.row:not(.row-03) p.image {
	width: auto;
}
main section#home-products div.list div:where(.row-02, .row-04) p.image {
	margin-top: 0px;
}
main section#home-products div.list div.row-03 p.image {
	width: calc(100% - 120px);
	margin-top: 0px;
}
main section#home-products div.list div.row-03 div.text {
	width: auto;
}
main section#home-products div.list div.row:not(.row-03) div.text {
	width: auto;
}
main section#home-products div.list div.row-01 div.text h3 {
	font-size: 1.75rem;
	line-height: 3rem;
}
main section#home-works::before {
	width: calc(100vw - 60px);
	left: calc(50% - 50vw + 30px);
}
main section#home-works div.slide div.list div.row {
	width: 300px;
}
main section#home-works div.slide div.pager-more {
	width: calc(100% - 60px);
	max-width: 435px;
	height: 85px;
	margin-right: auto;
	padding: 12.5px;
}
main section#home-works div.slide div.pager-more div.pager p.button {
	width: 60px;
}
main section#home-misc div.block div.inner-block {
	padding: 360px 30px 120px 30px;
}
main section#home-misc div.block div.image-text {
	display: block;
	margin-bottom: 60px;
}
main section#home-misc div.block div.image-text div.text {
	width: auto;
	margin-bottom: 40px;
}
main section#home-misc div.block div.image-text div.text h3 {
	font-size: 1.75rem;
	line-height: 3rem;
	margin-bottom: 40px;
}
main section#home-misc div.block div.image-text p.image {
	width: auto;
}

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

main div.list-common {
	display: block;
	margin: 0px;
}
main div.list-common div.row {
	width: auto;
	margin: 0px;
}
main div.list-common div.row:not(:last-child) {
	margin-bottom: 40px;
}
main article.common header,
main article.common header h1:not(:last-child) {
	margin-bottom: 60px;
}

/* event
-------------------------------------------------------------------------------- */

main section#visit-alternate header.common {
	margin-bottom: 120px;
}
main section#visit-alternate header.common::before {
	width: calc(100vw - 60px);
	left: calc(50% - 50vw + 30px);
	bottom: -60px;
}
main section#visit-alternate header.common p.sub {
	margin-bottom: 40px;
}

/* concept
-------------------------------------------------------------------------------- */

main section#concept div.list div.row:not(:last-child) {
	margin-bottom: 80px;
}
main section#concept div.list div.row h2 {
	font-size: 2rem;
	line-height: 2.75rem;
}
main section#concept-house div.list div.row:not(:last-child) {
	margin-bottom: 80px;
}
main section#concept-house div.list div.row > p.image {
	margin-left: -30px;
	margin-right: -30px;
}
main section#concept-house div.list div.row div.image-text {
	display: block;
}
main section#concept-house div.list div.row div.image-text p.image {
	width: auto;
	margin-bottom: 30px;
}
main section#concept-house div.list div.row div.image-text div.text {
	width: auto;
}

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

main section.products div.block:not(:last-child) {
	margin-bottom: 80px;
}
main section.products div.block h2 {
	font-size: 2rem;
	line-height: 2.75rem;
}
main section.products div.block div.image-text {
	display: block;
	margin-bottom: 60px;
}
main section.products div.block div.image-text p.image {
	width: auto;
	margin-bottom: 40px;
}
main section.products div.block div.image-text div.text {
	width: auto;
}
main section.products div.block div.button-wrapper {
	display: block;
	margin: 0px;
}
main section.products div.block div.button-wrapper p.button-default {
	width: 300px;
	margin: 0px auto;
}
main section.products div.block div.button-wrapper p.button-default:not(:last-child) {
	margin-bottom: 20px;
}

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

main div.list-works div.row a {
	display: block;
}
main div.list-works div.row :where(p.image, div.text) {
	width: auto;
}
main div.list-works div.row div.text {
	padding: 40px 20px;
}
main article.works header {
	margin-bottom: 80px;
}
main article.works header p.image {
	margin: 0px -30px 60px -30px;
}
main article.works div.text-image {
	display: block;
}
main article.works div.text-image div:where(.text, .image) {
	width: auto;
}
main article.works div.text-image div.text:not(:last-child) {
	margin-bottom: 60px;
}
main article.works div.text-image div.text p.body:not(:last-child) {
	margin-bottom: 40px;
}

/* process
-------------------------------------------------------------------------------- */

main section#process div.block:not(:last-child) {
	margin-bottom: 80px;
}
main section#process div.block h2 {
	font-size: 2.5rem;
	line-height: 3.25rem;
	margin-bottom: 40px;
}
main section#process div.block div.list div.row {
	display: block;
}
main section#process div.block div.list div.row::before,
main section#process div.block div.list div.row::after {
	display: none;
}
main section#process div.block div.list div.row p.image {
	width: auto;
	margin-bottom: 30px;
}
main section#process div.block div.list div.row div.text {
	width: auto;
}

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

main section.form div.header {
	margin-bottom: 60px;
}
main section.form div.header p:where(.description, .button-default):not(:last-child) {
	margin-bottom: 60px;
}
main section.form div.form h3 {
	margin-bottom: 60px;
}
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 {
	width: auto;
	height: auto;
	margin-bottom: 10px;
}
main section.form div.form div.component div.body {
	width: auto;
}
main section.form div.form div:is(.component-name-furigana, .component-number) div.body div.row p.prefix {
	width: 40px;
}
main section.form div.form div.component-name-furigana div.body div.row input[type=text],
main section.form div.form div.component-number div.body div.row select {
	width: calc(100% - 40px);
}
main section.form div.form div.agreement {
	margin-bottom: 60px;
}
main section.form div.form div.action {
	display: block;
}
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;
}
main section#thanks h2 {
	font-size: 2.5rem;
	line-height: 3.25rem;
}



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

footer#footer {
	text-align: center;
	padding: 60px 30px;
}
footer#footer div.inner-footer {
	width: auto;
}
footer#footer nav#navi-footer {
	display: none;
}
footer#footer :where(p.logo, div.sns) {
	position: static;
	right: auto;
	margin-bottom: 20px;
}
footer#footer div.sns {
	top: auto;
}
footer#footer p.logo {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	bottom: auto;
}
footer#footer p.logo svg {
	width: calc(165px * 1.25);
}
