/*************************
/* top
/*************************/

/* ===== シンプルヒーロー（メディアサイトセット外） ===== */
.simple-hero {
	background: #ecf8f8;
	padding: 56px 20px;
	text-align: center;
	position: relative;
	overflow: visible;
	min-height: 620px;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 5;
}
.hero-bg-city {
	position: absolute;
	bottom: 600px;
	width: 50%;
	height: auto;
	opacity: 0.35;
	z-index: 0;
	pointer-events: none;
}
.hero-bg-city-1 {
	left: 0;
}
.hero-bg-city-2 {
	right: 0;
}
.hero-side-left {
    display: none;
	position: absolute;
	top: 0;
	left: 0;
	bottom: auto;
	width: auto;
	height: auto;
	max-width: 28%;
	z-index: 1;
	pointer-events: none;
}
.hero-side-right {
	position: absolute;
	bottom: 0;
	right: 0;
	top: auto;
	width: auto;
	height: auto;
	max-width: 35%;
	z-index: 1;
	pointer-events: none;
}
.simple-hero-inner {
	background: transparent;
	border-radius: 0;
    padding: 32px 0;
	box-shadow: none;
	max-width: 1200px;
	width: 100%;
	margin: 0 auto;
	text-align: center;
    position: relative;
	z-index: 2;
}
.hero-title-wrap {
	display: inline-block;
	margin-top: 0;
}
.hero-title-wrap .simple-hero-eyebrow {
	display: block;
	margin: 0 auto 24px;
}
.hero-title-wrap .simple-hero-title {
	display: block;
	margin: 0;
}
.hero-bottom-band {
	background: #4fbfc0;
	width: 100%;
	padding: 18px 24px;
	font-family: "BIZ UDPGothic", sans-serif;
}
.hero-bottom-band-inner {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	flex-wrap: wrap;
}
.hero-bottom-band-text {
	color: #fff;
	margin: 0;
	font-size: 18px;
	font-weight: 700;
    line-height: 1.5;
    text-align: center;
}
.hero-bottom-band-btn {
	display: inline-block;
	background: #fff;
	color: #4fbfc0;
	padding: 10px 24px;
	border-radius: 24px;
	text-decoration: none;
	font-weight: 700;
	font-size: 14px;
	transition: transform 0.2s;
}
.hero-bottom-band-btn:hover {
	transform: translateY(-2px);
}
.partner-card-cta {
	text-align: center;
	padding: 0 15px;
	max-width: 1100px;
	margin: 0 auto;
}
.partner-card-cta a {
	display: inline-block;
	transition: transform 0.2s;
}
.partner-card-cta a:hover {
	transform: translateY(-3px);
}
.partner-card-cta img {
	max-width: 100%;
	height: auto;
	display: block;
	border-radius: 12px;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
	border: 4px solid #316ea9;
}
.hero-about-section {
	background: #ecf8f8;
	padding: 40px 24px 60px;
	font-family: "BIZ UDPGothic", sans-serif;
}
.hero-about-box {
	background: #fff;
	border-radius: 24px;
	padding: 25px 20px 40px;
	max-width: 620px;
	margin: 32px auto 0;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
	position: relative;
}
.hero-about-illust {
	position: absolute;
	left: -35px;
    top: auto;
    bottom: -75px;
	height: auto;
    width: 50%;
	pointer-events: none;
	z-index: 2;
	filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.2));
}
.hero-about-section .simple-hero-about-desc {
	text-align: center;
	margin: 0;
	padding-left: 150px;
}
.hero-about-title {
	display: inline-block;
	font-size: 24px;
	font-weight: 900;
	color: #1a5c2a;
	padding: 0;
	margin-bottom: 12px;
	letter-spacing: 0.05em;
	line-height: 1.2;
}
.simple-hero-illust {
	position: absolute;
	right: 400px;
	bottom: -230px;
	width: 598px;
	height: auto;
	z-index: 1000;
	pointer-events: none;
}
@media (min-width: 768px) {
    .simple-hero-inner {
		padding: 56px 64px;
		border-radius: 20px;
        width: calc(100% - 80px);
	}
    .hero-side-left {
        display: block;
        top: 70px;
    }
    .simple-hero-title {
		font-size: 60px;
        padding: 0 60px 8px;
	}
    .hero-about-box {
        padding: 24px 30px;
    }
    .hero-about-illust {
        left: -150px;
        width: 45%;
    }
    .hero-bottom-band-text {
        text-align: left;
    }
    .partner-card-cta {
        padding: 48px 24px;
    }
}
@media (min-width: 1200px) {
    .hero-about-illust {
        left: -15px;
        transform: translateX(-50%);
    }
}
.hero-corner-tr {
	position: absolute;
	top: -155px;
	right: -65px;
	width: 390px;
	height: auto;
	z-index: 1000;
	pointer-events: none;
}
.hero-corner-bl {
	position: absolute;
	top: calc(50% - 170px);
	right: -130px;
	width: 680px;
	height: auto;
	z-index: 1000;
	pointer-events: none;
	filter: drop-shadow(0 12px 20px rgba(0, 0, 0, 0.25));
	transform: translateY(-50%);
	bottom: auto;
}
.simple-hero-eyebrow {
	display: block;
	width: fit-content;
	background: #4fbfc0;
	color: #fff;
	padding: 10px 28px;
	border-radius: 0;
	font-size: 18px;
	letter-spacing: 0.08em;
	font-weight: 700;
	margin: 0 auto 24px;
}
.simple-hero-title {
	font-size: 32px;
	font-weight: 900;
	color: #4fbfc0;
	line-height: 1.3;
	margin: 0 auto 24px;
	letter-spacing: 0.04em;
	text-shadow: 3px 5px 10px rgba(79, 191, 192, 0.3);
	display: block;
	width: fit-content;
	border-bottom: 3px solid #4fbfc0;
	padding: 0 0 8px;
}
.simple-hero-accent {
	padding: 0 4px;
}
.simple-hero-desc {
	font-size: 16px;
	color: #000;
	line-height: 2;
	margin: 0 0 36px;
}
.simple-hero-about-title {
	font-size: 28px;
	font-weight: 700;
	color: #1a5c2a;
	letter-spacing: 0.04em;
	display: block;
	width: fit-content;
	margin: 32px auto 28px;
	border-bottom: 2px solid #1a5c2a;
	padding-bottom: 3px;
}
.simple-hero-about-desc {
	font-size: 15px;
	color: #6b4226;
	line-height: 2.2;
	margin: 0;
	text-align: center;
}
.simple-hero-about-desc strong {
	color: #6b4226;
	font-weight: 700;
}
.simple-hero-about-desc .hero-wavy {
	text-decoration: underline;
	text-decoration-color: #6b4226;
	text-underline-offset: 5px;
	text-decoration-thickness: 2px;
	font-size: 1.15em;
	letter-spacing: 0.05em;
}
.simple-hero-btns {
	display: flex;
	gap: 16px;
	justify-content: center;
	flex-wrap: wrap;
}
.simple-hero-btn {
	display: inline-block;
	padding: 16px 36px;
	border-radius: 32px;
	text-decoration: none;
	font-weight: 700;
	font-size: 16px;
	transition:
		transform 0.2s,
		box-shadow 0.2s;
}
.simple-hero-btn.primary {
	background: var(--teal);
	color: #fff;
	box-shadow: 0 4px 14px rgba(15, 167, 144, 0.3);
}
.simple-hero-btn.primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(15, 167, 144, 0.4);
}
.simple-hero-btn.secondary {
	background: #fff;
	color: var(--blue-dark);
	border: 2px solid var(--blue-dark);
}
.simple-hero-btn.secondary:hover {
	background: var(--blue-dark);
	color: #fff;
}


/*************************
/* common
/*************************/

/* ===== セクション共通 ===== */
.section-header {
	text-align: center;
	margin-bottom: 44px;
}
.section-header h2 {
	font-size: 36px;
	font-weight: 700;
	color: var(--text);
	margin-bottom: 4px;
	font-family: "BIZ UDPGothic", sans-serif;
}
.title-en {
	font-size: 72px;
	font-weight: 900;
	color: transparent;
	-webkit-text-stroke: 2px var(--blue);
	paint-order: stroke fill;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1;
	display: block;
	margin-bottom: 8px;
}
.title-line {
	width: 40px;
	height: 3px;
	background: var(--blue);
	border-radius: 2px;
	margin: 12px auto 0;
}

/* ===== ②ピックアップ ===== */
.pickup-card {
	background: white;
	border-radius: 0;
	overflow: hidden;
	font-family: "BIZ UDPGothic", sans-serif;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
	transition:
		transform 0.2s,
		box-shadow 0.2s;
	text-decoration: none;
	display: block;
}
.pickup-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 12px 36px rgba(0, 0, 0, 0.14);
}
.pickup-card .card-thumb {
	aspect-ratio: 16/9;
	height: auto;
	overflow: hidden;
	position: relative;
	background: linear-gradient(135deg, #c8e6c9, #80cbc4);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 48px;
}
.pickup-card .card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.pickup-card .card-body {
	padding: 22px;
}
.card-tag {
	display: inline-block;
	background: var(--blue-light);
	color: var(--blue);
	font-size: 15px;
	padding: 5px 14px;
	border-radius: 6px;
	margin-bottom: 10px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}
.pickup-card h3 {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.6;
	color: var(--text);
	margin-bottom: 10px;
}
.card-date {
	font-size: 12px;
	color: var(--text-light);
}

/* ===== ④カテゴリ（ルミアーチ風） ===== */
.section-categories {
	background: transparent;
	font-family: "BIZ UDPGothic", sans-serif;
	position: relative;
}
.column-header-wrap {
	position: relative;
}
.section-categories .section-header {
	padding-top: 64px;
	margin-bottom: 24px;
}
.category-section {
	padding: 24px 0 48px;
	border-top: 1px solid var(--blue-mid);
}
.category-section:nth-child(even) {
	background: transparent;
}
.cat-more-wrap {
	text-align: center;
	margin-top: 16px;
}
.btn-cat-more {
	display: inline-block;
	background: #6b4226;
	color: white;
	padding: 10px 22px;
	border-radius: 24px;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s;
}
.btn-cat-more:hover {
	background: #4a2e1a;
}
.section-categories .btn-cat-more {
	background: #1a5c2a;
}
.section-categories .btn-cat-more:hover {
	background: #114015;
}
.art-tags {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	margin-bottom: 8px;
}
.tag {
	background: var(--blue-light);
	color: var(--blue-dark);
	font-size: 14px;
	font-family:
		"BIZ UDPGothic", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
	font-weight: 600;
	padding: 5px 14px;
	border-radius: 6px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}
.art-date {
	font-size: 11px;
	color: var(--text-light);
}

@media (min-width: 768px) {
    .category-section {
        padding: 24px 40px 48px;
    }
}

/* ===== 記事ページ ===== */
.single-wrap {
	max-width: 1200px;
	margin: 100px auto 60px;
	padding: 0 40px;
}
.breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
	font-size: 12px;
	color: var(--text-light);
	margin-bottom: 20px;
}
.breadcrumb a {
	color: var(--teal);
	text-decoration: none;
}
.breadcrumb a:hover {
	text-decoration: underline;
}
.breadcrumb-sep {
	color: var(--text-light);
}
.breadcrumb-current {
	color: var(--text-light);
}
.single-wrap h1 {
	font-size: 28px;
	font-weight: 700;
	line-height: 1.5;
	margin-bottom: 32px;
	background: #fff;
	padding: 24px 32px;
	border-radius: 12px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}
.single-wrap h2 {
	font-size: 22px;
	font-weight: 700;
	line-height: 1.5;
	margin: 40px 0 20px;
	background: #fff;
	padding: 18px 24px;
	border-radius: 10px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}
.single-meta {
	display: flex;
	gap: 12px;
	align-items: center;
	margin-bottom: 32px;
}
.single-thumb {
	max-width: 700px;
	margin: 0 auto 40px;
	border-radius: 16px;
	overflow: hidden;
}
.single-thumb img {
	width: 100%;
	height: auto;
	display: block;
}

/* 関連記事 */
.related-articles {
	margin-top: 64px;
	padding-top: 32px;
	border-top: 2px solid var(--blue-mid);
}
.related-articles-title {
	font-size: 22px;
	font-weight: 700;
	color: var(--blue-dark);
	font-family: "BIZ UDPGothic", sans-serif;
	margin-bottom: 24px;
	text-align: center;
}
.related-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.related-card {
	background: #fff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
	text-decoration: none;
	color: var(--text);
	transition: transform 0.2s;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.related-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
}
.related-thumb {
	width: 100%;
	aspect-ratio: 16/9;
	overflow: hidden;
	background: var(--bg);
}
.related-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.related-thumb span {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	font-size: 32px;
}
.related-body {
	padding: 14px 16px;
	flex: 1;
}
.related-body h3 {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
	margin: 0 0 6px;
	color: var(--blue-dark);
	font-family: "BIZ UDPGothic", sans-serif;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.related-date {
	font-size: 11px;
	color: var(--text-light);
}

/* 本文中の関連リンク（手動配置用） */
.related-inline {
	display: inline-block;
	padding: 8px 16px 8px 36px;
	background: #eaf6f4;
	border-left: 4px solid var(--teal);
	color: var(--blue-dark);
	text-decoration: none;
	font-weight: 700;
	font-size: 14px;
	position: relative;
	margin: 12px 0;
	transition: background 0.2s;
}
.related-inline::before {
	content: "🔗";
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
}
.related-inline:hover {
	background: #d0ede8;
}

@media (max-width: 640px) {
	.related-grid {
		grid-template-columns: 1fr;
	}
}
.single-content {
	font-size: 16px;
	line-height: 1.9;
	color: var(--text);
}
.single-content h2 {
	font-size: 22px;
	font-weight: 700;
	margin: 40px 0 16px;
	padding-left: 12px;
	border-left: 4px solid var(--blue);
}
.single-content p {
	margin-bottom: 20px;
}
.single-content ul {
	list-style: none;
	padding-left: 1.2em;
	margin-bottom: 20px;
}
.single-content ul li {
	display: flex;
	align-items: flex-end;
	gap: 0.3em;
	margin-bottom: 8px;
}
.single-content ul li::before {
	content: "・";
	flex-shrink: 0;
}

/* ===== 実例集タブセクション ===== */
.case-tabs-section {
	padding: 56px 20px;
	max-width: 1400px;
	margin: 0 auto;
	background: transparent;
    border: 0;
	outline: 0;
}
.white-zone {
	background: #ecf8f8;
}
.white-zone .section-categories {
	background: #ecf8f8;
	padding: 8px 24px 80px;
}
.white-zone .section-categories .cat-more-wrap {
	margin-top: 40px;
	text-align: center;
}
.case-residential-cta {
	margin: 40px auto 0;
	max-width: 760px;
	background: linear-gradient(135deg, #eaf6f4, #d0ede8);
	border: 2px solid #88c9bb;
	border-radius: 16px;
	padding: 32px 28px;
	text-align: center;
	display: none;
}
.case-residential-cta.active {
	display: block;
}
.case-residential-cta-title {
	font-size: 20px;
	font-weight: 700;
	color: var(--blue-dark);
	font-family: "BIZ UDPGothic", sans-serif;
	margin: 0 0 10px;
}
.case-residential-cta-text {
	font-size: 14px;
	color: var(--text);
	line-height: 1.9;
	margin: 0 0 20px;
}
.case-residential-cta-btn {
	display: inline-block;
	background: var(--teal);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	padding: 14px 32px;
	border-radius: 28px;
	border: none;
	font-family: "BIZ UDPGothic", sans-serif;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(15, 167, 144, 0.25);
	transition:
		transform 0.2s,
		box-shadow 0.2s;
}
.case-residential-cta-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(15, 167, 144, 0.35);
}
.case-tabs-nav {
	display: flex;
	gap: 6px;
	max-width: 720px;
	margin: 0;
	padding: 0;
	align-items: flex-end;
}
.case-tab {
	flex: 1;
	padding: 18px 24px 22px;
	background: #ede3d9;
	color: #6b5a47;
	border: none;
	font-size: 18px;
	font-weight: 700;
	cursor: pointer;
	font-family: "BIZ UDPGothic", sans-serif;
	border-radius: 16px 16px 0 0;
	transition:
		background 0.2s,
		color 0.2s,
		padding 0.2s;
	position: relative;
	bottom: -1px;
}
.case-tab.active {
	background: #d7c9b1;
	color: #4a3f2e;
	font-size: 22px;
	padding: 22px 24px 28px;
	z-index: 2;
	box-shadow: none;
}
.case-tab:hover:not(.active) {
	background: #dccbb8;
	color: #4a3f2e;
}
.case-tab-panel {
	background: #d7c9b1;
	padding: 30px 20px;
	box-shadow: none;
	border: 0;
	outline: 0;
    display: none;
}
.case-tab-panel.active {
	display: block;
}
.case-tab-panel:not(.active) {
	display: none;
}
.case-tabs-section .cat-more-wrap {
	background: #d7c9b1;
	padding: 0 32px 40px;
	margin: 0;
	box-shadow: none;
	border-radius: 0 0 16px 16px;
	text-align: center;
}
@keyframes case-tab-nudge {
	0%,
	80%,
	100% {
		transform: translateX(0);
	}
	84% {
		transform: translateX(-5px);
	}
	88% {
		transform: translateX(5px);
	}
	92% {
		transform: translateX(-3px);
	}
	96% {
		transform: translateX(3px);
	}
}
.case-tab:not(.active) {
	animation: case-tab-nudge 3s ease-in-out infinite;
}

.case-grid {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	padding: 4px 4px 16px;
	scroll-padding: 4px;
	-webkit-overflow-scrolling: touch;
	scroll-behavior: smooth;
}
.case-grid::-webkit-scrollbar {
	height: 8px;
}
.case-grid::-webkit-scrollbar-track {
	background: rgba(0, 0, 0, 0.05);
	border-radius: 4px;
}
.case-grid::-webkit-scrollbar-thumb {
	background: rgba(0, 0, 0, 0.2);
	border-radius: 4px;
}
.case-grid::-webkit-scrollbar-thumb:hover {
	background: rgba(0, 0, 0, 0.35);
}

@media (min-width: 768px) {
    .case-tabs-section {
        padding: 56px 40px;
    }
    .case-tab-panel {
        padding: 40px 32px;
    }
}
@media (min-width: 992px) {
    .case-tab-panel {
        border-radius: 0 16px 0 0;
    }
}

/* 実例集① 詳しく読む（控えめリンク） */
.jitsurei-readmore-wrap {
	margin-top: 14px;
	text-align: right;
}
.jitsurei-readmore {
	display: inline-block;
	font-size: 13px;
	color: #6b4226;
	text-decoration: underline;
	text-decoration-color: rgba(107, 66, 38, 0.5);
	font-weight: 600;
	font-family: "BIZ UDPGothic", sans-serif;
	transition: opacity 0.2s;
}
.jitsurei-readmore:hover {
	opacity: 0.6;
}

/* 実例集③ 2ボタンCTA */
.jitsurei-cta-buttons {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 42px;
	flex-wrap: wrap;
}
.jitsurei-cta-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 24px;
	border-radius: 8px;
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
	font-family: "BIZ UDPGothic", sans-serif;
	transition:
		background 0.2s,
		color 0.2s,
		border-color 0.2s,
		transform 0.2s;
}
.jitsurei-cta-btn:hover {
	transform: translateY(-2px);
}
.jitsurei-cta-btn.outline {
	background: #2196f3;
	color: #fff;
	border: 2px solid #2196f3;
}
.jitsurei-cta-btn.outline:hover {
	background: #1976d2;
	border-color: #1976d2;
}
.jitsurei-cta-btn.solid {
	background: #4fbfc0;
	color: #fff;
	border: 2px solid #4fbfc0;
}
.jitsurei-cta-btn.solid:hover {
	background: #2e7d8f;
	border-color: #2e7d8f;
}

/* パネルタイトル（実例集 非住宅編） */
.case-panel-title {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 14px;
	font-size: 36px;
	font-weight: 700;
	color: #6b4226;
	font-family: "BIZ UDPGothic", sans-serif;
	margin: 0 auto 32px;
	text-align: center;
	width: fit-content;
	border-bottom: 3px solid #6b4226;
	padding: 0 80px 14px;
}
.case-panel-title-sub {
	font-size: 22px;
	font-weight: 600;
	color: #6b4226;
}

@media (min-width: 768px) {
    .case-panel-title {
        flex-direction: row;
        align-items: baseline;
    }
}

/* 新着記事ラベル */
.case-slider-label {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 12px;
	font-size: 28px;
	font-weight: 700;
	color: #6b4226;
	font-family: "BIZ UDPGothic", sans-serif;
	margin: 0 0 22px;
}
.case-slider-label-badge {
	display: inline-block;
	background: #e74c3c;
	color: #fff;
	padding: 4px 10px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.5px;
	line-height: 1;
}

/* スライダーラッパー + 前後ボタン */
.case-slider-wrap {
	position: relative;
}
.case-slider-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fff;
	color: #4fbfc0;
	border: 2px solid #4fbfc0;
	font-size: 26px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	z-index: 5;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 0 4px;
	transition:
		background 0.2s,
		color 0.2s,
		transform 0.2s;
}
.case-slider-arrow:hover {
	background: #4fbfc0;
	color: #fff;
	transform: translateY(-50%) scale(1.08);
}
.case-slider-arrow.prev {
	left: -16px;
}
.case-slider-arrow.next {
	right: -16px;
}

/* スライダードット（非表示） */
.case-slider-dots {
	display: none;
	justify-content: center;
	align-items: center;
	gap: 10px;
	margin-top: 22px;
}
.case-slider-dots button {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: 0;
	background: rgba(107, 66, 38, 0.3);
	cursor: pointer;
	padding: 0;
	transition:
		background 0.2s,
		transform 0.2s;
}
.case-slider-dots button:hover {
	background: rgba(107, 66, 38, 0.55);
}
.case-slider-dots button.active {
	background: #4fbfc0;
	transform: scale(1.4);
}

.case-card {
	background: #fff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
	text-decoration: none;
	color: var(--text);
	transition:
		transform 0.2s,
		box-shadow 0.2s;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 14px;
	flex: 0 0 calc(83.33% - 16px);
	scroll-snap-align: start;
}
.case-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}
.case-thumb {
	width: 100%;
	aspect-ratio: 16/9;
	overflow: hidden;
	background: var(--bg);
}
.case-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.case-thumb span {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	font-size: 48px;
}
.case-body {
	padding: 16px 18px;
	flex: 1;
}
.case-body h3 {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	margin: 8px 0;
	color: var(--blue-dark);
}
.case-body .art-date {
	font-size: 11px;
	color: var(--text-light);
}
@media (min-width: 568px) {
    .case-card {
        flex: 0 0 calc(45.45% - 16px);
    }
}
@media (min-width: 769px) {
    .case-card {
        flex: 0 0 calc(40% - 10px);
    }
}

/* コラム 3×1 */
.articles-grid-3x1 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	max-width: 1000px;
	width: 100%;
	margin: 0 auto;
}

/* 非住宅セクション（仮設置） */
.non-res-section {
	padding: 32px 24px 64px;
	max-width: 1200px;
	margin: 0 auto;
	font-family: "BIZ UDPGothic", sans-serif;
}

/* 非住宅の実例集 紹介（イラスト+テキスト） */
.non-res-intro {
	padding: 32px 24px 64px;
	max-width: 1000px;
	margin: 0 auto;
	font-family: "BIZ UDPGothic", sans-serif;
}
.non-res-intro-list {
	display: flex;
	flex-direction: column;
	gap: 28px;
	margin-bottom: 56px;
	padding-bottom: 56px;
	border-bottom: 1px solid #6b4226;
}
.non-res-intro-item {
	background: #fff;
	padding: 20px;
	border-radius: 12px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.non-res-intro-img {
	max-width: 540px;
    margin: 0 auto;
}
.non-res-intro-img img {
	width: 100%;
	height: auto;
	display: block;
}
.non-res-intro-text {
	flex: 1;
	display: flex;
	flex-direction: column;
}
.non-res-intro-text .jitsurei-readmore-wrap {
	margin-top: auto;
}
.non-res-intro-text h3 {
	font-size: 22px;
	font-weight: 700;
	color: var(--blue-dark);
	margin: 32px auto 16px;
	text-align: center;
	display: block;
	width: fit-content;
	
	border-bottom: 1px solid #6b4226;
	padding-bottom: 2px;
	line-height: 1.6;
}
.non-res-intro-text p {
	font-size: 15px;
	color: var(--text);
	line-height: 1.9;
	margin: 0;
}

@media (min-width: 992px) {
    .non-res-intro-item {
        display: flex;
        align-items: stretch;
        gap: 32px;
    padding: 28px 32px;
    }
    .non-res-intro-item:nth-child(even) {
        flex-direction: row-reverse;
    }
    .non-res-intro-text h3 {
        max-width: 580px;
    }
    .non-res-intro-img {
        max-width: 350px;
    }
}
@media (min-width: 1200px) {
    .non-res-intro-img {
        max-width: 450px;
    }
}
@media (min-width: 1400px) {
    .non-res-intro-img {
        max-width: 540px;
    }
}


/* 省エネ建築 実例図鑑とは（統合ボックス） */
.troubles-answer-section {
	background: var(--bg);
	padding: 264px 24px 64px;
	font-family: "BIZ UDPGothic", sans-serif;
}
.ta-box {
	max-width: 1100px;
	margin: 0 auto;
	background: transparent;
	border-radius: 20px;
	padding: 48px 56px;
	text-align: center;
}
.ta-title {
	font-size: 28px;
	font-weight: 700;
	color: #fff;
	letter-spacing: 0.04em;
	display: block;
	width: fit-content;
	margin: 0 auto 28px;
	border-bottom: 2px solid #fff;
	padding-bottom: 3px;
}
.ta-troubles {
	list-style: none;
	padding: 0;
	margin: 0 0 28px;
	display: inline-block;
	text-align: left;
}
.ta-troubles li {
	font-size: 15px;
	color: #316ea9;
	padding: 6px 0 6px 28px;
	position: relative;
	line-height: 1.8;
}
.ta-troubles li::before {
	content: "💭";
	position: absolute;
	left: 0;
	top: 6px;
}
.ta-solution {
	font-size: 18px;
	color: #316ea9;
	font-weight: 700;
	margin: 0 0 24px;
	padding: 16px 20px;
	background: linear-gradient(135deg, #eaf6f4, #d0ede8);
	border-radius: 10px;
	display: inline-block;
}
.ta-solution strong {
	color: #316ea9;
}
.ta-description {
	font-size: 17px;
	color: #fff;
	line-height: 2.1;
	margin: 0;
	text-align: center;
}
.ta-description strong {
	color: #fff;
	font-weight: 700;
}
.ta-mark {
	display: inline;
	font-weight: 700;
}

/* 強調テキスト（実例集③のキャッチ文） */
.pickup-text {
	display: inline-block;
	font-size: 1.2em;
	font-weight: 700;
	margin-top: 6px;
	text-decoration: underline wavy;
	text-decoration-color: #6b4226;
	text-underline-offset: 6px;
	text-decoration-thickness: 1.5px;
}

/* 蛍光イエローマーカー */
.marker-yellow {
	background: linear-gradient(transparent 55%, #fff176 55%);
	padding: 0 2px;
	font-weight: 700;
}
.ta-mark-column {
	color: #1a5c2a;
}
.ta-mark-partner {
	color: #2196f3;
}
@media (max-width: 640px) {
	.ta-box {
		padding: 32px 24px;
	}
	.ta-title {
		font-size: 22px;
	}
	.ta-solution {
		font-size: 16px;
		padding: 14px 16px;
	}
}




/* ===== カテゴリ一覧ページ ===== */
.site-deco-migiue {
	position: absolute;
	top: 82px;
	right: 0;
	width: 30%;
	max-width: 440px;
	height: auto;
	pointer-events: none;
	opacity: 0.6;
	z-index: -1;
}
.archive-deco {
	position: absolute;
	top: 600px;
	left: 0;
	width: auto;
	height: auto;
	transform: scale(0.43);
	transform-origin: top left;
	pointer-events: none;
	opacity: 0.45;
	z-index: 0;
}
.archive-wrap {
	max-width: 1280px;
	margin: 100px auto 60px;
	padding: 0 20px;
	position: relative;
	z-index: 1;
}
.archive-header {
	margin-bottom: 30px;
}
.archive-header h1 {
	font-size: 36px;
	font-weight: 700;
	color: var(--blue);
}
.posts-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
@media (min-width: 768px) {
.site-deco-migiue {
	width: 38%;
}
}
@media (min-width: 1200px) {
        .archive-wrap {
	padding: 0 40px;
}
.archive-header {
    margin-bottom: 48px;
}
}

/* Archive layout */
.archive-main {
    margin-bottom: 50px;
}
.sidebar-widget {
	margin-bottom: 32px;
}
.sidebar-title {
	font-size: 15px;
	font-weight: 700;
	color: var(--teal);
	padding-bottom: 10px;
	border-bottom: 2px solid var(--teal);
	margin-bottom: 14px;
	font-family: "BIZ UDPGothic", sans-serif;
}
.sidebar-cat-list {
	list-style: none;
}
.sidebar-cat-list li {
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.sidebar-cat-list a {
	display: block;
	padding: 10px 4px;
	font-size: 14px;
	color: var(--text);
	text-decoration: none;
	transition: color 0.2s;
}
.sidebar-cat-list a:hover {
	color: var(--teal);
}
.sidebar-search {
	display: flex;
	gap: 8px;
}
.sidebar-search-input {
	flex: 1;
	border: 1px solid #ccc;
	border-radius: 6px;
	padding: 8px 12px;
	font-size: 14px;
	font-family: "BIZ UDPGothic", sans-serif;
	outline: none;
}
.sidebar-search-btn {
	background: var(--teal);
	color: white;
	border: none;
	border-radius: 6px;
	padding: 8px 14px;
	font-size: 14px;
	cursor: pointer;
	font-family: "BIZ UDPGothic", sans-serif;
	white-space: nowrap;
}
.sidebar-search-btn:hover {
	background: var(--blue-dark);
}
.sidebar-recent-list {
	list-style: none;
}
.sidebar-recent-list li {
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	padding: 10px 0;
}
.sidebar-recent-list a {
	font-size: 13px;
	color: var(--text);
	text-decoration: none;
	display: block;
	line-height: 1.6;
}
.sidebar-recent-list a:hover {
	color: var(--teal);
}
.sidebar-recent-date {
	font-size: 11px;
	color: var(--text-light);
	display: block;
	margin-top: 4px;
}
.sidebar-jns-label {
	font-size: 12px;
	color: var(--text-light);
	margin-bottom: 6px;
	text-align: center;
}
.sidebar-jns-logobox {
	background: white;
	border-radius: 8px;
	padding: 12px;
	margin-bottom: 16px;
	text-align: center;
}
.sidebar-jns-logobox-img {
	height: 32px;
	width: auto;
}
.sidebar-jns-logo {
	width: 100%;
	height: auto;
	border-radius: 6px;
	display: block;
}

@media (min-width: 992px) {
   .archive-body {
        display: flex;
        gap: 48px;
        align-items: flex-start;
    }
    .archive-main {
	flex: 1;
	min-width: 0;
    margin-bottom: 0;
    }
    .archive-sidebar {
        width: 260px;
        flex-shrink: 0;
    }
}

/* ===== page-nation ===== */
.nav-links {
	font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.nav-links > * {
    padding: 0 10px;
}

@media (min-width: 992px) {
}

/*************************
/* 下層
/*************************/
/* ===== About / Contact ページ共通 ===== */
.about-page {
	background: var(--bg);
	padding-bottom: 80px;
}
.about-hero {
	background: linear-gradient(135deg, var(--teal), #1a4a2e);
	color: var(--white);
	text-align: center;
	padding: 100px 24px 30px;
	margin-bottom: 48px;
}
.about-hero-title {
	font-size: 26px;
	font-weight: 700;
	font-family: "BIZ UDPGothic", sans-serif;
	margin: 0 0 12px;
}
.about-hero-sub {
	font-size: 15px;
    line-height: 1.5;
	opacity: 0.92;
	margin: 0;
}
.about-container {
	max-width: 760px;
	margin: 0 auto;
	padding: 0 24px;
	font-family: "BIZ UDPGothic", sans-serif;
}

/* About ページ専用 */
.about-section {
	background: #fff;
	border-radius: 12px;
	padding: 36px 36px;
	margin-bottom: 28px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}
.about-section-title {
	font-size: 22px;
	font-weight: 700;
	color: var(--blue-dark);
	margin: 0 0 20px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--teal);
	font-family: "BIZ UDPGothic", sans-serif;
}
.about-sub-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--blue-dark);
	margin: 22px 0 10px;
	font-family: "BIZ UDPGothic", sans-serif;
}
.about-text p {
	font-size: 14px;
	color: var(--text);
	line-height: 1.9;
	margin: 0 0 14px;
}
.about-text a {
	color: var(--teal);
}
.about-text a:hover {
	text-decoration: underline;
}

.about-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.about-table th,
.about-table td {
	padding: 14px 18px;
	text-align: left;
	vertical-align: top;
	line-height: 1.7;
    word-break: break-all;
	border-bottom: 1px solid var(--blue-mid);
}
.about-table th {
	background: var(--bg);
	color: var(--blue-dark);
	font-weight: 700;
	width: 130px;
	white-space: nowrap;
}
.about-table td a {
	color: var(--teal);
}
.about-table td a:hover {
	text-decoration: underline;
}
.about-table tr:last-child th,
.about-table tr:last-child td {
	border-bottom: none;
}
.privacy-list {
    font-size: 14px;
    line-height: 1.9;
}
.privacy-list li {
    position: relative;
    display: flex;
    padding-left: 12px;
}
.privacy-list li::before {
    content: "・";
    position: absolute;
    left: 0;
}
@media (min-width: 768px) {
	.about-hero-title {
		font-size: 36px;
	}
}

@media (max-width: 600px) {
	.about-section {
		padding: 24px 20px;
	}
	.about-table th {
		width: 100px;
		padding: 10px 12px;
	}
	.about-table td {
		padding: 10px 12px;
	}
}

/* ===== Contact フォーム ===== */
.contact-form {
	background: var(--white);
	border-radius: 16px;
	padding: 28px 20px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}
.contact-field {
	margin-bottom: 28px;
}
.contact-label {
	display: block;
	font-size: 14px;
	font-weight: 700;
	color: var(--blue-dark);
	margin-bottom: 8px;
}
.contact-required {
	background: #c0392b;
	color: var(--white);
	font-size: 11px;
	padding: 2px 8px;
	border-radius: 4px;
	margin-left: 6px;
	font-weight: 700;
}
.contact-input,
.contact-textarea {
	width: 100%;
	padding: 12px 14px;
	font-size: 15px;
	border: 1px solid var(--blue-mid);
	border-radius: 8px;
	background: #fafcfb;
	font-family: "BIZ UDPGothic", sans-serif;
	box-sizing: border-box;
}
.contact-input:focus,
.contact-textarea:focus {
	outline: none;
	border-color: var(--teal);
	background: var(--white);
}
.contact-textarea {
	resize: vertical;
	min-height: 160px;
	line-height: 1.7;
}
.contact-genre-wrap .contact-genre-input {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px 16px;
}
.contact-genre-wrap label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--text);
	padding: 8px 12px;
	background: var(--bg);
	border-radius: 6px;
	cursor: pointer;
	transition: background 0.2s;
}
.contact-genre-wrap label:hover {
	background: #e4f3ef;
}
.contact-genre-wrap label input {
	cursor: pointer;
}

.contact-pp-box {
	background: var(--bg);
	border: 1px solid var(--blue-mid);
	border-radius: 10px;
	padding: 20px 24px;
	font-size: 13px;
	line-height: 1.8;
	color: var(--text);
	max-height: 220px;
	overflow-y: auto;
	margin-bottom: 14px;
}
.contact-pp-title {
	font-weight: 700;
	color: var(--blue-dark);
	margin: 0 0 10px;
	font-size: 14px;
}
.contact-pp-heading {
	font-weight: 700;
	color: var(--blue-dark);
	margin: 14px 0 6px;
}
.contact-pp-box ul {
	margin: 8px 0 12px;
	padding-left: 20px;
}
.contact-pp-box li {
	margin-bottom: 4px;
}
.contact-pp-box a {
	color: var(--teal);
}
.contact-privacy-label,
.contact-pp-agree {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14px;
	color: var(--text);
	cursor: pointer;
	padding: 10px 0;
}
.contact-pp-agree small {
	display: block;
	font-size: 12px;
	color: var(--text-light);
	margin-top: 2px;
}

.contact-submit-wrap {
	text-align: center;
	margin-top: 8px;
}
.contact-submit-btn {
	background: var(--teal);
	color: var(--white);
	font-size: 16px;
	font-weight: 700;
	padding: 14px 56px;
	border: none;
	border-radius: 30px;
	cursor: pointer;
	font-family: "BIZ UDPGothic", sans-serif;
	transition: opacity 0.2s;
	box-shadow: 0 4px 12px rgba(15, 167, 144, 0.3);
	margin-top: 30px;
}
.contact-submit-btn:hover {
	opacity: 0.88;
}

.contact-error {
	background: #fdecea;
	border: 1px solid #c0392b;
	color: #c0392b;
	padding: 14px 18px;
	border-radius: 8px;
	margin-bottom: 20px;
	font-size: 14px;
}
.contact-success {
	background: var(--white);
	border-radius: 16px;
	padding: 30px 20px;
	text-align: center;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}
.contact-success-icon {
	font-size: 48px;
	margin: 0 0 16px;
}
.contact-success-title {
	font-size: 22px;
	font-weight: 700;
	color: var(--blue-dark);
	margin: 0 0 12px;
}
.contact-success-body {
	font-size: 14px;
	color: var(--text);
	line-height: 1.8;
	margin: 0 0 28px;
}
.contact-back-btn {
	display: inline-block;
	background: var(--teal);
	color: var(--white);
	padding: 12px 32px;
	border-radius: 24px;
	text-decoration: none;
    font-size: 14px;
	font-weight: 700;
}
.contact-back-btn:hover {
	opacity: 0.88;
}

@media (min-width: 768px) {
	.contact-form {
        padding: 40px 36px;
	}
    .contact-genre-wrap .contact-genre-input {
        grid-template-columns: 1fr 1fr;
    }
    .contact-success {
        padding: 60px 36px;
    }
    .contact-back-btn {
        font-size: 16px;
    }
}


/* ===== カテゴリ別記事リスト (front-page) ===== */
/* テーマ別サブカテゴリ */
.cat-themes {
	display: flex;
	gap: 14px;
	align-items: center;
	justify-content: center;
	margin: 0 0 22px;
	flex-wrap: wrap;
	grid-column: 1 / -1;
}
.cat-themes-label {
	background: var(--teal);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	padding: 4px 12px;
	border-radius: 20px;
	font-family: "BIZ UDPGothic", sans-serif;
	white-space: nowrap;
	line-height: 1.6;
}
.cat-themes-list {
	display: flex;
	gap: 6px 8px;
	flex-wrap: wrap;
	justify-content: center;
}
.cat-theme-link {
	font-size: 12px;
	color: var(--teal);
	padding: 4px 10px;
	border: 1px solid var(--teal);
	border-radius: 20px;
	text-decoration: none;
	transition:
		background 0.2s,
		color 0.2s;
	background: #fff;
}
.cat-theme-link:hover {
	background: var(--teal);
	color: #fff;
}

/* 大きい記事カード（1番目） */
.category-articles {
	display: flex;
	flex-direction: column;
	align-items: center;
	grid-column: 1 / -1;
}
.art-card-feature {
	display: flex;
	flex-direction: column;
	gap: 0;
	background: #fff;
	border-radius: 0;
	border: 3px solid var(--blue-dark);
	overflow: visible;
	box-shadow: 0 3px 14px rgba(0, 0, 0, 0.08);
	text-decoration: none;
	color: var(--text);
	transition:
		transform 0.2s,
		box-shadow 0.2s;
	margin-bottom: 24px;
	margin-top: 64px;
	max-width: 1000px;
	width: 100%;
	position: relative;
}
.art-pickup-label {
	position: absolute;
	bottom: 100%;
	left: 0;
	width: 100%;
	text-align: center;
	z-index: 10;
	margin-bottom: -14px;
	font-family: "BIZ UDPGothic", sans-serif;
	font-size: 48px;
	font-weight: 700;
	color: #fff;
	-webkit-text-stroke: 5px var(--blue-dark);
	paint-order: stroke fill;
	letter-spacing: 0.1em;
	text-shadow: 1px 2px 6px rgba(0, 0, 0, 0.7);
	line-height: 1.2;
	pointer-events: none;
}
.art-card-feature:hover {
	transform: translateY(-3px);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}
.art-feature-thumb {
	flex: 0 0 auto;
	width: 100%;
	overflow: hidden;
	background: var(--bg);
	aspect-ratio: 16/9;
	position: relative;
}
.art-feature-thumb > .art-feature-badge {
	display: inline-block;
	position: absolute;
	top: 12px;
	left: 12px;
	width: auto;
	height: auto;
	background: var(--blue-dark);
	color: #fff;
	padding: 8px 18px;
	border-radius: 6px;
	font-family: "BIZ UDPGothic", sans-serif;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.1em;
	z-index: 5;
	pointer-events: none;
	white-space: nowrap;
	line-height: 1.4;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
	align-items: initial;
	justify-content: initial;
}
.art-feature-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.art-feature-thumb span {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	font-size: 56px;
}
.art-feature-side {
	flex: 1;
	padding: 20px 24px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.art-feature-side h3 {
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	margin: 10px 0 12px;
	color: var(--blue-dark);
	font-family: "BIZ UDPGothic", sans-serif;
}
.art-feature-excerpt {
	font-size: 13px;
	color: var(--text);
	line-height: 1.8;
	margin: 0 0 12px;
	padding: 0;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* 小さい記事カード（2-3番目・2カラム） */
.articles-bottom-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	max-width: 1000px;
	width: 100%;
	margin: 0 auto;
}
.articles-bottom-grid .art-card-mini {
	flex-direction: row;
	align-items: stretch;
	aspect-ratio: 16 / 3;
}
.articles-bottom-grid .art-mini-thumb {
	flex: 0 0 40%;
	width: auto;
	aspect-ratio: 16/9;
}
.articles-bottom-grid .art-mini-body {
	padding: 16px 20px;
	overflow: hidden;
}
/* archive (category) ページではbodyを優先表示 */
.archive-main .articles-bottom-grid .art-card-mini {
	aspect-ratio: auto;
}
.archive-main .articles-bottom-grid .art-mini-thumb {
	align-self: stretch;
	min-height: 0;
	aspect-ratio: auto;
}
.archive-main .articles-bottom-grid .art-mini-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.art-mini-excerpt {
	font-size: 12px;
	color: var(--text);
	line-height: 1.7;
	margin: 6px 0 8px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
@media (min-width: 768px) {
    .articles-bottom-grid .art-mini-thumb {
	flex: 0 0 33.333%;
}
}

/* コラム用 3×2グリッド */
.articles-grid-2x2 {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 16px;
	max-width: 1000px;
	width: 100%;
	margin: 0 auto;
}
.art-card-mini {
	display: flex;
	flex-direction: column;
	gap: 0;
	background: #fff;
	border-radius: 0;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	text-decoration: none;
	color: var(--text);
	padding: 0;
	overflow: hidden;
	transition: transform 0.2s;
	align-items: stretch;
}
.art-card-mini:hover {
	transform: translateY(-2px);
}
.art-mini-thumb {
	flex: 0 0 auto;
	width: 100%;
	aspect-ratio: 16/9;
	border-radius: 0;
	overflow: hidden;
	background: var(--bg);
}
.art-mini-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.art-mini-thumb span {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	font-size: 32px;
}
.art-mini-body {
	flex: 1;
	min-width: 0;
	padding: 14px 16px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.art-mini-body h3 {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
	margin: 6px 0 4px;
	color: var(--blue-dark);
	font-family: "BIZ UDPGothic", sans-serif;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.art-mini-body .art-date {
	font-size: 11px;
	color: var(--text-light);
}

@media (max-width: 700px) {
	.art-card-feature {
		flex-direction: column;
	}
	.art-feature-thumb {
		flex: 0 0 auto;
	}
	.articles-bottom-grid {
		grid-template-columns: 1fr;
	}
}
@media (min-width: 768px) {
    .articles-grid-2x2 {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 992px) {
    .articles-grid-2x2 {
        grid-template-columns: repeat(3, 1fr);
    }
}



/* =========================================================
   /partner/
   ========================================================= */
.pp-wrap {
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 24px 100px;
}

/* Hero */
.pp-hero {
	background: #fff;
	border-radius: 16px;
	text-align: center;
	padding: 90px 0 0;
	margin-bottom: 0;
	position: relative;
}
.pp-hero .pp-wrap {
	padding: 0 24px;
	position: relative;
	z-index: 1;
}
.pp-hero::after {
	content: "";
	background: url(../images/partnerhero_bg.png);
	background-repeat: repeat-x;
	background-size: 180%;
	background-position: bottom;
	width: 100%;
	height: 100%;
	position: absolute;
	bottom: 120px;
	left: 0;
	opacity: 0.7;
}
.pp-hero-text_top__top {
	font-size: 18px;
	line-height: 1.2;
	color: #44546A;
	margin-bottom: 15px;
}
.pp-hero-text_top__top span {
	display: inline-block;
	position: relative;
}
.pp-hero-text_top__top span::before {
	position: absolute;
	content: "";
	background: #F8F23A;
	height: 12px;
	width: 100%;
	z-index: -1;
	bottom: -3px;
}
.pp-hero .title_text {
	font-size: 28px;
    font-weight: 700;
    color: #002868;
    text-shadow: 0px 0px 3px #77bbff, 0px 0px 4px #77bbff, 0px 0px 5px #77bbff, 0px 0px 9px #77bbff;
	margin-bottom: 12px;
}
.pp-hero-text_top__bottom {
	width: fit-content;
	font-size: 14px;
	color: #002868;
	background: #FABF10;
	border-radius: 20px;
	padding: 5px 10px 5px 25px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
}
.pp-hero-text_top__bottom::before {
	content: "";
	background: url(../images/partnerhero_top_icon.svg);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	display: block;
	width: 25px;
	height: 25px;
	position: absolute;
	left: 0;
}
.pp-hero-text_box {
	position: relative;
}
.pp-hero-text_left,
.pp-hero-text_right {
	font-size: 16px;
	font-weight: 700;
	text-shadow: 0px 0px 3px #A9D38C, 0px 0px 4px #A9D38C, 0px 0px 5px #A9D38C, 0px 0px 9px #A9D38C;
	position: absolute;
}
.pp-hero-text_left {
	top: 15px;
	left: 0;
	text-align: left;
}
.pp-hero-text_left__top {
	margin-bottom: 10px;
}
.pp-hero-text_right {
	right: 0;
	bottom: 15px;
	text-align: right;
}
.pp-hero-text_right__top {
	margin-bottom: 10px;
}
.pp-hero-text_box .fs-sm {
	font-size: 13px;
}
.pp-hero-img_wrap {
	padding: 50px 0 0;
	max-width: 450px;
    margin: 0 auto;
}
.pp-hero-img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 0;
}

@media (min-width: 576px) {
	.pp-hero-text_left {
		top: 30px;
	}
	.pp-hero-text_left, .pp-hero-text_right {
		font-size: 20px;
	}
	.pp-hero-text_box .fs-sm {
		font-size: 16px;
	}
}

@media (min-width: 768px) {
	.pp-hero::after {
		background-size: 150%;
	}
	.pp-hero-text_top__top {
		font-size: 22px;
		margin-bottom: 20px;
	}
	.pp-hero .title_text {
		font-size: 36px;
		margin-bottom: 20px;
	}
	.pp-hero-text_top__bottom {
		font-size: 16px;
	}
	.pp-hero-text_top__bottom::before {
		width: 30px;
		height: 30px;
	}
	.pp-hero-text_left,
	.pp-hero-text_right {
		font-size: 24px;
	}
	.pp-hero-text_left__top {
		margin-bottom: 15px;
	}
	.pp-hero-text_right__top {
		margin-bottom: 15px;
	}
	.pp-hero-text_box .fs-sm {
		font-size: 16px;
	}

}

@media (min-width: 992px) {
	.pp-hero::after {
		background-size: contain;
	}
	.pp-hero-text_top__top {
		font-size: 24px;
	}
	.pp-hero .title_text {
		font-size: 42px;
	}
	.pp-hero-text_top__bottom {
		font-size: 18px;
	}
	.pp-hero-text_left,
	.pp-hero-text_right {
		font-size: 28px;
	}
	.pp-hero-text_box .fs-sm {
		font-size: 18px;
	}

}

@media (min-width: 1200px) {
	.pp-hero-img_wrap {
		padding: 30px 0 0;
		max-width: 430px;
	}
	.pp-hero::after {
		background-size: auto;
        bottom: 120px;
        opacity: 0.5;
	}
	.pp-hero-text_top__top {
		font-size: 24px;
	}
	.pp-hero .title_text {
		font-size: 42px;
	}
	.pp-hero-text_top__bottom {
		font-size: 18px;
	}
	.pp-hero-text_left,
	.pp-hero-text_right {
		top: 50px;
		bottom: auto;
		font-size: 28px;
	}
	.pp-hero-text_left {
		left: 50px;
	}
	.pp-hero-text_right {
		right: 75px;
	}
		.pp-hero-text_left__top {
		margin-bottom: 20px;
	}
	.pp-hero-text_left__bottom {
		position: absolute;
		left: -65px;
	}
	.pp-hero-text_right__top {
		position: relative;
		left: 15px;
		margin-bottom: 20px;
	}

	.pp-hero-text_right__bottom {
		position: absolute;
		right: -175px;
	}
	.pp-hero-text_box .fs-sm {
		font-size: 18px;
	}

}
@media (min-width: 1600px) {
	.pp-hero::after {
		background-size: auto;
	}
	.pp-hero .title_text {
        font-size: 49px;
    }
	.pp-hero-text_top__top {
		font-size: 24px;
	}
	.pp-hero .title_text {
		font-size: 42px;
	}
	.pp-hero-text_top__bottom {
		font-size: 18px;
	}
	.pp-hero-text_left,
	.pp-hero-text_right {
		font-size: 30px;
	}
	.pp-hero-text_left {
		left: -65px;
	}
	.pp-hero-text_right {
		right: 0;
	}
	.pp-hero-text_left__top {
		margin-bottom: 40px;
	}
	.pp-hero-text_left__bottom {
		left: -65px;
	}
	.pp-hero-text_right__top {
		left: 15px;
		margin-bottom: 40px;
	}

	.pp-hero-text_right__bottom {
		right: -235px;
	}
	.pp-hero-text_box .fs-sm {
		font-size: 24px;
	}

}

.pp-hero-eyebrow {
	font-size: 15px;
	color: var(--text-light);
	margin-bottom: 12px;
	letter-spacing: 0.05em;
}
.pp-hero-title {
	font-size: 26px;
	font-weight: 700;
	color: var(--blue-dark);
	font-family: "BIZ UDPGothic", sans-serif;
	line-height: 1.35;
	margin-bottom: 16px;
}
.pp-hero-desc {
	font-size: 15px;
	color: var(--text);
	line-height: 1.8;
	margin-bottom: 28px;
}
.pp-hero-stats {
	display: flex;
	justify-content: center;
	gap: 20px;
	margin-bottom: 32px;
	flex-wrap: wrap;
}
.pp-stat {
	background: var(--white);
	border-radius: 12px;
	padding: 14px 20px;
	text-align: center;
	min-width: 110px;
}
.pp-stat-num {
	font-size: 20px;
	font-weight: 700;
	color: var(--teal);
	font-family: "BIZ UDPGothic", sans-serif;
}
.pp-stat-label {
	font-size: 12px;
	color: var(--text-light);
	margin-top: 4px;
}
.pp-cta-btn {
	display: inline-block;
	background: var(--teal);
	color: var(--white);
	font-size: 15px;
	font-weight: 700;
	padding: 14px 40px;
	border-radius: 30px;
	text-decoration: none;
	font-family: "BIZ UDPGothic", sans-serif;
	transition: opacity 0.2s;
}
.pp-cta-btn:hover {
	opacity: 0.85;
}

/* Section common */
.pp-section {
	margin-bottom: 32px;
	background: #fff;
	border-radius: 16px;
	padding: 30px 20px;
}
.pp-section--plain {
	background: transparent;
	border-radius: 0;
	box-shadow: none;
	padding-left: 0;
	padding-right: 0;
}
.pp-section-eyebrow {
	font-size: 15px;
	color: var(--text-light);
	text-align: center;
	margin-bottom: 8px;
	letter-spacing: 0.05em;
}
.pp-section-title {
	font-size: 22px !important;
	font-weight: 700;
	color: var(--blue-dark);
	font-family: "BIZ UDPGothic", sans-serif;
	text-align: center;
	margin-bottom: 8px;
}
.pp-section-line {
	width: 40px;
	height: 3px;
	background: var(--teal);
	margin: 0 auto 32px;
	border-radius: 2px;
}
.pp-section-desc {
	font-size: 15px;
	color: var(--text-light);
	text-align: center;
	line-height: 1.8;
	margin-bottom: 28px;
    border: 2px solid #88C9BB;
    padding: 10px 15px;
}
@media (min-width: 768px) {
    .pp-section {
	    padding: 48px 40px;
    }
    .pp-section-desc {
        padding: 0 15px;
    }
}

/* Timeline */
.pp-timeline {
	position: relative;
	padding-left: 40px;
	margin-bottom: 28px;
}
.pp-timeline::before {
	content: "";
	position: absolute;
	left: 11px;
	top: 10px;
	bottom: 10px;
	width: 2px;
	background: linear-gradient(to bottom, #1a4a2e, #88e0a8);
}
.pp-tl-item {
	position: relative;
	margin-bottom: 20px;
}
.pp-tl-dot {
	position: absolute;
	left: -40px;
	top: 2px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--teal);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0;
}
.pp-tl-dot--future {
	background: var(--teal);
}
.pp-tl-item:nth-child(1) .pp-tl-dot {
	background: #1a4a2e;
}
.pp-tl-item:nth-child(2) .pp-tl-dot {
	background: #236b3e;
}
.pp-tl-item:nth-child(3) .pp-tl-dot {
	background: #2d8b52;
}
.pp-tl-item:nth-child(4) .pp-tl-dot {
	background: #38a666;
}
.pp-tl-item:nth-child(5) .pp-tl-dot {
	background: #4cbf7a;
}
.pp-tl-item:nth-child(6) .pp-tl-dot {
	background: #68d191;
}
.pp-tl-item:nth-child(7) .pp-tl-dot {
	background: #88e0a8;
}
.pp-tl-item:nth-child(1) .pp-tl-year {
	color: #1a4a2e;
}
.pp-tl-item:nth-child(2) .pp-tl-year {
	color: #236b3e;
}
.pp-tl-item:nth-child(3) .pp-tl-year {
	color: #2d8b52;
}
.pp-tl-item:nth-child(4) .pp-tl-year {
	color: #38a666;
}
.pp-tl-item:nth-child(5) .pp-tl-year {
	color: #4cbf7a;
}
.pp-tl-item:nth-child(6) .pp-tl-year {
	color: #68d191;
}
.pp-tl-item:nth-child(7) .pp-tl-year {
	color: #88e0a8;
}
.pp-tl-year {
	font-size: 24px;
	font-weight: 700;
	color: var(--blue-dark);
	font-family: "BIZ UDPGothic", sans-serif;
	margin-bottom: 2px;
}
.pp-tl-year--future {
	color: #e07b00;
}
.pp-tl-text {
	font-size: 15px;
	color: var(--text);
	line-height: 1.7;
}
.pp-tl-text strong {
	color: var(--blue-dark);
}
.pp-law-box {
	background: var(--teal);
	border-radius: 12px;
	padding: 20px;
	color: var(--white);
	text-align: center;
}
.pp-law-box-title {
	font-size: 24px;
	font-weight: 700;
    line-height: 1.5;
	margin-bottom: 14px;
	letter-spacing: 0.05em;
	text-decoration: underline;
	text-decoration-color: #fff;
	text-underline-offset: 4px;
	text-decoration-thickness: 2px;
}
.pp-law-box-body {
	font-size: 15px;
	line-height: 1.9;
	opacity: 0.92;
}
.pp-law-box-body strong {
	color: #ffff00;
	font-size: 1.5em;
	font-weight: 700;
}
@media (min-width: 768px) {
    .pp-law-box-title {
        font-size: 24px;
        text-underline-offset: 6px;
        text-decoration-thickness: 2px;
    }
    .pp-law-box {
        padding: 24px 28px;
    }
}

/* Trouble */
.pp-trouble-bar {
	background: #6b8f72;
	color: var(--white);
	text-align: center;
	font-size: 14px;
	font-weight: 700;
	padding: 10px;
	border-radius: 6px 6px 0 0;
	font-family: "BIZ UDPGothic", sans-serif;
}
.pp-trouble-grid {
	display: grid;
	grid-template-columns: 1fr;
	grid-auto-rows: 1fr;
	gap: 2px;
	background: var(--blue-mid);
	border: 2px solid var(--blue-mid);
	border-radius: 12px;
	overflow: hidden;
	margin-bottom: 20px;
}
.pp-trouble-card {
	background: var(--white);
	padding: 6px 20px;
	font-size: 15px;
	color: var(--text);
	line-height: 1.7;
	text-align: center;
	overflow: hidden;
}
.pp-trouble-card:nth-child(2) .pp-trouble-img,
.pp-trouble-card:nth-child(3) .pp-trouble-img,
.pp-trouble-card:nth-child(4) .pp-trouble-img {
	transform: scale(1.3);
}
.pp-trouble-card strong {
	color: #c0392b;
}
.pp-trouble-img {
	width: 200px;
	height: 200px;
	object-fit: contain;
	display: block;
	margin: 0 auto -16px;
}
.pp-trouble-foot {
	background: linear-gradient(135deg, #1a4a2e, #38a666);
	border-radius: 14px;
	padding: 25px;
	text-align: center;
	font-size: 20px;
	font-weight: 700;
	color: #fff;
	line-height: 1.8;
	font-family: "BIZ UDPGothic", sans-serif;
	box-shadow: 0 6px 20px rgba(26, 74, 46, 0.3);
	letter-spacing: 0.03em;
}
.pp-trouble-foot strong {
	color: #ffff00;
}
@media (min-width: 768px) {
    .pp-trouble-foot {
        font-size: 22px;
        padding: 28px 32px;
    }
}

/* プロvs自社 比較表 */
.pp-cmp-table-wrap {
    overflow-x: auto;
    width: 100%;
}
.pp-cmp-table {
	width: 872px;
	border-collapse: collapse;
	font-size: 15px;
	table-layout: fixed;
}
.pp-cmp-table th {
	padding: 12px 16px;
	font-weight: 700;
	font-family: "BIZ UDPGothic", sans-serif;
	font-size: 14px;
}
.pp-cmp-th-blank {
	background: var(--bg);
}
.pp-cmp-th-pro {
	background: var(--teal);
	color: #ffff00;
}
.pp-cmp-th-self {
	background: #9badc0;
	color: var(--white);
}
.pp-cmp-table td {
	padding: 16px;
	border-bottom: 1px solid #e5e5e5;
	vertical-align: middle;
	line-height: 1.7;
	text-align: center;
}
.pp-cmp-td-label {
	background: var(--blue-mid);
	font-size: 12px;
	font-weight: 700;
	color: var(--blue-dark);
	width: calc(100% / 6);
	text-align: center;
}
.pp-cmp-td-pro {
	background: var(--white);
}
.pp-cmp-td-self {
	background: #fff;
	color: #555;
}
.pp-cmp-td-pro {
	background: #e6f2f0;
	font-size: 18px;
	font-weight: 700;
}
.pp-cmp-accent {
	color: var(--teal);
	font-weight: 700;
}
.pp-cmp-accent-orange {
	color: #e07b00;
	font-weight: 700;
}
.pp-cmp-th-pro,
.pp-cmp-th-self {
	position: relative;
	padding-bottom: 22px;
}
.pp-cmp-th-pro,
.pp-cmp-td-pro {
	width: calc(100% * 3 / 6);
}
.pp-cmp-th-self,
.pp-cmp-td-self {
	width: calc(100% * 2 / 6);
}

/* 代行のメリットボックス */
.pp-merit-box {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	background: #fff;
	border: 2px dashed #b2dfdb;
	border-radius: 14px;
	padding: 24px 28px;
	margin-top: 32px;
}
.pp-merit-text {
	flex: 1;
	font-size: 18px;
	color: var(--text);
	line-height: 2;
	text-align: center;
}
.pp-merit-accent {
	color: #e07b00;
	font-weight: 700;
	font-size: 1.4em;
}
.pp-merit-img {
	flex: 0 0 auto;
	width: 140px;
}
.pp-merit-img img {
	width: 100%;
	height: auto;
	display: block;
}
.pp-cmp-th-pro::after,
.pp-cmp-th-self::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -10px;
	transform: translateX(-50%);
	border-left: 14px solid transparent;
	border-right: 14px solid transparent;
}
.pp-cmp-th-pro::after {
	border-top: 14px solid var(--teal);
}
.pp-cmp-th-self::after {
	border-top: 14px solid #9badc0;
}

/* サービス比較表 */
.pp-svc-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
	table-layout: fixed;
}
.pp-svc-table th,
.pp-svc-table td {
	font-size: 12px;
	padding: 8px 5px;
	border: 2px solid var(--blue-mid);
	text-align: center;
	vertical-align: middle;
	line-height: 1.6;
}
.pp-svc-table td {
	background: #fff;
}
.pp-svc-table tbody tr {
	height: 72px;
}
.pp-svc-th-item {
	background: var(--blue-light);
	color: var(--blue-dark);
	font-weight: 700;
	font-size: 12px;
	width: 90px;
}
.pp-svc-th-jns {
	background: var(--teal);
	color: var(--white);
	font-weight: 700;
	font-family: "BIZ UDPGothic", sans-serif;
}
.pp-svc-th-other {
	background: #9badc0;
	color: var(--white);
	font-weight: 700;
}
.pp-svc-td-jns {
	background: #f0faf7;
}
.pp-svc-best {
	color: var(--teal);
	font-weight: 700;
}
.pp-svc-weak {
	color: #9badc0;
}

/* CTA */
.pp-cta-section {
	background: var(--blue-dark);
	border-radius: 16px;
	text-align: center;
	padding: 56px 32px;
}
.pp-cta-section h2 {
	font-size: 26px;
	font-weight: 700;
	color: var(--white);
	font-family: "BIZ UDPGothic", sans-serif;
	margin-bottom: 12px;
}
.pp-cta-section p {
	font-size: 14px;
	color: #c8e6c9;
	line-height: 1.8;
	margin-bottom: 28px;
}
.pp-cta-btn-lg {
	display: inline-block;
	background: var(--teal);
	color: var(--white);
	font-size: 17px;
	font-weight: 700;
	padding: 16px 52px;
	border-radius: 32px;
	text-decoration: none;
	font-family: "BIZ UDPGothic", sans-serif;
	transition: opacity 0.2s;
	margin-bottom: 16px;
}
.pp-cta-btn-lg:hover {
	opacity: 0.85;
}
.pp-cta-phone {
	font-size: 22px;
	font-weight: 700;
	color: var(--white);
	font-family: "BIZ UDPGothic", sans-serif;
	margin-top: 12px;
}
.pp-cta-phone-label {
	font-size: 12px;
	color: #c8e6c9;
	margin-top: 4px;
}

/* ワンデイ検討セクション */
.pp-oneday-feature {
	background-color: #fff;
	background-image:
		linear-gradient(rgba(180, 220, 210, 0.5) 1px, transparent 1px),
		linear-gradient(90deg, rgba(180, 220, 210, 0.5) 1px, transparent 1px);
	background-size: 24px 24px;
	border-radius: 12px;
	padding: 20px 24px;
	margin-bottom: 24px;
	border: 2px solid #b2dfdb;
}
.pp-oneday-feature-header {
	font-size: 18px;
	color: #fff;
	font-weight: 700;
	margin-bottom: 16px;
	line-height: 1.7;
	background: #1a4a2e;
	padding: 14px 16px;
	border-radius: 8px;
	text-align: center;
}
.pp-oneday-feature-body {
	display: flex;
	gap: 24px;
	align-items: center;
	justify-content: center;
}
.pp-oneday-feature-left {
	flex: 0 0 auto;
	padding-left: 112px;
}
.pp-oneday-feature-img {
	width: 260px;
	flex-shrink: 0;
	overflow: visible;
}
.pp-oneday-feature-img img {
	width: 100%;
	height: auto;
	display: block;
	transform: scale(1.5) translateX(-50px) translateY(17px);
	transform-origin: center center;
}
.pp-oneday-checklist {
	list-style: none;
	padding: 0;
	margin: 0;
}
.pp-oneday-checklist li {
	font-size: 18px;
	color: var(--text);
	line-height: 1.8;
	padding: 8px 12px 8px 34px;
	position: relative;
}
.pp-oneday-checklist li::before {
	content: "☑";
	position: absolute;
	left: 8px;
	color: var(--teal);
	font-size: 15px;
}
.pp-oneday-checklist li strong {
	color: #e07b00;
}

/* ヒーロー下帯 */
.pp-wrap.pp-band {
    padding: 0;
}
.pp-hero-band {
	background: linear-gradient(to right, #1a4a2e, #38a666);
	padding: 14px 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
	width: 100vw;
}
.pp-hero-band-tags {
	display: flex;
	gap: 10px;
	flex-shrink: 0;
}
.pp-hero-band-tag {
	border: 2px solid #fff;
	color: #fff;
	padding: 5px 18px;
	border-radius: 20px;
	font-size: 14px;
	font-weight: 700;
	font-family: "BIZ UDPGothic", sans-serif;
	white-space: nowrap;
}
.pp-hero-band-text {
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	font-family: "BIZ UDPGothic", sans-serif;
	line-height: 1.7;
	text-align: center;
}

.pp-point-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}
.pp-point-card {
	background: var(--white);
	border-radius: 16px;
	border: 1px solid #b2dfdb;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
	display: flex;
	flex-direction: column;
}
.pp-point-card-img {
	width: 100%;
	aspect-ratio: 16/9;
	object-fit: cover;
	display: block;
	flex-shrink: 0;
}
.pp-point-card-body {
	padding: 20px;
	flex: 1;
	min-height: 200px;
}
.pp-point-num {
	display: none;
}
.pp-point-title {
	font-size: 19px;
	font-weight: 700;
	color: var(--blue-dark);
	display: table;
	margin: 0 auto 14px;
	font-family: "BIZ UDPGothic", sans-serif;
	background: #eaf6f4;
	border-radius: 8px;
	padding: 6px 18px;
	text-align: center;
}
.pp-hl {
	background: linear-gradient(transparent 55%, rgba(255, 255, 0, 0.65) 55%);
}
.pp-point-list {
	list-style: none;
	padding: 0;
	margin: 0;
	font-size: 16px;
	color: var(--text);
	line-height: 1.7;
}
.pp-point-list li {
	padding-left: 1.4em;
	position: relative;
}
.pp-point-list li::before {
	content: "▶";
	position: absolute;
	left: 0;
	top: 0;
	color: var(--teal);
	font-size: 11px;
	line-height: 1.9;
}

.pp-oneday-then {
	text-align: center;
	margin-bottom: 24px;
}
.pp-oneday-then-btn {
	display: inline-block;
	background: linear-gradient(135deg, #1a4a2e, var(--teal));
	color: var(--white);
	font-size: 14px;
	font-weight: 700;
	padding: 12px 40px 28px;
	clip-path: polygon(0 0, 100% 0, 100% 72%, 50% 100%, 0 72%);
}
.pp-oneday-wrapper {
	background: #eaf6f4;
	border-radius: 12px;
	border: 1px solid #88c9bb;
	box-shadow: 0 3px 12px rgba(0, 0, 0, 0.1);
	padding: 32px 24px 28px;
	margin-top: 8px;
}
.pp-oneday-cards {
	background: transparent;
	border: none;
	box-shadow: none;
	border-radius: 0;
	padding: 40px 0 24px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin-bottom: 0;
	align-items: stretch;
}
.pp-oneday-card {
	background: var(--white);
	border-radius: 10px;
	padding: 16px;
	text-align: center;
	font-size: 13px;
	color: var(--text);
	line-height: 1.8;
	border: 1px solid #b2dfdb;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.pp-oneday-card strong {
	color: var(--teal);
}
.pp-oneday-card-img {
	width: 110px;
	height: 110px;
	border-radius: 50%;
	background: #eaf6f4;
	overflow: hidden;
	margin: -40px auto 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 3px solid #88c9bb;
}
.pp-oneday-card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.pp-oneday-tagline {
	text-align: center;
	font-size: 19px;
	font-weight: 700;
	color: var(--teal);
	letter-spacing: 0.08em;
	margin-bottom: 0;
	font-family: "BIZ UDPGothic", sans-serif;
	text-shadow: 1px 2px 4px rgba(0, 0, 0, 0.2);
}
.pp-oneday-tagline span {
	background: linear-gradient(transparent 65%, rgba(255, 255, 0, 0.7) 65%);
	padding: 0 4px;
}
.pp-oneday-cost {
	background: #eaf6f4;
	border-radius: 12px;
	padding: 28px 32px;
	display: flex;
	flex-direction: column;
	text-align: center;
	gap: 32px;
	align-items: center;
}
.pp-oneday-cost-images {
	flex: 1;
	display: flex;
	gap: 12px;
	align-items: flex-end;
	position: relative;
}
.pp-oneday-cost-images::before {
	content: "";
	position: absolute;
	right: -56px;
	top: 20px;
	bottom: 85px;
	width: calc(70% + 50px);
	background: #fff;
	z-index: 0;
}
.pp-oneday-cost-images .img-muryo {
	width: 50%;
	border-radius: 4px;
	transform: scale(1.15) translateY(10px);
	transform-origin: left center;
	align-self: center;
	position: relative;
	z-index: 1;
	filter: drop-shadow(4px 6px 12px rgba(0, 0, 0, 0.4));
}
.pp-oneday-cost-images .img-speedy-wrap {
	width: 120%;
	align-self: flex-start;
	display: flex;
	flex-direction: column;
	gap: 5px;
	transform: translateX(-65px) translateY(25px);
	background: transparent;
	border-radius: 0;
	padding: 16px 0 60px;
	position: relative;
	z-index: 1;
}
.pp-oneday-cost-images .img-speedy {
	width: 100%;
	border-radius: 4px;
	transform: scale(1.15);
	transform-origin: left center;
}
.pp-speedy-caption {
	font-size: 15px;
	color: #000;
	line-height: 1.7;
	margin: 0 -7.5% 8px;
	text-decoration: underline;
	text-underline-offset: 3px;
	width: 130%;
	text-align: center;
}
.pp-oneday-cost-right {
	flex: 1;
	display: flex;
	gap: 16px;
	align-items: flex-start;
}
.pp-oneday-cost-free {
	background: #e07b00;
	color: var(--white);
	width: 72px;
	height: 72px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	font-weight: 700;
	flex-shrink: 0;
}
.pp-oneday-cost-body {
	flex: 1;
	font-size: 15px;
	color: var(--text);
	line-height: 1.8;
}
.pp-oneday-cost-body .pp-cost-note {
	color: var(--text-light);
	margin-bottom: 8px;
}
.pp-oneday-cost-body .pp-cost-highlight {
	font-size: 18px;
	font-weight: 700;
	color: var(--blue-dark);
	line-height: 1.5;
}
.pp-oneday-cost-body .pp-cost-highlight strong {
	color: var(--teal);
}
.pp-oneday-cost-body .pp-cost-tag {
	display: inline-block;
	background: var(--teal);
	color: var(--white);
	font-size: 12px;
	padding: 2px 8px;
	border-radius: 4px;
	margin-right: 4px;
	vertical-align: middle;
}

/* 省エネ建築ひろば お問い合わせ */
.pp-contact-cta {
	background: linear-gradient(135deg, #eaf6f4, #d0ede8);
	border-radius: 16px;
	border: 2px solid #88c9bb;
	padding: 48px 32px;
	text-align: center;
	margin-bottom: 48px;
}
.pp-contact-cta-lead {
	font-size: 20px;
	color: var(--text);
	line-height: 2;
	margin: 32px 0 24px;
	text-align: center;
}
.pp-contact-cta-lead strong {
	color: var(--blue-dark);
	font-weight: 700;
	font-size: 1.1em;
}
.pp-contact-cta h2 {
	font-size: 22px;
	font-weight: 700;
	color: var(--blue-dark);
	font-family: "BIZ UDPGothic", sans-serif;
	margin-bottom: 10px;
}
.pp-contact-cta p {
	font-size: 14px;
	color: var(--text);
	line-height: 1.8;
	margin-bottom: 24px;
}


/* =========================================================
   デスクトップ向けスタイル (Mobile First)
   ========================================================= */
@media (min-width: 768px) {
	.pp-merit-box {
		flex-direction: row;
	}
	.pp-merit-img {
		flex: 0 0 180px;
		width: auto;
	}
	.pp-point-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.pp-oneday-cards {
		grid-template-columns: repeat(3, 1fr);
	}
	.pp-oneday-cost {
		flex-direction: row;
		text-align: left;
	}
	.pp-trouble-grid {
		grid-template-columns: 1fr 1fr;
	}
	.pp-hero-title {
		font-size: 36px;
	}
	.pp-section-title {
		font-size: 36px !important;
	}
	.pp-svc-table th,
	.pp-svc-table td {
		font-size: 15px;
		padding: 11px 12px;
	}
}