@charset 'utf-8';

/* ============================================
   works renewal - 施工事例改修用CSS
   2026/05 追加
   既存の local_works.css は触らず、本ファイルで上書き
   ============================================ */


/* 既存の .works_list を新レイアウトと干渉しないよう無効化（必要に応じて）
   ------	------	------	------	------	------ */
.works_list_new {
	margin: 0 0 60px;
}


/* カードグリッド
   ------	------	------	------	------	------ */
.works_card_grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 60px 40px;
	padding: 0;
	width: 100%;
	list-style: none;
}


/* カード
   ------	------	------	------	------	------ */
.works_card {
	position: relative;
	float: none;
	margin: 0;
	width: 100%;
	list-style: none;
	display: flex;
	flex-direction: column;
}

.works_card a {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: #000;
	text-decoration: none;
	transition: opacity 0.4s ease;
}

.works_card a:hover {
	opacity: 0.7;
	text-decoration: none;
}


/* カード - 写真
   ------	------	------	------	------	------ */
.works_card__photo {
	position: relative;
	width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	margin-bottom: 18px;
	background: #f5f5f5;
}

.works_card__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.works_card a:hover .works_card__photo img {
	transform: scale(1.04);
}


/* カード - NEW ラベル
   ------	------	------	------	------	------ */
.works_card__new {
	position: absolute;
	top: 12px;
	left: 12px;
	display: inline-block;
	padding: 3px 10px;
	background: #54ac7e;
	color: #fff;
	font-size: 11px;
	letter-spacing: 0.1em;
	font-weight: bold;
	line-height: 1.4;
}


/* カード - サブコピー
   ------	------	------	------	------	------ */
.works_card__subtitle {
	display: block;
	font-size: 13px;
	color: #777;
	line-height: 1.5;
	margin-bottom: 6px;
	min-height: 2.4em;
}


/* カード - タイトル
   ------	------	------	------	------	------ */
.works_card__title {
	font-size: 19px;
	font-weight: bold;
	line-height: 1.4;
	color: #000;
	margin: 0 0 12px;
	letter-spacing: 0.02em;
}


/* カード - メタ情報
   ------	------	------	------	------	------ */
.works_card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	font-size: 12px;
	color: #555;
	border-top: solid 1px #e6e6e6;
	padding: 10px 0 0;
	margin: auto 0 0;
	list-style: none;
}

.works_card__meta li {
	position: relative;
	float: none;
	margin: 0;
	width: auto;
}

.works_card__meta li:not(:last-child)::after {
	content: "";
	position: absolute;
	right: -7px;
	top: 4px;
	bottom: 4px;
	width: 1px;
	background: #e6e6e6;
}



/* ============================================
   レスポンシブ
   施工事例ページのみスマホ対応（A方針）
   ============================================ */

/* タブレット（768px以下）: 2カラム */
@media screen and (max-width: 768px) {

	.works_list_new {
		margin: 0 15px 40px;
	}

	.works_card_grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 35px 15px;
		width: auto;
		padding: 0;
	}

	.works_card__photo {
		margin-bottom: 14px;
	}

	.works_card__title {
		font-size: 16px;
	}

	.works_card__subtitle {
		font-size: 12px;
		min-height: 2.4em;
	}

	.works_card__meta {
		font-size: 11px;
		gap: 4px 10px;
	}

	.works_card__meta li:not(:last-child)::after {
		right: -6px;
	}

	.works_card__new {
		top: 8px;
		left: 8px;
		padding: 2px 8px;
		font-size: 10px;
	}

}


/* スマホ（480px以下）: 1カラム */
@media screen and (max-width: 480px) {

	.works_card_grid {
		grid-template-columns: 1fr;
		gap: 40px 0;
	}

	.works_card__title {
		font-size: 18px;
	}

	.works_card__subtitle {
		font-size: 13px;
	}

	.works_card__meta {
		font-size: 12px;
	}

}




/* ==========================================================
   個別ページ（single-works.php）用 改修CSS
   2026/05 追加
   ========================================================== */


/* タイトルゾーン
   ------	------	------	------ */
.works_head {
	max-width: 1000px;
	margin: 30px auto 25px;
	padding: 0 20px;
}

.works_head__label {
	font-size: 12px;
	letter-spacing: 0.2em;
	color: #777;
	margin-bottom: 8px;
}

.works_head__title {
	font-size: 28px;
	font-weight: bold;
	letter-spacing: 0.05em;
	margin: 0 0 8px;
	line-height: 1.4;
}

.works_head__sub {
	font-size: 14px;
	color: #555;
	margin-bottom: 10px;
	line-height: 1.6;
}

.works_head__cat {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
}

.works_head__cat li {
	font-size: 11px;
	color: #555;
	padding: 2px 10px;
	border: solid 1px #e6e6e6;
	background: #fff;
}


/* ヒーロー写真
   ------	------	------	------ */
.works_hero {
	margin: 0 0 40px;
	width: 100%;
}

.works_hero__img {
	width: 100%;
	aspect-ratio: 16 / 7;
	overflow: hidden;
	background: #f5f5f5;
}

.works_hero__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}


/* 紹介文（2カラム：左メタ + 右本文）
   ------	------	------	------ */
.works_intro {
	max-width: 1000px;
	margin: 0 auto 50px;
	padding: 0 20px;
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 40px;
}

.works_intro__side {
	font-size: 13px;
	color: #555;
}

.works_intro__side dl {
	margin: 0 0 14px;
}

.works_intro__side dt {
	font-size: 11px;
	letter-spacing: 0.1em;
	color: #888;
	margin-bottom: 4px;
}

.works_intro__side dd {
	color: #000;
	font-size: 14px;
	margin: 0;
}

.works_intro__body p {
	font-size: 14px;
	line-height: 1.9;
	color: #000;
	margin: 0 0 1.5em;
}


/* ★PC用ギャラリー（メイン+サムネ切替式）
   ------	------	------	------ */
.works_gallery {
	max-width: 1000px;
	margin: 0 auto 60px;
	padding: 0 20px;
}

.works_gallery__main {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #f5f5f5;
	margin-bottom: 15px;
}

.works_gallery__main img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	background: #f5f5f5;
	transition: opacity 0.3s ease;
}

/* 左右矢印ボタン */
.works_gallery__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	background: rgba(255, 255, 255, 0.9);
	border: solid 1px #e6e6e6;
	border-radius: 50%;
	cursor: pointer;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.2s ease, border-color 0.2s ease;
	font-size: 0;
}

.works_gallery__arrow:hover {
	background: #fff;
	border-color: #54ac7e;
}

.works_gallery__arrow::before {
	content: "";
	display: block;
	width: 10px;
	height: 10px;
	border-top: solid 2px #555;
	border-right: solid 2px #555;
}

.works_gallery__arrow:hover::before {
	border-color: #54ac7e;
}

.works_gallery__arrow--prev {
	left: 15px;
}

.works_gallery__arrow--prev::before {
	transform: rotate(-135deg);
	margin-left: 3px;
}

.works_gallery__arrow--next {
	right: 15px;
}

.works_gallery__arrow--next::before {
	transform: rotate(45deg);
	margin-right: 3px;
}

.works_gallery__nav {
	display: flex;
	gap: 12px;
	align-items: center;
}

.works_gallery__thumbs {
	display: flex;
	gap: 8px;
	flex: 1;
	overflow-x: auto;
	margin: 0;
	padding: 0;
	list-style: none;
}

.works_gallery__thumbs li {
	width: 80px;
	height: 60px;
	flex-shrink: 0;
	overflow: hidden;
	cursor: pointer;
	border: solid 2px transparent;
	transition: border-color 0.2s ease;
}

.works_gallery__thumbs li:hover {
	border-color: #cccccc;
}

.works_gallery__thumbs li.active {
	border-color: #54ac7e;
}

.works_gallery__thumbs li img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.works_gallery__counter {
	font-size: 13px;
	color: #555;
	white-space: nowrap;
	padding-left: 10px;
	border-left: solid 1px #e6e6e6;
}

.works_gallery__counter strong {
	font-size: 16px;
	color: #000;
	margin-right: 4px;
}

/* スマホ用ギャラリー（PC時は非表示） */
.works_gallery_sp {
	display: none;
}


/* お客様の声
   ------	------	------	------ */
.works_voice {
	max-width: 1000px;
	margin: 0 auto 60px;
	padding: 40px 20px;
	background: #f9f7f3;
}

.works_voice h2 {
	font-size: 18px;
	font-weight: bold;
	margin: 0 0 25px;
	text-align: center;
	letter-spacing: 0.1em;
}

.works_voice__item {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 25px;
	margin-bottom: 25px;
	padding-bottom: 25px;
	border-bottom: solid 1px #e6e6e6;
}

.works_voice__item:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

.works_voice__fig img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.works_voice__txt h3 {
	font-size: 15px;
	font-weight: bold;
	margin: 0 0 10px;
}

.works_voice__txt {
	font-size: 14px;
	line-height: 1.9;
}


/* 設計のポイント
   ------	------	------	------ */
.works_point {
	max-width: 1000px;
	margin: 0 auto 60px;
	padding: 0 20px;
}

.works_point h2 {
	font-size: 18px;
	font-weight: bold;
	margin: 0 0 25px;
	letter-spacing: 0.1em;
	padding-bottom: 12px;
	border-bottom: solid 1px #e6e6e6;
}

.works_point__list {
	display: grid;
	gap: 25px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.works_point__item {
	display: grid;
	grid-template-columns: 40px 1fr;
	gap: 15px;
	align-items: start;
}

.works_point__num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: #54ac7e;
	color: #fff;
	font-size: 14px;
	font-weight: bold;
	border-radius: 100%;
	margin-top: 3px;
}

.works_point__content h3 {
	font-size: 15px;
	font-weight: bold;
	margin: 0 0 10px;
}

.works_point__content figure {
	margin: 0 0 10px;
}

.works_point__content figure img {
	max-width: 100%;
}

.works_point__text {
	font-size: 14px;
	line-height: 1.8;
}


/* その他の最新実例
   ------	------	------	------ */
.works_related {
	max-width: 1000px;
	margin: 0 auto 50px;
	padding: 0 20px;
}

.works_related h2 {
	font-size: 16px;
	font-weight: bold;
	margin: 0 0 25px;
	padding-bottom: 8px;
	border-bottom: solid 1px #e6e6e6;
}

.works_related__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 25px;
}

.works_related__card a {
	display: block;
	color: #000;
	text-decoration: none;
	transition: opacity 0.4s ease;
}

.works_related__card a:hover {
	opacity: 0.7;
}

.works_related__card__photo {
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #f5f5f5;
	margin-bottom: 12px;
}

.works_related__card__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.works_related__card__title {
	font-size: 16px;
	font-weight: bold;
	margin-bottom: 4px;
}

.works_related__card__area {
	font-size: 12px;
	color: #777;
	margin-bottom: 6px;
}

.works_related__card__sub {
	font-size: 12px;
	color: #555;
	line-height: 1.5;
}


/* ページ送り
   ------	------	------	------ */
.works_pager {
	max-width: 1000px;
	margin: 0 auto 80px;
	padding: 30px 20px 0;
	border-top: solid 1px #e6e6e6;
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 14px;
	gap: 15px;
}

.works_pager__prev,
.works_pager__next {
	flex: 1;
}

.works_pager__next {
	text-align: right;
}

.works_pager__back {
	font-weight: bold;
}

.works_pager a {
	color: #000;
	text-decoration: none;
}

.works_pager a:hover {
	color: #54ac7e;
}


/* ==========================================================
   個別ページ レスポンシブ
   ========================================================== */
@media screen and (max-width: 768px) {

	.works_head {
		padding: 0 15px;
		margin: 20px auto 18px;
	}

	.works_head__title {
		font-size: 22px;
	}

	.works_hero {
		margin: 0 0 25px;
	}

	.works_hero__img {
		aspect-ratio: 4 / 3;
	}

	.works_intro {
		grid-template-columns: 1fr;
		gap: 20px;
		padding: 0 15px;
		margin-bottom: 35px;
	}

	/* ★PCギャラリー非表示・スマホギャラリー表示 */
	.works_gallery {
		display: none;
	}

	.works_gallery_sp {
		display: block;
		margin: 0 0 40px;
		padding: 0 8px;
	}

	.works_gallery_sp__item {
		margin-bottom: 8px;
	}

	.works_gallery_sp__item img {
		width: 100%;
		display: block;
	}

	.works_voice {
		padding: 30px 15px;
		margin: 0 15px 40px;
	}

	.works_voice__item {
		grid-template-columns: 1fr;
		gap: 15px;
	}

	.works_point {
		padding: 0 15px;
	}

	.works_related {
		padding: 0 15px;
	}

	.works_related__grid {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.works_pager {
		padding: 25px 15px 0;
		font-size: 13px;
	}

}
