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

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



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

div#page {
	padding: 60px 0px 0px 0px;
}



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

header#header {
	position: relative;
	width: auto;
	height: auto;
	left: auto;
	top: auto;
	padding: 0px;
	background-color: transparent;
}
body.admin-bar header#header {
	height: auto;
	top: auto;
}
header#header :is(*#logo, p#button-menu, div#menu) {
  position: fixed;
}
header#header *#logo {
	justify-content: flex-start;
	align-items: center;
	width: 100%;
	height: 60px;
	left: 0px;
  top: 0px;
  z-index: 20;
	margin-bottom: 0px;
	padding: 0px 0px 2.5px 20px;
  background-color: #142233;
}
header#header *#logo img {
	width: 144px;
}
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: 30px;
  height: 0px;
  left: calc(50% - 15px);
  top: calc(50% - 0.5px);
	border-bottom: 1px solid #ffffff;
  transition: 0.25s 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: #1e1f26;
	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: 100px 30px 40px 30px;
}
header#header nav#navi {
	padding-left: 0px;
}
header#header nav#navi ul li {
	text-align: center;
}
header#header nav#navi ul li:not(:last-child) {
	border-bottom: 1px solid #3b3c40;
}
header#header nav#navi ul li::before {
	display: none;
}
header#header nav#navi ul li a {
	padding: 20px 0px;
}



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

div#cover {
	width: 100%;
	left: 0px;
}
body.admin-bar div#cover,
body.admin-bar div#space-cover {
	height: 100svh;
}
body.admin-bar div#cover {
	top: 0px;
}
div#cover h1 {
	left: 30px;
	bottom: 30px;
	font-size: 2rem;
	line-height: 2.5rem;
}



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

main {
	padding-bottom: 0px;
}
main section div.background {
	width: calc(736px * 0.5);
	height: calc(500px * 0.5);
	top: -30px;
}
main section div.background-left {
	right: calc(50% - 10px);
}
main section div.background-right {
	left: calc(50% - 10px);
}
main section div.background-middle {
	top: calc(50% - 100px);
}
main section div.inner-section {
	width: auto;
	padding: 80px 30px;
}
main section header.common {
	margin-bottom: 40px;
}
main section header.common p.image {
	height: calc(230px * 0.5);
	margin: 0px -30px 40px -30px;
}
main section header.common :is(h1, h2) {
	font-size: 2.5rem;
	line-height: 3rem;
}
main section header.common :is(h1, h2):not(:last-child) {
	margin-bottom: 30px;
}
main section header.common :is(h1, h2):not(:last-child)::before {
	bottom: -15px;
}
main div.list-category {
	margin-bottom: 40px;
}
main div.list-category ul li {
	width: calc(25% - 10px);
}
main section#inquiry-alternate div.list {
	display: block;
	margin: 0px -30px;
}
main section#inquiry-alternate div.list div.row {
	width: auto;
}
main section#inquiry-alternate div.list div.row p.image {
	height: calc(350px * 0.5);
}
main div#pager {
	margin-top: 80px;
}

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

main section#home-about div.inner-section {
	padding: 0px;
}
main section#home-about div.image-text {
	display: block;
	margin-right: 0px;
}
main section#home-about div.image-text div.text {
	width: auto;
	padding: 40px 30px;
}
main section#home-about div.image-text p.image {
	width: auto;
}
main section#home-business div.image {
	display: block;
	margin-left: -30px;
	margin-right: -30px;
}
main section#home-business div.image p.row {
	width: auto;
}
main section#home-works div.image-text p.image {
	margin: 0px -30px;
	height: calc(520px * 0.75);
}
main section#home-works div.image-text div.text {
	width: 100%;
}

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

main section#about div.background-middle {
	display: none;
}
main section#about div.list div.row {
	display: block;
}
main section#about div.list div.row {
	margin-right: 0px;
}
main section#about div.list div.row:not(:last-child) {
	margin-bottom: 80px;
}
main section#about div.list div.row :is(div.image, p.image) {
	width: auto;
	margin-bottom: 30px;
}
main section#about div.list div.row div.text {
	width: auto;
}
main section#information div.list-wrapper {
	display: block;
}
main section#information div.list-wrapper div.list {
	width: auto;
}
main section:is(#information, #base) div.list div.row {
	display: block;
}
main section:is(#information, #base) div.list:not(:first-child) div.row:first-child {
	border-top: none;
}
main section:is(#information, #base) div.list div.row p.label {
	width: auto;
}
main section:is(#information, #base) div.list div.row div.body {
	width: auto;
}
main section#base div.list-map {
	display: block;
	margin-right: 0px;
}
main section#base div.list-map div.list {
	width: auto;
	margin: 0px 0px 20px 0px;
}
main section#base div.list-map p.map {
	width: auto;
	margin: 0px -30px;
	transform: translateY(0px);
}
main section#access-map div.map {
	margin: 0px -30px;
}
main section#access-map div.map iframe {
	height: 320px;
}

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

main section#business div.background-middle {
	display: none;
}
main section#business div:is(.summary, .place, .detail) {
	margin-bottom: 80px;
}
main section#business div.place div.list {
	display: block;
	margin: 0px;
}
main section#business div.place div.list div.row {
	width: auto;
	margin: 0px;
}
main section#business div.place div.list div.row:not(:last-child) {
	margin-bottom: 40px;
}
main section#business div.detail div.list {
	display: block;
	margin: 0px;
}
main section#business div.detail div.list div.row {
	width: auto;
	margin: 0px;
}
main section#business div.detail div.list div.row:not(:last-child) {
	margin-bottom: 60px;
}
main section#business div.feature div.list {
	display: block;
	margin: 0px 0px 40px 0px;
}
main section#business div.feature div.list div.row {
	width: auto;
	margin-right: 0px;
}
main section#business div.feature div.list div.row:not(:last-child) {
	margin-bottom: 60px;
}
main section#business div.feature div.list div.row:not(:last-child)::before,
main section#business div.feature div.list div.row:not(:last-child)::after {
	left: calc(50% - 5px);
	right: auto;
	top: auto;
	bottom: -32px;
}
main section#business div.feature div.list div.row:not(:last-child)::before {
	transform: translateY(-3px) rotate(-135deg);
}
main section#business div.feature div.list div.row:not(:last-child)::after {
	transform: translateY(3px) rotate(-135deg);
}

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

main div.list-works div.row {
	display: block;
}
main div.list-works div.row p.year {
	width: auto;
}
main div.list-works div.row p.client {
	width: auto;
}
main div.list-works div.row p.title {
	width: auto;
}
main div.list-works div.row p.detail {
	width: auto;
}
main div.list-works div.row-header {
	display: none;
}
main div.list-works div.row-body {
	padding: 10px 0px;
}
main div.list-works div.row-body:nth-child(2) {
	border-top: 1px solid #3b3c40;
}
main div.list-works div.row-body p {
	position: relative;
	padding: 0px 0px 0px 80px;
}
main div.list-works div.row-body p::before {
	position: absolute;
	left: 0px;
	top: 0px;
	color: #5d5d5d;
}
main div.list-works div.row-body p.year::before {
	content: "年度";
}
main div.list-works div.row-body p.client::before {
	content: "発注者";
}
main div.list-works div.row-body p.title::before {
	content: "工事名";
}
main div.list-works div.row-body p.detail::before {
	content: "工事内容";
}

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

main section.form div.form div.component-wrapper {
	margin-bottom: 40px;
}
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.privacy-policy {
	width: auto;
	margin-bottom: 60px;
	padding: 20px 30px;
}
main section.form div.form div.action {
	display: block;
	padding-left: 0px;
}
main section.form div.form div.action :is(input:is([type=button], [type=submit]), button) {
	margin: 0px auto;
}
main section.form div.form div.action :is(input:is([type=button], [type=submit]), button):not(:last-child) {
	margin: 0px auto 20px auto;
}

/* recruit
-------------------------------------------------------------------------------- */

main section#recruit div.background-middle {
	display: none;
}
main section#recruit div:is(.summary, .feature) {
	margin-bottom: 80px;
}
main section#recruit div.feature {
	display: block;
}
main section#recruit div.feature div.image {
	width: auto;
	margin-bottom: 30px;
}
main section#recruit div.feature div.body {
	width: auto;
}
main section#recruit div.feature div.body div.list div.row {
	display: block;
}
main section#recruit div.feature div.body div.list div.row p.icon {
	width: 145px;
	margin: 0px auto 20px auto;
}
main section#recruit div.feature div.body div.list div.row div.text {
	width: auto;
}
main section#recruit div.job div.list div.row:not(:last-child) {
	margin-bottom: 80px;
}
main section#recruit div.job div.list div.row div.image-text {
	display: block;
}
main section#recruit div.job div.list div.row div.image-text div.text {
	width: auto;
	margin-bottom: 40px;
	padding-top: 0px;
}
main section#recruit div.job div.list div.row div.image-text div.image {
	width: auto;
}

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

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



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

footer#footer {
	padding: 0px 30px 20px 30px;
}
div.footer footer#footer p#button-page-top {
	position: fixed;
	top: auto;
	bottom: 20px;
}
footer#footer p.copyright {
	text-align: center;
}
