@charset "utf-8";

/*
Theme Name: アドダス
Author: アドダス
Author URI: https://addas.jp
Description: Bootstrap5@Webpack
*/

/*　H-02style  ================================================================================= */

body {
	font-family: 'Noto Sans JP', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro','メイリオ', 'Meiryo', '游ゴシック', 'Yu Gothic', 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
	padding-top: 0!important;
}

:root{
  --red: #c41012;
  --lightred: #fbe8e8;
  --black: #231818;
  --gray: #5a5a5a;
  --lightgray: #E5E5E5;
  --whitegray: #F7F7F7;
  --font-jp:"Zen Kaku Gothic New",sans-serif;
  --font-serif:"Playfair Display",serif;
  --font-serif2:"Cormorant Garamond", serif;
}

.roboto-500 {
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}
.roboto-700 {
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}
.roboto-900 {
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: 900;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
}

a {
    color: #000;
}
a:hover {
    color: #000;
}

.bg-whitegray {
	background-color: var(--whitegray);
}
.bg-lightred {
	background-color: var(--lightred);	
}
.bg-lightgray {
	background-color: var(--lightgray);
}
.text-red {
	color: var(--red);
}

article.post {
    color: #000;
} 

.page-link:hover {
    border-color: #c2b8b9;
    background-color: #d9d9d9;
}

.lh-03{line-height:.3}.lh-04{line-height:.4}.lh-05{line-height:.5}.lh-06{line-height:.6}.lh-07{line-height:.7}.lh-08{line-height:.8}.lh-09{line-height:.9}.lh-10{line-height:1}.lh-11{line-height:1.1}.lh-12{line-height:1.2}.lh-13{line-height:1.3}.lh-14{line-height:1.4}.lh-15{line-height:1.5}.lh-16{line-height:1.6}.lh-17{line-height:1.7}.lh-18{line-height:1.8}.lh-19{line-height:1.9}.lh-20{line-height:2}.lh-21{line-height:2.1}.lh-22{line-height:2.2}.lh-23{line-height:2.3}.lh-24{line-height:2.4}.lh-25{line-height:2.5}.lh-26{line-height:2.6}.lh-27{line-height:2.7}.lh-28{line-height:2.8}.lh-29{line-height:2.9}.lh-30{line-height:3}

.ls-1{letter-spacing:1px}.ls-2{letter-spacing:2px}.ls-3{letter-spacing:3px}.ls-4{letter-spacing:4px}.ls-5{letter-spacing:5px}.ls-6{letter-spacing:6px}.ls-7{letter-spacing:7px}.ls-8{letter-spacing:8px}.ls-9{letter-spacing:9px}.ls-10{letter-spacing:10px}

/* ============= 角丸 ============ */
.rounded05{border-radius:5px}.rounded10{border-radius:10px}.rounded15{border-radius:15px}.rounded20{border-radius:20px}.rounded25{border-radius:25px}.rounded30{border-radius:30px}.rounded35{border-radius:35px}.rounded40{border-radius:40px}.rounded45{border-radius:45px}.rounded50{border-radius:50px}

/* ============= 上だけ角丸 ============ */
.rounded05-up{border-radius:5px 5px 0 0}.rounded10-up{border-radius:10px 10px 0 0}.rounded15-up{border-radius:15px 15px 0 0}.rounded20-up{border-radius:20px 20px 0 0}.rounded25-up{border-radius:25px 25px 0 0}.rounded30-up{border-radius:30px 30px 0 0}.rounded35-up{border-radius:35px 35px 0 0}.rounded40-up{border-radius:40px 40px 0 0}.rounded45-up{border-radius:45px 45px 0 0}.rounded50-up{border-radius:50px 50px 0 0}

/* ============= 下だけ角丸 ============ */
.rounded05-down{border-radius:0 0 5px 5px}.rounded10-down{border-radius:0 0 10px 10px}.rounded15-down{border-radius:0 0 15px 15px}.rounded20-down{border-radius:0 0 20px 20px}.rounded25-down{border-radius:0 0 25px 25px}.rounded30-down{border-radius:0 0 30px 30px}.rounded35-down{border-radius:0 0 35px 35px}.rounded40-down{border-radius:0 0 40px 40px}.rounded45-down{border-radius:0 0 45px 45px}.rounded50-down{border-radius:0 0 50px 50px}

/* ============= 左だけ角丸 ============ */
.rounded05-left{border-radius:5px 0 0 5px}.rounded10-left{border-radius:10px 0 0 10px}.rounded15-left{border-radius:15px 0 0 15px}.rounded20-left{border-radius:20px 0 0 20px}.rounded25-left{border-radius:25px 0 0 25px}.rounded30-left{border-radius:30px 0 0 30px}.rounded35-left{border-radius:35px 0 0 35px}.rounded40-left{border-radius:40px 0 0 40px}.rounded45-left{border-radius:45px 0 0 45px}.rounded50-left{border-radius:50px 0 0 50px}

/* ============= 右だけ角丸 ============ */
.rounded05-right{border-radius:0 5px 5px 0}.rounded10-right{border-radius:0 10px 10px 0}.rounded15-right{border-radius:0 15px 15px 0}.rounded20-right{border-radius:0 20px 20px 0}.rounded25-right{border-radius:0 25px 25px 0}.rounded30-right{border-radius:0 30px 30px 0}.rounded35-right{border-radius:0 35px 35px 0}.rounded40-right{border-radius:0 40px 40px 0}.rounded45-right{border-radius:0 45px 45px 0}.rounded50-right{border-radius:0 50px 50px 0}

/* ====================================================

       　               色（ポジ)　

==================================================== */

/* ============= 背景色 ============= */
.bg-base {
	background-color: #fff;
}

/* ============= 文字の色 ============ */
/*　ヘッダーの文字の色　*/
#area-header #menu-global .menu-item .nav-link {
    color: var(--red);
    font-weight: normal;
}
@media (min-width: 992px) {
	#area-header #menu-global .menu-item .nav-link {
	    padding-left: 15px;
        padding-right: 15px;
	}
}

/*　文章の色　*/
p {
	color: #231815;	
	letter-spacing: 2px;
}

/* ============ 見出しの色 ============ */
h1,h2,h3,h4,h5 {
	color: #000;
}

/* ============ ボタンの色 ============ */
/*　ボタンの中の文字の色　*/
.link-btn1 span {
    color: #fff!important;
}

/*　ボタンの中の文字の色(ホバー時の色)　*/
.link-btn1:hover span{
  	color: #000!important;
}

/*　ボタンの中の背景の色　*/
.link-btn1 {
	background-color: #000!important;
}

/*　ボタンの中の背景の色(ホバー時の色)　*/
.link-btn1:before {
	background-color: #fff!important;
  	border: 2px solid #000!important;
}


/* ==================================================
   H-02 ヘッダー
================================================== */

/* =========================
   基本設定
========================= */
.h-02 #area-header {
	display: flex;
	flex-direction: column;
	height: 60px;
	padding: 0;
}

.h-02 #area-header .container {
	height: 60px;
	padding-top: 0;
}

.h-02 #area-header .red-top {
	width: 100%;
	height: 8px;
	background-color: var(--red);
	flex-shrink: 0;
}

/* =========================
   ロゴ
========================= */
.h-02 #area-header .navbar-brand {
	width: auto;
	margin-right: 20px;
	padding-top: 10px;
	padding-bottom: 10px;
}

.h-02 #area-header .header-logo {
	width: 280px;
	margin: 0;
	position: relative;
    z-index: 100;
}

/* =========================
   グローバルナビ
========================= */
.h-02 #area-header #menu-global {
	margin-top: 60px;
	padding: 6%;
}

.h-02 #area-header #menu-global .menu-item {
	margin-top: 10px;
	background-color: transparent;
}

.h-02 #area-header #menu-global .menu-item .nav-link {
	color: var(--red);
	font-weight: normal;
}


/* =========================
   ナビホバー
========================= */
.h-02 #area-header #menu-global .menu-item:hover {
	background-color: #fff;
}

.h-02 #area-header #menu-global .btn-contact.menu-item:hover {
	background-color: #fff;
}

.h-02 #area-header #menu-global .btn-contact.menu-item:hover .nav-link {
	color: #000;
}

/* =========================
   サブナビ
========================= */
.h-02 #area-header #header-sub {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	margin: 0 0 10px;
	padding: 0;
}

.h-02 #area-header #header-sub li {
	margin-right: 10px;
	list-style: none;
}

.h-02 #area-header #header-sub li:last-child {
	margin-right: 0;
}

.h-02 #area-header #header-sub li a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-left: 30px;
	color: #5a5a5a;
	font-size: 12px;
	text-decoration: none;
}

.h-02 #area-header #header-sub li a::after {
	content: "";
	width: 6px;
	height: 10px;
	background: url("img/SVG/arrow-left.svg") center / contain no-repeat;
	flex-shrink: 0;
}

.h-02 #area-header #header-sub li:hover a {
	background-color: var(--lightred);
	color: var(--red);
}

/* 採用サイト */
.h-02 #area-header #header-sub .btn-recruit a {
	padding: 10px 20px;
	border-radius: 0 0 15px 15px;
	background-color: var(--red);
	color: #fff;
	font-size: 14px;
}

.h-02 #area-header #header-sub .btn-recruit a::after {
	display: none;
}

/* =========================
   ハンバーガーボタン
========================= */
.h-02 #area-header .openbtn {
	position: relative;
	width: 60px;
	height: 60px;
	overflow: hidden;
	cursor: pointer;
}

.h-02 #area-header .openbtn-area {
	position: relative;
	width: 100%;
	height: 100%;
	transition: transform 0.55s cubic-bezier(.68, -.6, .32, 1.6);
}

.h-02 #area-header .openbtn span {
	position: absolute;
	left: 14px;
	display: block;
	width: 34px;
	height: 1.5px;
	background-color: var(--red);
	transform-origin: center;
	transition:
		top 0.4s cubic-bezier(.68, -.6, .32, 1.6),
		left 0.4s ease,
		width 0.4s ease,
		transform 0.45s cubic-bezier(.68, -.6, .32, 1.6),
		opacity 0.25s ease;
}

.h-02 #area-header .openbtn span:nth-of-type(1) {
	top: 20px;
}

.h-02 #area-header .openbtn span:nth-of-type(2) {
	top: 30px;
	width: 28px;
	transition-delay: 0.04s;
}

.h-02 #area-header .openbtn span:nth-of-type(3) {
	top: 40px;
	width: 22px;
	transition-delay: 0.08s;
}

/* ホバー */
@media (hover: hover) {
	.h-02 #area-header .openbtn:not(.active):hover .openbtn-area {
		transform: scale(1.06);
	}

	.h-02 #area-header .openbtn:not(.active):hover span:nth-of-type(1) {
		width: 34px;
		transform: translate(6px, -2px);
		transition-delay: 0s;
	}

	.h-02 #area-header .openbtn:not(.active):hover span:nth-of-type(2) {
		width: 34px;
		transform: translateX(-4px);
		transition-delay: 0.05s;
	}

	.h-02 #area-header .openbtn:not(.active):hover span:nth-of-type(3) {
		width: 34px;
		transform: translate(6px, 2px);
		transition-delay: 0.1s;
	}
}

@media (max-width: 991.98px) {
	.h-02 #area-header #navbarNav
	.h-nav-jisseki > .dropdown-menu {
		display: none !important;
		position: static;
		width: 100%;
		margin: 0;
		transform: none;
	}
	.h-02 #area-header #navbarNav
	.h-nav-jisseki > .dropdown-menu.show {
		display: block !important;
	}
	.h-02 #area-header #navbarNav
	.h-nav-jisseki:hover > .dropdown-menu:not(.show) {
		display: none !important;
	}
}

/* アクティブ時 */
.h-02 #area-header .openbtn.active .openbtn-area {
	transform: rotate(360deg);
}

.h-02 #area-header .openbtn.active span:nth-of-type(1) {
	top: 29px;
	left: 15px;
	width: 30px;
	transform: rotate(45deg);
	transition-delay: 0s;
}

.h-02 #area-header .openbtn.active span:nth-of-type(2) {
	top: 29px;
	width: 0;
	opacity: 0;
	transform: translateX(22px);
	transition-delay: 0s;
}

.h-02 #area-header .openbtn.active span:nth-of-type(3) {
	top: 29px;
	left: 15px;
	width: 30px;
	transform: rotate(-45deg);
	transition-delay: 0s;
}

@media (hover: hover) {
	.h-02 #area-header .openbtn.active:hover .openbtn-area {
		transform: rotate(360deg) scale(0.94);
	}
}

/* =========================
   お問い合わせボタン
========================= */
.h-02 #area-header #menu-global .menu-item.btn-contact {
	display: inline-block;
	background-color: #000;
}

.h-02 #area-header #menu-global .menu-item.btn-contact a {
	color: #fff;
}

/* =========================
   ドロップダウン
========================= */
.h-02 #area-header #navbarNav ul li.dropdown {
	position: relative;
}

.h-02 #area-header #navbarNav ul li.dropdown::before,
.h-02 #area-header #navbarNav ul li.dropdown::after {
	content: "";
	position: absolute;
	top: 22px;
	right: 0;
	width: 18px;
	height: 1px;
	background: var(--red);
	transition: transform .3s ease, opacity .3s ease;
}

.h-02 #area-header #navbarNav ul li.dropdown::after {
	transform: rotate(90deg);
}
.h-02 #area-header #navbarNav ul li.dropdown.show::after {
	opacity: 0;
	transform: rotate(90deg) scaleY(0);
}

.h-02 #area-header #navbarNav li.dropdown ul {
	position: absolute;
	top: 36px;
	left: 0;
	z-index: 4;
	width: 170%;
	padding: 0;
	background-color: var(--lightred);
	opacity: 0;
	visibility: hidden;
	transition:
	opacity 0.3s ease,
	visibility 0.3s ease;
}

.h-02 #area-header #navbarNav li.dropdown ul li {
	width: 100%;
}

.h-02 #area-header #navbarNav li.dropdown:hover > ul,
.h-02 #area-header #navbarNav li.dropdown ul li:hover > ul,
.h-02 #area-header #navbarNav li.dropdown:active > ul,
.h-02 #area-header #navbarNav li.dropdown ul li:active > ul {
	opacity: 1;
	visibility: visible;
}

.h-02 #area-header #navbarNav li.dropdown ul li a {
	display: block;
	width: 100%;
	padding: 20px 10px!important;
	color: #231815!important;
	border-bottom: 1px solid #fff;
}
.h-02 #area-header #navbarNav li.dropdown ul li:last-child a {
	border-bottom: 0;
}

.h-02 #area-header #navbarNav li.dropdown ul li a:before {
	content: '●';
	font-size: 8px;
	color: var(--red);
	padding-right: 10px;
}
.h-02 #area-header #navbarNav li.dropdown ul li a:hover:before {
	color: #5a5a5a;
}
.h-02 #area-header #navbarNav li.dropdown ul li:hover {
	background: inherit!important;
}


.h-02 #area-header #navbarNav li.dropdown ul li a:hover,
.h-02 #area-header #navbarNav li.dropdown ul li a:active {
	color: #231815;
}
.h-02 #area-header #menu-global .menu-item.menu-item-has-children .dropdown-menu .nav-link::after {
	display: none;
}

.h-02 #area-header #menu-global li:hover .dropdown-menu {
	display: flex;
	flex-wrap: wrap;
	padding-left: 10px;
	padding-right: 10px;
}

/* ==================================================
   スマホ・タブレット
================================================== */
@media (max-width: 991.98px) {
	.h-02 #area-header .hamburger {
	    position: absolute;
	    top: 0;
	    right: 0;
	    z-index: 100;
	}

	.h-02 #area-header #menu-global li:hover .dropdown-menu {
		padding-left: 0px;
        padding-right: 0px;
        margin-top: 10px;
        margin-bottom: 30px;
	}

	.h-02 #area-header .globalMenuSp {
	    position: fixed;
	    top: 0;
	    left: 0;
	    z-index: -1;
	    width: 100%;
	    height: 100vh;
	    background-color: #fff;
	    text-align: center;
	    transform: translateX(-100%);
	    opacity: 0;
	    will-change: transform, opacity;
	    transition:
	    transform .6s cubic-bezier(0.22, 1, 0.36, 1),
	    opacity .5s ease .05s;
	    overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.h-02 #area-header .globalMenuSp.active {
	    z-index: 90;
	    transform: translateX(0);
	    opacity: 1;
	}


	.h-02 #area-header .globalMenuSp ul {
		width: 100%;
		margin: 0 auto;
		padding: 0;
	}

	.h-02 #area-header .globalMenuSp ul li {
		width: 100%;
		padding: 0;
		list-style: none;
	}

	.h-02 #area-header .globalMenuSp ul li a {
		display: block;
		padding: 20px 0;
		color: var(--red);
		text-align: left;
		text-decoration: none;
		border-bottom: 1px solid #dc7273;
		font-weight: bold !important;
	}

	.h-02 #area-header #menu-global {
		margin-top: 60px;
		padding: 0 20px 20px;
	}

	.h-02 #area-header #menu-global .menu-item {
		margin-top: 10px;
        margin: 0 auto;
	}

	.h-02 #area-header #menu-global .menu-item:hover {
		background-color: transparent;
	}

	/* お問い合わせ */
	.h-02 #area-header #menu-global .menu-item.btn-contact {
		display: block;
		width: 100%;
		margin: 20px auto 20px 0;
		padding-right: 10px;
		padding-left: 10px;
		background-color: #000;
	}

	.h-02 #area-header #menu-global .menu-item.btn-contact a {
		padding-top: 15px;
		padding-bottom: 15px;
	}

	/* スマホドロップダウン */
	

	.h-02 #area-header #navbarNav li.dropdown ul,
	.h-02 #area-header #navbarNav li.dropdown ul ul {
		position: relative;
		top: 0;
		left: 0;
		display: none;
		width: 100%;
		border: 0;
		background-color: transparent;
		opacity: 1;
		visibility: visible;
		transition: none;
	}

	.h-02 #area-header #navbarNav ul li.dropdown::before {
		display: block;
	}

	.h-02 #area-header #menu-global .dropdown-menu {
		padding: 0;
	}

	.h-02 #area-header #menu-global .dropdown-menu li {
		margin-top: 0;
	}

	.h-02 #area-header #menu-global .dropdown-menu li a:hover,
	.h-02 #area-header #menu-global .dropdown-menu li a:active {
		background-color: transparent;
		color: #000 !important;
	}

	.h-02 #area-header #navbarNav ul li.dropdown::before, .h-02 #area-header #navbarNav ul li.dropdown::after {
		top: 30px;
	}

	.h-02 #area-header #navbarNav ul li:not(.menu-item-has-children):not(.dropdown) {
		position: relative;
	}

	.h-02 #area-header #navbarNav ul li:not(.menu-item-has-children):not(.dropdown)::before {
		content: "▶";
		position: absolute;
		right: 0;
		top: 50%;
		transform: translateY(-50%);
		font-size: 10px;
		color: var(--red);
	}

	.h-02 #area-header #navbarNav ul li.dropdown ul li::before {
		display: none;
	}

	#navbarNav .menu-recuruit > a {
		position: relative;
		display: block;
		width: 100%;
		font-size: 0;
		aspect-ratio: 180 / 60;
		
	}

	#navbarNav .menu-recuruit a {
		border-bottom: 0px!important;
		margin-top: 25px;
	}

	#navbarNav .menu-recuruit > a::before {
		content: "";
		position: absolute;
		inset: 0;
		background: url("img/btn-headerricruit.png") center center / 100% 100% no-repeat;
	}

	.h-02 #area-header #navbarNav .menu-contact,
	.h-02 #area-header #navbarNav .menu-information {
		display: inline-block;
		width: calc(47% - 10px);
		vertical-align: top;
		box-sizing: border-box;
		margin-top: 15px;
	}

	.h-02 #area-header #navbarNav .menu-contact {
		margin-right: 30px;
	}

	.h-02 #area-header #navbarNav .menu-contact a,
	.h-02 #area-header #navbarNav .menu-information a {
		border-bottom: 0;
		color: var(--gray)!important;
		width: 100%;
		font-weight: normal!important;
	}

	.h-02 #area-header #navbarNav .menu-contact::before,
	.h-02 #area-header #navbarNav .menu-information::before {
        display: none;
    }
    .h-02 #area-header #navbarNav .menu-contact > a,
	.h-02 #area-header #navbarNav .menu-information > a {
		display: inline-flex;
		align-items: center;
	}

	.h-02 #area-header #navbarNav .menu-contact > a::after,
	.h-02 #area-header #navbarNav .menu-information > a::after {
		content: "";
        display: inline-block;
        width: 10px;
        height: 10px;
        margin-left: 8px;
        border-top: 1px solid var(--red);
        border-right: 1px solid var(--red);
        transform: rotate(45deg);
	}

	.h-02 #area-header #menu-global .dropdown-menu li a {
		padding: 0.6rem 0 !important;
		border-bottom: 0;
		color: var(--gray);
		font-size: 14px;
		text-align: left;
		font-weight: normal!important;
		position: relative;
		padding-left: 24px; 
	}

	.h-02 #area-header #navbarNav li.dropdown ul li a::before {
		content: "";
        display: inline-block;
        flex: 0 0 auto;
        width: 4px;
        height: 12px;
        margin-right: 10px;
        border-top: 1px solid var(--red);
        border-right: 1px solid var(--red);
        border-radius: 2px;
        transform: rotate(45deg);
	}

	.h-02 #area-header #navbarNav li.dropdown ul li a {
		padding: 15px 0 !important;
		border-bottom: 1px solid #e6e6e6!important;
	}

	.h-02 #area-header #navbarNav .menu-item-privacy-policy.plavo:before {
		display: none;
	}
	.h-02 #area-header #navbarNav .menu-item-privacy-policy.plavo a {
 		font-size: 12px;
 		color: var(--gray)!important;
 		border-bottom: 0px;
 		font-weight: normal!important;
	}
	.h-02 #area-header #navbarNav ul.active {
		display: block;
		border-top: 4px solid var(--red);
	}
}
@media (min-width: 600px) and (max-width: 991.98px) {
	.h-02 #area-header #navbarNav ul.active {
		padding-left: 10%;
		padding-right: 10%;
	}
}

/* ==================================================
   PC
================================================== */
@media (min-width: 992px) {
	.h-02 #area-header {
		height: auto;
	}

	.h-02 #area-header .container {
		height: auto;
		padding-top: 40px;
	}

	.h-02 #area-header .header-logo {
		width: 500px;
	}

	.h-02 #area-header #menu-global {
		margin-top: 0;
		padding: 0;
	}

	.h-02 #area-header #menu-global .menu-item {
		margin-top: 0;
	}

	.h-02 #area-header #menu-global .menu-item .nav-link {
		padding-right: 20px;
		padding-left: 20px;
		position: relative;
  		display: inline-block;
  		text-decoration: none;
	}

	.h-02 #area-header #menu-global .menu-item .nav-link::after {
	  content: "";
	  position: absolute;
	  left: 50%;
	  bottom: 0;
	  width: 0;
	  height: 1px;
	  background-color: #c41012;
	  transform: translateX(-50%);
	  transition: width 0.3s ease;
	}

	.h-02 #area-header #menu-global .menu-item.h-nav-jisseki .dropdown-menu .nav-link::after {
	 display: none;
	}

	.h-02 #area-header #menu-global .menu-item .nav-link:hover::after {
	  width: 100%;
	}

	.h-02 #area-header #navbarNav {
		margin: 5px 0 10px;
	}

	.h-02 #area-header #header-sub {
		padding-right: 15px;
	}

	.h-02 #area-header .openbtn {
		background-color: var(--red);
	}

	.h-02 #area-header .openbtn span {
		background-color: #fff;
	}

	.h-02 #area-header #navbarNav ul li.dropdown::before {
		right: 3%;
	}

	.h-02 #area-header #navbarNav ul li.dropdown::before,
	.h-02 #area-header #navbarNav ul li.dropdown::after {
		content: "";
		position: absolute;
		top: 17px;
		right: 3px;
		width: 12px;
		height: 1px;
		background: var(--red);
		transition: transform .3s ease, opacity .3s ease;
	}
	.h-02 #area-header #navbarNav ul li:hover.dropdown::after {
		display: none;
	}
}
@media (min-width: 1200px) {
	.h-02 #area-header .header-logo {
		width: 680px;
	}
}

.btn-recruits {
	position: fixed;
	background-color: var(--red);
	border: 2px solid var(--red);
	color: #fff;
	font-size: 15px;
	-ms-writing-mode: tb-rl;
  	writing-mode: vertical-rl;
  	border-radius: 10px 0 0 10px;
  	top: 90px;
  	right: 0;
  	z-index: 3;
  	padding: 15px 5px;
  	transition:
	background-color 0.35s ease,
	color 0.35s ease,
	transform 0.35s cubic-bezier(.22, 1, .36, 1),
	box-shadow 0.35s ease;
}
.btn-recruits:hover {
	background-color: #fff;
	color: var(--red);
	border: 2px solid var(--red);
}

@media (max-width: 991.98px) {
	#menu-global > .menu-item-has-children > .dropdown-menu {
		position: static !important;
		display: none !important;
		float: none;
		width: 100%;
		margin: 0;
		border: 0;
		transform: none !important;
		inset: auto !important;
	}
	#menu-global > .menu-item-has-children > .dropdown-menu.show {
		display: block !important;
	}
}

@media (min-width: 992px) {
	#menu-global > .menu-item-has-children > .dropdown-menu {
		display: block;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
	}
	#menu-global > .menu-item-has-children:hover > .dropdown-menu {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
}


/* =================================================================================　H-02style  */


:root{
	--header-height: 60px;
}
.main-box{
	position: relative;
	width: 100%;
	height: calc(100vh - var(--header-height));
	margin-top: var(--header-height);
	overflow: hidden;
}

.main-box picture{
	display: block;
	width: 100%;
	height: 100%;
}

.main-box__image{
	display: block;
	width: 100%;
	height: 100vh;
	object-fit: cover;
	object-position: center;
}
@media (min-width: 992px){
	:root{
		--header-height: 110px;
	}
}

.main-copy {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 80%;
	z-index: 2;
}

.img-wrap {
  overflow: hidden;
  position: relative;
}
.img-wrap::before {
  animation: img-wrap 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  background: #fff;
  content: '';
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}
@keyframes img-wrap {
  100% {
    transform: translateX(100%);
  }
}


.scroll-guide {
	position: absolute;
	right: 15px;
	bottom: 0px;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	pointer-events: none;
}
.scroll-guide__text {
	writing-mode: vertical-rl;
	text-orientation: mixed;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1;
	color: #fff;
}
.scroll-guide__line {
	position: relative;
	width: 2px;
	height: 110px;
	overflow: hidden;
	background: rgba(255,255,255,.25);
}
.scroll-guide__line::after {
	content: "";
	position: absolute;
	left: 0;
	top: -100%;
	width: 100%;
	height: 100%;
	background: #fff;
	animation: scrollLine 2.2s ease-in-out infinite;
}
@keyframes scrollLine {
	0% {
		transform: translateY(0);
	}

	100% {
		transform: translateY(200%);
	}
}
@media (min-width:768px){
	.main-copy {
		width: 60%;
	}
	.scroll-guide__text {
		font-size: 14px;
	}
}
@media (min-width:992px){
	.main-box {
		padding-right: calc((100vw - 930px) / 2);
	}
	.main-box picture img {
		border-radius: 0 30px 30px 0;
	}
	.scroll-guide{
		right: calc((100vw - 960px) / 4);
		bottom: 0;
		gap: 16px;
	}
	.scroll-guide__text{
		font-size: 14px;
		color: var(--red);
	}
	.scroll-guide__line{
		height: 100px;
		background: var(--red);
	}
}
@media (min-width:1200px) {
	.main-box {
		padding-right: calc((100vw - 1115px) / 2);
	}
	.scroll-guide{
		right: calc((100vw - 1140px) / 4);
	}
}
@media (min-width:1400px) {
	#area-header .container {
		max-width: calc(100% - 220px);
	}
	.main-box {
		padding-right: 110px;
	}
	.scroll-guide {
		right: 55px;
	}
}


/* =====================================
   フッター
===================================== */
.site-footer {
	background-color: var(--red);
	color: #fff;
	padding: 56px 0 24px;
}

.site-footer a {
	color: inherit;
	text-decoration: none;
}

.footer-nav {
	display: grid;
	grid-template-columns: 1fr;
	gap: 48px;
}

.footer-nav__column {
	min-width: 0;
}

.footer-nav__group + .footer-nav__group {
	margin-top: 60px;
}

.footer-nav__heading {
	position: relative;
	display: block;
	padding-bottom: 12px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.04em;
}

.footer-nav__heading::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background-color: rgba(255, 255, 255, 0.9);
}

.footer-nav__list {
	margin: 18px 0 0 !important;
	padding: 0;
	list-style: none;
}

.footer-nav__list li + li {
	margin-top: 12px;
}

.footer-nav__list a {
	display: inline-block;
	font-size: 14px;
	font-weight: normal;
	line-height: 1.6;
	letter-spacing: 0.02em;
	transition:
		opacity 0.3s ease,
		transform 0.3s ease;
}

.footer-nav__list a:hover {
	opacity: 0.7;
	transform: translateX(4px);
}

.footer-works {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0 32px;
}

.footer-recruit {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	min-height: 64px;
	padding: 2px;
	background-color: #fff;
	border-radius: 10px;
	border: 1px solid #fff;
	color: #d20a10 !important;
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.04em;
	transition:
		background-color 0.3s ease,
		color 0.3s ease;
}

/*
.footer-recruit:hover {
	background-color: transparent;
	color: #fff !important;
}
*/

.footer-recruitimg {
	width: 60%;
	margin-left: 0;
	margin-right: 15px;
}

.footer-main-links {
	margin: 32px 0 0;
	padding: 0;
	list-style: none;
}

.footer-main-links li + li {
	margin-top: 24px;
}

.footer-main-links a {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.08em;
	transition:
		opacity 0.3s ease,
		transform 0.3s ease;
}

.footer-main-links a:hover {
	opacity: 0.7;
	transform: translateX(4px);
}

.footer-main-links__arrow {
	display: block;
	width: 10px;
	height: 10px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(45deg);
}

.footer-privacy {
	display: inline-block;
	margin-top: 26px;
	font-size: 14px;
	letter-spacing: 0.04em;
	transition: opacity 0.3s ease;
}

.footer-privacy:hover {
	opacity: 0.7;
}

.footer-bottom {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin-top: 64px;
}

.footer-bottom__logo img {
	display: block;
	width: min(100%, 280px);
	height: auto;
}

.footer-bottom__information {
	min-width: 0;
}

.footer-address {
	color: #fff;
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	letter-spacing: 0.02em;
}

.footer-address span {
	display: block;
}

.footer-copyright {
	color: #fff;
	margin: 16px 0 0;
	font-size: 13px;
	letter-spacing: 0.03em;
}

/* =====================================
   991.98px以下
   クリック式アコーディオン
===================================== */
@media (max-width: 991.98px) {

	.footer-nav__group {
		position: relative;
		border-bottom: 1px solid rgba(255, 255, 255, 0.9);
	}

	.footer-nav__heading {
		position: relative;
		display: block;
		padding: 0 52px 14px 0;
		cursor: pointer;
		user-select: none;
		-webkit-tap-highlight-color: transparent;
	}

	/* 通常時の見出し下線を無効化 */
	.footer-nav__heading::after {
		content: none;
	}

	/* 子メニューがある項目の＋横線 */
	.footer-nav__group.has-submenu .footer-nav__heading::before {
		content: "";
		position: absolute;
		top: 45%;
		right: 4px;
		bottom: auto;
		left: auto;
		width: 24px;
		height: 1px;
		background-color: #fff;
		border-radius: 2px;
		transform: translateY(-50%);
		transition: opacity 0.3s ease;
	}

	/* 子メニューがある項目の＋縦線 */
	.footer-nav__group.has-submenu .footer-nav__heading::after {
		content: "";
		position: absolute;
		top: 45%;
		right: 4px;
		bottom: auto;
		left: auto;
		width: 24px;
		height: 1px;
		background-color: #fff;
		border-radius: 2px;
		transform: translateY(-50%) rotate(90deg);
		transition:
		opacity 0.3s ease,
		transform 0.3s ease;
	}

	/* 通常の子メニューを閉じる */
	.footer-nav__group.has-submenu > .footer-nav__list {
		max-height: 0;
		margin-top: 0 !important;
		padding-bottom: 0;
		overflow: hidden;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(-8px);
		transition:
		max-height 0.4s ease,
		margin-top 0.3s ease,
		padding-bottom 0.3s ease,
		opacity 0.3s ease,
		visibility 0.3s ease,
		transform 0.3s ease;
	}

	/* 建築実績全体を閉じる */
	.footer-nav__group.has-submenu > .footer-works {
		max-height: 0;
		margin-top: 0 !important;
		overflow: hidden;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(-8px);
		transition:
			max-height 0.4s ease,
			margin-top 0.3s ease,
			opacity 0.3s ease,
			visibility 0.3s ease,
			transform 0.3s ease;
	}

	/* 通常の子メニューを開く */
	.footer-nav__group.has-submenu.is-open > .footer-nav__list {
		max-height: 600px;
		margin-top: 18px !important;
		padding-bottom: 20px;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateY(0);
	}

	/* 建築実績全体を開く */
	.footer-nav__group.has-submenu.is-open > .footer-works {
		max-height: 1500px;
		margin-top: 18px !important;
		padding-bottom: 20px;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateY(0);
	}

	/* 開いた時に縦線を消して－にする */
	.footer-nav__group.has-submenu.is-open .footer-nav__heading::after {
		opacity: 0;
		transform: translateY(-50%) rotate(90deg);
	}

	/* 建築実績内のulは常に通常表示 */
	.footer-works .footer-nav__list {
		max-height: none;
		margin: 0 !important;
		padding-bottom: 0;
		overflow: visible;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: none;
	}

	/* 子メニューがない項目 */
	.footer-nav__group--single .footer-nav__heading {
		padding-right: 0;
		cursor: default;
	}

	/* 子メニューリンク左の矢印 */
	.footer-nav__list a {
		position: relative;
		padding-left: 22px;
	}

	.footer-nav__list a::before {
		content: "";
		position: absolute;
		top: 50%;
        left: 2px;
        width: 9px;
        height: 9px;
        border-top: 1px solid #fff;
        border-right: 1px solid #fff;
        transform: translateY(-50%) rotate(45deg);
	}

	.footer-works {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 12px 24px;
		align-items: start;
	}

	.footer-works .footer-nav__list {
		margin: 0 !important;
		padding: 0;
		list-style: none;
	}

	.footer-main-links {
		display: flex;
	}

	.footer-main-links li {
		flex: 1;
		text-align: center;
	}

	.footer-main-links li + li {
		margin-top: 0;
	}

	.footer-main-links a {
		display: flex;
		justify-content: flex-start;
		align-items: center;
		gap: 10px;
	}

	.footer-nav__group--single .footer-nav__heading{
		position:relative;
		padding-right:40px;
	}

	.footer-nav__group--single .footer-nav__heading::before{
		content:"";
		position:absolute;
		top:35%;
		right:8px;
		width:0;
		height:0;
		border-top:8px solid transparent;
		border-bottom:8px solid transparent;
		border-left:12px solid #fff;
		transform:translateY(-50%);
	}
}

@media (min-width: 768px) {
	.site-footer {
		padding: 72px 0 28px;
	}

	.footer-nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 56px 48px;
	}

	.footer-nav__column--right {
		grid-column: 1 / -1;
	}

	.footer-works {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.footer-recruit {
		width: 300px;
	}

	.footer-bottom {
		flex-direction: row;
		align-items: center;
		gap: 40px;
	}

	.footer-address span {
		display: inline;
	}
}

@media (min-width: 992px) {
	.footer-address span {
		margin-left: 12px;
	}

	.site-footer {
		padding: 80px 0 30px;
	}

	.footer-nav__column--right {
		grid-column: auto;
	}

	.footer-nav__heading {
		font-size: 18px;
	}

	.footer-nav__list a {
		font-size: 15px;
	}

	.footer-recruit {
		width: 100%;
		min-height: 58px;
		font-size: 18px;
	}

	.footer-main-links a {
		font-size: 18px;
	}

	.footer-bottom {
		justify-content: center;
		margin-top: 80px;
	}

	.footer-bottom__logo img {
		width: 250px;
	}

	.footer-address {
		font-size: 14px;
	}

	.footer-copyright {
		margin: 30px 0 0;
	}
}

@media (min-width: 1200px) {
	#area-footer .container {
		max-width: 1000px;
		margin: 0 auto;
	}

	.site-footer {
		padding: 68px 0 28px;
	}

	.footer-nav {
		grid-template-columns: 220px minmax(267px, 1fr) 300px;
		gap: 35px;
	}

	.footer-nav__heading {
		font-size: 18px;
	}

	.footer-nav__list {
		margin-top: 14px !important;
	}

	.footer-nav__list li + li {
		margin-top: 8px;
	}

	.footer-nav__list a {
		font-size: 15px;
	}

	.footer-main-links {
		margin-top: 30px;
	}

	.footer-main-links li + li {
		margin-top: 26px;
	}

	.footer-main-links a {
		font-size: 18px;
	}

	.footer-bottom {
		margin-top: 76px;
		gap: 34px;
	}

	.footer-bottom__logo img {
		width: 270px;
	}
}

@media (min-width: 1400px) {
	#area-footer .container {
		max-width: 1100px;
		margin: 0 auto;
	}

	.footer-nav {
		gap: 40px;
	}
}



.l-page-title {
	margin-top: var(--header-height);
	border-bottom: 4px solid var(--red);
}

.l-page-title h1 {
	display: flex;
	flex-direction: column;
}

.page-title_eigo {
	font-size: clamp(2.5rem, 1.944rem + 2.78vw, 4.375rem);
	color: var(--red);
	line-height: 1.0;
}
.page-title_jp {
	font-size: 16px;
	display: flex;
	align-items: center;
}
.page-title_jp::before {
	content: '・';
	color: var(--red);
	font-size: 30px;
}
@media (min-width: 768px) {
	.l-page-title h1 {
		flex-direction: row;
		align-items: end;
	}
	.page-title_jp {
		display: inline-flex;
		margin-left: 30px;
	}
}

.sub-copy {
	font-size: clamp(1.25rem, 0.991rem + 1.3vw, 2.125rem);
	font-weight: bold;
	letter-spacing: 3px;
	line-height: 2.0;
}
.sub-copy span {
	background: linear-gradient(transparent 50%, var(--lightred) 50%);
}

.marquee-wrap {
	position: relative;
	width: 100%;
	margin: 0 auto;
	overflow: hidden;
	padding: 20px 0;
	cursor: grab;
	user-select: none;
}
.marquee-wrap.dragging {
	cursor: grabbing;
}
.marquee-track {
	display: flex;
	align-items: stretch;
	height: 400px;
	width: max-content;
	will-change: transform;
}
.marquee-track img {
	height: 320px;
	width: 420px;
	object-fit: cover;
	display: block;
	margin: 0 16px;
	border-radius: 6px;
	flex-shrink: 0;
	pointer-events: none;
}
.marquee-track img:nth-child(odd) {
	align-self: flex-start;
}
.marquee-track img:nth-child(even) {
	align-self: flex-end;
}
@media (max-width: 768px) {
	.marquee-track {
		height: 220px;
	}
	.marquee-track img {
		height: 180px;
		width: 240px;
		margin: 0 8px;
		border-radius: 4px;
	}
}

.hl h2 {
	font-size: clamp(2.5rem, 2.045rem + 2.27vw, 3.75rem);
	color: var(--red);
	line-height: 1.0;
	font-weight: bold;
	margin-bottom: 0;
}
.hl p {
	color: var(--red);
	line-height: 1.0;
	display: flex;
	align-items: center;
	margin-top: 12px;
}
.hl p:before {
	content: '・';
	font-size: 30px;
	color: var(--red);
}

.btn-more {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 15px;
	background: #fff;
	border: 2px solid var(--red);
	color: var(--red);
	font-weight: bold;
	letter-spacing: 0.05em;
	text-decoration: none;
	box-sizing: border-box;
	overflow: hidden; 
	z-index: 0;
	transition: color 0.4s ease 0.08s;
	box-shadow: 5px 5px 0 var(--red);
}
.btn-more:hover {
	color: var(--red);
	background-color: #fbe8e8;
}
@media (min-width: 992px) {
	.btn-more {
		padding: 20px;
	}
}

.btn-more .arrow {
	position: relative;
	z-index: 2;
	width: 70px;
	height: 1px;
	background: var(--red);
	margin-left: 16px;
	flex-shrink: 0;
}
.btn-more .arrow::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	width: 10px;
	height: 10px;
	border-top: 1px solid var(--red);
	transform: translateY(-50%) rotate(45deg);
}

.section-works {
	background-color: var(--red);
}
.section-works-inner {
	background-color: #fff;
	border-radius: 20px;
}
.section-works-inner2 {
	padding: 30px 20px;
}
@media (min-width: 992px) {
	.section-works-inner {
		border-radius: 20px 0 0 20px;
	}
	.section-works-inner2 {
		padding: 60px 60px 50px 30px;
	}
}


/* =====================================
   建築実績アーカイブ
===================================== */
.works-archive {
	padding: 80px 16px 120px;
	background-color: #fff;
	color: #333;
}

.works-archive__inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

/* =====================================
   条件検索を開くボタン
   PCでは非表示
===================================== */
.works-filter-open {
	display: none;
}

/* =====================================
   モーダル背景
   PCでは非表示
===================================== */
.works-filter-overlay {
	display: none;
}

/* =====================================
   カテゴリー検索
===================================== */
.works-filter {
	margin-bottom: 24px;
}

.works-filter__modal-inner {
	width: 100%;
}

.works-filter__header {
	display: flex;
	align-items: center;
	gap: 28px;
	margin-bottom: 40px;
}

.works-filter__title {
	margin: 0;
	color: #888;
	font-size: 48px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.03em;
}

.works-filter-close {
	display: none;
}

.works-filter__controls {
	display: flex;
	align-items: center;
	gap: 14px;
}

.works-filter__control-button {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 220px;
	min-height: 48px;
	padding: 10px 30px;
	border: 1px solid #aaa;
	border-radius: 9999px;
	background-color: #fff;
	color: #444;
	font-family: inherit;
	font-size: 14px;
	cursor: pointer;
	transition:
		background-color .25s ease,
		color .25s ease,
		border-color .25s ease;
}

.works-filter__control-button:hover {
	border-color: #d00000;
	background-color: #d00000;
	color: #fff;
}

/* =====================================
   カテゴリー一覧
===================================== */
.works-filter__category-list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: 32px;
	row-gap: 0;
}

.works-filter__category {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 46px;
	border-top: 1px solid #d8d8d8;
	cursor: pointer;
}

.works-filter__category:nth-last-child(-n + 4) {
	border-bottom: 1px solid #d8d8d8;
}

.works-filter__checkbox {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.works-filter__custom-checkbox {
	position: relative;
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	margin-right: 12px;
	background-color: #d5d5d5;
	transition: background-color .2s ease;
}

.works-filter__custom-checkbox::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 7px;
	width: 6px;
	height: 12px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	opacity: 0;
	transform: rotate(45deg);
}

.works-filter__checkbox:checked
+ .works-filter__custom-checkbox {
	background-color: #cf0000;
}

.works-filter__checkbox:checked
+ .works-filter__custom-checkbox::after {
	opacity: 1;
}

.works-filter__checkbox:focus-visible
+ .works-filter__custom-checkbox {
	outline: 2px solid #cf0000;
	outline-offset: 3px;
}

.works-filter__category-name {
	font-size: 15px;
	font-weight: normal;
	line-height: 1.5;
	color: #4d4d4d;
}

/* =====================================
   検索ボタン
===================================== */
.works-filter__submit-area {
	display: flex;
	justify-content: center;
	margin-top: 42px;
}

.works-filter__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 520px;
	min-height: 62px;
	padding: 14px 30px;
	border: 1px solid #cf0000;
	border-radius: 3px;
	background-color: #cf0000;
	color: #fff;
	font-family: inherit;
	font-size: 15px;
	cursor: pointer;
	transition:
		background-color .25s ease,
		color .25s ease;
}

.works-filter__submit:hover {
	background-color: #fff;
	color: #cf0000;
}

/* =====================================
   件数
===================================== */
.works-result-count {
	display: flex;
	align-items: baseline;
	justify-content: flex-end;
	gap: 6px;
	margin: 64px 0 18px;
	color: #cf0000;
	font-weight: 700;
}

.works-result-count__current,
.works-result-count__total {
	font-size: 19px;
}

.works-result-count__separator,
.works-result-count__unit {
	font-size: 14px;
}

/* =====================================
   実績一覧
===================================== */
.works-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 34px;
	row-gap: 54px;
}

.works-card {
	min-width: 0;
}

.works-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.works-card__image-wrap {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background-color: #eee;
}

.works-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.works-card__link:hover .works-card__image {
	transform: scale(1.04);
}

.works-card__no-image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #999;
	font-size: 13px;
	letter-spacing: .1em;
}

.works-card__categories {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	max-width: 100%;
}

.works-card__category {
	display: inline-flex;
	align-items: center;
	min-height: 25px;
	padding: 3px 9px;
	background-color: rgba(30, 30, 30, .88);
	border-radius: 3px;
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
}

.works-card__content {
	padding-top: 18px;
}

.works-card__title {
	margin: 0;
	color: #bd0000;
	font-size: 19px;
	line-height: 1.5;
	transition: opacity .25s ease;
	font-weight: normal;
}

.works-card__link:hover .works-card__title {
	opacity: .65;
}

.works-card__place {
	margin: 5px 0 0;
	color: #444;
	font-size: 13px;
	line-height: 1.6;
	font-weight: normal;
}

/* =====================================
   ページネーション
===================================== */
.works-pagination {
	margin-top: 80px;
}

.works-pagination .page-numbers {
	margin: 0;
	padding: 0;
	list-style: none;
}

.works-pagination > .page-numbers {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.works-pagination .page-numbers li {
	margin: 0;
}

.works-pagination a.page-numbers,
.works-pagination span.page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border-radius: 3px;
	color: #333;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition:
		background-color .2s ease,
		color .2s ease;
}

.works-pagination a.page-numbers:hover {
	background-color: #f4dddd;
	color: #b60000;
}

.works-pagination span.page-numbers.current {
	background-color: #f3d9d9;
	color: #b60000;
}

.works-pagination a.page-numbers.prev,
.works-pagination a.page-numbers.next {
	min-width: 105px;
	border: 1px solid #ccc;
	background-color: #fff;
}

.works-pagination a.page-numbers.prev {
	margin-right: 20px;
}

.works-pagination a.page-numbers.next {
	margin-left: 20px;
}

/* =====================================
   検索結果なし
===================================== */
.works-empty {
	padding: 80px 20px;
	text-align: center;
}

.works-empty p {
	margin: 0 0 28px;
}

.works-empty__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 240px;
	min-height: 52px;
	padding: 10px 24px;
	background-color: #cf0000;
	color: #fff;
	text-decoration: none;
}

/* =====================================
   991.98px以下
   条件検索モーダル
===================================== */
@media (max-width: 991.98px) {

	.works-archive {
		padding: 32px 16px 80px;
	}

	/* =====================================
   条件検索ボタン
===================================== */

/* PCでは非表示 */
.works-filter-open {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 72px;
	padding: 14px 24px;
	border: 0;
	border-radius: 5px;
	background: var(--red);
	color: #fff;
	cursor: pointer;
}
.works-filter-open:hover {
	background: var(--lightred);
	color: var(--red);
}

.works-filter-open__icon {
	position: absolute;
	left: 24px;
	display: grid;
	grid-template-columns: repeat(2, 15px);
	grid-template-rows: repeat(2, 15px);
	gap: 4px;
}

.works-filter-open__icon span {
	display: block;
	border: 2px solid currentColor;
	border-radius: 3px;
}

.works-filter-open__text {
	width: 100%;
	text-align: center;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: .08em;
}

/* =====================================
   991px以下で表示
===================================== */
@media (max-width: 991.98px) {
	.works-filter-open {
		display: flex !important;
		justify-content: flex-start;
	}
}

	/* =====================================
	   モーダル背景
	===================================== */
	.works-filter-overlay {
		position: fixed;
		inset: 0;
		z-index: 9998;
		display: block;
		background-color: rgba(0, 0, 0, .35);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition:
			opacity .3s ease,
			visibility .3s ease;
	}

	.works-filter-overlay.is-open {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	/* =====================================
	   モーダル本体
	===================================== */
	.works-filter {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9999;
		width: 100%;
		max-width: none;
		height: 100vh;
		max-height: 100dvh;
		margin: 0;
		padding: 0;
		background: #f7f7f7;
		overflow-y: auto;
		transform: translateY(100%);
		visibility: hidden;
		transition:
			transform .35s cubic-bezier(.22,1,.36,1),
			visibility .35s;
		overscroll-behavior: contain;
	}

	.works-filter.is-open {
		transform: translateY(0);
		visibility: visible;
	}

	.works-filter__modal-inner {
		display: flex;
		flex-direction: column;
		min-height: 100%;
		padding: 18px 14px 28px;
		border-top: 5px solid var(--red);
	}

	.works-filter__header {
		position: relative;
		display: block;
		margin-bottom: 18px;
	}

	.works-filter__title {
		margin: 0 48px 22px 0;
		color: var(--red);
		font-size: 38px;
		font-weight: 700;
		line-height: 1;
		letter-spacing: 0;
	}

	/* =====================================
	   閉じるボタン
	===================================== */
	.works-filter-close {
		position: absolute;
		top: 0;
		right: 0;
		display: block;
		width: 36px;
		height: 36px;
		padding: 0;
		border: 0;
		background-color: transparent;
		color: var(--red);
		cursor: pointer;
	}

	.works-filter-close::before,
	.works-filter-close::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 36px;
		height: 1px;
		background-color: currentColor;
	}

	.works-filter-close::before {
		transform: translate(-50%, -50%) rotate(45deg);
	}

	.works-filter-close::after {
		transform: translate(-50%, -50%) rotate(-45deg);
	}

	/* =====================================
	   すべて選択・選択解除
	===================================== */
	.works-filter__controls {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		width: 100%;
	}

	.works-filter__control-button {
		min-width: 0;
		min-height: 34px;
		padding: 5px 10px;
		border-color: var(--red);
		color: var(--red);
		font-size: 15px;
        font-weight: normal;
	}

	.works-filter__control-button:hover {
		border-color: var(--red);
		background-color: var(--red);
		color: #fff;
	}

	/* =====================================
	   カテゴリー一覧
	===================================== */
	.works-filter__category-list {
		display: block;
		border-top: 1px solid #ddd;
	}

	.works-filter__category {
		min-height: 38px;
		padding: 15px 4px;
		border-top: 0;
		border-bottom: 1px solid #ddd;
	}

	.works-filter__category:nth-last-child(-n + 4) {
		border-bottom: 1px solid #ddd;
	}

	.works-filter__custom-checkbox {
		width: 22px;
		height: 22px;
		margin-right: 10px;
	}

	.works-filter__custom-checkbox::after {
        top: 1px;
        left: 7px;
        width: 9px;
        height: 14px;
        border-right-width: 2px;
        border-bottom-width: 2px;
    }

	.works-filter__category-name {
		font-size: 15px;
        font-weight: normal;
	}

	/* =====================================
	   モーダル内の検索ボタン
	===================================== */
	.works-filter__submit-area {
		position: sticky;
		bottom: -28px;
		margin-top: 22px;
		padding: 14px 8px 28px;
		background-color: #fff;
	}

	.works-filter__submit {
		max-width: none;
		min-height: 46px;
		padding: 10px 20px;
		font-size: 13px;
	}

	/* =====================================
	   モーダル表示時の背景固定
	===================================== */
	body.is-works-filter-open {
		overflow: hidden;
		touch-action: none;
	}

	/* =====================================
	   件数
	===================================== */
	.works-result-count {
		justify-content: center;
		margin: 34px 0 42px;
	}

	.works-result-count__current,
	.works-result-count__total {
		font-size: 18px;
	}

	.works-result-count__separator,
	.works-result-count__unit {
		font-size: 14px;
	}

	/* =====================================
	   実績一覧
	===================================== */
	.works-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 24px;
		row-gap: 42px;
	}

	/* =====================================
	   ページネーション
	===================================== */
	.works-pagination {
		margin-top: 60px;
	}

}

/* =====================================
   スマートフォン
===================================== */
@media (max-width: 575.98px) {

	.works-list {
		grid-template-columns: 1fr;
	}

	.works-card__title {
		font-size: 18px;
	}

	.works-pagination > .page-numbers {
		gap: 4px;
	}

	.works-pagination a.page-numbers,
	.works-pagination span.page-numbers {
		min-width: 38px;
		height: 40px;
		padding: 0 9px;
		font-size: 14px;
	}

	.works-pagination a.page-numbers.prev,
	.works-pagination a.page-numbers.next {
		min-width: 72px;
	}

	.works-pagination a.page-numbers.prev {
		margin-right: 4px;
	}

	.works-pagination a.page-numbers.next {
		margin-left: 4px;
	}

}


/* =====================================
   トップページ
   建築実績カテゴリー
===================================== */
.top-works-category {
	padding: 34px 0;
	background-color: #fff;
}
@media (min-width: 992px) {
	.top-works-category {
		padding: 34px 0 0 10px;
	}
}

.top-works-category__list {
	display: grid;
	grid-auto-flow: column;
	grid-template-rows: repeat(6, auto);
	column-gap: 24px;
}
@media (min-width: 1200px) {
	.top-works-category__list {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		grid-auto-flow: row;
		grid-template-rows: auto;
		column-gap: 24px;
	}
}

.top-works-category__item {
	display: flex;
	align-items: center;
	min-width: 0;
	min-height: 60px;
    padding: 8px 10px;
	border-top: 1px solid #cbcbcb;
	border-bottom: 1px solid transparent;
	color: #555;
	text-decoration: none;
	transition:
		color 0.25s ease,
		background-color 0.25s ease;
}
@media (min-width: 992px) {
	.top-works-category__item {
		border-bottom: 1px solid #cfcfcf;
	}

	.top-works-category__item:nth-child(n + 5) {
		border-top: 0;
	}
}

/* 各列の最後に下線 */
.top-works-category__item:nth-child(4n) {
	border-bottom: 1px solid #cfcfcf;
}

.top-works-category__item:hover {
	color: #c90000;
	background-color: #fbe8e8;
	border-top: 1px solid #cbcbcb;
}

/* 矢印 */
.top-works-category__arrow {
	position: relative;
	flex-shrink: 0;
	width: 12px;
	height: 12px;
	margin-right: 20px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: rotate(45deg);
}

.top-works-category__name {
	min-width: 0;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
}

/* View more */
.top-works-category__more-area {
	display: none;
}

/* =====================================
   スマートフォン
===================================== */
@media (max-width: 767.98px) {

	.top-works-category {
		padding: 30px 0 0;
	}

	.top-works-category__list {
		display: block;
		border-bottom: 1px solid #cbcbcb;
	}

	.top-works-category__item {
		min-height: 64px;
		padding: 16px 10px;
		border-top: 1px solid #cbcbcb;
	}

	.top-works-category__item:nth-child(4n) {
		border-bottom: 0;
	}

	.top-works-category__item:last-child {
		border-bottom: 1px solid #cfcfcf;
	}

	.top-works-category__arrow {
		width: 11px;
		height: 11px;
		margin-right: 22px;
	}

	.top-works-category__item.is-mobile-hidden {
		display: none;
	}
	.top-works-category__list.is-open
	.top-works-category__item.is-mobile-hidden {
		display: flex;
	}

	.top-works-category__more-area {
		display: flex;
		justify-content: center;
		margin-top: 32px;
	}

	.top-works-category__more {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 36px;
		width: 100%;
		max-width: 270px;
		min-height: 60px;
		padding: 10px 28px;
		border: 0;
		border-radius: 10px;
		background-color: #e6e6e6;
		color: #cc0000;
		font-family: inherit;
		cursor: pointer;
		transition:
			background-color 0.25s ease,
			opacity 0.25s ease;
	}

	.top-works-category__more:hover {
		background-color: #e5e5e5;
	}

	.top-works-category__more-text {
		font-size: 15px;
		font-weight: 500;
		line-height: 1;
		letter-spacing: 0.08em;
	}

	.top-works-category__more-icon {
		position: relative;
		display: block;
		flex-shrink: 0;
		width: 18px;
		height: 18px;
	}

	.top-works-category__more-icon::before,
	.top-works-category__more-icon::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		background-color: currentColor;
		transform: translate(-50%, -50%);
		transition:
			transform 0.3s ease,
			opacity 0.3s ease;
	}

	.top-works-category__more-icon::before {
		width: 26px;
		height: 2px;
	}

	.top-works-category__more-icon::after {
		width: 2px;
		height: 26px;
	}

	.top-works-category__more.is-open
	.top-works-category__more-icon::after {
		opacity: 0;
		transform: translate(-50%, -50%) rotate(90deg);
	}
}


/* =====================================
   トップページ
   新着建築実績スライダー
===================================== */
.top-works-slider {
	padding: 34px 0 30px;
	overflow: hidden;
}
@media (min-width: 992px) {
	.top-works-slider {
		padding: 0 0 30px 30px;
	}
}

.top-works-slider__inner {
	width: 100%;
	margin: 0 auto;
}

.top-works-swiper {
	position: relative;
	overflow: visible;
	padding: 0 48px;
}

.top-works-slide {
	width: auto;
	height: auto;
}

.top-works-card {
	height: 100%;
}

.top-works-card__link {
	display: block;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.top-works-card__image-wrap {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background-color: #eee;
}

.top-works-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.top-works-card__link:hover .top-works-card__image {
	transform: scale(1.04);
}

.top-works-card__no-image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #999;
	font-size: 14px;
	letter-spacing: 0.08em;
}

.top-works-card__categories {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.top-works-card__category {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 5px 12px;
	border-radius: 4px;
	background-color: rgba(70, 70, 70, 0.85);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
}

.top-works-card__title {
	margin: 18px 0 0;
	color: #222;
	font-size: 15px;
	line-height: 1.5;
	transition: color 0.25s ease;
}

.top-works-card__link:hover .top-works-card__title {
	color: #c90000;
}

/* 左右ボタン */
.top-works-swiper__button {
	position: absolute;
	top: 42%;
	z-index: 10;
	width: 72px;
	height: 72px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: rgba(231, 231, 231, 0.9);
	cursor: pointer;
	transform: translateY(-50%);
	transition:
	background-color 0.25s ease,
	opacity 0.25s ease;
}

.top-works-swiper__button:hover {
	background-color: #fff;
}

.top-works-swiper__button::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 20px;
	height: 20px;
	border-top: 4px solid #666;
	border-right: 4px solid #666;
}

.top-works-swiper__button--prev {
	left: 8px;
}

.top-works-swiper__button--prev::before {
	transform: translate(-35%, -50%) rotate(-135deg);
}

.top-works-swiper__button--next {
	right: 8px;
}

.top-works-swiper__button--next::before {
	transform: translate(-65%, -50%) rotate(45deg);
}

.top-works-swiper__button.swiper-button-disabled {
	opacity: 0.3;
	cursor: default;
	pointer-events: none;
}

/* =====================================
   タブレット
===================================== */
@media (max-width: 991.98px) {

	.top-works-swiper {
		padding: 0 32px;
	}

	.top-works-swiper__button {
		width: 58px;
		height: 58px;
	}

	.top-works-swiper__button::before {
		width: 16px;
		height: 16px;
		border-width: 3px;
	}

	.top-works-card__title {
		font-size: 14px;
        font-weight: normal;
	}

}

/* =====================================
   スマートフォン
===================================== */
@media (max-width: 575.98px) {
	.top-works-slider {
		padding: 20px 0 56px;
	}

	.top-works-swiper {
		padding: 0 16px;
	}

	.top-works-card__category {
		min-height: 28px;
		padding: 4px 9px;
		font-size: 14px;
	}

	.top-works-card__title {
		margin-top: 12px;
		font-size: 14px;
        font-weight: normal;
	}

	.top-works-swiper__button {
		width: 46px;
		height: 46px;
	}

	.top-works-swiper__button--prev {
		left: 4px;
	}

	.top-works-swiper__button--next {
		right: 4px;
	}

	.top-works-swiper__button::before {
		width: 13px;
		height: 13px;
		border-width: 3px;
	}

}

.btn-more.two {
	display: flex;
	color: #fff;
	background-color: var(--red);
	box-shadow: none;
	border-radius: 5px;
	max-width: 480px;
	margin: 0 auto;
}
.btn-more.two .arrow {
	background-color: #fff;
}
.btn-more.two .arrow::after {
	border-top: 1px solid #ffffff;
}

.btn-more.two:hover {
	background-color: #fbe8e8;
	color: var(--red);
}
.btn-more.two:hover .arrow {
	background-color: var(--red);
}
.btn-more.two:hover .arrow::after {
	border-top: 1px solid var(--red);
}

.section-works-inner3 {
	padding: 0 20px 50px 20px;
}
@media (min-width: 992px) {
	.btn-more.two {
		font-size: 16px;
	}
	.section-works-inner3 {
		padding: 26px 20px 80px 20px;
	}
}

.section-award {
	background-image: url(img/bg-award2s.jpg);
	background-size: cover;
	background-position: center center;
	padding: 50px 0;
}
@media (min-width: 992px) {
	.section-award {
		padding: 165px 0 130px;
	}
	.section-award {
		background-image: url(img/bg-award2.jpg);
		background-position: center bottom;
	}
}
@media (min-width: 1400px) {
	.section-award {
		padding: 200px 0 165px;
	}
}
@media (min-width: 1600px) {
	.section-award {
		padding: 260px 0 205px;
	}
}

.section-award .container {
	max-width: 1150px;
}
.bg-award {
	background-color: rgba(255, 255, 255, 0.80);
	border-radius: 60px;
	padding: 26px 0 16px;
	transition: background-color .3s ease;
}
.bg-award:hover {
	background-color: rgba(255, 255, 255, 1.0);
}

.bg-award h3 {
	font-family: "Roboto", sans-serif;
  	font-optical-sizing: auto;
  	font-weight: 700;
  	font-style: normal;
  	color: var(--red);
}

.section-recruit {
	padding-top: 60px;
}
@media (min-width: 992px) {
	.section-recruit {
		padding-top: 80px;
	}
}

.section-recruit .container {
	max-width: 1150px;
}
.recruit-button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 28px;
	width: 90%;
	height: 72px;
	padding: 20px;
	border: 2px solid var(--red);
	border-radius: 9999px;
	background-color: var(--red);
	color: #fff;
	text-decoration: none;
	transition:
		background-color .3s ease,
		color .3s ease;
	margin: 10px auto 0;
	border: 1px solid var(--red);
}
@media (min-width: 768px) {
	.recruit-button {
		width: 60%;
	}
}
@media (min-width: 1200px) {
	.recruit-button {
		position: absolute;
		bottom: 15px;
		right: 15px;
		width: 35%;
		height: 82px;
	}
}
.recruit-button__text {
	font-weight: 500;
	line-height: 1.0;
	letter-spacing: .08em;
}
.recruit-button__arrow {
	flex-shrink: 0;
	width: 16px;
	height: 16px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform .3s ease;
}
.recruit-link:hover .recruit-button {
	background-color: #fff;
	color: var(--red);
	border: 1px solid var(--red);
}
.recruit-link:hover .recruit-button__arrow {
	transform: translateX(5px) rotate(45deg);
}
.recruit-button:focus-visible {
	outline: 3px solid rgba(197, 50, 29, .35);
	outline-offset: 4px;
}
@media (max-width: 575.98px) {
	.recruit-button {
		gap: 20px;
		padding: 20px;
	}
	.recruit-button__text {
		font-size: 15px;
	}
	.recruit-button__arrow {
		width: 13px;
		height: 13px;
	}
}

.section-csr {
	padding-top: 67px;	
}
.section-csrinner {
	padding-bottom: 40px;
}

.sdgs-kugiri {
	height: 1px;
	background-color: #cbcbcb;
	margin-top: 40px;
	margin-bottom: 40px;
}
.sdsmark {
	width: 80%;
	margin: 0 auto;
}
.sdgs-title {
	color: var(--red);
	font-weight: bold;
}
.sdgs-content {
	margin-top: 15px;
}

.section-news {
	padding-top: 90px;
}
@media (min-width: 992px) {
	.section-news {
		padding-top: 100px;
	}
}


@media (min-width: 992px) {
	.top-news{
		padding: 0;
	}
}
.top-news-list{
	border-top:1px solid #d8d8d8;
}
.top-news-item{
	display:grid;
	grid-template-columns:100px 1fr 40px;
	align-items:center;
	column-gap: 0;
	padding:32px 0;
	border-bottom:1px solid #cbcbcb;
	text-decoration:none;
	color:#222;
	transition:.3s;
}
.top-news-item:hover{
	color:#c53520;
}
.top-news-item__date{
	font-family: "Roboto", sans-serif;
	color:#989898;
	font-size: 13px;
}
.top-news-item__title{
	margin:0;
	font-size:14px;
	line-height:1.5;
}
.top-news-item__arrow{
	justify-self:end;
	width:10px;
	height:10px;
	border-top:1px solid #5a5a5a;
	border-right:1px solid #5a5a5a;
	transform:rotate(45deg);
	transition:.3s;
}
.top-news-item:hover .top-news-item__arrow{
	transform:translateX(6px) rotate(45deg);
}
.top-news-more{
	margin-top:24px;
	text-align:right;
}
.top-news-more__link{
	display:inline-flex;
	align-items:center;
	gap:10px;
	color: var(--red);
	font-size:14px;
	letter-spacing: 3px;
	font-weight:700;
	text-decoration:none;
}
.top-news-more__link span{
	width:10px;
	height:10px;
	border-top: 1px solid var(--red);
	border-right: 1px solid var(--red);
	transform:rotate(45deg);
	transition:.3s;
}
.top-news-more__link:hover span{
	transform:translateX(4px) rotate(45deg);
}
@media (max-width:991.98px){
	.top-news{
		padding:30px 0;
	}
	.top-news-item{
		grid-template-columns:1fr 24px;
		row-gap: 8px;
		column-gap:20px;
		padding: 12px 0;
	}
	.top-news-item__date{
		grid-column:1/2;
		font-size:13px;
		line-height: 1.0;
	}
	.top-news-item__title{
		grid-column:1/2;
		font-size:14px;
		letter-spacing: 2px;
	}
	.top-news-item__arrow{
		grid-column:2;
		grid-row:1 / span 2;
		align-self:center;
	}
	.top-news-more{
		margin-top:18px;
	}
	.top-news-more__link{
		font-size:13px;

	}
}

.section-partnership {
	padding: 30px 0 60px;
}
@media (min-width: 992px) {
	.section-partnership {
		padding: 80px 0 100px;
	}
}
.partnership-link {
	position: relative;
	display: block;
	margin: 0 auto;
	color: inherit;
	text-decoration: none;
}
.partnership-link::before {
	content: "";
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 0;
	width: 100%;
	height: 100%;
	background-color: #f8eeee;
	transition:
		background-color .35s ease,
		transform .35s ease;
}
.partnership-link__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 220px;
	padding: 40px 24px;
	border: 2px solid #c4321f;
	background-color: transparent;
	text-align: center;
	transition:
		background-color .35s ease,
		transform .35s ease;
}
.partnership-link__en {
	margin: 0;
	color: #c4321f;
	font-size: 60px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0px;
}
.partnership-link__ja {
	margin: 14px 0 0;
	color: #111;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
}
.partnership-link:hover::before {
	background-color: #f3e5e5;
	transform: translate(4px, 4px);
}
.partnership-link:hover .partnership-link__inner {
	background-color: #fff;
	transform: translate(-2px, -2px);
}
.partnership-link:focus-visible {
	outline: 3px solid rgba(196, 50, 31, .3);
	outline-offset: 8px;
}
@media (max-width: 575.98px) {
	.partnership-link::before {
		top: 10px;
		left: 10px;
	}
	.partnership-link__inner {
		min-height: 190px;
		padding: 32px 16px;
	}
	.partnership-link__en {
		font-size: 40px;
	}
	.partnership-link__ja {
		margin-top: 12px;
		font-size: 12px;
	}
}




/* =====================================
   建築実績 詳細ページ
===================================== */
.single-works {
	padding-top: 30px;
	padding-bottom: 360px;
}
@media (max-width: 768px) {
	main.single-works .container {
		padding-left: 0;
		padding-right: 0;
	}
}
@media (min-width: 992px) {
	.single-works {
		padding-top: 40px;
		padding-bottom: 80px;
	}
}

.single-works__inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

/* =====================================
   パンくず
===================================== */
.works-breadcrumb {
	margin-bottom: 54px;
}

.works-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.works-breadcrumb__item {
	display: flex;
	align-items: center;
	color: #4d4d4d;
	font-size: 14px;
	line-height: 1.5;
	font-weight: normal;
}

.works-breadcrumb__item:not(:last-child)::after {
	content: "";
	width: 8px;
	height: 8px;
	margin-left: 14px;
	border-top: 1px solid #666;
	border-right: 1px solid #666;
	transform: rotate(45deg);
}

.works-breadcrumb__item a {
	color: inherit;
	text-decoration: none;
	transition: color .25s ease;
}

.works-breadcrumb__item a:hover {
	color: #c80000;
}

/* =====================================
   メイン部分
===================================== */
.works-detail {
	display: grid;
	grid-template-columns: minmax(300px, 390px) minmax(0, 1fr);
	grid-template-areas: "information visual";
	align-items: start;
	gap: 58px;
}

.works-detail__information {
	grid-area: information;
	min-width: 0;
}

.works-detail__visual {
	grid-area: visual;
	min-width: 0;
}

.works-detail__labels {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-bottom: 30px;
}

.works-detail__label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 125px;
	min-height: 34px;
	padding: 5px 16px;
	border-radius: 2px;
	background-color: #5d5d5d;
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
}

a.works-detail__label {
	transition: background-color .25s ease;
}

a.works-detail__label:hover {
	background-color: #c80000;
}

.works-detail__title {
	margin: 0 0 30px;
	color: var(--red);
	font-size: 30px;
	font-weight: 500;
	line-height: 1.45;
}

.works-detail__data {
	margin: 0;
	border-top: 1px solid #ccc;
}

.works-detail__data-row {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	gap: 12px;
	margin: 0;
	padding: 20px 0;
	border-bottom: 1px solid #cbcbcb;
}

.works-detail__data-title {
	margin: 0;
	color: var(--red);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: .18em;
}

.works-detail__data-text {
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
}

.works-detail__data-text p {
	margin: 0;
}

.works-detail__data-text p + p {
	margin-top: 1em;
}

/* =====================================
   画像スライダー
===================================== */
.works-gallery-swiper {
	overflow: hidden;
	width: 100%;
}

.works-gallery-swiper__slide {
	aspect-ratio: 4 / 3;
	background-color: #eee;
}

.works-gallery-swiper__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.works-detail__no-image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 4 / 3;
	background-color: #eee;
	color: #999;
	font-size: 14px;
	letter-spacing: .1em;
}

.works-gallery-controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 22px;
	margin-top: 24px;
}

.works-gallery-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: auto !important;
}

.works-gallery-pagination .swiper-pagination-bullet {
	width: 12px;
	height: 12px;
	margin: 0 !important;
	background-color: #aaa;
	opacity: 1;
}

.works-gallery-pagination .swiper-pagination-bullet-active {
	background-color: var(--red);
}

.works-gallery-button {
	position: relative;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	background-color: transparent;
	cursor: pointer;
}

.works-gallery-button::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 9px;
	border-top: 2px solid #333;
	border-right: 2px solid #333;
}

.works-gallery-button--prev::before {
	transform: translate(-30%, -50%) rotate(-135deg);
}

.works-gallery-button--next::before {
	transform: translate(-70%, -50%) rotate(45deg);
}

.works-gallery-button.swiper-button-disabled {
	opacity: .3;
	cursor: default;
}

/* =====================================
   関連実績
===================================== */
.related-works {
	margin-top: 120px;
}

.related-works__heading {
	display: flex;
	align-items: flex-end;
	gap: 16px;
	margin-bottom: 28px;
}

.related-works__title {
	margin: 0;
	color: #d0d0d0;
	font-size: clamp(42px, 5vw, 58px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.03em;
}

.related-works__subtitle {
	margin: 0 0 3px;
    color: #4d4d4d;
    font-size: 14px;
    font-weight: normal;
}

.related-works__list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 28px;
}

.related-works-card {
	min-width: 0;
}

.related-works-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.related-works-card__image-wrap {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background-color: #eee;
}

.related-works-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .45s ease;
}

.related-works-card__link:hover .related-works-card__image {
	transform: scale(1.04);
}

.related-works-card__no-image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #999;
	font-size: 12px;
}

.related-works-card__categories {
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	max-width: 100%;
}

.related-works-card__category {
	display: inline-flex;
	align-items: center;
	min-height: 23px;
	padding: 2px 8px;
	background-color: #231818;
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.4;
}

.related-works-card__content {
	padding-top: 14px;
}

.related-works-card__title {
	margin: 0;
	color: var(--red);
	font-size: 16px;
	font-weight: normal;
	line-height: 1.5;
}

.related-works-card__place {
	margin: 5px 0 0;
	color: #5a5a5a;
	font-size: 13px;
	line-height: 1.6;
}

.related-works-card__categories.sp {
	position: inherit;
}

/* =====================================
   タブレット
===================================== */
@media (max-width: 991.98px) {

	.works-detail {
		grid-template-columns: 1fr;
		grid-template-areas:
			"visual"
			"information";
		gap: 42px;
	}

	.related-works__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}

/* =====================================
   スマートフォン
===================================== */
@media (max-width: 575.98px) {

	.single-works {
		padding: 28px 0 80px;
	}

	.single-works__inner {
		max-width: none;
	}

	.works-breadcrumb {
		margin: 0 20px 30px;
		overflow: hidden;
	}

	.works-breadcrumb__list {
		flex-wrap: nowrap;
		gap: 8px 12px;
		overflow-x: auto;
		white-space: nowrap;
		scrollbar-width: none;
	}

	.works-breadcrumb__list::-webkit-scrollbar {
		display: none;
	}

	.works-breadcrumb__item {
		flex-shrink: 0;
		font-size: 12px;
	}

	.works-breadcrumb__item:not(:last-child)::after {
		width: 7px;
		height: 7px;
		margin-left: 12px;
	}

	.works-detail {
		gap: 36px;
	}

	.works-detail__visual {
		width: 100%;
	}

	.works-gallery-swiper__slide {
		aspect-ratio: 1 / .77;
	}

	.works-gallery-controls {
		margin-top: 18px;
	}

	.works-gallery-pagination .swiper-pagination-bullet {
		width: 11px;
		height: 11px;
	}

	.works-detail__information {
		padding: 0 20px;
	}

	.works-detail__labels {
		gap: 6px;
		margin-bottom: 26px;
	}

	.works-detail__label {
		min-width: 100px;
		min-height: 30px;
		padding: 4px 12px;
		font-size: 14px;
		font-weight: normal;
	}

	.works-detail__title {
		margin-bottom: 26px;
		font-size: 22px;
	}

	.works-detail__data-row {
		grid-template-columns: 74px minmax(0, 1fr);
		gap: 12px;
		padding: 18px 0;
	}

	.works-detail__data-title {
		font-size: 14px;
	}
	.works-detail__data-text {
		font-size: 15px;
		line-height: 1.8;
		font-weight: normal;
	}
	.related-works {
		margin-top: 64px;
		padding: 0 20px;
	}
	.related-works__heading {
		display: block;
		margin-bottom: 24px;
	}
	.related-works__title {
		font-size: 36px;
		line-height: 1.05;
	}
	.related-works__subtitle {
		margin-top: 8px;
        font-size: 14px;
	}
	.related-works__list {
		display: block;
	}
	.related-works-card + .related-works-card {
		margin-top: 18px;
	}
	.related-works-card__link {
		display: grid;
		grid-template-columns: 47% minmax(0, 1fr);
		align-items: center;
		gap: 15px;
	}
	.related-works-card__content {
		padding-top: 0;
	}
	.related-works-card__title {
		font-size: 15px;
		line-height: 1.5;
	}
	.related-works-card__place {
		margin-top: 4px;
		font-size: 11px;
	}
	.related-works-card__category {
		min-height: 20px;
		padding: 1px 6px;
		font-size: 9px;
	}
}

/*コンセプトページ*/
#concept .l-page-title {
	display: none;
}
#concept .consept-page {
	margin-top: 40px;
	background-image: url(img/bg-concepts.jpg);
	background-size: cover;
	background-position: center bottom;
}
#concept .consept-page .container {
	padding-top: 56px;
	padding-bottom: 80%;
}
#concept .consept-eigo {
	font-family: "Roboto", sans-serif;
	color: var(--red);
	line-height: 1.0;
}
#concept .concept-title {
	font-weight: 700;
    line-height: 1.5;
    letter-spacing: 3px;
}
#concept .concept-midahsi {
	display: block;
	margin: 0 auto;
	width: 80%;
}
#concept .consept-page p {
	letter-spacing: 1.1px;
}
#concept .consept-eigo2 {
	color: #e5e5e5;
	font-family: "Roboto", sans-serif;
	line-height: 1.0;
}
@media (min-width: 576px) {
	.concept-midahsi {
		max-width: 300px;
	}
}
@media (min-width: 768px) {
	#concept .consept-page {
		background-image: none;
	}
	#concept .consept-page .container {
		padding-bottom: 120px;
	}
}
@media (min-width: 992px) {
	#concept .consept-page {
		margin-top: 108px;
	}
	.concept-midahsi {
		max-width: 350px;
	}
	#concept .consept-page .container {
		padding-bottom: 200px;
	}
	#concept .consept-page p {
		letter-spacing: 1.8px;
        line-height: 2.1;
	}
}
@media (min-width: 1400px) {
	#concept .consept-page .container {
		padding-bottom: 300px;
	}
}

#concept .btn-more.concept {
	padding-top: 30px;
	padding-bottom: 30px;
}
@media (min-width: 992px) {
	#concept .btn-more.concept {
		padding-top: 48px;
		padding-bottom: 48px;
	}
}
.company-subnav {
	--company-subnav-red: #c63426;
	--company-subnav-hover: #dc7071;
	width: min(calc(100%), 650px);
	margin-inline: auto;
}
.company-subnav__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	margin: 0;
	padding: 0;
	border: 1px solid var(--company-subnav-red);
	border-radius: 999px;
	background-color: #fff;
	box-shadow: 0 4px 0 var(--company-subnav-red);
	list-style: none;
}
@media (min-width: 992px) {
	.company-subnav__link {
		flex-direction: row-reverse !important;

	}
}
.company-subnav__item {
	min-width: 0;
	margin: 0;
	padding: 0;
}
.company-subnav__link {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 66px;
	padding: 13px 12px 11px;
	color: var(--company-subnav-red);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	text-decoration: none;
	transition:
		color .25s ease,
		transform .25s ease;
}
@media (min-width: 992px) {
	.company-subnav__link {
		flex-direction: row;
	}
}
.company-subnav__text {
	display: block;
	white-space: nowrap;
}
.company-subnav__arrow {
	position: relative;
	display: block;
	width: 10px;
	height: 10px;
	margin-top: 7px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	transition:
		border-color .25s ease,
		transform .25s ease;
}
@media(min-width: 992px) {
	.company-subnav__arrow {
		margin-top: -7px;
	    margin-right: 10px;
	}
}

.company-subnav__link:hover {
	color: var(--company-subnav-hover);
	transform: translateY(3px);
}

.company-subnav__link:hover .company-subnav__arrow {
	transform:
		translateY(1px)
		rotate(45deg);
}

.company-subnav__link:focus-visible {
	color: var(--company-subnav-hover);
	outline: 2px solid var(--company-subnav-hover);
	outline-offset: -5px;
}

.company-subnav__link.is-current,
.company-subnav__link[aria-current="page"] {
	color: var(--company-subnav-hover);
}

@media (max-width: 767.98px) {
	.company-subnav__list {
		border-radius: 18px;
		box-shadow: 0 4px 0 var(--company-subnav-red);
	}

	.company-subnav__link {
		min-height: 64px;
		padding: 12px 6px 10px;
		font-size: 15px;
	}

	.company-subnav__arrow {
		width: 9px;
		height: 9px;
		margin-top: 6px;
	}
}

#company .kotei-title h2 {
	color: var(--lightgray);
	font-family: "Roboto", sans-serif;
	font-size: 48px;
	font-weight: bold;
	line-height: 1.0;
	margin-bottom: 0;
}
@media(min-width: 992px) {
	#company .kotei-title h2 {
		font-size: 72px;
	}
}
#company .kotei-title p {
	color: var(--red);
	line-height: 1.0;
	display: flex;
	align-items: center;
	margin-top: 12px;
}
#company .kotei-title p:before {
	content: '・';
	font-size: 30px;
	color: var(--red);
}
.message-title {
	letter-spacing: 3.0px;
}
.message-title span {
	background: linear-gradient(transparent 50%, var(--lightred) 50%);
}

@media (max-width: 768px) {
	.company-page .container.one {
		padding-left: 0;
		padding-right: 0;
	}
}

.consept-page {
	position: relative;
}

@media (min-width: 768px) {
	#concept #area-wrapper {
		overflow: visible!important;
	}
	.concept-bg {
		position: sticky;
		top: 110px;
		width: 100%;
		height: calc(100vh - 110px);
		background-image: url("img/bg-concept.jpg");
		background-repeat: no-repeat;
		background-size: cover;
		background-position: center bottom;
		z-index: 0;
	}
	.concept-inner {
		position: relative;
		z-index: 1;
		margin-top: calc(-100vh + 110px);
		padding-top: 60vh;
		padding-bottom: 100px;
	}
	.consept-page .container {
		min-height: calc(100vh - 110px);
	}
}


/* =====================================
   会社概要
===================================== */
.company-profile__inner {
	width: 100%;
	margin: 0 auto;
}

.company-profile__list {
	margin: 0;
	padding: 0;
	border-top: 1px solid #d7d7d7;
}

.company-profile__item {
	margin: 0;
	padding: 25px 0 24px;
	border-bottom: 1px solid #d7d7d7;
}

.company-profile__title,
.company-profile__content {
	margin: 0;
	padding: 0;
}
.company-profile__title {
	margin-bottom: 10px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.7;
}
.company-profile__content {
	font-size: 15px;
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0.01em;
}
.company-profile__content p {
	margin: 0;
}

.company-profile__content a {
	color: inherit;
	text-decoration: none;
}

.company-profile__content a:hover {
	text-decoration: underline;
}

.company-profile__title > span {
	display: block;
}

.company-profile__contact {
	display: grid;
	gap: 0;
}

.company-profile__contact-row {
	display: grid;
	grid-template-columns: 52px 1fr;
	align-items: baseline;
}

.company-profile__contact-label {
	font-weight: 700;
}

.company-profile__license-list {
	margin: 2px 0 0;
	padding: 0;
	list-style: none;
}

.company-profile__license-list li {
	position: relative;
	padding-left: 1em;
	line-height: 1.7;
}

.company-profile__license-list li::before {
	position: absolute;
	top: 0;
	left: 0;
	content: "・";
}
.company-profile__iso-block + .company-profile__iso-block {
	margin-top: 0;
}
.company-profile__base + .company-profile__base {
	margin-top: 20px;
}

.company-profile__base-name {
	margin-bottom: 3px !important;
}

@media (min-width: 768px) {
	.company-profile {
		padding: 40px 0 50px;
	}
	.company-profile__item {
		display: grid;
		grid-template-columns: 150px minmax(0, 1fr);
		column-gap: 28px;
		padding: 21px 20px;
	}
	.company-profile__title {
		margin-bottom: 0;
		font-size: 15px;
		line-height: 1.8;
		font-weight: normal;
	}
	.company-profile__content {
		font-size: 15px;
		line-height: 1.75;
	}
	.company-profile__contact-row {
		grid-template-columns: none;
	}
	.company-profile__contact-label {
		display: none;
	}
}

@media (min-width: 1200px) {
	.company-profile__item {
		grid-template-columns: 155px minmax(0, 1fr);
		column-gap: 30px;
		padding: 21px 20px;
	}
}

@media (max-width: 767px) {
	.company-profile {
		padding: 56px 0 56px;
	}
	.company-profile__item {
		padding: 21px 0 20px;
	}
	.company-profile__title {
		font-size: 15px;
	}
	.company-profile__content {
		font-size: 15px;
		line-height: 1.8;
	}
	.company-profile__title > span {
		display: none;
	}
	.company-profile__contact-row {
		grid-template-columns: 52px 1fr;
	}
	.company-profile__contact-label {
		display: inline;
	}
}

.businessnumber {
	position: absolute;
	bottom: -30px;
	left: 10px;
	width: 54px;
}
@media (min-width: 992px) {
	.businessnumber {
		position: inherit;
		width: 54px;
		margin-left: 0;
	}
}

@media (max-width: 991.98px) {
	.h-02 #area-header #navbarNav
	.h-nav-jisseki > .dropdown-menu.show {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 20px;
		row-gap: 0;
	}
	.h-02 #area-header #navbarNav
	.h-nav-jisseki > .dropdown-menu > li {
		width: 100%;
		min-width: 0;
	}
	.h-02 #area-header #navbarNav
	.h-nav-jisseki > .dropdown-menu > li > a {
		display: flex;
		align-items: center;
		height: 100%;
		padding: 14px 4px !important;
		font-size: 13px;
		line-height: 1.5;
	}
}

/* =====================================
   PC 建築実績メガメニュー
===================================== */
@media (min-width: 992px) {
	.h-02 #area-header #navbarNav {
		position: static;
	}
	.h-02 #area-header #menu-global {
		position: static;
	}
	.h-02 #area-header #menu-global > .h-nav-jisseki {
		position: static;
	}

	.h-02 #area-header #menu-global
	> .h-nav-jisseki
	> .dropdown-menu {
		position: absolute;
		top: 100%;
		left: 50%;
		z-index: 1000;
		display: grid !important;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		column-gap: 24px;
		row-gap: 0;
		width: calc(100vw - 150px);
		max-width: 1000px;
		margin: 0;
		padding: 25px!important;
		background-color: var(--lightred);
		border: 0;
		border-radius: 0;
		box-shadow: none;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateX(-50%);
		transition:
			opacity 0.3s ease,
			visibility 0.3s ease;
	}

	.h-02 #area-header #menu-global
	> .h-nav-jisseki:hover
	> .dropdown-menu {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	.h-02 #area-header #menu-global
	> .h-nav-jisseki
	> .dropdown-menu
	> li {
		position: relative;
		width: 100%;
		min-width: 0;
		margin: 0;
		padding-left: 28px;
		border-bottom: 1px solid #fff;
		background-color: transparent;
	}

	.h-02 #area-header #menu-global
	> .h-nav-jisseki
	> .dropdown-menu
	> li::before {
		content: "";
		position: absolute;
		top: 50%;
		left: 5px;
		display: block;
		width: 8px;
		height: 8px;
		border-radius: 50%;
		background-color: var(--red);
		transform: translateY(-50%);
	}
	.h-02 #area-header #menu-global
	> .h-nav-jisseki
	> .dropdown-menu
	> li:hover::before {
		background-color: #5a5a5a;
	}

	.h-02 #area-header #menu-global
	> .h-nav-jisseki
	> .dropdown-menu
	> li
	> a {
		display: flex;
		align-items: center;
		width: 100%;
		min-height: 54px;
		padding: 10px 0 !important;
		color: #231815 !important;
		font-size: 14px;
		line-height: 1.5;
		white-space: normal;
		border-bottom: 0 !important;
		background-color: transparent;
	}
	.h-02 #area-header #menu-global
	> .h-nav-jisseki
	> .dropdown-menu
	> li
	> a::before {
		display: none;
		content: none;
	}

	/*.h-02 #area-header #menu-global
	> .h-nav-jisseki
	> .dropdown-menu
	> li
	> a:hover {
		color: var(--red) !important;
		background-color: transparent;
	}*/
}
@media (min-width: 992px) {

	/* 1件目だけを上段へ */
	.h-02 #area-header #menu-global
	> .h-nav-jisseki
	> .dropdown-menu
	> li:first-child {
		grid-column: 1 / -1;   /* 4列全部使う */
		display: flex;
		align-items: center;
		border-bottom: 0;
		margin-bottom: 10px;
		padding-left: 0;
	}

	/* 赤丸を消す */
	.h-02 #area-header #menu-global
	> .h-nav-jisseki
	> .dropdown-menu
	> li:first-child::before {
		display: none;
	}

	/* リンク */
	.h-02 #area-header #menu-global
	> .h-nav-jisseki
	> .dropdown-menu
	> li:first-child > a {
		display: inline-flex;
		align-items: center;
		padding: 0 !important;
		border: 0 !important;
		min-height: auto;
		font-size: 13px;
		font-weight: 500;
	}

	/* 「建築実績」の文字 */
	.h-02 #area-header #menu-global
	> .h-nav-jisseki
	> .dropdown-menu
	> li:first-child > a::before {
		content: "建築実績";
		display: inline-block;
		margin-right: 30px;
		font-size: 20px;
		font-weight: 700;
		color: var(--red);
	}
}

.kotei-title-syo {
	color: #cbcbcb;
	font-weight: bold;
}
.iso-mark {
	width: 105px;
}
@media (min-width: 768px) {
	.iso-mark {
		width: 154px;
	}
}

@media (max-width: 768px) {
	.kotei-title-syo.csrcertifi {
		position: absolute;
		top: -30px;
		left: 8px;
	}
}

@media (min-width: 992px) {
	.csr-certifimark {
		width: 150px;
	}
}

.activity-modal{
	position:fixed;
	inset:0;
	z-index:9999;
	display:flex;
	align-items:center;
	justify-content:center;
	opacity:0;
	visibility:hidden;
	transition:.3s;
}
.activity-modal.is-open{
	opacity:1;
	visibility:visible;
}
.activity-modal__overlay{
	position:absolute;
	inset:0;
	background:rgba(0,0,0,.45);
}
.activity-modal__content{
	position:relative;
	background:#fff;
	width:min(900px,90vw);
	max-height:85vh;
	border-radius:12px;
	box-shadow:0 10px 30px rgba(0,0,0,.2);
	display:flex;
	flex-direction:column;
	z-index:2;
}
.activity-modal__body{

	padding:40px;
	overflow-y:auto;
}

.activity-section h3{
	color: var(--red);
	font-size:22px;
	font-weight:700;
	padding-bottom:12px;
	margin-bottom:20px;
	border-bottom:1px solid #ccc;
}

.activity-section ul{

	padding-left:20px;
}

.activity-section li{
	line-height:2;
}
.activity-modal__footer{
	padding:30px;
	text-align:center;
}
.activity-close-btn{
	width:220px;
	height:58px;
	border:2px solid  var(--red);
	background:#fff;
	color: var(--red);
	font-weight:700;
	font-size:18px;
	cursor:pointer;
	transition:.3s;
}
.activity-close-btn:hover{
	background: var(--red);
	color:#fff;
}
.activity-modal__close{
	position:absolute;
	top:18px;
	right:22px;
	background:none;
	border:0;
	font-size:38px;
	color: var(--red);
	cursor:pointer;
	line-height:1;
}
@media(max-width:768px){
	.activity-modal__body{
		padding:28px 20px;
	}
	.activity-section h3{
		font-size:18px;
	}
	.activity-section li{
		line-height: 1.5;
        font-size: 15px;
        margin-bottom: 10px;
	}
	.activity-close-btn{
		width:180px;
		height:52px;
	}
}


/* =====================================
   受賞歴
===================================== */
@media (max-width: 992px) {
	.award-historyb-box.container {
		padding-left: 0;
		padding-right: 0;
	}
}
.award-history {
	padding: 60px 20px 100px;
	background-color: #f7f7f7;
}
.award-history__inner {
	width: 100%;
	margin: 0 auto;
	max-width: 980px;
}
.award-item {
	display: grid;
	grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
	column-gap: 14px;
	align-items: center;
	margin-bottom: 42px;
}
.award-item:last-child {
	margin-bottom: 0;
}
.award-item__image {
	width: 100%;
}
.award-item__image img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}
.award-item__content {
	display: grid;
	grid-template-columns: 60px minmax(0, 1fr);
	column-gap: 14px;
	align-items: start;
}
.award-item__line {
	padding-top: 17px;
}
.award-item__line span {
	display: block;
	width: 100%;
	height: 1px;
	background-color: var(--red);
}
.award-item__line--hidden {
	visibility: hidden;
}
.award-item__body {
	min-width: 0;
}
.award-item__label {
	display: table;
	margin: 0 0 16px;
	padding: 6px 16px 7px;
	background-color: #606060;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.03em;
}
.award-item__title {
	margin: 0;
	color: var(--red);
	font-size: 20px;
	line-height: 1.6;
	letter-spacing: 0.02em;
}
.award-item__description {
	margin: 8px 0 0;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0.01em;
}
.award-item__pdf {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-top: 14px;
	color: #555;
	font-size: 13px;
	line-height: 1.6;
	text-decoration: none;
	transition:
		color 0.25s ease,
		opacity 0.25s ease;
}
.award-item__pdf:hover {
	color: var(--red);
	opacity: 0.8;
}
.award-item__pdf-icon {
	display: block;
	flex: 0 0 auto;
	width: 20px;
	height: 24px;
}
.award-item__pdf-icon svg {
	display: block;
	width: 100%;
	height: 100%;
}
.award-item__pdf-icon path {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.3;
	stroke-linejoin: round;
}
.award-item__pdf-icon text {
	fill: currentColor;
	font-size: 5px;
	font-family: "Roboto", sans-serif;
	font-weight: 700;
}
.award-item__pdf-size {
	white-space: nowrap;
}
.award-item--text-only {
	margin-top: -3px;
	margin-bottom: 36px;
}
.award-item--text-only .award-item__content {
	min-height: 88px;
	align-items: center;
}
@media (min-width: 992px) {
	.award-item__image img {
		aspect-ratio: 420 / 258;
		height: 258px;
		object-fit: cover;
	}
	.award-item__image img.harazonoglass {
		aspect-ratio: 1 / 1;
		height: fit-content;
	}
	.award-item__image {
		overflow: hidden;
	}

	.award-item:first-child .award-item__image img {
		object-position: center center;
	}
}
@media (max-width: 991px) {
	.award-history {
		padding: 48px 20px 80px;
	}

	.award-item {
		grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
		column-gap: 12px;
		margin-bottom: 38px;
	}

	.award-item__content {
		grid-template-columns: 40px minmax(0, 1fr);
		column-gap: 12px;
	}

	.award-item__title {
		font-size: 18px;
	}

	.award-item__description {
		font-size: 14px;
	}
}

@media (max-width: 767px) {
	.award-history {
		padding: 30px 20px 60px;
	}
	.award-item,
	.award-item--text-only {
		display: flex;
		flex-direction: column-reverse;
		align-items: stretch;
		margin: 0;
		padding: 0 0 31px;
		border-bottom: 1px solid #d5d5d5;
	}
	.award-item + .award-item {
		padding-top: 31px;
	}
	.award-item:last-child {
		padding-bottom: 0;
		border-bottom: 0;
	}
	.award-item__content {
		display: block;
		order: 1;
		width: 100%;
		min-height: 0;
	}

	.ward-item__image {
		order: 2;
		margin-top: 18px;
	}
	.award-item__image img {
		width: 100%;
		height: auto;
		aspect-ratio: auto;
		object-fit: contain;
	}
	.award-item__empty,
	.award-item__line {
		display: none;
	}
	.award-item__label {
		margin-bottom: 12px;
		padding: 5px 14px 6px;
		font-size: 14px;
	}
	.award-item__title {
		font-size: 18px;
		line-height: 1.55;
	}
	.award-item__description {
		margin-top: 7px;
		font-size: 15px;
		line-height: 1.8;
	}
	.award-item__pdf {
		display: flex;
		width: 100%;
		gap: 8px;
		margin-top: 14px;
		font-size: 11px;
		line-height: 1.6;
	}
	.award-item__pdf-icon {
		width: 17px;
		height: 21px;
		margin-top: 1px;
	}
	.award-item__pdf-size {
		white-space: normal;
	}
}
@media (max-width: 374px) {
	.award-history {
		padding-right: 15px;
		padding-left: 15px;
	}
	.award-item__title {
		font-size: 16px;
	}
	.award-item__description {
		font-size: 12px;
	}
}

.max-850 {
	max-width: 850px;
}


/* =====================================
   協力会社
===================================== */
.partner-company {
	padding: 50px 0px 100px;
}
.partner-company__inner {
	width: 100%;
	margin: 0 auto;
}

.partner-company__title {
	margin: 0 0 45px;
	padding: 13px 20px;
	background-color: #fbe8e8;
	color: var(--red);
	font-size: 18px;
	line-height: 1.5;
	text-align: center;
}
.partner-category {
	margin-bottom: 49px;
}
.partner-category:last-child {
	margin-bottom: 0;
}
.partner-category__title {
	margin: 0 0 20px;
	padding: 0 0 8px;
	border-bottom: 1px solid #aaa;
	color: var(--red);
	font-size: 16px;
	line-height: 1.5;
}
.partner-list {
	display: flex;
	flex-direction: column;
	gap: 15px;
}
.partner-item {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	column-gap: 28px;
	align-items: center;
}
.partner-item__name,
.partner-item__address {
	margin: 0;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.8;
}
.partner-item__info {
	display: flex;
	align-items: center;
	gap: 18px;
	min-width: 0;
}
.partner-item__address {
	flex: 0 1 auto;
}
.partner-item__button {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 30px;
	padding: 5px 14px;
	background-color: #eee;
	color: #555;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
	text-decoration: none;
	transition:
		background-color 0.25s ease,
		color 0.25s ease;
}
/*.partner-item__button::after {
	content: "↗";
	display: inline-block;
	font-size: 13px;
	line-height: 1;
}*/
.partner-item__button-icon {
	display: block;
	width: 11px;
	height: 11px;
	object-fit: contain;
}
.partner-item__button:hover .partner-item__button-icon {
	filter: brightness(0) invert(1);
}
.partner-item__button:hover {
	background-color: var(--red);
	color: #fff;
}
@media (max-width: 991px) {
	.partner-item {
		grid-template-columns: 280px minmax(0, 1fr);
		column-gap: 24px;
	}
}
@media (max-width: 767px) {
	.partner-page .container.ichiran {
		padding-left: 0;
		padding-right: 0;
	}
	.partner-company {
		padding: 40px 20px 70px;
	}
	.partner-company__title {
		margin: 0 -20px 35px;
		padding: 13px 15px;
		font-size: 18px;
	}
	.partner-category {
		margin-bottom: 49px;
	}
	.partner-category__title {
		margin-bottom: 21px;
		padding-bottom: 7px;
		font-size: 16px;
	}
	.partner-list {
		gap: 26px;
	}
	.partner-item {
		display: block;
	}
	.partner-item__name {
		margin-bottom: 5px;
		font-size: 15px;
		line-height: 1.7;
	}
	.partner-item__info {
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-start;
		gap: 8px 12px;
	}
	.partner-item__address {
		flex: 0 1 auto;
		font-size: 15px;
		line-height: 1.7;
	}
	.partner-item__button {
		min-height: 27px;
		padding: 4px 12px;
		font-size: 12px;
	}
}

.workszentai-icon {
	width: 16px;
	height: 16px;
	margin-left: 5px;
	vertical-align: middle;
}


/* =====================================
   お知らせ一覧
===================================== */
.information-page {
	padding: 120px 20px 160px;
	background-color: #fff;
	color: #222;
}

.information-page__inner {
	width: 100%;
	margin: 0 auto;
}

.information-list {
	border-top: 1px solid transparent;
}
.information-item {
	border-bottom: 1px solid #d5d5d5;
}
.information-item__link {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	padding: 38px 10px 26px 12px;
	color: inherit;
	text-decoration: none;
	transition: opacity 0.3s ease;
}
.information-item__link:hover {
	opacity: 0.7;
}
.information-item__main {
	min-width: 0;
	flex: 1;
}
.information-item__meta {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 12px;
}
.information-item__date {
	flex-shrink: 0;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.02em;
}
.information-item__category {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 110px;
	min-height: 30px;
	padding: 4px 20px;
	border-radius: 999px;
	background-color: var(--red);
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
}
.information-item__title {
	margin: 0 0 6px;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
}
.information-item__excerpt {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	font-size: 16px;
	line-height: 1.6;
	text-overflow: ellipsis;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
}
.information-item__arrow {
	display: block;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
}
.information-item__arrow svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
}
.information-item__arrow circle {
	fill: #231815;
}
.information-item__arrow path {
	fill: none;
	stroke: #fff;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.information-pagination {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 104px;
}
.information-pagination__buttons {
	display: contents;
}
.information-pagination__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 110px;
	min-height: 40px;
	border: 1px solid #777;
	border-radius: 4px;
	background-color: #fff;
	color: #333;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition:
		background-color 0.3s ease,
		color 0.3s ease;
}
.information-pagination__button:hover {
	background-color: #333;
	color: #fff;
}
.information-pagination__button--next {
	order: 1;
	margin-right: 28px;
}
.information-pagination__numbers {
	order: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
}
.information-pagination__button--prev {
	order: 3;
	margin-left: 28px;
}
.information-pagination__number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 8px;
	border-radius: 4px;
	color: #333;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	transition:
		background-color 0.3s ease,
		color 0.3s ease;
}
.information-pagination__number:hover {
	background-color: #f5f5f5;
}
.information-pagination__number.current {
	background-color: #ffdfe1;
}

.information-pagination__number.dots {
	min-width: auto;
	padding: 0 4px;
}

.information-pagination__button.is-disabled {
	opacity: 0.45;
	pointer-events: none;
}
.information-page__empty {
	margin: 0;
	padding: 80px 0;
	text-align: center;
	font-size: 16px;
}
@media (max-width: 767px) {
	.information-page {
		padding: 70px 20px 70px;
	}
	.information-item__link {
		display: block;
		padding: 27px 0 25px;
	}
	.information-item__meta {
		gap: 14px;
		margin-bottom: 10px;
	}
	.information-item__date {
		font-size: 16px;
	}
	.information-item__category {
		min-width: 110px;
		min-height: 28px;
		padding: 3px 18px;
		font-size: 14px;
	}
	.information-item__title {
		margin-bottom: 4px;
		font-size: 16px;
		line-height: 1.6;
	}
	.information-item__excerpt {
		font-size: 16px;
		line-height: 1.6;
		-webkit-line-clamp: 1;
	}
	.information-item__arrow {
		display: none;
	}
	.information-pagination {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0;
		margin-top: 70px;
	}
	.information-pagination__buttons {
		order: 1;
		display: flex;
		justify-content: center;
		gap: 20px;
		width: 100%;
		margin-bottom: 38px;
	}
	.information-pagination__button {
		width: 110px;
		min-height: 37px;
	}
	.information-pagination__button--next,
	.information-pagination__button--prev {
		order: initial;
		margin: 0;
	}
	.information-pagination__numbers {
		order: 2;
		width: 100%;
		gap: 3px;
	}
	.information-pagination__number {
		min-width: 37px;
		height: 37px;
	}
}

.information-item a:hover {
	background-color: var(--lightred);
}


/* =====================================
   Contact Form 7
===================================== */
.contact-form-wrap {
	width: 100%;
	max-width: 1040px;
	margin: 0 auto;
	color: #222;
	font-family:
		-apple-system,
		BlinkMacSystemFont,
		"Helvetica Neue",
		"Yu Gothic",
		YuGothic,
		"ヒラギノ角ゴ ProN W3",
		"Hiragino Kaku Gothic ProN",
		Arial,
		sans-serif;
}
.contact-form-message {
	width: 100%;
	max-width: 680px;
	margin: 0 auto 46px;
}
.contact-form-message p {
	margin: 0;
	color: var(--red);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.8;
}
.contact-form-box {
	width: 100%;
	padding: 66px 0 76px;
	background-color: #f7f7f7;
}
.contact-form-item {
	width: calc(100% - 80px);
	max-width: 680px;
	margin: 0 auto 48px;
}
.contact-form-item--radio {
	margin-bottom: 64px;
}
.contact-form-item--textarea {
	margin-bottom: 30px;
}
.contact-form-label {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 13px;
	color: #222;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
}
.form-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	height: 24px;
	padding: 0 10px;
	border-radius: 20px;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}
.form-badge--required {
	background-color: var(--red);
}
.form-badge--optional {
	background-color: #7b7b7b;
}
.contact-form-description {
	margin: -2px 0 22px;
	font-size: 15px;
	line-height: 1.8;
}
.contact-form-input .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}
.contact-form-input input[type="text"],
.contact-form-input input[type="email"],
.contact-form-input input[type="tel"] {
	display: block;
	width: 100%;
	height: 60px;
	margin: 0;
	padding: 10px 16px;
	border: 1px solid #7b7b7b;
	border-radius: 0;
	background-color: #fff;
	color: #222;
	font-family: inherit;
	font-size: 16px;
	line-height: 1.5;
	box-sizing: border-box;
	appearance: none;
	-webkit-appearance: none;
}
.contact-form-input textarea {
	display: block;
	width: 100%;
	height: 190px;
	margin: 0;
	padding: 14px 16px;
	border: 1px solid #777;
	border-radius: 0;
	background-color: #fff;
	color: #222;
	font-family: inherit;
	font-size: 16px;
	line-height: 1.8;
	resize: vertical;
	box-sizing: border-box;
	appearance: none;
	-webkit-appearance: none;
}
.contact-form-input input[type="text"]:focus,
.contact-form-input input[type="email"]:focus,
.contact-form-input input[type="tel"]:focus,
.contact-form-input textarea:focus {
	border-color: var(--red);
	outline: 2px solid rgba(210, 13, 22, 0.12);
	outline-offset: 0;
}
.contact-form-radio {
	padding-left: 34px;
}
.contact-form-radio .wpcf7-form-control {
	display: flex;
	flex-direction: column;
	gap: 13px;
}
.contact-form-radio .wpcf7-list-item {
	display: block;
	margin: 0;
}
.contact-form-radio .wpcf7-list-item-label {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	cursor: pointer;
	display: flex;
    align-items: center;
}
.contact-form-radio label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}
.contact-form-radio input[type="radio"] {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.contact-form-radio .wpcf7-list-item-label::before {
	content: "";
	display: inline-block;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	border: 1px solid #777;
	border-radius: 50%;
	background-color: #fff;
	box-sizing: border-box;
	margin-right: 5px;
}
.contact-form-radio input[type="radio"]:checked
	+ .wpcf7-list-item-label::before {
	border: 4px solid #fff;
	background-color: var(--red);
	box-shadow: 0 0 0 1px #777;
}
.contact-form-radio input[type="radio"]:focus-visible
	+ .wpcf7-list-item-label::before {
	outline: 2px solid rgba(210, 13, 22, 0.35);
	outline-offset: 3px;
}
.contact-form-recaptcha {
	width: calc(100% - 80px);
	max-width: 710px;
	margin: 0 auto 44px;
}
.contact-form-recaptcha p {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
	text-align: center;
}
.contact-form-recaptcha a {
	color: #222;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.contact-form-submit {
	display: flex;
	justify-content: center;
	width: calc(100% - 80px);
	max-width: 680px;
	margin: 0 auto;
}
.contact-form-submit .wpcf7-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 350px;
	max-width: 100%;
	height: 66px;
	margin: 0;
	padding: 0 20px;
	border: 1px solid var(--red);
	border-radius: 4px;
	background-color: var(--red);
	color: #fff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	cursor: pointer;
	transition:
		background-color 0.3s ease,
		color 0.3s ease,
		opacity 0.3s ease;
	appearance: none;
	-webkit-appearance: none;
}
.contact-form-submit .wpcf7-submit:hover {
	background-color: #fff;
	color: var(--red);
}
.contact-form-submit .wpcf7-submit:disabled {
	opacity: 0.6;
	cursor: wait;
}
.contact-form-submit .wpcf7-spinner {
	position: absolute;
	margin: 72px 0 0;
}
.contact-form-wrap .wpcf7-not-valid-tip {
	margin-top: 8px;
	color: var(--red);
	font-size: 13px;
	font-weight: 500;
}
.contact-form-wrap .wpcf7-response-output {
	width: calc(100% - 80px);
	max-width: 680px;
	margin: 30px auto 0 !important;
	padding: 14px 18px !important;
	font-size: 14px;
	line-height: 1.7;
	box-sizing: border-box;
}
.contact-form-box br {
	display: none;
}
@media (max-width: 767px) {
	.contact-form-wrap {
		max-width: none;
	}
	.contact-form-message {
		width: auto;
		max-width: none;
		margin: 0;
		padding: 34px 22px 36px;
	}
	.contact-form-message p {
		font-size: 15px;
		line-height: 1.9;
	}
	.contact-form-box {
		padding: 40px 20px 54px;
		box-sizing: border-box;
	}
	.contact-form-item {
		width: 100%;
		max-width: none;
		margin-bottom: 39px;
	}
	.contact-form-item--radio {
		margin-bottom: 67px;
	}
	.contact-form-item--textarea {
		margin-bottom: 29px;
	}
	.contact-form-label {
		gap: 8px;
		margin-bottom: 11px;
		font-size: 19px;
		line-height: 1.5;
	}
	.form-badge {
		min-width: 45px;
		height: 23px;
		padding: 0 9px;
		font-size: 10px;
	}
	.contact-form-input input[type="text"],
	.contact-form-input input[type="email"],
	.contact-form-input input[type="tel"] {
		height: 49px;
		padding: 8px 12px;
		font-size: 16px;
	}
	.contact-form-description {
		margin: 0 0 22px;
		font-size: 15px;
		line-height: 2;
	}
	.contact-form-radio {
		padding-left: 20px;
	}
	.contact-form-radio .wpcf7-form-control {
		gap: 12px;
	}
	.contact-form-radio .wpcf7-list-item-label {
		font-size: 16px;
	}
	.contact-form-radio .wpcf7-list-item-label::before {
		width: 17px;
		height: 17px;
	}
	.contact-form-input textarea {
		height: 188px;
		padding: 12px;
		font-size: 16px;
	}
	.contact-form-recaptcha {
		width: 100%;
		max-width: none;
		margin-bottom: 39px;
	}
	.contact-form-recaptcha p {
		font-size: 13px;
		line-height: 1.8;
		text-align: left;
	}
	.contact-form-submit {
		width: 100%;
		max-width: none;
	}
	.contact-form-submit .wpcf7-submit {
		height: 54px;
		font-size: 16px;
	}
	.contact-form-wrap .wpcf7-response-output {
		width: 100%;
		margin-top: 25px !important;
	}
}


/* =====================================
   会社沿革
===================================== */
.company-history {
	--history-gray: #f1f1f1;
	--history-line: #e7a4a8;
	padding: 50px 20px 80px;
	background-color: #fff;
	color: #222;
}
@media (min-width: 768px) {
    .company-history {
        max-width: 720px;
        --bs-gutter-x: 1.5rem;
	    --bs-gutter-y: 0;
	    width: 100%;
	    padding-right: calc(var(--bs-gutter-x) * .5);
	    padding-left: calc(var(--bs-gutter-x) * .5);
	    margin-right: auto;
	    margin-left: auto;
    }
}
@media (min-width: 992px) {
    .company-history {
        max-width: 960px;
    }
}
@media (min-width: 1200px) {
    .company-history {
        max-width: 1140px;
    }
}
@media (min-width: 1400px) {
    .company-history {
        max-width: 1320px;
    }
}

.company-history__inner {
	width: 100%;
	margin: 0 auto;
	padding: 54px 110px 70px;
	border: 1px solid var(--red);
	box-sizing: border-box;
}
.history-nav {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
	margin: 0 0 70px;
}
.history-nav a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 15px 10px 30px;
	background-color: var(--lightred);
	font-size: 18px;
	font-weight: normal;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	box-sizing: border-box;
	transition:
		background-color 0.25s ease,
		color 0.25s ease;
}
.history-nav a::after {
	content: "▼";
	position: absolute;
	left: 50%;
	bottom: 14px;
	transform: translateX(-50%);
	font-size: 9px;
	line-height: 1;
	color: currentColor;
}
.history-nav a:hover {
	color: var(--red);
}
.history-timeline {
	position: relative;
	padding-bottom: 64px;
}
.history-timeline::before {
	content: "";
	position: absolute;
	left: 56px;
	top: 0;
	bottom: 0;
	width: 1px;
	background-color: var(--history-line);
}
.history-period {
	position: relative;
	margin: 0;
	padding: 0;
	scroll-margin-top: 100px;
}
.history-year {
	position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 124px;
    height: 40px;
    margin: 0 0 34px;
    border-radius: 999px;
    background-color: var(--red);
    color: #fff;
    font-family: "Roboto", sans-serif;
    font-size: 22px;
    font-style: italic;
    font-weight: 700;
    line-height: 1;
}
.history-row {
	position: relative;
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	align-items: center;
	margin-bottom: 20px;
}
.history-row + .history-period,
.history-period + .history-period {
	margin-top: 26px;
}
.history-row__line {
	position: relative;
	align-self: stretch;
	min-height: 100%;
}
.history-row__line::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 56px;
	right: -1px;
	height: 1px;
	background-color: var(--history-line);
	transform: translateY(-50%);
}
.history-row__dot {
	position: absolute;
	z-index: 2;
	top: 50%;
	left: 56px;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background-color: var(--red);
	transform: translate(-50%, -50%);
}
.history-card {
	position: relative;
	z-index: 2;
	min-height: 58px;
	padding: 18px 26px;
	border-radius: 8px;
	background-color: var(--history-gray);
	box-sizing: border-box;
}
.history-card__text,
.history-card__description {
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
}

.history-card__date {
	display: inline-block;
	margin-right: 18px;
	color: var(--red);
	font-size: 18px;
	font-weight: normal;
	line-height: 1.6;
}
@media (min-width: 768px) {
	.history-card__text {
		display: flex;
		align-items: center;
		gap: 20px;
	}
	.history-card__date {
		flex: 0 0 120px;
		margin: 0;
	}
	.history-card__content {
		flex: 1;
	}
}
.history-card--photo {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	align-items: center;
	gap: 24px;
	min-height: 170px;
	padding: 20px 26px;
}
.history-card__image {
	overflow: hidden;
	width: 100%;
	aspect-ratio: 4 / 3;
	background-color: #ddd;
}
.history-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.history-card__body {
	min-width: 0;
}
.history-card__body .history-card__date {
	display: block;
	margin: 0 0 7px;
}
.history-card__award {
	display: inline-block;
	margin: 10px 0 0;
	padding: 4px 10px;
	background-color: var(--red);
	color: #fff;
	font-size: 15px;
	font-weight: normal;
	line-height: 1.5;
}
.history-timeline__end {
	position: absolute;
	left: 56px;
	bottom: -5px;
	width: 10px;
	height: 10px;
	border: 1px solid var(--red);
	border-radius: 50%;
	background-color: #fff;
	transform: translateX(-50%);
	box-sizing: border-box;
}
@media (max-width: 991px) {
	.company-history__inner {
		padding-right: 45px;
		padding-left: 45px;
	}
	.history-card--photo {
		grid-template-columns: 180px minmax(0, 1fr);
	}
}
@media (max-width: 767px) {
	.company-history {
		padding: 24px 0 40px;
	}
	.company-history__inner {
		max-width: none;
		padding: 64px 14px 50px 8px;
		border-right: 0;
		border-left: 0;
	}
	.history-nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		margin-bottom: 38px;
		padding-left: 13px;
	}
	.history-nav a {
		min-height: 48px;
		padding: 14px 6px 24px;
		font-size: 18px;
		font-weight: normal;
	}
	.history-timeline::before {
		left: 13px;
	}
	.history-year {
		width: 124px;
		height: 40px;
		margin: 0 0 20px 26px;
		font-size: 22px;
		font-family: "Roboto", sans-serif;
	}
	.history-row {
		grid-template-columns: 28px minmax(0, 1fr);
		margin-bottom: 20px;
	}
	.history-row + .history-period,
	.history-period + .history-period {
		margin-top: 25px;
	}
	.history-row__line::after {
		left: 13px;
		right: -1px;
	}
	.history-row__dot {
		left: 13px;
		width: 7px;
		height: 7px;
	}
	.history-card {
		min-height: 0;
		padding: 15px;
		border-radius: 10px;
	}
	.history-card__text,
	.history-card__description {
		font-size: 15px;
		line-height: 1.65;
	}
	.history-card__date {
		display: block;
		margin: 0 0 3px;
		font-size: 18px;
		font-weight: normal;
	}
	.history-card--photo {
		display: flex;
		flex-direction: column-reverse;
		align-items: stretch;
		gap: 8px;
		min-height: 0;
		padding: 12px 10px 10px;
	}
	.history-card__image {
		aspect-ratio: 4 / 3;
	}
	.history-card__body .history-card__date {
		margin-bottom: 3px;
	}
	.history-card__award {
		margin-top: 8px;
        margin-bottom: 10px!important;
        padding: 3px 6px;
        font-size: 15px;
        font-weight: normal;
	}
	.history-timeline__end {
		left: 13px;
		width: 8px;
		height: 8px;
	}
}

.privacy-list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.privacy-list li {
	position: relative;
	padding-left: 1.2em;	
	line-height: 1.8;
	margin-top: 4px;
}
.privacy-list li::before {
	content: "・";
	position: absolute;
	left: 0;
	top: 0;
}
.btn-googleriyoukiyaku {
	color: #2903fc;
	border-bottom: 1px solid #2903fc;
}
.btn-googleriyoukiyaku:hover {
	color: var(--red);
	border-bottom: 1px solid #2903fc;
}
.plavo-kakomi {
	border: 1px solid #333;
}



.single-header {
	padding: 80px 24px 76px;
	border-bottom: 1px solid #999;
}
.single-header__inner {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
}
.single-header__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px 18px;
	margin-bottom: 25px;
}
.single-header__date {
	color: var(--red);
	font-family: "Roboto", sans-serif;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .08em;
	line-height: 1;
}
.single-header__categories {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}
.single-header__category {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 27px;
	padding: 5px 15px;
	border: 1px solid var(--red);
	border-radius: 100px;
	background-color: #fff;
	color: var(--red);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	transition: background-color .25s ease, color .25s ease;
}
.single-header__category:hover {
	background-color: var(--red);
	color: #fff;
}
.single-header__title {
	position: relative;
	margin: 0;
	padding-left: 25px;
	color: var(--single-dark);
	font-size: clamp(24px, 3vw, 36px);
	letter-spacing: .04em;
	line-height: 1.6;
}
.single-header__title::before {
	content: "";
	position: absolute;
	top: .22em;
	bottom: .22em;
	left: 0;
	width: 5px;
	background-color: var(--red);
}
.single-content-area {
	padding: 0px;
}
.single-content-area__inner {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
}
.single-content-main {
	min-width: 0;
}
.single-thumbnail {
	overflow: hidden;
	width: 100%;
	margin: 0 0 65px;
	background-color: #eee;
}
.single-thumbnail img {
	display: block;
	width: 100%;
	height: auto;
}
.single-content {
	color: #333;
	font-size: 16px;
	line-height: 2;
}
.single-content > *:first-child {
	margin-top: 0;
}
.single-content > *:last-child {
	margin-bottom: 0;
}
.single-content p {
	margin: 0 0 2em;
}
.single-content h2 {
	position: relative;
	margin: 75px 0 35px;
	padding: 20px 25px 20px 30px;
	border-left: 5px solid var(--red);
	background-color: var(--single-light-gray);
	color: var(--single-dark);
	font-size: 27px;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.6;
}
.single-content h3 {
	position: relative;
	margin: 60px 0 28px;
	padding: 0 0 15px 20px;
	border-bottom: 1px solid var(--single-border);
	color: var(--single-dark);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.6;
}
.single-content h3::before {
	content: "";
	position: absolute;
	top: .25em;
	bottom: calc(.25em + 15px);
	left: 0;
	width: 4px;
	background-color: var(--red);
}
.single-content h4 {
	margin: 45px 0 20px;
	color: var(--single-dark);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.7;
}
.single-content a {
	color: var(--red);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}
.single-content a:hover {
	text-decoration: none;
}
.single-content figure {
	margin: 50px 0;
}
.single-content img {
	max-width: 100%;
	height: auto;
}
.single-content figcaption {
	margin-top: 10px;
	color: var(--single-gray);
	font-size: 12px;
	line-height: 1.7;
	text-align: center;
}
.single-content ul,
.single-content ol {
	margin: 30px 0;
	padding: 28px 35px 28px 55px;
	background-color: var(--single-light-gray);
}
.single-content li {
	margin-bottom: 10px;
	padding-left: 5px;
}
.single-content li:last-child {
	margin-bottom: 0;
}
.single-content ul li::marker {
	color: var(--red);
}
.single-content blockquote {
	position: relative;
	margin: 45px 0;
	padding: 30px 35px 30px 55px;
	border-left: 4px solid var(--red);
	background-color: var(--single-pale-red);
	color: #444;
}
.single-content blockquote::before {
	content: "“";
	position: absolute;
	top: 5px;
	left: 17px;
	color: rgba(210, 13, 22, .25);
	font-family: Georgia, serif;
	font-size: 60px;
	line-height: 1;
}
.single-content blockquote p:last-child {
	margin-bottom: 0;
}
.single-content table {
	width: 100%;
	margin: 45px 0;
	border-collapse: collapse;
	border-spacing: 0;
}
.single-content th,
.single-content td {
	padding: 16px 18px;
	border: 1px solid var(--single-border);
	font-size: 14px;
	line-height: 1.7;
	text-align: left;
	vertical-align: top;
}
.single-content th {
	width: 27%;
	background-color: var(--single-light-gray);
	font-weight: 700;
}
.single-page-links {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 50px;
	padding-top: 30px;
	border-top: 1px solid var(--single-border);
}
.single-sidebar {
	min-width: 0;
}
.single-sidebar__box {
	position: sticky;
	top: 120px;
}
.single-sidebar__title {
	padding-bottom: 15px;
	border-bottom: 2px solid var(--red);
}
.single-sidebar__title-en {
	display: block;
	color: var(--red);
	font-family: "Roboto", sans-serif;
	font-size: 20px;
	letter-spacing: .08em;
	line-height: 1.3;
}
.single-sidebar__title-ja {
	display: block;
	margin-top: 5px;
	color: #555;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.5;
}
.single-recent-list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.single-recent-list__item {
	margin: 0;
	padding: 20px 0;
	border-bottom: 1px dotted #999;
}
.single-recent-list li.single-recent-list__item:last-child {
	border-bottom: 0;
}
.single-recent-list__link {
	display: grid;
	grid-template-columns: 95px minmax(0, 1fr);
	gap: 15px;
	padding: 18px 0;
	color: #222;
	text-decoration: none;
	transition: opacity .25s ease;
}
.single-recent-list__link:hover {
	opacity: .7;
}
.single-recent-list__image {
	overflow: hidden;
	width: 95px;
	aspect-ratio: 4 / 3;
	background-color: #eee;
}
.single-recent-list__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease;
}
.single-recent-list__link:hover .single-recent-list__image img {
	transform: scale(1.05);
}
.single-recent-list__noimage {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #999;
	font-family: "Roboto", sans-serif;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .08em;
}
.single-recent-list__body {
	min-width: 0;
}
.single-recent-list__date {
	display: block;
	margin-bottom: 7px;
	color: var(--red);
	font-family: "Roboto", sans-serif;
	font-size: 12px;
	letter-spacing: .06em;
	line-height: 1;
}
.single-recent-list__title {
	display: -webkit-box;
	overflow: hidden;
	margin: 0;
	color: #222;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.65;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}
.single-recent-list__link:hover .single-recent-list__title {
	color: var(--red);
}
.single-pagination {
	padding: 70px 24px;
	background-color: var(--whitegray);
}
.single-pagination__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: 40px;
	width: 100%;
	max-width: 1040px;
	margin: 0 auto;
}
.single-pagination__item {
	min-width: 0;
}
.single-pagination__item--next {
	text-align: right;
}
.single-pagination__link {
	display: inline-flex;
	flex-direction: column;
	gap: 12px;
	max-width: 100%;
	text-decoration: none;
}
.single-pagination__item--next .single-pagination__link {
	align-items: flex-end;
}
.single-pagination__direction {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--red);
	font-family: "Roboto", sans-serif;
	font-size: 13px;
	letter-spacing: .14em;
	line-height: 1;
}
.single-pagination__title {
	display: block;
	overflow: hidden;
	max-width: 220px;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.7;
	white-space: nowrap;
	text-overflow: ellipsis;
}
.single-pagination__link:hover .single-pagination__title {
	color: var(--red);
}
.single-pagination__arrow {
	display: block;
	width: 25px;
	height: 7px;
	border-bottom: 1px solid currentColor;
}
.single-pagination__arrow--prev {
	border-left: 1px solid currentColor;
	transform: skewX(-45deg);
}
.single-pagination__arrow--next {
	border-right: 1px solid currentColor;
	transform: skewX(45deg);
}
.single-back-button {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 130px;
	height: 100px;
	border: 1px solid var(--red);
	background-color: #fff;
	color: var(--red);
	text-decoration: none;
	transition: background-color .25s ease, color .25s ease;
}
.single-back-button:hover {
	background-color: var(--red);
	color: #fff;
}
.single-back-button__icon {
	display: grid;
	grid-template-columns: repeat(2, 6px);
	grid-template-rows: repeat(2, 6px);
	gap: 4px;
}
.single-back-button__icon span {
	display: block;
	width: 6px;
	height: 6px;
	background-color: currentColor;
}
.single-back-button__text {
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}
@media (max-width: 991px) {
	.single-header {
		padding-top: 65px;
		padding-bottom: 62px;
	}
	.single-content-area {
		padding-top: 55px;
		padding-bottom: 80px;
	}
	/*.single-content-layout {
		grid-template-columns: minmax(0, 1fr) 260px;
		gap: 40px;
	}*/
	.single-thumbnail {
		margin-bottom: 50px;
	}
	.single-recent-list__link {
		grid-template-columns: 80px minmax(0, 1fr);
		gap: 12px;
	}
	.single-recent-list__image {
		width: 80px;
	}
	.single-pagination__inner {
		gap: 25px;
	}
}
@media (max-width: 767px) {
	.single-header {
		padding: 50px 20px 20px;
	}
	.single-header__meta {
		gap: 10px 12px;
		margin-bottom: 18px;
	}
	.single-header__date {
		font-size: 13px;
	}
	.single-header__category {
		min-height: 24px;
		padding: 4px 11px;
		font-size: 10px;
	}
	.single-header__title {
		padding-left: 18px;
		font-size: 20px;
		line-height: 1.55;
	}
	.single-header__title::before {
		width: 4px;
	}
	.single-content-area {
		padding: 30px 20px 0px;
	}
	.single-content-layout {
		display: block;
	}
	.single-thumbnail {
		margin-bottom: 38px;
	}
	.single-content {
		font-size: 15px;
		line-height: 1.9;
	}
	.single-content p {
		margin-bottom: 1.8em;
	}
	.single-content h2 {
		margin: 55px 0 27px;
		padding: 16px 18px 16px 20px;
		border-left-width: 4px;
		font-size: 21px;
	}
	.single-content h3 {
		margin: 45px 0 24px;
		padding: 0 0 12px 15px;
		font-size: 19px;
	}
	.single-content h3::before {
		bottom: calc(.25em + 12px);
		width: 3px;
	}
	.single-content h4 {
		margin-top: 35px;
		font-size: 17px;
	}
	.single-content figure {
		margin: 35px 0;
	}
	.single-content ul,
	.single-content ol {
		margin: 25px 0;
		padding: 22px 18px 22px 40px;
	}
	.single-content blockquote {
		margin: 35px 0;
		padding: 25px 20px 25px 38px;
	}
	.single-content blockquote::before {
		left: 10px;
		font-size: 46px;
	}
	.single-content table {
		display: block;
		overflow-x: auto;
		margin: 35px 0;
		white-space: nowrap;
	}
	.single-content th,
	.single-content td {
		padding: 12px 14px;
		font-size: 13px;
	}
	.single-sidebar {
		margin-top: 30px;
		padding-top: 45px;
		padding-left: 20px;
		padding-right: 20px;
		/*border-top: 1px solid #999;*/
		background-color: var(--whitegray);
	}
	.single-sidebar__box {
		position: static;
	}
	.single-sidebar__title-en {
		font-size: 19px;
	}
	.single-recent-list__link {
		grid-template-columns: 105px minmax(0, 1fr);
		gap: 15px;
		padding: 16px 0;
	}
	.single-recent-list__image {
		width: 105px;
	}
	.single-recent-list__title {
		font-size: 14px;
		font-weight: normal;
		-webkit-line-clamp: 3;
	}
	.single-pagination {
		padding: 45px 20px;
	}
	.single-pagination__inner {
		grid-template-columns: 1fr 1fr;
		gap: 35px 20px;
	}
	.single-pagination__back {
		grid-column: 1 / 3;
		grid-row: 1;
		display: flex;
		justify-content: center;
	}
	.single-pagination__item--prev {
		grid-column: 1;
		grid-row: 2;
	}
	.single-pagination__item--next {
		grid-column: 2;
		grid-row: 2;
	}
	.single-back-button {
		width: 120px;
		height: 85px;
	}
	.single-pagination__title {
		font-size: 11px;
	}
	.single-pagination__arrow {
		width: 18px;
	}
}
@media (min-width: 768px) {
	.single-content-area {
		padding-left: 40px;
        padding-right: 40px;
	}
	.single-header {
		padding-left: 40px;
        padding-right: 40px;
        padding-bottom: 40px;
	}
	.single-sidebar {
		background-color: var(--whitegray);
		padding: 40px 40px 0;
	}
}
@media (min-width: 992px) {
	.single-content-layout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 360px;
		align-items: start;
		gap: 40px;
        padding: 40px;
	}
	.single-header {
    	padding: 80px 40px 40px;
    }
    .single-sidebar {
    	padding: 30px;
    }
    .single-content-area {
    	padding-left: 0px;
        padding-right: 0px;
    }
}
@media (min-width: 1200px) {
	.single-content-layout {
		padding-left: 0px;
        padding-right: 0px;
        padding-bottom: 100px;
        padding-top: 60px;
        gap: 60px;
	}
}

.fv-movie {
	position: relative;
	width: 100%;
	height: 100vh;
	overflow: hidden;
}
@media (min-width: 992px) {
	.fv-movie {
		border-radius: 0 20px 20px 0;
    	height: calc(100vh - var(--header-height));
	}
}

.fv-movie__video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.single-content-area{overflow-wrap:anywhere;word-break:break-word;}