/*
 * Deomobi Front - Professional polish layer.
 * Layered on top of front.css. Focused on:
 *   1) palette: brand red + kit yellow (#fede00) + deep navy accents
 *   2) equal card heights across all 2-column pairs
 *   3) unified accent bars on all card headings
 *   4) tight vertical rhythm with clamp()-based spacing
 *   5) fixed mobile CTA bar (visible while scrolling)
 *   6) consistent radii, typography, tap targets, and footer breathing
 */

:root {
	--dm-font-sans: 'Inter', 'Noto Sans JP', system-ui, -apple-system, 'Segoe UI', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;

	--dm-radius-lg: 20px;
	--dm-radius: 16px;
	--dm-radius-sm: 10px;

	--dm-shadow-sm: 0 1px 2px rgba(17, 24, 39, 0.05), 0 2px 8px -2px rgba(17, 24, 39, 0.06);
	--dm-shadow-md: 0 4px 14px rgba(17, 24, 39, 0.06), 0 14px 32px -14px rgba(17, 24, 39, 0.12);

	--dm-ink-900: #0b1220;
	--dm-ink-700: #334155;
	--dm-ink-500: #64748b;
	--dm-ink-400: #94a3b8;
	--dm-line: #e5e7eb;
	--dm-line-soft: #eef2f7;
	--dm-surface: #ffffff;
	--dm-surface-soft: #f8fafc;

	--dm-navy-900: #0b1f4d;
	--dm-navy-800: #0f2a6e;
	--dm-navy-700: #1e3a8a;
	--dm-navy-500: #3b5bdb;
	--dm-red: #c8102e;
	--dm-red-dark: #a50d24;
	--dm-red-light: #e11d48;

	/* キット6 primary に合わせたイエロー（サイト全体のアクセント） */
	--dm-yellow: #fede00;
	--dm-yellow-deep: #d4be00;
	--dm-yellow-muted: #e8d050;
	--dm-yellow-soft: rgba(254, 222, 0, 0.2);
	--dm-yellow-wash: rgba(254, 222, 0, 0.12);
	--dm-accent-gradient-v: linear-gradient(180deg, var(--dm-red) 0%, var(--dm-yellow-deep) 48%, var(--dm-yellow) 52%, var(--dm-navy-700) 100%);
	--dm-accent-gradient-h: linear-gradient(90deg, var(--dm-red) 0%, var(--dm-yellow) 38%, var(--dm-navy-700) 100%);

	/* TOP 全体の縦リズム（FV 以下をややタイトに） */
	--dm-section-pad-y: clamp(22px, 3.2vw, 48px);
	--dm-gap: clamp(12px, 1.8vw, 20px);
	--dm-container: 1180px;
	/* Fixed header offset (inner height + slack; too small = hero underlap) */
	--dm-header-offset: 92px;
}

/* ---------- Base ---------- */
html {
	background: #ffffff;
	overflow-x: hidden;
}
body {
	background: #ffffff;
	overflow-x: hidden;
}
/* 固定ヘッダーぶん（全ページ共通。管理バー分は WP が html margin-top で確保） */
body.dm-site-header {
	background: #ffffff;
	padding-top: var(--dm-header-offset);
}
body.dm-site-header.dm-owned-media-body,
body.dm-site-header.dm-site-hub-body {
	background: #f8fafc;
}
html:has(body.dm-site-header) {
	background: #ffffff;
}
html:has(body.dm-site-header.dm-owned-media-body),
html:has(body.dm-site-header.dm-site-hub-body) {
	background: #f8fafc;
}
body.dm-site-header #page {
	background: #ffffff;
	overflow-x: clip;
}
body.dm-front-body #page {
	background: linear-gradient(180deg, #fffef6 0%, var(--dm-surface) 28rem);
}
/* アンカー遷移時に固定ヘッダーで隠れないよう */
html:has(body.dm-site-header) { scroll-padding-top: var(--dm-header-offset); }
html:has(body.admin-bar.dm-site-header) { scroll-padding-top: calc(var(--dm-header-offset) + 32px); }
@media screen and (max-width: 782px) {
	html:has(body.admin-bar.dm-site-header) { scroll-padding-top: calc(var(--dm-header-offset) + 46px); }
}

/* ---------------------------------------------------------------------------
 * Custom Deomobi Header (replaces HFE-rendered header site-wide)
 * Layout: logo on the left, nav buttons on the right, hamburger drawer on mobile.
 * ------------------------------------------------------------------------ */
.dm-header {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	width: 100%;
	z-index: 5000;
	box-sizing: border-box;
	/* Solid base so hero artwork does not show through the bar */
	background-color: #fffdf6;
	background-image: linear-gradient(
		180deg,
		#fff9e6 0%,
		#fffef0 42%,
		#fffcf7 100%
	);
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	border-bottom: 1px solid rgba(212, 190, 0, 0.35);
	box-shadow:
		inset 0 2px 0 0 rgba(254, 222, 0, 0.55),
		0 1px 0 rgba(255, 255, 255, 0.65),
		0 8px 28px -16px rgba(212, 190, 0, 0.35),
		0 12px 32px -20px rgba(17, 24, 39, 0.1);
	font-family: var(--dm-font-sans);
}
body.admin-bar .dm-header {
	top: 32px;
}
@media screen and (max-width: 782px) {
	body.admin-bar .dm-header {
		top: 46px;
	}
}
.dm-header__inner {
	box-sizing: border-box;
	max-width: var(--dm-container);
	margin: 0 auto;
	padding: 10px 24px;
	display: flex;
	align-items: center;
	gap: 18px;
	min-height: 64px;
}
.dm-header__logo {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	text-decoration: none;
}
.dm-header__logo-img {
	height: 30px;
	width: auto;
	display: block;
	max-width: 100%;
}
.dm-header__nav {
	margin-left: auto;
	display: flex;
	align-items: center;
}
.dm-header__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 8px;
}
.dm-header__item { margin: 0; }
.dm-header__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 8px 14px;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.25;
	text-decoration: none !important;
	border: 1px solid transparent;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
	white-space: nowrap;
}
.dm-header__btn-label {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	line-height: 1.2;
}
.dm-header__btn-sub {
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.06em;
	opacity: 0.85;
}
.dm-header__btn--ghost {
	color: var(--dm-ink-900);
	background: rgba(255, 255, 255, 0.75);
	border: 1px solid rgba(212, 190, 0, 0.45);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.dm-header__btn--ghost:hover {
	color: var(--dm-navy-900);
	border-color: var(--dm-yellow-deep);
	background: linear-gradient(180deg, rgba(254, 222, 0, 0.35) 0%, rgba(254, 222, 0, 0.14) 100%);
	transform: translateY(-1px);
	box-shadow: 0 8px 22px -12px rgba(212, 190, 0, 0.55);
}
.dm-header__btn--primary {
	color: var(--dm-navy-900);
	background: linear-gradient(180deg, var(--dm-yellow) 0%, var(--dm-yellow-deep) 100%);
	border: 1px solid rgba(212, 190, 0, 0.65);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.45),
		0 10px 24px -12px rgba(212, 190, 0, 0.65);
}
.dm-header__btn--primary:hover {
	background: linear-gradient(180deg, #fff3a3 0%, var(--dm-yellow) 100%);
	transform: translateY(-1px);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.5),
		0 14px 28px -12px rgba(212, 190, 0, 0.55);
	color: var(--dm-navy-900);
}
.dm-header__btn--accent {
	color: #fff;
	background: linear-gradient(180deg, var(--dm-navy-700) 0%, var(--dm-navy-900) 100%);
	border: 1px solid rgba(254, 222, 0, 0.35);
	box-shadow:
		inset 0 1px 0 rgba(254, 222, 0, 0.2),
		0 10px 22px -10px rgba(11, 31, 77, 0.55);
}
.dm-header__btn--accent:hover {
	background: linear-gradient(180deg, var(--dm-navy-800) 0%, var(--dm-navy-900) 100%);
	transform: translateY(-1px);
	box-shadow:
		inset 0 1px 0 rgba(254, 222, 0, 0.28),
		0 14px 28px -10px rgba(11, 31, 77, 0.65);
	color: #fff;
}
.dm-header__burger {
	display: none;
	margin-left: auto;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(212, 190, 0, 0.5);
	background: linear-gradient(180deg, rgba(254, 222, 0, 0.22) 0%, rgba(255, 255, 255, 0.85) 100%);
	border-radius: 10px;
	cursor: pointer;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 5px;
	box-shadow: var(--dm-shadow-sm), inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.dm-header__burger span {
	display: block;
	width: 20px;
	height: 2px;
	background: linear-gradient(90deg, var(--dm-navy-900) 0%, var(--dm-navy-700) 100%);
	border-radius: 2px;
	transition: transform .2s ease, opacity .2s ease;
}
.dm-header__burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.dm-header__burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.dm-header__burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.dm-header__drawer {
	display: block;
	border-top: 1px solid rgba(212, 190, 0, 0.35);
	background: linear-gradient(180deg, #fffcef 0%, #ffffff 72%);
	padding: 12px 16px 20px;
}
.dm-header__drawer[hidden] { display: none; }
.dm-header__drawer-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-width: var(--dm-container);
	margin: 0 auto;
}
.dm-header__drawer-sep {
	height: 1px;
	margin: 6px 0 4px;
	background: linear-gradient(90deg, transparent, rgba(15, 23, 42, 0.12), transparent);
	list-style: none;
}
.dm-header__drawer-link {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border: 1px solid rgba(212, 190, 0, 0.4);
	border-radius: 10px;
	color: var(--dm-ink-900);
	text-decoration: none;
	font-weight: 700;
	min-height: 52px;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6);
}
.dm-header__drawer-link--ghost:hover {
	background: rgba(254, 222, 0, 0.14);
	border-color: var(--dm-yellow-deep);
}
.dm-header__drawer-link--primary {
	color: var(--dm-navy-900);
	background: linear-gradient(180deg, var(--dm-yellow) 0%, var(--dm-yellow-deep) 100%);
	border: 1px solid rgba(212, 190, 0, 0.65);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
}
.dm-header__drawer-link--primary:hover {
	background: linear-gradient(180deg, #fff3a3 0%, var(--dm-yellow) 100%);
	color: var(--dm-navy-900);
}
.dm-header__drawer-link--accent {
	color: #fff;
	background: linear-gradient(180deg, var(--dm-navy-700) 0%, var(--dm-navy-900) 100%);
	border: 1px solid rgba(254, 222, 0, 0.35);
	box-shadow: inset 0 1px 0 rgba(254, 222, 0, 0.18);
}
.dm-header__drawer-link--accent:hover {
	box-shadow: inset 0 1px 0 rgba(254, 222, 0, 0.28);
}
.dm-header__drawer-sub {
	font-size: 11px;
	opacity: 0.8;
	font-weight: 600;
}

@media (max-width: 1120px) {
	:root { --dm-header-offset: 74px; }
	.dm-header__nav { display: none; }
	.dm-header__burger { display: inline-flex; }
	.dm-header__inner { gap: 12px; min-height: 60px; padding: 8px 16px; }
	.dm-header__logo-img { height: 26px; }
}
@media (min-width: 1121px) {
	.dm-header__drawer { display: none !important; }
}

/* Safety-net: legacy HFE / theme chrome that could duplicate the header area */
body.dm-site-header #masthead,
body.dm-site-header .elementor-39,
body.dm-site-header .elementor-location-header {
	display: none !important;
}
body.dm-site-header #main_contents { margin-top: 0 !important; }
body.dm-site-header #header_message,
body.dm-site-header #header.dp-default-header,
body.dm-site-header #site_loader_overlay { display: none !important; }

.dm-front,
.dm-front h1, .dm-front h2, .dm-front h3, .dm-front h4, .dm-front h5,
.dm-front p, .dm-front li, .dm-front a, .dm-front button, .dm-front input, .dm-front select {
	font-family: var(--dm-font-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-feature-settings: "palt" 1, "pkna" 1;
	letter-spacing: 0.01em;
}

.dm-front { color: var(--dm-ink-900); line-height: 1.75; padding-bottom: 48px; }

/* ファーストビュー: 子セクションの margin 相殺で効かないことがあるため main に余白を付ける */
/* トップ FV 上余白（確定版は functions.php の wp_head 10000 インライン。ここはフォールバック） */
body.home.dm-front-body #page > main#dm-front.dm-front {
	padding-top: clamp(40px, 5.5vw, 76px) !important;
}

.dm-front .dm-con { max-width: var(--dm-container); padding-inline: 24px; }
@media (max-width: 767px) { .dm-front .dm-con { padding-inline: 16px; } }

/* ---------- Section rhythm ---------- */
.dm-front .dm-section { padding-block: calc(var(--dm-section-pad-y) / 2); }
.dm-front .dm-section.dm-hero {
	padding: 0;
	/* すき間は main.dm-front の padding-top で確保（margin 相殺回避） */
	margin-top: 0;
	margin-bottom: clamp(10px, 1.8vw, 22px);
}
.dm-front .dm-section.dm-note-band { padding-block: var(--dm-section-pad-y); margin-block: clamp(10px, 2vw, 24px); }
.dm-front .dm-section.dm-floating { padding: 0; margin: 0; }

/* ---------- Headline ---------- */
.dm-front .dm-headline {
	color: var(--dm-ink-900);
	font-size: clamp(22px, 3.2vw, 32px);
	font-weight: 800;
	line-height: 1.4;
	letter-spacing: 0.04em;
	margin: 4px 0 22px;
	position: relative;
}
.dm-front .dm-headline::after {
	content: "";
	display: block;
	width: 140px;
	height: 6px;
	margin: 14px auto 0;
	background: var(--dm-accent-gradient-h);
	border-radius: 999px;
	box-shadow: 0 6px 14px -6px rgba(212, 190, 0, 0.45), 0 4px 12px -8px rgba(200, 16, 46, 0.35);
}
/* ---------- IA split (個人／法人) ---------- */
.dm-front .dm-ia-split-section { padding-block: var(--dm-section-pad-y); }
.dm-front .dm-ia-split__head { text-align: center; margin-bottom: 10px; }
.dm-front .dm-ia-split__head::after { margin-left: auto; margin-right: auto; }
.dm-front .dm-ia-split__lead {
	color: var(--dm-ink-700);
	font-size: 15px;
	line-height: 1.7;
	margin: 0 auto 26px;
	max-width: 40em;
	text-align: center;
}
.dm-front .dm-ia-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 2.4vw, 28px);
	align-items: stretch;
}
@media (max-width: 768px) {
	.dm-front .dm-ia-split { grid-template-columns: 1fr; gap: 16px; }
}
.dm-front .dm-ia-card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: clamp(20px, 2.4vw, 28px);
	border-radius: var(--dm-radius-lg);
	background: #fff;
	box-shadow: var(--dm-shadow-md);
	text-decoration: none;
	color: inherit;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
	border: 1px solid var(--dm-line-200);
	overflow: hidden;
	isolation: isolate;
}
.dm-front .dm-ia-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 6px;
	z-index: 1;
	border-top-left-radius: var(--dm-radius-lg);
	border-top-right-radius: var(--dm-radius-lg);
}
.dm-front .dm-ia-card--personal::before {
	background: linear-gradient(90deg, #c8102e 0%, #ef4444 100%);
}
.dm-front .dm-ia-card--business::before {
	background: linear-gradient(90deg, #0f172a 0%, #334155 100%);
}
.dm-front .dm-ia-card::after {
	content: "";
	position: absolute;
	inset: auto -30% -40% auto;
	width: 320px;
	height: 320px;
	border-radius: 50%;
	opacity: 0.08;
	z-index: 0;
	transition: transform 0.35s ease, opacity 0.35s ease;
}
.dm-front .dm-ia-card--personal::after { background: radial-gradient(circle, #c8102e 0%, transparent 70%); }
.dm-front .dm-ia-card--business::after { background: radial-gradient(circle, #0f172a 0%, transparent 70%); }
.dm-front .dm-ia-card:hover { transform: translateY(-3px); box-shadow: var(--dm-shadow-lg, 0 20px 40px -20px rgba(15, 23, 42, 0.25)); border-color: #cbd5e1; }
.dm-front .dm-ia-card:hover::after { transform: scale(1.08); opacity: 0.12; }
.dm-front .dm-ia-card:focus-visible { outline: 3px solid #c8102e; outline-offset: 3px; }

.dm-front .dm-ia-card__head { position: relative; z-index: 2; margin-top: 6px; }
.dm-front .dm-ia-card__eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: #64748b;
	margin-bottom: 8px;
}
.dm-front .dm-ia-card--personal .dm-ia-card__eyebrow { color: #c8102e; }
.dm-front .dm-ia-card--business .dm-ia-card__eyebrow { color: #0f172a; }
.dm-front .dm-ia-card__title {
	font-size: clamp(20px, 2.4vw, 26px);
	font-weight: 800;
	line-height: 1.35;
	letter-spacing: 0.02em;
	margin: 0 0 8px;
	color: var(--dm-ink-900);
}
.dm-front .dm-ia-card__desc {
	color: var(--dm-ink-700);
	font-size: 14.5px;
	line-height: 1.7;
	margin: 0 0 18px;
}

.dm-front .dm-ia-card__links {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	position: relative;
	z-index: 2;
}
.dm-front .dm-ia-card__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 10px 14px;
	border-radius: var(--dm-radius-sm, 10px);
	background: #f8fafc;
	color: var(--dm-ink-900);
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.dm-front .dm-ia-card__link:hover {
	background: #eef2f7;
	transform: translateX(2px);
}
.dm-front .dm-ia-card--personal .dm-ia-card__link:hover { color: #c8102e; }
.dm-front .dm-ia-card--business .dm-ia-card__link:hover { color: #0f172a; }
.dm-front .dm-ia-card__arrow { font-weight: 700; color: #94a3b8; transition: transform 0.2s ease, color 0.2s ease; }
.dm-front .dm-ia-card__link:hover .dm-ia-card__arrow { transform: translateX(2px); color: inherit; }

.dm-front .dm-ia-card__cta {
	margin-top: auto;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 22px;
	border-radius: 999px;
	font-weight: 800;
	font-size: 14px;
	letter-spacing: 0.04em;
	color: #fff;
	text-decoration: none;
	position: relative;
	z-index: 2;
	transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
.dm-front .dm-ia-card--personal .dm-ia-card__cta { background: linear-gradient(90deg, #c8102e 0%, #ef4444 100%); box-shadow: 0 8px 20px -10px rgba(200, 16, 46, 0.55); }
.dm-front .dm-ia-card--business .dm-ia-card__cta { background: linear-gradient(90deg, #0f172a 0%, #334155 100%); box-shadow: 0 8px 20px -10px rgba(15, 23, 42, 0.45); }
.dm-front .dm-ia-card__cta:hover { transform: translateY(-1px); filter: brightness(1.05); color: #fff; }
.dm-front .dm-ia-card__cta:focus-visible { outline: 3px solid #c8102e; outline-offset: 3px; }
.dm-front .dm-ia-card__cta-arrow { transition: transform 0.2s ease; }
.dm-front .dm-ia-card__cta:hover .dm-ia-card__cta-arrow { transform: translateX(3px); }

/* ---------- Hero ---------- */
.dm-front .dm-hero .dm-con { padding: 0; }
.dm-front .dm-hero__img { border-radius: 0; }

/* ---------- 2-col pair: equal heights & unified look ---------- */
.dm-front .dm-pair {
	display: flex;
	gap: var(--dm-gap);
	align-items: stretch;
}
.dm-front .dm-pair__col {
	display: flex;
	flex-direction: column;
	transition: transform .22s ease;
	min-width: 0;
	border-radius: 0;
	overflow: visible;
}
.dm-front .dm-pair__col > * {
	flex: 1 1 auto;
	width: 100%;
	display: block;
	height: 100%;
}
/* Image-only banner columns: apply rounding directly to the image */
.dm-front .dm-pair__col > img,
.dm-front .dm-pair__col > a > img {
	height: auto;
	display: block;
	border-radius: var(--dm-radius);
	box-shadow: var(--dm-shadow-sm);
	transition: transform .22s ease, box-shadow .22s ease;
}
.dm-front .dm-pair__col > a { display: block; }
.dm-front .dm-pair__col,
.dm-front .dm-pair__col:hover { transform: none; }
.dm-front .dm-pair__col:hover > img,
.dm-front .dm-pair__col:hover > a > img { transform: translateY(-2px); box-shadow: var(--dm-shadow-md); }

@media (max-width: 767px) {
	.dm-front .dm-pair { gap: 16px; }
	.dm-front .dm-pair__col { flex-basis: 100%; }
	.dm-front .dm-pair--half-mobile .dm-pair__col { flex-basis: calc(50% - 3px); }
}

/* Make inner cards fill column height */
.dm-front .dm-pair__col .sf-widget,
.dm-front .dm-pair__col .vf-widget,
.dm-front .dm-pair__col .kp-banner-box,
.dm-front .dm-pair__col .kp-rec-wrap,
.dm-front .dm-pair__col .kp-news-wrap,
.dm-front .dm-pair__col .kp-promo-box {
	height: 100%;
	min-height: 100%;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	min-width: 0;
}
/* Cards: the primary CTA should push to the bottom so left/right pairs align */
.dm-front .dm-pair__col .kp-rec-wrap .kp-rec-desc { margin-top: auto; }
.dm-front .dm-pair__col .kp-rec-wrap .kp-rec-btn { margin-top: 14px; }
.dm-front .dm-pair__col .kp-banner-box .kp-content-flex { margin-top: auto; }

/* ---------- Unified card surface ---------- */
.dm-front .sf-widget,
.dm-front .vf-widget,
.dm-front .kp-banner-box,
.dm-front .kp-rec-wrap,
.dm-front .kp-promo-box,
.dm-front .kp-news-wrap {
	background: var(--dm-surface);
	border: 1px solid var(--dm-line);
	border-radius: var(--dm-radius);
	box-shadow: var(--dm-shadow-sm), inset 0 3px 0 0 var(--dm-yellow);
	padding: 20px;
	max-width: none;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.dm-front .sf-widget:hover,
.dm-front .vf-widget:hover,
.dm-front .kp-banner-box:hover,
.dm-front .kp-rec-wrap:hover,
.dm-front .kp-promo-box:hover,
.dm-front .kp-news-wrap:hover {
	transform: translateY(-2px);
	box-shadow: var(--dm-shadow-md), inset 0 3px 0 0 var(--dm-yellow);
	border-color: #d1d5db;
}

/* ---------- Unified card heading bar (red → navy accent) ---------- */
.dm-front .sf-header,
.dm-front .vf-header,
.dm-front .kp-rec-head,
.dm-front .kp-news-head {
	border-bottom: 1px solid var(--dm-line-soft);
	padding-bottom: 10px;
	margin-bottom: 14px;
}
.dm-front .sf-bar,
.dm-front .vf-bar {
	width: 4px;
	height: 22px;
	background: var(--dm-accent-gradient-v);
	border-radius: 3px;
	margin-right: 12px;
}
.dm-front .kp-rec-title,
.dm-front .kp-news-title {
	color: var(--dm-ink-900);
	font-weight: 800;
	font-size: 18px;
	letter-spacing: 0.03em;
	padding-left: 14px;
	line-height: 1.4;
}
.dm-front .kp-rec-title::before,
.dm-front .kp-news-title::before {
	width: 4px;
	top: 2px;
	bottom: 2px;
	background: var(--dm-accent-gradient-v);
	border-radius: 3px;
}
.dm-front .sf-title,
.dm-front .vf-title {
	font-size: 17px;
	font-weight: 800;
	color: var(--dm-ink-900);
	letter-spacing: 0.03em;
}

.dm-front .kp-rec-more,
.dm-front .kp-news-more { color: var(--dm-ink-500); font-size: 13px; font-weight: 600; letter-spacing: 0.02em; transition: color .2s ease; }
.dm-front .kp-rec-more:hover,
.dm-front .kp-news-more:hover { color: var(--dm-red); }
.dm-front .kp-rec-more::after,
.dm-front .kp-news-more::after { color: var(--dm-red); margin-left: 6px; }

/* ---------- KP green / orange: reborn as subtle navy-accented cards ---------- */
.dm-front .kp-green,
.dm-front .kp-orange {
	border: 1px solid var(--dm-line);
	border-left: 4px solid var(--dm-yellow);
	background: linear-gradient(180deg, rgba(254, 222, 0, 0.06) 0%, var(--dm-surface) 52%);
	border-radius: var(--dm-radius);
	gap: 14px;
}
.dm-front .kp-green .kp-main-title,
.dm-front .kp-orange .kp-main-title {
	color: var(--dm-navy-900);
	font-weight: 800;
	font-size: 22px;
	letter-spacing: 0.02em;
	line-height: 1.35;
}
.dm-front .kp-sub-title {
	color: var(--dm-yellow-deep);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: none;
	margin-bottom: 2px;
}
.dm-front .kp-content-flex {
	display: flex;
	align-items: stretch;
	gap: 18px;
	margin-top: 4px;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}
.dm-front .kp-image-area {
	width: 38%;
	flex: 0 0 38%;
	max-width: 38%;
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}
.dm-front .kp-image-area img {
	width: 100%;
	height: auto;
	max-height: 180px;
	max-width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center 30%;
	border-radius: var(--dm-radius-sm);
	border: 1px solid var(--dm-line-soft);
	background: var(--dm-surface-soft);
	display: block;
}
.dm-front .kp-btn-area {
	flex: 1 1 0;
	min-width: 0;
	max-width: 100%;
	display: flex;
	flex-direction: column;
	gap: 8px;
	justify-content: center;
	box-sizing: border-box;
}

.dm-front .kp-btn {
	background: var(--dm-surface);
	border: 1px solid var(--dm-line);
	border-radius: var(--dm-radius-sm);
	color: var(--dm-ink-900);
	font-weight: 700;
	padding: 12px 14px;
	min-height: 44px;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	text-align: center;
	overflow-wrap: anywhere;
	transition: all .2s ease;
}
.dm-front .kp-btn:hover {
	background: rgba(254, 222, 0, 0.12);
	border-color: var(--dm-yellow-deep);
	color: var(--dm-navy-900);
	transform: translateY(-1px);
	box-shadow: var(--dm-shadow-md);
}
.dm-front .kp-btn::after {
	content: "→";
	color: var(--dm-yellow-deep);
	margin-left: 6px;
	font-weight: 700;
	flex-shrink: 0;
}
.dm-front .kp-link-text {
	color: var(--dm-navy-700);
	font-size: 12px;
	line-height: 1.7;
	overflow-wrap: anywhere;
}

/* ---------- Partner / rec-wrap ---------- */
.dm-front .kp-rec-desc {
	color: var(--dm-ink-700);
	line-height: 1.75;
	min-width: 0;
	box-sizing: border-box;
}
.dm-front .kp-rec-highlight { color: var(--dm-red); font-weight: 800; font-size: 15px; }
.dm-front .kp-rec-btn {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	text-align: center;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 12px 14px;
	background: linear-gradient(180deg, var(--dm-navy-700) 0%, var(--dm-navy-900) 100%);
	color: #fff !important;
	border-radius: var(--dm-radius-sm);
	min-height: 48px;
	box-shadow: 0 10px 22px -10px rgba(11, 31, 77, 0.7);
	letter-spacing: 0.03em;
	overflow-wrap: anywhere;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.dm-front .kp-rec-btn:hover {
	background: linear-gradient(180deg, var(--dm-navy-800), var(--dm-navy-900));
	transform: translateY(-1px);
	box-shadow: 0 16px 28px -10px rgba(11, 31, 77, 0.7);
	opacity: 1;
}

/* ---------- Finder widgets ---------- */
/* 店舗検索・車種サイズ: 各セクションでコンテナ全幅1カラム */
.dm-front .dm-finder-section .dm-con {
	width: 100%;
}
.dm-front .dm-finder-full {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	height: auto;
	min-height: 0;
}
/* イラスト列＋フォーム列をカード内で中央にまとめる（front.css の width:60% / 38% との競合解消） */
.dm-front .dm-finder-full .sf-body,
.dm-front .dm-finder-full .vf-body {
	width: 100%;
	min-width: 0;
	justify-content: center;
	align-items: stretch;
	gap: clamp(16px, 3vw, 32px);
}
.dm-front .dm-finder-full .sf-form-area,
.dm-front .dm-finder-full .vf-form-area {
	min-width: 0;
}
.dm-front .dm-finder-full .sf-form-area {
	width: auto !important;
	flex: 1 1 min(520px, 100%);
	max-width: min(560px, 100%);
}
/* 全幅時はイラスト列を固定幅寄りにして、列ペアが中央に収まるように */
@media (min-width: 768px) {
	.dm-front .dm-finder-full .sf-visual,
	.dm-front .dm-finder-full .vf-visual {
		flex: 0 0 auto;
		width: clamp(200px, 22vw, 270px);
		max-width: 280px;
		min-height: 160px;
	}
}
/* ページ下部に配置した車種サイズウィジェット（フッター直前） */
.dm-front .dm-finder-section--vehicle {
	padding-block: var(--dm-section-pad-y);
	margin-top: clamp(6px, 1.2vw, 16px);
	border-top: 1px solid var(--dm-line-soft);
	background: linear-gradient(180deg, #f8fafc 0%, #ffffff 55%);
}

.dm-front .sf-body,
.dm-front .vf-body {
	display: flex;
	gap: 14px;
	align-items: stretch;
	flex: 1;
}
.dm-front .sf-visual,
.dm-front .vf-visual {
	border-radius: 0;
	border: none;
	background-color: transparent;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	flex: 0 0 38%;
	min-height: 160px;
}
.dm-front .sf-form-area,
.dm-front .vf-form-area {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
@media (max-width: 767px) {
	.dm-front .sf-body,
	.dm-front .vf-body { flex-direction: column; gap: 14px; }
	.dm-front .sf-visual,
	.dm-front .vf-visual { flex: none; min-height: 120px; }
	.dm-front .dm-finder-full .sf-form-area,
	.dm-front .dm-finder-full .vf-form-area {
		flex: 1 1 auto;
		max-width: 100%;
	}
	.dm-front .dm-finder-full .sf-visual,
	.dm-front .dm-finder-full .vf-visual {
		width: 100%;
		max-width: none;
	}
}
.dm-front .sf-input-group,
.dm-front .vf-input-group {
	background: var(--dm-surface-soft);
	border: 1px solid var(--dm-line);
	border-radius: 12px;
	transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.dm-front .sf-input-group:hover,
.dm-front .vf-input-group:hover,
.dm-front .sf-input-group:focus-within,
.dm-front .vf-input-group:focus-within {
	border-color: var(--dm-yellow-deep);
	background: #fff;
	box-shadow: 0 0 0 3px var(--dm-yellow-wash), 0 0 0 1px rgba(59, 91, 219, 0.08);
}
.dm-front .sf-select,
.dm-front .vf-select { color: var(--dm-ink-900); font-weight: 600; }
.dm-front .sf-label-mini,
.dm-front .vf-label-mini { color: var(--dm-ink-500); letter-spacing: 0.06em; font-weight: 600; }
.dm-front .sf-arrow,
.dm-front .vf-arrow { color: var(--dm-navy-700); }
.dm-front .sf-btn-search {
	background: linear-gradient(180deg, var(--dm-yellow) 0%, var(--dm-yellow-deep) 100%);
	color: var(--dm-navy-900);
	border: 1px solid rgba(212, 190, 0, 0.65);
	border-radius: 12px;
	padding: 14px 18px;
	min-height: 52px;
	font-weight: 800;
	letter-spacing: 0.04em;
	box-shadow: 0 8px 20px -10px rgba(212, 190, 0, 0.65);
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}
.dm-front .sf-btn-search:hover {
	background: linear-gradient(180deg, #fff3a3 0%, var(--dm-yellow) 100%);
	transform: translateY(-1px);
	box-shadow: 0 12px 26px -10px rgba(212, 190, 0, 0.55);
	border-color: var(--dm-yellow-deep);
	color: var(--dm-navy-900);
}
.dm-front .vf-res-badge {
	background: linear-gradient(180deg, var(--dm-yellow) 0%, var(--dm-yellow-deep) 100%);
	color: var(--dm-navy-900);
	border-radius: 999px;
	font-size: 16px;
	border: 1px solid rgba(212, 190, 0, 0.5);
}

/* ---------- Promo pair ---------- */
.dm-front .kp-promo-link { display: block; height: 100%; }
.dm-front .kp-promo-box {
	padding: 20px;
	height: 100%;
	display: flex;
	align-items: center;
}
.dm-front .kp-promo-flex { align-items: center; gap: 12px; }
.dm-front .kp-promo-img { width: 110px; }
.dm-front .kp-promo-img img { border-radius: var(--dm-radius-sm); }
.dm-front .kp-promo-title { color: var(--dm-navy-900); font-weight: 800; font-size: 17px; letter-spacing: 0.01em; }
.dm-front .kp-promo-desc { color: var(--dm-ink-700); line-height: 1.7; }

/* ---------- News list ---------- */
.dm-front .kp-news-item { padding: 12px 0; border-bottom: 1px solid var(--dm-line-soft); gap: 16px; }
.dm-front .kp-news-date { color: var(--dm-ink-500); font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: 0.02em; }
.dm-front .kp-news-text { color: var(--dm-navy-700); font-weight: 600; }
.dm-front .kp-news-text:hover { color: var(--dm-red); }

/* ---------- Note band (wrapping headlines + card grids) ---------- */
.dm-front .dm-note-band {
	background:
		radial-gradient(1100px 340px at 50% -70px, var(--dm-yellow-wash), transparent 68%),
		radial-gradient(900px 280px at 12% 30%, rgba(254, 222, 0, 0.08), transparent 55%),
		radial-gradient(880px 260px at 88% 25%, rgba(200, 16, 46, 0.05), transparent 52%),
		linear-gradient(180deg, #fffcef 0%, #fafbfc 42%, #ffffff 100%);
	border-top: 1px solid var(--dm-line-soft);
	border-bottom: 1px solid var(--dm-line-soft);
}

/* ---------- LP (4 cards) + Biz (3 cards) — レイアウトは front.css、ここはブランド上書きのみ ---------- */
.dm-front .df-lp-grid,
.dm-front .df-biz-grid { gap: var(--dm-gap); max-width: var(--dm-container); }

/* front.css より後勝ちさせるため .dm-front 付きで LP / 事業者ブロックの余白を詰める */
.dm-front .df-lp-section { margin: 0 0 clamp(24px, 3.2vw, 44px); }
.dm-front .df-biz-section-center { margin: 0 0 clamp(14px, 2.2vw, 28px); }
.dm-front .df-lp-header,
.dm-front .df-biz-header-center { padding: 18px 18px 14px; }
.dm-front .df-lp-body,
.dm-front .df-biz-body-center { padding: 16px 18px 18px; gap: 12px; }
.dm-front .df-lp-thumbnail,
.dm-front .df-biz-thumbnail-center { margin-bottom: 10px; }
.dm-front .df-lp-card,
.dm-front .df-biz-card-center {
	border: 1px solid var(--dm-line);
	border-radius: var(--dm-radius);
	box-shadow: var(--dm-shadow-sm);
	background: var(--dm-surface);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.dm-front .df-lp-card:hover,
.dm-front .df-biz-card-center:hover {
	transform: translateY(-4px);
	box-shadow: var(--dm-shadow-md);
	border-color: #d1d5db;
}
.dm-front .df-lp-header,
.dm-front .df-biz-header-center {
	background: linear-gradient(180deg, #fffbeb 0%, #f8fafc 55%, #ffffff 100%);
	border-bottom: 1px solid var(--dm-line-soft);
}
.dm-front .df-lp-thumbnail,
.dm-front .df-biz-thumbnail-center {
	border: 1px solid var(--dm-line-soft);
	box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.dm-front .df-lp-card-title,
.dm-front .df-biz-title-center {
	color: var(--dm-ink-900);
	font-weight: 800;
	font-size: 18px;
	letter-spacing: 0.01em;
}
.dm-front .df-lp-card-subtitle,
.dm-front .df-biz-subtitle-center { color: var(--dm-ink-500); }

.dm-front .df-lp-feature-icon,
.dm-front .df-biz-icon-center {
	background: linear-gradient(180deg, rgba(254, 222, 0, 0.38) 0%, rgba(254, 222, 0, 0.2) 100%);
	color: var(--dm-navy-900);
	border: 1px solid rgba(212, 190, 0, 0.45);
	border-radius: 6px;
	font-weight: 800;
}

/* 外側に大きなドロップシャドウを付けない（overflow:hidden カード内で切れ・ずれに見えるため） */
.dm-front .df-lp-btn {
	background: linear-gradient(180deg, var(--dm-red) 0%, var(--dm-red-dark) 100%) !important;
	color: #fff !important;
	border-radius: var(--dm-radius-sm);
	min-height: 48px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 2px 6px rgba(200, 16, 46, 0.22);
	letter-spacing: 0.04em;
}
.dm-front .df-lp-btn:hover {
	background: linear-gradient(180deg, var(--dm-red-dark) 0%, #7f0a1c 100%) !important;
	transform: translateY(-1px);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 4px 10px rgba(200, 16, 46, 0.28);
}
.dm-front .df-biz-btn-center {
	background: linear-gradient(180deg, var(--dm-navy-700) 0%, var(--dm-navy-900) 100%) !important;
	color: #fff !important;
	border-radius: var(--dm-radius-sm);
	min-height: 48px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 2px 6px rgba(11, 31, 77, 0.35);
	letter-spacing: 0.04em;
}
.dm-front .df-biz-btn-center:hover {
	background: linear-gradient(180deg, var(--dm-navy-800) 0%, var(--dm-navy-900) 100%) !important;
	transform: translateY(-1px);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 4px 10px rgba(11, 31, 77, 0.45);
}

/* ---------- Mobile fixed CTA ---------- */
.dm-front .dm-section.dm-floating {
	display: none !important;
}
@media (max-width: 1024px) {
	.dm-front .dm-section.dm-floating {
		display: block !important;
		position: fixed !important;
		left: 0 !important;
		right: 0 !important;
		top: auto !important;
		bottom: 0 !important;
		width: 100% !important;
		z-index: 9999 !important;
		background: rgba(11, 18, 32, 0.92) !important;
		-webkit-backdrop-filter: saturate(140%) blur(12px);
		backdrop-filter: saturate(140%) blur(12px);
		border-top: 1px solid rgba(255, 255, 255, 0.08);
		box-shadow: 0 -12px 32px -12px rgba(0, 0, 0, 0.5);
		padding: 0 !important;
		margin: 0 !important;
	}
	.dm-front .dm-floating__inner {
		display: flex !important;
		gap: 8px;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
		max-width: 720px;
		margin: 0 auto;
		justify-content: center;
	}
	.dm-front .dm-floating__col {
		flex: 1 1 50%;
		max-width: 50%;
		margin: 0;
		display: block;
	}
	.dm-front .dm-floating__col img {
		width: 100%;
		height: auto;
		border-radius: var(--dm-radius-sm);
		box-shadow: 0 8px 20px -8px rgba(0, 0, 0, 0.55);
	}
	.dm-front { padding-bottom: 96px; }
}

/* ---------- Footer ---------- */
#footer.dm-site-footer-shell {
	position: relative;
	margin: 0;
	padding: 0;
	clear: both;
	background: #0b1220;
	box-shadow: 0 100vmax 0 100vmax #0b1220;
	clip-path: inset(0 -100vmax -100vmax -100vmax);
}
#footer.dm-site-footer-shell::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 2px;
	background: #060a14;
	pointer-events: none;
}
/* ページトップボタンはフロー外に固定（親 #footer 内にあり余白の原因になりやすい） */
#footer.dm-site-footer-shell #return_top {
	position: fixed !important;
	right: 20px;
	bottom: 20px;
	left: auto;
	top: auto;
	margin: 0 !important;
	padding: 0 !important;
	z-index: 990;
}

/* ---------------------------------------------------------------------------
 * パンくず: フッター直前セクションへ移動
 * ------------------------------------------------------------------------ */
.dm-breadcrumb-footer-slot:empty { display: none; }
.dm-breadcrumb-footer-slot {
	width: 100%;
	margin: 0;
	padding: 0;
	background: #ffffff;
}
.dm-breadcrumb-footer-slot #breadcrumb {
	margin: 0 !important;
}

/* ---------- Site Footer (dark theme, Bento UI) ---------- */
.df-footer {
	position: relative;
	font-family: var(--dm-font-sans);
	background: linear-gradient(180deg, #0b1220 0%, #060a14 100%);
	color: #e2e8f0;
	margin: 0;
	padding: 0;
	border-top: 1px solid #1f2937;
}
.df-footer::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--dm-red, #d4242b) 0%, #ef4444 50%, var(--dm-red, #d4242b) 100%);
	box-shadow: 0 4px 18px rgba(212, 36, 43, 0.45);
	z-index: 1;
}
.df-footer .df-footer-container {
	max-width: var(--dm-container);
	padding-inline: 24px;
	padding-block: 56px 22px;
	margin-inline: auto;
	position: relative;
	z-index: 2;
}
.df-footer .df-footer-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
	gap: 40px;
	margin-bottom: 36px;
}
@media (max-width: 1024px) {
	.df-footer .df-footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 32px;
	}
	.df-footer .df-footer-section--brand {
		grid-column: 1 / -1;
	}
}
@media (max-width: 600px) {
	.df-footer .df-footer-grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}
}
.df-footer .df-footer-section {
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-width: 0;
}
.df-footer .df-footer-section--brand { gap: 18px; }
.df-footer .df-footer-brand {
	display: inline-block;
	text-decoration: none;
	line-height: 0;
}
.df-footer .df-footer-logo {
	height: 32px;
	width: auto;
	max-width: 100%;
	display: block;
	filter: brightness(0) invert(1);
	opacity: 0.92;
}
.df-footer .df-footer-description {
	line-height: 1.8;
	font-size: 13px;
	color: #cbd5e1;
	margin: 0;
}
.df-footer .df-footer-contact {
	margin: 4px 0 0;
	display: grid;
	gap: 10px;
	font-size: 13px;
}
.df-footer .df-footer-contact__row {
	display: grid;
	grid-template-columns: 44px 1fr;
	gap: 12px;
	align-items: start;
}
.df-footer .df-footer-contact__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #64748b;
	padding-top: 2px;
	margin: 0;
}
.df-footer .df-footer-contact__value {
	margin: 0;
	color: #e2e8f0;
	line-height: 1.6;
}
.df-footer .df-footer-contact__sub {
	color: #94a3b8;
	font-size: 12px;
}
.df-footer .df-footer-contact__value a {
	color: #e2e8f0 !important;
	text-decoration: none !important;
	border-bottom: 1px dashed transparent;
	transition: color .15s ease, border-color .15s ease;
}
.df-footer .df-footer-contact__value a:hover {
	color: #fca5a5 !important;
	border-bottom-color: #fca5a5;
}
.df-footer .df-footer-contact__tel {
	font-weight: 700;
	font-size: 16px;
	letter-spacing: 0.04em;
	color: #ffffff !important;
}
.df-footer .df-footer-title {
	font-size: 12px;
	letter-spacing: 0.12em;
	font-weight: 700;
	color: #ffffff;
	margin: 0 0 4px;
	text-transform: uppercase;
	position: relative;
	padding-bottom: 10px;
}
.df-footer .df-footer-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 24px;
	height: 2px;
	background: var(--dm-red, #d4242b);
	border-radius: 2px;
}
.df-footer .df-footer-menu {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 0;
	margin: 0;
}
.df-footer .df-footer-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	text-decoration: none !important;
	color: #cbd5e1 !important;
	font-weight: 500;
	font-size: 13.5px;
	line-height: 1.5;
	transition: color .15s ease, transform .15s ease;
}
.df-footer .df-footer-link::before {
	content: "›";
	color: #475569;
	font-weight: 700;
	transition: color .15s ease;
}
.df-footer .df-footer-link:hover {
	color: #fca5a5 !important;
	transform: translateX(2px);
}
.df-footer .df-footer-link:hover::before {
	color: #fca5a5;
}
.df-footer .df-footer-menu--cta {
	gap: 8px;
}
.df-footer .df-footer-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 11px 14px;
	border-radius: 10px;
	font-weight: 700;
	font-size: 13px;
	text-decoration: none !important;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
	border: 1px solid transparent;
}
.df-footer .df-footer-cta__arrow {
	font-weight: 700;
	transition: transform .15s ease;
}
.df-footer .df-footer-cta:hover .df-footer-cta__arrow { transform: translateX(3px); }
.df-footer .df-footer-cta--primary {
	background: linear-gradient(180deg, var(--dm-red, #d4242b) 0%, #b91c25 100%);
	color: #ffffff !important;
	box-shadow: 0 6px 16px -8px rgba(212, 36, 43, 0.55);
}
.df-footer .df-footer-cta--primary:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 22px -8px rgba(212, 36, 43, 0.7);
	color: #ffffff !important;
}
.df-footer .df-footer-cta--ghost {
	background: rgba(255, 255, 255, 0.06);
	color: #ffffff !important;
	border-color: rgba(255, 255, 255, 0.18);
}
.df-footer .df-footer-cta--ghost:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: var(--dm-red, #d4242b);
	color: #fca5a5 !important;
}
.df-footer .df-footer-cta--line {
	background: linear-gradient(180deg, #06c755 0%, #04a445 100%);
	color: #ffffff !important;
	box-shadow: 0 6px 16px -8px rgba(6, 199, 85, 0.55);
}
.df-footer .df-footer-cta--line:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 22px -8px rgba(6, 199, 85, 0.7);
	color: #ffffff !important;
}
.df-footer .df-footer-partner {
	margin-top: 6px;
	padding: 12px 14px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px dashed rgba(248, 113, 113, 0.45);
	display: grid;
	gap: 6px;
}
.df-footer .df-footer-partner__tag {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: #fca5a5;
}
.df-footer .df-footer-partner__link {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
	text-decoration: none !important;
	color: #ffffff !important;
	font-weight: 700;
	font-size: 13.5px;
	transition: color .15s ease;
}
.df-footer .df-footer-partner__link:hover { color: #fca5a5 !important; }
.df-footer .df-footer-bottom {
	border-top: 1px solid #1f2937;
	padding-top: 20px;
	margin-bottom: 0;
	padding-bottom: 4px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
}
.df-footer .df-footer-legal {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	padding: 0;
	margin: 0;
}
.df-footer .df-footer-legal__link {
	color: #94a3b8 !important;
	text-decoration: none !important;
	font-size: 12.5px;
	font-weight: 500;
	transition: color .15s ease;
}
.df-footer .df-footer-legal__link:hover { color: #fca5a5 !important; }
.df-footer .df-footer-copyright {
	color: #64748b;
	letter-spacing: 0.04em;
	font-size: 12px;
	margin: 0;
}

/* Header Footer Elementor: テーマフッター後に出る空ラッパーによる下の白隙間 */
.footer-width-fixer:empty {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}
.footer-width-fixer:not(:has(> *)) {
	display: none !important;
}
body.dm-site-header #page {
	padding-bottom: 0 !important;
}

/* ---------- Responsive fine-tune ---------- */
@media (max-width: 767px) {
	.dm-front .dm-section { padding-block: 16px; }
	.dm-front .dm-section.dm-note-band { padding-block: 28px; margin-block: 12px; }
	.dm-front .dm-headline { margin: 2px 0 18px; font-size: 22px; letter-spacing: 0.03em; }
	.dm-front .sf-widget,
	.dm-front .vf-widget,
	.dm-front .kp-banner-box,
	.dm-front .kp-rec-wrap,
	.dm-front .kp-promo-box,
	.dm-front .kp-news-wrap { padding: 16px; }
	.dm-front .kp-promo-box { padding: 12px; }
	.dm-front .kp-content-flex { flex-direction: column; align-items: stretch; gap: 14px; }
	.dm-front .kp-image-area {
		width: 100%;
		max-width: 100%;
		flex: 0 0 auto;
	}
	.dm-front .kp-btn-area { flex: 1 1 auto; max-width: 100%; }
	.dm-front .df-lp-card,
	.dm-front .df-biz-card-center { min-height: 0; }
	.df-footer .df-footer-container { padding-block: 40px 20px; }
	.df-footer .df-footer-grid { gap: 28px; }
}

/* ---------------------------------------------------------------------------
 * 店舗詳細（single introduce）
 * 親 TCD: #left_col 860px + float / #main_col flex だが #side_col 無しだと flex-start で左寄り、
 * 860+300+gap で max-width 1200 を僅かに超えてズレやすい。中央基準で再レイアウトする。
 * ------------------------------------------------------------------------ */
body.dm-shop-single #main_col {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	align-items: flex-start !important;
	gap: clamp(28px, 3.5vw, 44px) !important;
	width: 100% !important;
	max-width: min(1180px, 100%) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-top: clamp(28px, 3.5vw, 52px) !important;
	margin-bottom: clamp(56px, 7vw, 120px) !important;
	padding-left: clamp(16px, 4vw, 28px) !important;
	padding-right: clamp(16px, 4vw, 28px) !important;
	box-sizing: border-box !important;
}
body.dm-shop-single #left_col {
	float: none !important;
	width: auto !important;
	flex: 1 1 min(680px, 100%) !important;
	max-width: 820px !important;
	min-width: 0 !important;
}
body.dm-shop-single #side_col {
	float: none !important;
	width: auto !important;
	flex: 0 1 300px !important;
	max-width: 340px !important;
	min-width: 0 !important;
}
/* サイドバー未使用（ウィジェット無効）時は記事カラムのみ・画面中央 */
body.dm-shop-single #main_col > #left_col:only-child {
	flex: 1 1 100% !important;
	max-width: min(900px, 100%) !important;
}
body.dm-shop-single #article {
	max-width: 100% !important;
	box-sizing: border-box !important;
}
body.dm-shop-single #article .post_content,
body.dm-shop-single #article #post_image,
body.dm-shop-single #article #introduce_slider {
	max-width: 100% !important;
	box-sizing: border-box !important;
}
body.dm-shop-single #article .post_content img,
body.dm-shop-single #article #post_image img,
body.dm-shop-single #article #introduce_slider img,
body.dm-shop-single #article .post_content iframe {
	max-width: 100% !important;
	height: auto !important;
}
body.dm-shop-single #post_title {
	overflow-wrap: anywhere;
	word-break: keep-all;
}
body.dm-shop-single .post_content {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	box-sizing: border-box !important;
}

/* 店舗詳細: 親テーマ TCD の SNS（Post/Share/Hatena 等）はブログ向けデフォルトのため非表示 */
body.dm-shop-single #single_share_top,
body.dm-shop-single #single_share_bottom {
	display: none !important;
}

/* ---------- Accessibility ---------- */
@media (prefers-reduced-motion: reduce) {
	.dm-front *,
	.df-footer * { transition: none !important; animation: none !important; }
}

.dm-front a:focus-visible,
.dm-front button:focus-visible,
.dm-front select:focus-visible,
.df-footer a:focus-visible {
	outline: 2px solid var(--dm-yellow-deep);
	outline-offset: 2px;
	border-radius: 4px;
	box-shadow: 0 0 0 2px rgba(200, 16, 46, 0.25);
}

/* ---------------------------------------------------------------------------
 * パンくず（子テーマ nav#breadcrumb.dm-breadcrumb / 店舗系 body クラス付き）
 * 親 TCD の #breadcrumb は height+overflow や .home の span 非表示で「見えない」ことがあるため、
 * インライン CSS（functions.php wp_head 10000）と二重化して後勝ちしやすくする。
 * ------------------------------------------------------------------------ */
body.dm-shop-breadcrumb-context #breadcrumb,
body.dm-front-page-breadcrumb #breadcrumb,
#breadcrumb {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	flex: 0 0 auto !important;
	height: auto !important;
	min-height: 48px !important;
	line-height: 1.55 !important;
	padding: 12px 0 !important;
	overflow: visible !important;
	background: #eef2f7 !important;
	border-bottom: 1px solid #cbd5e1 !important;
	position: relative !important;
	z-index: 2 !important;
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box !important;
}
body.dm-shop-breadcrumb-context #breadcrumb .inner,
body.dm-front-page-breadcrumb #breadcrumb .inner,
#breadcrumb .inner {
	max-width: 1140px !important;
	margin: 0 auto !important;
	padding: 0 clamp(16px, 4vw, 24px) !important;
	box-sizing: border-box !important;
}
body.dm-shop-breadcrumb-context #breadcrumb ul,
body.dm-front-page-breadcrumb #breadcrumb ul,
#breadcrumb ul {
	overflow: visible !important;
	white-space: normal !important;
	text-overflow: clip !important;
	color: #334155 !important;
	font-size: 14px !important;
	line-height: 1.55 !important;
	list-style: none !important;
	margin: 0 !important;
}
body.dm-shop-breadcrumb-context #breadcrumb li,
body.dm-front-page-breadcrumb #breadcrumb li,
#breadcrumb li {
	display: inline !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 14px !important;
	color: #334155 !important;
	vertical-align: baseline !important;
}
body.dm-shop-breadcrumb-context #breadcrumb li a,
body.dm-front-page-breadcrumb #breadcrumb li a,
#breadcrumb li a {
	color: #0f172a !important;
	font-weight: 600 !important;
	text-decoration: none !important;
}
body.dm-shop-breadcrumb-context #breadcrumb li a:hover,
body.dm-front-page-breadcrumb #breadcrumb li a:hover,
#breadcrumb li a:hover {
	color: var(--dm-red) !important;
	text-decoration: underline !important;
}
body.dm-shop-breadcrumb-context #breadcrumb li.last,
body.dm-front-page-breadcrumb #breadcrumb li.last,
#breadcrumb li.last {
	color: #0b1220 !important;
	font-weight: 700 !important;
}
body.dm-shop-breadcrumb-context #breadcrumb li.home a span,
body.dm-front-page-breadcrumb #breadcrumb li.home a span,
#breadcrumb li.home a span {
	display: inline !important;
}
body.dm-shop-breadcrumb-context #breadcrumb li.home a:before,
body.dm-front-page-breadcrumb #breadcrumb li.home a:before,
#breadcrumb li.home a:before {
	display: none !important;
	content: none !important;
}
body.dm-shop-breadcrumb-context #breadcrumb li:after,
body.dm-front-page-breadcrumb #breadcrumb li:after,
#breadcrumb li:after {
	font-family: system-ui, -apple-system, 'Segoe UI', sans-serif !important;
	content: '›' !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	padding: 0 0.35em !important;
	color: #64748b !important;
	position: static !important;
	bottom: auto !important;
}
body.dm-shop-breadcrumb-context #breadcrumb li:last-child:after,
body.dm-front-page-breadcrumb #breadcrumb li:last-child:after,
#breadcrumb li:last-child:after {
	content: none !important;
	padding: 0 !important;
}

/* ---------- 固定ページ: 正規認定店とは ---------- */
.dm-page-authorized-wrap {
	font-family: var(--dm-font-sans);
	-webkit-font-smoothing: antialiased;
}
/* ページ全体: 白ベタ1枚に近づけ、グレー帯で「浮いたブロック」に見えないようにする */
.dm-auth-page {
	--dm-auth-pad-y: clamp(36px, 5.5vw, 64px);
	--dm-auth-pad-y-end: clamp(48px, 7vw, 96px);
	background: transparent;
}
#main_contents.dm-page-authorized-outer {
	background: var(--dm-surface);
}
.dm-page-authorized__section {
	padding-block: var(--dm-auth-pad-y);
	background: transparent;
	border-bottom: none;
}
.dm-page-authorized__section:not(:first-of-type) {
	border-top: 1px solid var(--dm-line-soft);
}
.dm-page-authorized__section:last-of-type {
	padding-bottom: var(--dm-auth-pad-y-end);
}
.dm-page-authorized__con {
	max-width: var(--dm-container);
	margin-inline: auto;
	padding-inline: 24px;
	box-sizing: border-box;
}
@media (max-width: 767px) {
	.dm-page-authorized__con { padding-inline: 16px; }
}
.dm-page-authorized__h1 {
	font-size: clamp(24px, 3.2vw, 34px);
	font-weight: 800;
	color: var(--dm-ink-900);
	letter-spacing: 0.04em;
	line-height: 1.35;
	margin: 0 0 clamp(22px, 3.2vw, 36px);
	text-align: center;
}
.dm-page-authorized__h1::after {
	content: "";
	display: block;
	width: min(120px, 28vw);
	height: 5px;
	margin: 16px auto 0;
	background: var(--dm-accent-gradient-h);
	border-radius: 999px;
}
.dm-page-authorized__bento {
	background: var(--dm-surface);
	border: 1px solid var(--dm-line);
	border-top: 3px solid var(--dm-yellow);
	border-radius: var(--dm-radius);
	box-shadow: none;
	padding: clamp(24px, 3.2vw, 40px) clamp(22px, 3.2vw, 40px);
	box-sizing: border-box;
}
.dm-page-authorized__prose {
	color: var(--dm-ink-700);
	font-size: clamp(15px, 1.05vw, 17px);
	line-height: 1.9;
	max-width: 56rem;
	margin: 0 auto;
}
.dm-page-authorized__prose p {
	margin: 0 0 1.15em;
}
.dm-page-authorized__prose p:last-child {
	margin-bottom: 0;
}
/* HFE 利用時: 親ヘッダーが出ないため #main_contents をテンプレ内で開いている。float 860px が狭い／潰れるのを防ぐ */
body.dm-site-header .dm-page-authorized-outer {
	width: 100%;
	position: relative;
	box-sizing: border-box;
}
body.dm-site-header .dm-page-authorized-article,
body.dm-site-header .dm-page-authorized-left {
	background: transparent;
	box-shadow: none;
}
body.dm-site-header .dm-page-authorized-wrap {
	width: 100% !important;
	max-width: 100% !important;
	float: none;
	clear: both;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box;
}
body.dm-site-header .dm-page-authorized-left {
	width: 100% !important;
	max-width: var(--dm-container);
	margin-left: auto !important;
	margin-right: auto !important;
	float: none !important;
	box-sizing: border-box;
}
body.dm-site-header .dm-page-authorized-article {
	width: 100%;
	float: none;
	box-sizing: border-box;
}

/* ---------------------------------------------------------------------------
 * Site hubs (personal / business / inquiry / partner-entry)
 * Parent TCD: #left_col 860px + float; #main_col is flex. Owned-media layout
 * reset lives in owned-media.css next to component styles.
 * ------------------------------------------------------------------------ */
body.dm-site-hub-body #main_contents {
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	box-sizing: border-box !important;
}
body.dm-site-hub-body #main_col {
	display: block !important;
	width: 100% !important;
	max-width: 1140px !important;
	float: none !important;
	clear: both !important;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box !important;
}
body.dm-site-hub-body #left_col {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	box-sizing: border-box !important;
}

/* 正規認定店: 6つのメリット + 施工写真 */
.dm-merits__h2 {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.15em 0.35em;
	font-size: clamp(17px, 2.1vw, 22px);
	font-weight: 800;
	color: var(--dm-ink-900);
	letter-spacing: 0.02em;
	line-height: 1.35;
	margin: 0 0 clamp(22px, 3.2vw, 36px);
}
.dm-merits__h2-slash {
	color: var(--dm-yellow-deep);
	font-weight: 900;
	font-size: 1.45em;
	line-height: 1;
	transform: skewX(-8deg);
	display: inline-block;
}
.dm-merits__h2-line {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25em 0.35em;
}
.dm-merits__h2-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	vertical-align: middle;
}
.dm-merits__h2-num-inner {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.85em;
	height: 1.85em;
	padding: 0 0.15em;
	border-radius: 999px;
	background: transparent;
	border: 2px solid var(--dm-yellow-deep);
	color: var(--dm-yellow-deep);
	font-size: 1.12em;
	font-weight: 900;
	line-height: 1;
	box-sizing: border-box;
}
/* 左: メリット 6 球を 3 列×2 行 / 右: 写真（小さめで見切れ防止） */
.dm-merits__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, auto);
	align-items: center;
	column-gap: clamp(18px, 2.8vw, 36px);
	row-gap: clamp(22px, 3.2vw, 32px);
}
.dm-merits__circles-col {
	min-width: 0;
}
.dm-merits__circles {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(10px, 1.8vw, 18px);
	width: 100%;
}
.dm-merits__circle {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	box-sizing: border-box;
	width: 100%;
	max-width: min(100%, 168px);
	aspect-ratio: 1;
	margin-inline: auto;
	padding: 0.5em 0.42em;
	border-radius: 50%;
	border: 3px solid var(--dm-yellow);
	background: var(--dm-surface);
	color: var(--dm-yellow-deep);
	position: relative;
	box-shadow: none;
}
.dm-merits__circle:nth-child(odd) {
	background: var(--dm-yellow);
	border-color: var(--dm-yellow);
}
.dm-merits__circle:nth-child(odd) .dm-merits__circle-kicker,
.dm-merits__circle:nth-child(odd) .dm-merits__circle-lead {
	color: #ffffff;
}
.dm-merits__circle-kicker {
	display: block;
	font-size: clamp(10px, 1.35vw, 12px);
	font-weight: 600;
	line-height: 1.35;
	margin-bottom: 0.35em;
}
.dm-merits__circle-lead {
	display: block;
	font-size: clamp(11px, 1.5vw, 13px);
	font-weight: 800;
	line-height: 1.4;
	margin: 0;
}
.dm-merits__visual {
	min-width: 0;
	width: 100%;
	max-width: 260px;
	justify-self: end;
	align-self: center;
}
.dm-merits__figure {
	position: relative;
	margin: 0;
	width: 100%;
	max-width: 260px;
	margin-inline: 0;
	margin-left: auto;
	box-sizing: border-box;
}
.dm-merits__photo {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	border-radius: var(--dm-radius-sm);
	border: 1px solid var(--dm-line);
	box-shadow: none;
	mask-image: radial-gradient(ellipse 94% 92% at 50% 50%, #000 78%, transparent 100%);
	-webkit-mask-image: radial-gradient(ellipse 94% 92% at 50% 50%, #000 78%, transparent 100%);
}
.dm-merits__bubble {
	position: absolute;
	right: -4px;
	top: -6px;
	width: min(48%, 118px);
	aspect-ratio: 1;
	margin: 0;
	padding: 0.65em 0.5em;
	border-radius: 50%;
	background: var(--dm-yellow);
	color: var(--dm-ink-900);
	font-size: clamp(9px, 2.2vw, 11px);
	font-weight: 800;
	line-height: 1.35;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	border: 1px solid rgba(212, 190, 0, 0.45);
	box-shadow: none;
	z-index: 2;
}
.dm-merits__bubble-line {
	display: block;
}
@media (max-width: 960px) {
	.dm-merits__body {
		grid-template-columns: 1fr;
		align-items: stretch;
	}
	.dm-merits__visual {
		justify-self: center;
		max-width: min(260px, 72vw);
	}
	.dm-merits__figure {
		margin-inline: auto;
		max-width: min(260px, 72vw);
	}
	.dm-merits__circles-col {
		max-width: 100%;
	}
}
@media (max-width: 520px) {
	.dm-merits__circles {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.dm-merits__circle {
		max-width: min(100%, 200px);
	}
}
@media (max-width: 360px) {
	.dm-merits__circles {
		grid-template-columns: 1fr;
	}
	.dm-merits__circle {
		max-width: 220px;
	}
}

/* ---------- 正規認定店: 業種別のご案内 ---------- */
.dm-biz__panel {
	background: var(--dm-surface-soft);
	border: 1px solid var(--dm-line);
	border-radius: var(--dm-radius);
	box-shadow: none;
	padding: clamp(22px, 3vw, 32px) clamp(18px, 2.8vw, 28px);
	box-sizing: border-box;
}
.dm-biz__title {
	font-size: clamp(16px, 1.9vw, 19px);
	font-weight: 700;
	color: var(--dm-ink-700);
	letter-spacing: 0.06em;
	margin: 0 0 clamp(18px, 2.5vw, 24px);
	padding-left: 14px;
	border-left: 4px solid var(--dm-yellow);
	font-family: var(--dm-font-sans);
}
.dm-biz__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(14px, 2.2vw, 24px);
}
.dm-biz__aside {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	align-self: center;
	gap: 8px 10px;
	flex: 0 0 auto;
	color: var(--dm-ink-500);
}
.dm-biz__example {
	font-size: 15px;
	font-weight: 700;
	color: var(--dm-ink-500);
	letter-spacing: 0.04em;
}
.dm-biz__point {
	display: inline-flex;
	color: var(--dm-ink-400);
	line-height: 0;
}
.dm-biz__hand {
	display: block;
	width: 44px;
	height: auto;
}
.dm-biz__check {
	font-family: Georgia, 'Times New Roman', 'Noto Serif JP', serif;
	font-size: 14px;
	font-weight: 600;
	font-style: italic;
	color: var(--dm-ink-500);
	letter-spacing: 0.02em;
}
.dm-biz__pills {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	flex: 1 1 280px;
	gap: clamp(10px, 1.5vw, 16px);
	align-items: center;
	align-self: center;
	justify-content: flex-start;
	min-width: 0;
}
.dm-biz__pill-item {
	margin: 0;
	padding: 0;
	flex: 1 1 200px;
	min-width: min(100%, 200px);
	max-width: 100%;
}
.dm-biz__pill {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 3.25rem;
	padding: 0.75em 1.15em;
	box-sizing: border-box;
	width: 100%;
	font-size: clamp(13px, 1.35vw, 15px);
	font-weight: 600;
	color: var(--dm-ink-700);
	text-align: center;
	text-decoration: none;
	line-height: 1.45;
	background: var(--dm-surface);
	border: 1px solid var(--dm-line);
	border-radius: 999px;
	box-shadow: none;
	transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.dm-biz__pill:hover {
	color: var(--dm-red);
	border-color: rgba(200, 16, 46, 0.35);
	background: var(--dm-surface);
}
.dm-biz__pill:focus-visible {
	outline: 2px solid var(--dm-red);
	outline-offset: 3px;
}
@media (max-width: 600px) {
	.dm-biz__row {
		flex-direction: column;
		align-items: flex-start;
	}
	.dm-biz__pills {
		width: 100%;
	}
	.dm-biz__pill-item {
		flex: 1 1 100%;
		min-width: 0;
	}
}

/* ---------- 正規認定店: サービス紹介（ヒーロー2カラム＋特徴・動画） ---------- */
.dm-auth-svc__lead {
	font-size: clamp(14px, 1.35vw, 16px);
	line-height: 1.85;
	color: var(--dm-ink-700);
	margin: 0 auto clamp(26px, 3.5vw, 40px);
	max-width: 48rem;
	text-align: center;
}
.dm-auth-svc__cols {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(120px, 188px);
	align-items: center;
	gap: clamp(18px, 2.5vw, 32px);
}
.dm-auth-svc__visual {
	min-width: 0;
}
.dm-auth-svc__main {
	min-width: 0;
	background: var(--dm-surface-soft);
	border: 1px solid var(--dm-line);
	border-radius: var(--dm-radius);
	box-shadow: none;
	padding: clamp(18px, 2.4vw, 26px) clamp(16px, 2.2vw, 22px);
	box-sizing: border-box;
}
.dm-auth-svc__figure {
	position: relative;
	margin: 0;
	border-radius: var(--dm-radius);
	overflow: hidden;
	border: 1px solid var(--dm-line);
	box-shadow: none;
	background: var(--dm-line-soft);
	aspect-ratio: 16 / 9;
}
.dm-auth-svc__figure::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 38%;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(to bottom, rgba(15, 23, 42, 0.28) 0%, rgba(15, 23, 42, 0) 100%);
}
.dm-auth-svc__photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 42%;
}
.dm-auth-svc__overlay {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	margin: 0;
	padding: clamp(18px, 4.5vw, 30px) clamp(12px, 2.5vw, 18px) clamp(14px, 3vw, 22px);
	background: linear-gradient(
		to top,
		rgba(15, 23, 42, 0.78) 0%,
		rgba(15, 23, 42, 0.32) 52%,
		rgba(15, 23, 42, 0) 100%
	);
	box-sizing: border-box;
}
.dm-auth-svc__overlay-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 10px 14px;
}
.dm-auth-svc__overlay-logo {
	display: block;
	height: clamp(26px, 4.5vw, 36px);
	width: auto;
	max-width: min(38%, 120px);
	object-fit: contain;
	filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.45));
}
.dm-auth-svc__overlay-tagline {
	margin: 0;
	font-size: clamp(13px, 2vw, 18px);
	font-weight: 800;
	color: #ffffff;
	line-height: 1.5;
	letter-spacing: 0.03em;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
	max-width: 18em;
}
.dm-auth-svc__note {
	font-size: clamp(12px, 1.15vw, 13px);
	font-weight: 600;
	color: var(--dm-ink-500);
	margin: 0 0 0.5em;
	line-height: 1.55;
}
.dm-auth-svc__asterisk {
	font-weight: 600;
	color: var(--dm-ink-500);
}
.dm-auth-svc__h2 {
	font-size: clamp(20px, 2.4vw, 28px);
	font-weight: 800;
	color: var(--dm-ink-900);
	line-height: 1.3;
	margin: 0 0 0.4em;
	padding: 0.12em 0 0.18em;
	border-top: 3px solid var(--dm-yellow);
	border-bottom: 3px solid var(--dm-yellow);
	font-family: var(--dm-font-sans);
	letter-spacing: 0.02em;
}
.dm-auth-svc__tagline {
	font-size: clamp(14px, 1.4vw, 16px);
	font-weight: 700;
	color: var(--dm-ink-700);
	margin: 0 0 1em;
	line-height: 1.55;
}
.dm-auth-svc__feat {
	border: 1px solid var(--dm-line-soft);
	border-radius: var(--dm-radius-sm);
	overflow: hidden;
	background: var(--dm-surface-soft);
}
.dm-auth-svc__feat-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: 8px 10px;
	align-items: center;
	padding: 10px 12px;
	border-bottom: 1px solid var(--dm-line);
	box-sizing: border-box;
}
.dm-auth-svc__feat-row:last-child {
	border-bottom: 0;
}
.dm-auth-svc__feat-label {
	font-size: clamp(12px, 1.2vw, 14px);
	font-weight: 700;
	color: var(--dm-ink-700);
	line-height: 1.4;
}
.dm-auth-svc__tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.35em 0.65em;
	font-size: clamp(11px, 1.05vw, 12px);
	font-weight: 800;
	color: var(--dm-ink-900);
	background: var(--dm-yellow);
	border-radius: 6px;
	line-height: 1.25;
	white-space: nowrap;
	box-sizing: border-box;
}
.dm-auth-svc__video {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 0;
	border: none;
	border-radius: 0;
	background: transparent;
	text-decoration: none;
	color: inherit;
	box-shadow: none;
	transition: opacity 0.15s ease;
	box-sizing: border-box;
}
.dm-auth-svc__video:hover {
	opacity: 0.9;
}
.dm-auth-svc__video:focus-visible {
	outline: 2px solid var(--dm-red);
	outline-offset: 4px;
	border-radius: 4px;
}
.dm-auth-svc__video-cap {
	font-size: 11px;
	font-weight: 700;
	color: var(--dm-ink-500);
	text-align: center;
	line-height: 1.35;
	max-width: 12em;
}
.dm-auth-svc__video-frame {
	position: relative;
	display: block;
	width: 100%;
	max-width: 176px;
	margin-inline: auto;
	border-radius: 14px;
	overflow: hidden;
	aspect-ratio: 9 / 16;
	background: #e2e8f0;
	border: 1px solid var(--dm-line);
	box-shadow: none;
}
.dm-auth-svc__video-thumb {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.dm-auth-svc__video-frame iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}
.dm-auth-svc__video-play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}
.dm-auth-svc__video-play svg {
	width: 40px;
	height: 40px;
	filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.25));
}
.dm-auth-svc__video-meta {
	font-size: 11px;
	font-weight: 700;
	color: var(--dm-ink-500);
	text-align: center;
	letter-spacing: 0.02em;
	line-height: 1.35;
}

/* ---------- カーコーティング: サービス紹介（ヒーロー2カラム＋特徴・動画） ---------- */
.dm-page-authorized__section--service {
	position: relative;
	padding-bottom: clamp(28px, 4vw, 40px);
}
.dm-page-authorized__section--service::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: clamp(36px, 6vw, 52px) solid transparent;
	border-right: clamp(36px, 6vw, 52px) solid transparent;
	border-top: clamp(20px, 3.2vw, 30px) solid var(--dm-yellow);
	pointer-events: none;
}
.dm-svc__hero {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
	align-items: center;
	gap: clamp(22px, 3.5vw, 44px);
	margin-bottom: clamp(26px, 3.5vw, 40px);
}

/* ---- 左：ピッチ（手書きコピー） ---- */
.dm-svc__pitch {
	position: relative;
	min-width: 0;
	padding: clamp(42px, 6.2vw, 62px) 0 clamp(56px, 8vw, 82px);
}

/* サンバースト（ギザギザ黄色バッジ）— 左上 */
.dm-svc__sunburst {
	position: absolute;
	top: clamp(-2px, -0.2vw, -4px);
	left: clamp(2px, 0.3vw, 6px);
	width: clamp(84px, 11.2vw, 118px);
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	background: radial-gradient(circle at 35% 30%, #fff06a 0%, var(--dm-yellow) 55%, #f2c400 100%);
	box-shadow: 0 4px 14px rgba(230, 184, 0, 0.35);
	/* 20 spike burst */
	clip-path: polygon(
		50% 0%, 58% 12%, 68% 6%, 72% 19%, 84% 14%, 82% 29%, 94% 28%, 88% 40%,
		100% 46%, 90% 56%, 100% 68%, 86% 71%, 91% 84%, 78% 82%, 76% 95%, 66% 88%,
		60% 100%, 50% 92%, 40% 100%, 34% 88%, 24% 95%, 22% 82%, 9% 84%, 14% 71%,
		0% 68%, 10% 56%, 0% 46%, 12% 40%, 6% 28%, 18% 29%, 16% 14%, 28% 19%,
		32% 6%, 42% 12%
	);
	transform: rotate(-10deg);
}
.dm-svc__sunburst-text {
	font-family: var(--dm-font-sans);
	font-size: clamp(12px, 1.45vw, 15px);
	font-weight: 900;
	line-height: 1.15;
	color: var(--dm-ink-900);
	letter-spacing: -0.01em;
	transform: rotate(4deg);
}

/* 高級 高付加価値 の吹き出し（半透明グレー） */
.dm-svc__tier-badge {
	position: absolute;
	top: clamp(6px, 0.8vw, 12px);
	left: clamp(120px, 16vw, 168px);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 0.45em 0.9em;
	font-size: clamp(10px, 1.05vw, 12px);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.04em;
	color: #ffffff;
	background: rgba(115, 125, 140, 0.78);
	border-radius: 50%;
	min-width: clamp(54px, 6.8vw, 64px);
	min-height: clamp(54px, 6.8vw, 64px);
	transform: rotate(-4deg);
	box-sizing: border-box;
	box-shadow: 0 4px 10px rgba(100, 116, 139, 0.15);
}

/* 見出し（手書き／マーカー風） */
.dm-svc__headline {
	margin: clamp(10px, 1.2vw, 14px) 0 clamp(14px, 2vw, 22px);
	font-family: var(--dm-font-sans);
	font-weight: 900;
	line-height: 0.98;
	letter-spacing: -0.04em;
	padding-left: clamp(20px, 3.2vw, 40px);
}
.dm-svc__hl-line {
	display: block;
}
.dm-svc__hl-line--1 {
	white-space: nowrap;
}
.dm-svc__hl-line--2 {
	padding-left: clamp(96px, 12vw, 136px);
	margin-top: clamp(-4px, -0.3vw, -2px);
}
.dm-svc__hl {
	font-size: clamp(30px, 4.4vw, 48px);
	color: var(--dm-ink-900);
	display: inline-block;
	transform: translateY(0);
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.78);
}
.dm-svc__hl--red {
	color: var(--dm-red);
	font-size: clamp(38px, 5.4vw, 62px);
	transform: rotate(-2deg) translateY(0.01em);
	margin-right: 0.02em;
	text-shadow:
		-1px -1px 0 rgba(255, 255, 255, 0.92),
		1px -1px 0 rgba(255, 255, 255, 0.92),
		-1px 1px 0 rgba(255, 255, 255, 0.92),
		1px 1px 0 rgba(255, 255, 255, 0.92);
}
.dm-svc__hl--small {
	font-size: clamp(24px, 3.4vw, 34px);
	margin: 0 0.05em 0 -0.02em;
}
.dm-svc__hl--tilt {
	transform: rotate(-1.5deg) translateY(0.02em);
}
.dm-svc__hl--tilt-soft {
	transform: rotate(-3deg) translateY(0.02em);
}
.dm-svc__hl--tail {
	margin-left: 0.08em;
	transform: translateY(0.04em);
}

/* 赤い朱印（書道風） */
.dm-svc__stamp {
	position: absolute;
	right: clamp(4px, 2vw, 32px);
	bottom: clamp(-6px, 0.5vw, 6px);
	margin: 0;
	width: clamp(128px, 15.6vw, 160px);
	aspect-ratio: 1 / 1;
	display: grid;
	place-items: center;
	text-align: center;
	transform: rotate(-9deg);
}
/* 筆で一筆書いた赤い丸（SVG フィルタで輪郭をかすれさせる） */
.dm-svc__stamp-ring {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: clamp(6px, 0.9vw, 9px) solid var(--dm-red);
	border-right-color: rgba(200, 16, 46, 0.78);
	border-bottom-color: rgba(200, 16, 46, 0.6);
	filter: url(#dm-svc-brush-strong);
	pointer-events: none;
}
/* 内側に散らす白のかすれ（筆の抜け） */
.dm-svc__stamp::before,
.dm-svc__stamp::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	pointer-events: none;
}
.dm-svc__stamp::before {
	background:
		radial-gradient(16px 10px at 80% 24%, #ffffff 0%, rgba(255, 255, 255, 0.98) 40%, transparent 44%),
		radial-gradient(12px 14px at 22% 68%, #ffffff 0%, rgba(255, 255, 255, 0.98) 40%, transparent 44%),
		radial-gradient(14px 10px at 78% 80%, #ffffff 0%, rgba(255, 255, 255, 0.92) 34%, transparent 38%);
	mix-blend-mode: screen;
	opacity: 0.9;
	z-index: 2;
}
.dm-svc__stamp::after {
	background-image:
		repeating-radial-gradient(
			circle at 50% 50%,
			transparent 0 5px,
			rgba(255, 255, 255, 0.35) 5px 6px,
			transparent 6px 11px
		);
	mix-blend-mode: screen;
	opacity: 0.3;
	z-index: 2;
}
.dm-svc__stamp-inner {
	font-family: var(--dm-font-sans);
	font-size: clamp(12px, 1.32vw, 13px);
	font-weight: 900;
	line-height: 1.35;
	color: var(--dm-red);
	letter-spacing: -0.02em;
	text-shadow:
		-1px -1px 0 rgba(255, 255, 255, 0.96),
		1px -1px 0 rgba(255, 255, 255, 0.96),
		-1px 1px 0 rgba(255, 255, 255, 0.96),
		1px 1px 0 rgba(255, 255, 255, 0.96);
	transform: rotate(6deg);
	position: relative;
	z-index: 3;
}

/* 下部の黄色マーカーコピー */
.dm-svc__pitch-foot {
	margin: 0;
	font-family: var(--dm-font-sans);
	font-size: clamp(18px, 2vw, 24px);
	font-weight: 900;
	line-height: 1.32;
	color: #d4ad00;
	letter-spacing: -0.03em;
	padding-left: clamp(70px, 10vw, 110px);
}
.dm-svc__pitch-foot-line {
	display: inline-block;
	color: #d4ad00;
}
.dm-svc__pitch-foot-strong {
	display: inline-block;
	margin-top: 0.15em;
	font-size: 1.18em;
	font-weight: 700;
	background-image: linear-gradient(transparent 56%, rgba(254, 222, 0, 0.95) 56%, rgba(254, 222, 0, 0.95) 92%, transparent 92%);
	padding: 0 0.15em;
}

/* ---- 右：商品ティザー ---- */
.dm-svc__product {
	position: relative;
	min-width: 0;
	padding: clamp(4px, 0.8vw, 8px) clamp(2px, 0.4vw, 6px);
}
/* 背景に薄くサンバーストの光線 */
.dm-svc__product::before {
	content: "";
	position: absolute;
	inset: clamp(-10px, -1vw, -20px);
	z-index: 0;
	pointer-events: none;
	background:
		repeating-conic-gradient(from 90deg at 50% 38%, rgba(254, 222, 0, 0.08) 0deg 6deg, transparent 6deg 14deg);
	mask-image: radial-gradient(ellipse at 50% 38%, #000 0%, rgba(0, 0, 0, 0.4) 45%, transparent 70%);
	-webkit-mask-image: radial-gradient(ellipse at 50% 38%, #000 0%, rgba(0, 0, 0, 0.4) 45%, transparent 70%);
}
.dm-svc__product > * {
	position: relative;
	z-index: 1;
}
.dm-svc__kicker {
	margin: 0 0 0.55em;
	font-size: clamp(10px, 0.98vw, 12px);
	font-weight: 600;
	color: var(--dm-ink-500);
	letter-spacing: 0.08em;
	text-align: left;
}
.dm-svc__brand-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
	margin-bottom: 0.45em;
}
.dm-svc__brand-logo-wrap {
	flex: 0 0 auto;
	background: transparent;
	padding: 0;
	border-radius: 0;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.dm-svc__brand-logo {
	display: block;
	height: clamp(38px, 4.6vw, 48px);
	width: auto;
	max-width: 100%;
	object-fit: contain;
}
.dm-svc__brand-tagline {
	margin: 0;
	flex: 1 1 140px;
	min-width: 0;
	font-size: clamp(14px, 1.45vw, 16px);
	font-weight: 800;
	line-height: 1.35;
	color: var(--dm-ink-900);
	letter-spacing: -0.02em;
}
.dm-svc__accent-word {
	display: inline-block;
	margin: 0 0.1em;
	font-size: 1.4em;
	font-weight: 900;
	color: var(--dm-red);
	letter-spacing: 0.02em;
}
.dm-svc__brand-suffix {
	font-weight: 700;
}
.dm-svc__brand-desc {
	margin: 0 0 clamp(8px, 1vw, 10px);
	font-size: clamp(11px, 1vw, 12px);
	font-weight: 500;
	line-height: 1.45;
	color: var(--dm-ink-700);
}
.dm-svc__brand-desc strong {
	font-weight: 800;
	color: var(--dm-ink-900);
}
/* 車内写真（横長トリミング） */
.dm-svc__product .dm-svc__figure {
	position: relative;
	margin: 0;
	border-radius: var(--dm-radius);
	overflow: hidden;
	border: 1px solid var(--dm-line);
	box-shadow: none;
	background: var(--dm-line-soft);
	aspect-ratio: 16 / 9;
}
.dm-svc__product .dm-svc__figure::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 34%;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(to bottom, rgba(15, 23, 42, 0.18) 0%, rgba(15, 23, 42, 0) 100%);
}
.dm-svc__photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 42%;
}
.dm-svc__overlay {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	margin: 0;
	padding: clamp(16px, 3.8vw, 28px) clamp(12px, 2.5vw, 18px) clamp(14px, 3vw, 22px);
	background: linear-gradient(
		to top,
		rgba(15, 23, 42, 0.9) 0%,
		rgba(15, 23, 42, 0.46) 50%,
		rgba(15, 23, 42, 0) 100%
	);
	box-sizing: border-box;
}
.dm-svc__overlay-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 8px 12px;
}
.dm-svc__overlay-logo {
	display: block;
	height: clamp(22px, 3.8vw, 28px);
	width: auto;
	max-width: min(34%, 96px);
	object-fit: contain;
	filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.45));
}
.dm-svc__overlay-tagline {
	margin: 0;
	font-size: clamp(18px, 2.6vw, 22px);
	font-weight: 800;
	color: #ffffff;
	line-height: 1.35;
	letter-spacing: 0.01em;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
	max-width: 14em;
}
.dm-svc__lead {
	font-size: clamp(14px, 1.35vw, 16px);
	line-height: 1.85;
	color: var(--dm-ink-700);
	margin: 0 auto clamp(22px, 3vw, 32px);
	max-width: 48rem;
	text-align: center;
}
.dm-svc__cols {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(120px, 188px);
	align-items: start;
	gap: clamp(18px, 2.5vw, 32px);
}
.dm-svc__cols--extras {
	align-items: stretch;
}
.dm-svc__main {
	min-width: 0;
	background: var(--dm-surface-soft);
	border: 1px solid var(--dm-line);
	border-radius: var(--dm-radius);
	box-shadow: none;
	padding: clamp(18px, 2.4vw, 26px) clamp(16px, 2.2vw, 22px);
	box-sizing: border-box;
}
.dm-svc__note {
	font-size: clamp(12px, 1.15vw, 13px);
	font-weight: 600;
	color: var(--dm-ink-500);
	margin: 0 0 0.5em;
	line-height: 1.55;
}
.dm-svc__asterisk {
	font-weight: 600;
	color: var(--dm-ink-500);
}
.dm-svc__h2 {
	font-size: clamp(20px, 2.4vw, 28px);
	font-weight: 800;
	color: var(--dm-ink-900);
	line-height: 1.3;
	margin: 0 0 0.4em;
	padding: 0.12em 0 0.18em;
	border-top: 3px solid var(--dm-yellow);
	border-bottom: 3px solid var(--dm-yellow);
	font-family: var(--dm-font-sans);
	letter-spacing: 0.02em;
}
.dm-svc__tagline {
	font-size: clamp(14px, 1.4vw, 16px);
	font-weight: 700;
	color: var(--dm-ink-700);
	margin: 0 0 1em;
	line-height: 1.55;
}
.dm-svc__feat {
	border: 1px solid var(--dm-line-soft);
	border-radius: var(--dm-radius-sm);
	overflow: hidden;
	background: var(--dm-surface-soft);
}
.dm-svc__feat-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: 8px 10px;
	align-items: center;
	padding: 10px 12px;
	border-bottom: 1px solid var(--dm-line);
	box-sizing: border-box;
}
.dm-svc__feat-row:last-child {
	border-bottom: 0;
}
.dm-svc__feat-label {
	font-size: clamp(12px, 1.2vw, 14px);
	font-weight: 700;
	color: var(--dm-ink-700);
	line-height: 1.4;
}
.dm-svc__tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.35em 0.65em;
	font-size: clamp(11px, 1.05vw, 12px);
	font-weight: 800;
	color: var(--dm-ink-900);
	background: var(--dm-yellow);
	border-radius: 6px;
	line-height: 1.25;
	white-space: nowrap;
	box-sizing: border-box;
}
/* 縦動画向け：枠・背景装飾を抑えたシンプルなカード */
.dm-svc__video {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 0;
	border: none;
	border-radius: 0;
	background: transparent;
	text-decoration: none;
	color: inherit;
	box-shadow: none;
	transition: opacity 0.15s ease;
	box-sizing: border-box;
}
.dm-svc__video:hover {
	opacity: 0.9;
}
.dm-svc__video:focus-visible {
	outline: 2px solid var(--dm-red);
	outline-offset: 4px;
	border-radius: 4px;
}
.dm-svc__video-cap {
	font-size: 11px;
	font-weight: 700;
	color: var(--dm-ink-500);
	text-align: center;
	line-height: 1.35;
	max-width: 12em;
}
.dm-svc__video-frame {
	position: relative;
	display: block;
	width: 100%;
	max-width: 176px;
	margin-inline: auto;
	border-radius: 14px;
	overflow: hidden;
	aspect-ratio: 9 / 16;
	background: #e2e8f0;
	border: 1px solid var(--dm-line);
	box-shadow: none;
}
.dm-svc__video-thumb {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.dm-svc__video-play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}
.dm-svc__video-play svg {
	width: 40px;
	height: 40px;
	filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.25));
}
.dm-svc__video-meta {
	font-size: 11px;
	font-weight: 700;
	color: var(--dm-ink-500);
	text-align: center;
	letter-spacing: 0.02em;
	line-height: 1.35;
}
@media (max-width: 960px) {
	.dm-auth-svc__cols {
		grid-template-columns: 1fr;
	}
	.dm-auth-svc__aside {
		max-width: none;
		margin-inline: auto;
		width: auto;
	}
	.dm-auth-svc__video-frame {
		max-width: min(200px, 52vw);
	}
	.dm-auth-svc__lead {
		text-align: left;
		margin-left: 0;
		margin-right: 0;
		max-width: none;
	}
	.dm-svc__hero {
		grid-template-columns: 1fr;
	}
	.dm-svc__pitch {
		padding: clamp(48px, 12vw, 64px) 0 clamp(38px, 8vw, 52px);
	}
	.dm-svc__headline {
		padding-left: clamp(8px, 2vw, 14px);
	}
	.dm-svc__hl-line--1 {
		white-space: normal;
	}
	.dm-svc__hl-line--2 {
		padding-left: clamp(28px, 6vw, 52px);
	}
	.dm-svc__pitch-foot {
		padding-left: clamp(24px, 6vw, 42px);
	}
	.dm-svc__stamp {
		right: clamp(-2px, 2vw, 12px);
		bottom: clamp(66px, 14vw, 98px);
	}
	.dm-svc__cols {
		grid-template-columns: 1fr;
	}
	.dm-svc__aside {
		max-width: none;
		margin-inline: auto;
		width: auto;
	}
	.dm-svc__video-frame {
		max-width: min(200px, 52vw);
	}
	.dm-svc__lead {
		text-align: left;
		margin-left: 0;
		margin-right: 0;
		max-width: none;
	}
}
@media (max-width: 520px) {
	.dm-auth-svc__feat-row {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.dm-auth-svc__tag {
		white-space: normal;
		justify-self: start;
	}
	.dm-svc__sunburst {
		width: 82px;
	}
	.dm-svc__tier-badge {
		left: 94px;
		min-width: 52px;
		min-height: 52px;
		font-size: 10px;
	}
	.dm-svc__headline {
		margin-top: 6px;
	}
	.dm-svc__hl {
		font-size: clamp(24px, 8vw, 34px);
	}
	.dm-svc__hl--red {
		font-size: clamp(30px, 9vw, 42px);
	}
	.dm-svc__hl--small {
		font-size: clamp(18px, 5.4vw, 24px);
	}
	.dm-svc__stamp {
		position: relative;
		right: auto;
		bottom: auto;
		margin: 12px 0 0 auto;
	}
	.dm-svc__pitch-foot {
		padding-left: 0;
		font-size: clamp(16px, 5vw, 20px);
	}
	.dm-svc__feat-row {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.dm-svc__tag {
		white-space: normal;
		justify-self: start;
	}
}

/* ---------- 正規認定店: スタートまでの流れ（マークアップのみ・画像不要） ---------- */
.dm-flow__heading {
	margin: 0 0 clamp(22px, 3.2vw, 36px);
	text-align: center;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
}
.dm-flow__heading-label {
	display: inline-block;
	padding: 0.55em 2.2em;
	font-size: clamp(14px, 1.5vw, 16px);
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #ffffff;
	background: var(--dm-ink-500);
	clip-path: polygon(0.65rem 0, calc(100% - 0.65rem) 0, 100% 50%, calc(100% - 0.65rem) 100%, 0.65rem 100%, 0 50%);
	box-shadow: none;
}
.dm-flow__layout {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: clamp(14px, 2vw, 22px);
}
.dm-flow__steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: center;
	gap: clamp(10px, 1.5vw, 14px);
	flex: 1 1 320px;
}
.dm-flow__step {
	margin: 0;
	flex: 1 1 120px;
	min-width: min(100%, 118px);
	max-width: 160px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 0.85em 0.65em;
	box-sizing: border-box;
	background: var(--dm-surface-soft);
	border: 1px solid var(--dm-line);
	border-radius: var(--dm-radius-sm);
	box-shadow: none;
}
.dm-flow__step-text {
	font-size: clamp(12px, 1.2vw, 14px);
	font-weight: 700;
	color: var(--dm-ink-900);
	line-height: 1.45;
}
.dm-flow__bubble {
	position: relative;
	flex: 1 1 220px;
	max-width: min(100%, 320px);
	margin: 0;
	padding: 0.85em 1em 0.85em 1.15em;
	font-size: clamp(11px, 1.15vw, 13px);
	font-weight: 600;
	line-height: 1.55;
	color: var(--dm-ink-700);
	background: var(--dm-surface-soft);
	border: 1px solid var(--dm-line);
	border-radius: 999px;
	box-shadow: none;
	box-sizing: border-box;
}
.dm-flow__bubble::before {
	content: "";
	position: absolute;
	left: -7px;
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
	width: 12px;
	height: 12px;
	background: var(--dm-surface);
	border-left: 1px solid var(--dm-line);
	border-bottom: 1px solid var(--dm-line);
	box-sizing: border-box;
}
@media (max-width: 720px) {
	.dm-flow__layout {
		flex-direction: column;
		align-items: stretch;
	}
	.dm-flow__steps {
		flex-direction: column;
		max-width: 280px;
		margin-inline: auto;
	}
	.dm-flow__step {
		max-width: none;
	}
	.dm-flow__bubble {
		max-width: none;
	}
	.dm-flow__bubble::before {
		left: 50%;
		top: -7px;
		transform: translateX(-50%) rotate(135deg);
	}
}
