/*
 * deai-techo front page v7 移植版スタイル（名前空間 dt-front-v2*）.
 *
 * 現行 front-page.css（handle: deaitecho-front-page / 名前空間 dt-front*）とは
 * 衝突しない。enqueue は deps=array('deaitecho-front-page') で読み込み順を後ろに固定。
 * v7 の .post_content ...::before{content:none} 打ち消しと <style> インラインは
 * テンプレ出力（.post_content 外）では不要なので持ち込まない。
 */

.dt-front-v2,
.dt-front-v2 * { box-sizing: border-box; }

.dt-front-v2 {
	--dt-main: #9C4A38;
	--dt-main-soft: #F3E3D8;
	--dt-paper: #F5EFE6;
	--dt-ink: #211C18;
	--dt-muted: #6B5F55;
	--dt-border: #E3D9CB;
	--dt-white: #FBF8F3;
	width: min(100%, 920px);
	margin-inline: auto;
	color: var(--dt-ink);
	font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
}

/* R18 / PR 注記 */
.dt-front-v2-r18 {
	margin: 0 0 8px;
	color: var(--dt-muted);
	font-size: .82rem;
	text-align: center;
	line-height: 1.7;
}

.dt-front-v2-section,
.dt-front-v2-latest { margin-block: clamp(48px, 8vw, 84px); }

/* hero */
.dt-front-v2-hero { margin-block: clamp(40px, 6vw, 64px); }
.dt-front-v2-hero__title {
	margin: 0 0 6px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--dt-ink);
	font-size: clamp(2rem, 5.5vw, 3rem);
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .02em;
}
.dt-front-v2-hero__sub {
	color: var(--dt-muted);
	font-size: clamp(1rem, 2.4vw, 1.25rem);
	font-weight: 700;
	letter-spacing: .01em;
}
.dt-front-v2-hero__tagline {
	margin: 0;
	color: var(--dt-main);
	font-size: clamp(1.02rem, 2.2vw, 1.25rem);
	font-weight: 800;
}

/* section head */
.dt-front-v2-section__title {
	position: relative;
	margin: 0;
	padding: 0 0 14px;
	border: 0;
	background: transparent;
	color: var(--dt-ink);
	font-size: clamp(1.45rem, 3vw, 2rem);
	font-weight: 800;
	line-height: 1.35;
}
.dt-front-v2-section__lead { margin: 0; color: var(--dt-muted); max-width: 720px; line-height: 1.85; }

/* entrance cards */
.dt-front-v2-entrance {
	display: grid;
	width: min(100%, 860px);
	gap: clamp(34px, 5vw, 50px);
	margin: 30px auto 0;
}
.dt-front-v2-entrance__card { position: relative; min-width: 0; padding-bottom: 36px; }
.dt-front-v2-entrance__link { display: block; color: inherit; text-decoration: none; cursor: pointer; touch-action: manipulation; }
.dt-front-v2-entrance__banner {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 334 / 192;
	object-fit: cover;
}
.dt-front-v2-entrance__button {
	position: absolute;
	right: clamp(20px, 4vw, 28px);
	bottom: 0;
	display: grid;
	place-items: center;
	width: clamp(84px, 16vw, 116px);
	height: clamp(84px, 16vw, 116px);
	border: 1px solid var(--dt-paper);
	border-radius: 0;
	background: var(--dt-ink);
	color: var(--dt-white);
	transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1), background-color 180ms ease;
}
.dt-front-v2-entrance__button span { font-family: Arial, sans-serif; font-size: 30px; font-weight: 300; line-height: 1; }
.dt-front-v2-entrance__card--alt .dt-front-v2-entrance__button { right: auto; left: clamp(20px, 4vw, 28px); }
.dt-front-v2-entrance__link:hover .dt-front-v2-entrance__button { background: #35291F; transform: translateY(-2px); }

/* shelves */
.dt-front-v2-shelves {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 42px 34px;
	margin-top: 34px;
}
.dt-front-v2-shelf { min-width: 0; padding-top: 18px; border-top: 4px solid var(--dt-main); }
.dt-front-v2-shelf__head { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 12px; align-items: start; }
.dt-front-v2-shelf__num {
	margin: 4px 0 0;
	color: var(--dt-main);
	font-family: Arial, sans-serif;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .08em;
}
.dt-front-v2-shelf h3 { margin: 0; padding: 0 0 7px; border: 0; background: transparent; color: var(--dt-ink); font-size: 1.25rem; line-height: 1.4; font-weight: 800; }
.dt-front-v2-shelf__head p { margin: 0; color: var(--dt-muted); font-size: .88rem; line-height: 1.65; }
.dt-front-v2-shelf ul { margin: 18px 0 0; padding: 0; border-top: 1px solid var(--dt-border); list-style: none; }
.dt-front-v2-shelf li { margin: 0; border-bottom: 1px solid var(--dt-border); }
.dt-front-v2-shelf li a {
	position: relative;
	display: block;
	padding: 15px 34px 15px 0;
	color: var(--dt-ink);
	text-decoration: none;
}
.dt-front-v2-shelf li a::after {
	position: absolute; top: 50%; right: 4px;
	color: var(--dt-main);
	content: "→";
	font-family: Arial, sans-serif;
	transform: translateY(-50%);
}
.dt-front-v2-shelf li span { display: block; font-weight: 700; line-height: 1.55; }
.dt-front-v2-shelf li small { display: block; margin-top: 4px; color: var(--dt-muted); font-size: .78rem; line-height: 1.55; }
.dt-front-v2-shelf__more {
	display: inline-flex; gap: 10px; align-items: center;
	margin-top: 18px;
	color: var(--dt-main);
	font-size: .88rem; font-weight: 700;
	text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
}

/* before-check full-width image card + 2col links + bridge */
.dt-front-v2-check__card { position: relative; width: min(100%, 860px); margin: 30px auto 0; padding-bottom: 36px; }
.dt-front-v2-check__links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0,1fr));
	gap: 0 34px;
	width: min(100%, 860px);
	margin: 26px auto 0;
}
.dt-front-v2-check__links ul { margin: 0; padding: 0; border-top: 1px solid var(--dt-border); list-style: none; }
.dt-front-v2-check__links li { margin: 0; border-bottom: 1px solid var(--dt-border); }
.dt-front-v2-check__links li a {
	position: relative; display: block;
	padding: 14px 34px 14px 0;
	color: var(--dt-ink); text-decoration: none;
}
.dt-front-v2-check__links li a::after {
	position: absolute; top: 50%; right: 4px;
	color: var(--dt-main); content: "→";
	font-family: Arial, sans-serif; transform: translateY(-50%);
}
.dt-front-v2-check__links li span { display: block; font-weight: 700; line-height: 1.55; font-size: .95rem; }
.dt-front-v2-check__bridge { display: flex; flex-direction: column; gap: 10px; margin-top: 22px; }

/* latest「最近の記事」（案A: 行リスト。角丸ゼロ・日付なし） */
.dt-front-v2-latest__list {
	margin: 28px 0 0;
	padding: 0;
	border-top: 1px solid var(--dt-border);
	list-style: none;
}

.dt-front-v2-latest__item {
	margin: 0;
	padding: 18px 4px;
	border-bottom: 1px solid var(--dt-border);
}

.dt-front-v2-latest__link {
	display: block;
	color: var(--dt-ink);
	font-weight: 700;
	line-height: 1.6;
	text-decoration: none;
}

/* focus */
.dt-front-v2 a:focus-visible,
.dt-front-v2-entrance__link:focus-visible { outline: 3px solid var(--dt-main); outline-offset: 4px; }

@media (min-width: 768px) {
	.dt-front-v2-entrance { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 28px; }
	.dt-front-v2-entrance__button { right: 18px; width: 92px; height: 92px; }
	.dt-front-v2-entrance__card--alt .dt-front-v2-entrance__button { right: auto; left: 18px; }
}
@media (max-width: 767px) {
	.dt-front-v2-section,
	.dt-front-v2-latest { margin-block: 52px; }
	.dt-front-v2-latest__item { padding-block: 15px; }
	.dt-front-v2-shelves { grid-template-columns: 1fr; gap: 42px; }
	.dt-front-v2-check__links { grid-template-columns: 1fr; gap: 0; }
	.dt-front-v2-check__links ul + ul { border-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.dt-front-v2-entrance__button { transition: none; }
	.dt-front-v2-entrance__link:hover .dt-front-v2-entrance__button { transform: none; }
}
