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

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



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

div#page {
	padding-top: 0px;
}
div.application div.list div.row a {
	padding: 20px;
}
div.application div.list div.row h4 {
	font-size: 1.875rem;
	line-height: 1.5rem;
}
div.application div.list div.row p.more {
	left: auto;
	right: 20px;
	bottom: 20px;
}
div.application div.list div.row p.more span.text {
	display: none;
}
nav.navi div.list {
	display: block;
}
nav.navi div.list div.row:not(:last-child) {
	margin-right: 0px;
}
nav.navi div.list div.row:not(:last-child) div.segment,
nav.navi div.list div.row div.segment:not(:last-child) {
	border-bottom: 1px solid #b3b3b3;
	margin-bottom: 20px;
	padding-bottom: 20px;
}
nav.navi div.list div.row div.segment > ul {
	display: flex;
	flex-wrap: wrap;
}
nav.navi div.list div.row div.segment > ul li {
	width: 50%;
}
div.information {
	justify-content: flex-start;
	margin: 0px -15px;
}
div.information p.logo {
	width: calc(57px * 1.5);
	margin-right: 15px;
}



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

header#header::before {
	display: none;
}
header#header *#logo {
	left: 5px;
	top: 10px;
}
body.admin-bar header#header *#logo {
	top: 5px;
}
header#header p#button-menu {
	width: 60px;
	height: 60px;
}
header#header div#menu {
	display: block;
	padding-left: 0px;
	transform: translateX(100%);
	transition-duration: 0.25s;
}
div.menu-header header#header div#menu {
	transform: translateX(0%);
}
header#header div#menu div.inner-menu {
	position: relative;
	width: auto;
	padding: 60px 30px 340px 30px;
}
header#header div.application {
	position: absolute;
	width: 100%;
	height: auto;
	top: auto;
	bottom: 0px;
}
body.admin-bar header#header div.application {
	height: auto;
	top: auto;
}
header#header div.application div.list {
	height: auto;
}
header#header div.application div.list div.row {
	height: 100px;
}
header#header div.navi-information div.list {
	margin-bottom: 0px;
}
header#header div.navi-information div.list div.row-sns {
	display: block;
}
header#header div.navi-information div.list div.row div:where(.segment-sns-alternate, .segment-privacy-policy) {
	display: none;
}
header#header nav#navi p.logo {
	display: none;
}
header#header nav#navi p.privacy-policy {
	display: block;
	text-align: right;
	margin: -25px 0px 40px 0px;
}
header#header nav#navi p.button-corporate {
	position: static;
	left: auto;
	bottom: auto;
}
header#header div.information {
	display: none;
}
header#header nav#navi-alternate,
header#header div.application-alternate {
	display: none;
}



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

div#cover {
	height: 600px;
	min-height: 0px;
}
div#cover div.inner-cover {
	padding: 40px 0px 0px 0px;
}
div#cover div.text {
	margin-bottom: 40px;
}
div#cover div.text h1 {
	margin-bottom: 5px;
}
div#cover div.text h1 i {
	font-size: 3.375rem;
	line-height: 3.75rem;
}
div#cover div.text h1 i:where(:nth-child(1), :nth-child(2), :nth-child(4)) {
	font-size: 3.75rem;
}
div#cover div.text p.sub {
	font-size: 1.125rem;
}
div#cover div.illust {
	max-width: 340px;
	aspect-ratio: 340 / 270;
}



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

div#title {
	padding: 80px 30px 0px 30px;
}
div#title p.symbol {
	font-size: 4.5rem;
	line-height: 4.5rem;
	margin-right: -35px;
}
div#title div.text h1 {
	font-size: 2.25rem;
	line-height: 2.5rem;
}
div#title div.text p.sub {
	font-size: 0.875rem;
	line-height: 1.5rem;
}



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

main section div.inner-section {
	width: auto;
	padding: 80px 30px;
}
main section header:has(p.image-wide) {
	margin-bottom: 80px;
}
main section header div.title-emphasis h1 {
	height: 6.5rem;
	font-size: 3rem;
	line-height: 3.25rem;
	margin-bottom: 5px;
}
main section header div.title-emphasis p.sub {
	font-size: 1.125rem;
}
main p.image-wide {
	margin-left: -30px;
	margin-right: -30px;
	height: 240px;
}
main div.title p.symbol {
	font-size: 4.5rem;
	line-height: 4.5rem;
}
main div.title div.text h1 {
	font-size: 2.25rem;
	line-height: 2.5rem;
}
main div.title div.text p.sub {
	font-size: 0.875rem;
	line-height: 1.5rem;
}
main div.title-alternate p.symbol {
	left: -11.25px;
	font-size: 2.25rem;
}
main div.title-alternate h1 {
	font-size: 1.875rem;
	line-height: 2.25rem;
}
main div.title-alternate p.sub {
	font-size: 0.875rem;
	line-height: 1.5rem;
}
main div:where(.related, #banner-people):not(:last-child) {
	margin-bottom: 80px;
}
main h2.headline {
	font-size: 2.125rem;
	line-height: 3.125rem;
	margin-right: -30px;
}
main h3.headline {
	font-size: 1.375rem;
	line-height: 2.25rem;
}
main div.summary {
	margin-bottom: 60px;
}
main div.summary p.description {
	line-height: 1.875rem;
}
main div#banner-people p.image {
	height: 160px;
}
main div#banner-people div.text h3 {
	font-size: 3rem;
	line-height: 3.5rem;
}
main div#banner-people div.text p.sub {
	font-size: 0.875rem;
	line-height: 1.5rem;
	margin-bottom: 10px;
}
main div#banner-people div.text h4 {
	font-size: 1.375rem;
}
main nav#navi-sub,
main nav#navi-sub div.list,
main nav#navi-sub div.list div.row {
	display: block;
}
main nav#navi-sub {
	width: calc(100% - 60px);
	margin-bottom: 80px;
}
main nav#navi-sub p.label {
	width: auto;
	height: 60px;
}
main nav#navi-sub div.list {
	width: auto;
}
main nav#navi-sub div.list div.row {
	width: auto;
	padding: 20px;
}
main nav#navi-sub div.list div.row:not(:last-child) {
	border-right: none;
	border-bottom: 1px solid #eaeaea;
}
main nav#navi-sub div.list div.row-wide {
	width: auto;
}
main nav#navi-sub div.list div.row ul:has(li:nth-child(2)) {
	margin-bottom: -10px;
}
main nav#navi-sub div.list div.row ul:has(li:nth-child(2)) li {
	width: 50%;
	margin-bottom: 10px;
}
main nav#navi-sub div.list div.row ul li a {
	padding: 0px 0px 0px 15px;
}
main nav#navi-sub div.list div.row ul li a::before {
	left: 0px;
}
main :where(div#pager, nav#navi-article) {
	margin-top: 60px;
}

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

main section#home-company header p.description {
	text-align: left;
	font-size: 1.375rem;
	line-height: 2.25rem;
}
main section#home-company div.list {
	margin: 0px;
}
main section#home-company div.list div.row {
	margin: 0px;
}
main section#home-company div.list div.row:not(:last-child) {
	margin-bottom: 20px;
}
main section#home-company div.list div:where(.row-01, .row-02, .row-03) {
	width: 100%;
}
main section#home-company div.list div:where(.row-01, .row-03) {
	height: auto;
}
main section#home-company div.list div.row-02 {
	height: auto;
}
main section#home-company div.list div:where(.row-04, .row-05) {
	width: 100%;
	height: auto;
}
main section#home-company div.list div.row a {
	padding: 20px 20px 50px 20px;
}
main section#home-company div.list div.row p.illust {
	width: 240px;
	margin: 0px auto;
}
main section#home-company div.list div.row p.illust img {
	width: 100%;
}
main section#home-work div.illust-text {
	display: block;
}
main section#home-work div.illust-text div.border {
	display: none;
}
main section#home-work div.illust-text > div.text {
	width: auto;
	margin-bottom: 20px;
}
main section#home-work div.illust-text > div.text div.title {
	margin-bottom: 40px;
}
main section#home-work div.illust-text p.illust {
	width: auto;
	width: 320px;
	margin: 0px auto;
}
main section#home-work div.list {
	display: block;
	margin-right: 0px;
}
main section#home-work div.list div.row {
	width: auto;
	margin-right: 0px;
}
main section#home-work div.list div.row:not(:last-child) {
	margin-bottom: 20px;
}
main section#home-people div.inner-section {
	padding: 0px 0px 80px 0px;
}
main section#home-people div.slide a {
	border-radius: 0px;
}
main section#home-people div.slide div.image {
	aspect-ratio: 1.25;
}
main section#home-people div.slide :where(div.title, p.button-default) {
	left: 20px;
}
main section#home-people div.slide div.title {
	top: 20px;
	bottom: auto;
}
main section#home-people div.slide p.button-default {
	bottom: 20px;
}
main section#home-news header div.title {
	justify-content: flex-start;
}
main section#home-news header div.title p.symbol {
	margin-right: 0px;
}
main section#home-news div.list-news {
	margin-bottom: 40px;
}
main section#home-misc div.button-wrapper {
	display: block;
	margin-right: 0px;
}
main section#home-misc p.button-default {
	width: auto;
	margin-right: 0px;
}
main section#home-misc p.button-default:not(:last-child) {
	margin-bottom: 20px;
}
main section#home-misc p.button-default a {
	height: 100px;
}

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

main section#message div.headline-body {
	display: block;
}
main section#message div.headline-body h2 {
	width: auto;
	margin-bottom: 40px;
}
main section#message div.headline-body div.body {
	width: auto;
}
main section#message div.headline-body div.body p.description {
	line-height: 1.875rem;
}
main section#message div.headline-body div.body p.name {
	margin-bottom: 60px;
}
main section#outline div.inner-section {
	padding-left: 30px;
}
main section#outline header {
	position: static;
	left: auto;
	top: auto;
	margin-bottom: 40px;
}
main section#outline div.list div.row {
	display: block;
}
main section#outline div.list div.row p.label {
	width: auto;
	margin-bottom: 10px;
}
main section#outline div.list div.row p.body {
	width: auto;
}
main section#outline div.list div.row p.body span.headline {
	display: block;
	width: auto;
}
main section#outline div.list div.row p.body span.headline:not(:first-child) {
	padding-top: 10px;
}
main section#data {
	margin-bottom: 80px;
}
main section#data div.list {
	display: block;
	margin: 0px;
}
main section#data div.list div.row {
	width: auto;
	margin: 0px;
	padding: 20px;
}
main section#data div.list div.row:not(:last-child) {
	margin-bottom: 20px;
}
main section#data div.list div.row:not(:has(p.label + p.sub)) p.label {
	margin-bottom: 10px;
}
main section#data div.list div.row p.label + p.sub {
	margin-bottom: 10px;
}
main section#data div.list div.row:not(:has(h2 + p.sub)) h2 {
	margin-bottom: 10px;
}
main section#data div.list div.row h2 + p.sub {
	margin-bottom: 10px;
}

/* training-career-path
-------------------------------------------------------------------------------- */

main section#training-career-path div.example div.list {
	display: block;
}
main section#training-career-path div.example div.list div.row {
	width: auto;
	padding: 0px;
}
main section#training-career-path div.example div.list div.row:not(:last-child) {
	border-right: none;
	border-bottom: 1px dashed #b3b3b3;
	margin-bottom: 20px;
	padding-bottom: 20px;
}
main section#training-career-path div.example div.diagram div.row p.illust {
	margin-bottom: -10px;
}
main section#training-career-path div.example div.diagram div.row p.illust img {
	width: calc(230px * 0.425);
}

/* social-contribution
-------------------------------------------------------------------------------- */

main section#social-contribution div.list div.row {
	display: block;
}
main section#social-contribution div.list div.row p.image {
	width: auto;
	margin-bottom: 20px;
}
main section#social-contribution div.list div.row div.text {
	width: auto;
}

/* construction-industry
-------------------------------------------------------------------------------- */

main section#construction-industry div.diagram-wrapper {
	width: auto;
	max-width: 330px;
}
main section#construction-industry p.illust {
	right: 10px;
	top: 80px;
	bottom: auto;
}
main section#construction-industry p.illust img {
	width: calc(70px * 0.5);
}
main section#construction-industry p.illust span {
	width: 80px;
	left: calc(50% - 40px);
	top: -35px;
	font-size: 0.6875rem;
	line-height: 0.9375rem;
}
main section#construction-industry p.illust span::before,
main section#construction-industry p.illust span::after {
	height: 25px;
	top: 5px;
}

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

main section#work div.list {
	display: block;
	margin: 0px;
}
main section#work div.list div.row {
	width: auto;
	margin: 0px;
}
main section#work div.list div.row:not(:last-child) {
	margin-bottom: 40px;
}
main section#scene div.image {
	margin: 0px -10px 70px 0px;
}
main section#scene div.image p.row:not(.row-width) {
	aspect-ratio: 720 / 500;
}
main section#scene div.image p.row-width {
	width: calc(100% - 10px);
}
main section#scene div.image p:is(.row-01, .row-02) {
	width: calc(100% - 10px);
}
main section#scene div.image p.row-01 {
	height: auto;
}
main section#scene div.image p.row-02 {
	height: auto;
}
main section#scene div.image p.row-03 {
	width: calc(100% - 10px);
	height: auto;
}
main section#scene div.image p.row-04 {
	width: calc(100% - 10px);
	height: auto;
}

/* job
-------------------------------------------------------------------------------- */

main div.list-job {
	display: block;
	margin: 0px;
}
main div.list-job div.row {
	width: 100%;
	margin: 0px;
}
main div.list-job div.row:not(:last-child) {
	margin-bottom: 20px;
}
main div.related div.list-job div.row {
	width: auto;
}
main div.related div.list-job div.row p.image {
	aspect-ratio: 1.5;
}
main section#job header {
	margin-bottom: 60px;
}
main section#job-detail header {
	margin-bottom: 60px;
}
main section#job-detail header h1 {
	font-size: 1.875rem;
	line-height: 1.875rem;
}
main section#job-detail header h1 span {
	padding: 6.5px 7.5px 8.5px 7.5px;
}
main section#job-detail div:where(.summary, .day, .week) {
	margin-bottom: 80px;
}
main section#job-detail div.summary {
	margin-bottom: 20px;
}
main section#job-detail div.day div.list-image {
	display: block;
}
main section#job-detail div.day div.list {
	width: auto;
}
main section#job-detail div.day div.list div.row:not(:last-child) {
	padding-bottom: 40px;
}
main section#job-detail div.day div.list div.row:has(p.image):not(:has(p.description)) h4,
main section#job-detail div.day div.list div.row:has(p.image) p.description {
	margin-bottom: 20px;
}
main section#job-detail div.day div.list div.row p.image {
	display: block;
}
main section#job-detail div.day div.image {
	display: none;
}
main section#job-detail div.week div.diagram-wrapper {
	max-width: 100%;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}
main section#job-detail div.week div.diagram-wrapper::-webkit-scrollbar {
	height: 15px;
}
main section#job-detail div.week div.diagram-wrapper::-webkit-scrollbar-track {
	background: linear-gradient(180deg, transparent 80%, #b3b3b3 80%, #b3b3b3 86.66%, transparent 86.66%, transparent 100%);
}
main section#job-detail div.week div.diagram-wrapper::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, transparent 66.66%, #b3b3b3 66.66%, #b3b3b3 100%);
}
main section#job-detail div.week div.diagram {
	width: 880px;
}
main section#job-detail div.week div.diagram div.header ul li.blank,
main section#job-detail div.week div.diagram div.body div.list div.row-label {
	width: 80px;
}
main section#job-detail div.week div.diagram div.header ul li:not(.blank),
main section#job-detail div.week div.diagram div.body div.list div.row:not(.row-label) {
	width: 160px;
}

/* cross-talk
-------------------------------------------------------------------------------- */

main div.list-cross-talk div.row:not(:last-child) {
	margin-bottom: 20px;
}
main div.list-cross-talk div.row p.image {
	aspect-ratio: 1.5;
}
main div.list-cross-talk div.row div.text p.number,
main section#cross-talk-detail header div.text p.number {
	top: 20px;
	font-size: 1.625rem;
	line-height: 1.375rem;
}
main div.list-cross-talk div.row div.text :where(p.number, h3) {
	left: 20px;
}
main div.list-cross-talk div.row div.text h2,
main section#cross-talk-detail header div.text h1 {
	top: 15px;
	writing-mode: horizontal-tb;
	font-size: 1.875rem;
	line-height: 1.875rem;
}
main div.list-cross-talk div.row div.text h2 {
	left: 85px;
}
main div.list-cross-talk div.row div.text h3,
main section#cross-talk-detail header div.text h2 {
	font-size: 1.125rem;
	line-height: 1.125rem;
	bottom: 20px;
}
main div.list-cross-talk div.row div.text h3 span:not(:last-child),
main section#cross-talk-detail header div.text h2 span:not(:last-child) {
	margin-bottom: 5px;
}
main div.list-cross-talk div.row div.text h3 span i,
main section#cross-talk-detail header div.text h2 span i {
	padding: 4px 5px 6px 5px;
}
main div.related div.list-cross-talk {
	display: block;
	margin-right: 0px;
}
main div.related div.list-cross-talk div.row {
	width: auto;
	margin-right: 0px;
}
main div.related div.list-cross-talk div.row:not(:last-child) {
	margin-bottom: 20px;
}
main div.related div.list-cross-talk div.row p.image {
	aspect-ratio: 1.5;
}
main div.related div.list-cross-talk div.row div.text h2 {
	left: 85px;
	top: 15px;
}
main section#cross-talk-detail header p.image {
	height: 240px;
	margin: 0px -30px;
}
main section#cross-talk-detail header div.text h1 {
	left: 65px;
}
main section#cross-talk-detail header div.text h2 {
	font-size: 1.125rem;
	line-height: 1.125rem;
}
main section#cross-talk-detail div.member {
	margin-bottom: 80px;
}
main section#cross-talk-detail div.member div.list {
	display: block;
	margin-right: 0px;
}
main section#cross-talk-detail div.member div.list div.row {
	width: auto;
	margin-right: 0px;
}
main section#cross-talk-detail div.member div.list div.row:not(:last-child) {
	margin-bottom: 20px;
}
main section#cross-talk-detail div.member div.list div.row p.post {
	display: flex;
	flex-wrap: wrap;
}
main section#cross-talk-detail div.member div.list div.row p.post span:not(:last-child) {
	margin-right: 15px;
}
main section#cross-talk-detail div.block:not(:last-child) {
	margin-bottom: 80px;
}
main section#cross-talk-detail div.block div.header {
	margin-bottom: 60px;
}
main section#cross-talk-detail div.block div.header h2 {
	font-size: 1.875rem;
	line-height: 2.75rem;
}
main section#cross-talk-detail div.block div.segment {
	padding-left: 40px;
}
main section#cross-talk-detail div.block div.segment:not(:last-child) {
	margin-bottom: 60px;
}
main section#cross-talk-detail div.block div.segment h3::before {
	width: 30px;
	left: -40px;
}
main section#cross-talk-detail div.block + p.note {
	margin-bottom: 80px;
}

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

main div.list-news {
	display: block;
	margin: 0px;
}
main div.list-news div.row {
	width: auto;
	margin: 0px;
}
main div.list-news div.row:not(:last-child) {
	margin-bottom: 20px;
}
main article.news {
	padding: 20px;
}
main article.news header h1 {
	font-size: 1.375rem;
	line-height: 2.25rem;
}

/* guideline
-------------------------------------------------------------------------------- */

main div.list-guideline {
	margin-bottom: 60px;
}
main article.guideline h1 {
	font-size: 1.875rem;
	line-height: 2.75rem;
}
main article.guideline h1 span {
	display: block;
	font-size: 1.375rem;
	line-height: 2.25rem;
	margin-left: 0px;
	padding-top: 5px;
}
main article.guideline div:where(.list-data, .list-application) {
	margin-bottom: 80px;
}
main article.guideline div:where(.list-data, .list-application) div.row {
	display: block;
}
main article.guideline div.list-data div.row p.label {
	width: auto;
	margin-bottom: 10px;
}
main article.guideline div.list-data div.row p.body {
	width: auto;
}
main article.guideline div.list-application div.row p.label {
	width: auto;
	margin-bottom: 10px;
}
main article.guideline div.list-application div.row p.body {
	width: auto;
}
main article.guideline div.button-wrapper {
	display: block;
	margin-right: 0px;
}
main article.guideline p.button-default {
	width: auto;
	font-size: 1.375rem;
	margin-right: 0px;
}
main article.guideline p.button-default:not(:last-child) {
	margin-bottom: 20px;
}
main article.guideline p.button-default a {
	height: 80px;
}

/* faq
-------------------------------------------------------------------------------- */

main div.list-faq {
	padding: 20px;
}
main div.list-faq div.row h2 {
	padding-right: 40px;
}

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

main section.form div.header {
	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.mw_wp_form_preview div.form div.component p.label span.require {
	display: none;
}
main section.form div.form div.component div.body {
	width: auto;
}
main section.form div.form div.component-radio-checkbox div.body {
	margin-bottom: 0px;
}
main section.form div.form div.component-horizontal div.body {
	display: block;
}
main section.form div.form div.component-radio-checkbox div.body span:where(.mwform-radio-field, .mwform-checkbox-field) {
	margin: 0px;
}
main section.form div.form div.component-horizontal div.body span:where(.mwform-radio-field, .mwform-checkbox-field):not(:last-of-type) {
	margin: 0px 0px 10px 0px;
}
main section.form div.form div.component-postal-code div.body {
	display: flex;
}
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):not(:last-child) {
	margin: 0px 0px 20px 0px;
}



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

footer#footer div.application div.list {
	display: block;
}
footer#footer div.application div.list div.row {
	width: auto;
}
footer#footer div.application div.list div.row a {
	height: 100px;
}
footer#footer div.navi-information {
	margin-bottom: 40px;
	padding: 0px 30px;
	background-color: transparent;
}
footer#footer nav#navi-footer div.list {
	margin-bottom: 0px;
}
footer#footer nav#navi-footer div.list div.row:last-child {
	position: static;
	width: auto;
	right: auto;
	top: auto;
}
footer#footer nav#navi-footer div.list div.row div.segment-privacy-policy {
	display: none;
}
footer#footer nav#navi-footer p.privacy-policy {
	display: block;
	position: relative;
	width: 200px;
	text-align: right;
	margin: -25px 0px 40px auto;
}
footer#footer nav#navi-footer p.button-corporate {
	position: static;
	right: auto;
	top: auto;
	margin-bottom: 40px;
}
footer#footer nav#navi-footer p.button-corporate a {
	width: 280px;
}
footer#footer nav#navi-footer p.logo {
	display: none;
}
footer#footer div.information {
	margin-top: 0px;
}
footer#footer p.copyright {
	width: auto;
	text-align: center;
	margin-top: 0px;
	padding-left: 0px;
}
