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

br.small {
	display: inline;
}
br.large {
	display: none;
}
img.small {
	display: block;
}
img.large {
	display: none;
}
:is(span, i).no-small {
	display: none;
}



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

nav#navi-fix {
	width: 100%;
	height: auto;
	top: auto;
	bottom: 0px;
	z-index: 10;
}
body.admin-bar nav#navi-fix {
	top: auto;
}
nav#navi-fix ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding: 0px 10px;
}
nav#navi-fix ul li {
	width: calc(50% - 5px);
	height: auto;
	writing-mode: horizontal-tb;
}
nav#navi-fix ul li:not(:last-child) {
	margin-bottom: 0px;
}
nav#navi-fix ul li a {
	width: 100%;
	height: 50px;
	padding-top: 0px;
	clip-path: polygon(25px 0%, 100% 0%, 100% 100%, 0% 100%, 0% 25px);
}
nav#navi-fix ul li a::before {
	margin: 0px 5px 0px 0px;
}
div#tab-contact {
	width: auto;
	padding-top: 80px;
}
div#tab-contact ul li {
	line-height: 1.25rem;
}
div#tab-contact ul li a {
	height: 50px;
	padding-left: 20px;
	clip-path: none;
}
div#tab-contact ul li span i.main {
	font-size: 1.125rem;
}
div#tab-contact ul li span i.sub {
	font-size: 0.875rem;
}
div.sns ul {
	width: 120px;
}



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

header#header *#logo,
header#header :is(nav.navi, div.sns) {
	position: fixed;
}
header#header *#logo {
	left: 20px;
	top: 0px;
	padding-top: 10px;
}
body.admin-bar header#header *#logo {
	padding-top: 10px;
}
header#header *#logo a {
	width: calc(100px * 0.75);
}
header#header :is(p#button-menu, div#menu) {
	position: fixed;
}
header#header p#button-menu {
  width: 60px;
  height: 60px;
  right: 0px;
  top: 0px;
	z-index: 30;
  cursor: pointer;
}
header#header p#button-menu i {
  display: block;
  position: absolute;
  width: 24px;
  height: 0px;
  left: calc(50% - 12px);
  top: calc(50% - 0.5px);
	border-bottom: 1px solid #000000;
  transition: 0.375s all ease;
}
header#header p#button-menu i:nth-child(1) {
	transform: translateY(-8px);
}
header#header p#button-menu i:nth-child(2) {
	transform: translateY(8px);
}
div.menu-header header#header p#button-menu i:nth-child(-n+3) {
  width: 0px;
  left: 50%;
  opacity: 0;
	transform: translateY(0px);
}
div.menu-header header#header p#button-menu i:nth-child(4) {
	transform: rotate(45deg);
}
div.menu-header header#header p#button-menu i:nth-child(5) {
	transform: rotate(-45deg);
}
header#header div#menu {
	width: 100%;
	height: 100%;
	right: 0px;
	top: 0px;
	overflow: auto;
	z-index: 10;
	background-color: #ffffff;
	transform: translateX(100%);
	transition: 0.375s 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: 80px 30px 40px 30px;
}
header#header :is(nav.navi, div.sns) {
	position: static;
	top: auto;
}
body.admin-bar header#header :is(nav.navi, div.sns) {
	top: auto;
}
header#header nav.navi {
	right: auto;
	margin-bottom: 40px;
}
header#header nav.navi ul {
	display: block;
	width: auto;
}
header#header nav.navi ul li {
	text-align: center;
	font-size: 1.5rem;
}
header#header nav.navi ul li:not(:last-child) {
	margin-bottom: 20px;
}
header#header div.sns {
	right: auto;
}
header#header div.sns ul {
	margin: 0px auto;
}



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

div#cover p.image img {
	object-position: 47.5% center;
}
div#cover p.catch {
	font-size: 3.5rem;
	line-height: 4.5rem;
}
div#cover h1 {
	left: calc(50% - calc(calc(100px * 3) * 0.5));
	top: calc(50% - calc(calc(46px * 3) * 0.5));
	opacity: 0;
}
div#cover h1 img {
	width: calc(100px * 3);
	height: calc(46px * 3);
}



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

div#title {
	width: auto;
	margin-top: 160px;
	padding: 0px 30px;
}
div#title h1 {
	font-size: 3.5rem;
	line-height: 4rem;
	margin-bottom: 5px;
}



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

main section div.inner-section {
	width: auto;
	padding: 80px 30px;
}
main section:first-child div.inner-section {
	padding-top: 80px;
}
main section.column div.inner-section {
	display: block;
}
main section.column header {
	width: auto;
}
main section.column div.content {
	width: auto;
}
main section#misc div.related {
	margin-bottom: 80px;
	padding-top: 80px;
}
main section header.common h2 {
	font-size: 2rem;
	line-height: 2.5rem;
}
main section header.common h3 {
	font-size: 1.5rem;
	line-height: 2.5rem;
	margin-right: -30px;
}
main div.header-body {
	display: block;
}
main div.header-body :is(header.common, div.body) {
	width: auto;
}
main div.header-body div.body {
	padding-top: 0px;
}
main div.block-column {
	display: block;
}
main div.block-column div.header {
	width: auto;
	margin-bottom: 60px;
}
main div.block-column div.content {
	width: auto;
}
main p:is(.more, .back) a span.arrow {
	width: 160px;
}
main p.back {
	width: auto;
}
main:has(section.form) p.back {
	margin-top: 80px;
}
main div.list-category {
	margin-bottom: 80px;
}
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: 60px;
}
main article.common {
	display: block;
}
main article.common header {
	width: auto;
	margin-bottom: 60px;
}
main article.common header h1 {
	font-size: 1.375rem;
	margin-bottom: 20px;
	padding-bottom: 20px;
}
main article.common header div.created-category:not(:last-child) {
	margin-bottom: 20px;
}
main article.common div.content {
	width: auto;
}
main div#pager {
	margin-top: 80px;
	padding: 0px 60px;
}
main div#pager :is(a.prev, a.next) {
	width: 40px;
}

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

main section#home-information div.list-information {
	width: auto;
}
main section#home-information div.list-information div.row {
	display: block;
}
main section#home-information div.list-information div.row div.created-type {
	width: auto;
}
main section#home-information div.list-information div.row div.created-type p.created {
	width: 100px;
	margin-bottom: 10px;
}
main section#home-information div.list-information div.row div.created-type p.type {
	width: calc(100% - 100px);
}
main section#home-information div.list-information div.row h3 {
	width: auto;
}
main section.effect div.inner-section {
	padding: 2000px 30px 0px 30px;
}
main section.effect p.catch {
	text-align: center;
	font-size: 4.5rem;
	line-height: 5rem;
}
main section.effect div.text {
	width: auto;
	padding-bottom: 400px;
}
main section#home-products div.list {
	display: block;
	margin: 0px -20px;
}
main section#home-products div.list div.row {
	width: auto;
	margin-right: 0px;
}
main section#home-products div.list div.row:not(:last-child) {
	margin-bottom: 10px;
}
main section#home-products div.list div.row p.image {
	aspect-ratio: 1;
	height: auto;
}
main section#home-products div.list div.row h3 span.sub {
	font-size: 2.25rem;
	line-height: 2.75rem;
}
main section#home-products div.list div.row h3 span.main {
	font-size: 2rem;
	line-height: 2.5rem;
}
main section#home-works div.slide {
	margin-bottom: 40px;
}
main section#home-works div.slide div.list {
	margin: 0px -30px 0px 0px;
}
main section#home-works div.slide div.list div.row {
	width: calc(100vw - 30px);
	margin-right: 20px;
}
main section#home-works div.slide div.pager {
	width: 100px;
}
main section#home-works div.slide div.pager p.button {
	width: 40px;
}
main section#home-works p.more {
	position: static;
	right: auto;
	top: auto;
}
main section#home-works p.more span.arrow {
	display: block;
}
main section#home-process div.header-body {
	margin-bottom: 60px;
}
main section#home-process div.list {
	display: block;
	position: static;
	width: auto;
	height: auto;
	right: auto;
	top: auto;
	margin: 0px -30px;
}
main section#home-process div.list div.row {
	width: auto;
	height: calc(190px * 0.5);
}
main section#home-process div.list div.row:not(:last-child) {
	margin-bottom: 10px;
}
main section#home-process div.list div.row div.inner-row {
	display: flex;
	flex-wrap: wrap;
	width: 9999px;
	height: auto;
}
main section#home-process div.list div.row p.illust {
	width: calc(190px * 0.5);
	margin: 0px 20px 0px 0px;
}
@keyframes home-process-01 {
	0% { transform: translateX(0px); }
	100% { transform: translateX(calc(calc(calc(-190px * 0.5) - 20px) * 10)); }
}
@keyframes home-process-02 {
	0% { transform: translateX(calc(calc(calc(-190px * 0.5) - 20px) * 10)); }
	100% { transform: translateX(0px); }
}
main section#home-standard-house div.image-text {
	display: block;
}
main section#home-standard-house div.image-text p.image {
	width: auto;
	margin-bottom: 40px;
}
main section#home-standard-house div.image-text div.text {
	width: auto;
}

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

main section#concept div.block:not(:last-child) {
	margin-bottom: 80px;
}
main section#concept div.block-concept h2,
main section#concept div.block-design div.header h2 {
	font-size: 1.375rem;
}
main section#concept div.block-concept p.image-main,
main section#concept div.block-concept-house p.image-main {
	height: calc(750px * 0.375);
	margin-bottom: 80px;
}
main section#concept div.block-concept div.content,
main section#concept div.block-concept-house div.content {
	width: auto;
}
main section#concept div.block-concept div.content {
	margin-bottom: 80px;
}
main section#concept div.block-concept div.content h3,
main section#concept div.block-design div.content h4 {
	font-size: 1.375rem;
	line-height: 2.5rem;
	margin-right: -30px;
}
main section#concept div.block-concept div.content h3 {
	margin-bottom: 80px;
}
main section#concept div.block-concept div.content div.list div.row:not(:last-child) {
	margin-bottom: 60px;
}
main section#concept div.block-concept div.content div.list div.row h4,
main section#concept div.block-design div.content h3,
main section#concept div.block-concept-house div.content div.list div.row h3 {
	font-size: 1.5rem;
}
main section#concept div.block-concept div.content div.list div.row h4::before,
main section#concept div.block-design div.content h3::before,
main section#concept div.block-concept-house div.content div.list div.row h3::before {
	width: 200px;
}
main section#concept div.block-concept div.image {
	display: block;
	margin: 0px;
}
main section#concept div.block-concept div.image p.row:not(:last-child) {
	margin-bottom: 10px;
}
main section#concept div.block-concept div.image p.row:is(:nth-child(1), :nth-child(3)) {
	width: 50%;
	height: calc(400px * 0.5);
}
main section#concept div.block-concept div.image p.row:nth-child(2) {
	width: 100%;
	height: calc(620px * 0.5);
}
main section#concept div.block-concept div.image p.row:nth-child(3) {
	margin-left: auto;
}
main section#concept div.block-concept-house div.list {
	margin-bottom: 60px;
}
main section#concept div.block-concept-house div.list div.row-column {
	display: block;
}
main section#concept div.block-concept-house div.list div.row-column p.image {
	width: auto;
	margin-bottom: 20px;
}
main section#concept div.block-concept-house div.list div.row-column div.text {
	width: auto;
}

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

main section#products div.block:not(:last-child) {
	margin-bottom: 80px;
	padding-bottom: 80px;
}
main section#products div.block div.header p.label {
	font-size: 1.375rem;
}
main section#products div.block div.header h2 {
	font-size: 1.5rem;
}
main section#products div.block div.content div.list div.row:not(:last-child) {
	margin-bottom: 80px;
}
main section#products div.block div.content div.list div.row p.illust {
	margin: 0px -30px 40px -30px;
}
main section#products div.block div.content div.list div.row p.illust img {
	width: calc(620px * 0.575);
}
main section#products div.block div.content div.list div.row h3 {
	font-size: 1.5rem;
}

/* lineup, specification
-------------------------------------------------------------------------------- */

main section:is(.lineup, .specification) div.block:not(:last-child) {
	margin-bottom: 80px;
	padding-bottom: 80px;
}
main section:is(.lineup, .specification) div.block div.header h2 {
	font-size: 2rem;
	line-height: 2.5rem;
}
main section:is(.lineup, .specification) div.block div.header p.sub {
	font-size: 1.375rem;
}
main section:is(.lineup, .specification) div.block-summary div.content p.illust {
	margin: 0px -30px 40px -30px;
}
main section:is(.lineup, .specification) div.block-summary div.content p.illust img {
	width: calc(620px * 0.575);
}

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

main div.list-works div.row {
	width: auto;
}
main article.works div.gallery div.list p:is(.size, .row) {
	width: 100%;
}

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

main section#process div.block {
	display: block;
}
main section#process div.block:not(:last-child) {
	margin-bottom: 80px;
	padding-bottom: 80px;
}
main section#process div.block div.header {
	width: auto;
	margin-bottom: 60px;
}
main section#process div.block div.header h2 {
	font-size: 2rem;
	line-height: 2.5rem;
}
main section#process div.block div.content {
	width: auto;
}
main section#process div.block div.content div.list div.row:not(:last-child) {
	margin-bottom: 60px;
}
main section#process div.block div.content div.list div.row p.illust {
	margin-bottom: 10px;
}
main section#process div.block div.content div.list div.row p.illust img {
	width: calc(380px * 0.75);
}

/* visit
-------------------------------------------------------------------------------- */

div.monthly-calendar::before,
div#booking-form::before {
	margin-bottom: 60px;
}
div.monthly-calendar table caption {
	font-size: 1.375rem;
}
div.monthly-calendar table tbody td {
	padding: 5px;
}
div.monthly-calendar table tbody td div.day-number {
	font-size: 1.375rem;
}
div.monthly-calendar table tbody td div.calendar-mark {
	font-size: 1.375rem;
}
div.monthly-calendar div.monthly-prev-next {
	top: 103px;
}
div#booking-form fieldset {
	margin-bottom: 60px;
}
div#booking-form fieldset table th {
	display: block;
	width: 100%;
}
div#booking-form fieldset table td {
	padding-top: 10px;
}
div#booking-form fieldset table td div.input-number label {
	width: 40px;
}
div#booking-form fieldset table td div.input-number select {
	width: calc(100% - 40px);
}
div#booking-form fieldset table td label.booking-seimei {
	width: 40px;
}
div#booking-form fieldset table td input:is(#booking-sei, #booking-mei, #booking-sei_kana, #booking-mei_kana) {
	width: calc(50% - 50px);
}
div#booking-form div#action-button {
	display: block;
}
div#booking-form div#action-button :is(p.button-back, div.button-wrapper) {
	width: auto;
}
div#booking-form div#action-button p.button-back {
	margin-right: 0px;
	margin-bottom: 20px;
}
div#booking-form fieldset#booking-confirm-fieldset table :is(th, td) {
	display: block;
	padding: 20px 0px;
}
div#booking-form fieldset#booking-confirm-fieldset table th {
	border-bottom: none;
	padding-bottom: 0px;
}
div#booking-form fieldset#booking-confirm-fieldset table td {
	padding-top: 0px;
}
main section#visit div.header,
main section#visit div.header p.description:not(:last-child) {
	margin-bottom: 60px;
}

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

main section.form div.header {
	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 {
	display: block;
	width: auto;
	height: auto;
	margin-bottom: 10px;
}
main section.form div.form div.component div.body {
	width: auto;
}
main section.form div.mw_wp_form_preview div.form div:is(.component-name-furigana, .component-number) div.body {
	justify-content: flex-start;
}
main section.form div.mw_wp_form_preview div.form div:is(.component-name-furigana, .component-number) div.body div.row {
	width: auto;
}
main section.form div.mw_wp_form_preview div.form div:is(.component-name-furigana, .component-number) div.body div.row:not(:last-child) {
	margin-right: 5px;
}
main section.form div.form div:is(.component-name-furigana, .component-number) div.body div.row p.prefix {
	width: 40px;
}
main section.form div.mw_wp_form_preview div.form div:is(.component-name-furigana, .component-number) div.body div.row p.prefix {
	display: none;
}
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.action {
	display: block;
}
main section.form div.form div.action div.button-wrapper {
	width: auto;
}
main section.form div.form div.action div.button-wrapper:not(:last-child) {
	margin-bottom: 20px;
}
main section.form div.form div.action:not(:has(button[name=send])) div.button-wrapper {
	width: auto;
}
main section#thanks h2 {
	font-size: 2.5rem;
	line-height: 3rem;
	margin-bottom: 10px;
}



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

footer#footer div.inner-footer {
	width: auto;
	padding: 60px 30px 90px 30px;
}
footer#footer div.logo-text {
	display: block;
	margin-bottom: 40px;
}
footer#footer div.logo-text p.logo {
	width: 200px;
	margin: 0px auto 40px auto;
	transform: translateX(0px);
}
footer#footer div.logo-text div.text {
	display: block;
	width: auto;
	padding-bottom: 40px;
}
footer#footer div.logo-text div.text nav.navi {
	display: none;
}
footer#footer div.logo-text div.text div.information {
	width: auto;
	text-align: center;
}
footer#footer div.logo-text div.text div.information :is(h3, p.tel) {
	margin-bottom: 20px;
}
footer#footer div.logo-text div.text div.information h3 {
	font-size: 1.375rem;
}
footer#footer div.logo-text div.text div.information div.sns {
	position: static;
	left: auto;
	bottom: auto;
}
footer#footer div.logo-text div.text div.information div.sns ul {
	margin: 0px auto;
}
