@charset "utf-8";

/* CSS Document */


/* ------------------------------------------------------------------------------------------------------------
	<logo>
------------------------------------------------------------------------------------------------------------ */
.Logo
{
}


.logo_img
{
	display: flex;
	align-items: baseline;
	gap: 0.5em;

	margin: unset;
}
.logo_img img
{
	width: auto;
	height: 1.5em;

	margin: unset;
	object-fit: cover;
}
.logo_img img[src*="symbolmark"]
{
	height: 2em;
}


footer .logo_tate
{
	display: grid;
	gap: 0.5em;
}
footer .logo_tate>span
{
	display: grid;
	gap: 0.5em;
}
footer .logo_tate img[src*="symbol"]
{
	width: auto;
	height: 4em;
}
footer .logo_tate img[src*="logo_kabushikikaisya"]
{
	width: auto;
	height: 1.33em;
}
footer .logo_tate img[src*="logo_hasegawakensetsu"]
{
	width: auto;
	height: 1.78em;

	left: -2px;
}


/* ------------------------------------------------------------------------------------------------------------
	<body>
------------------------------------------------------------------------------------------------------------ */
body
{
	display: grid;
	gap: var(--padding);
}


/* ------------------------------------------------------------------------------------------------------------
	<header>
------------------------------------------------------------------------------------------------------------ */
header
{
	position: sticky;
	left: 0;
	right: 0;
	top: 0;

	z-index: 100;
	background-color: rgb(var(--theme_light));

	display: grid;
	align-content: center;
}
/*
*/

.scroll header
{
}

header>*[class*="wrap"]
{
	display: flex;
	justify-content: space-between;
	align-items: center;

	height: var(--header_h);
}


.Harea
{
	display: grid;
	gap: var(--gap);
}


.Harea .page_head
{
	order: 2;
}

/* パンくず */
.breadcrum
{
	order: 1;

	display: grid;
	align-items: end;

	padding-bottom: 1em;
	border-bottom-width: 1px;
	border-color: rgb(var(--theme));
	color: rgb(var(--theme));
}
/*
	height: 11em;
*/
.breadcrum>*
{
	font-size: smaller;

	display: flex;
	justify-content: end;
	gap: var(--gap);
}
.breadcrum .head
{
	position: absolute;
	left: 0;
	top: 50%;
	translate: -0% -50%;
}

.breadcrum a
{
}
.breadcrum a>b
{
	opacity: unset;
}
.breadcrum a>b + span
{
	position: absolute;
	left: 0;
	top: 50%;
	translate: -0% -50%;

	width: max-content;

	opacity: 0;
}
.breadcrum a:hover>b
{
	opacity: 0;
}
.breadcrum a:hover>b + span
{
	opacity: unset;
}


/* ------------------------------------------------------------------------------------------------------------
	<global menu>
------------------------------------------------------------------------------------------------------------ */
.global
{
}


header .global
{
	display: grid;
	align-items: center;
}


header .global ul
{
	display: flex;
	gap: var(--gap);

	height: 100%;
}
header .global ul>li
{
}


header .global :is(a, .a)
{
	display: flex;
	justify-content: center;
	justify-items: center;
	align-items: center;

	width: 100%;
	height: 100%;
}
header .global :is(a, .a)>b
{
	font-size: inherit;
	font-weight: inherit;
	opacity: 1;
}
header .global :is(a, .a)>span:not([class*="icon_"])
{
	position: absolute;
	left: 50%;
	top: calc(50% - 1px);
	translate: -50% -50%;

	width: fit-content;
	width: max-content;

	opacity: 0;
}

header .global :is(a, .a):hover>b
{
	opacity: 0;
}
header .global :is(a, .a):hover>span:not([class*="icon_"])
{
	opacity: unset;
}

/*
header .global :is(a, .a)>*:not([class*="icon_"])
{
	top: -0.25em;

	display: grid;
	grid-template-rows: var(--icon_w) auto;
	justify-content: center;
	justify-items: center;
	align-content: center;
	align-items: center;
	gap: 0.25em;
}
header .global :is(a, .a)>*>b
{
	font-weight: inherit;
	font-size: smaller;
}

header .global *[class*="icon_"]
{
	justify-content: center;
}
header .global *[class*="icon_"] img
{
}

header .global *.icon_arrow
{
	--icon_w				: 0.75em;

	position: absolute;
	left: 50%;
	bottom: 0.5em;
	translate: -50% -0%;

	height: auto;

	rotate: 90deg;
}
header .global *.icon_arrow img
{
	filter: brightness(0);
}
*/

/* ------------------------------------------------------
	[global menu] <header> お問い合わせ
*/
header .global ul>li:has([href*="contact/"])
{
	line-height: 1;
}
header .global ul>li:has([href*="contact/"]) :is(a, .a)
{
	display: flex;
	align-items: center;
	gap: 1em;

	padding: 0.5em 1em;
	background-color: rgb(var(--bk));
	color: rgb(var(--w));

	border-width: 0;

	text-align: center;
}
header .global ul>li:has([href*="contact/"]) :is(a, .a) span[class*="icon"]
{
	filter: brightness(0) invert(1);
}

header .global ul>li:has([href*="contact/"]) :is(a, .a)>span:not([class*="icon_"])
{
	left: initial;
	right: 1em;
	translate: -0% -50%;
}


/* ------------------------------------------------------
	[global menu] <header> child
*/
header .global .subcate
{
}

header .global .subcate :is(a, .a)
{
}


header .global.pulldown ul li .child
{
	position: fixed;
	left: 1em;
	right: 1em;
	top: calc((1em + var(--header_h)) - 1em);
	top: calc((1em + var(--header_h)) - 0.5em);

	width: auto;

	background-color: transparent;
	z-index: 10;
}
/*
	top: 0;
	padding-top: calc((1em + var(--header_h)) - 2px);
*/

header .global.pulldown ul li .child .child_content
{
	background-color: rgb(255 255 255);
}
header .global.pulldown ul li .child .child_content::before
{
	content: "";
	display: block;

	position: absolute;
	left: 50%;
	top: 50%;
	translate: -50% -50%;

	width: 100%;
	height: 100%;

	border-width: 1px;
	border-top-width: 0;
}


header .global.pulldown ul li:hover .child
{
}

header .global .child
{
}

header .global .child .title
{
	display: block;
	font-size: larger;
}

header .global .child_content
{
	padding: var(--gap) 1em;

	display: grid;
	gap: calc(var(--gap) / 2);
}


header .global form[name="frm_search"]
{
}
header .global form[name="frm_search"] input
{
	font-size: 1.5em;
}


header .global .child_content>ul
{
	display: flex;
	flex-wrap: wrap;
	gap: var(--padding);
}


.drawer
{
	text-align: left;
}

.drawer>ul
{
}
.drawer>ul>li
{
}

.drawer :is(a, .a)
{
	display: flex;
	min-width: 20em;

	padding-left: 0;
	padding-right: 0;
}

.drawer :is(a, .a)>span[class*="icon_"]
{
	order: 2;
}

.drawer :is(a, .a)>b
{
	order: 1;
}

.drawer :is(a, .a)>span:not([class*="icon_"])
{
}

.drawer a:has([class*="icon_"])>span:not([class*="icon_"])
{
	left: 0;
	right: initial;
}


/* ------------------------------------------------------------------------------------------------------------
	<main>
------------------------------------------------------------------------------------------------------------ */
main
{
	display: grid;
	gap: var(--padding);
}


.Ct
{
	display: grid;
	gap: var(--ct_gap);
}


/* ------------------------------------------------------------------------------------------------------------
	<sideArea>
------------------------------------------------------------------------------------------------------------ */
.sideArea
{
	position: fixed;
	top: calc(var(--header_h) + var(--gap));
	left: 1em;

	z-index: 100;

	transition: all 0.2s ease-out;
}
/*
	opacity: unset;
	bottom: var(--padding);
	top: calc(var(--header_h) + var(--gap));
*/

.is_scrolling .sideArea
{
}
/*
	opacity: 0.3;
*/

.sideArea a
{
	filter: drop-shadow(0 0 0.2em rgb(var(--theme_light)));
}
/*
	font-size: 1.33em;
*/
.sideArea a:has([class*="icon_"])
{
	display: grid;
	display: flex;
	justify-items: center;

	min-width: initial;
	width: auto;

	padding: 1em 0.5em;
	padding: 0.5em 1em;

	background-color: rgb(var(--bk));
	color: rgb(255 255 255);
	border-width: 0;
}

.sideArea a *[class*="icon_"]
{
	filter: brightness(0) invert(1);
}

.sideArea a:has([class*="icon_"])>b
{
	font-size: inherit;

	opacity: unset;
}
/*
	writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	text-orientation: upright;
*/

.sideArea a:has([class*="icon_"])>b + span
{
	font-size: inherit;
	position: absolute;
	left: 50%;
	right: 1em;
	bottom: 1em;
	translate: -50% -50%;

	top: 50%;
	left: initial;
	bottom: initial;
	translate: -0% -50%;

	width: max-content;
	
	rotate: 90deg;
	rotate: 0deg;
	opacity: 0;
}

.sideArea a:hover>b
{
	opacity: 0;
}
.sideArea a:hover>b + span
{
	opacity: unset;
}

/* ------------------------------------------------------------------------------------------------------------
	<footer>
------------------------------------------------------------------------------------------------------------ */
.pagetop
{
	position: fixed;
	right: 0;
	bottom: 0;

	z-index: 100;

}
.pagetop a
{
	aspect-ratio: 1;

	display: block;

	width: 2em;
	background-color: rgb(var(--bk));
	border-radius: 100em;
	
	display: none;
}


footer
{
	display: grid;
	gap: var(--padding);
}

footer :is(a, .a)
{
	color: inherit;
}
footer :is(a, .a)>b
{
	font-weight: inherit;
}


/* ------------------------------------------------------
	<footer>　誇りと共に、歩む。
*/
footer .Pride
{
	display: grid;
	gap: var(--gap);
}


footer .Pride .body
{
	max-width: 100svw;

	overflow-x: hidden;
}


footer .Pride .main
{
	position: absolute;
	left: 50%;
	top: 50%;
	translate: -50% -50%;

	display: grid;
	gap: var(--gap);

	width: fit-content;

	color: rgb(var(--w));

	filter:
		drop-shadow(0 0 0.5em rgb(var(--bk) / 0.65))
		drop-shadow(0 0 0.5em rgb(var(--bk) / 0.65))
		drop-shadow(0 0 0.2em rgb(var(--bk) / 0.65))
	;
}

footer .Pride .main a
{
	justify-self: end;

	margin-top: var(--gap);
	border-color: rgb(var(--w));
}
footer .Pride .main a *[class*="icon_"]
{
	filter: brightness(0) invert(1);
}
footer .Pride .main a>b
{
	font-size: 1.33em;
}


footer .Pride .slider_custom
{
}

footer .Pride .slider_custom .slick-track
{
	display: flex;
	gap: 2px;
}


footer .Pride .slider_custom .item
{
}

footer .Pride .slider_custom .item>*
{
	aspect-ratio: 1462 / 640;
	
	display: grid;
	grid-template-columns: 78% 1fr;
	grid-template-rows: repeat(2, 1fr);
	gap: 2px;
}
footer .Pride .slider_custom .slick-slide .photo
{
	width: 100%;
	min-width: unset;
	height: 100%;
	object-fit: cover;

	filter: brightness(0.4);
}
footer .Pride .slider_custom .slick-slide .photo:nth-child(1)
{
	grid-row: span 2;
	max-height: unset;
}
footer .Pride .slider_custom .slick-slide .photo:not(:nth-child(1))
{
	aspect-ratio: 1;
}


/* ------------------------------------------------------
	<footer>　ロゴ部～
*/
footer>*[class*="wrap"]
{
	display: grid;
	grid-template-columns: auto 40em auto;
	align-items: start;
	gap: 0;
}


footer .information
{
	order: 1;

	display: grid;
	gap: var(--gap);

}

footer .information .site_address
{
	display: grid;
	gap: 0;
}
footer .information .site_address .zip
{
	font-size: 0.78em;
}
footer .information .site_address .address
{
	font-size: 0.9em;
}


footer>*[class*="wrap"]>img
{
	order: 2;

	align-self: flex-end;
	opacity: 0.25;
}


footer>*[class*="wrap"]>ul
{
	order: 3;
}


footer>*[class*="wrap"]>ul>.global:not(.SP)
{
	display: grid;
	grid-template-columns: repeat(2, auto);
	align-items: start;
	gap: var(--gap) 0;
}

footer>*[class*="wrap"]>ul>.global>ul
{
	display: grid;
	gap: calc(var(--gap) / 2);
}

footer>*[class*="wrap"]>ul>.global :is(a, .a)
{
}
footer>*[class*="wrap"]>ul>.global :is(a, .a):not(:has([class*="icon_"]))>b
{
	opacity: unset;
}
footer>*[class*="wrap"]>ul>.global :is(a, .a):not(:has([class*="icon_"]))>b + span
{
	position: absolute;
	left: 0;
	top: 50%;
	translate: -0% -50%;

	width: max-content;
	opacity: 0;
}
footer>*[class*="wrap"]>ul>.global :is(a, .a):not(:has([class*="icon_"])):hover>b
{
	opacity: 0;
}
footer>*[class*="wrap"]>ul>.global :is(a, .a):not(:has([class*="icon_"])):hover>b + span
{
	opacity: unset;
}



footer>*[class*="wrap"]>ul>.global>ul:has(
	[href*="privacy"],
	[href*="sitemap"]
)
{
}

footer>*[class*="wrap"]>ul>.global>ul:has(
	[href*="privacy"],
	[href*="sitemap"]
) :is(a, .a)
{
}
footer>*[class*="wrap"]>ul>.global>ul:has(
	[href*="privacy"],
	[href*="sitemap"]
) :is(a, .a)>b
{
	font-size: smaller;
}


/* ------------------------------------------------------
	<footer>　(c)
*/
footer .copy
{
	position: absolute;
	left: 50%;
	bottom: 1em;
	translate: -50% -0%;

	width: 100%;
}


/* ------------------------------------------------------------------------------------------------------------
	<page active>
------------------------------------------------------------------------------------------------------------ */
:is(header, footer, .drawer) .global
{
}

:is(header, footer, .drawer) .global li
{
}

html.index :is(header, footer, .drawer) .global li
{
}

html.about :is(header, footer, .drawer) .global li:has([href*="about/"]),
html.services :is(header, footer, .drawer) .global li:has([href*="services/"]),
html.works :is(header, footer, .drawer) .global li:has([href*="works/"]),
/* html.recruit :is(header, footer, .drawer) .global li:has([href*="recruit/"]), */
html.recruit.form :is(header, footer, .drawer) .global li:has([href*="recruit/form.php"]),
html.privacy :is(header, footer, .drawer) .global li:has([href*="privacy/"]),
html.sitemap :is(header, footer, .drawer) .global li:has([href*="sitemap/"])
{
	color: rgb(var(--theme));
}

html.recruit.index :is(header, footer, .drawer) .global li.recruit_index,
html.recruit.form :is(header, footer, .drawer) .global li.recruit_form
{
	color: rgb(var(--theme));
}

html.contact :is(header) .global li:has([href*="contact/"]) :is(a, .a)
{
	background-color: rgb(var(--theme));
}
html.contact :is(footer, .drawer) .global li:has([href*="contact/"]) :is(a, .a)
{
	color: rgb(var(--theme));
}
html.contact :is(footer) .global li:has([href*="contact/"]) :is(a, .a)
{
	border-color: rgb(var(--theme));
}

/* ------------------------------------------------------------------------------------------------------------
	<SNS>
------------------------------------------------------------------------------------------------------------ */


/* ------------------------------------------------------------------------------------------------------------
	お問い合わせ
	<footer>
------------------------------------------------------------------------------------------------------------ */
footer .Get_in_Touch
{
	margin-top: calc(0em - var(--padding));

	padding-top: var(--padding);
}
footer .Get_in_Touch::before
{
	content: "";
	display: block;

	position: absolute;
	left: 50%;
	top: 50%;
	translate: -50% -50%;

	width: 100%;
	height: 100%;

	background-image: url(../img/gradation.png);
	background-position: bottom;
	background-repeat: repeat-x;

	z-index: 2;
}
footer .Get_in_Touch>img
{
	position: absolute;
	left: 50%;
	top: 50%;
	translate: -50% -50%;
	
	width: 100%;
	height: 100%;
	opacity: 0.3;

	z-index: 1;
}

footer .Get_in_Touch>*[class*="wrap"]
{
	display: grid;
	gap: var(--gap);

	z-index: 5;
}

footer .Get_in_Touch h2>b
{
	justify-content: center;
}


footer .Get_in_Touch .body>ul
{
	list-style: none;
	margin: 0;

	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--padding);
}

footer .Get_in_Touch .body>ul>li
{
	aspect-ratio: 536 / 382;

}

footer .Get_in_Touch .body :is(a, .a)
{
	display: grid;
	justify-content: initial;
	align-content: space-between;

	width: 100%;
	max-width: initial;
	height: 100%;

	border-width: 1px;
	padding: var(--gap);
}

footer .Get_in_Touch .body :is(a, .a)>b
{
	font-weight: inherit;
	font-size: 1.33em;
}

footer .Get_in_Touch .body :is(a, .a):hover>b
{
	opacity: unset;
}

footer .Get_in_Touch .body .txt
{
	justify-self: end;
}
footer .Get_in_Touch .body .txt>*:has(.num)
{
	display: flex;
	align-items: baseline;
	gap: 0.25em;

	font-size: 1.5em;

	line-height: 1;
}
footer .Get_in_Touch .body .txt>*:has(.num) .num
{
	font-size: 2em;
}
footer .Get_in_Touch .body .txt>*.open
{
	font-size: larger;
	text-align: center;
}

footer .Get_in_Touch .body :is(a, .a) .Btn
{
	border-bottom-width: 1px;
}
footer .Get_in_Touch .body :is(a, .a) .Btn>b
{
	font-weight: inherit;
	font-size: 1.33em;
	opacity: unset;
}
footer .Get_in_Touch .body :is(a, .a) .Btn>b + span
{
	font-size: 1.33em;

	position: absolute;
	right: 0;
	top: 50%;
	translate: -0% -50%;

	width: max-content;

	opacity: 0;
}
footer .Get_in_Touch .body a:hover .Btn>b
{
	opacity: 0;
}
footer .Get_in_Touch .body a:hover .Btn>b + span
{
	opacity: unset;
}


/* ------------------------------------------------------------------------------------------------------------
	お問い合わせ
	contact/
------------------------------------------------------------------------------------------------------------ */
.contact
{
}


.form main .tel
{
}
.form main .tel .note
{
}
.form main .tel .note>*
{
	display: flex;
	justify-content: center;
	align-items: baseline;
	gap: 0.5em;
}
.form main .tel .note>*
{
}
.form main .tel .note>*:has(.num)
{
	display: flex;
	align-items: baseline;
	gap: 0.25em;

	font-size: 2.5em;

	line-height: 1;
}
.form main .tel .note>*:has(.num) .num
{
	font-size: 2em;
}
.form main .tel .note>*.open
{
	font-size: larger;
	text-align: center;
}


.form main .mail_form
{
	display: grid;
	grid-template-columns: 1fr 40.25em;
	align-items: start;
	gap: var(--gap);
}


.form main .note
{
	grid-column: span 2;
}


.form main form
{
	display: grid;
	gap: var(--gap);
}

.form main form table
{
}

.form main form table .list
{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1em;
}

.form main form .privacy_check
{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0 1em;
}

.form main form .privacy_check .Alert
{
	width: 100%;
	text-align: center;
}

.form main form .privacy_check a
{
	color: rgb(var(--theme));
	text-decoration-line: underline;
}



.form.end main
{
}
.form.end main *[class*="Btn"]
{
	justify-self: center;
}

.form.end main .note
{
	grid-column: unset;
}


/* ------------------------------------------------------------------------------------------------------------
	index
------------------------------------------------------------------------------------------------------------ */
#index
{
}

#index body
{
	gap: 0;
}


#index main
{
	margin-top: calc(var(--gap) / 2);
}

#index main>*:last-child
{

	margin-bottom: var(--padding);
}


#index main .top_img
{
	--top_catch_font			: 2.5em;
	--top_catch_LR				: 5svw;
	--top_main_w				: 20svw;

	width: var(--max_width);
	width: 100vw;
	width: 100%;
	overflow: hidden;

	margin-left: auto;
	margin-right: auto;
}

#index main .top_img .slider_custom .slick-list
{
}


/* [index]　Gallery　catch */
#index main .top_img .top_catch
{
	position: absolute;
	left: var(--top_catch_LR);
	right: var(--top_catch_LR);
	top: var(--gap);

	display: grid;

	width: auto;

	color: rgb(var(--w));

	--move					: 0;
	--blur					: 2em;
	--shadow_color			: rgb(var(--bk));
	text-shadow:
		var(--move) var(--move) var(--blur) var(--shadow_color)
	;
}
/*
	bottom: var(--gap);
	width: calc(100svw - (var(--top_catch_LR) + var(--top_catch_LR) + var(--top_main_w) + var(--top_catch_LR)));
*/


#index main .top_img .top_catch>b
{
	font-size: var(--top_catch_font);
	font-weight: inherit;
}
#index main .top_img .top_catch>span
{
	font-size: calc(var(--top_catch_font) * 1.6);
	color: inherit;
}

/* 個別 */
#index main .top_img img[src*="R0023086"]
{
	object-position: top;
}



#index main h1
{
	display: grid;
	justify-items: center;
	gap: 1em;

	position: absolute;
	left: 50%;
	top: 50%;
	translate: -50% -50%;

	width: max-content;

	color: rgb(var(--w));
}

#index main h1 .logo_img img
{
	height: 2.63em;

	filter: brightness(0) invert(1);
}
#index main h1 .txt
{
	font-size: larger;
}


/* ------------------------------------------------------------------------------------------------------------
	[index]　会社概要「信頼を築き、街の未来を支える。」
	[260319-1712/260323-0930]校正　pic1枚削除による構成変更
------------------------------------------------------------------------------------------------------------ */
.index main .about
{
}

.index main .about>*[class*="wrap"]
{
	display: grid;
	gap: var(--gap);
}


.index main .about .body
{
	display: grid;
	grid-template-columns: 31em 1fr;
	align-items: start;
	gap: calc(var(--gap) * 2);
}

.index main .about .main
{
	display: grid;
	gap: var(--gap);
}

.index main .about .body .img
{
}

.index main .about .item1
{
	aspect-ratio: 1;
}
.index main .about .item2
{
	aspect-ratio: 329 / 214;

	width: 21em;

	margin-top: calc(0em - (var(--gap) * 1.5));
	margin-left: calc(0em - var(--note));
}

.index main .about .item3
{
	aspect-ratio: 420 / 208;

	width: 26em;
}
/*
[260319-1712/260323-0930]校正　1枚削除した
	position: absolute;
	right: 0;
	bottom: 0;
*/

.index main .about .txt
{
	width: 34em;

	display: grid;
	gap: calc(var(--gap) / 2);
}

.index main .about .footer
{
	display: flex;
	justify-content: space-between;
	align-items: start;
}

/* [260319-1712/260323-0930]校正　pic1枚削除による構成変更 */
.index main .about .body+.item3
{
	display: none;
}


/* ------------------------------------------------------------------------------------------------------------
	[index]　事業案内「街を支える、確かな手応え。」
------------------------------------------------------------------------------------------------------------ */
.index main .services
{
}


.index main .services>*[class*="wrap"]
{
	display: grid;
	gap: var(--gap);
}


.index main .services .main
{
	position: absolute;
	right: 0;
	top: 0;
}


.index main .services .list
{
	display: flex;
	gap: 1px;
}
.index main .services .list>*
{
	width: 100%;
}

.index main .services .list a
{
	aspect-ratio: 16 / 9;

	display: block;

	color: rgb(var(--w));
	overflow: hidden;
}
/*
[260319-1712]校正　「舗装工事、土木工事は　掲載してください。ほかのとび、水道施設工事、造園工事は許可を取得している段階で、まだ施工は少ない為、おいおい施工して行きたいと考えております。」に伴うバランス調整
	aspect-ratio: 320 / 640;
*/
.index main .services .list img
{
	height: 100%;
	filter: brightness(0.4);
}
.index main .services .list a:hover img
{
	scale: 1.1;
}

.index main .services .list .title
{
	font-size: 1.5em;
	font-weight: inherit;

	position: absolute;
	left: 50%;
	top: 5em;
	translate: -50% -0%;

	width: max-content;
	height: max-content;

	letter-spacing: 0.25em;

	writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	text-orientation: upright;
}

.index main .services .list .lead
{
	font-size: larger;
	position: absolute;
	left: 1em;
	right: 1em;
	bottom: 1em;

	line-height: 1.5;
}


/* ------------------------------------------------------------------------------------------------------------
	[index]　施工実績「街の風景を、新しく書き換える。」
------------------------------------------------------------------------------------------------------------ */
.index main .works
{
	--img_w					: 46em;
}


.index main .works>img
{
	position: absolute;
	right: 0;
	top: 0;

	width: calc(
		(
			((100vw - 90em) / 2)
			 + 
			(90em - (var(--gap) + var(--img_w)))
		)
	);

	height: 100%;
}


.index main .works>*[class*="wrap"]
{
	display: grid;
	gap: var(--gap);
}
.index main .works>*[class*="wrap"]>*
{
	width: calc(100% - (var(--gap) + var(--img_w)));
}

.index main .works h2
{
	order: 1;
}

.index main .works .main
{
	order: 3;

	display: grid;
	justify-items: end;
	gap: var(--gap);
}

.index main .works .main .txt
{
	width: 85%;

	display: grid;
	gap: calc(var(--gap) / 2);
}


/* ------------------------------------------------------------------------------------------------------------
	news
------------------------------------------------------------------------------------------------------------ */
/* ------------------------------------------------------
	[news]　一覧
*/
.news_list
{
}


.news_list .list
{
	display: grid;
	gap: 1em;

	width: 80%;
	margin-left: auto;
	margin-right: auto;
}


.news_list .list a:has([class*="icon_"])
{
	justify-content: initial;
	max-width: initial;
}

.news_list .list a *[class*="icon_"]
{
	justify-self: end;

	position: absolute;
	right: 0;
	top: 50%;
	translate: -0% -50%;
}


#index .news_list
{
	display: grid;
	grid-template-columns: 1fr 40.25em;
	align-items: start;
	gap: var(--gap);
}
#index .news_list>h2
{
	order: 1;
}
#index .news_list>.list
{
	order: 2;

	grid-row: span 2;
}
#index .news_list>a
{
	order: 3;

	justify-self: end;
	align-self: flex-end;
}


/* ------------------------------------------------------------------------------------------------------------
	会社概要
	about/
------------------------------------------------------------------------------------------------------------ */
.about
{
}


.about main
{
}


/* ------------------------------------------------------
	[会社概要]　見えない場所にこそ、宿るもの。
*/
.about main .Our_Standard
{
}

.about main .Our_Standard .note
{
	display: grid;
	gap: calc(var(--gap) / 2);
}


/* ------------------------------------------------------
	[会社概要]　「一生の成長」を、この街の礎に。
	[260319-1712/260323-0930]校正　lead追加による、構成変更
*/
.about main .Message
{
}


.about main .Message h2
{
	justify-self: center;
}


.about main .Message .lead
{
	text-align: center;
	gap: 1em;
}


.about main .Message .body>img
{
	aspect-ratio: 663 / 718;

	position: absolute;
	left: 0;
	top: 0;

	width: calc(
		(
			((100svw - 70em) / 2)
			 + 
			(70em - (var(--gap) + 37.4em))
		)
	);
	height: 100%;
}


.about main .Message .body>*[class*="wrap"]
{
	display: grid;
	gap: var(--gap);
}

.about main .Message .body .note
{
	width: 37.4em;
	margin-left: auto;
}
/*
[260319-1712/260323-0930]校正　lead追加による、構成変更
.about main .Message h2,
.about main .Message .note
{
	width: 37.4em;
	margin-left: auto;
}
*/

.about main .Message .note
{
	display: grid;
	gap: calc(var(--gap) / 2);
}

.about main .Message .note>*:not(.r)
{
}


/* ------------------------------------------------------
	[会社概要]　会社情報
*/
.about main .Corporate_Data
{
}


.about main .Corporate_Data>*[class*="wrap"]
{
	display: grid;
	gap: var(--gap);
}

.about main .Corporate_Data .site_address
{
	display: flex;
	gap: 1em;
}


.about main .Corporate_Data .map iframe
{
	height: 30.33em;
}


/* ------------------------------------------------------------------------------------------------------------
	事業案内
	services/
------------------------------------------------------------------------------------------------------------ */
.services
{
}


.services.index
{
}

.services.index main
{
}


.ct_item>.body
{
	display: flex;
	gap: var(--gap);
}

.ct_item>.body>img
{
	aspect-ratio: 820 / 601;

	width: 50em;
}

.ct_item>.body>.main
{
	width: calc(100% - (50em + var(--gap)));

	display: grid;
	align-content: start;
	align-items: start;
	gap: var(--gap);
}
.ct_item>.body>.main>*
{
	width: 30em;
}
.ct_item>.body>.main .note
{
	display: grid;
	gap: var(--gap);
}
.ct_item>.body>.main .note a
{
	justify-self: end;
}


.ct_item.odd
{
}
.ct_item.odd>.body>img
{
}
.ct_item.odd>.body>.main
{
}

.ct_item.even
{
}
.ct_item.even>.body>img
{
	order: 2;
}
.ct_item.even>.body>.main
{
	order: 1;
}
.ct_item.even>.body>.main>*
{
	justify-self: end;
}


/* ------------------------------------------------------------------------------------------------------------
	事業案内 / 詳細
	services/detail.php
------------------------------------------------------------------------------------------------------------ */
.services.detail
{
}


.services.detail main
{
}


.services.detail main .ct
{
}

.services.detail main .ct>*[class*="wrap"]
{
	display: grid;
	align-items: start;
	gap: var(--gap);
}

/* ------------------------------------------------------
	[事業案内 / 詳細]　施工概要
*/
.services.detail main .mission
{
}

.services.detail main .mission>*[class*="wrap"]
{
	grid-template-columns: 1fr 45em;
}


/* ------------------------------------------------------
	[事業案内 / 詳細]　施工種別
*/
.services.detail main .expertise
{
}

.services.detail main .expertise table
{
}

.services.detail main .expertise table :where(th, td)
{
}

.services.detail main .expertise table :where(th, td):has(img)
{
	padding-top: 0;
	padding-bottom: 0;
}
.services.detail main .expertise table :where(th, td):has(img) img
{
	aspect-ratio: 1;

	width: calc(var(--gap) * 5);
}


/* ------------------------------------------------------
	[事業案内 / 詳細]　施工の流れ
*/
.services.detail main .process
{
}


.services.detail main .process table
{
}

.services.detail main .process table :where(th, td)
{
}

.services.detail main .process table .num
{
	padding: 0;
	padding-right: var(--gap);
}
.services.detail main .process table .num>b
{
	top: -0.05em;
	font-size: 4em;
	color: rgb(var(--w));
	line-height: 1;
}


/* ------------------------------------------------------
	[事業案内 / 詳細]　長谷川建設のこだわり
*/
.services.detail main .standard
{
}

.services.detail main .standard .logo_symbolmark
{
	display: block;

	position: absolute;
	right: 0;
	top: 0;

	width: 30.54em;

	opacity: 0.2;
}

.services.detail main .standard .logo_symbolmark img
{
	width: 100%;
	height: auto;
}


/* ------------------------------------------------------------------------------------------------------------
	施工実績
	works/
------------------------------------------------------------------------------------------------------------ */
.works
{
}


.works .category_list
{
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
}
.works .category_list>*
{
	display: flex;
	justify-content: center;

	min-width: 5em;

	padding: 0.3em 1em;
	background-color: rgb(var(--bk));
	border-width: 1px;
	color: rgb(var(--w));

	text-align: center;
	line-height: 1;
}


.works.detail .page_head .category_list
{
	position: absolute;
	right: 0;
	top: 0;
}
.works.detail .page_head .category_list>*
{
	font-size: larger;
	background-color: transparent;
	color: inherit;
}


/* ------------------------------------------------------
	[施工実績]
	works/index.php
------------------------------------------------------ */
.works.index
{
}


.works.index main
{
}


.works.index main>*[class*="wrap"]
{
	display: grid;
	gap: var(--gap);
}


.works.index main .category_btn
{
	display: flex;
	gap: var(--gap);
}
.works.index main .category_btn>*
{
	width: 100%;

	border-width: 1px;

	text-align: center;
}
.works.index main .category_btn .active
{
	background-color: rgb(var(--bk));
	color: rgb(var(--w));
}

.works.index main .list
{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: calc(var(--gap) * 2) var(--gap);
}

.works.index main .list .main
{
	display: grid;
	gap: 1em;
}

.works.index main .list a
{
	display: grid;
	align-items: start;
	gap: 1em;
}

.works.index main .list .img
{
	overflow: hidden;
}
.works.index main .list img
{
	aspect-ratio: 4 / 5;
	aspect-ratio: 4 / 3;
}

.works.index main .list .title
{
	display: block;

	padding: 0;
}
.works.index main .list .title>b
{
	font-size: larger;
	grid-template-columns: unset;
}
.works.index main .list .title>.location
{
	font-size: 1.25em;
}
.works.index main .list .title>.name
{
	font-size: larger;
	margin-left: unset;
}


.works.index main .list a:hover
{
}

.works.index main .list a:hover img
{
	scale: 1.1;
}


/* ------------------------------------------------------
	[施工実績] / 詳細
	works/detail.php
------------------------------------------------------ */
.works.detail
{
}


.works.detail .page_head .img>img
{
	filter: unset;
}


.works.detail main
{
}


.works.detail main .ct>*[class*="wrap"]
{
	display: grid;
	align-items: start;
	gap: var(--gap);
}


/* ------------------------------------------------------
	[施工実績 / 詳細]　施工概要
*/
.works.detail main .gaiyou
{
}

.works.detail main .gaiyou>*[class*="wrap"]
{
	grid-template-columns: 1fr 45em;
}


/* ------------------------------------------------------
	[施工実績 / 詳細]　施工写真
*/
.works.detail main .gallery
{
}

.works.detail main .gallery .main
{
}

.works.detail main .gallery .main .list
{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--gap);
}

.works.detail main .gallery .main .list img
{
	aspect-ratio: 584 / 438;
}


/* ------------------------------------------------------------------------------------------------------------
	プライバシーポリシー
	privacy/
------------------------------------------------------------------------------------------------------------ */
.privacy
{
}


.privacy main
{
}

.privacy main>*[class*="wrap"]
{
	display: grid;
	gap: var(--gap);
}


.privacy main .box
{
}
.privacy main .box>*:not(.title)
{
	padding-left: var(--note);
}


.privacy main ol
{
	display: grid;
	gap: var(--gap);
}
.privacy main ol>li
{
}
.privacy main ol>li::marker
{
	font-size: larger;
	font-weight: bold;
}
.privacy main .title
{
	font-size: larger;
	font-weight: bold;
}


/* ------------------------------------------------------------------------------------------------------------
	サイトマップ
	sitemap/
------------------------------------------------------------------------------------------------------------ */
.sitemap
{
}


.sitemap main
{
}

.sitemap main>*[class*="wrap"]
{
	display: grid;
	gap: var(--gap);
}

.sitemap main ul
{
	font-size: larger;

	display: grid;
	justify-content: center;
	justify-items: start;
	gap: 1em;
}

.sitemap main a
{
	display: flex;
	align-items: baseline;
	gap: 1em;
}
.sitemap main a>span:not([class*="icon_"])
{
	font-size: smaller;
	opacity: 0.65;

	display: flex;
	gap: 1em;
}
.sitemap main a>span:not([class*="icon_"])::before,
.sitemap main a>span:not([class*="icon_"])::after
{
	content: "";
	display: inherit;
}
.sitemap main a>span:not([class*="icon_"])::before
{
	content: "/";
}
.sitemap main a>span:not([class*="icon_"])::after
{
	content: "";
}