@charset "UTF-8";

/* ==========================================================================
   1. Reset & Base
   ========================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

::selection {
	background-color: #79887C;
	color: #fff;
}

html {
	scroll-behavior: smooth;
}

body {
	background-color: #FCFCFB;
	color: #2A2D2B;
	font-family: 'Noto Sans JP', sans-serif;
	overflow-x: hidden;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

a {
	text-decoration: none;
	color: inherit;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

ul,
ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

::-webkit-scrollbar {
	width: 8px;
}

::-webkit-scrollbar-track {
	background: #F3F5F4;
}

::-webkit-scrollbar-thumb {
	background: #79887C;
	border-radius: 4px;
}

/* ==========================================================================
   2. Utilities
   ========================================================================== */
.text-vertical {
	writing-mode: vertical-rl;
	text-orientation: mixed;
}

.u-hidden-sp {
	display: block;
}

.u-delay-100 {
	transition-delay: 0.1s !important;
}

.u-delay-200 {
	transition-delay: 0.2s !important;
}

/* PC: 電話番号リンクはタップ不可だがテキスト選択・コピーは可能にする
   （pointer-events: none はキーボードフォーカスや支援技術にも影響するため使わない） */
@media screen and (min-width: 769px) {
	a[href^="tel:"] {
		cursor: text;
	}
}

/* ==========================================================================
   3. Layout
   ========================================================================== */
.l-container {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 3rem;
	position: relative;
	z-index: 10;
}

.l-container--md {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 3rem;
	position: relative;
	z-index: 10;
}

.l-container--lg {
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 3rem;
	position: relative;
	z-index: 10;
}

.l-section {
	padding: 6rem 0;
	position: relative;
	z-index: 10;
}

.l-section--gray {
	background-color: #F3F5F4;
}

.l-bg-grid {
	position: absolute;
	top: 0;
	left: 0;
	pointer-events: none;
	display: flex;
	justify-content: space-around;
	width: 100%;
	height: 100%;
	z-index: 0;
	opacity: 0.4;
}

.l-bg-grid__line {
	width: 1px;
	height: 100%;
	background-color: #E5E7EB;
}

.l-page-top {
	background-color: #F3F5F4;
	position: relative;
	padding-bottom: 20px;
}

.l-page-top::before {
	content: '';
	position: absolute;
	bottom: -40px;
	left: 50%;
	transform: translateX(-50%);
	width: 1px;
	height: 80px;
	background-color: rgba(121, 136, 124, 0.2);
	z-index: 10;
}

.l-page-top::after {
	content: '';
	position: absolute;
	bottom: -40px;
	left: 50%;
	width: 1px;
	height: 80px;
	background-color: #79887C;
	z-index: 11;
	transform-origin: top;
	animation: scrollLine 2.5s ease-in-out infinite;
}

/* ==========================================================================
   4. Components (共通パーツ)
   ========================================================================== */
.c-subtitle {
	color: #79887C;
	font-family: 'Montserrat', sans-serif;
	letter-spacing: 0.2em;
	font-size: 0.75rem;
	font-weight: 500;
	display: block;
	margin-bottom: 1rem;
}

.c-title {
	font-family: 'Shippori Mincho', serif;
	font-size: 2.25rem;
	color: #2A2D2B;
	line-height: 1.4;
	font-weight: 500;
}

.c-text {
	font-size: 1rem;
	line-height: 2.2;
	color: #5C635E;
	font-weight: 300;
}

.c-line {
	width: 2.5rem;
	height: 1px;
	background-color: #79887C;
	margin-bottom: 2rem;
}

.c-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 280px;
	background-color: #79887C;
	color: #fff;
	padding: 1rem 2rem;
	font-size: 0.875rem;
	letter-spacing: 0.1em;
	font-weight: 500;
	border-radius: 0.125rem;
	transition: all 0.3s ease;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
	cursor: pointer;
	width: fit-content;
}

.c-btn:hover {
	background-color: #5F6B61;
	transform: translateY(-2px);
}

.l-header__nav .c-btn {
	min-width: 240px;
	padding: 1rem 0.5rem;
}

.c-btn svg {
	font-size: 1.25rem;
	margin-right: 0.5rem;
}

.c-btn-primary {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 280px !important;
	padding: 18px 40px !important;
	background-color: #79887C !important;
	color: #fff !important;
	font-family: 'Shippori Mincho', serif !important;
	font-size: 1rem !important;
	letter-spacing: 0.05em !important;
	border-radius: 4px !important;
	transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease !important;
	text-decoration: none !important;
	border: none !important;
}

.c-btn-primary:hover {
	background-color: #5F6B61 !important;
	color: #fff !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 8px 24px rgba(121, 136, 124, 0.25) !important;
}

.c-btn-outline-light {
	background-color: transparent;
	border: 1px solid #6B7280;
	color: #fff;
	padding: 1.25rem 2.5rem;
	border-radius: 0.125rem;
	font-size: 0.875rem;
	letter-spacing: 0.2em;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	transition: all 0.3s ease;
}

.c-btn-outline-light:hover {
	background-color: #fff;
	color: #1E201F;
	border-color: #fff;
}

.c-btn-outline-light svg {
	font-size: 1.25rem;
}

.c-btn-arrow {
	position: relative;
	display: inline-flex;
	align-items: center;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.95rem;
	color: #79887C;
	font-weight: 500;
	letter-spacing: 0.05em;
}

.c-btn-arrow::after {
	content: '→';
	margin-left: 12px;
	transition: transform 0.3s ease;
}

.c-btn-circle-arrow {
	display: inline-flex;
	align-items: center;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.95rem;
	color: #79887C;
	font-weight: 500;
	letter-spacing: 0.05em;
	transition: color 0.3s ease;
}

.c-btn-circle-arrow svg {
	font-size: 36px !important;
	margin-left: 12px;
	border-radius: 50%;
	background-color: #79887C !important;
	color: #fff !important;
	padding: 8px !important;
	fill: none !important;
	stroke: currentColor !important;
	stroke-width: 1.5 !important;
	transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
	box-sizing: border-box !important;
}

.c-btn-circle-arrow svg path {
	fill: none !important;
	stroke: currentColor !important;
	stroke-width: 1.5 !important;
}

.c-btn-circle-arrow:hover {
	color: #5F6B61;
}

.c-btn-circle-arrow:hover svg {
	background-color: #5F6B61 !important;
	transform: translateX(8px);
	box-shadow: 0 8px 16px rgba(121, 136, 124, 0.2);
}

.c-btn-text {
	display: inline-flex;
	align-items: center;
	font-family: 'Montserrat', sans-serif;
	font-size: 0.85rem;
	color: #2A2D2B;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	text-decoration: none;
	transition: color 0.3s ease;
	margin-top: 8px;
}

.c-btn-text::after {
	content: '→';
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: #79887C;
	border: 1px solid #79887C;
	margin-left: 20px;
	color: #fff;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 1.2rem;
	transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.c-btn-text:hover {
	color: #79887C;
}

.c-btn-text:hover::after {
	background-color: #5F6B61;
	border-color: #5F6B61;
	transform: translateX(8px);
	box-shadow: 0 8px 16px rgba(121, 136, 124, 0.3);
}

.c-floating-btn {
	position: fixed;
	bottom: 2rem;
	right: 2rem;
	z-index: 100;
	background-color: #79887C;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem 2rem;
	border-radius: 0.125rem;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
	border: 1px solid #79887C;
	transition: all 0.7s ease-out;
	opacity: 0;
	transform: translateY(3rem);
	pointer-events: none;
}

.c-floating-btn.is-visible {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.c-floating-btn:hover {
	background-color: #5F6B61;
	transform: scale(1.05);
}

.c-floating-btn span {
	display: block;
	font-size: 0.875rem;
	letter-spacing: 0.1em;
	font-weight: 500;
	margin-left: 0.75rem;
}

.c-floating-btn svg {
	font-size: 1.25rem;
	margin-right: 0;
}

h2.c-sec-title {
	text-align: center !important;
	margin-top: 0 !important;
	margin-bottom: 52px !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	line-height: 1.4 !important;
}

h2.c-sec-title .c-sec-title__en {
	display: block !important;
	font-family: 'Montserrat', sans-serif !important;
	font-size: 0.875rem !important;
	color: #79887C !important;
	letter-spacing: 0.15em !important;
	margin-bottom: 12px !important;
	border: none !important;
	font-weight: 500 !important;
}

h2.c-sec-title .c-sec-title__ja {
	display: block !important;
	font-family: 'Shippori Mincho', serif !important;
	font-size: 1.875rem !important;
	color: #2A2D2B !important;
	letter-spacing: 0.05em !important;
	border: none !important;
	font-weight: 500 !important;
}

.c-breadcrumb {
	padding: 24px 40px 16px;
	max-width: 1000px;
	margin: 0 auto;
}

.c-breadcrumb ul {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	font-size: 0.75rem;
	color: #5C635E;
}

.c-breadcrumb li {
	display: flex;
	align-items: center;
}

.c-breadcrumb li:not(:last-child)::after {
	content: '>';
	margin-left: 12px;
	font-family: 'Montserrat', sans-serif;
	opacity: 0.5;
}

.c-breadcrumb a:hover {
	color: #79887C;
}

.c-page-header {
	padding: 40px 0 80px;
	text-align: center;
}

.c-page-header__title {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}

.c-page-header__en {
	font-family: 'Montserrat', sans-serif;
	font-size: 2.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	color: #79887C;
}

.c-page-header__ja {
	font-family: 'Shippori Mincho', serif;
	font-size: 1rem;
	color: #5C635E;
	letter-spacing: 0.05em;
	display: flex;
	align-items: center;
	gap: 16px;
}

.c-page-header__ja::before,
.c-page-header__ja::after {
	content: '';
	display: block;
	width: 24px;
	height: 1px;
	background-color: #E5E7EB;
}



/* --- Contact Area --- */
.c-contact-area {
	background-color: #F3F5F4;
	padding: 90px 20px;
	text-align: center;
	border-top: 1px solid #E5E7EB;
}

.c-contact-area__catch {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.75rem;
	color: #2A2D2B;
	margin-bottom: 16px;
	line-height: 1.5;
}

.c-contact-area__text {
	font-size: 1rem;
	line-height: 2;
	color: #5C635E;
	margin-bottom: 48px;
}

.c-contact-area__cards {
	display: flex;
	justify-content: center;
	gap: 24px;
	max-width: 1000px;
	margin: 0 auto;
}

.c-contact-card {
	flex: 1;
	background-color: #fff;
	border: 1px solid #E5E7EB;
	border-radius: 10px;
	padding: 48px 32px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.c-contact-card:hover {
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.06);
}

.c-contact-area__microcopy {
	font-size: 0.85rem;
	color: #79887C;
	font-weight: 500;
	margin-bottom: 24px;
	display: block;
}

.c-contact-card__btn {
	width: 100%;
	max-width: 360px;
}

.c-contact-card__btn svg {
	margin-right: 8px;
	font-size: 1.25rem;
}

.c-contact-area__tel-label {
	font-size: 0.9rem;
	color: #5C635E;
	margin-bottom: 16px;
	display: block;
}

.c-contact-area__tel-num {
	font-size: 2.25rem;
	color: #2A2D2B !important;
	letter-spacing: 0.02em;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
	transition: color 0.3s ease;
}

.c-contact-area__tel-num svg {
	color: #79887C;
	font-size: 2rem;
}

.c-contact-area__tel-note {
	font-size: 0.8rem;
	color: #79887C;
}

/* ==========================================================================
   テキストリンク（外部リンクアイコン付き・ホバーで下線が消える）
   ========================================================================== */
/* リンク全体のレイアウト（横並び） */
.c-link-external {
	display: inline-flex;
	align-items: center;
	gap: 6px; /* テキストとアイコンの隙間 */
	color: inherit;
	transition: color 0.3s ease;
}

/* テキスト部分のみに下線を引く */
.c-link-external span {
	text-decoration: none;
}

/* アイコンの微調整 */
.c-icon-external {
	flex-shrink: 0;
	margin-bottom: 2px; /* 視覚的な縦位置のズレを補正 */
}

.c-link-external:hover {
	color: #2A2D2B;
}

.c-link-external:hover span {
	text-decoration: underline;
}



/* ==========================================================================
   5. Blocks
   ========================================================================== */
/* Header */
.l-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1.25rem 3rem;
	background-color: rgba(252, 252, 251, 0.9);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	z-index: 40;
	border-bottom: 1px solid #E5E7EB;
	transition: all 0.3s ease;
	height: 94px;
}

.l-header__logo-wrap {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.l-header__logo {
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	font-family: 'Montserrat', sans-serif;
	line-height: 1;
	color: #2A2D2B;
}

.l-header__sub {
	font-size: 0.75rem;
	color: #79887C;
	letter-spacing: 0.15em;
	font-weight: 500;
	margin-top: 0.375rem;
	font-family: 'Noto Sans JP', sans-serif;
}

.l-header__nav {
	display: flex;
	align-items: center;
	gap: 2rem;
	font-size: 0.875rem;
	letter-spacing: 0.1em;
	font-weight: 500;
}

.l-header__nav-inner {
	display: contents;
}

.l-header__link {
	position: relative;
	color: #2A2D2B;
	padding-bottom: 4px; /* テキストと下線の隙間 */
	transition: color 0.3s ease;
}

/* ▼ リッチな下線アニメーションの本体 ▼ */
.l-header__link::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background-color: #79887C; /* 下線の色 */
	transform: scaleX(0); /* 初期状態は幅0（見えない） */
	transform-origin: right; /* 消える時は右に向かって縮む */
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1); /* 滑らかな動き */
}

/* ▼ ホバー時 ＆ カレントページ表示時のスタイル ▼ */
.l-header__link:hover,
.l-header__link.is-current {
	color: #6A786D;
}

.l-header__link:hover::after,
.l-header__link.is-current::after {
	transform: scaleX(1); /* 下線を100%の幅に */
	transform-origin: left; /* 表示は左から右へ */
}

.c-hamburger {
	display: none;
}

.l-header__overlay {
	display: none;
}

/* Footer */
.l-footer {
	background-color: #FCFCFB;
	padding-top: 5.5rem;
	padding-bottom: 7rem;
	border-top: 1px solid #E5E7EB;
}

.l-footer__top {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	margin-bottom: 4rem;
	gap: 3rem;
}

.l-footer__logo-wrap {
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-bottom: 2rem;
}

.l-footer__logo {
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	font-family: 'Montserrat', sans-serif;
	color: #2A2D2B;
}

.l-footer__sub {
	font-size: 1.1rem;
	color: #79887C;
	letter-spacing: 0.15em;
	font-weight: 500;
	margin-top: 0.375rem;
	font-family: 'Noto Sans JP', sans-serif;
}

.l-footer__address {
	font-size: 0.85rem;
	line-height: 2;
	color: #5C635E;
	letter-spacing: 0.1em;
	font-weight: 400;
}

.l-footer__nav {
	display: flex;
	justify-content: flex-end;
	gap: 5rem;
	font-size: 0.9rem;
	letter-spacing: 0.1em;
	font-weight: 500;
}

.l-footer__nav-col {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.l-footer__link {
	position: relative;
	color: #5C635E;
	padding-bottom: 4px;
	transition: color 0.3s ease;
}

.l-footer__link::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background-color: #5C635E;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.l-footer__link:hover {
	color: #5C635E;
}

.l-footer__link:hover::after {
	transform: scaleX(1);
	transform-origin: left;
}

.l-footer__bottom {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	border-top: 1px solid #E5E7EB;
	padding-top: 2.5rem;
}

.l-footer__sns {
	display: flex;
	gap: 2rem;
	margin-bottom: 0;
	font-size: 0.85rem;
	color: #5C635E;
	letter-spacing: 0.1em;
}

.l-footer__sns a:hover {
	color: #79887C;
}

.c-icon-instagram {
	width: 24px;
	height: 24px;
	object-fit: contain;
	flex-shrink: 0;
	margin-bottom: 0px;
	margin-right: 4px;
}

.l-footer__copy {
	font-size: 10px;
	color: #9CA3AF;
	font-family: 'Montserrat', sans-serif;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

/* Hero Section */
.c-hero {
	position: relative;
	padding-top: 8rem;
	padding-bottom: 3rem;
	min-height: 90vh;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	max-width: 1400px;
	margin: 0 auto;
	padding-left: 3rem;
	padding-right: 3rem;
}

.c-hero__content {
	position: relative;
	z-index: 10;
	width: 41.666667%;
	margin-bottom: 0;
	padding-right: 2rem;
}

.c-hero__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 3.75rem;
	line-height: 1.4;
	margin-bottom: 2rem;
	letter-spacing: 0.05em;
	position: relative;
	display: inline-block;
	color: #2A2D2B;
	font-weight: 500;
}

.c-hero__title-em {
	color: #79887C;
	font-style: italic;
	position: relative;
	z-index: 10;
}

.c-hero__title-line {
	position: absolute;
	bottom: 0.5rem;
	left: 0;
	width: 100%;
	height: 0.75rem;
	background-color: rgba(121, 136, 124, 0.1);
	z-index: 0;
}

.c-hero__desc {
	font-size: 1rem;
	line-height: 2.2;
	color: #5C635E;
	font-weight: 300;
	margin-bottom: 2rem;
}

.c-hero__link {
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	cursor: pointer;
}

.c-hero__link-text {
	border: 1px solid #79887C;
	color: #79887C;
	padding: 1rem 2.5rem;
	font-size: 0.875rem;
	letter-spacing: 0.1em;
	font-weight: 500;
	border-radius: 0.125rem;
	transition: all 0.3s ease;
}

.c-hero__link:hover .c-hero__link-text {
	background-color: #79887C;
	color: #fff;
}

.c-hero__link-line {
	width: 3rem;
	height: 1px;
	background-color: #79887C;
	transition: all 0.5s ease;
	display: block;
}

.c-hero__link:hover .c-hero__link-line {
	width: 5rem;
}

.c-hero__img-wrap {
	position: relative;
	width: 50%;
}

.c-hero__img-frame {
	position: absolute;
	top: -1.5rem;
	left: -1.5rem;
	width: 100%;
	height: 100%;
	border: 1px solid rgba(121, 136, 124, 0.3);
	border-radius: 100px 0 100px 0;
	display: block;
}

.c-hero__img {
	width: 100%;
	height: 600px;
	max-height: 65vh;
	border-radius: 100px 0 100px 0;
}

.c-hero__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Scroll Down */
.c-scroll-down {
	position: absolute;
	bottom: 1rem;
	right: 2rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	z-index: 20;
}

.c-scroll-down__text {
	font-size: 10px;
	letter-spacing: 0.3em;
	font-family: 'Montserrat', sans-serif;
	writing-mode: vertical-rl;
	text-transform: uppercase;
	font-weight: 500;
	color: #79887C;
}

.c-scroll-down__line {
	width: 1px;
	height: 3rem;
	background-color: #D1D5DB;
	position: relative;
	overflow: hidden;
}

.c-scroll-down__line-inner {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #79887C;
	animation: scrollY 2s ease-in-out infinite;
}

/* Marquee */
.c-marquee-sec {
	padding: 3rem 0;
	background-color: #FCFCFB;
	overflow: hidden;
	position: relative;
	border-top: 1px solid #E5E7EB;
	border-bottom: 1px solid #E5E7EB;
}

.c-marquee-sec__mask-l,
.c-marquee-sec__mask-r {
	position: absolute;
	top: 0;
	width: 12rem;
	height: 100%;
	z-index: 20;
	pointer-events: none;
}

.c-marquee-sec__mask-l {
	left: 0;
	background: linear-gradient(to right, #FCFCFB, transparent);
}

.c-marquee-sec__mask-r {
	right: 0;
	background: linear-gradient(to left, #FCFCFB, transparent);
}

.c-marquee {
	display: flex;
	flex-wrap: nowrap;
	width: max-content;
	gap: 1.5rem;
	padding: 0 0.75rem;
	animation: marquee 100s linear infinite;
	will-change: transform;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.c-marquee__img {
	width: 360px;
	height: 220px;
	object-fit: cover;
	border-radius: 0.5rem;
	flex-shrink: 0;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

/* SVG Background Text */
.c-bg-svg {
	position: absolute;
	top: 0;
	width: 100%;
	height: 300px;
	pointer-events: none;
	user-select: none;
	z-index: 0;
	transform: translateY(-50%);
	overflow: visible;
}

.c-bg-svg--right {
	right: 0;
	display: flex;
	justify-content: flex-end;
}

.c-bg-svg--left {
	left: 0;
	display: flex;
	justify-content: flex-start;
}

.c-bg-svg__inner {
	width: 100%;
	max-width: 1400px;
	height: 100%;
	overflow: visible;
}

/* Concept Section */
.c-concept__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 3rem;
	color: #2A2D2B;
	line-height: 1.4;
	margin-bottom: 2rem;
}

.c-concept__text {
	font-size: 1rem;
	line-height: 2.2;
	color: #5C635E;
	font-weight: 300;
	margin-bottom: 1.5rem;
}

.c-concept__text--last {
	margin-bottom: 3rem;
}

.c-concept__link {
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	color: #2A2D2B;
	transition: color 0.3s ease;
}

.c-concept__link:hover {
	color: #79887C;
}

.c-concept__link-text {
	font-size: 0.9rem;
	letter-spacing: 0.1em;
	font-weight: 500;
}

.c-concept__link-icon {
	font-size: 1.25rem;
	transition: transform 0.3s ease;
}

.c-concept__link:hover .c-concept__link-icon {
	transform: translateX(0.5rem);
}

/* Section Header */
.c-section-header {
	text-align: center;
	margin-bottom: 5rem;
	position: relative;
	z-index: 10;
}

.c-section-header__subtitle {
	color: #79887C;
	font-family: 'Montserrat', sans-serif;
	letter-spacing: 0.2em;
	font-size: 0.75rem;
	font-weight: 500;
	display: block;
	margin: 0 auto 1rem;
}

/* Service List */
.c-service-list {
	display: flex;
	flex-direction: column;
	gap: 6rem;
	position: relative;
	z-index: 10;
}

/* Media Card */
.c-media-card {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 3rem;
}

.c-media-card__content {
	width: 50%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: 0;
	padding-right: 2rem;
	order: 1;
}

.c-media-card__img-wrap {
	position: relative;
	width: 50%;
	order: 2;
}

.c-media-card--reverse .c-media-card__content {
	order: 2;
	padding-right: 0;
	padding-left: 2rem;
}

.c-media-card--reverse .c-media-card__img-wrap {
	order: 1;
}

.c-media-card__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 2.25rem;
	line-height: 1.6;
	color: #2A2D2B;
	margin-bottom: 1.5rem;
	font-weight: 500;
}

.c-media-card__frame {
	position: absolute;
	top: -1rem;
	right: -1rem;
	width: 100%;
	height: 100%;
	border: 1px solid rgba(121, 136, 124, 0.3);
	border-radius: 1.5rem;
	display: block;
	transition: all 0.5s ease;
}

.c-media-card__img-wrap:hover .c-media-card__frame {
	top: -1.5rem;
	right: -1.5rem;
}

/* a要素のリセット(.c-media-card__img-wrap が a タグの場合) */
a.c-media-card__img-wrap {
	display: block;
	text-decoration: none;
	color: inherit;
}

.c-media-card__img {
	position: relative;
	width: 100%;
	height: 550px;
	border-radius: 1.5rem;
	transition: transform 1s ease;
	overflow: hidden;
}

.c-media-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1s ease;
}

.c-media-card__img-wrap:hover .c-media-card__img:not(.c-media-card__img--pan) img {
	transform: scale(1.05);
}

/* Strength Section Specifics */
.c-strength-list {
	display: flex;
	flex-direction: column;
	gap: 8rem;
	position: relative;
	z-index: 10;
}

.c-media-card__bg {
	position: absolute;
	top: -1.5rem;
	left: -1.5rem;
	width: 100%;
	height: 100%;
	background-color: #79887C;
	opacity: 0.1;
	border-radius: 1.5rem;
}

.c-media-card__bg--reverse {
	top: auto;
	left: auto;
	bottom: -1.5rem;
	right: -1.5rem;
}

.c-media-card__content--row {
	flex-direction: row;
	gap: 1.5rem;
	align-items: flex-start;
}

.c-media-card__content--row-reverse {
	flex-direction: row;
	gap: 1.5rem;
	align-items: flex-start;
	justify-content: flex-end;
	text-align: right;
	order: 1;
}

.c-media-card__content--row-reverse .c-text {
	text-align: left;
}

.c-media-card__num {
	font-size: 3rem;
	font-family: 'Montserrat', sans-serif;
	font-weight: 300;
	color: #79887C;
	display: block;
	margin-bottom: 1rem;
	line-height: 1;
}

/* List */
.c-list {
	font-size: 0.875rem;
	color: #5C635E;
	margin-bottom: 2.5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	font-weight: 300;
	border-top: 1px solid #E5E7EB;
	border-bottom: 1px solid #E5E7EB;
	padding: 1.5rem 0;
}

.c-list__item {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.c-list__icon {
	width: 0.375rem;
	height: 0.375rem;
	border-radius: 50%;
	background-color: #79887C;
}

/* Works Grid */
.c-works-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 5rem;
	position: relative;
	z-index: 10;
}

.c-works-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3rem;
}

.c-works-header__link {
	font-size: 0.75rem;
	letter-spacing: 0.2em;
	font-weight: 500;
	border-bottom: 1px solid #2A2D2B;
	padding-bottom: 0.25rem;
	transition: color 0.3s ease, border-color 0.3s ease;
	color: #2A2D2B;
	display: inline-block;
}

.c-works-header__link:hover {
	color: #79887C;
	border-color: #79887C;
}

.c-work-card {
	display: block;
	position: relative;
	z-index: 10;
}

.c-work-card--mt-lg {
	margin-top: 6rem;
}

.c-work-card--mt-minus {
	margin-top: -2rem;
}

.c-work-card:hover .c-work-card__title {
	color: #79887C;
}

.c-work-card:hover .c-work-card__img {
	transform: scale(1.05);
}

.c-work-card__img-wrap {
	overflow: hidden;
	margin-bottom: 1.5rem;
	border-radius: 0.125rem;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
	width: 100%;
	height: 450px;
}

.c-work-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1s ease;
}

.c-work-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1s ease;
}

.c-work-card__cat {
	font-size: 10px;
	color: #79887C;
	font-family: 'Montserrat', sans-serif;
	margin-bottom: 0.75rem;
	letter-spacing: 0.2em;
}

.c-work-card__title {
	font-weight: 500;
	font-size: 1.125rem;
	margin-bottom: 0.5rem;
	color: #2A2D2B;
	transition: color 0.3s ease;
}

.c-work-card__area {
	font-size: 0.75rem;
	color: #9CA3AF;
	letter-spacing: 0.1em;
}


/* --- Works Category Tabs --- */
.p-works-tabs {
	max-width: 1200px;
	margin: 0 auto;
	padding: 90px 40px 0;
}

.p-works-tabs__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.p-works-tabs__item {
	margin: 0;
}

.p-works-tabs__link {
	display: inline-block;
	padding: 10px 24px;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.9rem;
	color: #5C635E;
	background-color: #fff;
	border: 1px solid #E5E7EB;
	border-radius: 40px;
	text-decoration: none;
	transition: all 0.3s ease;
}

.p-works-tabs__link:hover {
	color: #79887C;
	border-color: #79887C;
}

.p-works-tabs__link.is-current {
	background-color: #79887C;
	color: #fff;
	border-color: #79887C;
	font-weight: 500;
}

.p-showcase__empty {
	text-align: center;
	padding: 60px 20px;
	color: #5C635E;
	font-size: 0.95rem;
}


/* Strength Vertical Text */
.c-vertical-text {
	writing-mode: vertical-rl;
	text-orientation: mixed;
	font-family: 'Shippori Mincho', serif;
	color: #79887C;
	letter-spacing: 0.1em;
	padding-top: 0.5rem;
	display: block;
}

/* Contact Section */
.c-contact {
	padding: 4rem 0 4.5rem;
	background-color: #1E201F;
	color: #fff;
	position: relative;
	overflow: hidden;
}

.c-contact__bg {
	position: absolute;
	inset: 0;
	background-image: url('https://images.unsplash.com/photo-1545324418-cc1a3fa10c00?ixlib=rb-4.0.3&auto=format&fit=crop&w=1200&q=80');
	background-size: cover;
	background-position: center;
	opacity: 0.1;
	mix-blend-mode: luminosity;
}

.c-contact__content {
	position: relative;
	z-index: 10;
	max-width: 1048px;
	margin: 0 auto;
	padding: 0 24px;
	text-align: center;
}

.c-contact__subtitle {
	color: #D1D5DB;
	font-family: 'Montserrat', sans-serif;
	letter-spacing: 0.3em;
	font-size: 0.75rem;
	font-weight: 500;
	display: block;
	margin: 0 auto 1.5rem;
}

.c-contact__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 2.6rem;
	line-height: 1.2;
	margin-bottom: 2rem;
	font-weight: 500;
}

.c-contact__desc {
	font-size: 1rem;
	line-height: 2.2;
	color: #D1D5DB;
	font-weight: 300;
	margin-bottom: 3rem;
}

.c-contact__buttons {
	display: flex;
	flex-direction: row;
	justify-content: center;
	gap: 1.5rem;
}

.c-contact__note {
	margin-top: 2rem;
	font-size: 0.9rem;
	color: #9CA3AF;
	letter-spacing: 0.1em;
}


/* --- Top News --- */
.l-section--news {
	padding: 4rem 0 4rem;
}

.l-section--news .c-section-header {
	margin-bottom: 3rem;
}
.p-top-news {
	max-width: 900px;
	margin: 0 auto;
}

.p-top-news__list {
	border-top: 1px solid #E5E7EB;
}

.p-top-news__item {
	border-bottom: 1px solid #E5E7EB;
}

.p-top-news__link {
	display: flex;
	align-items: center;
	padding: 2.2rem 1.5rem;
	transition: background-color 0.3s ease;
	text-decoration: none;
	color: inherit;
}

.p-top-news__link:hover {
	background-color: #fff;
}

.p-top-news__meta {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	width: 240px;
	flex-shrink: 0;
}

.p-top-news__date {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.875rem;
	color: #79887C;
	letter-spacing: 0.1em;
}

.p-top-news__cat {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.75rem;
	color: #79887C;
	font-weight: 500;
}

.p-top-news__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.125rem;
	color: #2A2D2B;
	font-weight: 400;
	transition: color 0.3s ease;
	line-height: 1.6;
}

.p-top-news__link:hover .p-top-news__title {
	color: #79887C;
}

.p-top-news__empty {
	padding: 3rem 1.5rem;
	text-align: center;
	color: #5C635E;
	font-size: 0.95rem;
}

/* ▼ 控えめな右寄せリンクのスタイル ▼ */
.p-top-news__more-wrap {
	text-align: right;
	margin-top: 1.5rem;
}

.p-top-news__more {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.75rem;
	letter-spacing: 0.2em;
	font-weight: 500;
	color: #5C635E;
	transition: color 0.3s ease;
	display: inline-flex;
	align-items: center;
}

.p-top-news__more::after {
	content: '→';
	margin-left: 8px;
	transition: transform 0.3s ease;
}

.p-top-news__more:hover {
	color: #79887C;
}

.p-top-news__more:hover::after {
	transform: translateX(4px);
}






/* ==========================================================================
   6. Pages (共通レイアウト)
   ========================================================================== */
main {
	padding-top: 94px;
}

main.sub {
	padding-top: 94px;
}

/* --- Hero 共通 --- */
.p-concept-hero,
.p-custom-hero,
.p-reno-hero {
	position: relative;
	max-width: 1200px;
	padding: 0 40px;
}

.p-concept-hero {
	margin: 100px auto 90px;
}

.p-custom-hero,
.p-reno-hero {
	margin: 80px auto 90px;
}

.p-concept-hero__img-wrap,
.p-custom-hero__img-wrap,
.p-reno-hero__img-wrap {
	width: 100%;
	aspect-ratio: 2 / 1;
	min-height: 450px;
	border-radius: 12px;
	overflow: hidden;
	position: relative;
	z-index: 1;
}

.p-concept-hero__bg,
.p-custom-hero__bg,
.p-reno-hero__bg {
	width: 100%;
	height: 100%;
	object-fit: cover;
	animation: heroZoomOut 4s ease-out both;
}

@keyframes heroZoomOut {
	0% {
		transform: scale(1.05);
	}
	100% {
		transform: scale(1);
	}
}

.p-concept-hero__content,
.p-custom-hero__content,
.p-reno-hero__content {
	position: relative;
	z-index: 2;
	background-color: #fff;
	padding: 60px 80px;
	border-radius: 12px;
	text-align: center;
	max-width: 900px;
	width: 85%;
	margin: -100px auto 0;
	box-shadow: 0 20px 40px rgba(0,0,0,0.04);
}

.p-concept-hero__catch,
.p-custom-hero__catch,
.p-reno-hero__catch {
	font-family: 'Shippori Mincho', serif;
	color: #2A2D2B;
	line-height: 1.6;
	margin-bottom: 24px;
}

.p-concept-hero__catch {
	font-size: 2.25rem;
}

.p-custom-hero__catch,
.p-reno-hero__catch {
	font-size: 2rem;
}

.p-concept-hero__lead,
.p-custom-hero__lead,
.p-reno-hero__lead {
	font-size: 0.98rem;
	line-height: 2.1;
	color: #5C635E;
}

/* --- Section Padding 共通 (PC) --- */
.p-concept-empathy,
.p-custom-features,
.p-custom-works,
.p-custom-quality,
.p-custom-flow,
.p-custom-warranty,
.p-custom-faq,
.p-reno-problems,
.p-reno-features,
.p-reno-menu,
.p-reno-works,
.p-reno-flow,
.p-reno-faq {
	padding: 90px 40px;
}

.p-concept-empathy,
.p-custom-features,
.p-custom-quality,
.p-custom-warranty,
.p-reno-problems,
.p-reno-menu,
.p-reno-flow {
	background-color: #F3F5F4;
}

.p-custom-works,
.p-reno-works {
	overflow: hidden;
}

/* --- Inner Width 共通 (PC) --- */
.p-company-section__inner,
.p-concept-empathy__inner,
.p-concept-promise__inner,
.p-concept-voices__inner,
.p-concept-services__inner,
.p-custom-features__inner,
.p-custom-warranty__inner,
.p-reno-features__inner,
.p-reno-menu__inner,
.p-now-building__inner {
	max-width: 1000px;
	margin: 0 auto;
}

.p-concept-faq__inner,
.p-custom-flow__inner,
.p-custom-faq__inner,
.p-reno-flow__inner,
.p-reno-faq__inner {
	max-width: 800px;
	margin: 0 auto;
}

/* --- Reviews (Company, Concept) --- */
.p-reviews {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.p-review-card {
	background-color: #fff;
	border: 1px solid #E5E7EB;
	border-radius: 12px;
	padding: 40px 32px;
	display: flex;
	flex-direction: column;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.p-review-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(0,0,0,0.04);
}

.p-review-card__stars {
	color: #E5A732;
	font-size: 1.2rem;
	letter-spacing: 0.1em;
	margin-bottom: 16px;
}

.p-review-card__text {
	font-family: 'Shippori Mincho', serif;
	font-size: 0.95rem;
	line-height: 1.8;
	color: #2A2D2B;
	margin-bottom: 24px;
	flex-grow: 1;
}

.p-review-card__user {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 0.85rem;
	color: #5C635E;
}

.p-review-card__user::before {
	content: '';
	display: block;
	width: 30px;
	height: 1px;
	background-color: #E5E7EB;
}

/* --- FAQ (Company, Concept, Custom Home, Renovation) --- */
.p-faq {
	max-width: 800px;
	margin: 0 auto;
}

.p-faq details {
	border-bottom: 1px solid #E5E7EB;
	overflow: hidden;
}

.p-faq details:first-of-type {
	border-top: 1px solid #E5E7EB;
}

.p-faq summary {
	padding: 24px 40px 24px 0;
	font-family: 'Shippori Mincho', serif;
	font-size: 1.1rem;
	font-weight: 500;
	color: #2A2D2B;
	cursor: pointer;
	list-style: none;
	position: relative;
}

/* キーボードフォーカス時はアクセシビリティ対応のアウトラインを表示 */
.p-faq summary:focus {
	outline: none;
}

.p-faq summary:focus-visible {
	outline: 2px solid #79887C;
	outline-offset: 4px;
	border-radius: 2px;
}

.p-faq summary::-webkit-details-marker {
	display: none;
}

.p-faq summary::before,
.p-faq summary::after {
	content: '';
	position: absolute;
	right: 16px;
	top: 50%;
	width: 14px;
	height: 2px;
	background-color: #79887C;
	transition: transform 0.3s ease;
}

.p-faq summary::before {
	transform: translateY(-50%);
}

.p-faq summary::after {
	transform: translateY(-50%) rotate(90deg);
}

.p-faq details[open] summary::after {
	transform: translateY(-50%) rotate(0deg);
}

.p-faq__answer {
	padding: 0 40px 32px 0;
	font-size: 0.95rem;
	line-height: 1.8;
	color: #5C635E;
}

/* --- Works Collage (Custom Home, Renovation) --- */
.p-works-collage {
	display: flex;
	align-items: center;
	max-width: 1100px;
	margin: 0 auto;
	position: relative;
}

.p-works-collage__content {
	width: 40%;
	padding-right: 60px;
	position: relative;
	z-index: 10;
}

.p-works-collage__title {
	margin-bottom: 24px;
	line-height: 1.4;
}

.p-works-collage__title-en {
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-size: 0.875rem;
	color: #79887C;
	letter-spacing: 0.15em;
	margin-bottom: 8px;
	font-weight: 500;
}

.p-works-collage__title-ja {
	display: block;
	font-family: 'Shippori Mincho', serif;
	font-size: 1.875rem;
	color: #2A2D2B;
	letter-spacing: 0.05em;
	font-weight: 500;
}

.p-works-collage__sub {
	font-family: 'Shippori Mincho', serif;
	font-size: 1rem;
	margin-bottom: 32px;
	letter-spacing: 0.05em;
	color: #5C635E;
	line-height: 1.8;
}

.p-works-collage__images {
	width: 60%;
	position: relative;
	height: 500px;
}

.p-works-collage__img {
	position: absolute;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 8px 16px rgba(0,0,0,0.06);
	transition: transform 1.5s ease-out 0.2s, box-shadow 1.5s ease-out 0.2s, opacity 1.5s ease-out 0.2s;
}

.p-works-collage__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-works-collage__img--1 {
	width: 70%;
	aspect-ratio: 4 / 3;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scale(0.9);
	z-index: 3;
}

.p-works-collage__img--2 {
	width: 40%;
	aspect-ratio: 1;
	top: 5%;
	left: 0;
	transform: translate(15%, 15%);
	z-index: 2;
	opacity: 0;
}

.p-works-collage__img--3 {
	width: 40%;
	aspect-ratio: 3 / 4;
	bottom: -5%;
	right: 0;
	transform: translate(-15%, -15%);
	z-index: 4;
	opacity: 0;
}

.p-works-collage.is-active .p-works-collage__img--1 {
	transform: translate(-50%, -50%) scale(1);
	box-shadow: 0 24px 48px rgba(0,0,0,0.12);
}

.p-works-collage.is-active .p-works-collage__img--2 {
	transform: translate(-8%, -8%) rotate(-3deg);
	opacity: 1;
}

.p-works-collage.is-active .p-works-collage__img--3 {
	transform: translate(8%, 8%) rotate(3deg);
	opacity: 1;
}

/* --- Flow List (Custom Home, Renovation) --- */
.p-flow-list {
	position: relative;
	padding-left: 72px;
	counter-reset: flow-counter;
}

.p-flow-list::before {
	content: '';
	position: absolute;
	top: 0;
	left: 19px;
	width: 2px;
	height: 100%;
	background-color: #E5E7EB;
}

.p-flow-item {
	position: relative;
	margin-bottom: 60px;
}

.p-flow-item:last-child {
	margin-bottom: 0;
}

.p-flow-item::before {
	content: '';
	position: absolute;
	top: 0;
	left: -72px;
	width: 40px;
	height: 40px;
	background-color: #79887C;
	border-radius: 50%;
	z-index: 2;
	border: 4px solid #fff;
	box-shadow: 0 0 0 1px #E5E7EB;
}

.p-flow-item::after {
	content: counter(flow-counter);
	counter-increment: flow-counter;
	position: absolute;
	top: 0;
	left: -72px;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Montserrat', sans-serif;
	font-size: 1rem;
	color: #fff;
	z-index: 3;
	font-weight: 500;
}

.p-flow-item__head {
	display: flex;
	flex-direction: column;
	margin-bottom: 16px;
	padding-top: 4px;
}

.p-flow-item__label {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.8rem;
	color: #79887C;
	letter-spacing: 0.1em;
	margin-bottom: 4px;
	font-weight: 500;
}

.p-flow-item__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.35rem;
	color: #2A2D2B;
}

.p-flow-item__body {
	background-color: #F3F5F4;
	padding: 32px;
	border-radius: 8px;
	font-size: 0.95rem;
	line-height: 1.8;
	color: #5C635E;
}

.renovation-flow .p-flow-item__body {
	background-color: #fff;
}

/* --- Features 共通 (Custom Home, Renovation) --- */
.p-feature-list {
	display: flex;
	flex-direction: column;
	gap: 80px;
}

.p-feature-item {
	display: flex;
	align-items: center;
	gap: 60px;
}

.p-feature-item:nth-child(even) {
	flex-direction: row-reverse;
}

.p-feature-item__img-wrap {
	width: 50%;
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	overflow: hidden;
	background-color: #fff;
	box-shadow: 0 10px 30px rgba(0,0,0,0.03);
}

.p-reno-features .p-feature-item__img-wrap {
	background-color: #F3F5F4;
}

.p-feature-item__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-feature-item__content {
	width: 50%;
}

.p-feature-item__num {
	display: inline-block;
	font-family: 'Montserrat', sans-serif;
	font-size: 0.85rem;
	font-weight: 600;
	color: #79887C;
	letter-spacing: 0.1em;
	border: 1px solid #79887C;
	padding: 4px 16px;
	border-radius: 40px;
	margin-bottom: 24px;
}

.p-feature-item__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.5rem;
	color: #2A2D2B;
	margin-bottom: 24px;
	line-height: 1.5;
}

.p-feature-item__text {
	font-size: 0.95rem;
	line-height: 2;
	color: #5C635E;
}

/* --- Company --- */
.p-company-section {
	padding: 90px 20px;
}

.p-company-section--gray {
	background-color: #F3F5F4;
}

.p-company-section:first-of-type {
	padding-top: 110px;
}

.p-company-numbers {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.p-number-card {
	background-color: #F3F5F4;
	padding: 48px 32px;
	border-radius: 12px;
	text-align: center;
	transition: transform 0.3s ease;
}

.p-number-card:hover {
	transform: translateY(-4px);
}

.p-number-card__num {
	display: flex;
	justify-content: center;
	align-items: baseline;
	font-family: 'Montserrat', sans-serif;
	font-size: 3.5rem;
	font-weight: 300;
	color: #79887C;
	line-height: 1;
	margin-bottom: 12px;
}

.p-number-card__num span.unit {
	font-size: 1.25rem;
	font-weight: 400;
	margin-left: 4px;
}

.p-number-card__text {
	font-family: 'Shippori Mincho', serif;
	font-size: 1rem;
	color: #2A2D2B;
	font-weight: 500;
}

.p-number-card__sub {
	display: block;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.8rem;
	color: #5C635E;
	margin-top: 8px;
}

.p-features {
	display: flex;
	gap: 60px;
	align-items: flex-start;
}

.p-features__visual {
	width: 45%;
	position: sticky;
	top: 120px;
	border-radius: 12px;
	overflow: hidden;
	background-color: #E8EBE9;
}

.p-features__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #5C635E;
	font-size: 0.875rem;
	text-align: center;
	padding: 20px;
}

.p-features__list {
	width: 55%;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.p-feature-card {
	background-color: #fff;
	padding: 48px 40px;
	border-radius: 12px;
	border: 1px solid #E5E7EB;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.p-feature-card:hover {
	box-shadow: 0 16px 40px rgba(0,0,0,0.04);
	transform: translateY(-4px);
}

.p-feature-card__num {
	font-family: 'Montserrat', sans-serif;
	font-size: 2.5rem;
	font-weight: 300;
	color: #79887C;
	opacity: 0.4;
	margin-bottom: 16px;
	display: block;
	line-height: 1;
}

.p-feature-card__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.35rem;
	font-weight: 500;
	color: #2A2D2B;
	margin-bottom: 16px;
	line-height: 1.6;
}

.p-feature-card__text {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.95rem;
	line-height: 1.8;
	color: #5C635E;
}

.p-company-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 64px;
}

.p-company-table th,
.p-company-table td {
	padding: 32px 24px;
	border-bottom: 1px solid #E5E7EB;
	text-align: left;
	line-height: 1.8;
	vertical-align: top;
}

.p-company-table tr:first-child th,
.p-company-table tr:first-child td {
	border-top: 1px solid #E5E7EB;
}

.p-company-table th {
	width: 25%;
	font-family: 'Shippori Mincho', serif;
	font-size: 1.05rem;
	font-weight: 500;
	color: #6A786D;
}

.p-company-table td {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 1rem;
	color: #2A2D2B;
}

.p-qualifications {
	display: flex;
	gap: 40px;
	margin-bottom: 60px;
}

.p-qualifications-card {
	flex: 1;
	background-color: #F3F5F4;
	padding: 40px;
	border-radius: 8px;
}

.p-qualifications-card__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.15rem;
	color: #6A786D;
	margin-bottom: 24px;
	padding-bottom: 16px;
	border-bottom: 1px solid #E5E7EB;
	display: flex;
	align-items: center;
	gap: 12px;
}

.p-qualifications-card__title::before {
	content: '';
	display: inline-block;
	width: 4px;
	height: 1.15rem;
	background-color: #79887C;
}

.p-qualifications-list {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.95rem;
	color: #2A2D2B;
	line-height: 1.8;
}

.p-qualifications-list li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	border-bottom: 1px dashed #D1D5D4;
	padding: 16px 0;
	gap: 16px;
}

.p-qualifications-list li:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.p-qualifications-list__name {
	font-weight: 500;
	flex-shrink: 0;
}

.p-qualifications-list__desc,
.p-qualifications-list__count {
	color: #5C635E;
	text-align: right;
}

.p-qualifications-list__desc.is-left {
	text-align: left;
	max-width: 57%;
}

.p-qualifications-list li.is-hidden {
	display: none;
}

@keyframes qualSlideIn {
	from {
		opacity: 0;
		transform: translateY(-6px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.p-qualifications-list li.is-show {
	display: flex;
	animation: qualSlideIn 0.45s cubic-bezier(0.22, 0.61, 0.36, 1) both;
	animation-delay: var(--qual-delay, 0ms);
}

@media (prefers-reduced-motion: reduce) {
	.p-qualifications-list li.is-show {
		animation: none;
	}
}

.c-btn-more {
	display: block;
	width: 100%;
	margin-top: 24px;
	padding: 12px;
	background-color: transparent;
	border: 1px solid #79887C;
	color: #79887C;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.9rem;
	border-radius: 4px;
	cursor: pointer;
	transition: all 0.3s ease;
	text-align: center;
}

.c-btn-more:hover {
	background-color: #79887C;
	color: #fff;
}

.c-btn-more span::after {
	content: '+';
	margin-left: 8px;
	font-weight: bold;
}

.c-btn-more.is-open span::after {
	content: '-';
}

.p-company-area {
	background-color: #fff;
	border: 1px solid #E5E7EB;
	padding: 24px 32px;
	border-radius: 8px;
	display: flex;
	align-items: center;
	gap: 24px;
	margin-bottom: 60px;
}

.p-company-area__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.05rem;
	color: #79887C;
	flex-shrink: 0;
	font-weight: 500;
}

.p-company-access {
	display: flex;
	gap: 40px;
	background-color: #fff;
	border: 1px solid #E5E7EB;
	border-radius: 12px;
	overflow: hidden;
}

.p-company-access__text-wrap {
	width: 45%;
	padding: 48px;
}

.p-company-access__name {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.25rem;
	color: #2A2D2B;
	margin-bottom: 16px;
}

.p-company-access__details {
	font-size: 0.95rem;
	line-height: 1.8;
	color: #5C635E;
	margin-bottom: 24px;
}

.p-company-access__merit {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.p-company-access__merit li {
	font-size: 0.875rem;
	color: #2A2D2B;
	display: flex;
	align-items: center;
	gap: 8px;
}

.p-company-access__merit li::before {
	content: '✓';
	color: #79887C;
	font-weight: bold;
}

.p-company-map {
	width: 55%;
	background-color: #F3F5F4;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 400px;
	color: #5C635E;
	font-size: 0.9rem;
}

.p-company-map iframe {
	width: 100%;
	height: 100%;
	min-height: 400px;
	border: none;
}

/* --- Works Banner (Company) --- */
.p-works-banner {
	position: relative;
	max-width: 1000px;
	margin: 0 auto 100px;
	display: block;
	text-decoration: none;
	cursor: pointer;
}

.p-works-banner__img-wrap {
	width: 85%;
	margin-left: auto;
	height: 400px;
	position: relative;
	overflow: hidden;
	border-radius: 12px;
}

.p-works-banner__bg {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.p-works-banner:hover .p-works-banner__bg {
	transform: scale(1.05);
}

.p-works-banner__content {
	position: absolute;
	bottom: -30px;
	left: 0;
	width: 55%;
	padding: 56px 48px;
	z-index: 3;
	transition: transform 0.4s ease;
}

.p-works-banner__content::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #fff;
	border: 1px solid #E5E7EB;
	border-radius: 12px;
	z-index: -1;
	transition: box-shadow 0.4s ease;
}

.p-works-banner__content::after {
	content: '';
	position: absolute;
	top: -12px;
	left: -12px;
	width: 100%;
	height: 100%;
	border: 1px solid rgba(121, 136, 124, 0.3);
	border-radius: 12px;
	z-index: -2;
	transition: transform 0.4s ease;
}

.p-works-banner:hover .p-works-banner__content {
	transform: translateY(-4px);
}

.p-works-banner:hover .p-works-banner__content::before {
	box-shadow: 0 16px 32px rgba(0, 0, 0, 0.05);
}

.p-works-banner:hover .p-works-banner__content::after {
	transform: translate(-4px, -4px);
}

.p-works-banner__title {
	position: relative;
	margin-bottom: 24px;
	line-height: 1.4;
}

.p-works-banner__title-en {
	display: block;
	font-family: 'Montserrat', sans-serif;
	font-size: 0.875rem;
	color: #79887C;
	letter-spacing: 0.15em;
	margin-bottom: 8px;
	font-weight: 500;
}

.p-works-banner__title-ja {
	display: block;
	font-family: 'Shippori Mincho', serif;
	font-size: 1.875rem;
	color: #2A2D2B;
	letter-spacing: 0.05em;
	font-weight: 500;
}

.p-works-banner__sub {
	position: relative;
	font-family: 'Shippori Mincho', serif;
	font-size: 1rem;
	margin-bottom: 32px;
	letter-spacing: 0.05em;
	color: #5C635E;
	line-height: 1.8;
}


/* --- Concept --- */
.p-concept-promise {
	padding: 90px 40px;
}

.p-concept-services {
	padding: 90px 40px;
}

.p-concept-faq {
	padding: 0 40px 100px;
}

.p-concept-empathy__lead {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.75rem;
	text-align: center;
	color: #2A2D2B;
	margin-bottom: 60px;
	line-height: 1.6;
}

.p-concept-empathy__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.p-empathy-card {
	background-color: #fff;
	padding: 40px 32px;
	border-radius: 12px;
	border: 1px solid #E5E7EB;
	text-align: center;
}

.p-empathy-card__svg {
	font-size: 48px;
	color: #79887C;
	margin-bottom: 24px;
	display: inline-block;
}

.p-empathy-card__text {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.1rem;
	color: #2A2D2B;
	line-height: 1.8;
	font-weight: 500;
}

.p-concept-empathy__message {
	margin-top: 60px;
	text-align: center;
	font-size: 1.05rem;
	line-height: 2;
	color: #5C635E;
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}

.p-concept-empathy__message p {
	margin-bottom: 1em;
}

.p-concept-empathy__message p:last-child {
	margin-bottom: 0;
}

.p-promise-list {
	display: flex;
	flex-direction: column;
	gap: 60px;
}

.p-promise-item {
	display: flex;
	align-items: center;
	gap: 60px;
}

.p-promise-item:nth-child(even) {
	flex-direction: row-reverse;
}

.p-promise-item__img-wrap {
	width: 50%;
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	overflow: hidden;
	background-color: #F3F5F4;
}

.p-promise-item__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-promise-item__content {
	width: 50%;
}

.p-promise-item__num {
	font-family: 'Montserrat', sans-serif;
	font-size: 1rem;
	color: #79887C;
	letter-spacing: 0.1em;
	font-weight: 600;
	display: block;
	margin-bottom: 16px;
}

.p-promise-item__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.5rem;
	color: #2A2D2B;
	margin-bottom: 24px;
	line-height: 1.5;
}

.p-promise-item__text {
	font-size: 0.95rem;
	line-height: 2;
	color: #5C635E;
}

.p-concept-message {
	background-color: #F3F5F4;
	padding: 90px 40px 60px;
}

.p-concept-message__inner {
	max-width: 800px;
	margin: 0 auto;
	background-color: #fff;
	padding: 60px 80px;
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(0,0,0,0.02);
	position: relative;
}

.p-concept-message__inner::before {
	content: '”';
	position: absolute;
	top: 20px;
	left: 40px;
	font-family: 'Montserrat', sans-serif;
	font-size: 6rem;
	color: #79887C;
	opacity: 0.1;
	line-height: 1;
}

.p-concept-message__lead {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.5rem;
	color: #2A2D2B;
	margin-bottom: 32px;
	line-height: 1.8;
	text-align: center;
}

.p-concept-message__text {
	font-size: 1rem;
	line-height: 2.2;
	color: #5C635E;
	margin-bottom: 40px;
}

.p-concept-message__sign {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 20px;
}

.p-concept-message__sign-img {
	width: 90px;
	height: 90px;
	border-radius: 50%;
	object-fit: cover;
}

.p-concept-message__sign-name {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.1rem;
	color: #2A2D2B;
}

.p-concept-message__sign-name span {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.85rem;
	color: #5C635E;
	display: block;
}

.p-concept-voices {
	background-color: #F3F5F4;
	padding: 60px 40px 90px;
}

.p-concept-services__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 40px;
}

.p-service-card {
	background-color: #fff;
	border: 1px solid #E5E7EB;
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform 0.4s ease, box-shadow 0.4s ease;
	text-decoration: none;
	color: inherit;
}

.p-service-card:hover {
	transform: translateY(-8px);
	box-shadow: 0 20px 40px rgba(121, 136, 124, 0.1);
}

.p-service-card__img-wrap {
	width: 100%;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background-color: #F3F5F4;
}

.p-service-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.p-service-card:hover .p-service-card__img {
	transform: scale(1.05);
}

.p-service-card__content {
	padding: 48px 40px;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

.p-service-card__label {
	display: inline-block;
	background-color: #F3F5F4;
	color: #79887C;
	font-size: 0.8rem;
	font-weight: 500;
	padding: 4px 12px;
	border-radius: 40px;
	margin-bottom: 16px;
	align-self: flex-start;
}

.p-service-card__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.5rem;
	color: #2A2D2B;
	margin-bottom: 16px;
	line-height: 1.4;
}

.p-service-card__text {
	font-size: 0.95rem;
	line-height: 1.8;
	color: #5C635E;
	margin-bottom: 32px;
	flex-grow: 1;
}

.p-service-card__action {
	margin-top: auto;
	border-top: 1px solid #E5E7EB;
	padding-top: 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

/* --- Custom Home --- */
.p-custom-quality__inner {
	max-width: 1000px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 60px;
}

.p-custom-quality__img-wrap {
	width: 50%;
	aspect-ratio: 1;
	border-radius: 12px;
	overflow: hidden;
}

.p-custom-quality__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.15);
	animation: slowPan 10s ease-in-out infinite alternate;
	will-change: transform;
}

@keyframes customQualityPan {
	from {
		object-position: 10% center;
	}
	to {
		object-position: 90% center;
	}
}

.p-custom-quality__content {
	width: 50%;
}

.p-custom-quality__lead {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.75rem;
	color: #2A2D2B;
	margin-bottom: 24px;
	line-height: 1.5;
}

.p-custom-quality__text {
	font-size: 0.95rem;
	line-height: 2;
	color: #5C635E;
}

.p-warranty-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.p-warranty-card {
	background-color: #fff;
	padding: 40px 32px;
	border-radius: 12px;
	border: 1px solid #E5E7EB;
	text-align: center;
}

.p-warranty-card__icon {
	font-size: 48px;
	color: #79887C;
	margin-bottom: 24px;
	display: inline-block;
}

.p-warranty-card__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.15rem;
	color: #2A2D2B;
	margin-bottom: 16px;
	font-weight: 500;
}

.p-warranty-card__text {
	font-size: 0.9rem;
	line-height: 1.8;
	color: #5C635E;
	text-align: left;
}

.p-custom-warranty__link-wrap {
	text-align: center;
	margin-top: 3rem;
}

.p-custom-warranty__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9rem;
	color: #6A786D;
	text-decoration: none;
	padding-bottom: 0.25rem;
	border-bottom: 1px solid currentColor;
	transition: 0.1s ease;
	letter-spacing: 0.05em;
}

.p-custom-warranty__link:hover {
	border-bottom-color: transparent; 
}

.p-custom-warranty__link svg {
	flex-shrink: 0;
}

/* --- Renovation --- */

.p-reno-problems__inner {
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
}

.p-reno-problems__lead {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.75rem;
	color: #2A2D2B;
	line-height: 1.5;
	margin-bottom: 48px;
}

.p-reno-problems__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	text-align: left;
}

.p-problem-card {
	background-color: #fff;
	padding: 32px 24px;
	border-radius: 8px;
	border: 1px solid #E5E7EB;
	text-align: center;
}

.p-problem-card__icon {
	font-size: 40px;
	color: #79887C;
	margin: 0 auto 16px;
	opacity: 0.8;
}

.p-problem-card__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.1rem;
	color: #2A2D2B;
	margin-bottom: 12px;
	font-weight: 500;
}

.p-problem-card__text {
	font-size: 0.9rem;
	line-height: 1.8;
	color: #5C635E;
	text-align: left;
}

.p-menu-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 40px;
}

.p-menu-card {
	background-color: #fff;
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid #E5E7EB;
}

.p-menu-card__img-wrap {
	aspect-ratio: 16 / 9;
	background-color: #F3F5F4;
	overflow: hidden;
}

.p-menu-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-menu-card__content {
	padding: 32px 40px;
	text-align: left;
}

.p-menu-card__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.35rem;
	color: #2A2D2B;
	margin-bottom: 12px;
	border-bottom: 1px solid #E5E7EB;
	padding-bottom: 12px;
}

.p-menu-card__title-sub {
  font-size: 0.85rem;
  color: #79887C;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: normal;
  margin-left: 8px;
}

.p-menu-card__list {
	font-size: 0.92rem;
	color: #5C635E;
	line-height: 1.8;
}

/* --- Archive Works --- */
.p-works-section {
	padding: 100px 40px 60px;
	max-width: 1200px;
	margin: 0 auto;
}

.p-works-intro {
	text-align: center;
	max-width: 740px;
	margin: 0 auto 80px;
	font-family: 'Shippori Mincho', serif;
	font-size: 1.1rem;
	line-height: 2;
	color: #2A2D2B;
}

.p-showcase {
	display: flex;
	flex-direction: column;
	gap: 120px;
	margin-bottom: 120px;
}

.p-showcase-item {
	display: flex;
	align-items: center;
	gap: 60px;
	text-decoration: none;
	color: inherit;
}

.p-showcase-item:nth-child(even) {
	flex-direction: row-reverse;
}

.p-showcase-item__img-wrap {
	width: 60%;
	aspect-ratio: 4 / 3;
	position: relative;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 20px 40px rgba(0,0,0,0.06);
	background-color: #F3F5F4;
	display: block;
}

.p-showcase-item__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}

.p-showcase-item__img-wrap:hover .p-showcase-item__img {
	transform: scale(1.05);
}

.p-showcase-item__cat {
	position: absolute;
	top: 24px;
	left: 24px;
	background-color: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(4px);
	padding: 8px 20px;
	border-radius: 4px;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.8rem;
	color: #79887C;
	font-weight: 500;
	z-index: 4;
}

.p-showcase-item__content {
	width: 40%;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.p-showcase-item__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.75rem;
	color: #2A2D2B;
	margin-bottom: 24px;
	line-height: 1.5;
}

.p-showcase-item__desc {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.95rem;
	color: #5C635E;
	line-height: 1.9;
	margin-bottom: 24px;
}

.p-showcase-item__review {
	background-color: #F3F5F4;
	padding: 16px 24px;
	border-radius: 8px;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.85rem;
	color: #2A2D2B;
	margin-bottom: 32px;
	position: relative;
	border-left: 4px solid #79887C;
	line-height: 1.8;
}

.p-showcase-item__review::before {
	content: '💡 お客様の声';
	display: block;
	font-weight: 700;
	color: #79887C;
	margin-bottom: 6px;
	font-size: 0.8rem;
}

a.p-showcase-item__more {
	color: #67796b;
	text-decoration: underline;
}

a.p-showcase-item__more:hover {
	text-decoration: none;
}

.p-showcase-item__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 32px;
	padding-bottom: 32px;
	border-bottom: 1px solid #E5E7EB;
}

.p-showcase-item__tags span {
	background-color: #fff;
	border: 1px solid #E5E7EB;
	padding: 6px 16px;
	border-radius: 40px;
	font-size: 0.8rem;
	color: #5C635E;
}

.p-now-building {
	background-color: #F3F5F4;
	padding: 80px 20px 100px;
	margin-bottom: 80px;
}

.p-now-building__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 40px;
}

.p-building-card {
	background-color: #fff;
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	align-items: center;
	border: 1px solid #E5E7EB;
}

.p-building-card__img-wrap {
	width: 40%;
	height: 100%;
	min-height: 220px;
	position: relative;
}

.p-building-card__img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-building-card__content {
	width: 60%;
	padding: 32px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.p-building-card__status {
	display: inline-block;
	font-family: 'Montserrat', sans-serif;
	font-size: 0.75rem;
	color: #E5A732;
	border: 1px solid #E5A732;
	padding: 4px 12px;
	border-radius: 4px;
	margin-bottom: 12px;
	font-weight: 500;
	letter-spacing: 0.05em;
}

.p-building-card__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.15rem;
	color: #2A2D2B;
	margin-bottom: 8px;
	line-height: 1.5;
}

.p-building-card__info {
	font-size: 0.85rem;
	color: #5C635E;
	margin-bottom: 0;
	line-height: 1.6;
}

/* --- Single Works --- */
.p-work-hero {
	max-width: 1200px;
	margin: 40px auto 80px;
	padding: 0 40px;
	position: relative;
}

.p-work-gallery,
.p-work-data {
	max-width: 1000px;
	margin: 0 auto 86px;
	padding: 0 40px;
}

.p-work-voice-text {
	max-width: 800px;
	margin: 0 auto 120px;
	padding: 0 40px;
}

.p-work-hero__img-wrap {
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 12px;
	overflow: hidden;
	background-color: #F3F5F4;
	position: relative;
	z-index: 1;
}

.p-work-hero__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.p-work-hero__content {
	background-color: #fff;
	padding: 48px 60px;
	border-radius: 12px;
	box-shadow: 0 20px 40px rgba(0,0,0,0.04);
	width: 80%;
	max-width: 800px;
	margin: -80px auto 0;
	position: relative;
	z-index: 2;
	text-align: center;
}

.p-work-hero__cat {
	display: inline-block;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.8rem;
	color: #79887C;
	font-weight: 500;
	border: 1px solid #79887C;
	padding: 4px 16px;
	border-radius: 4px;
	margin-bottom: 24px;
}

.p-work-hero__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 2rem;
	color: #2A2D2B;
	line-height: 1.5;
	margin-bottom: 24px;
}

.p-work-hero__tags {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

.p-work-hero__tags span {
	background-color: #fff;
	border: 1px solid #E5E7EB;
	padding: 6px 16px;
	border-radius: 40px;
	font-size: 0.8rem;
	color: #5C635E;
}

.p-work-concept {
	max-width: 800px;
	margin: 0 auto 86px;
	padding: 0 40px;
}

.p-work-concept__lead {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.5rem;
	color: #2A2D2B;
	line-height: 1.8;
	margin-bottom: 40px;
	text-align: center;
}

.p-work-concept__text {
	font-size: 1rem;
	color: #5C635E;
	line-height: 2.2;
}

.p-work-concept__text p {
	margin-bottom: 24px;
}

.p-work-gallery__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 48px 24px;
}

.p-work-gallery__item {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.p-work-gallery__item--large {
	grid-column: span 2;
}

.p-work-gallery__img {
	width: 100%;
	display: block;
	border-radius: 8px;
	background-color: #F3F5F4;
}

.p-work-gallery__caption {
	font-size: 0.85rem;
	color: #5C635E;
	line-height: 1.6;
}


/* ==========================================================================
   配置図・平面図 (Drawings)
   ========================================================================== */
.p-work-drawings {
	max-width: 1000px;
	margin: 0 auto 86px;
	padding: 0 40px;
}

.p-work-drawings__list {
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.p-work-drawings__item {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.p-work-drawings__img {
	width: 100%;
	display: block;
	border-radius: 8px;
	background-color: #F3F5F4;
}

.p-work-drawings__caption {
	font-size: 0.85rem;
	color: #5C635E;
	line-height: 1.6;
}


.p-work-data__table {
	width: 100%;
	border-collapse: collapse;
	background-color: #F3F5F4;
	border-radius: 12px;
	overflow: hidden;
}

.p-work-data__table th,
.p-work-data__table td {
	padding: 32px 48px;
	border-bottom: 1px solid #fff;
	text-align: left;
	line-height: 1.6;
}

.p-work-data__table tr:last-child th,
.p-work-data__table tr:last-child td {
	border-bottom: none;
}

.p-work-data__table th {
	width: 30%;
	font-family: 'Shippori Mincho', serif;
	font-size: 1rem;
	font-weight: 500;
	color: #79887C;
	vertical-align: top;
}

.p-work-data__table td {
	font-size: 0.95rem;
	color: #2A2D2B;
}

.p-work-voice-text__inner {
	padding: 60px 0;
	border-top: 1px solid #E5E7EB;
	border-bottom: 1px solid #E5E7EB;
	text-align: center;
}

.p-work-voice-text__body {
	font-size: 1rem;
	color: #5C635E;
	line-height: 2.2;
	margin-bottom: 32px;
	text-align: left;
	display: inline-block;
}

.p-work-voice-text__name {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.95rem;
	color: #2A2D2B;
	font-weight: 500;
	text-align: right;
}

.p-work-voice-text__name::before {
	content: '— ';
	color: #79887C;
}

.p-work-nav {
	border-top: 1px solid #E5E7EB;
	padding: 60px 40px;
	max-width: 1000px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.p-work-nav__link {
	display: flex;
	flex-direction: column;
	width: 30%;
	text-decoration: none;
	color: #2A2D2B;
	transition: color 0.3s ease;
}

.p-work-nav__link:hover {
	color: #79887C;
}

.p-work-nav__link a {
	color: inherit;
	text-decoration: none;
}

.p-work-nav__link--prev {
	text-align: left;
}

.p-work-nav__link--next {
	text-align: right;
}

.p-work-nav__label {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.75rem;
	color: #5C635E;
	letter-spacing: 0.1em;
	margin-bottom: 8px;
}

.p-work-nav__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 0.95rem;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.p-work-nav__archive {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 20%;
	font-family: 'Montserrat', sans-serif;
	font-size: 0.85rem;
	color: #2A2D2B;
	letter-spacing: 0.1em;
	text-decoration: none;
}

.p-work-nav__archive::before {
	content: '';
	display: inline-block;
	width: 16px;
	height: 16px;
	background-image: radial-gradient(circle, #E5E7EB 2px, transparent 2px);
	background-size: 6px 6px;
	background-position: center;
	margin-right: 8px;
}

/* リスト全体の余白設定 */
.c-spec-list {
  list-style-type: none; /* デフォルトの黒丸を消す */
  padding: 0;
  margin: 0;
}

/* 各項目の設定（ここでぶら下がりインデントを作ります） */
.c-spec-list li {
  position: relative;
  padding-left: 1em; /* 左側に1文字分の余白を空ける */
  margin-bottom: 0.8em; /* 項目同士の縦の隙間 */
  line-height: 1.6; /* 行間を少し広げて読みやすく */
}

/* 擬似要素で「・」を絶対配置する */
.c-spec-list li::before {
  content: "-";
  position: absolute;
  left: 0;
  top: 0;
}

/* --- Archive News（お知らせ 一覧ページ） --- */
.p-news-section {
	padding: 100px 40px 120px;
	max-width: 1000px;
	margin: 0 auto;
}

.p-news-list {
	border-top: 1px solid #E5E7EB;
}

.p-news-item {
	display: flex;
	align-items: center;
	padding: 32px 24px;
	border-bottom: 1px solid #E5E7EB;
	transition: background-color 0.3s ease;
	text-decoration: none;
	color: inherit;
}

.p-news-item:hover {
	background-color: #F3F5F4;
}

.p-news-item__meta {
	display: flex;
	align-items: center;
	gap: 16px;
	width: 240px;
	flex-shrink: 0;
}

.p-news-item__date {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.875rem;
	color: #9CA3AF;
	letter-spacing: 0.1em;
}

.p-news-item__cat {
	display: inline-block;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.75rem;
	color: #79887C;
	font-weight: 500;
	border: 1px solid #79887C;
	padding: 4px 12px;
	border-radius: 40px;
}

.p-news-item__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.1rem;
	color: #2A2D2B;
	flex-grow: 1;
	line-height: 1.6;
	transition: color 0.3s ease;
}

.p-news-item:hover .p-news-item__title {
	color: #79887C;
}

.p-news-item__arrow {
	color: #79887C;
	font-size: 1.25rem;
	transition: transform 0.3s ease;
	margin-left: 24px;
}

.p-news-item:hover .p-news-item__arrow {
	transform: translateX(8px);
}

/* Pagination */
.p-pagination {
	margin-top: 60px;
	text-align: center;
}

.p-pagination .nav-links {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.p-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	font-family: 'Montserrat', sans-serif;
	font-size: 0.875rem;
	color: #5C635E;
	border: 1px solid #E5E7EB;
	border-radius: 50%;
	transition: all 0.3s ease;
	text-decoration: none;
}

.p-pagination .page-numbers.current,
.p-pagination .page-numbers:hover {
	background-color: #79887C;
	color: #fff;
	border-color: #79887C;
}

.p-pagination .prev,
.p-pagination .next {
	width: auto;
	padding: 0 16px;
	border-radius: 40px;
	font-size: 0.75rem;
	letter-spacing: 0.1em;
}



/* --- Single News --- */
.p-single-header {
	padding: 60px 40px 40px;
	max-width: 800px;
	margin: 0 auto;
	text-align: center;
	border-bottom: 1px solid #E5E7EB;
}

.p-single-header__meta {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 16px;
	margin-bottom: 24px;
}

.p-single-header__date {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.875rem;
	color: #9CA3AF;
	letter-spacing: 0.1em;
}

.p-single-header__cat {
	display: inline-block;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 0.75rem;
	color: #79887C;
	font-weight: 500;
	border: 1px solid #79887C;
	padding: 4px 12px;
	border-radius: 40px;
}

.p-single-header__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 2rem;
	color: #2A2D2B;
	line-height: 1.5;
}

.p-single-content {
	padding: 60px 40px 120px;
	max-width: 800px;
	margin: 0 auto;
}

.p-single-content__thumb {
	margin-bottom: 40px;
	border-radius: 12px;
	overflow: hidden;
	background-color: #F3F5F4;
}

.p-single-content__thumb img {
	width: 100%;
	height: auto;
	object-fit: cover;
}

.p-single-content__body {
	font-size: 1rem;
	line-height: 2.2;
	color: #333;
}

.p-single-content__body h2 {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.5rem;
	color: #2A2D2B;
	margin-top: 3rem;
	margin-bottom: 1.5rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid #E5E7EB;
}

.p-single-content__body h3 {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.25rem;
	color: #2A2D2B;
	margin-top: 2.5rem;
	margin-bottom: 1rem;
}

.p-single-content__body p {
	margin-bottom: 1.5rem;
}

.p-single-content__body ul {
	margin-bottom: 1.5rem;
	padding-left: 1.5rem;
	list-style: disc;
}

.p-single-content__body ol {
	margin-bottom: 1.5rem;
	padding-left: 1.5rem;
	list-style: decimal;
}

.p-single-content__body a {
	color: #79887C;
	text-decoration: underline;
	text-underline-offset: 4px;
	transition: color 0.3s ease;
}

.p-single-content__body a:hover {
	color: #5F6B61;
}

.p-single-content__body img {
	margin: 2rem 0;
	border-radius: 8px;
}

.privacypolicy-body {
	padding-top: 40px;
}

.privacypolicy-box {
	background-color: #F3F5F4;
	padding: 24px;
	border-radius: 8px;
	margin: 48px 0 32px;
}

.privacypolicy-box h3 {
	margin-top: 0;
}

.privacypolicy-box p {
	margin-bottom: 6px;
}

/* ==========================================================================
   コラム記事内：strongタグの黄色マーカー装飾
   ========================================================================== */
/* 本文内の太字（strong）にマーカーを引く */
.p-single-content__body strong {
  /* 明るくクリアな黄色（#FFF078） */
  background: linear-gradient(transparent 60%, #FFF078 40%);
  font-weight: 600;
  color: #2A2D2B;
}

/* 囲み枠内のマーカーはオフにする */
.p-single-content__body div strong {
  background: none;
}



/* --- Contact --- */
.p-contact-info {
	padding: 100px 40px 60px;
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
}

.p-contact-info__lead {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.75rem;
	color: #2A2D2B;
	margin-bottom: 24px;
	line-height: 1.5;
}

.p-contact-info__text {
	font-size: 1rem;
	line-height: 2;
	color: #5C635E;
	margin-bottom: 32px;
}

.p-contact-promise {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	background-color: #fff;
	border: 1px solid #ccc;
	padding: 16px 32px;
	border-radius: 40px;
	margin: 0 auto 48px;
	font-size: 0.95rem;
	color: #6A786D;
	font-weight: 500;
}

.p-contact-promise svg {
	font-size: 24px;
	color: #79887C;
	flex-shrink: 0;
}

.p-contact-info__tel-box {
	background-color: rgba(121, 136, 124, 0.05);
	border: 2px solid #79887C;
	padding: 48px 40px;
	border-radius: 12px;
}

.p-contact-info__tel-label {
	font-size: 0.9rem;
	color: #2A2D2B;
	font-weight: 500;
	margin-bottom: 8px;
	display: block;
	letter-spacing: 0.05em;
}

.p-contact-info__tel-num {
	font-size: 2.5rem;
	letter-spacing: 0.02em;
	color: #2A2D2B;
	font-weight: 600;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	transition: color 0.3s;
}

.p-contact-info__tel-num:hover {
	color: #79887C;
}

.p-contact-info__tel-num svg {
	font-size: 32px;
	color: #79887C;
}

.p-contact-info__tel-time {
	font-size: 0.85rem;
	color: #5C635E;
	margin-top: 12px;
}

.p-contact-form {
	padding: 60px 40px 120px;
	background-color: #F3F5F4;
}

.p-contact-form__inner {
	max-width: 820px;
	margin: 0 auto;
	background-color: #fff;
	padding: 60px 80px 80px;
	border-radius: 12px;
	border: 1px solid #ddd;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
}

.p-form-header {
	text-align: center;
	margin-bottom: 48px;
	padding-bottom: 32px;
	border-bottom: 1px solid #E5E7EB;
}

.p-form-header__title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.5rem;
	color: #2A2D2B;
	margin-bottom: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
}

.p-form-header__icon {
	font-size: 28px;
	color: #79887C;
}

.p-form-header__text {
	font-size: 0.95rem;
	color: #5C635E;
	line-height: 1.8;
	text-align: left;
	display: inline-block;
}

.p-form-group {
	margin-bottom: 2px;
	padding: 24px 20px;
	margin-left: -20px;
	margin-right: -20px;
	border-radius: 8px;
	display: flex;
	align-items: flex-start;
	transition: background-color 0.3s ease;
}

.p-form-group:last-child {
	margin-bottom: 0;
}

.p-form-group:focus-within {
	background-color: rgba(121, 136, 124, 0.05);
}

.p-form-label {
	width: 220px;
	flex-shrink: 0;
	padding-top: 14px;
	font-weight: 500;
	color: #2A2D2B;
	line-height: 1.4;
}

.p-form-label p {
	display: flex;
	align-items: flex-start;
	margin: 0;
}

.p-form-label__req,
.p-form-label__opt {
	flex-shrink: 0;
	white-space: nowrap;
	margin-top: 2px;
	font-size: 0.7rem;
	padding: 2px 8px;
	border-radius: 4px;
	margin-left: 12px;
	letter-spacing: 0.05em;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: normal;
}

.p-form-label__req {
	background-color: #D9534F;
	color: #ffffff;
}

.p-form-label__opt {
	background-color: #E5E7EB;
	color: #5C635E;
}

.p-form-control {
	flex-grow: 1;
}

.p-form-control p {
	margin: 0;
}

.c-input,
.c-select,
.c-textarea {
	width: 100%;
	padding: 14px 20px;
	font-size: 1rem;
	font-family: inherit;
	color: #2A2D2B;
	background-color: #F9FAFA;
	border: 1px solid #E5E7EB;
	border-radius: 8px;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

.c-input::placeholder,
.c-textarea::placeholder {
	color: #A0A5A2;
}

.c-input:focus,
.c-select:focus,
.c-textarea:focus {
	background-color: #ffffff;
	border-color: #79887C;
	outline: none;
	box-shadow: 0 0 0 4px rgba(121, 136, 124, 0.15);
}

.c-textarea {
	resize: vertical;
	height: 140px;
	min-height: 120px;
}

.p-form-radio-group .wpcf7-radio {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-top: 14px;
}

.p-form-radio-group .wpcf7-list-item {
	margin: 0;
}

.p-form-radio-group label {
	display: flex;
	align-items: center;
	cursor: pointer;
	font-size: 0.95rem;
	color: #2A2D2B;
}

.p-form-radio-group input[type="radio"] {
	position: absolute;
	opacity: 0;
	cursor: pointer;
	height: 0;
	width: 0;
}

.p-form-radio-group .wpcf7-list-item-label {
	position: relative;
	display: flex;
	align-items: center;
}

.p-form-radio-group .wpcf7-list-item-label::before {
	content: '';
	display: inline-block;
	width: 24px;
	height: 24px;
	border: 1px solid #E5E7EB;
	border-radius: 50%;
	margin-right: 12px;
	transition: all 0.2s ease;
	background-color: #F9FAFA;
	flex-shrink: 0;
}

.p-form-radio-group .wpcf7-list-item-label::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 12px;
	transform: translate(-50%, -50%) scale(0);
	width: 12px;
	height: 12px;
	background-color: #79887C;
	border-radius: 50%;
	transition: transform 0.2s ease;
}

.p-form-radio-group input[type="radio"]:checked + .wpcf7-list-item-label::before {
	border-color: #79887C;
	background-color: #ffffff;
}

.p-form-radio-group input[type="radio"]:checked + .wpcf7-list-item-label::after {
	transform: translate(-50%, -50%) scale(1);
}

.p-form-radio-group input[type="radio"]:focus-visible + .wpcf7-list-item-label::before {
	box-shadow: 0 0 0 4px rgba(121, 136, 124, 0.15);
}


/* ==========================================================================
   チェックボックスのスタイル（縦並び＆カスタムデザイン）
   ========================================================================== */
.p-form-checkbox-group .wpcf7-checkbox {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-top: 14px;
}

.p-form-checkbox-group .wpcf7-list-item {
	margin: 0;
}

.p-form-checkbox-group label {
	display: flex;
	align-items: center;
	cursor: pointer;
	font-size: 0.95rem;
	color: #2A2D2B;
}

/* デフォルトのチェックボックスを非表示 */
.p-form-checkbox-group input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	cursor: pointer;
	height: 0;
	width: 0;
}

/* カスタムチェックボックスの枠 */
.p-form-checkbox-group .wpcf7-list-item-label {
	position: relative;
	display: flex;
	align-items: center;
}

.p-form-checkbox-group .wpcf7-list-item-label::before {
	content: '';
	display: inline-block;
	width: 24px;
	height: 24px;
	border: 1px solid #D2D5DC;
	border-radius: 4px; /* ラジオボタンと区別するため四角にする */
	margin-right: 12px;
	transition: all 0.2s ease;
	background-color: #F9FAFA;
	flex-shrink: 0;
}

/* チェックマークの描画 */
.p-form-checkbox-group .wpcf7-list-item-label::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 12px;
	width: 10px;
	height: 5px;
	border-left: 2px solid #fff;
	border-bottom: 2px solid #fff;
	/* 初期状態は縮小して非表示 */
	transform: translate(-50%, -50%) scale(0) rotate(-45deg);
	transition: transform 0.2s ease;
	margin-top: -2px; /* 縦位置の微調整 */
}

/* チェックされた時のスタイル */
.p-form-checkbox-group input[type="checkbox"]:checked + .wpcf7-list-item-label::before {
	border-color: #79887C;
	background-color: #79887C;
}

.p-form-checkbox-group input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
	transform: translate(-50%, -50%) scale(1) rotate(-45deg);
}

/* フォーカス時のスタイル（アクセシビリティ対応） */
.p-form-checkbox-group input[type="checkbox"]:focus-visible + .wpcf7-list-item-label::before {
	box-shadow: 0 0 0 4px rgba(121, 136, 124, 0.15);
}




.p-form-submit {
	margin-top: 28px;
	padding-top: 12px;
	border-top: 1px solid #E5E7EB;
	text-align: center;
}

.p-form-submit__note {
	font-size: 0.75rem;
	color: #5C635E;
	margin-bottom: 32px;
	line-height: 1.6;
}

.p-form-submit__note a {
	color: #79887C;
	text-decoration: underline;
	text-underline-offset: 4px;
	transition: color 0.3s;
}

.p-form-submit__note a:hover {
	color: #5F6B61;
}

.p-form-submit .c-btn-primary {
	padding: 20px 80px;
	font-size: 1.1rem;
	width: 100%;
	max-width: 320px;
}

.wpcf7-submit {
  cursor: pointer;
}

/* 送信ボタンのエリアを中央揃えにし、配置の基準位置にする */
.submit-wrap {
  text-align: center;
  position: relative;
}

/* スピナーを「絶対配置」にして、空間を占有しないようにする */
.submit-wrap .wpcf7-spinner {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
  margin-left: 15px;
}


/* ==========================================================================
   コラム記事内：比較表（横スクロール対応）
   ========================================================================== */
.p-single-table-container {
  margin: 3rem 0;
}

.p-single-table-title {
  font-family: 'Shippori Mincho', serif;
  font-size: 1.15rem;
  color: #2A2D2B;
  margin-bottom: 1rem;
  font-weight: 500;
}

/* 横スクロールさせるためのラッパー */
.p-single-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch; /* スマホでのスクロールを滑らかに */
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  background-color: #fff;
  margin-bottom: 0.75rem;
}

/* スクロールバーのカスタマイズ（表の下部） */
.p-single-table-wrap::-webkit-scrollbar {
  height: 6px;
}
.p-single-table-wrap::-webkit-scrollbar-track {
  background: #F3F5F4;
  border-radius: 0 0 8px 8px;
}
.p-single-table-wrap::-webkit-scrollbar-thumb {
  background: #D1D5DB;
  border-radius: 4px;
}

/* テーブル本体のデザイン */
.p-single-table {
  width: 100%;
  min-width: 800px; /* これ以下の画面幅になったらスクロールさせる */
  border-collapse: collapse;
  text-align: left;
}

.p-single-table th,
.p-single-table td {
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid #E5E7EB;
  font-size: 0.95rem;
  line-height: 1.6;
  vertical-align: middle;
}

/* ヘッダー行 */
.p-single-table thead th {
  background-color: #F3F5F4;
  color: #5C635E;
  font-weight: 500;
  white-space: nowrap;
}

/* 左端の見出し列 */
.p-single-table tbody th {
  background-color: #FAFAFA;
  color: #2A2D2B;
  font-weight: 500;
  white-space: nowrap;
}

.p-single-table tbody td {
  color: #333;
}

/* 最後の行の線を消す */
.p-single-table tbody tr:last-child th,
.p-single-table tbody tr:last-child td {
  border-bottom: none;
}

/* ユーティリティクラス（表内用） */
.u-text-center {
  text-align: center !important;
}
.u-text-small {
  font-size: 0.8rem;
  color: #6A786D;
}

/* 記号のカラーリング */
.c-mark-double-circle {
  color: #79887C; /* メインカラー */
  font-weight: bold;
  font-size: 1.2rem;
}
.c-mark-circle {
  color: #79887C;
  font-size: 1.2rem;
}
.c-mark-triangle {
  color: #E5A732; /* サイト内で使われているアクセントカラー（黄色） */
  font-size: 1.2rem;
}

/* スクロール案内の注釈 */
.p-single-table-note {
  font-size: 0.8rem;
  color: #79887C;
  text-align: right;
  margin: 0;
}

/* スマホ表示時の調整 */
@media screen and (max-width: 768px) {
  .p-single-table-container {
    margin: 2.5rem 0;
  }
  /* スマホ時は画面幅いっぱいに表を広げる（余白を無視する） */
  .p-single-table-wrap {
    margin-left: -20px;
    margin-right: -20px;
    width: calc(100% + 40px);
    border-radius: 0;
    border-left: none;
    border-right: none;
  }
  .p-single-table th,
  .p-single-table td {
    padding: 1rem;
  }
  .p-single-table-note {
    padding-right: 0;
  }
}





/* =========================================================
   Thanks Page (お問い合わせ送信完了)
   ========================================================= */

/* ▼ お礼メッセージセクション ▼ */
.p-thanks-message {
	max-width: 800px;
	margin: 0 auto;
	padding: 4rem 1.5rem 2rem;
	text-align: center;
}

.p-thanks-message__icon {
	width: 64px;
	height: 64px;
	margin: 0 auto 1.5rem;
	color: #79887C;
	font-size: 64px;
	line-height: 1;
}

.p-thanks-message__icon svg {
	width: 100%;
	height: 100%;
}

.p-thanks-message__lead {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.75rem;
	font-weight: 500;
	line-height: 1.5;
	margin-bottom: 1.5rem;
	color: #333;
}

.p-thanks-message__text {
	font-size: 1rem;
	line-height: 1.9;
	color: #555;
	margin-bottom: 2.5rem;
}

.p-thanks-message__note {
	background-color: #f3f5f4;
	border-radius: 8px;
	padding: 1.75rem 2rem;
	margin: 0 auto 3rem;
	text-align: left;
	max-width: 750px;
}

.p-thanks-message__note p {
	font-size: 0.9rem;
	line-height: 1.8;
	color: #555;
	margin: 0;
}

.p-thanks-message__note p + p {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid #e5e3dd;
}

.p-thanks-message__note strong {
	color: #333;
	font-weight: 600;
}

.p-thanks-message__note-sub {
	font-size: 0.85rem !important;
	color: #666 !important;
}


.p-contact-info__tel-box.thanks {
	background-color: #fff;
}


/* ▼ 関連ページへの導線セクション ▼ */
.p-thanks-links {
	padding: 4rem 1.5rem 6rem;
	background-color: #f3f5f4;
	margin-top: 4rem;
}

.p-thanks-links__inner {
	max-width: 1100px;
	margin: 0 auto;
}

.p-thanks-links__title {
	text-align: center;
	margin-bottom: 3rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.p-thanks-links__title-en {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	color: #79887C;
}

.p-thanks-links__title-ja {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.5rem;
	font-weight: 500;
	color: #333;
}

.p-thanks-links__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.p-thanks-links__card {
	background-color: #fff;
	padding: 2rem 1.75rem;
	border-radius: 8px;
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	position: relative;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.03);
}

.p-thanks-links__card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
}

.p-thanks-links__card-label {
	font-family: 'Montserrat', sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	color: #79887C;
}

.p-thanks-links__card-title {
	font-family: 'Shippori Mincho', serif;
	font-size: 1.25rem;
	font-weight: 500;
	color: #333;
	margin-bottom: 0.5rem;
}

.p-thanks-links__card-text {
	font-size: 0.85rem;
	line-height: 1.7;
	color: #666;
	flex-grow: 1;
}

.p-thanks-links__card-arrow {
	font-family: 'Montserrat', sans-serif;
	font-size: 1.125rem;
	color: #79887C;
	align-self: flex-end;
	margin-top: 0.75rem;
	transition: transform 0.3s ease;
}

.p-thanks-links__card:hover .p-thanks-links__card-arrow {
	transform: translateX(4px);
}


/* ==========================================================================
   7. Animations & Effects
   ========================================================================== */
.reveal,
.js-fade-up {
	opacity: 0;
	transform: translateY(15px);
	visibility: hidden;
	transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.reveal.active,
.js-fade-up.is-active {
	opacity: 1;
	transform: translateY(0);
	visibility: visible;
}

.img-reveal {
	position: relative;
	overflow: hidden;
}

.img-reveal img {
	visibility: hidden;
}

.img-reveal.active img {
	animation: showImg 0s 0.35s forwards;
}

.c-hero__img.img-reveal.active img {
	animation: showImg 0s 0.35s forwards, heroZoomOut 3.5s 0.35s ease-out forwards;
}

@keyframes heroZoomOut {
	from {
		transform: scale(1.04);
	}
	to {
		transform: scale(1);
	}
}

.img-reveal::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #79887C;
	transform: translateX(-101%);
	z-index: 20;
}

.img-reveal.active::after {
	animation: coverReveal 1s forwards;
}

@keyframes showImg {
	to {
		visibility: visible;
	}
}

@keyframes coverReveal {
	0% {
		transform: translateX(-101%);
		animation-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1);
	}
	35% {
		transform: translateX(0);
	}
	40% {
		transform: translateX(0);
		animation-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
	}
	100% {
		transform: translateX(101%);
	}
}

.animate-slow-pan,
.animate-slow-pan-reverse {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: block;
}

.animate-slow-pan img,
.animate-slow-pan-reverse img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.animate-slow-pan {
	animation: slowPan 10s ease-in-out infinite alternate;
	will-change: transform;
}

.animate-slow-pan-reverse {
	animation: slowPan 10s ease-in-out infinite alternate-reverse;
	will-change: transform;
}

@keyframes slowPan {
	0% {
		transform: scale(1.15) translateX(-5%);
	}
	100% {
		transform: scale(1.15) translateX(5%);
	}
}

.svg-text-anim {
	width: 100%;
	height: 100%;
}

.svg-text-anim text {
	fill: transparent !important;
}

.svg-text-anim tspan {
	fill: transparent !important;
	stroke: rgba(121, 136, 124, 0.3);
	stroke-width: 1px;
	stroke-dasharray: 1500;
	stroke-dashoffset: 1500;
	opacity: 0;
}

.reveal.active .svg-text-anim tspan {
	animation-name: drawTextSeq;
	animation-duration: 1.5s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}

@keyframes drawTextSeq {
	0% {
		stroke-dashoffset: 1500;
		opacity: 0;
	}
	5% {
		opacity: 1;
	}
	100% {
		stroke-dashoffset: 0;
		opacity: 1;
	}
}

.animate-pulse-once {
	animation: none;
}

.is-visible.animate-pulse-once {
	animation: pulse-once 2s cubic-bezier(0.25, 1, 0.5, 1) 1;
	animation-delay: 0.7s;
}

@keyframes pulse-once {
	0% {
		box-shadow: 0 0 0 0 rgba(121, 136, 124, 0.5);
	}
	70% {
		box-shadow: 0 0 0 15px rgba(121, 136, 124, 0);
	}
	100% {
		box-shadow: 0 0 0 0 rgba(121, 136, 124, 0);
	}
}

@keyframes marquee {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

@keyframes scrollY {
	0% {
		transform: translateY(-100%);
	}
	50% {
		transform: translateY(0);
	}
	100% {
		transform: translateY(100%);
	}
}

@keyframes scrollLine {
	0% {
		transform: translateX(-50%) scaleY(0);
		transform-origin: top;
	}
	45% {
		transform: translateX(-50%) scaleY(1);
		transform-origin: top;
	}
	45.1% {
		transform: translateX(-50%) scaleY(1);
		transform-origin: bottom;
	}
	100% {
		transform: translateX(-50%) scaleY(0);
		transform-origin: bottom;
	}
}

/* ==========================================================================
   8. Media Queries (Desktop First)
   ========================================================================== */
@media screen and (min-width: 769px) {
	.u-hidden-pc {
		display: none !important;
	}
}

@media screen and (max-width: 1300px) {
	.c-hamburger {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		width: 48px;
		height: 48px;
		background: transparent;
		border: none;
		cursor: pointer;
		z-index: 50;
		position: relative;
		gap: 6px;
	}
	.c-hamburger__line {
		width: 24px;
		height: 2px;
		background-color: #2A2D2B;
		transition: all 0.3s ease;
	}
	.c-hamburger.is-active .c-hamburger__line:nth-child(1) {
		transform: translateY(8px) rotate(45deg);
	}
	.c-hamburger.is-active .c-hamburger__line:nth-child(2) {
		opacity: 0;
	}
	.c-hamburger.is-active .c-hamburger__line:nth-child(3) {
		transform: translateY(-8px) rotate(-45deg);
	}

	.l-header__nav {
		position: fixed;
		top: 0;
		right: -100%;
		width: 100%;
		max-width: 400px;
		height: 100vh;
		background-color: #FCFCFB;
		z-index: 45;
		transition: right 0.4s cubic-bezier(0.16, 1, 0.3, 1);
		display: flex;
		flex-direction: column;
		padding: 100px 40px 40px;
		overflow-y: auto;
		box-shadow: -10px 0 30px rgba(0, 0, 0, 0.05);
	}
	.l-header__nav.is-active {
		right: 0;
	}
	.l-header__nav-inner {
		display: flex;
		flex-direction: column;
		gap: 2.5rem;
	}
	.l-header__link {
		font-size: 1.1rem;
		width: fit-content;
	}
	.l-header__nav .c-btn {
		margin-top: 2rem;
		width: 100%;
		min-width: auto;
	}
	.l-header__overlay {
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		background-color: rgba(42, 45, 43, 0.6);
		z-index: 40;
		opacity: 0;
		visibility: hidden;
		transition: all 0.4s ease;
	}
	.l-header__overlay.is-active {
		opacity: 1;
		visibility: visible;
	}
}

@media screen and (max-width: 1024px) {
	.l-header {
		height: 74px;
	}
	.l-container,
	.l-container--md,
	.l-container--lg {
		padding: 0 1.5rem;
	}
	.c-hero {
		flex-direction: column;
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
	.c-hero__content {
		width: 100%;
		margin-bottom: 3rem;
		padding-right: 0;
	}
	.c-hero__title {
		font-size: 3rem;
	}
	.c-hero__img-wrap {
		width: 100%;
	}
	.c-hero__img {
		height: 550px;
		max-height: none;
	}
	.c-scroll-down {
		display: none;
	}
	.c-concept__title {
		font-size: 2.25rem;
	}
	.c-media-card {
		flex-direction: column;
	}
	.c-media-card__content {
		width: 100%;
		padding-top: 1.5rem;
		padding-right: 0;
		order: 2;
	}
	.c-media-card__img-wrap {
		width: 100%;
		order: 1;
	}
	.c-media-card--reverse .c-media-card__content {
		padding-left: 0;
	}
	.c-media-card__title {
		font-size: 1.875rem;
	}
	.c-media-card__img {
		height: 450px;
	}
	.c-works-grid {
		gap: 2rem;
	}
	.c-contact__title {
		font-size: 2.25rem;
	}

	/* === 追記: タブレット横向き(〜1024px)用 === */
	/* 共通レイアウト */
	.l-section {
		padding: 5rem 0;
	}
	main {
		padding-top: 74px;
	}
	main.sub {
		padding-top: 74px;
	}
	/* 共通タイトル */
	.c-title {
		font-size: 2rem;
	}
	h2.c-sec-title {
		margin-bottom: 44px !important;
	}
	h2.c-sec-title .c-sec-title__ja {
		font-size: 1.625rem !important;
	}
	/* ページヘッダー */
	.c-page-header {
		padding: 32px 0 64px;
	}
	.c-page-header__en {
		font-size: 2.25rem;
	}
	/* フッター */
	.l-footer {
		padding-bottom: 5rem;
	}
	/* 重要: .l-footer__top は .l-container--lg と同じ要素に付与されているため、
	   1024px以下で .l-container--lg の padding: 0 1.5rem に上下paddingを上書きされてしまう。
	   ここで明示的にフッター上部の padding を再指定して、上部borderへの密着を防ぐ。 */
	.l-footer__top {
		padding: 4rem 1.5rem 3rem;
	}
	/* 施工事例 */
	.p-showcase {
		gap: 100px;
		margin-bottom: 100px;
	}
	.p-showcase-item__title {
		font-size: 1.5rem;
	}
	.p-now-building {
		padding: 70px 24px 80px;
	}
	/* お問い合わせページ */
	.p-contact-info {
		padding: 80px 24px 50px;
	}
	.p-contact-info__lead {
		font-size: 1.5rem;
	}
	.p-contact-info__tel-box {
		padding: 40px 24px;
	}
	.p-contact-info__tel-num {
		font-size: 2.25rem;
	}
	.p-contact-form {
		padding: 50px 24px 100px;
	}
	.p-contact-form__inner {
		padding: 50px 50px 60px;
	}
	/* お知らせ・コラム */
	.p-news-section {
		padding: 80px 24px 100px;
	}
	.p-single-header {
		padding: 50px 24px 36px;
	}
	.p-single-content {
		padding: 50px 24px 100px;
	}
	/* サンクスページ */
	.p-thanks-links__list {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media screen and (max-width: 992px) {
	.p-concept-hero__content,
	.p-custom-hero__content,
	.p-reno-hero__content {
		padding: 48px;
		width: 90%;
	}
	.p-company-numbers {
		grid-template-columns: repeat(2, 1fr);
	}
	.p-number-card:nth-child(3) {
		grid-column: 1 / -1;
	}
	.p-features {
		flex-direction: column;
		gap: 40px;
	}
	.p-features__visual {
		width: 100%;
		position: relative;
		top: auto;
		height: 400px;
		min-height: auto;
	}
	.p-features__list {
		width: 100%;
	}
	.p-qualifications {
		flex-direction: column;
		gap: 24px;
	}
	.p-reviews {
		grid-template-columns: repeat(2, 1fr);
	}
	.p-company-access {
		flex-direction: column;
	}
	.p-company-access__text-wrap {
		width: 100%;
		padding: 40px;
	}
	.p-company-map {
		width: 100%;
		height: 350px;
	}
	.p-showcase-item,
	.p-showcase-item:nth-child(even) {
		flex-direction: column;
		gap: 40px;
	}
	.p-showcase-item__img-wrap {
		width: 100%;
	}
	.p-showcase-item__content {
		width: 100%;
		padding: 0 20px;
	}
	.p-now-building__list {
		grid-template-columns: 1fr;
	}
	.p-work-hero__content {
		width: 90%;
		padding: 40px;
	}
	.p-work-gallery__grid {
		gap: 16px;
	}
	.p-concept-hero__catch {
		font-size: 1.75rem;
	}
	.p-concept-empathy__list {
		grid-template-columns: repeat(3, 1fr);
		gap: 16px;
	}
	.p-empathy-card {
		padding: 32px 16px;
	}
	.p-empathy-card__text {
		font-size: 1rem;
	}
	.p-service-card__content {
		padding: 32px 24px;
	}
	.p-feature-item {
		gap: 40px;
	}
	.p-works-collage {
		flex-direction: column;
		gap: 60px;
	}
	.p-works-collage__content {
		width: 100%;
		padding-right: 0;
		text-align: center;
	}
	.p-works-collage__images {
		width: 100%;
		height: 450px;
	}
	.p-custom-quality__inner {
		flex-direction: column;
		gap: 40px;
	}
	.p-custom-quality__img-wrap,
	.p-custom-quality__content {
		width: 100%;
	}
	.p-warranty-list {
		grid-template-columns: repeat(2, 1fr);
	}
	.p-warranty-card:last-child {
		grid-column: 1 / -1;
	}
	.p-reno-problems__list {
		grid-template-columns: 1fr;
	}
	.p-concept-message__inner {
		padding: 48px;
	}

	/* === 追記: タブレット縦向き(〜992px)用 === */
	/* コンセプトページ - 想いの項目 */
	.p-promise-item,
	.p-promise-item:nth-child(even) {
		flex-direction: column;
		gap: 40px;
	}
	.p-promise-item__img-wrap,
	.p-promise-item__content {
		width: 100%;
	}
	/* サンクスページ - カード調整 */
	.p-thanks-links__card {
		padding: 1.5rem 1.25rem;
	}
	.p-thanks-links__card-title {
		font-size: 1.15rem;
	}
	/* お問い合わせページ */
	.p-contact-info {
		padding: 70px 24px 48px;
	}
	.p-contact-form__inner {
		padding: 48px 40px 60px;
	}
	/* 単一記事 */
	.p-single-header__title {
		font-size: 1.75rem;
	}
}

@media screen and (max-width: 768px) {
	.u-hidden-sp {
		display: none !important;
	}
	.l-header {
		padding: 1rem 1.5rem;
	}
	.l-header__logo {
		font-size: 1.25rem;
	}
	.l-header__sub {
		font-size: 10px;
	}

	.l-header__nav {
		max-width: 100%;
		padding: 100px 24px 40px;
	}

	.c-floating-btn {
		bottom: 0;
		right: 0;
		padding: 0.7rem;
	}
	.c-floating-btn svg {
		font-size: 1.5rem;
	}
	.c-hero__title {
		font-size: 2.25rem;
	}
	.c-hero__title-line {
		display: none;
	}
	.c-hero__desc {
		font-size: 0.875rem;
	}
	.c-hero__link-line {
		display: none;
	}
	.c-hero__img-frame {
		display: none;
	}
	.c-hero__img {
		height: 400px;
	}
	.c-marquee-sec__mask-l,
	.c-marquee-sec__mask-r {
		width: 4rem;
	}
	.c-marquee__img {
		width: 280px;
		height: 180px;
	}
	.c-bg-svg {
		height: 200px;
	}
	.c-concept__title {
		font-size: 1.875rem;
	}
	.c-concept__text {
		font-size: 0.875rem;
	}
	.c-media-card__title {
		font-size: 1.5rem;
	}
	.c-media-card__frame {
		display: none;
	}
	.c-media-card__img {
		height: 350px;
	}
	.c-media-card__content--row-reverse {
		order: 2;
	}
	.c-works-grid {
		grid-template-columns: 1fr;
	}
	.c-works-header__link {
		display: none;
	}
	.c-work-card--mt-lg {
		margin-top: 0;
	}
	.c-work-card--mt-minus {
		margin-top: 0;
	}
	.c-work-card__img-wrap {
		height: 350px;
	}
	.c-vertical-text {
		display: none;
	}
	.c-contact__title {
		font-size: 1.875rem;
	}
	.c-contact__desc {
		font-size: 0.875rem;
	}
	.c-btn-outline-light {
		font-size: 0.75rem;
	}
	.l-footer__top {
		flex-direction: column;
	}
	.l-footer__nav {
		justify-content: flex-start;
		gap: 3rem;
	}
	.l-footer__bottom {
		flex-direction: column;
	}
	.l-footer__sns {
		margin-bottom: 1.5rem;
	}
	.l-page-top::before,
	.l-page-top::after {
		height: 60px;
		bottom: -30px;
	}
	.c-breadcrumb {
		padding: 12px 20px;
	}
	.c-page-header {
		padding: 20px 0 60px;
	}
	.c-page-header__en {
		font-size: 2rem;
	}
	.p-concept-hero {
		margin: 60px auto 0;
		padding: 0 20px;
	}
	.p-custom-hero,
	.p-reno-hero {
		margin: 40px auto 0;
		padding: 0 20px;
	}
	.p-concept-hero__img-wrap,
	.p-custom-hero__img-wrap,
	.p-reno-hero__img-wrap {
		aspect-ratio: 4 / 3;
		min-height: auto;
		border-radius: 8px;
	}
	.p-concept-hero__content,
	.p-custom-hero__content,
	.p-reno-hero__content {
		width: 95%;
		padding: 40px 24px;
		margin-top: -40px;
		text-align: left;
	}
	.p-concept-hero__catch,
	.p-custom-hero__catch,
	.p-reno-hero__catch {
		font-size: 1.5rem;
		margin-bottom: 16px;
		line-height: 1.5;
	}
	.p-concept-hero__lead,
	.p-custom-hero__lead,
	.p-reno-hero__lead {
		font-size: 0.95rem;
	}
	.p-company-section,
	.p-concept-empathy,
	.p-concept-promise,
	.p-concept-services,
	.p-custom-features,
	.p-custom-works,
	.p-custom-quality,
	.p-custom-flow,
	.p-custom-warranty,
	.p-custom-faq,
	.p-reno-problems,
	.p-reno-features,
	.p-reno-menu,
	.p-reno-works,
	.p-reno-flow,
	.p-reno-faq,
	.p-works-section {
		padding: 60px 20px;
	}

	.c-contact-area {
		padding: 60px 20px;
	}

	.c-contact-area__catch {
		font-size: 1.35rem;
	}

	.c-contact-area__text {
		margin-bottom: 32px;
	}

	.c-contact-area__cards {
		flex-direction: column;
		gap: 16px;
	}

	.c-contact-card {
		padding: 32px 20px;
	}

	.c-contact-area__microcopy {
		font-size: 0.75rem;
		margin-bottom: 16px;
	}

	.c-contact-card__btn {
		width: 100%;
		max-width: 100%;
		padding: 16px;
	}

	.c-contact-area__tel-num {
		font-size: 2rem;
	}


	.p-custom-works,
	.p-reno-works {
		overflow: hidden;
	}

	.c-btn-primary {
		width: 100%;
		min-width: auto;
		padding: 16px 20px;
	}

	.p-company-section:first-of-type {
		padding-top: 100px;
	}
	.p-company-numbers {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.p-number-card {
		padding: 32px 20px;
	}
	.p-number-card__num {
		font-size: 3rem;
	}
	.p-features__visual {
		height: 300px;
	}
	.p-feature-card {
		padding: 32px 24px;
	}
	.p-feature-card__num {
		font-size: 1.75rem;
	}
	.p-feature-card__title {
		font-size: 1.25rem;
	}
	.p-company-table th,
	.p-company-table td {
		display: block;
		width: 100%;
		padding: 16px 0;
	}
	.p-company-table th {
		border-bottom: none;
		padding-bottom: 8px;
	}
	.p-company-table tr:first-child th {
		border-top: none;
		padding-top: 0;
	}
	.p-qualifications-card {
		padding: 32px 24px;
	}
	.p-qualifications-list li {
		flex-direction: column;
		gap: 4px;
	}
	.p-qualifications-list__desc,
	.p-qualifications-list__count {
		text-align: left;
	}
	.p-qualifications-list__desc.is-left {
		max-width: 100%;
	}
	.p-reviews {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.p-faq summary {
		padding: 20px 30px 20px 0;
		font-size: 1rem;
	}
	.p-works-banner {
		padding: 0 20px;
		margin-bottom: 60px;
	}
	.p-works-banner__img-wrap {
		width: 100%;
		height: 260px;
	}
	.p-works-banner__content {
		position: relative;
		bottom: auto;
		left: auto;
		width: 90%;
		margin: -40px auto 0;
		padding: 32px 24px;
	}
	.p-works-banner__content::after {
		top: -8px;
		left: -8px;
	}
	.p-works-banner__title-ja {
		font-size: 1.5rem;
	}
	.p-works-banner__sub {
		font-size: 0.9rem;
	}
	.p-company-area {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		padding: 20px;
	}
	.p-company-access__text-wrap {
		padding: 32px 24px;
	}
	.p-works-intro {
		font-size: 1rem;
		margin-bottom: 60px;
		text-align: left;
	}
	.p-showcase {
		gap: 80px;
		margin-bottom: 80px;
	}
	.p-showcase-item__title {
		font-size: 1.35rem;
		margin-bottom: 16px;
	}
	.p-showcase-item__desc {
		font-size: 0.9rem;
		margin-bottom: 24px;
	}
	.p-showcase-item__review {
		padding: 12px 16px;
		margin-bottom: 20px;
		font-size: 0.8rem;
	}
	.p-showcase-item__tags {
		margin-bottom: 24px;
		padding-bottom: 24px;
		gap: 8px;
	}
	.p-showcase-item__content {
		padding: 0;
	}
	.p-now-building {
		padding: 80px 20px;
	}
	.p-building-card {
		flex-direction: column;
	}
	.p-building-card__img-wrap {
		width: 100%;
		height: 200px;
		min-height: auto;
	}
	.p-building-card__content {
		width: 100%;
		padding: 24px;
	}
	.p-work-hero {
		padding: 0 20px;
		margin: 24px auto 60px;
	}
	.p-work-hero__img-wrap {
		aspect-ratio: 4 / 3;
		border-radius: 8px;
	}
	.p-work-hero__content {
		width: 95%;
		padding: 32px 20px;
		margin-top: -40px;
	}
	.p-work-hero__title {
		font-size: 1.35rem;
	}
	.p-work-hero__tags {
		flex-direction: row;
		gap: 8px;
		justify-content: center;
	}
	.p-work-concept {
		padding: 0 20px;
		margin-bottom: 80px;
	}
	.p-work-concept__lead {
		font-size: 1.25rem;
		text-align: left;
	}
	.p-work-gallery {
		padding: 0 20px;
		margin-bottom: 80px;
	}
	.p-work-gallery__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.p-work-gallery__item--large {
		grid-column: span 1;
	}
	.p-work-data {
		padding: 0 20px;
		margin-bottom: 80px;
	}
	.p-work-data__table th,
	.p-work-data__table td {
		display: block;
		width: 100%;
		padding: 20px 24px;
		border: none;
	}
	.p-work-data__table th {
		padding-top: 24px;
		padding-bottom: 4px;
		border-top: 1px solid #fff;
	}
	.p-work-data__table tr:first-child th {
		border-top: none;
	}
	.p-work-voice-text {
		padding: 0 20px;
		margin-bottom: 80px;
	}
	.p-work-voice-text__inner {
		padding: 40px 0;
	}
	.p-work-voice-text__body {
		font-size: 0.95rem;
	}
	.p-work-nav {
		padding: 40px 20px;
		flex-direction: column;
		gap: 32px;
	}
	.p-work-nav__link {
		width: 100%;
		text-align: center;
	}
	.p-work-nav__link--prev,
	.p-work-nav__link--next {
		text-align: center;
	}
	.p-work-nav__archive {
		order: -1;
		width: 100%;
		padding-bottom: 32px;
		border-bottom: 1px solid #E5E7EB;
		margin-bottom: 8px;
	}
	.p-concept-empathy__lead {
		font-size: 1.35rem;
		margin-bottom: 32px;
		text-align: left;
	}
	.p-concept-empathy__list {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.p-empathy-card {
		padding: 24px;
		display: flex;
		align-items: center;
		gap: 20px;
		text-align: left;
	}
	.p-empathy-card__svg {
		margin-bottom: 0;
		width: 40px;
		height: 40px;
		flex-shrink: 0;
	}
	.p-concept-empathy__message {
		margin-top: 40px;
		text-align: left;
		font-size: 0.95rem;
	}
	.p-concept-voices {
		padding: 30px 20px 60px;
	}

	.p-concept-services__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.p-service-card__content {
		padding: 32px 24px;
	}
	.p-service-card__title {
		font-size: 1.35rem;
	}
	.p-feature-list {
		gap: 60px;
	}
	.p-feature-item,
	.p-feature-item:nth-child(even) {
		flex-direction: column;
		gap: 24px;
		align-items: flex-start;
	}
	.p-feature-item__img-wrap {
		width: 100%;
		border-radius: 8px;
	}
	.p-feature-item__content {
		width: 100%;
	}
	.p-feature-item__title {
		font-size: 1.35rem;
		margin-bottom: 16px;
	}
	.p-works-collage {
		flex-direction: column;
		gap: 40px;
	}
	.p-works-collage__content {
		width: 100%;
		padding-right: 0;
		text-align: left;
	}
	.p-works-collage__title-ja {
		font-size: 1.5rem;
	}
	.p-works-collage__sub {
		font-size: 0.9rem;
	}
	.p-works-collage__images {
		width: 100%;
		height: 320px;
	}
	.p-works-collage__img--1 {
		width: 80%;
	}
	.p-works-collage__img--2 {
		width: 45%;
		top: 0;
		left: -5%;
	}
	.p-works-collage__img--3 {
		width: 45%;
		bottom: -5%;
		right: -5%;
	}
	.p-custom-quality__lead {
		font-size: 1.35rem;
	}
	.p-flow-list {
		padding-left: 56px;
	}
	.p-flow-list::before {
		left: 15px;
	}
	.p-flow-item::before,
	.p-flow-item::after {
		width: 32px;
		height: 32px;
		left: -56px;
		font-size: 0.85rem;
		border-width: 3px;
	}
	.p-flow-item {
		margin-bottom: 48px;
	}
	.p-flow-item__title {
		font-size: 1.25rem;
	}
	.p-flow-item__body {
		padding: 24px;
	}
	.p-warranty-list {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.p-warranty-card {
		padding: 32px 24px;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		text-align: left;
	}
	.p-warranty-card:last-child {
		grid-column: auto;
	}
	.p-warranty-card__icon {
		margin-bottom: 16px;
	}
	.p-reno-problems__lead {
		font-size: 1.35rem;
		text-align: left;
		margin-bottom: 32px;
	}
	.p-menu-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.p-menu-card__img-wrap {
		aspect-ratio: 16 / 9;
	}
	.p-menu-card__content {
		padding: 24px 20px;
	}
	.p-menu-card__title {
		font-size: 1.25rem;
	}
	.p-contact-form {
		padding: 40px 20px 80px;
	}
	.p-contact-form__inner {
		padding: 40px 24px;
	}
	.p-form-header {
		padding-bottom: 24px;
		margin-bottom: 32px;
	}
	.p-form-header__title {
		font-size: 1.25rem;
		margin-bottom: 16px;
		gap: 8px;
	}
	.p-form-header__icon {
		font-size: 24px;
	}
	.p-form-group {
		flex-direction: column;
		margin-bottom: 16px;
		padding: 20px 16px;
		margin-left: -16px;
		margin-right: -16px;
	}
	.p-form-label {
		width: 100%;
		padding-top: 0;
		margin-bottom: 12px;
		font-size: 0.95rem;
		align-items: center;
	}
	.p-form-label__req,
	.p-form-label__opt {
		margin-top: 0;
	}
	.p-form-control {
		width: 100%;
	}
	.p-form-radio-group .wpcf7-radio {
		padding-top: 0;
	}
	.p-form-submit {
		margin-top: 40px;
		padding-top: 32px;
	}
	.p-form-submit__note {
		font-size: 0.8rem;
		text-align: left;
	}
	.p-form-submit .c-btn-primary {
		width: 100%;
		max-width: 100%;
		padding: 16px;
	}
	.p-concept-message {
		padding: 60px 20px 30px;
	}
	.p-concept-message__inner {
		padding: 40px 24px;
	}
	.p-concept-message__inner::before {
		font-size: 4rem;
		top: 10px;
		left: 16px;
	}
	.p-concept-message__lead {
		font-size: 1.25rem;
		text-align: left;
		margin-bottom: 24px;
	}
	.p-concept-message__text {
		font-size: 0.95rem;
		margin-bottom: 32px;
	}

	.p-news-section {
		padding: 60px 20px 80px;
	}

	.p-news-item {
		flex-direction: column;
		align-items: flex-start;
		padding: 24px 16px;
		gap: 12px;
	}

	.p-news-item__meta {
		width: 100%;
	}

	.p-news-item__title {
		font-size: 1rem;
	}

	.p-news-item__arrow {
		display: none;
	}

	.p-pagination {
		margin-top: 40px;
	}

	.p-pagination .page-numbers {
		width: 32px;
		height: 32px;
		font-size: 0.8rem;
	}

	.p-single-header {
		padding: 40px 20px 32px;
	}

	.p-single-header__title {
		font-size: 1.5rem;
	}

	.p-single-content {
		padding: 40px 20px 80px;
	}

	.p-single-content__thumb {
		margin-bottom: 32px;
		border-radius: 8px;
	}

	.p-single-content__body h2 {
		font-size: 1.35rem;
		margin-top: 2.5rem;
	}

	.p-single-content__body h3 {
		font-size: 1.15rem;
		margin-top: 2rem;
	}
	.l-section--news {
		padding: 3rem 0; /* スマホ時はさらにコンパクトに */
	}

	.l-section--news .c-section-header {
		margin-bottom: 2rem;
	}
	.p-top-news__link {
		flex-direction: column;
		align-items: flex-start;
		padding: 1.5rem 1rem;
		gap: 1rem;
	}

	.p-top-news__meta {
		width: 100%;
		gap: 1rem;
	}

	.p-top-news__title {
		font-size: 1rem;
	}
	.p-form-checkbox-group .wpcf7-checkbox {
		padding-top: 0;
	}

	.p-works-tabs {
		padding: 0 20px 32px;
	}
	
	.p-works-tabs__list {
		gap: 8px;
	}
	
	.p-works-tabs__link {
		padding: 8px 16px;
		font-size: 0.85rem;
	}
	.p-work-drawings {
		padding: 0 20px;
		margin-bottom: 80px;
	}
	.p-work-drawings__list {
		gap: 32px;
	}

	.p-thanks-message {
		padding: 2.5rem 1.25rem 1.5rem;
	}

	.p-thanks-message__icon {
		width: 52px;
		height: 52px;
	}

	.p-thanks-message__lead {
		font-size: 1.375rem;
	}

	.p-thanks-message__text {
		font-size: 0.95rem;
	}

	.p-thanks-message__note {
		padding: 1.25rem 1.25rem;
	}

	.p-thanks-links {
		padding: 3rem 1.25rem 4rem;
	}

	.p-thanks-links__title-ja {
		font-size: 1.25rem;
	}

	.p-thanks-links__list {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	/* === 追記: スマートフォン(〜768px)用 === */
	/* 共通レイアウト */
	.l-section {
		padding: 3.5rem 0;
	}
	main {
		padding-top: 74px;
	}
	main.sub {
		padding-top: 74px;
	}
	/* 共通タイトル */
	.c-title {
		font-size: 1.625rem;
	}
	h2.c-sec-title {
		margin-bottom: 36px !important;
	}
	h2.c-sec-title .c-sec-title__ja {
		font-size: 1.5rem !important;
		letter-spacing: 0.03em !important;
		line-height: 1.5 !important;
	}
	h2.c-sec-title .c-sec-title__en {
		font-size: 0.8rem !important;
	}
	.c-page-header__ja {
		font-size: 0.9rem;
	}
	/* ヒーロー */
	.c-hero {
		padding-top: 5rem;
		padding-bottom: 2rem;
		min-height: auto;
	}
	/* フッター */
	.l-footer {
		padding-bottom: 4rem;
	}
	.l-footer__logo {
		font-size: 1.25rem;
	}
	/* l-footer__top の上部padding復活(.l-container--lg との衝突回避) */
	.l-footer__top {
		padding: 3.5rem 1.5rem 2.5rem;
	}
	/* 共通セクションタイトルリンク */
	.c-section-header {
		margin-bottom: 3rem;
	}
	/* お問い合わせページ */
	.p-contact-info {
		padding: 60px 20px 40px;
	}
	.p-contact-info__lead {
		font-size: 1.25rem;
	}
	.p-contact-info__text {
		font-size: 0.9rem;
		line-height: 1.85;
	}
	.p-contact-promise {
		padding: 12px 20px;
		font-size: 0.85rem;
		margin-bottom: 32px;
		flex-wrap: wrap;
		gap: 8px;
		text-align: left;
		line-height: 1.6;
	}
	.p-contact-promise svg {
		font-size: 20px;
	}
	.p-contact-info__tel-box {
		padding: 28px 20px;
	}
	.p-contact-info__tel-label {
		font-size: 0.8rem;
		line-height: 1.5;
	}
	.p-contact-info__tel-num {
		font-size: 1.75rem;
		gap: 8px;
	}
	.p-contact-info__tel-num svg {
		font-size: 24px;
	}
	.p-contact-info__tel-time {
		font-size: 0.78rem;
	}
	/* コンセプト・住宅ページ - 想いの項目 */
	.p-promise-item,
	.p-promise-item:nth-child(even) {
		flex-direction: column;
		gap: 24px;
	}
	.p-promise-item__img-wrap,
	.p-promise-item__content {
		width: 100%;
	}
	.p-promise-item__title {
		font-size: 1.35rem;
		margin-bottom: 16px;
		line-height: 1.5;
	}
	.p-promise-item__text {
		font-size: 0.92rem;
		line-height: 1.9;
	}
	/* リフォーム - 問題カード */
	.p-problem-card {
		padding: 24px 20px;
	}
	.p-problem-card__icon {
		font-size: 32px;
	}
	.p-problem-card__title {
		font-size: 1.1rem;
	}
	/* 注文住宅 - 保証カード */
	.p-warranty-card__icon {
		font-size: 36px;
	}
	.p-warranty-card__title {
		font-size: 1.15rem;
	}
	/* 共通テーブル(会社概要・施工事例) */
	.p-company-table th {
		font-size: 1rem;
	}
	/* お知らせ・コラム単一ページ */
	.p-single-header__title {
		font-size: 1.5rem;
	}
	/* サンクスページ */
	.p-thanks-links__card {
		padding: 1.5rem 1.25rem;
	}
	.p-thanks-links__card-title {
		font-size: 1.2rem;
	}
	.p-thanks-links__card-text {
		font-size: 0.85rem;
		line-height: 1.7;
	}
	/* プライバシーポリシー */
	.privacypolicy-body {
		padding-top: 24px;
	}
	.privacypolicy-box {
		padding: 20px;
		margin: 32px 0 24px;
	}
}

@media screen and (max-width: 640px) {
	.c-contact__buttons {
		flex-direction: column;
	}

	/* === 追記: 中サイズスマホ(〜640px)用 === */
	.c-page-header__en {
		font-size: 1.75rem;
	}
	.c-hero__title {
		font-size: 1.875rem;
	}
	.c-hero__img {
		height: 360px;
	}
	.c-concept__title {
		font-size: 1.625rem;
	}
	.c-media-card__title {
		font-size: 1.35rem;
	}
	.c-contact__title {
		font-size: 1.625rem;
	}
	.p-contact-info__tel-num {
		font-size: 1.5rem;
	}
	.c-contact-area__tel-num {
		font-size: 1.75rem;
	}
	.p-form-header__title {
		font-size: 1.15rem;
		flex-direction: column;
		gap: 6px;
	}
	.p-thanks-message__lead {
		font-size: 1.25rem;
	}
}

/* ==========================================================================
   9. 追加メディアクエリ (Small Smartphones)
   ========================================================================== */
@media screen and (max-width: 480px) {
	/* === 小型スマートフォン用 === */
	/* === セーフティネット: 左右並びを徹底的に縦並びへ === */
	.p-promise-item,
	.p-promise-item:nth-child(even),
	.p-feature-item,
	.p-feature-item:nth-child(even),
	.p-features,
	.p-qualifications,
	.p-company-access,
	.p-custom-quality__inner,
	.p-works-collage,
	.p-showcase-item,
	.p-showcase-item:nth-child(even),
	.p-building-card {
		flex-direction: column !important;
	}
	.p-promise-item__img-wrap,
	.p-promise-item__content,
	.p-feature-item__img-wrap,
	.p-feature-item__content,
	.p-features__visual,
	.p-features__list,
	.p-custom-quality__img-wrap,
	.p-custom-quality__content,
	.p-works-collage__content,
	.p-works-collage__images,
	.p-showcase-item__img-wrap,
	.p-showcase-item__content,
	.p-company-access__text-wrap,
	.p-company-map,
	.p-building-card__img-wrap,
	.p-building-card__content {
		width: 100% !important;
	}
	.p-promise-item__title {
		font-size: 1.05rem;
		line-height: 1.55;
		margin-bottom: 12px;
	}
	.p-promise-item__text {
		font-size: 0.88rem;
	}
	/* === ここまでセーフティネット === */

	/* コンテナ余白(小型スマホ向け) */
	.l-container,
	.l-container--md,
	.l-container--lg {
		padding: 0 1rem;
	}

	/* ヘッダー */
	.l-header {
		padding: 0.75rem 1rem;
	}
	.l-header__logo {
		font-size: 1.1rem;
	}
	/* 共通レイアウト */
	.l-section {
		padding: 3rem 0;
	}
	main {
		padding-top: 74px;
	}
	main.sub {
		padding-top: 74px;
	}
	/* 共通タイトル */
	.c-title {
		font-size: 1.5rem;
		line-height: 1.5;
	}
	h2.c-sec-title {
		margin-bottom: 28px !important;
	}
	h2.c-sec-title .c-sec-title__ja {
		font-size: 1.3rem !important;
		line-height: 1.5 !important;
	}
	h2.c-sec-title .c-sec-title__en {
		font-size: 0.72rem !important;
	}
	/* ページヘッダー */
	.c-page-header {
		padding: 16px 0 48px;
	}
	.c-page-header__en {
		font-size: 1.625rem;
	}
	.c-page-header__ja {
		font-size: 0.85rem;
		gap: 12px;
	}
	.c-page-header__ja::before,
	.c-page-header__ja::after {
		width: 16px;
	}
	/* パンくず */
	.c-breadcrumb ul {
		font-size: 0.7rem;
		gap: 8px;
	}
	.c-breadcrumb li:not(:last-child)::after {
		margin-left: 8px;
	}
	/* TOPページ - ヒーロー */
	.c-hero {
		padding-top: 4rem;
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}
	.c-hero__title {
		font-size: 1.75rem;
		line-height: 1.4;
	}
	.c-hero__desc {
		font-size: 0.9rem;
		line-height: 1.95;
	}
	.c-hero__img {
		height: 320px;
	}
	.c-concept__title {
		font-size: 1.625rem;
		line-height: 1.4;
	}
	.c-concept__text {
		font-size: 0.9rem;
		line-height: 1.95;
	}
	.c-media-card__title {
		font-size: 1.35rem;
		line-height: 1.5;
	}
	.c-media-card__img {
		height: 260px;
	}
	.c-marquee__img {
		width: 220px;
		height: 150px;
	}
	/* TOPコンタクトエリア */
	.c-contact {
		padding: 3rem 0 3.5rem;
	}
	.c-contact__title {
		font-size: 1.625rem;
		line-height: 1.4;
	}
	.c-contact__desc {
		font-size: 0.9rem;
		line-height: 1.85;
	}
	/* 共通お問い合わせエリア */
	.c-contact-area {
		padding: 48px 16px;
	}
	.c-contact-area__catch {
		font-size: 1.3rem;
		line-height: 1.5;
	}
	.c-contact-area__text {
		font-size: 0.9rem;
		line-height: 1.85;
	}
	.c-contact-area__tel-num {
		font-size: 1.6rem;
	}
	.c-contact-area__tel-label {
		font-size: 0.85rem;
	}
	.c-contact-area__microcopy {
		font-size: 0.75rem;
	}
	/* 各ページ - ヒーロー */
	.p-concept-hero,
	.p-custom-hero,
	.p-reno-hero {
		padding: 0 16px;
	}
	.p-concept-hero__content,
	.p-custom-hero__content,
	.p-reno-hero__content {
		padding: 32px 20px;
	}
	.p-concept-hero__catch,
	.p-custom-hero__catch,
	.p-reno-hero__catch {
		font-size: 1.4rem;
		line-height: 1.5;
		margin-bottom: 16px;
	}
	.p-concept-hero__lead,
	.p-custom-hero__lead,
	.p-reno-hero__lead {
		font-size: 0.92rem;
		line-height: 1.95;
	}
	/* セクション余白(共通) */
	.p-company-section,
	.p-concept-empathy,
	.p-concept-promise,
	.p-concept-services,
	.p-custom-features,
	.p-custom-works,
	.p-custom-quality,
	.p-custom-flow,
	.p-custom-warranty,
	.p-custom-faq,
	.p-reno-problems,
	.p-reno-features,
	.p-reno-menu,
	.p-reno-works,
	.p-reno-flow,
	.p-reno-faq,
	.p-works-section {
		padding: 48px 16px;
	}
	.p-concept-message {
		padding: 48px 16px 24px;
	}
	.p-concept-message__inner {
		padding: 32px 20px;
	}
	.p-concept-message__inner::before {
		font-size: 3rem;
	}
	.p-concept-message__lead {
		font-size: 1.2rem;
		line-height: 1.65;
	}
	.p-concept-message__text {
		font-size: 0.92rem;
		line-height: 2;
	}
	/* コンセプト各種 */
	.p-concept-empathy__lead {
		font-size: 1.25rem;
		line-height: 1.55;
	}
	.p-empathy-card {
		padding: 20px;
		gap: 16px;
	}
	.p-empathy-card__svg {
		width: 32px;
		height: 32px;
		font-size: 32px;
	}
	.p-empathy-card__text {
		font-size: 0.92rem;
		line-height: 1.75;
	}
	/* 注文住宅 */
	.p-custom-quality__lead {
		font-size: 1.25rem;
		line-height: 1.55;
	}
	.p-custom-quality__inner {
		gap: 32px;
	}
	.p-warranty-card {
		padding: 24px 20px;
	}
	.p-warranty-card__title {
		font-size: 1.1rem;
	}
	.p-warranty-card__icon {
		font-size: 32px;
	}
	/* リフォーム */
	.p-reno-problems__lead {
		font-size: 1.25rem;
		line-height: 1.55;
	}
	.p-problem-card {
		padding: 20px 16px;
	}
	.p-problem-card__title {
		font-size: 1.05rem;
	}
	.p-problem-card__text {
		font-size: 0.88rem;
	}
	/* Features (共通) */
	.p-feature-list {
		gap: 48px;
	}
	.p-feature-item__title {
		font-size: 1.2rem;
		line-height: 1.5;
		margin-bottom: 14px;
	}
	.p-feature-item__text {
		font-size: 0.92rem;
		line-height: 1.85;
	}
	.p-feature-card {
		padding: 24px 20px;
	}
	.p-feature-card__title {
		font-size: 1.1rem;
		line-height: 1.55;
	}
	.p-feature-card__text {
		font-size: 0.9rem;
	}
	/* Service Card */
	.p-service-card__content {
		padding: 24px 20px;
	}
	.p-service-card__title {
		font-size: 1.15rem;
		line-height: 1.5;
	}
	.p-service-card__text {
		font-size: 0.9rem;
	}
	/* Flow */
	.p-flow-list {
		padding-left: 48px;
	}
	.p-flow-list::before {
		left: 13px;
	}
	.p-flow-item::before,
	.p-flow-item::after {
		width: 28px;
		height: 28px;
		left: -48px;
		font-size: 0.8rem;
	}
	.p-flow-item__title {
		font-size: 1.1rem;
	}
	.p-flow-item__body {
		padding: 20px 16px;
		font-size: 0.9rem;
	}
	/* Reno menu */
	.p-menu-card__content {
		padding: 20px 16px;
	}
	.p-menu-card__title {
		font-size: 1.15rem;
	}
	/* お問い合わせページ */
	.p-contact-info {
		padding: 48px 16px 32px;
	}
	.p-contact-info__lead {
		font-size: 1.25rem;
		line-height: 1.5;
	}
	.p-contact-promise {
		padding: 10px 16px;
		font-size: 0.82rem;
		line-height: 1.6;
	}
	.p-contact-promise svg {
		font-size: 18px;
	}
	.p-contact-info__tel-box {
		padding: 24px 16px;
	}
	.p-contact-info__tel-num {
		font-size: 1.5rem;
		gap: 8px;
	}
	.p-contact-info__tel-num svg {
		font-size: 22px;
	}
	.p-contact-info__tel-time {
		font-size: 0.75rem;
	}
	.p-contact-form {
		padding: 32px 16px 64px;
	}
	.p-contact-form__inner {
		padding: 32px 20px;
	}
	.p-form-header__title {
		font-size: 1.15rem;
		line-height: 1.5;
	}
	.p-form-header__icon {
		font-size: 22px;
	}
	.p-form-header__text {
		font-size: 0.88rem;
		line-height: 1.75;
	}
	.p-form-group {
		padding: 16px 12px;
		margin-left: -12px;
		margin-right: -12px;
	}
	.p-form-label {
		font-size: 0.9rem;
	}
	/* ★iOS Safariの自動ズームを防ぐため、フォーム入力欄は16px(1rem)以上を維持 */
	.c-input,
	.c-select,
	.c-textarea {
		padding: 12px 16px;
		font-size: 1rem;
	}
	/* 施工事例 */
	.p-works-intro {
		font-size: 0.95rem;
		margin-bottom: 48px;
	}
	.p-showcase {
		gap: 60px;
		margin-bottom: 60px;
	}
	.p-showcase-item__title {
		font-size: 1.2rem;
		line-height: 1.5;
	}
	.p-showcase-item__desc {
		font-size: 0.88rem;
		line-height: 1.85;
	}
	.p-showcase-item__review {
		font-size: 0.83rem;
		line-height: 1.7;
	}
	.p-now-building {
		padding: 48px 16px 56px;
	}
	.p-building-card__content {
		padding: 20px 16px;
	}
	.p-building-card__title {
		font-size: 1.1rem;
	}
	.p-work-hero__content {
		padding: 24px 16px;
	}
	.p-work-hero__title {
		font-size: 1.2rem;
		line-height: 1.5;
	}
	.p-work-concept__lead {
		font-size: 1.15rem;
		line-height: 1.65;
	}
	.p-works-collage__title-ja {
		font-size: 1.25rem;
	}
	.p-works-banner__title-ja {
		font-size: 1.25rem;
	}
	.p-works-banner__content {
		padding: 24px 18px;
	}
	.p-works-tabs {
		padding: 0 16px 24px;
	}
	.p-works-tabs__link {
		padding: 6px 14px;
		font-size: 0.78rem;
	}
	.p-work-data__table th,
	.p-work-data__table td {
		padding: 16px 18px;
	}
	.p-work-voice-text__inner {
		padding: 32px 0;
	}
	.p-work-voice-text__body {
		font-size: 0.9rem;
	}
	/* お知らせ・コラム */
	.p-news-section {
		padding: 48px 16px 64px;
	}
	.p-news-item {
		padding: 20px 12px;
	}
	.p-news-item__title {
		font-size: 1rem;
		line-height: 1.55;
	}
	.p-single-header {
		padding: 32px 16px 28px;
	}
	.p-single-header__title {
		font-size: 1.3rem;
		line-height: 1.5;
	}
	.p-single-content {
		padding: 32px 16px 64px;
	}
	.p-single-content__body {
		font-size: 0.95rem;
		line-height: 2;
	}
	.p-single-content__body h2 {
		font-size: 1.2rem;
		margin-top: 2rem;
		line-height: 1.5;
	}
	.p-single-content__body h3 {
		font-size: 1.1rem;
		margin-top: 1.75rem;
	}
	/* サンクスページ */
	.p-thanks-message {
		padding: 2rem 1rem 1.25rem;
	}
	.p-thanks-message__lead {
		font-size: 1.25rem;
		line-height: 1.5;
	}
	.p-thanks-message__icon {
		width: 44px;
		height: 44px;
	}
	.p-thanks-message__note {
		padding: 1rem;
	}
	.p-thanks-message__note p {
		font-size: 0.85rem;
		line-height: 1.75;
	}
	.p-thanks-links {
		padding: 2.5rem 1rem 3rem;
	}
	.p-thanks-links__title-ja {
		font-size: 1.2rem;
	}
	.p-thanks-links__card {
		padding: 1.25rem 1rem;
	}
	.p-thanks-links__card-title {
		font-size: 1.1rem;
	}
	.p-thanks-links__card-text {
		font-size: 0.85rem;
		line-height: 1.7;
	}
	/* プライバシーポリシー */
	.privacypolicy-box {
		padding: 16px;
	}
	/* ページネーション */
	.p-pagination .page-numbers {
		width: 28px;
		height: 28px;
		font-size: 0.75rem;
	}
	.p-pagination .prev,
	.p-pagination .next {
		padding: 0 12px;
	}
	/* 会社概要 */
	.p-features {
		gap: 32px;
	}
	.p-features__visual {
		height: 240px;
	}
	.p-feature-card__num {
		font-size: 1.5rem;
	}
	.p-number-card {
		padding: 24px 16px;
	}
	.p-number-card__num {
		font-size: 2.5rem;
	}
	.p-number-card__num span.unit {
		font-size: 1rem;
	}
	.p-number-card__text {
		font-size: 0.95rem;
	}
	.p-qualifications-card {
		padding: 24px 20px;
	}
	.p-qualifications-card__title {
		font-size: 1.1rem;
	}
	.p-qualifications-list {
		font-size: 0.9rem;
	}
	.p-company-area {
		padding: 16px;
	}
	.p-company-area__title {
		font-size: 1rem;
	}
	.p-company-access__text-wrap {
		padding: 24px 18px;
	}
	.p-company-access__name {
		font-size: 1.15rem;
	}
	.p-company-access__details {
		font-size: 0.9rem;
	}
	.p-company-table th {
		font-size: 1rem;
	}
	.p-company-table td {
		font-size: 0.92rem;
	}
	/* フッター */
	.l-footer {
		padding-bottom: 3rem;
	}
	/* l-footer__top の余白(更にコンパクトに) */
	.l-footer__top {
		padding: 3rem 1rem 2rem;
		gap: 2rem;
	}
	/* ★重要: 小型スマホでは縦一列で表示 */
	.l-footer__nav {
		flex-direction: column !important;
		justify-content: flex-start !important;
		gap: 1.5rem !important;
	}
	.l-footer__nav-col {
		gap: 1rem;
	}
	.l-footer__bottom {
		padding-top: 2rem;
		gap: 1rem;
	}
	.l-footer__sns {
		gap: 1.25rem;
		font-size: 0.8rem;
	}
	.l-footer__copy {
		font-size: 9px;
	}
}

/* ==========================================================================
   10. 追加メディアクエリ (Extra Small Smartphones - iPhone SE 1st gen等)
   ========================================================================== */
@media screen and (max-width: 380px) {
	/* === 極小スマートフォン用 (iPhone SE 1st gen等) === */
	/* ヘッダー */
	.l-header__logo {
		font-size: 1rem;
	}
	.l-header__sub {
		font-size: 9px;
	}
	/* 共通タイトル(本文 0.85-0.9rem に対し階層を維持) */
	.c-title {
		font-size: 1.35rem;
	}
	h2.c-sec-title .c-sec-title__ja {
		font-size: 1.15rem !important;
		line-height: 1.5 !important;
	}
	h2.c-sec-title .c-sec-title__en {
		font-size: 0.7rem !important;
	}
	/* ページヘッダー */
	.c-page-header__en {
		font-size: 1.5rem;
	}
	.c-page-header__ja {
		font-size: 0.78rem;
	}
	/* TOPヒーロー */
	.c-hero__title {
		font-size: 1.5rem;
	}
	.c-hero__img {
		height: 260px;
	}
	.c-concept__title {
		font-size: 1.4rem;
	}
	.c-media-card__title {
		font-size: 1.2rem;
	}
	.c-contact__title {
		font-size: 1.4rem;
	}
	.c-contact-area__catch {
		font-size: 1.15rem;
	}
	/* 各ページキャッチ */
	.p-concept-hero__catch,
	.p-custom-hero__catch,
	.p-reno-hero__catch {
		font-size: 1.25rem;
	}
	.p-concept-empathy__lead,
	.p-custom-quality__lead,
	.p-reno-problems__lead {
		font-size: 1.15rem;
	}
	.p-concept-message__lead {
		font-size: 1.1rem;
	}
	/* カード見出し */
	.p-feature-item__title,
	.p-promise-item__title {
		font-size: 1.1rem;
	}
	.p-feature-card__title,
	.p-service-card__title,
	.p-flow-item__title,
	.p-warranty-card__title,
	.p-menu-card__title {
		font-size: 1.05rem;
	}
	/* お問い合わせ */
	.p-contact-info__lead {
		font-size: 1.15rem;
	}
	.p-contact-info__tel-num {
		font-size: 1.35rem;
		gap: 6px;
	}
	.p-contact-info__tel-num svg {
		font-size: 20px;
	}
	.p-form-header__title {
		font-size: 1.05rem;
	}
	.c-contact-area__tel-num {
		font-size: 1.45rem;
	}
	/* 施工事例 */
	.p-showcase-item__title {
		font-size: 1.15rem;
	}
	.p-work-hero__title {
		font-size: 1.15rem;
	}
	.p-work-concept__lead {
		font-size: 1.1rem;
	}
	.p-works-collage__title-ja,
	.p-works-banner__title-ja {
		font-size: 1.15rem;
	}
	/* お知らせ・コラム */
	.p-news-item__title {
		font-size: 0.95rem;
	}
	.p-single-header__title {
		font-size: 1.2rem;
	}
	.p-single-content__body h2 {
		font-size: 1.1rem;
	}
	.p-single-content__body h3 {
		font-size: 1rem;
	}
	/* サンクス */
	.p-thanks-message__lead {
		font-size: 1.15rem;
	}
	.p-thanks-links__title-ja {
		font-size: 1.1rem;
	}
	.p-thanks-links__card-title {
		font-size: 1.05rem;
	}
}
