:root {
	--ipc-main: #1b2142;
	--ipc-white: #ffffff;
	--ipc-black: #1a1a1a;
	--ipc-gray: #e4e4e4;
	--ipc-gray-dark: #bcb9b4;
	--ipc-accent: #4a90d9;
	--ipc-container: 1192px;
	--ipc-header-height: 87px;
	--ipc-font-serif: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
	--ipc-font-noto: "Noto Serif JP", var(--ipc-font-serif);
	--ipc-font-sans: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
	--ipc-font-display: "Cormorant Garamond", Georgia, serif;
	--ipc-font-hana: "HanaMinA", "HanaMin", var(--ipc-font-serif);
	--ipc-font-didot: Didot, "GFS Didot", "Playfair Display", Georgia, serif;
	--ipc-font-din: "Barlow Semi Condensed", var(--ipc-font-display);
	--ipc-font-mono: "JetBrains Mono", ui-monospace, monospace;
}

*, *::before, *::after { box-sizing: border-box; }

html {
	scroll-behavior: smooth;
	scrollbar-gutter: stable;
}

body {
	margin: 0;
	color: var(--ipc-black);
	font-family: var(--ipc-font-sans);
	font-size: 16px;
	line-height: 1.7;
	background: var(--ipc-white);
	line-break: strict;
	word-break: normal;
	overflow-wrap: break-word;
}

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; }

ul, ol { margin: 0; padding: 0; list-style: none; }

.ipc-container {
	width: min(100% - 48px, var(--ipc-container));
	margin-inline: auto;
}

/* SP-only forced line break inside titles (PC keeps single visual line). */
br.ipc-br-sp {
	display: none;
}

@media (max-width: 768px) {
	br.ipc-br-sp {
		display: inline;
	}
}

.ipc-main { padding-top: var(--ipc-header-height); }

/* TOPヒーロー: main の padding-top だと body 背景が見えて二重余白になるため、
   ヒーロー側 margin-top でヘッダー高さ分だけ下げる */
.ipc-main:has(> .ipc-hero:first-child),
.ipc-main:has(> .ipc-hero-band:first-child) {
	padding-top: 0;
}

/* TOP hero band — groups hero + stats + SP CTA (Figma SP node 2013:149) */
.ipc-hero-band {
	position: relative;
	margin-top: var(--ipc-header-height);
	background: var(--ipc-main);
}

.ipc-hero-band__lower-bg {
	display: none;
}

body.is-hero-intro-lock {
	overflow: hidden;
}

/* FOUC防止：JS起動前のみ非表示。レイアウト（高さ・padding）は一切変えない */
.ipc-hero-band[data-hero-intro]:not(.is-hero-intro-ready):not(.is-hero-intro-complete) .ipc-hero__main,
.ipc-hero-band[data-hero-intro]:not(.is-hero-intro-ready):not(.is-hero-intro-complete) .ipc-hero__foot,
.ipc-hero-band[data-hero-intro]:not(.is-hero-intro-ready):not(.is-hero-intro-complete) .ipc-hero__scroll,
.ipc-hero-band[data-hero-intro]:not(.is-hero-intro-ready):not(.is-hero-intro-complete) .ipc-stats,
.ipc-hero-band[data-hero-intro]:not(.is-hero-intro-ready):not(.is-hero-intro-complete) .ipc-hero-cta-bar {
	opacity: 0;
}

.ipc-hero-band.is-hero-intro-playing .ipc-hero {
	overflow: hidden;
}

/* Header */
.ipc-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	background: var(--ipc-main);
	border-bottom: 1px solid var(--ipc-border-card);
}

.ipc-header__inner {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0;
	width: min(100%, var(--ipc-container));
	max-width: var(--ipc-container);
	margin-inline: auto;
	padding: 21px 23px;
	box-sizing: border-box;
	min-height: var(--ipc-header-height);
}

.ipc-header__logo {
	flex: 0 0 auto;
	min-width: 0;
}

.ipc-header__nav {
	flex: 0 0 auto;
	margin-left: auto;
	margin-right: 56px;
	min-width: 0;
}

.ipc-logo {
	display: flex;
	align-items: center;
	min-height: 42px;
	max-width: 125px;
	opacity: 1;
	transition: opacity 0.25s ease;
}

.ipc-logo:hover {
	opacity: 0.55;
}

@media (prefers-reduced-motion: reduce) {
	.ipc-logo {
		transition: none;
	}
}

.ipc-logo__mark {
	display: block;
	width: 125px;
	height: auto;
	max-width: 100%;
}

.ipc-header__nav-list {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	width: auto;
	max-width: 100%;
	margin: 0;
}

.ipc-header__nav-item {
	position: relative;
	display: flex;
	justify-content: center;
	flex: 0 0 auto;
	min-width: 0;
	padding: 0 20px;
}

.ipc-header__nav-item:first-child {
	padding-left: 0;
}

.ipc-header__nav-item:last-child {
	padding-right: 0;
}

.ipc-header__nav-item:not(:last-child)::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 42px;
	background: rgba(255, 255, 255, 0.35);
}

.ipc-header__nav-item a {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 0;
	min-height: 36px;
	color: var(--ipc-white);
	text-align: left;
}

.ipc-header__nav-visual {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 0;
}

.ipc-header__nav-line {
	display: block;
}

.ipc-header__nav-swap {
	display: block;
	overflow: hidden;
}

.ipc-header__nav-line--en .ipc-header__nav-swap {
	height: 1.7em;
}

.ipc-header__nav-line--ja .ipc-header__nav-swap {
	height: 1.9em;
}

.ipc-header__nav-swap-track {
	display: flex;
	flex-direction: column;
	transition: transform 1.05s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: transform;
}

.ipc-header__nav-item a:hover .ipc-header__nav-swap-track,
.ipc-header__nav-item a:focus-visible .ipc-header__nav-swap-track {
	transform: translateY(-50%);
}

.ipc-header__nav-swap-item {
	display: flex;
	align-items: center;
	flex: 0 0 50%;
	box-sizing: border-box;
}

.ipc-header__nav-line--en .ipc-header__nav-swap-item {
	height: 1.7em;
	flex-basis: 1.7em;
}

.ipc-header__nav-line--ja .ipc-header__nav-swap-item {
	height: 1.9em;
	flex-basis: 1.9em;
}

.ipc-header__nav-en {
	display: block;
	font-family: var(--ipc-font-serif);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 1.6px;
	line-height: 1.7;
	white-space: nowrap;
}

.ipc-header__nav-ja {
	display: block;
	font-family: "Hiragino Maru Gothic ProN", "Hiragino Maru Gothic Pro", "Arial Rounded MT Bold", var(--ipc-font-sans);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 2px;
	line-height: 1.9;
	white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	.ipc-header__nav-swap-track {
		transition: none;
	}

	.ipc-header__nav-item a:hover .ipc-header__nav-swap-track,
	.ipc-header__nav-item a:focus-visible .ipc-header__nav-swap-track {
		transform: none;
	}

	.ipc-footer__nav-swap-track {
		transition: none;
	}

	.ipc-footer__col a:hover .ipc-footer__nav-swap-track,
	.ipc-footer__col a:focus-visible .ipc-footer__nav-swap-track,
	.ipc-footer__sitemap-col a:hover .ipc-footer__nav-swap-track,
	.ipc-footer__sitemap-col a:focus-visible .ipc-footer__nav-swap-track {
		transform: none;
	}

	.ipc-header__cta {
		transition: none;
	}
}

.ipc-header__cta {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: 139px;
	min-width: 139px;
	min-height: 45px;
	padding: 0 12px 0 23px;
	background: linear-gradient(150deg, #fff 13.5%, #d3d3d3 44.7%, #fff 72.8%, #999 107.6%);
	background-size: 200% 200%;
	background-position: 0% 50%;
	color: var(--ipc-main);
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 10px;
	white-space: nowrap;
	box-sizing: border-box;
	text-decoration: none;
	transition: background-position 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.ipc-header__cta:hover,
.ipc-header__cta:focus-visible {
	background-position: 100% 50%;
}

.ipc-header__menu-btn {
	flex-shrink: 0;
	margin-left: auto;
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.ipc-header__menu-btn span {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--ipc-white);
}

/* Mobile menu — Figma node 238:11 MOBILE MENU OVERLAY */
.ipc-mobile-menu[hidden] { display: none; }

.ipc-mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 1100;
}

.ipc-mobile-menu:not([hidden]) { display: block; }

.ipc-mobile-menu__overlay {
	position: absolute;
	inset: 0;
	background: #e8e6e0;
}

.ipc-mobile-menu__panel {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	background: var(--ipc-white);
	overflow: hidden;
}

.ipc-mobile-menu__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-shrink: 0;
	min-height: 97px;
	padding: 0 24px;
	border-bottom: 1px solid var(--ipc-gray);
}

.ipc-mobile-menu__head .ipc-logo {
	max-width: 125px;
	filter: brightness(0) saturate(100%) invert(13%) sepia(21%) saturate(1816%) hue-rotate(196deg) brightness(95%) contrast(93%);
}

.ipc-mobile-menu__close {
	position: relative;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--ipc-gray);
	background: transparent;
	cursor: pointer;
}

.ipc-mobile-menu__close-line {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 18px;
	height: 1.5px;
	margin: -0.75px 0 0 -9px;
	background: var(--ipc-main);
}

.ipc-mobile-menu__close-line:first-child {
	transform: rotate(45deg);
}

.ipc-mobile-menu__close-line:last-child {
	transform: rotate(-45deg);
}

.ipc-mobile-menu__nav {
	flex: 1;
	overflow-y: auto;
	padding-top: 0;
}

.ipc-mobile-menu__nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ipc-mobile-menu__nav li {
	border-bottom: 1px solid var(--ipc-gray);
}

.ipc-mobile-menu__nav a {
	display: flex;
	align-items: center;
	min-height: 86px;
	padding: 0 28px;
	color: var(--ipc-main);
	text-decoration: none;
}

.ipc-mobile-menu__en {
	font-family: var(--ipc-font-display);
	font-size: 24px;
	font-weight: 400;
	line-height: 40.8px;
	letter-spacing: 1.2px;
	text-transform: none;
}

.ipc-mobile-menu__ja {
	display: none;
}

.ipc-mobile-menu__actions {
	flex-shrink: 0;
	display: grid;
	gap: 10px;
	margin-top: auto;
	padding: 24px;
	border-top: 1px solid var(--ipc-gray);
}

.ipc-mobile-menu__cta {
	min-height: 58px;
	padding: 14px 20px;
	font-family: var(--ipc-font-mono);
	font-size: 12px;
	font-weight: 300;
	line-height: 20.4px;
	letter-spacing: 2.4px;
	text-transform: uppercase;
}

/* Buttons */
.ipc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 14px 32px;
	border: 1px solid transparent;
	font-family: var(--ipc-font-sans);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 2px;
	cursor: pointer;
	transition: opacity .2s;
}

.ipc-btn:hover { opacity: .85; }

.ipc-btn--primary {
	background: var(--ipc-accent);
	color: var(--ipc-white);
	border-color: var(--ipc-accent);
}

.ipc-btn--outline {
	background: transparent;
	color: var(--ipc-white);
	border-color: var(--ipc-white);
}

.ipc-btn--dark {
	background: var(--ipc-main);
	color: var(--ipc-white);
	border-color: var(--ipc-main);
}

.ipc-btn--outline-dark {
	background: var(--ipc-white);
	color: var(--ipc-main);
	border-color: var(--ipc-main);
}

.ipc-btn--block { width: 100%; }

.ipc-btn--submit { width: 100%; max-width: 540px; margin-top: 16px; }

/* Hero — Figma node 238:177 + Group 31 (238:176) */
.ipc-hero-band > .ipc-hero,
.ipc-main > .ipc-hero:first-child {
	margin-top: 0;
}

.ipc-main > .ipc-hero:first-child {
	margin-top: var(--ipc-header-height);
}

.ipc-hero {
	position: relative;
	height: 508px;
	min-height: 508px;
	display: flex;
	flex-direction: column;
	color: var(--ipc-white);
	overflow: hidden;
	isolation: isolate;
}

.ipc-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
}

.ipc-hero__bg img {
	width: 100%;
	height: 100%;
	min-height: 100%;
	object-fit: cover;
	object-position: 50% 32%;
}

.ipc-hero__main {
	position: relative;
	z-index: 1;
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	text-align: center;
	padding: 143px 0 0;
}

.ipc-hero__foot {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: clamp(24px, 6vw, 96px);
	padding: 0 0 40px;
	margin-top: auto;
}

.ipc-hero__tagline {
	min-width: 0;
	max-width: 780px;
	text-align: left;
	color: var(--ipc-white);
}

.ipc-hero__tagline-main {
	position: relative;
	min-height: 70px;
	margin: 0 0 14px;
	font-family: var(--ipc-font-serif);
	font-size: clamp(28px, 3.5vw, 40px);
	font-weight: 400;
	line-height: 1.75;
}

.ipc-hero__tagline-line {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	white-space: nowrap;
}

.ipc-hero__tagline-line:first-child {
	letter-spacing: 15px;
}

.ipc-hero__tagline-line--offset {
	left: 325px;
	padding-left: 0;
	letter-spacing: 10px;
}

.ipc-hero__tagline-sub {
	max-width: 630px;
	margin: 0;
	font-family: var(--ipc-font-serif);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.875;
	letter-spacing: 7.68px;
}

.ipc-hero__title {
	font-family: var(--ipc-font-serif);
	font-size: clamp(48px, 6vw, 80px);
	font-weight: 400;
	letter-spacing: 4px;
	line-height: 1.1;
	opacity: 0.83;
	margin: 0 0 24px;
}

.ipc-hero__subtitle {
	font-family: "Joan", var(--ipc-font-serif);
	font-size: 15px;
	line-height: 1.25;
	letter-spacing: 10px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.77);
	margin: 0;
}

.ipc-hero__subtitle-line {
	display: inline;
}

.ipc-hero__subtitle-line + .ipc-hero__subtitle-line::before {
	content: " ";
}

/* SP-only split CTA bar — Figma node 2001:117 */
.ipc-hero-cta-bar {
	display: none;
}

.ipc-hero__actions {
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex-shrink: 0;
}

.ipc-hero__scroll {
	position: absolute;
	right: 39px;
	bottom: 56px;
	z-index: 2;
	margin: 0;
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	letter-spacing: 2px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.5);
	writing-mode: vertical-rl;
	transform: rotate(180deg);
}

.ipc-btn--hero-primary,
.ipc-btn--hero-outline {
	font-family: "Hiragino Maru Gothic ProN", "Hiragino Maru Gothic Pro", "Arial Rounded MT Bold", var(--ipc-font-sans);
	font-weight: 400;
}

.ipc-btn--hero-primary {
	min-width: 271px;
	min-height: 58px;
	background: linear-gradient(159deg, #09c8e5 13.5%, #0090ff 44.7%, #00b2ff 72.8%, #009dff 107.6%);
	background-size: 200% 200%;
	background-position: 0% 50%;
	color: var(--ipc-white);
	border-color: var(--ipc-gray);
	font-size: 15px;
	letter-spacing: 2.4px;
	transition: background-position 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.ipc-btn--hero-primary:hover {
	opacity: 1;
	background-position: 100% 50%;
}

@media (prefers-reduced-motion: reduce) {
	.ipc-btn--hero-primary {
		transition: none;
	}
}

.ipc-btn--hero-outline {
	min-width: 275px;
	min-height: 58px;
	background: var(--ipc-white);
	color: var(--ipc-black);
	border-color: var(--ipc-gray);
	font-size: 14px;
	letter-spacing: 2.4px;
}

/* Stats — 3-column metrics band (Figma node 238:99 Section - PROBLEM) */
.ipc-stats {
	position: relative;
	height: 240px;
	min-height: 240px;
	display: flex;
	align-items: center;
	color: var(--ipc-white);
	overflow: hidden;
	isolation: isolate;
}

.ipc-stats__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.ipc-stats__bg picture {
	position: absolute;
	inset: 0;
	display: block;
}

.ipc-stats__bg img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	/* 旧 height:509.85% / top:-298.66% が見せていた夜景帯（画像高さの約58–78%） */
	object-position: center 70%;
}

.ipc-stats__bg[data-stats-parallax] img {
	top: -12%;
	bottom: -12%;
	height: 124%;
	will-change: transform;
}

.ipc-stats__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	padding: 38px 0;
}

.ipc-stats__inner[data-stats-animate]:not(.is-animated):not(.is-counting) .ipc-stats__num {
	visibility: hidden;
}

.ipc-stats__item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
}

.ipc-stats__meta {
	position: relative;
	flex: 0 0 auto;
	min-width: 0;
	text-align: left;
}

.ipc-stats__value {
	display: flex;
	align-items: flex-end;
	justify-content: flex-start;
	gap: 6px;
	margin: 0;
	line-height: 1;
	flex: 0 0 auto;
}

/* Figma node 238:101 + 238:104 — 200 と 億円＋はボックス中心で揃える */
.ipc-stats__item:first-child .ipc-stats__value {
	align-items: center;
}

.ipc-stats__label {
	font-family: var(--ipc-font-serif);
	font-size: 20px;
	font-weight: 600;
	letter-spacing: 4.6px;
	line-height: 1.2;
	margin: 0 0 8px;
}

.ipc-stats__item:nth-child(3) .ipc-stats__label {
	letter-spacing: 1.6px;
}

.ipc-stats__en {
	position: absolute;
	top: 100%;
	left: 0;
	font-family: var(--ipc-font-display);
	font-size: 10px;
	font-weight: 300;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	line-height: 1.4;
	margin: 0;
	white-space: nowrap;
}

.ipc-stats__num {
	font-family: var(--ipc-font-hana);
	font-size: clamp(48px, 6vw, 64px);
	font-weight: 400;
	letter-spacing: -3px;
	line-height: 1;
	text-transform: uppercase;
	font-variant-numeric: tabular-nums;
	display: inline-block;
}

.ipc-stats__unit {
	font-family: var(--ipc-font-serif);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 1.12px;
	line-height: 1.3;
	white-space: nowrap;
}

/* Figma node 238:104 — 億円＋ only: vertical stack (29×71) beside 200 */
.ipc-stats__item:first-child .ipc-stats__unit {
	writing-mode: vertical-rl;
	text-orientation: upright;
	line-height: 1.29;
	height: 71px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.ipc-stats__item:nth-child(2) .ipc-stats__unit,
.ipc-stats__item:nth-child(3) .ipc-stats__unit {
	font-size: 16px;
}

/* Sections */
.ipc-section { padding: 80px 0; }
.ipc-section--gray { background: #f7f7f7; }
.ipc-section--top-space { padding-top: 40px; }

.ipc-section-head { margin-bottom: 48px; }
.ipc-section-head--center { text-align: center; }

.ipc-section-head__en {
	font-family: var(--ipc-font-display);
	font-size: 14px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-gray-dark);
	margin-bottom: 8px;
}

.ipc-section-head__title {
	font-family: var(--ipc-font-serif);
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 400;
	letter-spacing: 3px;
	margin: 0 0 12px;
	line-height: 1.4;
	word-break: keep-all;
	line-break: strict;
}

.ipc-section-head__desc {
	font-family: var(--ipc-font-noto);
	font-size: 13px;
	font-weight: 300;
	line-height: 22.1px;
	color: var(--ipc-text-muted);
	max-width: 640px;
	margin: 0 auto;
}

/* Intro — Figma node 2003:3 (— 01 / The Question —) */
.ipc-intro.ipc-section { padding: 56px 0 40px; }

.ipc-intro__eyebrow {
	font-family: var(--ipc-font-mono);
	font-size: 14px;
	font-weight: 300;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
	margin: 0 0 24px;
	line-height: 1.2;
}

.ipc-intro__eyebrow-label--sp {
	display: none;
}

.ipc-intro__title {
	font-family: var(--ipc-font-serif);
	font-size: clamp(32px, 4.5vw, 56px);
	font-weight: 400;
	letter-spacing: 4px;
	line-height: 1.45;
	margin: 0 0 36px;
	color: var(--ipc-black);
}

.ipc-intro__title-line { display: block; }

/* PC — Figma header 96px / frame alignment */
@media (min-width: 769px) {
	:root {
		--ipc-header-height: 96px;
	}

	.ipc-hero__bg img {
		object-position: 50% 30%;
	}
}

/* Tablet: header bar is 77px but --ipc-header-height was 96px → white gap under fixed header */
@media (max-width: 1024px) and (min-width: 769px) {
	:root {
		--ipc-header-height: 77px;
	}

	.ipc-stats__bg img {
		object-position: center 72%;
	}
}

.ipc-intro__row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 48px;
}

.ipc-intro__text {
	flex: 0 1 auto;
	max-width: 515px;
	width: 100%;
	font-family: var(--ipc-font-serif);
	font-size: 20px;
	line-height: 1.9;
	letter-spacing: 3px;
	color: var(--ipc-black);
	margin: 0;
	word-break: normal;
	line-break: strict;
}

.ipc-intro__text[data-intro-text-animate] {
	position: relative;
}

.ipc-intro__text-line {
	display: block;
	position: relative;
	margin: 0;
	font: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	word-break: inherit;
	line-break: inherit;
}

.ipc-intro__text-line-fade,
.ipc-intro__text-line-full {
	display: block;
	margin: 0;
	font: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	word-break: inherit;
	line-break: inherit;
}

.ipc-intro__text-line-fade {
	color: rgba(26, 26, 26, 0.16);
}

.ipc-intro__text-line-full {
	position: absolute;
	inset: 0;
	color: var(--ipc-black);
	clip-path: inset(0 calc((1 - var(--ipc-intro-line-reveal, 1)) * 100%) 0 0);
	will-change: clip-path;
}

.ipc-intro__image {
	flex: 0 0 auto;
	width: min(529px, 42%);
	margin-top: -52px;
	align-self: flex-start;
}

.ipc-intro__image[data-intro-image-animate] img {
	transform-origin: center center;
	will-change: transform;
}

.ipc-intro__image img {
	width: 100%;
	height: auto;
	aspect-ratio: 529 / 279;
	object-fit: cover;
	object-position: center top;
}

/* Features — Figma node 238:323 (Section - WHY IPC) */
.ipc-features.ipc-section { padding: 40px 0 56px; }

.ipc-features__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 48px;
	row-gap: 56px;
	margin-bottom: 40px;
}

[data-fade-in] > * {
	opacity: 0;
	transition: opacity 0.75s ease;
	transition-delay: calc(var(--ipc-fade-delay, 0) * 1s);
}

[data-fade-in].is-fade-in > * {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	[data-fade-in] > * {
		opacity: 1;
		transition: none;
	}
}

.ipc-feature-card {
	min-width: 0;
	padding: 0;
}

.ipc-feature-card__head {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 68px;
	margin-bottom: 8px;
	overflow: visible;
}

.ipc-feature-card__num {
	flex: 0 0 81px;
	display: block;
	overflow: visible;
}

.ipc-feature-card__num-text {
	display: inline-block;
	font-family: var(--ipc-font-didot);
	font-size: 64px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: -3px;
	text-transform: uppercase;
	background: linear-gradient(123.68deg, #09c8e5 13.5%, #0090ff 44.7%, #00b2ff 72.8%, #009dff 107.6%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	overflow: visible;
	padding-inline-end: 4px;
}

.ipc-feature-card__num[data-feature-num-reveal] {
	opacity: 0;
	transform: translateX(-20px);
}

.ipc-feature-card[data-feature-card-animate] [data-feature-num-reveal] {
	transition: none;
}

.ipc-feature-card__num[data-feature-num-reveal].is-revealed {
	opacity: 1;
	transform: translateX(0);
}

.ipc-feature-card__title {
	flex: 1;
	min-width: 0;
	margin: 0;
	padding-top: 0;
	font-family: "Noto Serif JP", var(--ipc-font-serif);
	font-size: 24px;
	font-weight: 500;
	line-height: 29px; /* Figma 238:324–328 leading */
	letter-spacing: 3.84px;
	text-transform: uppercase;
	color: var(--ipc-black);
}

/* Figma 238:329 — 20px / tracking 0.2 / soft-wrap in ~217px */
.ipc-feature-card__title--sm {
	font-size: 20px;
	letter-spacing: 0.2px;
}

/*
 * Soft-wrap titles (03 / 06): single text node in Figma — constrain width so
 * wrap matches canvas (03→「住／まい」, 06→「パー／トナー」).
 */
.ipc-feature-card__title--soft {
	flex: 0 1 auto;
	max-width: 206px; /* 238:328 on 1192 frame */
}

.ipc-feature-card__title--sm.ipc-feature-card__title--soft {
	max-width: 217px; /* 238:329 on 1192 frame */
}

.ipc-feature-card__title-line { display: block; }

.ipc-feature-card__title--soft .ipc-feature-card__title-line {
	overflow-wrap: anywhere;
	word-break: normal;
	line-break: strict;
}

.ipc-feature-card__rule {
	max-width: 299px;
	margin: 0 0 16px;
	overflow: hidden;
}

.ipc-feature-card__rule img {
	display: block;
	width: 100%;
	max-width: 299px;
	height: 1px;
	transform: scaleX(0);
	transform-origin: left center;
}

.ipc-feature-card[data-feature-card-animate] .ipc-feature-card__title-reveal .ipc-reveal__inner {
	animation: none !important;
}

.ipc-feature-card[data-feature-card-animate] .ipc-feature-card__title-reveal.is-revealed:not(.is-reveal-settled) .ipc-reveal__inner {
	transform: translateY(0) !important;
}

.ipc-feature-card[data-feature-card-animate] .ipc-feature-card__title-reveal.is-reveal-settled .ipc-reveal__inner {
	transform: none !important;
}

.ipc-feature-card[data-feature-card-animate].is-feature-animated [data-feature-num-reveal],
.ipc-feature-card[data-feature-card-animate].is-feature-animated .ipc-feature-card__text,
.ipc-feature-card[data-feature-card-animate].is-feature-animated .ipc-feature-card__rule img {
	transition: none;
}

.ipc-feature-card__rule.is-drawn img,
.ipc-feature-card[data-feature-card-animate].is-feature-animated .ipc-feature-card__rule img {
	transform: scaleX(1);
}

@media (prefers-reduced-motion: reduce) {
	.ipc-feature-card__rule img {
		transform: scaleX(1);
		transition: none;
	}

	.ipc-feature-card__text-wrap .ipc-feature-card__text {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.ipc-feature-card__num[data-feature-num-reveal] {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

.ipc-feature-card__text-wrap .ipc-feature-card__text {
	opacity: 0;
	transform: translateY(-14px);
}

.ipc-feature-card__text-wrap.is-revealed .ipc-feature-card__text,
.ipc-feature-card[data-feature-card-animate].is-feature-animated .ipc-feature-card__text {
	opacity: 1;
	transform: none;
}

.ipc-feature-card__text {
	/* Figma 238:346–349 — 287×170 / 14px / leading 18 / tracking 4.76 */
	max-width: 287px;
	margin: 0;
	font-family: "Hiragino Mincho ProN", "Hiragino Mincho Pro", var(--ipc-font-serif);
	font-size: 14px;
	font-weight: 300;
	line-height: 18px;
	letter-spacing: 4.76px;
	color: var(--ipc-text-sub);
	word-break: normal;
	overflow-wrap: anywhere;
	line-break: strict;
}

/* More CTA — Figma node 238:91 */
.ipc-more {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 543px;
	margin: 0 auto;
	padding: 32px 0;
	text-align: center;
}

.ipc-more__heading {
	margin: 0 0 16px;
	font-family: var(--ipc-font-din);
	font-size: 32px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-black);
}

.ipc-more__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: min(386px, 100%);
	min-height: 52px;
	padding: 12px 24px;
	background: var(--ipc-main);
	color: var(--ipc-white);
	border: 1px solid var(--ipc-white);
	border-radius: 50px;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.275;
	letter-spacing: 5px;
	text-decoration: none;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.ipc-more__btn:hover {
	background: var(--ipc-white);
	color: var(--ipc-main);
	border-color: var(--ipc-main);
}

@media (prefers-reduced-motion: reduce) {
	.ipc-more__btn {
		transition: none;
	}
}

.ipc-more__sub {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	/* padding + offsetting margins: hit area reaches 36px+ (23px line box +
	 * 14px) without shifting the visible text/arrow position (round2
	 * responsive tap-target check — this link measured 23px tall). Original
	 * spacing was margin-top:16px only; 16-7=9 keeps the same visual gap
	 * now that 7px lives inside the padding box instead. */
	margin: 9px 0 -7px;
	padding: 7px 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.42;
	letter-spacing: 1.92px;
	color: var(--ipc-main);
	text-decoration: none;
}

.ipc-more__arrow {
	display: block;
	width: 116px;
	height: 7px;
	flex-shrink: 0;
	transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.ipc-more__arrow--light {
	display: none;
}

.ipc-more__sub:hover .ipc-more__arrow {
	transform: translateX(10px);
}

@media (prefers-reduced-motion: reduce) {
	.ipc-more__arrow {
		transition: none;
	}

	.ipc-more__sub:hover .ipc-more__arrow {
		transform: none;
	}
}

/* Property grid — asymmetric masonry (1 feature + 2×2), Figma node 238:187 */
.ipc-property-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 8px;
	max-width: 1113px;
	margin: 0 auto 48px;
}

.ipc-property-grid__empty {
	grid-column: 1 / -1;
	text-align: center;
	padding: 64px 0 72px;
	margin: 0;
	color: #6b6b6b;
	font-size: 15px;
	letter-spacing: 0.1em;
	line-height: 2.2;
}

/* TOP property gallery — Figma PC node 238:187 */
.ipc-properties .ipc-section-head__en {
	letter-spacing: 3.5px;
	line-height: 23.8px;
	margin-bottom: 14px;
}

.ipc-properties .ipc-section-head__title {
	font-size: 40px;
	letter-spacing: 6px;
	line-height: 44.8px;
	margin-bottom: 14px;
}

.ipc-properties .ipc-property-grid {
	grid-template-columns: 546fr 273fr 274fr;
	grid-template-rows: 223px 224px;
	column-gap: 10px;
	row-gap: 7px;
	max-width: 1113px;
	width: 100%;
}

.ipc-properties .ipc-property-card {
	position: relative;
	min-height: 0;
}

.ipc-properties .ipc-property-card__image {
	aspect-ratio: unset;
	height: 100%;
	border: 1px solid var(--ipc-border-card);
	background: linear-gradient(135deg, #f6f6f4 0%, #f6f6f4 0.53%, #fff 0.53%, #fff 2.67%);
}

.ipc-properties .ipc-property-grid .ipc-badge {
	top: 13px;
	left: 13px;
	min-height: 25px;
	padding: 6px 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}

.ipc-properties .ipc-property-grid .ipc-property-card--feature .ipc-badge {
	top: 14px;
	left: 15px;
}

.ipc-properties .ipc-property-grid .ipc-property-card--coming-soon .ipc-badge {
	min-width: 94px;
	padding-inline: 10px;
}

.ipc-properties .ipc-property-grid .ipc-property-card__title {
	display: none;
}

.ipc-property-card {
	display: block;
}

.ipc-property-card--feature {
	grid-column: 1;
	grid-row: 1 / span 2;
}

.ipc-property-card__image {
	position: relative;
	overflow: hidden;
	aspect-ratio: 273 / 223;
	height: 100%;
}

.ipc-property-card--feature .ipc-property-card__image { aspect-ratio: auto; }

.ipc-property-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ipc-property-grid .ipc-property-card__image img {
	transition: transform 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.ipc-property-grid .ipc-property-card:hover .ipc-property-card__image img {
	transform: scale(1.06);
}

@media (prefers-reduced-motion: reduce) {
	.ipc-property-grid .ipc-property-card__image img {
		transition: none;
	}

	.ipc-property-grid .ipc-property-card:hover .ipc-property-card__image img {
		transform: none;
	}
}

.ipc-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	padding: 6px 10px;
	background: var(--ipc-main);
	color: var(--ipc-white);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1px;
}

/* TOP property gallery uses a black / gold badge over the photo, not the navy default used on archive-property/single-property */
.ipc-property-grid .ipc-badge {
	top: 14px;
	left: 14px;
	padding: 7px 10px;
	background: var(--ipc-black);
	font-family: var(--ipc-font-mono);
	font-size: 9px;
	font-weight: 300;
	letter-spacing: 1.35px;
	text-transform: uppercase;
}

.ipc-property-grid .ipc-property-card--coming-soon .ipc-badge {
	background: #8b6f47;
}

.ipc-property-card__title {
	display: none;
}

.ipc-section-head__title-mobile {
	display: none;
}

.ipc-section-head__title-mobile .ipc-section-head__title-line {
	display: block;
}

.ipc-section-head__title-punct {
	letter-spacing: -16px;
}

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

/* Voice columns — Figma node 238:217 (Section - VOICES)
   3列×2行の実グリッド。grid-auto-flow:column により
   1,2件目→1列目(縦積み) / 3,4件目→2列目 / 5,6件目→3列目 の順で配置され、
   元のPHP側の並び(array_chunkで2件ずつ)と同じ見た目になる。
   ネストしたflexではなく直のgridの子にすることで、行の高さが
   横の列をまたいで自動的に揃う（一番テキストが多いカードに合わせて伸びる）。 */
.ipc-voice-columns {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 345px));
	grid-template-rows: repeat(2, auto);
	grid-auto-flow: column;
	justify-content: center;
	column-gap: 22px;
	row-gap: 26px;
	margin-bottom: 48px;
}

.ipc-voice-stack {
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
	height: 100%;
}

.ipc-voice-stack__link {
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.ipc-voice-stack__photo {
	overflow: hidden;
	aspect-ratio: 345 / 190;
	background: #d9d9d9;
}

.ipc-voice-stack__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.ipc-voice-stack__link:hover .ipc-voice-stack__photo img {
	transform: scale(1.06);
}

@media (prefers-reduced-motion: reduce) {
	.ipc-voice-stack__photo img {
		transition: none;
	}
}

.ipc-voice-stack__link .ipc-voice-card--stack {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 236px;
	padding: 18px;
	background: var(--ipc-white);
	border: 1px solid var(--ipc-border-card);
	transition: opacity .2s;
}

.ipc-voice-card--stack .ipc-voice-card__label {
	margin: 0 0 10px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--ipc-black);
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
}

.ipc-voice-card--stack .ipc-voice-card__excerpt {
	margin: 0 0 16px;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.503;
	color: var(--ipc-text-sub);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
	/* 3lh ちょうどだと日本語グリフの4行目アセンダが1〜2px見えるため、クリップをわずかに締める */
	min-height: calc(1.503em * 3 - 2px);
	max-height: calc(1.503em * 3 - 2px);
}

.ipc-voice-card--stack .ipc-voice-card__meta {
	display: block;
	margin-top: auto;
	padding-top: 15px;
	border-top: 1px solid #e6e3dd;
}

.ipc-voice-card--stack .ipc-voice-card__property {
	margin: 0 0 4px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.34;
	color: var(--ipc-text-muted);
}

.ipc-voice-card--stack .ipc-voice-card__person {
	margin: 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.34;
	color: var(--ipc-text-muted);
}

/* Voice grid (archive / related) */
.ipc-voice-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-bottom: 48px;
}

.ipc-voice-card {
	display: block;
	padding: 20px;
	background: var(--ipc-white);
	border: 1px solid var(--ipc-gray);
	transition: box-shadow .2s;
}

.ipc-voice-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.08); }

.ipc-voice-card.ipc-voice-card--stack:hover {
	opacity: 0.92;
	box-shadow: none;
}

.ipc-voice-card__label {
	font-weight: 700;
	font-size: 18px;
	margin: 0 0 12px;
	color: var(--ipc-main);
	overflow: visible;
	width: fit-content;
	max-width: 100%;
}

.ipc-voice-card__excerpt {
	font-size: 14px;
	line-height: 1.8;
	color: #444;
	margin-bottom: 16px;
	min-height: 80px;
}

.ipc-voice-card__meta {
	padding-top: 16px;
	border-top: 1px solid var(--ipc-gray);
}

.ipc-voice-card__property { font-size: 13px; margin-bottom: 4px; }
.ipc-voice-card__person { font-size: 13px; color: #666; }

/* Chart — annual sales bars (Figma node 238:267 Section - TRACK RECORD) */
.ipc-chart .ipc-section-head__en {
	color: var(--ipc-text-muted);
	letter-spacing: 3.5px;
}

.ipc-chart .ipc-section-head__title {
	letter-spacing: 10px;
}

.ipc-chart__lead {
	font-family: var(--ipc-font-serif);
	font-size: 20px;
	line-height: 1.75;
	letter-spacing: 8px;
	color: var(--ipc-black);
	max-width: 767px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.ipc-chart__lead-line {
	display: inline;
}

.ipc-chart__lead .ipc-reveal {
	display: inline-block;
	vertical-align: top;
	width: auto;
	margin: 0;
}

.ipc-chart__bars {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 10px;
	height: 374px;
	padding: 0;
	margin-bottom: 68px;
}

.ipc-chart__bars[data-chart-animate]:not(.is-animated) .ipc-chart__bar {
	height: 0;
	min-height: 0;
}

.ipc-chart__bars[data-chart-animate]:not(.is-animated) .ipc-chart__bar-value {
	opacity: 0;
}

.ipc-chart__bar {
	width: 39px;
	height: var(--h);
	min-height: 28px;
	background: var(--ipc-gray);
	position: relative;
	transition: background .2s;
}

.ipc-chart__bar.is-active {
	background: linear-gradient(94deg, #09c8e5 13.5%, #0090ff 44.7%, #00b2ff 72.8%, #009dff 107.6%);
}

.ipc-chart__bar-value {
	position: absolute;
	left: 50%;
	bottom: 7px;
	transform: translateX(-50%);
	min-width: 26px;
	padding: 2px 6px;
	background: var(--ipc-white);
	font-family: var(--ipc-font-serif);
	font-size: 14px;
	line-height: 1.2;
	text-align: center;
	color: var(--ipc-black);
}

.ipc-chart__bar.is-active .ipc-chart__bar-value {
	background: var(--ipc-main);
	color: var(--ipc-white);
}

.ipc-chart__bar-year {
	position: absolute;
	bottom: -28px;
	left: 50%;
	transform: translateX(-50%);
	font-family: var(--ipc-font-din);
	font-size: 16px;
	font-weight: 600;
	color: var(--ipc-text-muted);
	letter-spacing: 0.45px;
}

.ipc-chart__label {
	text-align: center;
	font-family: var(--ipc-font-serif);
	font-size: 14px;
	line-height: 1.21;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
	margin: 0 0 32px;
}

.ipc-chart__desc {
	max-width: 692px;
	margin: 0 auto 56px;
	font-family: var(--ipc-font-serif);
	font-size: 16px;
	line-height: 1.625;
	letter-spacing: 4px;
	color: var(--ipc-text-sub);
	text-align: center;
}

.ipc-chart .ipc-more {
	padding: 0 0 32px;
}

/* Page hero — Figma Section PAGE HERO (238:2397 基準・全固定ページ共通) */
.ipc-page-hero {
	padding: 36px 0 48px;
	background: var(--ipc-white);
	border-bottom: 1px solid var(--ipc-border-card);
	overflow: hidden;
}

.ipc-page-hero--compact {
	padding: 48px 0 48px;
}

.ipc-page-hero > .ipc-container > .ipc-reveal:first-child {
	margin-bottom: 32px;
}

.ipc-page-hero__label {
	font-family: var(--ipc-font-mono);
	font-size: 11px;
	font-weight: 300;
	line-height: 18.7px;
	letter-spacing: 3.3px;
	text-transform: uppercase;
	color: #5c4a30;
	margin-bottom: 0;
}

.ipc-page-hero__title {
	font-family: var(--ipc-font-serif);
	font-size: 64px;
	font-weight: 300;
	line-height: 70.4px;
	letter-spacing: 8px;
	color: var(--ipc-black);
	margin: 0 0 24px;
	word-break: keep-all;
	line-break: strict;
}

.ipc-page-hero__title-line {
	display: block;
}

.ipc-page-hero__title-accent,
.ipc-page-hero__title-line--muted,
.ipc-page-hero__title .ipc-reveal:nth-child(2) .ipc-page-hero__title-line {
	color: var(--ipc-text-sub);
}

.ipc-approach__title-line,
.ipc-strength__title-line,
.ipc-flow-step__title-line,
.ipc-property-inquiry__title-line {
	display: block;
}

.ipc-page-hero__desc {
	font-family: var(--ipc-font-serif);
	font-size: 24px;
	font-weight: 300;
	line-height: 30px;
	letter-spacing: 4.8px;
	color: var(--ipc-text-sub);
	max-width: none;
}

.ipc-page-hero__title .ipc-reveal {
	display: block;
}

/* PC: large hero titles — start fully below the mask (ink overhang clearance). */
@media (min-width: 769px) {
	@keyframes ipc-reveal-slide-up-hero-title {
		from {
			transform: translateY(calc(100% + 0.22em));
		}

		to {
			transform: translateY(0);
		}
	}

	.ipc-page-hero__title .ipc-reveal:not(.is-reveal-settled) {
		overflow: hidden;
	}

	@supports (overflow: clip) {
		.ipc-page-hero__title .ipc-reveal:not(.is-reveal-settled) {
			overflow: clip;
			overflow-clip-margin: 0;
		}
	}

	.ipc-page-hero__title .ipc-reveal__inner {
		transform: translateY(calc(100% + 0.22em));
	}

	.ipc-page-hero__title .ipc-reveal.is-ready:not([data-reveal-on="view"]):not([data-reveal-on="hero-stats"]):not([data-reveal-on="feature-card"]) .ipc-reveal__inner,
	.ipc-page-hero__title .ipc-reveal.is-ready[data-reveal-on="view"].is-revealed .ipc-reveal__inner {
		animation-name: ipc-reveal-slide-up-hero-title;
	}

	.ipc-page-hero__title .ipc-reveal[data-reveal-on="view"]:not(.is-revealed) .ipc-reveal__inner,
	.ipc-page-hero__title .ipc-reveal[data-reveal-on="hero-stats"]:not(.is-revealed) .ipc-reveal__inner,
	.ipc-page-hero__title .ipc-reveal:not(.is-ready) .ipc-reveal__inner {
		animation: none;
		transform: translateY(calc(100% + 0.22em));
	}
}

.ipc-page-hero .ipc-reveal__inner .ipc-page-hero__label,
.ipc-page-hero .ipc-reveal__inner .ipc-page-hero__title-line,
.ipc-page-hero .ipc-reveal__inner .ipc-page-hero__desc {
	margin: 0;
}

.ipc-page-hero .ipc-reveal:has(.ipc-page-hero__desc) + .ipc-reveal:has(.ipc-page-hero__desc) {
	margin-top: 0;
}

/* Flow page hero — Figma large step count + stacked title lines */
.ipc-page-hero__title--flow {
	margin: 0 0 32px;
	letter-spacing: 0;
	line-height: 0;
}

.ipc-page-hero__title-row {
	display: flex;
	align-items: baseline;
	flex-wrap: nowrap;
	column-gap: 0;
}

.ipc-page-hero__title--flow .ipc-page-hero__title-line--suffix {
	/* Match title-line tracking so "5"→"つ" feels like one tracked string */
	margin-inline-start: 8px;
}

@media (min-width: 769px) {
	.ipc-page-hero__title--flow .ipc-page-hero__title-row,
	.ipc-page-hero__title--flow .ipc-page-hero__title-line--suffix {
		/* PC Figma: keep 「5つのステップで、」 as one line */
		white-space: nowrap;
	}
}

.ipc-page-hero__title--flow .ipc-page-hero__title-num {
	/* Figma: same size as surrounding title (no oversized digit) */
	font-family: var(--ipc-font-serif);
	font-size: 64px;
	font-weight: 300;
	line-height: 70.4px;
	letter-spacing: 8px;
	color: var(--ipc-black);
}

.ipc-page-hero__title--flow .ipc-page-hero__title-line {
	font-family: var(--ipc-font-serif);
	font-size: 64px;
	font-weight: 300;
	line-height: 70.4px;
	letter-spacing: 8px;
	color: var(--ipc-black);
}

.ipc-page-hero__title--flow .ipc-page-hero__title-line--muted {
	color: var(--ipc-text-sub);
}

.ipc-page-hero__title--flow > .ipc-reveal {
	display: block;
}

.ipc-page-hero__title--flow > .ipc-reveal .ipc-page-hero__title-row {
	display: flex;
	align-items: baseline;
	flex-wrap: nowrap;
}

/* Breadcrumb */
.ipc-breadcrumb {
	display: flex;
	align-items: center;
	min-height: 42px;
	padding: 0;
}

.ipc-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 13px;
	color: #666;
}

.ipc-breadcrumb__item:not(:last-child)::after {
	content: "/";
	margin-left: 8px;
}

.ipc-breadcrumb__item a {
	display: inline-block;
	/* Round1 only expanded the vertical hit area; short labels like "Voice"
	 * still measured 35px wide (1px under the 36px minimum). Add a hair of
	 * horizontal padding, offset by a matching negative margin so the
	 * visual position/spacing is unchanged. */
	padding: 10px 1px;
	margin: -10px -1px;
}

/* Final CTA — Figma node 238:402 Section - FINAL CTA / 238:5320（flow） */
.ipc-final-cta {
	position: relative;
	min-height: 470px;
	display: flex;
	align-items: center;
	color: var(--ipc-white);
	overflow: hidden;
}

.ipc-final-cta__bg { position: absolute; inset: 0; }
.ipc-final-cta__bg img { width: 100%; height: 100%; object-fit: cover; }
.ipc-final-cta__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.39);
}

.ipc-final-cta__inner {
	position: relative;
	z-index: 1;
	padding: 50px 0 56px;
	text-align: center;
}

.ipc-final-cta__title {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: baseline;
	gap: 0;
	font-family: var(--ipc-font-serif);
	font-size: 36px;
	font-weight: 400;
	letter-spacing: 3px;
	line-height: 39.6px;
	margin: 0 0 32px;
	color: var(--ipc-white);
}

.ipc-final-cta__title-lead,
.ipc-final-cta__title-rest {
	white-space: nowrap;
}

.ipc-final-cta__title-variant--default {
	display: flex;
	flex-wrap: wrap;
	justify-content: inherit;
	align-items: baseline;
	gap: 0;
}

.ipc-final-cta__title-variant--sp {
	display: none;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
}

.ipc-final-cta__title-line {
	display: inline;
	white-space: nowrap;
}

/* 物件一覧/詳細フッターCTA — Figma 2020:16 */
.ipc-final-cta__title--property-list .ipc-final-cta__title-lead {
	font-family: var(--ipc-font-serif);
	font-weight: 300;
}

.ipc-final-cta__title--property-list .ipc-final-cta__title-rest {
	font-family: var(--ipc-font-display);
	font-weight: 300;
	font-style: italic;
}

/* SP compact title — Figma 2001:536（声一覧/詳細フッターCTA等） */
.ipc-final-cta__title--sp-compact {
	--ipc-final-cta-title-sp-size: 24px;
	--ipc-final-cta-title-sp-line-height: 36px;
	--ipc-final-cta-title-sp-tracking: 2px;
}

.ipc-final-cta__begin {
	display: none;
}

.ipc-final-cta__highlights {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-end;
	gap: 24px 87px;
	margin-bottom: 42px;
}

.ipc-final-cta__highlight {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
}

.ipc-final-cta__highlight-text {
	font-family: var(--ipc-font-serif);
	font-size: clamp(28px, 3.2vw, 40px);
	font-weight: 400;
	letter-spacing: 4px;
	line-height: 1.1;
	white-space: nowrap;
}

.ipc-final-cta__highlight-line {
	display: block;
	width: min(240px, 100%);
	height: auto;
}

.ipc-final-cta__highlight:last-child .ipc-final-cta__highlight-line {
	width: min(228px, 100%);
}

.ipc-final-cta__lines {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 34px;
	max-width: 552px;
	margin: 0 auto 50px;
	text-align: center;
}

.ipc-final-cta__lines p {
	margin: 0;
	font-family: var(--ipc-font-serif);
	font-size: 20px;
	font-weight: 400;
	line-height: 27.75px;
	letter-spacing: 3.6px;
}

.ipc-final-cta__lines p:first-child {
	letter-spacing: 3.8px;
}

.ipc-final-cta__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
}

.ipc-final-cta__actions .ipc-btn {
	font-family: "Hiragino Maru Gothic ProN", "Hiragino Maru Gothic Pro", "Arial Rounded MT Bold", var(--ipc-font-sans);
	font-weight: 400;
	text-transform: uppercase;
}

/* Footer — Figma node 238:353 Footer - FOOTER */
.ipc-footer__main {
	background: var(--ipc-main);
	color: var(--ipc-white);
	padding: 22px 0 32px;
}

.ipc-footer__inner {
	display: block;
}

/* Footer nav row — Figma node 238:354 Paragraph+HorizontalBorder */
.ipc-footer__nav {
	display: flex;
	align-items: flex-end;
	gap: 20px;
	min-height: 154px;
	padding-top: 7px;
	padding-bottom: 20px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	box-sizing: border-box;
}

.ipc-footer__nav-main {
	display: grid;
	flex: 1 1 auto;
	grid-template-columns: minmax(0, 1.58fr) minmax(0, 1fr) minmax(0, 1fr);
	gap: 0 38px;
	align-items: start;
	min-width: 0;
}

.ipc-footer__company {
	flex: 0 0 auto;
	max-width: min(340px, 100%);
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	text-align: left;
}

.ipc-footer__col-title {
	font-family: var(--ipc-font-serif);
	font-size: 18px;
	font-weight: 400;
	letter-spacing: 2px;
	line-height: 17px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.5);
	margin: 0 0 12px;
}

.ipc-footer__sitemap-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, max-content));
	gap: 0 44px;
}

.ipc-footer__col ul,
.ipc-footer__sitemap-col {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ipc-footer__col li,
.ipc-footer__sitemap-col li {
	margin: 0;
}

.ipc-footer__col a,
.ipc-footer__sitemap-col a {
	display: block;
	padding: 0;
	font-family: var(--ipc-font-serif);
	font-size: 14px;
	font-weight: 400;
	line-height: 28px;
	letter-spacing: 9.1px;
	color: rgba(255, 255, 255, 0.85);
	opacity: 1;
	text-decoration: none;
}

.ipc-footer__nav-swap {
	display: block;
	overflow: hidden;
	height: 28px;
}

.ipc-footer__nav-swap-track {
	display: flex;
	flex-direction: column;
	transition: transform 1.05s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: transform;
}

.ipc-footer__col a:hover .ipc-footer__nav-swap-track,
.ipc-footer__col a:focus-visible .ipc-footer__nav-swap-track,
.ipc-footer__sitemap-col a:hover .ipc-footer__nav-swap-track,
.ipc-footer__sitemap-col a:focus-visible .ipc-footer__nav-swap-track {
	transform: translateY(-50%);
}

.ipc-footer__nav-swap-item {
	display: flex;
	align-items: center;
	flex: 0 0 28px;
	height: 28px;
	box-sizing: border-box;
}

.ipc-footer__nav-label {
	display: block;
	white-space: nowrap;
}

.ipc-footer__nav-label--alt {
	font-family: var(--ipc-font-display);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 1.2px;
}

.ipc-footer__col--legal .ipc-footer__col-title {
	margin-bottom: 4px;
}

.ipc-footer__col--legal a {
	font-family: "Noto Serif JP", var(--ipc-font-serif);
	font-weight: 300;
	letter-spacing: 0;
	line-height: 25.2px;
}

.ipc-footer__col--legal .ipc-footer__nav-swap {
	height: 25.2px;
}

.ipc-footer__col--legal .ipc-footer__nav-swap-item {
	flex-basis: 25.2px;
	height: 25.2px;
}

/* Footer company block — Figma node 2004:64 */
.ipc-footer__logo {
	display: flex;
	justify-content: flex-start;
	margin-bottom: 4px;
}

.ipc-footer__logo .ipc-logo--footer {
	display: block;
	min-height: 0;
	max-width: 103px;
	width: 103px;
	height: auto;
}

.ipc-footer__logo .ipc-logo__footer-mark {
	display: block;
	width: 103px;
	height: auto;
}

.ipc-footer__company-info {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 46px;
	margin-bottom: 11px;
	font-family: "Noto Serif JP", var(--ipc-font-serif);
	font-size: 11px;
	font-weight: 300;
	line-height: 19.8px;
	letter-spacing: 1.1px;
	color: rgba(255, 255, 255, 0.7);
}

.ipc-footer__company-info p {
	margin: 0;
	word-break: keep-all;
	line-break: strict;
}

.ipc-footer__company-tel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	min-height: 32px;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 11px;
	font-weight: 300;
	line-height: 17.6px;
	letter-spacing: 1.1px;
	color: rgba(255, 255, 255, 0.5);
}

.ipc-footer__company-tel p {
	margin: 0;
}

/* Footer meta — Figma node 2004:63 */
.ipc-footer__meta {
	padding-top: 29px;
}

.ipc-footer__license,
.ipc-footer__copy {
	margin: 0;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 1.5px;
	color: rgba(255, 255, 255, 0.5);
}

.ipc-footer__license {
	font-size: 10px;
	margin-bottom: 13px;
}

.ipc-footer__copy {
	font-size: 9px;
}

/* Service page */
.ipc-service-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
}

.ipc-service-card {
	padding: 32px;
	border: 1px solid var(--ipc-gray);
}

.ipc-service-card__num {
	font-family: var(--ipc-font-didot);
	font-size: 36px;
	line-height: 1;
	color: var(--ipc-gold);
}

.ipc-service-card__title {
	font-family: var(--ipc-font-serif);
	font-size: 24px;
	margin: 12px 0;
	letter-spacing: 2px;
}

.ipc-link {
	display: inline-block;
	margin-top: 12px;
	color: var(--ipc-accent);
	font-weight: 700;
}

/* Routes */
.ipc-routes {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
}

.ipc-route-card {
	padding: 40px 24px;
	text-align: center;
	border: 1px solid var(--ipc-gray);
	background: var(--ipc-white);
}

.ipc-route-card__label {
	font-family: var(--ipc-font-display);
	font-size: 14px;
	color: var(--ipc-gray-dark);
	margin-bottom: 12px;
}

.ipc-route-card__title {
	font-family: var(--ipc-font-serif);
	font-size: 22px;
	margin-bottom: 12px;
}

.ipc-route-card__desc {
	font-size: 14px;
	color: #555;
	line-height: 1.8;
	margin-bottom: 24px;
	min-height: 72px;
}

/* Flow — Figma node 238:5055 Section - TIMELINE */

/* Flow section header — Figma node 238:5056 Paragraph+HorizontalBorder */
.page-template-page-flow .ipc-num-head {
	--ipc-num-head-gap: 36px;
	--ipc-num-head-align: flex-start;
	--ipc-num-head-margin: 0 0 48px;
	--ipc-num-head-min-height: 158px;
	--ipc-num-head-num-margin-top: 10px;
	--ipc-num-head-num-size: 64px;
	--ipc-num-head-num-line-height: 20.4px;
	--ipc-num-head-group-gap: 14px;
	--ipc-num-head-group-padding-top: 14px;
	--ipc-num-head-en-size: 16px;
	--ipc-num-head-title-size: 40px;
	--ipc-num-head-title-weight: 300;
	--ipc-num-head-title-line-height: 40px;
	--ipc-num-head-title-tracking: -0.3px;
}

.ipc-flow-steps {
	max-width: none;
	margin: 0;
}

.ipc-flow-step {
	display: grid;
	grid-template-columns: 98px minmax(0, 1fr) minmax(280px, 558px);
	column-gap: 54px;
	align-items: start;
	padding: 48px 0;
	border-bottom: 1px solid #e6e3dd;
}

.ipc-flow-step__num {
	font-family: var(--ipc-font-didot);
	font-size: 88px;
	font-weight: 400;
	line-height: 0.85;
	letter-spacing: -2px;
	color: var(--ipc-gold);
}

.ipc-flow-step__main {
	min-width: 0;
}

.ipc-flow-step__title {
	font-family: var(--ipc-font-serif);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.52px;
	margin: 0 0 16px;
	color: var(--ipc-black);
}

.ipc-flow-step__title-line {
	display: block;
}

.ipc-flow-step__texts {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.ipc-flow-step__text {
	margin: 0 0 12px;
	font-size: 14px;
	line-height: 1.95;
	color: var(--ipc-text-sub);
}

.ipc-flow-step__text:last-child {
	margin-bottom: 0;
}

.ipc-flow-step__panel {
	background: #f6f6f4;
	border: 1px solid var(--ipc-border-card);
	padding: 22px;
}

.ipc-flow-step__panel-label {
	margin: 0 0 12px;
	font-family: var(--ipc-font-mono);
	font-size: 14px;
	font-weight: 300;
	line-height: 1.2;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
}

.ipc-flow-note {
	text-align: center;
	max-width: 600px;
	margin: 48px auto 32px;
	font-size: 15px;
	line-height: 1.9;
	color: #555;
}

.ipc-flow-cta { text-align: center; }

/* Forms */
.ipc-form-wrap { max-width: 720px; margin: 0 auto; }
.ipc-form-wrap__title {
	font-family: var(--ipc-font-serif);
	font-size: 28px;
	margin-bottom: 32px;
	text-align: center;
}

.ipc-form__group { margin-bottom: 24px; }

.ipc-form__group:not(.ipc-form__consent):not(.ipc-form__group--checkbox) {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ipc-form__group:not(.ipc-form__consent) > p {
	margin-bottom: 0;
}
.ipc-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.ipc-form label {
	display: block;
	font-size: 14px;
	font-weight: 700;
	margin-bottom: 8px;
}

.ipc-form .required {
	color: #a4392f;
	font-size: 9px;
	margin-left: 4px;
}

.ipc-form input[type="text"],
.ipc-form input[type="email"],
.ipc-form input[type="tel"],
.ipc-form textarea {
	width: 100%;
	padding: 14px 16px;
	border: 1px solid var(--ipc-gray);
	border-radius: 0;
	font-family: inherit;
	font-size: 16px;
	background: var(--ipc-white);
	color: var(--ipc-black);
}

/*
 * Custom <select> policy:
 * - CLOSED (trigger): match Figma exactly. Do not invent closed chrome.
 * - OPEN (menu): not in Figma → site-styled listbox only (OS popup differs by browser).
 * Note: never use the `background` shorthand on triggers with a chevron.
 */
.ipc-select {
	position: relative;
	display: block;
	width: 100%;
	min-width: 0;
}

.ipc-select--sort {
	width: auto;
	display: inline-block;
}

.ipc-select__native {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	background: none !important;
	pointer-events: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

/* Closed fallback (no JS) + trigger shell — keep Figma field metrics */
.ipc-form select:not(.ipc-select__native),
.ipc-form .wpcf7-select:not(.ipc-select__native),
.ipc-search-bar__field select:not(.ipc-select__native),
.ipc-archive-toolbar__sort select:not(.ipc-select__native),
.ipc-select__trigger {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	display: block;
	width: 100%;
	margin: 0;
	border: 1px solid var(--ipc-gray);
	border-radius: 0;
	background-color: var(--ipc-white);
	background-image: none;
	padding: 14px 16px;
	font-family: inherit;
	font-size: 16px;
	line-height: 1.4;
	text-align: left;
	color: var(--ipc-black);
	cursor: pointer;
	color-scheme: light;
	box-shadow: none;
}

/*
 * CLOSED fields: Figma 238:3156 Options have NO chevron — plain bordered boxes.
 * OPEN menu (below) is the only place we invent UI (not in Figma).
 */
.ipc-select--search .ipc-select__trigger,
.ipc-search-bar__field select:not(.ipc-select__native),
.ipc-select--form .ipc-select__trigger,
.ipc-form select:not(.ipc-select__native),
.ipc-form .wpcf7-select:not(.ipc-select__native) {
	background-image: none;
	padding-right: 16px;
}

/* Sort closed may keep a small caret if Figma shows one; default = none until confirmed */
.ipc-select--sort .ipc-select__trigger,
.ipc-archive-toolbar__sort select:not(.ipc-select__native) {
	background-image: none;
}

.ipc-select__trigger:focus,
.ipc-form select:not(.ipc-select__native):focus,
.ipc-form .wpcf7-select:not(.ipc-select__native):focus,
.ipc-search-bar__field select:not(.ipc-select__native):focus,
.ipc-archive-toolbar__sort select:not(.ipc-select__native):focus {
	outline: none;
	border-color: var(--ipc-border-card, #d4d0c8);
}

.ipc-select__trigger:disabled,
.ipc-form select:disabled:not(.ipc-select__native),
.ipc-search-bar__field select:disabled:not(.ipc-select__native),
.ipc-archive-toolbar__sort select:disabled:not(.ipc-select__native) {
	opacity: 0.55;
	cursor: not-allowed;
}

.ipc-select__value {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* OPEN menu only — Figma has no open-state spec */
.ipc-select__menu {
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	z-index: 40;
	margin: 0;
	padding: 4px 0;
	list-style: none;
	background: var(--ipc-white);
	border: 1px solid var(--ipc-border-card, #d4d0c8);
	border-radius: 0;
	box-shadow: 0 8px 24px rgba(26, 26, 26, 0.08);
	max-height: min(280px, 50vh);
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}

.ipc-select--sort .ipc-select__menu {
	right: auto;
	min-width: 100%;
	width: max-content;
}

.ipc-select__option {
	display: block;
	padding: 10px 16px;
	font-family: inherit;
	font-size: inherit;
	line-height: 1.4;
	color: var(--ipc-black);
	cursor: pointer;
	white-space: nowrap;
}

.ipc-select__option:hover,
.ipc-select__option:focus {
	outline: none;
	background: #f5f3ef;
}

.ipc-select__option.is-selected {
	background: #f0eee8;
	font-weight: 500;
}

.ipc-select__option.is-selected::before {
	content: "✓";
	display: inline-block;
	width: 1.1em;
	margin-right: 0.35em;
	color: var(--ipc-main);
	font-weight: 400;
}

.ipc-select__option.is-disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.ipc-form__group--checkbox label {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-weight: 400;
}

.ipc-form__note {
	font-size: 12px;
	color: #888;
	margin-top: 12px;
}

/* Archive */
.ipc-trust-bar {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-bottom: 48px;
	text-align: center;
}

.ipc-trust-bar__item {
	padding: 24px 16px;
	border: 1px solid var(--ipc-gray);
}

.ipc-trust-bar__num {
	font-family: var(--ipc-font-didot);
	font-size: 36px;
	font-weight: 400;
	line-height: 1;
	color: var(--ipc-black);
}

.ipc-trust-bar__unit { font-size: 16px; }

.ipc-archive-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px 24px;
}

.ipc-archive-card__image {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4/3;
	border: 1px solid var(--ipc-gray);
	margin-bottom: 12px;
}

.ipc-archive-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.ipc-archive-card:hover .ipc-archive-card__image img {
	transform: scale(1.06);
}

@media (prefers-reduced-motion: reduce) {
	.ipc-archive-card__image img {
		transition: none;
	}

	.ipc-archive-card:hover .ipc-archive-card__image img {
		transform: none;
	}
}

.ipc-archive-card__title,
.ipc-voice-card__label-inner,
.ipc-featured-voice__title {
	width: fit-content;
	max-width: 100%;
}

.ipc-archive-card__title {
	font-family: var(--ipc-font-serif);
	font-size: 18px;
	margin-bottom: 8px;
}

/* Card title underline — GSAP on hover (see initCardTitleUnderlines) */
.ipc-voice-card__label-inner[data-underline-lines-ready],
.ipc-featured-voice__title[data-underline-lines-ready],
.ipc-archive-card__title[data-underline-lines-ready] {
	display: block;
	width: fit-content;
	max-width: 100%;
}

.ipc-voice-card__label-inner:not([data-underline-lines-ready]),
.ipc-featured-voice__title:not([data-underline-lines-ready]),
.ipc-archive-card__title:not([data-underline-lines-ready]) {
	display: inline;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 1px;
	padding-bottom: 3px;
}

.ipc-voice-card__label-inner:not([data-underline-bound]):not([data-underline-lines-ready]),
.ipc-featured-voice__title:not([data-underline-bound]):not([data-underline-lines-ready]),
.ipc-archive-card__title:not([data-underline-bound]):not([data-underline-lines-ready]) {
	transition: background-size 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}

.ipc-card-underline-line,
.ipc-voice-card__label-line {
	display: block;
	width: fit-content;
	max-width: 100%;
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 1px;
	padding-bottom: 3px;
}

.ipc-voice-card--archive .ipc-voice-card__label,
.ipc-voice-card--related .ipc-voice-card__label,
.ipc-featured-voice--archive .ipc-featured-voice__title {
	overflow: visible;
}

.ipc-voice-stack__link:hover .ipc-voice-card__label-inner:not([data-underline-bound]):not([data-underline-lines-ready]),
.ipc-voice-card--archive:hover .ipc-voice-card__label-inner:not([data-underline-bound]):not([data-underline-lines-ready]),
.ipc-voice-card--related:hover .ipc-voice-card__label-inner:not([data-underline-bound]):not([data-underline-lines-ready]),
.ipc-featured-voice--archive:hover .ipc-featured-voice__title:not([data-underline-bound]):not([data-underline-lines-ready]),
.ipc-archive-card:hover .ipc-archive-card__title:not([data-underline-bound]):not([data-underline-lines-ready]) {
	background-size: 100% 1px;
}

@media (prefers-reduced-motion: reduce) {
	.ipc-voice-card__label-inner,
	.ipc-card-underline-line,
	.ipc-voice-card__label-line,
	.ipc-featured-voice__title,
	.ipc-archive-card__title,
	.ipc-property-card__title {
		transition: none;
	}
}

/* TOP property gallery — PC(1025px〜): タイトル非表示（Figma PC） */
@media (min-width: 1025px) {
	.ipc-properties .ipc-property-grid .ipc-property-card__title,
	.ipc-properties .ipc-property-grid .ipc-property-card__title[data-underline-lines-ready],
	.ipc-properties .ipc-property-grid .ipc-property-card__title:not([data-underline-lines-ready]),
	.ipc-properties .ipc-property-grid .ipc-property-card__title .ipc-card-underline-line {
		display: none !important;
	}
}

.ipc-archive-card__meta li {
	font-size: 13px;
	color: #666;
	margin-bottom: 4px;
}

.ipc-archive-card__meta span {
	display: inline-block;
	width: 72px;
	color: #999;
}

/* Property detail — spec table (shared) */
.ipc-spec-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 24px;
}

.ipc-spec-table th,
.ipc-spec-table td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--ipc-gray);
	text-align: left;
	font-size: 14px;
}

.ipc-spec-table th {
	width: 120px;
	color: #666;
	font-weight: 400;
}

/* Voice detail — spec table shared with property pages above */
.ipc-legal { max-width: 800px; margin: 0 auto; }
.ipc-legal h2 {
	font-family: var(--ipc-font-serif);
	font-size: 22px;
	margin: 40px 0 16px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--ipc-gray);
}

.ipc-legal p, .ipc-legal li {
	font-size: 15px;
	line-height: 1.9;
	color: #444;
}

.ipc-legal ul { list-style: disc; padding-left: 24px; margin: 16px 0; }

.ipc-content p { margin-bottom: 1em; }

/* Pagination — Figma 238:3192 (PC) */
.navigation.pagination {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin-top: 48px;
}

.navigation.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 41.7px;
	height: 41px;
	border: 1px solid var(--ipc-border-card, #d4d0c8);
	font-family: var(--ipc-font-mono);
	font-size: 11px;
	font-weight: 300;
	letter-spacing: 1.1px;
	color: var(--ipc-black);
	text-decoration: none;
}

.navigation.pagination .current {
	background: var(--ipc-black);
	color: var(--ipc-white);
	border-color: var(--ipc-black);
}

/* =========================================================
 * === Service page (studio-wp-developer additions) ===
 * サービスページ：Figmaデザインで未実装だった以下を追加
 * (Our Approach / 5つの強み / 一般仲介との比較 / サービス範囲 / 提携専門家網 / 海外オーナー向け)
 * ========================================================= */

:root {
	--ipc-gold: #8b6f47;
	--ipc-border-soft: #e6e3dd;
	--ipc-border-card: #d4d0c8;
	--ipc-text-sub: #3a3a3a;
	--ipc-text-muted: #6b6b6b;
}

/* Contact grid — Figma node 238:5837 Section - CONTACT GRID */
.page-template-page-contact .ipc-section:has(.ipc-contact-layout) {
	border-bottom: 1px solid #e6e3dd;
}

.page-template-page-contact .ipc-contact-layout {
	grid-template-columns: minmax(0, 577fr) minmax(0, 744fr);
	gap: 48px;
}

.page-template-page-contact .ipc-btn--contact-salon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 334px;
	min-height: 49px;
	margin-top: 32px;
	padding: 14px 24px;
	background: var(--ipc-white);
	color: var(--ipc-black);
	border: 1px solid var(--ipc-black);
	font-family: var(--ipc-font-sans);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 2.2px;
	text-decoration: none;
}

/* Contact form card — Figma node 238:5856 RIGHT */
.page-template-page-contact .ipc-form-card--contact {
	padding: 44px 36px;
	border: 1px solid var(--ipc-black);
}

.page-template-page-contact .ipc-form-card--contact .ipc-form-card__step {
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 2px;
	color: var(--ipc-gold);
	margin-bottom: 0;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form-card__title {
	font-family: var(--ipc-font-serif);
	font-size: 24px;
	font-weight: 600;
	line-height: 40.8px;
	letter-spacing: 2.16px;
	padding-bottom: 16px;
	margin-bottom: 24px;
	border-bottom: 1px solid var(--ipc-border-card);
}

.page-template-page-contact .ipc-form-card--contact .ipc-form__group,
.page-template-page-contact .ipc-form-card--contact .ipc-form.wpcf7-form p {
	margin-bottom: 24px;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form.wpcf7-form .ipc-form__label-row > p {
	margin: 0;
}

/* ラベル行の型は共通 .ipc-form__label-row（Figma 2021:30）に統一 */
.page-template-page-contact .ipc-form-card--contact .ipc-form > .ipc-form__group > label:not(.ipc-form__tab),
.page-template-page-contact .ipc-form-card--contact .ipc-form.wpcf7-form label:not(.ipc-form__tab):not(.wpcf7-list-item-label) {
	font-family: var(--ipc-font-serif);
	font-size: 13px;
	font-weight: 600;
	line-height: 22.1px;
	margin-bottom: 0;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form input[type="text"],
.page-template-page-contact .ipc-form-card--contact .ipc-form input[type="email"],
.page-template-page-contact .ipc-form-card--contact .ipc-form input[type="tel"],
.page-template-page-contact .ipc-form-card--contact .ipc-form textarea,
.page-template-page-contact .ipc-form-card--contact .ipc-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-acceptance):not(.wpcf7-select) {
	min-height: 51px;
	padding: 14px 16px;
	border: 1px solid var(--ipc-border-card);
	border-radius: 0;
	font-family: var(--ipc-font-serif);
	font-size: 14px;
	letter-spacing: 1.4px;
	color: var(--ipc-black);
	background: var(--ipc-white);
}

.page-template-page-contact .ipc-form-card--contact .ipc-form select:not(.ipc-select__native),
.page-template-page-contact .ipc-form-card--contact .ipc-form .wpcf7-select:not(.ipc-select__native),
.page-template-page-contact .ipc-form-card--contact .ipc-form .ipc-select__trigger {
	min-height: 51px;
	padding: 14px 16px;
	border: 1px solid var(--ipc-border-card);
	font-family: var(--ipc-font-serif);
	font-size: 14px;
	letter-spacing: 1.4px;
	color: var(--ipc-black);
	background-color: var(--ipc-white);
	background-image: none;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form .ipc-select__option {
	font-family: var(--ipc-font-serif);
	font-size: 14px;
	letter-spacing: 1.4px;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form textarea,
.page-template-page-contact .ipc-form-card--contact .ipc-form .wpcf7-textarea {
	min-height: 140px;
	padding-top: 16px;
	vertical-align: top;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form input::placeholder,
.page-template-page-contact .ipc-form-card--contact .ipc-form textarea::placeholder {
	color: #757575;
	font-family: var(--ipc-font-serif);
	font-size: 14px;
	letter-spacing: 1.4px;
	opacity: 1;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form__tab span,
.page-template-page-contact .ipc-form-card--contact .wpcf7-form-control.ipc-cf7-tabs .wpcf7-list-item-label {
	font-family: var(--ipc-font-serif);
	font-size: 12px;
	line-height: 20.4px;
	min-height: 46px;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form__consent,
.page-template-page-contact .ipc-form-card--contact .ipc-form__group.ipc-form__consent,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form__consent,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form__group.ipc-form__consent {
	padding: 18px;
	border: 1px solid var(--ipc-border-card);
	margin-bottom: 24px;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form__consent .wpcf7-form-control.wpcf7-acceptance,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form__consent .wpcf7-form-control.wpcf7-acceptance {
	padding: 0;
	border: none;
	margin-bottom: 0;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form__consent label,
.page-template-page-contact .ipc-form-card--contact .wpcf7-form-control.wpcf7-acceptance label,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form__consent label,
.page-template-page-valuation .ipc-form-card--valuation .wpcf7-form-control.wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-weight: 400;
	margin-bottom: 0;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form__consent-text strong,
.page-template-page-contact .ipc-form-card--contact .wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form__consent-text strong,
.page-template-page-valuation .ipc-form-card--valuation .wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item-label {
	display: block;
	font-family: var(--ipc-font-serif);
	font-size: 12px;
	font-weight: 400;
	line-height: 20.4px;
	color: var(--ipc-black);
	margin-bottom: 0;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form__consent-text span,
.page-template-page-contact .ipc-form-card--contact .ipc-form__consent-desc,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form__consent-text span,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form__consent-desc {
	display: block;
	font-family: var(--ipc-font-serif);
	font-size: 12px;
	font-weight: 400;
	line-height: 20.4px;
	color: var(--ipc-text-sub);
	margin-top: 0;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form__consent-desc,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form__consent-desc {
	margin: 8px 0 0 28px;
}

.page-template-page-contact .ipc-form-card--contact .ipc-btn--submit,
.page-template-page-contact .ipc-form-card--contact .ipc-form input.ipc-btn--submit[type="submit"] {
	width: 100%;
	max-width: none;
	min-height: 56px;
	margin-top: 0;
	padding: 14px 24px;
	background: var(--ipc-black);
	border-color: var(--ipc-black);
	color: var(--ipc-white);
	font-family: var(--ipc-font-sans);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 3px;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form__note {
	font-family: var(--ipc-font-serif);
	font-size: 11px;
	line-height: 18.7px;
	letter-spacing: 2.31px;
	color: var(--ipc-text-muted);
	text-align: center;
	margin-top: 12px;
}

.page-template-page-contact .ipc-form-card--contact .ipc-form.wpcf7-form p:has(.ipc-form__note),
.page-template-page-contact .ipc-form-card--contact .ipc-form.wpcf7-form p:has(.wpcf7-submit) {
	margin-bottom: 0;
}

/* Contact salon access — Figma node 238:5924 Section - SALON ACCESS */
.page-template-page-contact .ipc-section--contact-salon {
	background: #f6f6f4;
}

.page-template-page-contact .ipc-section-head--contact-salon {
	margin-bottom: 32px;
}

.page-template-page-contact .ipc-section-head--contact-salon .ipc-section-head__en {
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
	margin-bottom: 16px;
}

.page-template-page-contact .ipc-section-head--contact-salon .ipc-section-head__title {
	font-family: var(--ipc-font-serif);
	font-size: 48px;
	font-weight: 300;
	line-height: 48.3px;
	letter-spacing: -0.42px;
	margin-bottom: 16px;
}

.page-template-page-contact .ipc-section--contact-salon .ipc-salon-lead {
	font-family: var(--ipc-font-serif);
	font-size: 20px;
	font-weight: 300;
	line-height: 32px;
	letter-spacing: 5.8px;
	color: var(--ipc-text-sub);
	max-width: none;
	margin: 0;
}

.page-template-page-contact .ipc-salon-details__term {
	font-size: 14px;
	line-height: 17px;
	letter-spacing: 5px;
}

.page-template-page-contact .ipc-salon-details__desc {
	font-family: var(--ipc-font-serif);
	font-size: 13px;
	line-height: 24.05px;
	letter-spacing: 4.03px;
}

.page-template-page-contact .ipc-salon-details__desc strong {
	font-size: 15px;
	font-weight: 600;
	line-height: 27.75px;
	letter-spacing: 4.65px;
	margin-bottom: 0;
}

.page-template-page-contact .ipc-salon-map {
	min-height: 440px;
	height: 440px;
}

.page-template-page-contact .ipc-salon-map-actions .ipc-btn {
	min-height: 39px;
	padding: 10px 14px;
	font-size: 10px;
	letter-spacing: 2px;
}

.page-template-page-contact .ipc-btn--salon-reserve {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 235px;
	min-height: 49px;
	padding: 14px 22px;
	background: var(--ipc-black);
	border-color: var(--ipc-black);
	color: var(--ipc-white);
	font-family: var(--ipc-font-mono);
	font-size: 11px;
	font-weight: 300;
	letter-spacing: 2.2px;
	text-decoration: none;
}

/* Valuation 2 routes — Figma node 238:1698 Section - ROUTES */
.page-template-page-valuation .ipc-section:first-of-type {
	padding-top: 48px;
}

.page-template-page-valuation .ipc-num-head {
	--ipc-num-head-margin: 0 0 82px;
	--ipc-num-head-border: none;
	--ipc-num-head-padding-bottom: 0;
	--ipc-num-head-align: flex-start;
	--ipc-num-head-en-size: 16px;
	--ipc-num-head-title-size: 48px;
	--ipc-num-head-title-weight: 300;
	--ipc-num-head-title-line-display: block;
}

.page-template-page-valuation .ipc-routes {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	width: 100%;
}

.page-template-page-valuation .ipc-route-card {
	min-height: 399px;
	padding: 32px 24px 28px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	border-color: var(--ipc-border-card);
}

.page-template-page-valuation .ipc-route-card--primary {
	background: var(--ipc-main);
	border-color: var(--ipc-black);
	color: var(--ipc-white);
}

.page-template-page-valuation .ipc-route-card__label {
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
	margin: 0 0 12px;
}

.page-template-page-valuation .ipc-route-card--primary .ipc-route-card__label {
	color: rgba(255, 255, 255, 0.6);
}

.page-template-page-valuation .ipc-route-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	margin-bottom: 28px;
}

.page-template-page-valuation .ipc-route-card__icon img {
	display: block;
	max-height: 48px;
	width: auto;
	height: auto;
}

.page-template-page-valuation .ipc-route-card--primary .ipc-route-card__icon img {
	width: 39px;
	height: 48px;
}

.page-template-page-valuation .ipc-route-card:nth-child(2) .ipc-route-card__icon img {
	width: 42px;
	height: 45px;
}

.page-template-page-valuation .ipc-route-card:nth-child(3) .ipc-route-card__icon img {
	width: 46px;
	height: 47px;
}

.page-template-page-valuation .ipc-route-card__title {
	font-family: var(--ipc-font-serif);
	font-size: 22px;
	font-weight: 600;
	line-height: 37.4px;
	letter-spacing: 0.88px;
	margin: 0 0 16px;
	color: var(--ipc-black);
}

.page-template-page-valuation .ipc-route-card--primary .ipc-route-card__title {
	color: var(--ipc-white);
}

.page-template-page-valuation .ipc-route-card__desc {
	font-family: var(--ipc-font-serif);
	font-size: 13px;
	line-height: 24.05px;
	color: var(--ipc-text-sub);
	margin: 0 0 auto;
	padding-bottom: 24px;
	max-width: 280px;
	min-height: 0;
}

.page-template-page-valuation .ipc-route-card--primary .ipc-route-card__desc {
	color: rgba(255, 255, 255, 0.8);
}

.page-template-page-valuation .ipc-route-card .ipc-btn--route {
	width: min(100%, 254px);
	min-height: 49px;
	margin-top: auto;
	padding: 14px 24px;
	font-family: var(--ipc-font-mono);
	font-weight: 300;
	letter-spacing: 2.2px;
	text-transform: uppercase;
	background: var(--ipc-white);
	color: var(--ipc-black);
	border-color: var(--ipc-black);
}

.page-template-page-valuation .ipc-route-card--primary .ipc-btn--route {
	border-color: var(--ipc-white);
	font-size: 13px;
}

.page-template-page-valuation .ipc-route-card:not(.ipc-route-card--primary) .ipc-btn--route {
	font-size: 13px;
}

.page-template-page-valuation .ipc-route-card:nth-child(3) .ipc-btn--route {
	font-size: 14px;
}

/* Valuation form — Figma node 238:1736 Section - FORM */
.page-template-page-valuation #valuation-form {
	background: var(--ipc-white);
	border-bottom: 1px solid var(--ipc-border-soft);
}

.page-template-page-valuation #valuation-form .ipc-num-head {
	--ipc-num-head-margin: 0 0 48px;
	--ipc-num-head-border: none;
	--ipc-num-head-padding-bottom: 0;
	--ipc-num-head-align: flex-start;
	--ipc-num-head-en-size: 16px;
	--ipc-num-head-title-size: 48px;
	--ipc-num-head-title-weight: 300;
	--ipc-num-head-title-tracking: 7px;
	/* Figma 238:1741 — PC は「最小限の入力で。」1行 */
	--ipc-num-head-title-line-display: inline;
	--ipc-num-head-title-line-height: 34.5px;
	--ipc-num-head-title-line-gap: 0;
}

.page-template-page-valuation #valuation-form .ipc-section-lead {
	font-family: var(--ipc-font-serif);
	font-size: 15px;
	font-weight: 300;
	line-height: 27.75px;
	color: var(--ipc-text-sub);
	max-width: 343px;
	margin-bottom: 48px;
}

.page-template-page-valuation .ipc-valuation-columns {
	grid-template-columns: minmax(0, 497fr) minmax(0, 647fr);
	gap: 48px;
}

.page-template-page-valuation .ipc-info-stack {
	gap: 32px;
}

.page-template-page-valuation .ipc-promise-box {
	padding: 28px;
	background: rgba(139, 111, 71, 0.05);
	border-color: var(--ipc-gold);
}

.page-template-page-valuation .ipc-promise-box__label {
	font-family: var(--ipc-font-mono);
	font-size: 11px;
	font-weight: 300;
	line-height: 18.7px;
	letter-spacing: 2.2px;
	color: #5c4a30;
	margin-bottom: 16px;
}

.page-template-page-valuation .ipc-promise-box__list li {
	padding: 12px 0;
	min-height: 45px;
	align-items: center;
	font-family: var(--ipc-font-serif);
	font-size: 14px;
	font-weight: 600;
	line-height: 23.8px;
}

.page-template-page-valuation .ipc-timeline-box {
	padding: 28px;
}

.page-template-page-valuation .ipc-timeline-box__title {
	font-size: 16px;
	font-weight: 600;
	line-height: 27.2px;
	letter-spacing: 1.92px;
	padding-bottom: 14px;
	margin-bottom: 8px;
}

.page-template-page-valuation .ipc-timeline__item {
	display: grid;
	grid-template-columns: 70px minmax(0, 1fr);
	grid-template-rows: auto auto;
	column-gap: 28px;
	align-items: start;
	padding: 16px 0;
	min-height: 73px;
}

.page-template-page-valuation .ipc-timeline__tag {
	grid-column: 1;
	grid-row: 1 / 3;
	margin-bottom: 0;
	padding-top: 4px;
	font-family: var(--ipc-font-sans);
	font-size: 10px;
	line-height: 17px;
	letter-spacing: 1.5px;
}

.page-template-page-valuation .ipc-timeline__label {
	grid-column: 2;
	grid-row: 1;
	font-family: var(--ipc-font-serif);
	font-size: 13px;
	font-weight: 600;
	line-height: 22.1px;
	margin-bottom: 4px;
}

.page-template-page-valuation .ipc-timeline__text {
	grid-column: 2;
	grid-row: 2;
	font-family: var(--ipc-font-serif);
	font-size: 11px;
	line-height: 17.6px;
}

.page-template-page-valuation .ipc-form-card--valuation {
	padding: 36px;
	border: 1px solid var(--ipc-black);
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form-card__step {
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 2px;
	color: var(--ipc-gold);
	margin-bottom: 0;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form-card__title {
	font-family: var(--ipc-font-serif);
	font-size: 24px;
	font-weight: 600;
	line-height: 40.8px;
	letter-spacing: 1.92px;
	padding-bottom: 16px;
	margin-bottom: 24px;
	border-bottom: 1px solid var(--ipc-border-card);
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form__group,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form.wpcf7-form p {
	margin-bottom: 24px;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form.wpcf7-form .ipc-form__label-row > p {
	margin: 0;
}

/* ラベル行の型は共通 .ipc-form__label-row（Figma 2021:30）に統一 */
.page-template-page-valuation .ipc-form-card--valuation .ipc-form > .ipc-form__group > label:not(.ipc-form__tab),
.page-template-page-valuation .ipc-form-card--valuation .ipc-form.wpcf7-form label:not(.ipc-form__tab):not(.wpcf7-list-item-label) {
	font-family: var(--ipc-font-serif);
	font-size: 13px;
	font-weight: 600;
	line-height: 22.1px;
	margin-bottom: 0;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form input[type="text"],
.page-template-page-valuation .ipc-form-card--valuation .ipc-form input[type="email"],
.page-template-page-valuation .ipc-form-card--valuation .ipc-form input[type="tel"],
.page-template-page-valuation .ipc-form-card--valuation .ipc-form textarea,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-acceptance) {
	min-height: 51px;
	padding: 14px 16px;
	border: 1px solid var(--ipc-border-card);
	font-family: var(--ipc-font-serif);
	font-size: 14px;
	letter-spacing: 1.4px;
	color: var(--ipc-black);
	background: var(--ipc-white);
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form textarea,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form .wpcf7-textarea {
	min-height: 100px;
	padding-top: 16px;
	vertical-align: top;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form input::placeholder,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form textarea::placeholder {
	color: #757575;
	font-family: var(--ipc-font-serif);
	font-size: 14px;
	letter-spacing: 1.4px;
	opacity: 1;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form__tab span,
.page-template-page-valuation .ipc-form-card--valuation .wpcf7-form-control.ipc-cf7-tabs .wpcf7-list-item-label {
	font-family: var(--ipc-font-serif);
	font-size: 12px;
	line-height: 20.4px;
	min-height: 46px;
}

/* Figma 2020:5 / 2020:15 — 物件種別・間取りは 3列 + 4番目フル幅 */
.page-template-page-valuation .ipc-form-card--valuation .ipc-form__tabs--quad,
.page-template-page-valuation .ipc-form-card--valuation .wpcf7-form-control.ipc-cf7-tabs--quad {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form__tabs--quad .ipc-form__tab,
.page-template-page-valuation .ipc-form-card--valuation .wpcf7-form-control.ipc-cf7-tabs--quad .wpcf7-list-item {
	min-width: 0;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form__tabs--quad .ipc-form__tab:nth-child(4),
.page-template-page-valuation .ipc-form-card--valuation .wpcf7-form-control.ipc-cf7-tabs--quad .wpcf7-list-item:nth-child(4) {
	grid-column: 1 / -1;
}

/* 物件種別（Figma 2020:5）— 上段3つ 66.78px / その他 46.39px */
.page-template-page-valuation .ipc-form-card--valuation .ipc-form__tabs--property-type .ipc-form__tab:nth-child(-n+3) span,
.page-template-page-valuation .ipc-form-card--valuation .wpcf7-form-control.ipc-cf7-tabs--property-type .wpcf7-list-item:nth-child(-n+3) .wpcf7-list-item-label {
	min-height: 67px;
	padding-top: 10px;
	padding-bottom: 10px;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form__tabs--property-type .ipc-form__tab:nth-child(1) span,
.page-template-page-valuation .ipc-form-card--valuation .wpcf7-form-control.ipc-cf7-tabs--property-type .wpcf7-list-item:nth-child(1) .wpcf7-list-item-label {
	white-space: normal;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form__tabs--property-type .ipc-form__tab:nth-child(4) span,
.page-template-page-valuation .ipc-form-card--valuation .wpcf7-form-control.ipc-cf7-tabs--property-type .wpcf7-list-item:nth-child(4) .wpcf7-list-item-label {
	min-height: 46px;
	padding-top: 8px;
	padding-bottom: 8px;
}

/* 間取り（Figma 2020:15）— 全タブ同一高さ */
.page-template-page-valuation .ipc-form-card--valuation .ipc-form__tabs--layout .ipc-form__tab span,
.page-template-page-valuation .ipc-form-card--valuation .wpcf7-form-control.ipc-cf7-tabs--layout .wpcf7-list-item-label {
	min-height: 46px;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form.wpcf7-form .ipc-form__label-row label,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form.wpcf7-form .ipc-form__label-row > p > label {
	display: block;
	margin-bottom: 0;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form.wpcf7-form .ipc-form__group--checkbox label,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form.wpcf7-form .wpcf7-form-control.ipc-cf7-checkbox label,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form.wpcf7-form .wpcf7-form-control.wpcf7-acceptance label {
	font-weight: 400;
	margin-bottom: 0;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form__group--stack > * + *,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form__group--stack .wpcf7-form-control-wrap + .wpcf7-form-control-wrap {
	margin-top: 12px;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form.wpcf7-form p:has(.ipc-form__note) {
	margin-bottom: 0;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form.wpcf7-form p:has(.wpcf7-submit) {
	margin-bottom: 0;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form__group--checkbox {
	margin-bottom: 16px;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form__group--checkbox label {
	font-family: var(--ipc-font-serif);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.6;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-btn--submit,
.page-template-page-valuation .ipc-form-card--valuation .ipc-form input.ipc-btn--submit[type="submit"] {
	width: 100%;
	max-width: none;
	min-height: 56px;
	margin-top: 16px;
	padding: 14px 24px;
	background: var(--ipc-black);
	border-color: var(--ipc-black);
	color: var(--ipc-white);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 3px;
}

.page-template-page-valuation .ipc-form-card--valuation .ipc-form__note {
	font-family: var(--ipc-font-sans);
	font-size: 11px;
	line-height: 18.7px;
	color: var(--ipc-text-muted);
	text-align: center;
	margin-top: 12px;
}

/* Valuation FAQ — Figma node 238:1835 Section - FAQ */
.page-template-page-valuation .ipc-section--valuation-faq {
	background: #f6f6f4;
	padding-top: 80px;
	padding-bottom: 80px;
}

.page-template-page-valuation .ipc-section--valuation-faq .ipc-section-head {
	margin-bottom: 32px;
}

.page-template-page-valuation .ipc-section--valuation-faq .ipc-section-head__en {
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
	margin-bottom: 8px;
}

.page-template-page-valuation .ipc-section--valuation-faq .ipc-section-head__title {
	font-family: var(--ipc-font-serif);
	font-size: 42px;
	font-weight: 300;
	line-height: 48.3px;
	letter-spacing: 4px;
	margin-bottom: 0;
	color: var(--ipc-black);
}

.page-template-page-valuation .ipc-section--valuation-faq .ipc-faq-grid {
	gap: 18px;
}

.page-template-page-valuation .ipc-section--valuation-faq .ipc-faq-item {
	padding: 24px;
}

.page-template-page-valuation .ipc-section--valuation-faq .ipc-faq-item__q {
	font-family: var(--ipc-font-serif);
	font-weight: 600;
	font-size: 14px;
	line-height: 23.8px;
	margin-bottom: 14px;
	gap: 8px;
}

.page-template-page-valuation .ipc-section--valuation-faq .ipc-faq-item__q span {
	font-family: var(--ipc-font-display);
	font-size: 16px;
	line-height: 27.2px;
	min-width: 24px;
	color: var(--ipc-gold);
}

.page-template-page-valuation .ipc-section--valuation-faq .ipc-faq-item__a {
	font-family: var(--ipc-font-serif);
	font-size: 12px;
	line-height: 22.2px;
	color: var(--ipc-text-sub);
	gap: 8px;
	align-items: flex-start;
}

.page-template-page-valuation .ipc-section--valuation-faq .ipc-faq-item__a span {
	font-family: var(--ipc-font-display);
	font-size: 14px;
	line-height: 25.9px;
	min-width: 24px;
	color: var(--ipc-text-muted);
}

/* Service strengths section header — Figma PC 2021:26 / 238:2401 */
.page-template-page-service .ipc-num-head {
	--ipc-num-head-gap: 25px;
	--ipc-num-head-margin: 24px 0 0;
	--ipc-num-head-min-height: 149px;
	--ipc-num-head-align: center;
	--ipc-num-head-num-size: 64px;
	--ipc-num-head-num-line-height: 20.4px;
	--ipc-num-head-group-gap: 18px;
	--ipc-num-head-en-size: 16px;
	--ipc-num-head-en-transform: uppercase;
	--ipc-num-head-title-size: 40px;
	--ipc-num-head-title-weight: 300;
	--ipc-num-head-title-line-height: 34.5px;
	--ipc-num-head-title-tracking: 4px;
	--ipc-num-head-title-line-display: inline;
}

.page-template-page-service .ipc-section:has(.ipc-strengths) > .ipc-num-head .ipc-num-head__en {
	margin-left: 5px;
}

.page-template-page-service .ipc-strengths {
	border-bottom: 1px solid var(--ipc-border-soft);
}

/*
 * Numbered section heading — shared: service / flow / valuation / voice archive
 * Typography & layout overrides: set CSS variables on .ipc-num-head or a parent block.
 *   --ipc-num-head-gap, --ipc-num-head-title-size, --ipc-num-head-en-size, …
 */
.ipc-num-head {
	--ipc-num-head-gap: 24px;
	--ipc-num-head-align: center;
	--ipc-num-head-margin: 0 0 40px;
	--ipc-num-head-padding-bottom: 16px;
	--ipc-num-head-border: 1px solid var(--ipc-black);
	--ipc-num-head-min-height: auto;

	--ipc-num-head-num-width: 57px;
	--ipc-num-head-num-height: 96px;
	--ipc-num-head-num-size: clamp(48px, 6vw, 64px);
	--ipc-num-head-num-line-height: 1;
	--ipc-num-head-num-tracking: -3px;
	--ipc-num-head-num-margin-top: 0;

	--ipc-num-head-group-gap: 6px;
	--ipc-num-head-group-padding-top: 0;
	--ipc-num-head-group-flex: 1 1 auto;
	--ipc-num-head-group-min-width: 0;

	--ipc-num-head-en-size: 14px;
	--ipc-num-head-en-line-height: 23.8px;
	--ipc-num-head-en-tracking: 3.5px;
	--ipc-num-head-en-transform: uppercase;
	--ipc-num-head-en-color: var(--ipc-text-muted);
	--ipc-num-head-en-margin: 0;

	--ipc-num-head-title-size: clamp(24px, 3.4vw, 34px);
	--ipc-num-head-title-line-height: 34.5px;
	--ipc-num-head-title-tracking: 3px;
	--ipc-num-head-title-weight: 400;
	--ipc-num-head-title-line-display: inline;
	--ipc-num-head-title-line-gap: 0;

	display: flex;
	align-items: var(--ipc-num-head-align);
	gap: var(--ipc-num-head-gap);
	margin: var(--ipc-num-head-margin);
	padding-bottom: var(--ipc-num-head-padding-bottom);
	border-bottom: var(--ipc-num-head-border);
	min-height: var(--ipc-num-head-min-height);
}

.ipc-num-head--no-border {
	--ipc-num-head-border: none;
	--ipc-num-head-padding-bottom: 0;
}

.ipc-num-head__num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--ipc-num-head-num-width);
	height: var(--ipc-num-head-num-height);
	flex-shrink: 0;
	margin-top: var(--ipc-num-head-num-margin-top);
	background: var(--ipc-main);
	color: var(--ipc-white);
	font-family: var(--ipc-font-didot);
	font-size: var(--ipc-num-head-num-size);
	font-weight: 400;
	line-height: var(--ipc-num-head-num-line-height);
	letter-spacing: var(--ipc-num-head-num-tracking);
	text-transform: uppercase;
}

.ipc-num-head__group {
	display: flex;
	flex-direction: column;
	gap: var(--ipc-num-head-group-gap);
	padding-top: var(--ipc-num-head-group-padding-top);
	min-width: var(--ipc-num-head-group-min-width);
	flex: var(--ipc-num-head-group-flex);
}

.ipc-num-head__en {
	font-family: var(--ipc-font-display);
	font-size: var(--ipc-num-head-en-size);
	line-height: var(--ipc-num-head-en-line-height);
	letter-spacing: var(--ipc-num-head-en-tracking);
	text-transform: var(--ipc-num-head-en-transform);
	color: var(--ipc-num-head-en-color);
	margin: var(--ipc-num-head-en-margin);
}

.ipc-num-head__title {
	font-family: var(--ipc-font-serif);
	font-size: var(--ipc-num-head-title-size);
	font-weight: var(--ipc-num-head-title-weight);
	/* Figma sometimes sets lh < font-size; on the web that clips Mincho glyphs under overflow:hidden. */
	line-height: max(1.15em, var(--ipc-num-head-title-line-height));
	letter-spacing: var(--ipc-num-head-title-tracking);
	color: var(--ipc-black);
	margin: 0;
	word-break: keep-all;
	line-break: strict;
}

.ipc-num-head__title-line {
	display: var(--ipc-num-head-title-line-display);
}

.ipc-num-head__title-line + .ipc-num-head__title-line {
	margin-top: var(--ipc-num-head-title-line-gap);
}

.ipc-num-head__title-line--rest {
	margin-left: 0;
}

.ipc-num-head--plain .ipc-num-head__num {
	background: transparent;
	color: var(--ipc-black);
	border: 1px solid var(--ipc-black);
}

@media (max-width: 768px) {
	.ipc-num-head {
		--ipc-num-head-gap: 11px;
		--ipc-num-head-align: center;
		--ipc-num-head-num-width: 57px;
		--ipc-num-head-num-height: 96px;
		--ipc-num-head-num-size: 64px;
		--ipc-num-head-num-line-height: 20.4px;
		--ipc-num-head-num-tracking: -3px;
		--ipc-num-head-en-size: 14px;
		--ipc-num-head-en-line-height: 23.8px;
		--ipc-num-head-en-tracking: 3.5px;
		--ipc-num-head-en-transform: uppercase;
		--ipc-num-head-en-color: var(--ipc-text-muted);
		--ipc-num-head-en-margin: 0;
		--ipc-num-head-title-size: 40px;
		--ipc-num-head-title-line-height: 34.5px;
		--ipc-num-head-title-tracking: 3px;
		--ipc-num-head-title-weight: 300;
		--ipc-num-head-title-line-display: block;
		--ipc-num-head-title-line-gap: 6.5px;
	}
}

/* Our Approach — Figma node 238:2346 Section - INTRO MESSAGE */
.page-template-page-service .ipc-section:has(.ipc-approach) {
	padding-bottom: 0;
}

.ipc-approach {
	border-bottom: 1px solid var(--ipc-border-soft);
	padding: 40px 0 48px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 40px;
	align-items: start;
}

.ipc-approach__label {
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
	margin: 0 0 16px;
}

.ipc-approach__title {
	font-family: var(--ipc-font-serif);
	font-size: 42px;
	font-weight: 300;
	line-height: 55px;
	letter-spacing: -0.42px;
	color: var(--ipc-black);
	margin: 0;
}

.ipc-approach__text {
	font-family: var(--ipc-font-serif);
	font-size: 16px;
	font-weight: 300;
	line-height: 32px;
	letter-spacing: 0.8px;
	color: var(--ipc-text-sub);
	margin: 0;
}

/* 5つの強み — Figma node 238:2401 Section - 5 ADVANTAGES */
.ipc-strengths { display: flex; flex-direction: column; }

.ipc-strength {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr) minmax(320px, 437px);
	gap: 22px 32px;
	padding: 48px 0;
	border-bottom: 1px solid var(--ipc-border-soft);
	align-items: start;
}

.ipc-strength:last-child {
	border-bottom: 0;
}

.ipc-strength__num {
	font-family: var(--ipc-font-didot);
	font-size: 72px;
	font-weight: 400;
	color: var(--ipc-gold);
	line-height: 61.2px;
	letter-spacing: 0;
}

/* Figma 238:2407 — 左数字はバッジ上端より下（見出し中央付近） */
.page-template-page-service .ipc-strength__num {
	margin-top: 33px;
	align-self: start;
}

.ipc-strength__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 27px;
	padding: 0 16px;
	border: 1px solid var(--ipc-gold);
	color: var(--ipc-gold);
	font-family: var(--ipc-font-sans);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	margin-bottom: 24px;
}

.ipc-strength__title {
	font-family: var(--ipc-font-serif);
	font-size: 26px;
	font-weight: 600;
	line-height: 36.4px;
	letter-spacing: 0.52px;
	color: var(--ipc-black);
	margin: 0 0 16px;
}

.ipc-strength__text {
	font-family: var(--ipc-font-serif);
	font-size: 15px;
	font-weight: 300;
	line-height: 27.75px;
	color: var(--ipc-text-sub);
	margin: 0 0 24px;
}

.ipc-strength__stats {
	display: flex;
	gap: 34px;
	border-top: 1px dashed var(--ipc-border-card);
	padding-top: 20px;
}

.ipc-strength__stat-value {
	font-family: var(--ipc-font-didot);
	font-size: 36px;
	font-weight: 400;
	line-height: 36px;
	color: var(--ipc-black);
	display: block;
}

.ipc-strength__stat-label {
	font-family: var(--ipc-font-serif);
	font-size: 12px;
	font-weight: 600;
	line-height: 15.3px;
	color: var(--ipc-text-muted);
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-top: 8px;
	display: block;
}

.ipc-strength__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ipc-strength__list li {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	font-family: var(--ipc-font-serif);
	font-size: 13px;
	font-weight: 300;
	line-height: 22.1px;
	color: var(--ipc-text-sub);
	padding: 10px 0;
	border-bottom: 1px dashed var(--ipc-border-soft);
}

.ipc-strength__list li::before {
	content: "◆";
	flex-shrink: 0;
	color: var(--ipc-gold);
	font-family: var(--ipc-font-noto);
	font-size: 10px;
	line-height: 22.1px;
}

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

.ipc-strength__chips li {
	border: 1px solid var(--ipc-border-card);
	padding: 7px 10px;
	font-family: var(--ipc-font-noto);
	font-size: 11px;
	font-weight: 300;
	line-height: 18.7px;
	color: var(--ipc-text-sub);
}

.ipc-strength__media {
	position: relative;
	border: 1px solid var(--ipc-border-card);
	background: var(--ipc-white);
	overflow: hidden;
	height: 242px;
	min-height: 242px;
	align-self: start;
}

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

.page-template-page-service .ipc-strength__media--01 img {
	object-position: center 28%;
}

.page-template-page-service .ipc-strength__media--02 img {
	object-position: center center;
}

.page-template-page-service .ipc-strength__media--03 img {
	object-position: center center;
}

.page-template-page-service .ipc-strength__media--04 img {
	object-position: center center;
}

.page-template-page-service .ipc-strength__media--05 img {
	object-position: 58% center;
}

/* 一般仲介との違い — Figma node 238:2485 Section - COMPARISON */
.page-template-page-service .ipc-section--gray:has(.ipc-compare) {
	padding-top: 39px;
	padding-bottom: 48px;
	border-bottom: 1px solid var(--ipc-border-soft);
}

.page-template-page-service .ipc-compare {
	overflow-x: auto;
	margin-top: 48px;
}

.page-template-page-service .ipc-compare table {
	width: 100%;
	min-width: 640px;
	table-layout: fixed;
	border-collapse: collapse;
	background: var(--ipc-white);
	border: 1px solid var(--ipc-border-card);
}

.page-template-page-service .ipc-compare th,
.page-template-page-service .ipc-compare td {
	padding: 0 18px;
	height: 48px;
	border-bottom: 1px solid var(--ipc-border-soft);
	font-size: 13px;
	line-height: 1.4;
	text-align: left;
	vertical-align: middle;
}

.page-template-page-service .ipc-compare thead th {
	height: 46px;
	border-bottom: 1px solid var(--ipc-border-soft);
}

.page-template-page-service .ipc-compare thead th:first-child {
	width: 15%;
	background: #f6f6f4;
}

.page-template-page-service .ipc-compare thead th:nth-child(2) {
	width: 35%;
	background: #f6f6f4;
	font-family: var(--ipc-font-mono);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
}

.page-template-page-service .ipc-compare thead th:nth-child(3) {
	width: 50%;
	background: var(--ipc-main);
	font-family: var(--ipc-font-sans);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 1.28px;
	color: var(--ipc-white);
}

.page-template-page-service .ipc-compare tbody th {
	font-family: var(--ipc-font-serif);
	font-weight: 600;
	color: var(--ipc-black);
	white-space: normal;
	word-break: keep-all;
	overflow-wrap: anywhere;
	background: var(--ipc-white);
}

.page-template-page-service .ipc-compare tbody td {
	font-family: var(--ipc-font-serif);
	font-weight: 300;
	color: var(--ipc-black);
	background: var(--ipc-white);
}

.page-template-page-service .ipc-compare td.is-generic {
	color: var(--ipc-black);
	font-weight: 300;
}

.page-template-page-service .ipc-compare td.is-ipc {
	color: var(--ipc-black);
	font-weight: 600;
	background: rgba(139, 111, 71, 0.05);
}

.page-template-page-service .ipc-compare tbody tr:last-child th,
.page-template-page-service .ipc-compare tbody tr:last-child td {
	border-bottom: 0;
}

/* Legacy compare fallback (non-service) */
.ipc-compare { overflow-x: auto; }

.ipc-compare table {
	width: 100%;
	min-width: 620px;
	border-collapse: collapse;
}

/* サービス範囲 — Figma node 238:2555 Section - SERVICE SCOPE */
.page-template-page-service .ipc-section:has(.ipc-scope-card) {
	padding-top: 65px;
	padding-bottom: 48px;
	border-bottom: 1px solid var(--ipc-border-soft);
}

.page-template-page-service .ipc-section:has(.ipc-scope-card) .ipc-num-head {
	--ipc-num-head-margin: 0 0 48px;
	--ipc-num-head-min-height: 101px;
}

.page-template-page-service .ipc-service-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.page-template-page-service .ipc-scope-card {
	background: var(--ipc-white);
	border: 1px solid var(--ipc-border-card);
	padding: 24px;
	min-height: 260px;
	height: 100%;
}

.page-template-page-service .ipc-scope-card:nth-child(-n+3) {
	min-height: 291px;
}

.page-template-page-service .ipc-scope-card__num {
	font-family: var(--ipc-font-didot);
	font-size: 36px;
	font-weight: 400;
	line-height: 36px;
	color: var(--ipc-gold);
	display: block;
	margin-bottom: 6px;
}

.page-template-page-service .ipc-scope-card__title {
	font-family: var(--ipc-font-serif);
	font-size: 16px;
	font-weight: 600;
	line-height: 27.2px;
	letter-spacing: 2.24px;
	color: var(--ipc-black);
	margin: 0 0 16px;
	padding-bottom: 13px;
	border-bottom: 1px solid var(--ipc-border-soft);
}

.page-template-page-service .ipc-scope-card__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.page-template-page-service .ipc-scope-card__list li {
	display: flex;
	align-items: center;
	gap: 9px;
	min-height: 31px;
	font-family: var(--ipc-font-serif);
	font-size: 12px;
	font-weight: 300;
	line-height: 19.2px;
	letter-spacing: 2.4px;
	color: var(--ipc-text-sub);
	padding: 0;
	border-bottom: 0;
}

.page-template-page-service .ipc-scope-card__list li::before {
	content: "–";
	flex-shrink: 0;
	color: var(--ipc-gold);
	font-family: var(--ipc-font-noto);
	font-weight: 300;
}

/* Legacy scope card fallback */
.ipc-scope-card {
	border: 1px solid var(--ipc-border-card);
	padding: 28px 24px;
	height: 100%;
}

.ipc-scope-card__num {
	font-family: var(--ipc-font-didot);
	font-size: 36px;
	font-weight: 400;
	line-height: 1;
	color: var(--ipc-gold);
	display: block;
	margin-bottom: 8px;
}

.ipc-scope-card__title {
	font-family: var(--ipc-font-serif);
	font-size: 18px;
	margin: 0 0 16px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--ipc-border-soft);
}

.ipc-scope-card__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ipc-scope-card__list li {
	font-size: 13px;
	color: var(--ipc-text-sub);
	padding: 8px 0;
	border-bottom: 1px dashed var(--ipc-border-soft);
}

.ipc-scope-card__list li:last-child { border-bottom: none; }

.ipc-scope-card__list li::before { content: "— "; color: var(--ipc-gold); }

/* 提携専門家網 */
.ipc-partners-intro {
	font-size: 15px;
	color: var(--ipc-text-sub);
	max-width: 640px;
	margin: 0 0 32px;
}

.ipc-partners-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.ipc-partner-card {
	border: 1px solid var(--ipc-border-card);
	background: var(--ipc-white);
	padding: 32px 24px;
	text-align: center;
}

.ipc-partner-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	color: var(--ipc-gold);
	margin-bottom: 14px;
}

.ipc-partner-card__icon svg { display: block; width: 100%; height: 100%; }

.ipc-partner-card__label {
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
	margin: 0;
}

.ipc-partner-card__name {
	font-family: var(--ipc-font-serif);
	font-size: 18px;
	margin: 10px 0 14px;
}

.ipc-partner-card__text {
	font-size: 13px;
	color: var(--ipc-text-sub);
	line-height: 1.75;
	margin: 0;
}

/* 提携専門家網 — Figma node 238:2350 Section - PARTNERS */
.page-template-page-service .ipc-section--partners {
	background: var(--ipc-white);
	padding-top: 96px;
	padding-bottom: 48px;
	border-bottom: 1px solid var(--ipc-border-soft);
}

.page-template-page-service .ipc-section--partners .ipc-num-head {
	--ipc-num-head-margin: 0 0 48px;
	--ipc-num-head-min-height: 101px;
	--ipc-num-head-title-tracking: 6px;
}

.page-template-page-service .ipc-partners-intro {
	font-family: var(--ipc-font-serif);
	font-size: 15px;
	font-weight: 300;
	line-height: 27.75px;
	color: var(--ipc-text-sub);
	max-width: none;
	margin: 0 0 36px;
}

.page-template-page-service .ipc-partners-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.page-template-page-service .ipc-partner-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 28px;
	min-height: 269px;
}

.page-template-page-service .ipc-partner-card__icon {
	font-family: var(--ipc-font-display);
	font-size: 32px;
	font-weight: 300;
	line-height: 1;
	width: auto;
	height: auto;
	margin: 0;
}

.page-template-page-service .ipc-partner-card__label {
	font-family: var(--ipc-font-sans);
	font-size: 10px;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
	margin: 13px 0 0;
}

.page-template-page-service .ipc-partner-card__name {
	font-family: var(--ipc-font-serif);
	font-size: 17px;
	font-weight: 600;
	line-height: 28.9px;
	width: 100%;
	margin: 10px 0 0;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--ipc-border-soft);
}

.page-template-page-service .ipc-partner-card__text {
	font-family: var(--ipc-font-serif);
	font-size: 13px;
	font-weight: 300;
	line-height: 22.75px;
	color: var(--ipc-text-sub);
	margin: 28px 0 0;
}

/* 海外にお住まいのオーナー様へ */
.ipc-overseas {
	background: var(--ipc-main);
	color: var(--ipc-white);
	padding: 56px 0;
}

.ipc-overseas__label {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: rgba(255,255,255,.5);
	margin: 0 0 16px;
}

.ipc-overseas__title {
	font-family: var(--ipc-font-serif);
	font-size: clamp(24px, 3vw, 30px);
	margin: 0 0 16px;
}

.ipc-overseas__text {
	font-size: 15px;
	color: rgba(255,255,255,.85);
	max-width: 640px;
	margin: 0 0 32px;
}

.ipc-overseas-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

.ipc-overseas-item {
	border: 1px solid rgba(255,255,255,.2);
	padding: 24px 20px;
}

.ipc-overseas-item__num {
	font-family: var(--ipc-font-didot);
	font-size: 36px;
	font-weight: 400;
	line-height: 1;
	color: rgba(255,255,255,.55);
	display: block;
	margin-bottom: 10px;
}

.ipc-overseas-item__title {
	font-family: var(--ipc-font-serif);
	font-size: 17px;
	margin: 0 0 10px;
}

.ipc-overseas-item__text {
	font-size: 12.5px;
	color: rgba(255,255,255,.75);
	line-height: 1.7;
	margin: 0;
}

/* 海外オーナー向け — Figma node 238:2375 Section - INTERNATIONAL */
.page-template-page-service .ipc-overseas--international {
	padding: 28px 0 48px;
	min-height: 440px;
	border-bottom: 1px solid var(--ipc-border-soft);
}

.page-template-page-service .ipc-overseas--international .ipc-overseas__label {
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 2px;
	margin: 0 0 12px;
}

.page-template-page-service .ipc-overseas--international .ipc-overseas__title {
	font-family: var(--ipc-font-serif);
	font-size: 30px;
	font-weight: 300;
	line-height: 34.5px;
	letter-spacing: -0.3px;
	margin: 0 0 8px;
}

.page-template-page-service .ipc-overseas--international .ipc-overseas__text {
	font-family: var(--ipc-font-serif);
	font-size: 16px;
	font-weight: 300;
	line-height: 27.75px;
	letter-spacing: 0.96px;
	color: rgba(255, 255, 255, 0.85);
	max-width: none;
	margin: 0 0 24px;
}

.page-template-page-service .ipc-overseas--international .ipc-overseas-grid {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.page-template-page-service .ipc-overseas--international .ipc-overseas-item {
	display: grid;
	grid-template-columns: 78px 192px minmax(0, 1fr);
	align-items: center;
	border: none;
	padding: 0 43px 0 0;
	min-height: 68px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.page-template-page-service .ipc-overseas--international .ipc-overseas-item:first-child {
	min-height: 86px;
}

.page-template-page-service .ipc-overseas--international .ipc-overseas-item:nth-child(2) {
	min-height: 70px;
}

.page-template-page-service .ipc-overseas--international .ipc-overseas-item:nth-child(3) {
	min-height: 68px;
}

.page-template-page-service .ipc-overseas--international .ipc-overseas-item:nth-child(4) {
	min-height: 72px;
	border-bottom: none;
}

.page-template-page-service .ipc-overseas--international .ipc-overseas-item__num {
	font-family: var(--ipc-font-didot);
	font-size: 36px;
	font-weight: 400;
	line-height: 40.8px;
	color: var(--ipc-white);
	margin: 0;
	padding-left: 8px;
}

.page-template-page-service .ipc-overseas--international .ipc-overseas-item__title {
	font-family: var(--ipc-font-serif);
	font-size: 24px;
	font-weight: 600;
	line-height: 25.5px;
	letter-spacing: 2.88px;
	margin: 0;
}

.page-template-page-service .ipc-overseas--international .ipc-overseas-item__text {
	font-family: var(--ipc-font-serif);
	font-size: 16px;
	font-weight: 300;
	line-height: 20.4px;
	letter-spacing: 1.44px;
	color: rgba(255, 255, 255, 0.7);
	margin: 0;
}

/* =========================================================
 * === Flow page (studio-wp-developer additions) ===
 * ご売却の流れページ：DETAILSボックス／チェックリスト／
 * 媒介契約3形態の比較／費用の全体像テーブルを追加
 * ========================================================= */

.ipc-flow-step__tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 164px;
	height: 27px;
	padding: 0 14px;
	margin-bottom: 16px;
	background: transparent;
	border: 1px solid var(--ipc-gold);
	color: var(--ipc-gold);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.ipc-flow-step__details {
	display: block;
	margin: 0 0 16px;
	padding: 0;
	border: 0;
}

.ipc-flow-step__details-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 11px 0;
	border-bottom: 1px dashed var(--ipc-border-card);
	margin: 0;
}

.ipc-flow-step__details dt {
	margin: 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
}

.ipc-flow-step__details dd {
	margin: 0;
	font-family: var(--ipc-font-serif);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.275;
	color: var(--ipc-black);
	text-align: right;
}

.ipc-flow-step__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ipc-flow-step__list li {
	font-family: var(--ipc-font-serif);
	font-size: 16px;
	line-height: 1.1;
	letter-spacing: 1.44px;
	color: var(--ipc-text-sub);
	padding: 6px 0;
}

.ipc-flow-step__list li::before {
	content: "– ";
	color: var(--ipc-gold);
	font-size: 11px;
}

.ipc-flow-step__note {
	font-size: 12px;
	line-height: 1.7;
	letter-spacing: 0.4px;
	color: var(--ipc-text-muted);
	margin: 12px 0 0;
}

/* 媒介契約3形態の違い — Figma node 238:5201 / 2018:2（見出しフォント） */
.ipc-contract-types {
	background: #f6f6f4;
	/* Figma 238:5201 — 上余白 43px / 下余白 80px */
	padding: 43px 0 80px;
}

.ipc-contract-types__head {
	/* Figma: 見出し→intro の間隔 11px */
	margin-bottom: 11px;
}

.ipc-contract-types__en {
	margin: 0 0 11px;
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	line-height: 1.7;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
}

/* reveal.css の `.ipc-reveal__inner > :last-child { margin-bottom: 0 }` が
   en ラベル／intro の下余白を打ち消すため、reveal 内でも余白を保つ */
.ipc-contract-types .ipc-reveal__inner > .ipc-contract-types__en {
	margin-bottom: 11px;
}

.ipc-contract-types .ipc-reveal__inner > .ipc-contract-types__intro {
	/* Figma 238:5201 — intro → カード 74.8px（PC） */
	margin-bottom: 75px;
}

.ipc-contract-types__title {
	/* One phrase: 「媒介契約3形態の違い。」 — do not force each part onto its own line */
	display: block;
	margin: 0;
	font-family: var(--ipc-font-serif);
	font-weight: 300;
	color: var(--ipc-black);
	/* Figma 2018:2 — タイトル行は 64px の「3」基準で高さ 72px */
	white-space: nowrap;
	line-height: 72px;
	font-size: 0; /* span 間のインライン空白を除去（間隔は margin で制御） */
}

.ipc-contract-types__title-lead,
.ipc-contract-types__title-rest {
	display: inline-block;
	vertical-align: middle;
	font-size: 40px;
	line-height: 72px;
}

.ipc-contract-types__title-num {
	/* Figma 238:5255 — 「3」は 64px で強調。左右の余白は lead 側 3px / rest 側 16px */
	display: inline-block;
	vertical-align: middle;
	margin: 0 16px 0 3px;
	font-family: inherit;
	font-weight: inherit;
	font-size: 64px;
	line-height: 72px;
	letter-spacing: inherit;
}

.ipc-contract-types__intro {
	font-size: 15px;
	line-height: 1.85;
	letter-spacing: 1.8px;
	color: var(--ipc-text-sub);
	max-width: 849px;
	/* Figma: intro→カード の間隔 74.8px → 75px
	   （reveal 内では下の高特異度ルールが適用される） */
	margin: 0 0 75px;
}

.ipc-contract-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 376px));
	justify-content: center;
	gap: 16px;
}

.ipc-contract-card {
	position: relative;
	background: var(--ipc-white);
	border: 1px solid var(--ipc-border-card);
	/* Figma 238:5203 — カード高 322.14px のうち
	   上 28px / 注釈ボックス下端 → カード下端 13.88px → 14px */
	padding: 28px 24px 14px;
}

.ipc-contract-card--recommended {
	border: 2px solid var(--ipc-black);
	/* ボーダー 2px の分だけ下余白を詰め、3枚のカードを等身にする
	   （グリッドの stretch による 1〜3 枚目の 2px 引き伸ばしを防止） */
	padding-bottom: 12px;
}

.ipc-contract-card__badge {
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--ipc-black);
	color: var(--ipc-white);
	font-family: var(--ipc-font-mono);
	font-size: 9px;
	font-weight: 300;
	line-height: 1;
	letter-spacing: 1.8px;
	padding: 5px 14px;
	white-space: nowrap;
}

.ipc-contract-card__title {
	font-family: var(--ipc-font-serif);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 4.2px;
	border-bottom: 1px solid var(--ipc-border-soft);
	padding-bottom: 14px;
	/* Figma: タイトル下端 → 1行目 14px（dl の margin は相殺回避のため 0 に） */
	margin: 0 0 14px;
	color: var(--ipc-black);
}

.ipc-contract-card__lead {
	font-size: 14px;
	line-height: 1.75;
	letter-spacing: 0.4px;
	color: var(--ipc-text-sub);
	margin: 0 0 14px;
}

.ipc-contract-card dl {
	margin: 0;
}

.ipc-contract-card__row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	/* Figma 238:5206 — 行テキスト 18.7px / 行高 35.68px → padding 上下 8px */
	line-height: 18.7px;
	padding: 8px 0;
	border-bottom: 1px dashed var(--ipc-border-soft);
	margin: 0;
}

.ipc-contract-card__row dt {
	color: var(--ipc-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.45px;
	/* Figma 238:5207 — dt の行送り 15.3px */
	line-height: 15.3px;
}

.ipc-contract-card__row dd {
	margin: 0;
	font-family: var(--ipc-font-serif);
	font-weight: 600;
	color: var(--ipc-black);
	text-align: right;
}

.ipc-contract-card__note {
	font-size: 13px;
	line-height: 1.75;
	color: var(--ipc-text-sub);
	/* Figma: 最終行 → 注釈 37.87px → 38px */
	margin: 38px 0 0;
}

.ipc-contract-types__after {
	font-size: 15px;
	line-height: 1.85;
	letter-spacing: 1.8px;
	color: var(--ipc-text-sub);
	max-width: 849px;
	margin: 48px auto 0;
}

/* 売却にかかる費用の全体像 — Figma node 238:5257 */
.ipc-cost {
	overflow-x: auto;
	margin-top: 8px;
}

.ipc-cost-table {
	width: 100%;
	min-width: 640px;
	table-layout: fixed;
	border-collapse: collapse;
	background: var(--ipc-white);
	border: 1px solid var(--ipc-border-card);
}

.ipc-cost-table__col-item { width: 29%; }
.ipc-cost-table__col-amount { width: 20%; }
.ipc-cost-table__col-timing { width: 20%; }
.ipc-cost-table__col-note { width: 31%; }

.ipc-cost-table th,
.ipc-cost-table td {
	padding: 15px 18px;
	border-bottom: 1px solid #e6e3dd;
	font-size: 14px;
	text-align: left;
	vertical-align: middle;
}

.ipc-cost-table thead th {
	background: #f6f6f4;
	color: var(--ipc-text-muted);
	font-family: var(--ipc-font-mono);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 6px;
	text-transform: uppercase;
}

.ipc-cost-table tbody td:first-child {
	font-family: var(--ipc-font-serif);
	font-weight: 600;
	color: var(--ipc-black);
}

.ipc-cost-table tbody td:nth-child(2) {
	font-family: var(--ipc-font-serif);
	font-weight: 400;
	color: var(--ipc-black);
}

.ipc-cost-table__timing {
	font-family: var(--ipc-font-sans);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 1.3px;
	text-transform: uppercase;
	color: var(--ipc-gold);
}

.ipc-cost-table td.is-note {
	font-family: var(--ipc-font-serif);
	font-size: 13px;
	line-height: 1.6;
	color: var(--ipc-text-muted);
}

.ipc-cost-table tbody tr:last-child td {
	border-bottom: 0;
}

.ipc-cost-note {
	font-size: 14px;
	line-height: 1.25;
	color: var(--ipc-text-muted);
	margin-top: 24px;
}

/* =========================================================
 * === Privacy policy page (studio-wp-developer additions) ===
 * プライバシーポリシー：Figma記載の全文＋目次サイドバー＋
 * 収集情報テーブル／安全管理措置リスト／お問い合わせ窓口ボックス
 * ========================================================= */

.ipc-legal-layout {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 56px;
	align-items: start;
}

.ipc-legal-toc {
	position: sticky;
	top: 112px;
	width: 100%;
	min-width: 0;
}

/* .ipc-legal is the second grid item of .ipc-legal-layout. The base .ipc-legal
 * rule below sets `margin: 0 auto` for its non-grid use elsewhere, which makes
 * this grid item shrink-to-fit instead of stretching to the track — and
 * shrink-to-fit still floors at the item's min-content width, so the
 * .ipc-legal-table's internal `min-width: 480px` was forcing this whole
 * column — and the page — wider than the viewport on narrow screens instead
 * of being contained by the table's own `overflow-x: auto`. Forcing
 * width:100% + min-width:0 makes the item fill (and shrink with) the grid
 * track so the table scrolls internally instead. */
.ipc-legal-layout .ipc-legal {
	width: 100%;
	min-width: 0;
	margin: 0;
}

.ipc-legal-toc__label {
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
	margin: 0 0 16px;
}

.ipc-legal-toc__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--ipc-border-soft);
}

.ipc-legal-toc__list li { border-bottom: 1px solid var(--ipc-border-soft); }

.ipc-legal-toc__list a {
	display: block;
	padding: 10px 0;
	font-size: 13px;
	color: var(--ipc-text-sub);
}

.ipc-legal-toc__list a:hover { color: var(--ipc-gold); }

.ipc-legal-lead {
	font-size: 14px;
	color: var(--ipc-text-sub);
	line-height: 1.9;
	margin: 0 0 40px;
}

.ipc-legal-section {
	scroll-margin-top: 112px;
	padding-bottom: 36px;
	margin-bottom: 36px;
	border-bottom: 1px solid var(--ipc-border-soft);
}

.ipc-legal-section--last { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

.ipc-legal-section__num {
	display: block;
	font-family: var(--ipc-font-display);
	font-size: 13px;
	letter-spacing: 3px;
	color: var(--ipc-gold);
	margin: 0 0 12px;
}

.ipc-legal-section h2 {
	font-family: var(--ipc-font-serif);
	font-size: 22px;
	margin: 0 0 20px;
	border: none;
	padding: 0;
}

.ipc-legal-section p {
	font-size: 14px;
	line-height: 1.9;
	color: var(--ipc-text-sub);
	margin: 0 0 16px;
}

.ipc-legal-section ul.ipc-legal-list {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
}

.ipc-legal-section ul.ipc-legal-list li {
	font-size: 14px;
	color: var(--ipc-text-sub);
	line-height: 1.7;
	padding: 8px 0;
	border-bottom: 1px dashed var(--ipc-border-soft);
}

.ipc-legal-section ul.ipc-legal-list li::before { content: "– "; color: var(--ipc-gold); }

.ipc-legal-dl-list {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
}

.ipc-legal-dl-list li {
	font-size: 14px;
	color: var(--ipc-text-sub);
	line-height: 1.7;
	padding: 10px 0;
	border-bottom: 1px dashed var(--ipc-border-soft);
}

.ipc-legal-dl-list li strong {
	color: var(--ipc-black);
	font-weight: 600;
	margin-right: 4px;
}

.ipc-legal-table { overflow-x: auto; margin-bottom: 16px; }

.ipc-legal-table table {
	width: 100%;
	min-width: 480px;
	border-collapse: collapse;
}

.ipc-legal-table th, .ipc-legal-table td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--ipc-border-soft);
	font-size: 13px;
	text-align: left;
}

.ipc-legal-table thead th {
	background: var(--ipc-main);
	color: var(--ipc-white);
	font-weight: 400;
}

.ipc-legal-contact-box {
	border: 1px solid var(--ipc-border-card);
	padding: 24px 28px;
	margin-top: 16px;
}

.ipc-legal-contact-box__title {
	font-family: var(--ipc-font-serif);
	font-size: 16px;
	margin: 0 0 16px;
}

.ipc-legal-contact-box dl {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 10px 16px;
	margin: 0;
}

.ipc-legal-contact-box dt {
	font-size: 11px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
}

.ipc-legal-contact-box dd {
	font-size: 13px;
	color: var(--ipc-black);
	margin: 0;
}

.ipc-legal-dates {
	font-size: 12px;
	color: var(--ipc-text-muted);
	margin-top: 8px;
}

/* Responsive addendum for the new blocks above (max-width: 768px) */
@media (max-width: 768px) {
	.ipc-approach { grid-template-columns: 1fr; }
	.ipc-strength { grid-template-columns: 1fr; gap: 16px; }
	.ipc-strength__media { order: -1; aspect-ratio: 16 / 9; }
	.ipc-partners-grid { grid-template-columns: 1fr; }
	.ipc-overseas-grid { grid-template-columns: repeat(2, 1fr); }
	.ipc-flow-step__details { grid-template-columns: 1fr; }
	.ipc-contract-grid { grid-template-columns: 1fr; }
	.ipc-contract-types { padding: 40px 20px; }
	.ipc-legal-layout { grid-template-columns: 1fr; gap: 24px; }
	.ipc-legal-toc { position: static; }
	.ipc-legal-contact-box dl { grid-template-columns: 1fr; }
}

/* =========================================================
 * === Valuation / Contact pages (studio-wp-developer additions) ===
 * 無料査定・お問い合わせページ：Figmaで未実装だった以下を追加
 * (Our Promise/送信後の流れ/査定フォーム拡張/FAQ/ページ専用CTA、
 *  電話・メール・サロン導線/フォーム拡張/サロンアクセス)
 * ========================================================= */

.ipc-section-lead {
	font-size: 15px;
	line-height: 1.85;
	color: var(--ipc-text-sub);
	margin: 0 0 40px;
}

/* --- Valuation: 2カラム（Our Promise + 送信後の流れ / フォーム） --- */
.ipc-valuation-columns {
	display: grid;
	grid-template-columns: 1fr 1.15fr;
	gap: 40px;
	align-items: start;
}

.ipc-info-stack { display: grid; gap: 24px; }

.ipc-promise-box {
	padding: 28px;
	background: rgba(139, 111, 71, .05);
	border: 1px solid var(--ipc-gold);
}

.ipc-promise-box__label {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #5c4a30;
	margin: 0 0 16px;
}

.ipc-promise-box__list li {
	display: flex;
	gap: 10px;
	padding: 14px 0;
	border-bottom: 1px dashed var(--ipc-border-card);
	font-size: 14px;
	color: var(--ipc-black);
}

.ipc-promise-box__list li:last-child { border-bottom: 0; }
.ipc-promise-box__mark { color: var(--ipc-gold); flex-shrink: 0; }

.ipc-timeline-box {
	padding: 28px;
	background: var(--ipc-white);
	border: 1px solid var(--ipc-border-card);
}

.ipc-timeline-box__title {
	font-family: var(--ipc-font-serif);
	font-size: 16px;
	letter-spacing: 2px;
	padding-bottom: 16px;
	margin: 0 0 4px;
	border-bottom: 1px solid var(--ipc-border-card);
}

.ipc-timeline__item {
	padding: 16px 0;
	border-bottom: 1px dashed var(--ipc-border-soft);
}

.ipc-timeline__item:last-child { border-bottom: 0; }

.ipc-timeline__tag {
	display: block;
	font-size: 10px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--ipc-gold);
	margin-bottom: 4px;
}

.ipc-timeline__label {
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 4px;
}

.ipc-timeline__text {
	font-size: 11.5px;
	color: var(--ipc-text-muted);
	line-height: 1.6;
}

/* フォームカード（STEPラベル付き白カード） */
.ipc-form-card {
	background: var(--ipc-white);
	border: 1px solid var(--ipc-black);
	padding: 40px 36px;
}

.ipc-form-card__step {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-gold);
	margin: 0 0 14px;
}

.ipc-form-card__title {
	font-family: var(--ipc-font-serif);
	font-size: 24px;
	letter-spacing: 1.5px;
	padding-bottom: 18px;
	margin: 0 0 28px;
	border-bottom: 1px solid var(--ipc-border-card);
}

/* ラベル行（必須/任意）— Figma 2021:30
   label: Mincho 13/22.1 #1a1a1a
   flag: Gothic 9/15.3 tracking 1.35 #a4392f
   layout: space-between（CF7の <p> ラップにも耐える）
   ラベル行↔入力の gap は親 .ipc-form__group（Figma 2021:32 gap 10px） */
.ipc-form__label-row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 0;
	width: 100%;
	min-height: 19px;
	line-height: 0;
}

/* CF7 / wpautop が label+flag を <p> で包む場合（.wpcf7-form p の margin を上書き） */
.ipc-form__label-row > p,
.ipc-form.wpcf7-form .ipc-form__label-row > p {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	margin: 0;
	min-height: 19px;
	line-height: 0;
}

.ipc-form__label-row label,
.ipc-form__label-row > p > label,
.ipc-form.wpcf7-form .ipc-form__label-row label {
	display: block;
	flex: 0 1 auto;
	min-width: 0;
	margin: 0;
	font-family: var(--ipc-font-serif);
	font-size: 13px;
	font-weight: 600;
	line-height: 22.1px;
	letter-spacing: 0;
	color: var(--ipc-black, #1a1a1a);
}

.ipc-form__flag {
	display: block;
	flex: 0 0 auto;
	margin: 0 0 0 auto;
	font-family: var(--ipc-font-sans);
	font-size: 9px;
	font-weight: 600;
	line-height: 15.3px;
	letter-spacing: 1.35px;
	color: #a4392f;
}

.ipc-form__flag--required { color: #a4392f; }
.ipc-form__flag--optional { color: var(--ipc-text-muted, #6b6b6b); }

/* タブ型の選択肢（物件種別/間取り/お問い合わせ種別/連絡方法） */
.ipc-form__tabs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
}

.ipc-form__tabs--3 { grid-template-columns: repeat(3, 1fr); }

.ipc-form__tab { position: relative; }

.ipc-form__tab input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.ipc-form__tab span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 8px 6px;
	border: 1px solid var(--ipc-border-card);
	background: var(--ipc-white);
	font-size: 12px;
	text-align: center;
	line-height: 1.3;
}

.ipc-form__tab input:checked + span {
	background: var(--ipc-black);
	color: var(--ipc-white);
	border-color: var(--ipc-black);
}

.ipc-form__tab input:focus-visible + span {
	outline: 2px solid var(--ipc-accent);
	outline-offset: 2px;
}

.ipc-form__hint {
	font-size: 12px;
	color: #888;
	margin-top: 6px;
}

.ipc-form__group--stack > * + * { margin-top: 12px; }

/* 同意チェックボックス（枠付き・補足文つき） */
.ipc-form__consent {
	padding: 20px;
	border: 1px solid var(--ipc-border-card);
	margin-bottom: 24px;
}

.ipc-form__consent label {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-weight: 400;
}

.ipc-form__consent input[type="checkbox"] {
	margin-top: 4px;
	flex-shrink: 0;
}

.ipc-form__consent-text strong {
	display: block;
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 6px;
}

.ipc-form__consent-text span {
	display: block;
	font-size: 12px;
	color: var(--ipc-text-sub);
	line-height: 1.7;
}

/* --- FAQ --- */
.ipc-faq-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.ipc-faq-item {
	padding: 24px;
	background: var(--ipc-white);
	border: 1px solid var(--ipc-border-card);
}

.ipc-faq-item__q {
	display: flex;
	gap: 12px;
	align-items: baseline;
	font-family: var(--ipc-font-serif);
	font-weight: 700;
	font-size: 14px;
	margin: 0 0 12px;
}

.ipc-faq-item__q span {
	flex-shrink: 0;
	color: var(--ipc-gold);
	font-family: var(--ipc-font-display);
	font-size: 16px;
}

.ipc-faq-item__a {
	display: flex;
	gap: 12px;
	align-items: baseline;
	font-size: 12px;
	line-height: 1.85;
	color: var(--ipc-text-sub);
	margin: 0;
}

.ipc-faq-item__a span {
	flex-shrink: 0;
	color: var(--ipc-text-muted);
	font-family: var(--ipc-font-display);
	font-size: 14px;
}

/* --- ページ専用 FINAL CTA（後方互換: 旧 __headline クラス） --- */
.ipc-final-cta__headline {
	font-family: var(--ipc-font-serif);
	font-size: clamp(24px, 3.6vw, 40px);
	font-weight: 400;
	letter-spacing: 3px;
	margin: 0 0 16px;
}

/* --- Contact: 電話/メール/サロン導線 (Figma 238:5838) --- */
.ipc-contact-layout {
	display: grid;
	grid-template-columns: .85fr 1.15fr;
	gap: 40px;
	align-items: start;
}

.ipc-contact-info {
	display: grid;
	gap: 0;
}

.ipc-contact-block {
	padding-top: 32px;
}

.ipc-contact-block--phone,
.ipc-contact-block--email {
	padding-bottom: 32px;
	border-bottom: 1px solid var(--ipc-border-card);
}

.ipc-contact-block--email {
	border-bottom: 0;
	padding-bottom: 0;
}

.ipc-contact-block__label {
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: #5c4a30;
	margin: 0 0 14px;
}

.ipc-contact-block__value {
	font-family: var(--ipc-font-serif);
	color: var(--ipc-black);
	margin: 0;
}

.ipc-contact-block__value--phone {
	font-size: 42px;
	line-height: 42px;
	letter-spacing: 0.84px;
	margin-bottom: 20px;
}

.ipc-contact-block__value--email {
	font-size: 24px;
	line-height: 24px;
	letter-spacing: 0.48px;
	margin-bottom: 22px;
}

.ipc-contact-block__value--salon {
	font-size: 32px;
	line-height: 32px;
	letter-spacing: 0.48px;
	margin-bottom: 24px;
}

/* line-height on the <p> only grows the line box, not the inline <a>'s own
 * hit-test rect. Make the tel:/mailto: link itself the padded box instead. */
.ipc-contact-block__value a {
	display: inline-block;
	padding: 4px 0;
	margin: -4px 0;
	color: inherit;
	text-decoration: none;
}

.ipc-contact-block__table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 20px;
}

.ipc-contact-block__table th,
.ipc-contact-block__table td {
	padding: 8px 0;
	text-align: left;
	vertical-align: top;
	border: none;
}

.ipc-contact-block__table th {
	width: 115px;
	font-family: var(--ipc-font-sans);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 6px;
	color: var(--ipc-text-muted);
}

.ipc-contact-block__table td {
	font-family: var(--ipc-font-serif);
	font-size: 16px;
	font-weight: 600;
	line-height: 20.4px;
	letter-spacing: 4.48px;
	color: var(--ipc-black);
}

.ipc-contact-block__text {
	font-family: var(--ipc-font-noto);
	font-size: 14px;
	font-weight: 300;
	color: var(--ipc-text-sub);
	margin: 0;
}

.ipc-contact-block--phone .ipc-contact-block__text {
	line-height: 23px;
	letter-spacing: 1.96px;
}

.ipc-contact-block--email .ipc-contact-block__text {
	line-height: 24px;
	letter-spacing: 4.34px;
}

.ipc-contact-block--salon .ipc-contact-block__text {
	line-height: 28px;
	letter-spacing: 2.94px;
}

/* --- サロンアクセス --- */
.ipc-salon-lead {
	font-size: 15px;
	line-height: 1.9;
	color: var(--ipc-text-sub);
	max-width: 720px;
	margin: 12px 0 0;
}

.ipc-salon-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	margin-top: 32px;
}

.ipc-salon-details__row {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 16px;
	padding: 20px 0;
	border-bottom: 1px dashed var(--ipc-border-card);
}

.ipc-salon-details__term {
	font-family: 'JetBrains Mono', monospace;
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-text-muted);
}

.ipc-salon-details__desc {
	font-size: 14px;
	line-height: 1.7;
	color: var(--ipc-black);
}

.ipc-salon-details__desc strong {
	display: block;
	font-size: 15px;
	margin-bottom: 4px;
}

.ipc-salon-details__desc p { margin: 0 0 4px; }
.ipc-salon-details__desc p:last-child { margin-bottom: 0; }

.ipc-salon-cta { margin-top: 24px; }

.ipc-salon-map {
	position: relative;
	min-height: 360px;
	height: 100%;
	background: #eeece7;
	border: 1px solid var(--ipc-border-card);
	overflow: hidden;
}

.ipc-salon-map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.ipc-salon-map__pin {
	position: absolute;
	left: 16px;
	bottom: 16px;
	z-index: 1;
	padding: 10px 14px;
	background: var(--ipc-white);
	border: 1px solid var(--ipc-border-card);
	font-size: 11px;
	letter-spacing: 1px;
}

.ipc-salon-map-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 16px;
}

.ipc-salon-map-actions .ipc-btn {
	min-height: 40px;
	padding: 8px 20px;
	font-size: 11px;
	letter-spacing: 1.5px;
	background: var(--ipc-white);
	color: var(--ipc-black);
	border-color: var(--ipc-black);
}

/* Responsive addendum for the new blocks above (max-width: 1024px / 768px) */
@media (max-width: 1024px) {
	.ipc-valuation-columns,
	.ipc-contact-layout,
	.ipc-salon-layout {
		grid-template-columns: 1fr;
	}

	.ipc-faq-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
	.ipc-form__tabs { grid-template-columns: repeat(2, 1fr); }
	.ipc-promise-box,
	.ipc-timeline-box,
	.ipc-form-card { padding: 24px 20px; }
	.ipc-salon-details__row { grid-template-columns: 1fr; gap: 4px; }
}

/* === Property / Voice pages (archive-property / single-property / archive-voice / single-voice) === */

/* -- Shared: filter tabs, numbered section heads -- */
.ipc-filter-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 32px;
}

.ipc-filter-tabs__item {
	padding: 10px 18px;
	border: 1px solid var(--ipc-gray);
	font-size: 13px;
	letter-spacing: .5px;
	white-space: nowrap;
}

.ipc-filter-tabs__item.is-active {
	background: var(--ipc-main);
	border-color: var(--ipc-main);
	color: var(--ipc-white);
}

.ipc-related-section { margin-top: 72px; }

.ipc-related-section__label {
	font-family: var(--ipc-font-display);
	font-size: 16px;
	font-weight: 400;
	line-height: 23.8px;
	letter-spacing: 3.5px;
	text-transform: uppercase;
	color: var(--ipc-text-muted, #6b6b6b);
	margin-bottom: 8px;
}

.ipc-related-section__title {
	font-family: var(--ipc-font-serif);
	font-size: 40px;
	font-weight: 400;
	line-height: max(1.15em, 34.5px);
	letter-spacing: 5px;
	/* margin は reveal ラッパ側へ（overflow:clip 中は子の margin-bottom が消える） */
	margin: 0;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--ipc-black);
}

/* PC: 見出し下〜カードグリッドの余白（JS が title/label を .ipc-reveal で包む） */
.ipc-related-section > .ipc-reveal:has(.ipc-related-section__label) {
	margin-bottom: 8px;
}

.ipc-related-section > .ipc-reveal:has(.ipc-related-section__title) {
	margin-bottom: 40px;
}

/* reveal 未適用時（フォールバック） */
.ipc-related-section > .ipc-related-section__title {
	margin-bottom: 40px;
}

.ipc-archive-grid--related,
.ipc-voice-grid--related { margin-bottom: 0; }

/* -- Property search / sort bar -- */
.ipc-search-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: end;
	padding: 20px;
	margin-bottom: 24px;
	background: #fafafa;
	border: 1px solid var(--ipc-gray);
}

.ipc-search-bar__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1 1 160px;
}

.ipc-search-bar__field label {
	font-size: 12px;
	color: #888;
}

.ipc-search-bar__field select:not(.ipc-select__native),
.ipc-search-bar__field .ipc-select__trigger {
	height: 44px;
	padding: 0 18px;
	border: 1px solid var(--ipc-gray);
	background-color: var(--ipc-white);
	background-image: none;
	font-size: 14px;
	font-family: inherit;
}

.ipc-search-bar__submit {
	min-height: 44px;
	padding: 0 24px;
	flex-shrink: 0;
}

.ipc-archive-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 20px;
}

.ipc-archive-toolbar__count {
	font-family: var(--ipc-font-serif);
	font-size: 15px;
}

.ipc-archive-toolbar__count span { font-size: 13px; color: #888; }

/* Figma 238:3187 — sort is underline text, not a boxed select */
.ipc-archive-toolbar__sort .ipc-select {
	display: inline-block;
	width: auto;
}

.ipc-archive-toolbar__sort select:not(.ipc-select__native),
.ipc-archive-toolbar__sort .ipc-select__trigger {
	height: auto;
	min-height: 0;
	padding: 0 0 4px;
	border: none;
	border-bottom: 1px solid var(--ipc-black);
	border-radius: 0;
	background-color: transparent;
	background-image: none;
	font-size: 14px;
	font-family: var(--ipc-font-sans);
	line-height: 1.4;
	color: var(--ipc-black);
	width: auto;
}

.ipc-archive-toolbar__sort .ipc-select__trigger:focus,
.ipc-archive-toolbar__sort select:not(.ipc-select__native):focus {
	border-color: transparent;
	border-bottom-color: var(--ipc-black);
}

.ipc-archive-toolbar__sort .ipc-select__menu {
	min-width: 8em;
	right: 0;
	left: auto;
}

.ipc-archive-toolbar__sort .ipc-select__option {
	font-size: 13px;
	padding: 8px 12px;
}

/* -- Property archive card additions (district line / price) -- */
.ipc-archive-card__district {
	font-size: 12px;
	color: #999;
	margin-bottom: 2px;
}

.ipc-archive-card__price {
	font-family: var(--ipc-font-serif);
	font-size: 24px;
	font-weight: 600;
	color: var(--ipc-main);
	margin-top: 8px;
}

/* -- Property detail: full rebuild of layout -- */
.ipc-property-detail {
	display: block;
	margin-top: 24px;
}

.ipc-property-detail__gallery {
	margin-bottom: 32px;
}

.ipc-property-detail__gallery-top {
	display: grid;
	grid-template-columns: minmax(0, 797fr) minmax(0, 403fr);
	column-gap: 8px;
}

.ipc-property-detail__main {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--ipc-border-card, #d4d0c8);
	aspect-ratio: 797 / 488;
}

.ipc-property-detail__main img { width: 100%; height: 100%; object-fit: cover; }

.ipc-property-detail__gallery-trigger,
.ipc-property-detail__gallery-static {
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: zoom-in;
}

.ipc-property-detail__gallery-trigger img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ipc-property-detail__gallery-trigger:focus-visible {
	outline: 2px solid var(--ipc-main);
	outline-offset: 2px;
}

.ipc-property-detail__thumb .ipc-property-detail__gallery-trigger,
.ipc-property-detail__sub-item .ipc-property-detail__gallery-trigger {
	height: 100%;
}

.ipc-property-detail__main .ipc-badge {
	top: 16px;
	left: 16px;
	min-width: 84px;
	height: 29px;
	padding: 0 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--ipc-black);
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.ipc-property-detail__sub--side {
	display: grid;
	grid-template-rows: 1fr 1fr;
	gap: 8px;
}

.ipc-property-detail__sub-item {
	overflow: hidden;
	border: 1px solid var(--ipc-border-card, #d4d0c8);
	aspect-ratio: 403 / 240;
}
.ipc-property-detail__sub-item img { width: 100%; height: 100%; object-fit: cover; }

.ipc-property-detail__thumbs {
	display: grid;
	/* 固定10列だと TB 幅でサムネが細くなり、端に余白が目立つ */
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	gap: 17px;
	margin-top: 19px;
}

.ipc-property-detail__thumb {
	overflow: hidden;
	border: 1px solid var(--ipc-border-card, #d4d0c8);
	aspect-ratio: 104 / 86;
	background: #d9d9d9;
}

.ipc-property-detail__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ipc-property-detail__thumb:nth-child(n+11) {
	display: none;
}

/* Property gallery lightbox */
.ipc-gallery-lightbox[hidden] {
	display: none;
}

body.is-gallery-lightbox-open {
	overflow: hidden;
}

.ipc-gallery-lightbox {
	position: fixed;
	inset: 0;
	z-index: 1200;
}

.ipc-gallery-lightbox__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.88);
}

.ipc-gallery-lightbox__dialog {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100%;
	padding: 64px 72px;
}

.ipc-gallery-lightbox__figure {
	position: relative;
	width: min(100%, 1120px);
	margin: 0;
}

.ipc-gallery-lightbox__image {
	display: block;
	width: 100%;
	max-height: calc(100vh - 160px);
	margin: 0 auto;
	object-fit: contain;
	background: #111;
}

.ipc-gallery-lightbox__counter {
	margin: 16px 0 0;
	font-family: var(--ipc-font-mono);
	font-size: 12px;
	line-height: 17px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.72);
	text-align: center;
}

.ipc-gallery-lightbox__close,
.ipc-gallery-lightbox__nav {
	position: absolute;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.28);
	background: rgba(0, 0, 0, 0.35);
	color: var(--ipc-white);
	cursor: pointer;
}

.ipc-gallery-lightbox__close {
	top: 20px;
	right: 20px;
	width: 44px;
	height: 44px;
	font-size: 28px;
	line-height: 1;
}

.ipc-gallery-lightbox__nav {
	top: 50%;
	transform: translateY(-50%);
	width: 48px;
	height: 72px;
	font-size: 34px;
	line-height: 1;
}

.ipc-gallery-lightbox__nav--prev { left: 16px; }
.ipc-gallery-lightbox__nav--next { right: 16px; }

.ipc-gallery-lightbox__close:hover,
.ipc-gallery-lightbox__nav:hover {
	background: rgba(0, 0, 0, 0.55);
}

.ipc-gallery-lightbox__close:focus-visible,
.ipc-gallery-lightbox__nav:focus-visible {
	outline: 2px solid var(--ipc-white);
	outline-offset: 2px;
}

.ipc-gallery-lightbox__nav:disabled {
	opacity: 0.35;
	cursor: default;
}

.ipc-property-detail__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: 16px;
	min-height: 104px;
	padding-bottom: 20px;
	margin-bottom: 32px;
	border-bottom: 1px solid var(--ipc-black);
}

.ipc-property-detail__eyebrow {
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 2px;
	color: var(--ipc-text-muted, #6b6b6b);
	margin: 0 0 8px;
}

.ipc-property-detail__title {
	font-family: var(--ipc-font-noto);
	font-size: 36px;
	font-weight: 500;
	line-height: 46.8px;
	letter-spacing: 0.72px;
	margin: 0;
}

.ipc-property-detail__price { text-align: right; }

.ipc-property-detail__price-main {
	display: flex;
	align-items: baseline;
	justify-content: flex-end;
	gap: 6px;
	font-family: var(--ipc-font-serif);
	font-size: 56px;
	font-weight: 400;
	color: var(--ipc-black);
	line-height: 56px;
	margin: 0;
}

.ipc-property-detail__price-num {
	font-family: var(--ipc-font-serif);
	font-size: inherit;
	line-height: inherit;
}

.ipc-property-detail__price-unit {
	font-family: var(--ipc-font-sans);
	font-size: 18px;
	font-weight: 400;
	line-height: 18px;
	color: var(--ipc-text-sub, #3a3a3a);
}

.ipc-property-detail__price-sub {
	font-family: var(--ipc-font-sans);
	font-size: 10px;
	line-height: 17px;
	letter-spacing: 1px;
	color: var(--ipc-text-muted, #6b6b6b);
	margin: 4px 0 0;
	text-align: right;
}

.ipc-property-detail__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 477px);
	gap: 48px;
	margin-bottom: 40px;
}

.ipc-property-detail__heading {
	font-family: var(--ipc-font-noto);
	font-size: 22px;
	font-weight: 500;
	line-height: 33px;
	padding-bottom: 12px;
	margin: 0 0 28px;
	border-bottom: 1px solid var(--ipc-border-card, #d4d0c8);
}

.ipc-property-detail__content p {
	margin-bottom: 1.75em;
	font-family: var(--ipc-font-serif);
	font-size: 16px;
	line-height: 28px;
	letter-spacing: 1.28px;
	color: var(--ipc-text-sub, #3a3a3a);
}

.ipc-property-detail__section { margin-bottom: 40px; }

.ipc-property-detail__section-label {
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-text-muted, #6b6b6b);
	margin-bottom: 16px;
}

.single-property .ipc-spec-table {
	width: 100%;
	border: 1px solid var(--ipc-border-card, #d4d0c8);
	border-collapse: collapse;
	margin-bottom: 0;
}

.single-property .ipc-spec-table th,
.single-property .ipc-spec-table td {
	padding: 16px 20px;
	border-bottom: 1px solid var(--ipc-border-soft, #e6e3dd);
	font-size: 13px;
	line-height: 22.1px;
	vertical-align: middle;
	text-align: left;
}

.single-property .ipc-spec-table th {
	width: 140px;
	font-family: var(--ipc-font-sans);
	font-size: 10px;
	font-weight: 400;
	line-height: 17px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--ipc-text-muted, #6b6b6b);
	background: #f6f6f4;
}

.single-property .ipc-spec-table td {
	font-family: var(--ipc-font-serif);
	font-weight: 600;
	letter-spacing: 1.56px;
	color: var(--ipc-black);
}

.single-property .ipc-spec-table tr:last-child {
	background: rgba(139, 111, 71, 0.05);
}

.ipc-amenity-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 11px;
}

.ipc-amenity-chip {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 48px;
	padding: 12px 17px 12px 12px;
	border: 1px solid var(--ipc-border-card, #d4d0c8);
	background: var(--ipc-white);
	font-family: var(--ipc-font-noto);
	font-size: 13px;
	font-weight: 500;
	line-height: 22.1px;
}

.ipc-amenity-chip__mark {
	font-size: 20px;
	line-height: 1;
	color: var(--ipc-gold, #8b6f47);
	font-weight: 400;
}

.ipc-amenity-chip.is-unavailable { color: #aaa; }
.ipc-amenity-chip.is-unavailable .ipc-amenity-chip__mark { color: var(--ipc-gold, #8b6f47); }

.ipc-property-map {
	position: relative;
	width: 100%;
	height: 360px;
	border: 1px solid var(--ipc-border-card, #d4d0c8);
	overflow: hidden;
}

.ipc-property-map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.ipc-property-detail__address {
	margin-top: 16px;
	font-family: var(--ipc-font-sans);
	font-size: 16px;
	line-height: 25.5px;
	letter-spacing: 1.44px;
	color: var(--ipc-black);
}

.ipc-property-inquiry {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 540px);
	align-items: start;
	gap: 32px;
	padding: 40px;
	background: var(--ipc-main);
	color: var(--ipc-white);
}

.ipc-property-inquiry__label {
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	font-weight: 300;
	line-height: 17px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.6);
	margin-bottom: 12px;
}

.ipc-property-inquiry__title {
	font-family: var(--ipc-font-serif);
	font-size: 32px;
	font-weight: 400;
	line-height: 38.4px;
	letter-spacing: 3.52px;
	margin: 0 0 16px;
}

.ipc-property-inquiry__desc {
	font-family: var(--ipc-font-serif);
	font-size: 14px;
	line-height: 27px;
	letter-spacing: 1.26px;
	color: rgba(255, 255, 255, 0.8);
}

.ipc-property-inquiry__actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
}

.ipc-property-inquiry__actions .ipc-btn {
	min-height: 58px;
	padding: 16px 32px;
	font-family: var(--ipc-font-mono);
	font-size: 16px;
	font-weight: 300;
	line-height: 20.4px;
	letter-spacing: 2.4px;
	text-transform: uppercase;
	justify-content: flex-start;
}

.ipc-btn--light {
	background: var(--ipc-white);
	color: var(--ipc-main);
	border-color: var(--ipc-white);
	justify-content: space-between;
}

.ipc-btn--outline-light {
	background: transparent;
	color: var(--ipc-white);
	border-color: rgba(255,255,255,.5);
	justify-content: space-between;
}

/* -- Voice detail — Figma 238:6282 (PC) / 2001:596 (SP) -- */
.ipc-voice-detail {
	margin: 0 auto;
	text-align: center;
}

.ipc-voice-detail__header {
	padding: 24px 0 32px;
	border-bottom: 1px solid var(--ipc-border-card, #d4d0c8);
}

.ipc-voice-detail__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 163px;
	height: 27px;
	padding: 0;
	margin-bottom: 32px;
	border: 1px solid var(--ipc-gold, #8b6f47);
	color: var(--ipc-gold, #8b6f47);
	font-family: var(--ipc-font-sans);
	font-weight: 600;
	font-size: 14px;
	line-height: 17px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

.ipc-voice-detail__title {
	font-family: var(--ipc-font-serif);
	font-size: 40px;
	font-weight: 600;
	line-height: 64px;
	letter-spacing: 7px;
	margin: 0 0 24px;
}

.ipc-voice-detail__byline {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 24px;
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	line-height: 17px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--ipc-text-muted, #6b6b6b);
	margin: 0;
}

.ipc-voice-detail__hero {
	margin: 48px 0 40px;
	border: 1px solid var(--ipc-border-card, #d4d0c8);
	overflow: hidden;
}

.ipc-voice-detail__hero img {
	width: 100%;
	height: auto;
	aspect-ratio: 1192 / 537;
	object-fit: cover;
}

.ipc-voice-detail__content {
	max-width: 780px;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
	font-family: var(--ipc-font-serif);
	font-size: 15px;
	line-height: 31.5px;
	color: var(--ipc-black);
}

.ipc-voice-detail__content > p:first-of-type {
	margin: 0 0 48px;
	padding: 32px 0;
	border-top: 1px solid var(--ipc-black);
	border-bottom: 1px solid var(--ipc-black);
	font-size: 20px;
	line-height: 41px;
	letter-spacing: 2px;
	text-align: center;
}

.ipc-voice-detail__content h2 {
	font-family: var(--ipc-font-didot);
	font-size: 14px;
	font-weight: 400;
	line-height: 23.8px;
	letter-spacing: 4.2px;
	text-transform: uppercase;
	color: var(--ipc-gold, #8b6f47);
	text-align: left;
	margin: 48px 0 0;
}

.ipc-voice-detail__content h3 {
	font-family: var(--ipc-font-serif);
	font-size: 24px;
	font-weight: 400;
	line-height: 36px;
	letter-spacing: 3.36px;
	text-align: left;
	margin: 0 0 24px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--ipc-border-card, #d4d0c8);
}

.ipc-voice-detail__content p {
	margin: 0 0 24px;
}

.ipc-voice-detail__content blockquote {
	margin: 40px 0;
	padding: 32px 0;
	border-top: 1px dashed var(--ipc-border-card, #d4d0c8);
	border-bottom: 1px dashed var(--ipc-border-card, #d4d0c8);
	font-family: var(--ipc-font-serif);
	font-size: 32px;
	font-weight: 400;
	line-height: 44.8px;
	letter-spacing: 0.64px;
	text-align: center;
}

.ipc-voice-detail__content .ipc-qa-q {
	margin: 32px 0 16px;
	padding: 18px;
	background: rgba(139, 111, 71, 0.04);
	border-left: 3px solid var(--ipc-gold, #8b6f47);
	font-size: 15px;
	font-weight: 600;
	line-height: 31.5px;
	letter-spacing: 2.4px;
}

.ipc-voice-detail__content .ipc-qa-q strong {
	color: inherit;
	margin-right: 4px;
}

.ipc-voice-property-embed {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
	gap: 32px;
	margin: 40px 0;
	padding: 40px 32px;
	border: 1px solid var(--ipc-border-card, #d4d0c8);
	background: var(--ipc-white);
}

.ipc-voice-property-embed__image {
	border: 1px solid var(--ipc-border-card, #d4d0c8);
	overflow: hidden;
	aspect-ratio: 373 / 200;
}

.ipc-voice-property-embed__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ipc-voice-property-embed__label {
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	line-height: 17px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--ipc-text-muted, #6b6b6b);
	margin-bottom: 8px;
}

.ipc-voice-property-embed__title {
	font-family: var(--ipc-font-serif);
	font-size: 18px;
	font-weight: 600;
	line-height: 30.6px;
	margin-bottom: 16px;
}

.ipc-voice-property-embed__specs {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ipc-voice-property-embed__specs li {
	font-size: 12px;
	line-height: 24px;
	color: var(--ipc-text-sub, #3a3a3a);
	margin-bottom: 0;
}

.ipc-voice-property-embed__specs span {
	color: inherit;
}

.ipc-voice-detail__cta {
	max-width: 780px;
	margin: 48px auto 0;
	text-align: center;
}

.ipc-voice-detail__cta .ipc-btn {
	min-width: 214px;
	min-height: 49px;
	padding: 16px 24px;
	font-family: var(--ipc-font-mono);
	font-size: 14px;
	font-weight: 300;
	line-height: 18.7px;
	text-transform: uppercase;
	border-color: var(--ipc-black);
	color: var(--ipc-black);
}

.single-voice .ipc-related-section {
	margin-top: 72px;
	max-width: none;
}

.single-voice .ipc-related-section__head {
	position: relative;
	padding: 0 0 24px 77px;
	margin-bottom: 40px;
	border-bottom: 1px solid var(--ipc-black);
	min-height: 101px;
}

.single-voice .ipc-related-section__head::before {
	content: "—";
	position: absolute;
	left: 0;
	top: 22px;
	font-family: var(--ipc-font-didot);
	font-size: 64px;
	font-weight: 300;
	line-height: 57.6px;
	color: var(--ipc-gold, #8b6f47);
}

.single-voice .ipc-related-section__label {
	font-size: 14px;
	letter-spacing: 3.5px;
	margin-bottom: 12px;
}

.single-voice .ipc-related-section__title {
	font-size: 42px;
	line-height: 48.3px;
	letter-spacing: -0.42px;
	margin: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.single-voice .ipc-voice-grid--related {
	column-gap: 83px;
	padding: 0;
}

.single-voice .ipc-voice-card--related {
	align-items: flex-start;
	text-align: left;
	padding: 22px;
	min-height: 138px;
}

.single-voice .ipc-voice-card--related .ipc-voice-card__tag {
	border: none;
	padding: 0;
	margin: 0 0 10px;
	font-family: "Hiragino Maru Gothic ProN", "Hiragino Maru Gothic Pro", var(--ipc-font-sans);
	font-weight: 400;
	font-size: 9px;
	letter-spacing: 1.35px;
}

.single-voice .ipc-voice-card--related .ipc-voice-card__label {
	font-size: 14px;
	line-height: 21px;
	letter-spacing: 1.96px;
	margin: 0;
}

.single-voice .ipc-voice-card--related .ipc-voice-card__meta {
	margin-top: auto;
	padding-top: 10px;
	border-top: 1px solid var(--ipc-border-soft, #e6e3dd);
	justify-content: flex-start;
}

.single-voice .ipc-voice-card--related .ipc-voice-card__property {
	font-family: var(--ipc-font-mono);
	font-size: 10px;
	letter-spacing: 1px;
}

.single-voice .ipc-voice-card--related .ipc-voice-card__read {
	display: none;
}

/* single-property: 関連する物件（Figma 238:3906） */
.single-property .ipc-related-section__head {
	position: relative;
	padding: 0 0 24px 77px;
	margin-bottom: 40px;
	border-bottom: 1px solid var(--ipc-black);
	min-height: 101px;
}

.single-property .ipc-related-section__head::before {
	content: "—";
	position: absolute;
	left: 0;
	top: 22px;
	font-family: var(--ipc-font-didot);
	font-size: 64px;
	font-weight: 300;
	line-height: 57.6px;
	color: var(--ipc-gold, #8b6f47);
}

.single-property .ipc-related-section__title {
	padding-bottom: 0;
	border-bottom: none;
}

/* 関連カードのボックス化（Figma 238:3911 等: 枠線 #d4d0c8・画像160px） */
.single-property .ipc-archive-grid--related .ipc-archive-card {
	border: 1px solid #d4d0c8;
	background: var(--ipc-white);
	overflow: hidden;
}

.single-property .ipc-archive-grid--related .ipc-archive-card__image {
	aspect-ratio: auto;
	height: 160px;
	border: none;
	border-bottom: 1px solid #d4d0c8;
	margin-bottom: 0;
}

.single-property .ipc-archive-grid--related .ipc-archive-card__district {
	padding: 16px 20px 0;
	font-family: var(--ipc-font-mono);
	font-size: 9px;
	font-weight: 300;
	letter-spacing: 1.35px;
	text-transform: uppercase;
	color: var(--ipc-text-muted, #6b6b6b);
}

.single-property .ipc-archive-grid--related .ipc-archive-card__title {
	padding: 0 20px;
	margin: 8px 0 0;
	font-family: var(--ipc-font-noto);
	font-size: 15px;
	font-weight: 500;
	line-height: 25.5px;
	letter-spacing: 0.6px;
}

.single-property .ipc-archive-grid--related .ipc-archive-card__price {
	display: flex;
	align-items: baseline;
	gap: 6px;
	margin: 0 20px;
	padding: 12px 0 20px;
	border-top: 1px solid var(--ipc-border-card, #e6e3dd);
	font-family: var(--ipc-font-serif);
	font-size: 24px;
	line-height: 40.8px;
	color: var(--ipc-black);
}

.single-property .ipc-archive-grid--related .ipc-archive-card__price-unit {
	font-size: 12px;
	line-height: 20.4px;
	color: #3a3a3a;
}

.ipc-voice-card__tag {
	display: inline-block;
	padding: 4px 12px;
	margin-bottom: 12px;
	border: 1px solid #b08d57;
	color: #b08d57;
	font-size: 11px;
	letter-spacing: .5px;
}

.ipc-voice-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.ipc-voice-card__read {
	font-size: 12px;
	font-weight: 700;
	color: var(--ipc-accent);
	white-space: nowrap;
}

/* -- Responsive: 1024 / 768 / 480 -- */
@media (max-width: 1024px) {
	.ipc-archive-grid,
	.ipc-voice-grid { grid-template-columns: repeat(2, 1fr); }
	.ipc-property-detail__body { grid-template-columns: 1fr; }
	.ipc-amenity-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
	.ipc-search-bar { flex-direction: column; align-items: stretch; }
	.ipc-search-bar__field { flex: 1 1 auto; }
	.ipc-trust-bar { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.ipc-archive-grid,
	.ipc-voice-grid,
	.ipc-voice-grid--related,
	.ipc-archive-grid--related { grid-template-columns: 1fr; }
	.ipc-property-detail__gallery-top { grid-template-columns: 1fr; }
	.ipc-property-detail__head { flex-direction: column; align-items: flex-start; }
	.ipc-property-detail__price { text-align: left; }
	.ipc-property-detail__price-sub { text-align: left; }
	.ipc-amenity-grid { grid-template-columns: repeat(2, 1fr); }
	.ipc-property-inquiry { grid-template-columns: 1fr; }
	.ipc-property-inquiry__actions { width: 100%; }
	.ipc-voice-property-embed { grid-template-columns: 1fr; }
	.ipc-voice-detail__title {
		font-size: 28px;
		line-height: 1.35;
		letter-spacing: 2px;
	}
	.ipc-voice-detail__byline { flex-direction: column; gap: 6px; }
	.ipc-voice-detail__hero img { aspect-ratio: 342 / 350; }
	.ipc-voice-detail__content > p:first-of-type {
		font-size: 16px;
		line-height: 1.85;
		padding: 24px 0;
	}
	.ipc-voice-detail__content blockquote {
		font-size: 24px;
		line-height: 1.5;
	}
	.single-voice .ipc-related-section__title {
		font-size: 26px;
		line-height: 1.35;
	}
	.single-voice .ipc-related-section__head {
		padding-left: 48px;
		min-height: auto;
		margin-bottom: 24px;
	}
	.single-voice .ipc-related-section__head::before {
		font-size: 40px;
		line-height: 1;
		top: 4px;
	}
	.single-property .ipc-related-section__head {
		padding-left: 48px;
		min-height: auto;
		margin-bottom: 24px;
	}
	.single-property .ipc-related-section__head::before {
		font-size: 40px;
		line-height: 1;
		top: 4px;
	}
	.single-voice .ipc-voice-grid--related {
		column-gap: var(--voice-archive-grid-gap-x);
	}
	.ipc-archive-toolbar { flex-direction: column; align-items: flex-start; gap: 12px; }
}

/* === Front page (TOP) — pixel-check drift fixes, 2026-08-01 === */
/* Design (Figma) measures a tighter section-head gap on TOP than the shared
   .ipc-section-head default (48px); scope the reduction to TOP sections only
   so page-contact.php / page-valuation.php keep their existing spacing. */
.ipc-properties .ipc-section-head,
.ipc-voices .ipc-section-head,
.ipc-chart .ipc-section-head {
	margin-bottom: 36px;
}

/* Voices banner — Figma node 238:351 "Paragraph+HorizontalBorder", sits between the
   property gallery and the お客様の声 grid. Was missing entirely from the first pass. */
.ipc-voices-banner { padding: 56px 0 0; }

.ipc-voices-banner__photo {
	position: relative;
	aspect-ratio: 1194 / 299;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.ipc-voices-banner__copy {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	text-align: left;
}

.ipc-voices-banner__photo-media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.ipc-voices-banner__eyebrow {
	position: relative;
	font-family: var(--ipc-font-display);
	font-size: 13px;
	letter-spacing: 2px;
	color: var(--ipc-gray-dark);
	text-align: left;
	margin: 0 0 12px;
}

.ipc-voices-banner__photo img {
	position: absolute;
	width: 100.08%;
	height: 234.45%;
	left: -0.12%;
	top: -117.37%;
	max-width: none;
	opacity: .83;
}

.ipc-voices-banner__title {
	position: relative;
	font-family: var(--ipc-font-serif);
	font-size: clamp(22px, 3vw, 42px);
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: 10px;
	color: var(--ipc-main);
	margin: 0;
	text-align: left;
}

.ipc-voices-banner__title-line {
	display: inline;
}

.ipc-voices-banner__title-line + .ipc-voices-banner__title-line::before {
	content: " ";
}

@media (min-width: 769px) {
	.ipc-voices-banner__title-line {
		display: inline;
	}
}

@media (max-width: 900px) {
	.ipc-intro__row { flex-direction: column; align-items: stretch; gap: 32px; }
	.ipc-intro__text { max-width: none; }
	.ipc-intro__image { width: 100%; max-width: none; margin-top: 0; }
}

@media (max-width: 480px) {
	.ipc-amenity-grid { grid-template-columns: 1fr 1fr; }
	.ipc-voice-detail__badge { font-size: 12px; padding: 6px 14px; width: auto; height: auto; }

	.ipc-voice-detail__title {
		font-size: 28px;
		line-height: 1.35;
		letter-spacing: 2px;
	}

	.ipc-voice-detail__byline {
		flex-direction: column;
		gap: 6px;
	}

	.ipc-voice-detail__hero img {
		aspect-ratio: 342 / 350;
	}

	.ipc-voice-detail__content > p:first-of-type {
		font-size: 16px;
		line-height: 1.85;
		padding: 24px 0;
	}

	.ipc-voice-detail__content h3 {
		font-size: 22px;
		letter-spacing: 2px;
	}

	.ipc-voice-detail__content blockquote {
		font-size: 24px;
		line-height: 1.5;
	}

	.ipc-voice-property-embed {
		grid-template-columns: 1fr;
		padding: 24px;
	}

	.single-voice .ipc-related-section__title {
		font-size: 26px;
		line-height: 1.35;
	}
}

/* =========================================================
 * === Valuation / Contact: CF7フォーム対応の追記 (studio-wp-developer) ===
 * Contact Form 7導入に伴い、CF7が出力するマークアップ（.wpcf7-form-control等）
 * を静的フォールバックと見た目が揃うようスタイリング。
 * ========================================================= */

.ipc-salon-map__pin {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.ipc-salon-map__pin svg { flex-shrink: 0; color: var(--ipc-black); }

/* CF7が付与する .ipc-form(html_class指定) 配下のレイアウト */
.ipc-form.wpcf7-form p { margin: 0 0 24px; }
.ipc-form.wpcf7-form .ipc-form__label-row > p { margin: 0; }
.ipc-form.wpcf7-form p:last-of-type { margin-bottom: 0; }
.ipc-form.wpcf7-form label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 8px; }
.ipc-form.wpcf7-form .ipc-form__label-row label,
.ipc-form.wpcf7-form .ipc-form__label-row > p > label {
	display: block;
	margin-bottom: 0;
	font-weight: 600;
}

.ipc-form .wpcf7-form-control-wrap { display: block; }
.ipc-form .wpcf7-not-valid-tip { display: block; font-size: 12px; color: #a4392f; margin-top: 6px; }
.ipc-form .wpcf7-response-output {
	margin: 24px 0 0;
	padding: 16px 18px;
	border: 1px solid var(--ipc-border-card);
	font-size: 13px;
	line-height: 1.7;
}
.ipc-form.invalid .wpcf7-response-output,
.ipc-form.failed .wpcf7-response-output,
.ipc-form.aborted .wpcf7-response-output,
.ipc-form.spam .wpcf7-response-output { border-color: #a4392f; color: #a4392f; }
.ipc-form.sent .wpcf7-response-output { border-color: var(--ipc-accent); color: var(--ipc-black); }

/* タブ型ラジオ（CF7の[radio class:ipc-cf7-tabs]用） */
.wpcf7-form-control.ipc-cf7-tabs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
}

.wpcf7-form-control.ipc-cf7-tabs.ipc-cf7-tabs--3 { grid-template-columns: repeat(3, 1fr); }

.wpcf7-form-control.ipc-cf7-tabs .wpcf7-list-item {
	margin: 0;
	position: relative;
}

.wpcf7-form-control.ipc-cf7-tabs .wpcf7-list-item label {
	display: block;
	margin: 0;
	font-weight: 400;
}

.wpcf7-form-control.ipc-cf7-tabs input[type="radio"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.wpcf7-form-control.ipc-cf7-tabs .wpcf7-list-item-label {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 8px 6px;
	border: 1px solid var(--ipc-border-card);
	background: var(--ipc-white);
	font-size: 12px;
	text-align: center;
	line-height: 1.3;
}

.wpcf7-form-control.ipc-cf7-tabs input[type="radio"]:checked + .wpcf7-list-item-label {
	background: var(--ipc-black);
	color: var(--ipc-white);
	border-color: var(--ipc-black);
}

.wpcf7-form-control.ipc-cf7-tabs input[type="radio"]:focus-visible + .wpcf7-list-item-label {
	outline: 2px solid var(--ipc-accent);
	outline-offset: 2px;
}

/* 単独チェックボックス（[checkbox class:ipc-cf7-checkbox]） */
.wpcf7-form-control.ipc-cf7-checkbox .wpcf7-list-item { margin: 0; }
.wpcf7-form-control.ipc-cf7-checkbox label {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 14px;
	font-weight: 400;
}

/* 同意チェックボックス（[acceptance]。CF7はacceptanceのclassオプションを<input>側に
   付与する挙動のため、CF7標準の .wpcf7-acceptance クラスをセレクタに使う） */
.wpcf7-form-control.wpcf7-acceptance {
	display: block;
	padding: 20px;
	border: 1px solid var(--ipc-border-card);
}

.wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item { margin: 0; }

.wpcf7-form-control.wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 13px;
	font-weight: 400;
	color: var(--ipc-text-sub);
}

.wpcf7-form-control.wpcf7-acceptance input[type="checkbox"] { margin-top: 3px; flex-shrink: 0; }

/* CF7送信ボタン（[submit class:ipc-btn class:ipc-btn--primary class:ipc-btn--submit]） */
.ipc-form input.ipc-btn--submit[type="submit"] {
	width: 100%;
	max-width: 540px;
	margin-top: 16px;
	border-radius: 0;
}

@media (max-width: 768px) {
	.wpcf7-form-control.ipc-cf7-tabs { grid-template-columns: repeat(2, 1fr); }
}

/* Voice archive styles → assets/css/voice-archive.css */

/* === Property archive PC — Figma 238:6275 / 03_property_list_pc === */
@media (min-width: 769px) {
	body:not(.home) .ipc-breadcrumb {
		min-height: 53px;
	}

	body:not(.home) .ipc-breadcrumb__list {
		font-family: var(--ipc-font-mono);
		font-size: 10px;
		letter-spacing: 2px;
		text-transform: uppercase;
		color: var(--ipc-text-muted, #6b6b6b);
	}

	body:not(.home) .ipc-breadcrumb__item:last-child {
		color: var(--ipc-black);
	}

	.post-type-archive-property .ipc-page-hero,
	.tax-property_tag .ipc-page-hero {
		padding: 48px 0 48px;
		background: var(--ipc-white);
	}

	.post-type-archive-property .ipc-page-hero__label,
	.tax-property_tag .ipc-page-hero__label {
		font-family: var(--ipc-font-mono);
		font-size: 11px;
		font-weight: 300;
		letter-spacing: 3.3px;
		margin-bottom: 28px;
		color: #5c4a30;
	}

	.post-type-archive-property .ipc-page-hero__title,
	.tax-property_tag .ipc-page-hero__title {
		font-size: 64px;
		line-height: 77px;
		letter-spacing: 4px;
		margin-bottom: 28px;
	}

	.post-type-archive-property .ipc-page-hero__title-line,
	.tax-property_tag .ipc-page-hero__title-line {
		display: block;
	}

	.post-type-archive-property .ipc-page-hero__title-line--muted,
	.tax-property_tag .ipc-page-hero__title-line--muted {
		color: #3a3a3a;
	}

	.post-type-archive-property .ipc-page-hero__desc,
	.tax-property_tag .ipc-page-hero__desc {
		font-family: var(--ipc-font-noto);
		font-size: 24px;
		font-weight: 300;
		line-height: 36px;
		letter-spacing: 7.2px;
		color: #3a3a3a;
		max-width: 772px;
	}

	.post-type-archive-property .ipc-trust-bar,
	.tax-property_tag .ipc-trust-bar {
		grid-template-columns: repeat(4, 1fr);
		gap: 0;
		margin-bottom: 48px;
		border-top: 1px solid #d4d0c8;
		border-bottom: 1px solid #d4d0c8;
		border-left: none;
	}

	.post-type-archive-property .ipc-trust-bar__item,
	.tax-property_tag .ipc-trust-bar__item {
		padding: 33px 16px 24px;
		border-right: 1px solid #d4d0c8;
		border-bottom: none;
		border-top: none;
		border-left: none;
		text-align: center;
	}

	.post-type-archive-property .ipc-trust-bar__item:last-child,
	.tax-property_tag .ipc-trust-bar__item:last-child {
		border-right: none;
	}

	.post-type-archive-property .ipc-trust-bar__unit,
	.tax-property_tag .ipc-trust-bar__unit {
		font-family: var(--ipc-font-display);
		font-size: 14px;
		font-weight: 300;
		color: #3a3a3a;
	}

	.post-type-archive-property .ipc-trust-bar__item p,
	.tax-property_tag .ipc-trust-bar__item p {
		margin: 8px 0 0;
		font-family: var(--ipc-font-sans);
		font-size: 14px;
		font-weight: 400;
		letter-spacing: 1.35px;
		text-transform: none;
		color: #6b6b6b;
	}

	.post-type-archive-property .ipc-search-bar,
	.tax-property_tag .ipc-search-bar {
		padding: 24px;
		margin-bottom: 32px;
		background: var(--ipc-white);
		border: 1px solid #d4d0c8;
		align-items: end;
	}

	.post-type-archive-property .ipc-search-bar__field label,
	.tax-property_tag .ipc-search-bar__field label {
		font-family: var(--ipc-font-sans);
		font-size: 12px;
		font-weight: 400;
		letter-spacing: 1.5px;
		text-transform: none;
		color: #6b6b6b;
	}

	/* Figma 238:3156 Options — h43, border #d4d0c8, Mincho 13/1.43, pad-left 18, NO chevron */
	.post-type-archive-property .ipc-search-bar__field select:not(.ipc-select__native),
	.tax-property_tag .ipc-search-bar__field select:not(.ipc-select__native),
	.post-type-archive-property .ipc-search-bar__field .ipc-select__trigger,
	.tax-property_tag .ipc-search-bar__field .ipc-select__trigger {
		height: 43px;
		padding: 0 18px;
		font-family: var(--ipc-font-serif);
		font-size: 13px;
		letter-spacing: 1.43px;
		color: var(--ipc-black);
		border-color: #d4d0c8;
		background-color: var(--ipc-white);
		background-image: none;
	}

	.post-type-archive-property .ipc-search-bar__field .ipc-select__option,
	.tax-property_tag .ipc-search-bar__field .ipc-select__option {
		font-family: var(--ipc-font-serif);
		font-size: 13px;
		letter-spacing: 1.43px;
	}

	.post-type-archive-property .ipc-search-bar__submit,
	.tax-property_tag .ipc-search-bar__submit {
		min-height: 49px;
		padding: 0 20px;
		background: var(--ipc-black);
		border-color: var(--ipc-black);
		font-family: var(--ipc-font-sans);
		font-size: 11px;
		font-weight: 400;
		letter-spacing: 2.2px;
		text-transform: uppercase;
	}

	.post-type-archive-property .ipc-filter-tabs__item,
	.tax-property_tag .ipc-filter-tabs__item {
		padding: 11px 15px;
		font-family: var(--ipc-font-sans);
		font-size: 11px;
		font-weight: 400;
		letter-spacing: 0.55px;
		text-transform: none;
		background: var(--ipc-white);
		border-color: #d4d0c8;
		color: #3a3a3a;
	}

	.post-type-archive-property .ipc-filter-tabs__item.is-active,
	.tax-property_tag .ipc-filter-tabs__item.is-active {
		background: var(--ipc-black);
		border-color: var(--ipc-black);
		color: var(--ipc-white);
	}

	.post-type-archive-property .ipc-archive-toolbar__count,
	.tax-property_tag .ipc-archive-toolbar__count {
		font-family: var(--ipc-font-didot);
		font-size: 36px;
		line-height: 1;
	}

	.post-type-archive-property .ipc-archive-toolbar__count span,
	.tax-property_tag .ipc-archive-toolbar__count span {
		font-family: var(--ipc-font-sans);
		font-size: 14px;
		color: #3a3a3a;
	}

	.post-type-archive-property .ipc-archive-grid,
	.tax-property_tag .ipc-archive-grid {
		gap: 24px 24px;
	}

	.post-type-archive-property .ipc-archive-card,
	.tax-property_tag .ipc-archive-card {
		border: 1px solid #d4d0c8;
		background: var(--ipc-white);
		padding: 0 0 0;
		overflow: hidden;
	}

	.post-type-archive-property .ipc-archive-card__image,
	.tax-property_tag .ipc-archive-card__image {
		aspect-ratio: 379 / 225;
		margin-bottom: 0;
		border: none;
		border-bottom: 1px solid #d4d0c8;
	}

	.post-type-archive-property .ipc-archive-card__image .ipc-badge,
	.tax-property_tag .ipc-archive-card__image .ipc-badge {
		top: 12px;
		left: 12px;
		padding: 6px 10px;
		font-family: var(--ipc-font-mono);
		font-size: 9px;
		font-weight: 300;
		letter-spacing: 1.35px;
		text-transform: uppercase;
		background: var(--ipc-black);
		border: none;
		color: var(--ipc-white);
	}

	.post-type-archive-property .ipc-archive-card__district,
	.tax-property_tag .ipc-archive-card__district {
		margin: 0;
		padding: 15px 22px 0;
		font-family: var(--ipc-font-sans);
		font-size: 10px;
		letter-spacing: 1.5px;
		text-transform: uppercase;
		color: #6b6b6b;
	}

	.post-type-archive-property .ipc-archive-card__title,
	.tax-property_tag .ipc-archive-card__title {
		margin: 19px 22px 0;
		padding: 0;
		font-family: var(--ipc-font-noto);
		font-size: 17px;
		font-weight: 500;
		line-height: 1.4;
	}

	.post-type-archive-property .ipc-archive-card__meta,
	.tax-property_tag .ipc-archive-card__meta {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 24px;
		padding: 4px 0 0;
		margin: 2px 22px 0;
		border-top: 1px solid #e6e3dd;
	}

	.post-type-archive-property .ipc-archive-card__meta li,
	.tax-property_tag .ipc-archive-card__meta li {
		margin: 0 0 8px;
		font-family: var(--ipc-font-serif);
		font-size: 12px;
		color: var(--ipc-black);
	}

	.post-type-archive-property .ipc-archive-card__meta span,
	.tax-property_tag .ipc-archive-card__meta span {
		display: block;
		width: auto;
		margin-bottom: 2px;
		font-family: var(--ipc-font-sans);
		font-size: 9px;
		font-weight: 400;
		letter-spacing: 1.35px;
		text-transform: uppercase;
		color: #6b6b6b;
	}

	.post-type-archive-property .ipc-archive-card__price,
	.tax-property_tag .ipc-archive-card__price {
		display: flex;
		align-items: baseline;
		gap: 4px;
		margin: 16px 22px 0;
		padding: 12px 0 24px;
		border-top: 1px solid #e6e3dd;
		font-family: var(--ipc-font-serif);
		font-size: 32px;
		font-weight: 400;
		line-height: 1;
		color: var(--ipc-black);
	}

	.post-type-archive-property .ipc-archive-card__price-unit,
	.tax-property_tag .ipc-archive-card__price-unit {
		font-size: 14px;
		line-height: 1;
		color: #3a3a3a;
	}

	.post-type-archive-property .ipc-archive-card__price-soon,
	.tax-property_tag .ipc-archive-card__price-soon {
		font-family: var(--ipc-font-serif);
		font-size: 32px;
		line-height: 1.2;
		color: var(--ipc-black);
	}

	/* Privacy policy — Figma 238:6271 */
	.page-template-page-privacy .ipc-page-hero {
		padding: 36px 0 48px;
	}

	.page-template-page-privacy .ipc-page-hero__desc {
		letter-spacing: 6.96px;
		line-height: 34px;
	}

	.page-template-page-privacy .ipc-section--top-space {
		padding-top: 48px;
	}

	.page-template-page-privacy .ipc-legal-layout {
		grid-template-columns: 240px minmax(0, 1fr);
		gap: 64px;
	}

	.page-template-page-privacy .ipc-legal-toc {
		border-left: 1px solid #d4d0c8;
		padding-left: 20px;
	}

	.page-template-page-privacy .ipc-legal-toc__list {
		border-top: none;
	}

	.page-template-page-privacy .ipc-legal-toc__list li {
		border-bottom: 1px dashed #e6e3dd;
	}

	.page-template-page-privacy .ipc-legal-toc__list a {
		padding: 9px 0 9px 12px;
		font-family: var(--ipc-font-serif);
		font-size: 14px;
		line-height: 18px;
		letter-spacing: 1.82px;
		color: #3a3a3a;
	}

	.page-template-page-privacy .ipc-legal-toc__list a:hover,
	.page-template-page-privacy .ipc-legal-toc__list a:focus-visible {
		color: var(--ipc-black);
	}

	.page-template-page-privacy .ipc-legal-lead {
		padding: 31px 32px;
		border-left: 3px solid #8b6f47;
		background: #f6f6f4;
		font-family: var(--ipc-font-serif);
		font-size: 14px;
		line-height: 1.95;
		letter-spacing: 0.04em;
		color: #3a3a3a;
		margin-bottom: 48px;
	}

	.page-template-page-privacy .ipc-legal-section {
		padding-bottom: 0;
		margin-bottom: 48px;
		border-bottom: none;
	}

	.page-template-page-privacy .ipc-legal-section__num {
		font-family: var(--ipc-font-didot);
		font-size: 14px;
		line-height: 23.8px;
		letter-spacing: 4.2px;
		color: #8b6f47;
		margin-bottom: 8px;
	}

	.page-template-page-privacy .ipc-legal-section h2 {
		font-family: var(--ipc-font-serif);
		font-size: 22px;
		line-height: 33px;
		letter-spacing: 3.3px;
		color: var(--ipc-black);
		padding-bottom: 16px;
		margin-bottom: 20px;
		border-bottom: 1px solid var(--ipc-black);
	}

	.page-template-page-privacy .ipc-legal-section p,
	.page-template-page-privacy .ipc-legal-section li {
		font-family: var(--ipc-font-serif);
		font-size: 14px;
		line-height: 2;
		letter-spacing: 0.1em;
		color: #3a3a3a;
	}

	.page-template-page-privacy .ipc-legal-section ul.ipc-legal-list li {
		padding: 8px 0;
		border-bottom: none;
	}

	.page-template-page-privacy .ipc-legal-dl-list li {
		border-bottom: none;
	}

	.page-template-page-privacy .ipc-legal-table {
		border: 1px solid #d4d0c8;
		background: var(--ipc-white);
	}

	.page-template-page-privacy .ipc-legal-table table {
		border-collapse: collapse;
	}

	.page-template-page-privacy .ipc-legal-table thead th {
		background: #f6f6f4;
		color: #6b6b6b;
		font-family: var(--ipc-font-sans);
		font-size: 10px;
		font-weight: 600;
		line-height: normal;
		letter-spacing: 1.5px;
		text-transform: uppercase;
		border-bottom: 1px solid #e6e3dd;
	}

	.page-template-page-privacy .ipc-legal-table tbody th {
		font-family: var(--ipc-font-serif);
		font-weight: 600;
		color: var(--ipc-black);
	}

	.page-template-page-privacy .ipc-legal-table th,
	.page-template-page-privacy .ipc-legal-table td {
		border-bottom: 1px solid #e6e3dd;
	}

	.page-template-page-privacy .ipc-legal-contact-box {
		border: 1px solid #d4d0c8;
		padding: 33px;
		background: var(--ipc-white);
	}

	.page-template-page-privacy .ipc-legal-dates {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 8px 16px;
		font-size: 12px;
		padding-top: 24px;
		border-top: 1px solid #d4d0c8;
	}
}

/* PP capture styles → assets/css/pp-capture.css */
