@charset "utf-8";
/* ==========================================================================
   下層ページ専用（main.css の変数・.btn・.dcard などを前提にした追加分）
   トップでは読み込まない。モバイルファースト／768px・1024px。
   ========================================================================== */

/* --------------------------------------------------------- パンくず */
.crumb { margin-bottom: 18px; }
.crumb__list { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 11.5px; letter-spacing: .06em; }
.crumb__item { display: flex; align-items: center; gap: 6px; color: rgba(255,255,255,.62); }
.crumb__item a { color: rgba(255,255,255,.72); border-bottom: 1px solid transparent; transition: color .2s, border-color .2s; }
.crumb__item a:hover { color: #fff; border-color: rgba(255,255,255,.4); }
.crumb__item [aria-current] { color: var(--accent-l); }
.crumb__sep { color: rgba(255,255,255,.28); }

/* --------------------------------------------------------- ページ冒頭 */
.phero { position: relative; color: #fff; padding: 34px 0 40px; overflow: hidden; background: var(--navy); }
.phero__bg {
	position: absolute; inset: 0;
	background:
		radial-gradient(120% 90% at 88% -10%, rgba(224,104,31,.30) 0%, rgba(224,104,31,0) 58%),
		radial-gradient(90% 120% at 0% 100%, rgba(47,109,106,.34) 0%, rgba(47,109,106,0) 60%),
		linear-gradient(165deg, #12345a 0%, #0d2b4b 46%, #091f37 100%);
}
.phero__bg::after {
	content: ""; position: absolute; inset: 0; opacity: .5;
	background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px);
	background-size: 100% 7px;
}
.phero__inner { position: relative; }
.phero__en { font-size: 10.5px; letter-spacing: .22em; color: var(--accent-l); font-weight: 700; }
.phero__h1 {
	font-family: var(--serif); font-size: 27px; line-height: 1.5; letter-spacing: .04em; margin-top: 10px;
}
.phero__h1-sub {
	display: block; margin-top: 10px; font-size: 12.5px; letter-spacing: .2em; font-family: var(--sans);
	color: rgba(255,255,255,.7); font-weight: 600;
}
.phero__h1-sub::before { content: "— "; color: var(--accent-l); }
.phero__lead { margin-top: 18px; font-size: 14px; line-height: 2.05; color: rgba(255,255,255,.8); max-width: 44em; }
.phero__lead strong { color: #fff; }

.phero__stats {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px;
	margin-top: 26px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.14);
	border-radius: var(--r); overflow: hidden;
}
.phero__stats li { background: rgba(9,25,44,.5); padding: 14px 8px; text-align: center; }
.phero__stats-num {
	display: block; font-family: var(--serif); font-size: 27px; line-height: 1.1; color: var(--accent-l); letter-spacing: .02em;
}
.phero__stats-num small { font-size: 12px; letter-spacing: .04em; }
.phero__stats-lb { display: block; margin-top: 7px; font-size: 10.5px; letter-spacing: .05em; color: rgba(255,255,255,.62); line-height: 1.5; }

.phero__cta { display: grid; gap: 12px; margin-top: 26px; }
.phero__tel {
	display: block; padding: 12px 16px; border: 1px solid rgba(255,255,255,.28); border-radius: var(--r);
	background: rgba(255,255,255,.05); text-align: center; transition: background .2s, border-color .2s;
}
.phero__tel:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.5); }
.phero__tel-lb { display: block; font-size: 10.5px; letter-spacing: .1em; color: var(--accent-l); }
.phero__tel-num { display: block; font-family: var(--serif); font-size: 26px; letter-spacing: .04em; margin-top: 2px; }

@media (min-width: 768px) {
	.phero { padding: 44px 0 56px; }
	.phero__h1 { font-size: 42px; }
	.phero__h1-sub { display: inline-block; margin: 0 0 0 16px; vertical-align: middle; font-size: 13px; }
	.phero__lead { font-size: 15px; margin-top: 22px; }
	.phero__stats { max-width: 700px; }
	.phero__stats-num { font-size: 36px; }
	/* ★電話ボックスと相談ボタンは高さを揃える（吉田さん指摘 2026-09-10）。
	   stretch にして、ボタン側は中央寄せのままにする。 */
	.phero__cta { grid-template-columns: max-content max-content; align-items: stretch; gap: 18px; }
	.phero__tel { display: flex; flex-direction: column; justify-content: center; padding: 12px 26px; }
	.phero__cta .btn { min-width: 260px; }
}

/* --------------------------------------------------------- 目次 */
.pbody { background: var(--paper-2); }
.ptoc {
	margin: 30px 0 0; padding: 22px 20px; background: var(--white);
	border: 1px solid var(--line); border-radius: var(--r); box-shadow: 0 1px 0 rgba(13,27,42,.04);
}
.ptoc__ttl {
	font-family: var(--serif); font-size: 14px; letter-spacing: .12em; color: var(--navy);
	padding-bottom: 12px; border-bottom: 1px solid var(--line-2);
}
.ptoc__list { display: grid; gap: 2px; margin-top: 10px; }
.ptoc__list a {
	display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: baseline; gap: 6px;
	padding: 8px 6px; font-size: 13.5px; border-radius: var(--r); transition: background .2s, color .2s;
}
.ptoc__list a:hover { background: var(--paper); color: var(--accent-ink); }
.ptoc__no { font-family: var(--serif); font-size: 12px; color: var(--accent); letter-spacing: .06em; }
.ptoc__lb { border-bottom: 1px solid transparent; }
.ptoc__list a:hover .ptoc__lb { border-color: currentColor; }

@media (min-width: 768px) {
	.ptoc { margin-top: 44px; padding: 26px 30px; }
	.ptoc__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 22px; }
}

/* --------------------------------------------------------- セクション共通 */
.psec { padding: 54px 0; }
.psec--first { background: var(--paper); }
.psec--reason { background: var(--navy); color: #fff; }
.psec--police { background: var(--paper); }
.psec--price { background: var(--paper); }

.psec__head { max-width: 46em; margin-bottom: 26px; }
.psec__en {
	display: flex; align-items: center; gap: 10px;
	font-size: 10.5px; letter-spacing: .2em; font-weight: 700; color: var(--accent);
}
.psec--reason .psec__en { color: var(--accent-l); }
.psec__no {
	display: inline-flex; align-items: center; justify-content: center;
	width: 26px; height: 26px; border-radius: 50%; font-size: 11px; letter-spacing: 0;
	background: var(--accent); color: #fff; font-family: var(--serif);
}
.psec__h2 { font-family: var(--serif); font-size: 22px; line-height: 1.52; margin-top: 12px; }
.psec__lead { margin-top: 14px; font-size: 13.5px; line-height: 2.05; color: var(--muted); }
.psec--reason .psec__lead { color: rgba(255,255,255,.72); }
.psec__lead strong { color: var(--ink); }
.psec--reason .psec__lead strong { color: #fff; }
.psec__h3 {
	font-family: var(--serif); font-size: 17px; letter-spacing: .08em; margin: 34px 0 16px;
	padding-left: 13px; border-left: 3px solid var(--accent);
}
.psec__foot {
	margin-top: 24px; font-size: 13px; color: var(--muted); line-height: 2;
	display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px;
}
.psec__source { margin-top: 20px; font-size: 11.5px; color: var(--muted-2); line-height: 1.9; }

.tlink {
	display: inline-flex; align-items: center; gap: 5px; color: var(--accent-ink); font-weight: 700;
	border-bottom: 1px solid rgba(168,72,14,.4); transition: border-color .2s, color .2s;
}
.tlink:hover { color: var(--accent); border-color: var(--accent); }

@media (min-width: 768px) {
	.psec { padding: 88px 0; }
	.psec__h2 { font-size: 32px; }
	.psec__lead { font-size: 15px; }
	.psec__head { margin-bottom: 40px; }
}

/* --------------------------------------------------------- 01 サイン */
.signgrid { display: grid; gap: 12px; }
.sign {
	position: relative; background: var(--white); border: 1px solid var(--line);
	border-radius: var(--r); padding: 22px 20px 20px; transition: border-color .2s, transform .2s;
}
.sign:hover { border-color: rgba(224,104,31,.5); transform: translateY(-2px); }
.sign__ico {
	display: inline-flex; align-items: center; justify-content: center;
	width: 50px; height: 50px; border-radius: 50%; color: var(--accent);
	background: rgba(224,104,31,.09); border: 1px solid rgba(224,104,31,.2);
}
.sign__ttl { font-family: var(--serif); font-size: 17px; letter-spacing: .06em; margin-top: 14px; }
.sign__body { margin-top: 8px; font-size: 13px; line-height: 1.95; color: var(--muted); }

@media (min-width: 768px) {
	.signgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
	.sign { padding: 28px 26px 26px; }
}

/* --------------------------------------------------------- 02 初動 */
.firstbox {
	position: relative; background: var(--navy); color: #fff; border-radius: var(--r);
	padding: 26px 22px; overflow: hidden;
}
.firstbox::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(85% 130% at 96% 0%, rgba(224,104,31,.3) 0%, rgba(224,104,31,0) 62%);
}
.firstbox > * { position: relative; }
.firstbox__lb {
	display: inline-block; background: var(--accent); color: #fff; font-size: 10.5px; font-weight: 700;
	letter-spacing: .16em; padding: 4px 12px; border-radius: 2px;
}
.firstbox__ttl { font-family: var(--serif); font-size: 20px; line-height: 1.5; margin-top: 14px; }
.firstbox__body { margin-top: 14px; font-size: 13.5px; line-height: 2.05; color: rgba(255,255,255,.82); }
.firstbox__body strong { color: var(--accent-l); }
.firstbox__law {
	margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.14);
	font-size: 12.5px; line-height: 2; color: rgba(255,255,255,.66);
}
.firstbox__law strong { color: #fff; }
.firstbox__note { margin-top: 10px; font-size: 11.5px; line-height: 1.9; color: rgba(255,255,255,.5); }

.dontgrid { display: grid; gap: 12px; }
@media (min-width: 768px) {
	.firstbox { padding: 38px 40px; }
	.firstbox__ttl { font-size: 27px; }
	.dontgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
	.dontgrid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --------------------------------------------------------- 03 できること */
.vgrid { display: grid; gap: 14px; }
.vcard {
	background: var(--white); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden;
	display: flex; flex-direction: column;
}
.vcard .scard__photo, .vcard figure { margin: 0; }
.vcard img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.vcard__body { padding: 20px; flex: 1 1 auto; }
.vcard__no {
	display: inline-block; font-family: var(--serif); font-size: 12px; letter-spacing: .1em;
	color: var(--victim); border-bottom: 1px solid rgba(47,109,106,.4); padding-bottom: 2px;
}
.vcard__ttl { font-family: var(--serif); font-size: 18px; letter-spacing: .06em; margin-top: 10px; }
.vcard__text { margin-top: 9px; font-size: 13px; line-height: 1.95; color: var(--muted); }
.vcard__note {
	margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line-2);
	font-size: 11.5px; line-height: 1.85; color: var(--muted-2);
}
@media (min-width: 768px) {
	.vgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
	.vgrid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vcard__body { padding: 24px 24px 26px; }
}
@media (min-width: 1024px) {
	.vgrid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
	.vgrid--four .vcard__body { padding: 20px 18px 22px; }
}

/* --------------------------------------------------------- 04 元加害者だから */
.reasongrid { display: grid; gap: 14px; }
.reason {
	border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.04);
	border-radius: var(--r); padding: 24px 22px;
}
.reason__ico {
	display: inline-flex; align-items: center; justify-content: center;
	width: 54px; height: 54px; border-radius: 50%; color: var(--accent-l);
	background: rgba(224,104,31,.12); border: 1px solid rgba(240,152,72,.34);
}
.reason__ttl { font-family: var(--serif); font-size: 18px; line-height: 1.5; margin-top: 16px; }
.reason__body { margin-top: 10px; font-size: 13px; line-height: 2; color: rgba(255,255,255,.72); }

.pledge {
	position: relative; margin-top: 30px; padding: 26px 22px 22px;
	border: 1px solid rgba(255,255,255,.16); border-radius: var(--r);
	font-family: var(--serif); font-size: 16px; line-height: 1.95; letter-spacing: .06em;
	background: rgba(255,255,255,.03);
}
.pledge__mark {
	position: absolute; top: 2px; left: 16px; font-family: var(--serif); font-size: 46px;
	color: var(--accent); opacity: .6; line-height: 1;
}
@media (min-width: 768px) {
	.reasongrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
	.reason { padding: 30px 28px; }
	.pledge { margin-top: 40px; padding: 34px 40px 30px; font-size: 19px; text-align: center; }
	.pledge__mark { left: 26px; }
}

/* --------------------------------------------------------- 05 警察 */
.psteps { display: grid; gap: 0; max-width: 840px; }
.pstep { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; position: relative; padding-bottom: 24px; }
.pstep:last-child { padding-bottom: 0; }
.pstep::before {
	content: ""; position: absolute; left: 21px; top: 40px; bottom: 6px; width: 1px;
	background: linear-gradient(var(--line), rgba(13,27,42,.04));
}
.pstep:last-child::before { display: none; }
.pstep__n {
	display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px;
	border-radius: 50%; background: var(--white); border: 1px solid var(--line);
	font-family: var(--serif); font-size: 16px; color: var(--navy); position: relative; z-index: 1;
}
.pstep__ttl { font-family: var(--serif); font-size: 17px; letter-spacing: .06em; display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; }
.pstep__art { font-family: var(--sans); font-size: 10.5px; letter-spacing: .1em; color: #fff; background: var(--navy-3); padding: 2px 8px; border-radius: 2px; }
.pstep__text { margin-top: 7px; font-size: 13px; line-height: 1.95; color: var(--muted); }

.policenote {
	display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 16px; align-items: start;
	margin-top: 26px; padding: 22px 20px; background: var(--white);
	border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: var(--r);
	font-size: 13px; line-height: 2;
}
.policenote__ico { color: var(--accent); }
@media (min-width: 768px) {
	.pstep { grid-template-columns: 52px minmax(0, 1fr); gap: 22px; padding-bottom: 30px; }
	.pstep::before { left: 25px; top: 46px; }
	.pstep__n { width: 52px; height: 52px; font-size: 18px; }
	.pstep__ttl { font-size: 19px; }
	.policenote { padding: 26px 30px; }
}

/* --------------------------------------------------------- 06 流れ */
.vflow { display: grid; gap: 12px; counter-reset: v; }
.vstep {
	position: relative; background: var(--white); border: 1px solid var(--line); border-radius: var(--r);
	padding: 22px 20px 20px;
}
.vstep__ico { display: inline-flex; color: var(--accent); }
.vstep__n {
	position: absolute; top: 16px; right: 18px; font-family: var(--serif); font-size: 26px;
	color: rgba(13,27,42,.1); letter-spacing: .04em;
}
.vstep h3 { font-family: var(--serif); font-size: 17px; letter-spacing: .06em; margin-top: 10px; }
.vstep p { margin-top: 7px; font-size: 12.5px; line-height: 1.95; color: var(--muted); }
@media (min-width: 768px) {
	.vflow { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
	.vstep { padding: 24px 18px 22px; }
	.vstep__n { font-size: 22px; top: 14px; right: 14px; }
	.vstep h3 { font-size: 16px; }
}

/* --------------------------------------------------------- 07 費用 */
.vprice { display: grid; gap: 10px; }
.vprice__item {
	display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: baseline; gap: 4px 16px;
	background: var(--white); border: 1px solid var(--line); border-radius: var(--r); padding: 18px 20px;
}
.vprice__name { font-family: var(--serif); font-size: 17px; letter-spacing: .06em; }
.vprice__num { font-family: var(--serif); font-size: 24px; color: var(--navy); letter-spacing: .02em; white-space: nowrap; }
.vprice__num small { font-size: 12px; color: var(--muted); }
.vprice__lead { grid-column: 1 / -1; font-size: 12.5px; line-height: 1.9; color: var(--muted); }

.vfree {
	margin-top: 16px; background: var(--navy); color: #fff; border-radius: var(--r);
	padding: 24px 20px; position: relative; overflow: hidden;
}
.vfree::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(80% 120% at 94% 0%, rgba(224,104,31,.26) 0%, rgba(224,104,31,0) 62%);
}
.vfree > * { position: relative; }
.vfree__badge {
	display: inline-block; background: var(--accent); color: #fff; font-size: 10.5px; font-weight: 700;
	letter-spacing: .14em; padding: 4px 11px; border-radius: 2px; margin-right: 12px;
}
.vfree__ttl { font-family: var(--serif); font-size: 17px; letter-spacing: .06em; }
.vfree__list { display: grid; gap: 10px; margin-top: 16px; }
.vfree__list li {
	background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.13);
	border-radius: var(--r); padding: 13px 16px;
}
.vfree__list strong { display: block; font-size: 14.5px; letter-spacing: .04em; }
.vfree__list span { display: block; margin-top: 5px; font-size: 12px; line-height: 1.85; color: rgba(255,255,255,.62); }
.vfree__terms {
	margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.13);
	font-size: 11.5px; line-height: 1.9; color: rgba(255,255,255,.6);
}
@media (min-width: 768px) {
	.vprice { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
	.vprice__item { grid-template-columns: minmax(0, 1fr); padding: 22px 22px 20px; }
	.vfree { margin-top: 22px; padding: 30px 34px; }
	.vfree__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --------------------------------------------------------- 08 Q&A */
.pqa { display: grid; gap: 10px; max-width: 900px; }
.pqa__item { background: var(--white); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.pqa__q {
	display: grid; grid-template-columns: 30px minmax(0, 1fr) 20px; align-items: start; gap: 12px;
	padding: 17px 18px; cursor: pointer; list-style: none; font-weight: 700; font-size: 14px; line-height: 1.75;
}
.pqa__q::-webkit-details-marker { display: none; }
.pqa__mark {
	display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px;
	border-radius: 50%; background: var(--navy); color: #fff; font-family: var(--serif); font-size: 13px;
}
.pqa__mark--a { background: var(--accent); }
.pqa__qt { padding-top: 3px; }
.pqa__arrow { position: relative; width: 20px; height: 20px; margin-top: 5px; }
.pqa__arrow::before, .pqa__arrow::after {
	content: ""; position: absolute; background: var(--accent); transition: transform .25s, opacity .25s;
}
.pqa__arrow::before { top: 9px; left: 3px; width: 14px; height: 1.5px; }
.pqa__arrow::after { top: 2.5px; left: 9.2px; width: 1.5px; height: 14px; }
.pqa__item[open] .pqa__arrow::after { transform: scaleY(0); opacity: 0; }
.pqa__a {
	display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 12px;
	padding: 0 18px 20px; font-size: 13px; line-height: 2.05; color: var(--muted);
}
@media (min-width: 768px) {
	.pqa__q { padding: 20px 26px; font-size: 15px; }
	.pqa__a { padding: 0 26px 24px; font-size: 14px; }
}

/* --------------------------------------------------------- ページ末尾CTA */
.pcta { position: relative; color: #fff; padding: 56px 0; overflow: hidden; text-align: center; }
.pcta__bg {
	position: absolute; inset: 0;
	background:
		radial-gradient(110% 90% at 12% 0%, rgba(224,104,31,.32) 0%, rgba(224,104,31,0) 58%),
		linear-gradient(150deg, #123454 0%, #0d2b4b 50%, #08192c 100%);
}
.pcta__inner { position: relative; }
.pcta__en { font-size: 10.5px; letter-spacing: .22em; color: var(--accent-l); font-weight: 700; }
.pcta__ttl { font-family: var(--serif); font-size: 24px; line-height: 1.5; margin-top: 12px; }
.pcta__lead { margin-top: 16px; font-size: 13.5px; line-height: 2.05; color: rgba(255,255,255,.76); max-width: 40em; margin-inline: auto; }
.pcta__hours { margin-top: 18px; font-size: 12.5px; color: rgba(255,255,255,.66); }
.pcta__badge {
	display: inline-block; background: var(--accent); color: #fff; font-size: 10.5px; font-weight: 700;
	letter-spacing: .12em; padding: 4px 11px; border-radius: 2px; margin-right: 10px;
}
.pcta__btns { display: grid; gap: 12px; margin-top: 24px; justify-content: center; }
.pcta__tel {
	display: flex; flex-direction: column; justify-content: center;
	padding: 12px 26px; border: 1px solid rgba(255,255,255,.32); border-radius: var(--r);
	background: rgba(255,255,255,.05); transition: background .2s, border-color .2s;
}
.pcta__tel:hover { background: rgba(255,255,255,.11); border-color: rgba(255,255,255,.55); }
.pcta__tel-lb { display: block; font-size: 10.5px; letter-spacing: .12em; color: var(--accent-l); }
.pcta__tel-num { display: block; font-family: var(--serif); font-size: 26px; letter-spacing: .04em; }
.pcta__note { margin-top: 22px; font-size: 11.5px; color: rgba(255,255,255,.55); }
.pcta__note strong { color: var(--accent-l); }
@media (min-width: 768px) {
	.pcta { padding: 84px 0; }
	.pcta__ttl { font-size: 34px; }
	.pcta__btns { grid-template-columns: max-content max-content; align-items: stretch; gap: 18px; }
	.pcta__btns .btn { min-width: 260px; }
}

/* --------------------------------------------------------- 関連ページ */
.plinks { padding: 54px 0; background: var(--paper); }
.plinks__ttl {
	font-family: var(--serif); font-size: 15px; letter-spacing: .12em; color: var(--navy);
	padding-bottom: 12px; border-bottom: 1px solid var(--line); margin-bottom: 18px;
}
.plinks__grid { display: grid; gap: 12px; }
.plink {
	position: relative; display: block; background: var(--white); border: 1px solid var(--line);
	border-radius: var(--r); padding: 20px 44px 20px 20px; height: 100%;
	transition: border-color .2s, transform .2s;
}
.plink:hover { border-color: rgba(224,104,31,.5); transform: translateY(-2px); }
.plink__label { display: block; font-size: 10.5px; letter-spacing: .16em; color: var(--accent); font-weight: 700; }
.plink__title { display: block; font-family: var(--serif); font-size: 17px; letter-spacing: .05em; margin-top: 8px; }
.plink__desc { display: block; margin-top: 8px; font-size: 12px; line-height: 1.9; color: var(--muted); }
.plink__go {
	position: absolute; right: 18px; top: 22px; color: var(--accent);
	transition: transform .2s;
}
.plink:hover .plink__go { transform: translateX(4px); }
@media (min-width: 768px) {
	.plinks { padding: 80px 0; }
	.plinks__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
}

/* ==========================================================================
   加害者の方へ（/offender/）で追加したもの
   ========================================================================== */

/* --------------------------------------------------------- 更生支援カード */
.ogrid { display: grid; gap: 12px; }
.ocard {
	position: relative; background: var(--white); border: 1px solid var(--line);
	border-radius: var(--r); padding: 24px 20px 22px; transition: border-color .2s, transform .2s;
}
.ocard:hover { border-color: rgba(224,104,31,.5); transform: translateY(-2px); }
.ocard__ico {
	display: inline-flex; align-items: center; justify-content: center;
	width: 56px; height: 56px; border-radius: 50%; color: var(--accent);
	background: rgba(224,104,31,.09); border: 1px solid rgba(224,104,31,.2);
}
.ocard__no {
	position: absolute; top: 20px; right: 20px; font-family: var(--serif); font-size: 22px;
	color: rgba(13,27,42,.12); letter-spacing: .04em;
}
.ocard__ttl { font-family: var(--serif); font-size: 17px; letter-spacing: .05em; margin-top: 15px; line-height: 1.5; }
.ocard__body { margin-top: 9px; font-size: 13px; line-height: 1.95; color: var(--muted); }
@media (min-width: 768px) {
	.ogrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
	.ocard { padding: 30px 26px 28px; }
}

/* --------------------------------------------------------- 代表 */
.psec--rep { background: var(--paper); }
.repgrid { display: grid; gap: 26px; }
.repphoto { margin: 0; background: var(--white); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.repphoto img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.repphoto figcaption { padding: 14px 16px; border-top: 1px solid var(--line-2); }
.repphoto__role { display: block; font-size: 10.5px; letter-spacing: .16em; color: var(--accent); font-weight: 700; }
.repphoto__name { display: block; font-family: var(--serif); font-size: 19px; letter-spacing: .06em; margin-top: 4px; }
.repphoto__name small { display: block; font-size: 11px; letter-spacing: .1em; color: var(--muted-2); margin-top: 3px; font-family: var(--sans); }
.repdata { margin-top: 14px; display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.repdata > div { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 10px; background: var(--white); padding: 11px 14px; }
.repdata dt { font-size: 11px; letter-spacing: .08em; color: var(--muted-2); }
.repdata dd { font-size: 12.5px; line-height: 1.7; }
.repgrid__main p { font-size: 13.5px; line-height: 2.15; color: var(--ink); }
.repgrid__main p + p { margin-top: 16px; }
.repquote {
	margin: 20px 0; padding: 18px 20px; background: var(--white);
	border-left: 3px solid var(--accent); border-radius: var(--r);
	font-family: var(--serif); font-size: 16px; line-height: 1.85;
}
.repquote p { font-size: inherit !important; line-height: inherit; }
.repmotto {
	margin-top: 22px !important; padding: 16px 18px; border: 1px dashed rgba(13,27,42,.24); border-radius: var(--r);
}
.repmotto__lb { display: block; font-size: 10.5px; letter-spacing: .16em; color: var(--accent); font-weight: 700; }
.repmotto__tx { display: block; margin-top: 6px; font-family: var(--serif); font-size: 15px; line-height: 1.8; }
@media (min-width: 768px) {
	.repgrid { grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 44px; align-items: start; }
	.repgrid__main p { font-size: 14.5px; }
	.repquote { font-size: 19px; padding: 22px 26px; }
}

/* 著書 */
.bookrow {
	display: grid; gap: 20px; margin-top: 30px; padding: 24px 20px;
	background: var(--navy); color: #fff; border-radius: var(--r); position: relative; overflow: hidden;
}
.bookrow::before {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(80% 120% at 96% 0%, rgba(224,104,31,.26) 0%, rgba(224,104,31,0) 62%);
}
.bookrow > * { position: relative; }
.bookrow__cover { margin: 0; justify-self: center; }
.bookrow__cover img { width: 150px; box-shadow: 0 10px 26px rgba(0,0,0,.34); }
.bookrow__en { font-size: 10.5px; letter-spacing: .2em; color: var(--accent-l); font-weight: 700; }
.bookrow__ttl { font-family: var(--serif); font-size: 22px; letter-spacing: .06em; margin-top: 8px; }
.bookrow__ttl span { display: block; font-size: 12.5px; letter-spacing: .1em; color: rgba(255,255,255,.66); margin-top: 6px; font-family: var(--sans); }
.bookrow__lead { margin: 14px 0 18px; font-size: 13px; line-height: 2; color: rgba(255,255,255,.76); }
@media (min-width: 768px) {
	.bookrow { grid-template-columns: max-content minmax(0, 1fr); gap: 40px; align-items: center; padding: 34px 40px; margin-top: 44px; }
	.bookrow__cover img { width: 180px; }
	.bookrow__ttl { font-size: 27px; }
}

/* --------------------------------------------------------- 罰則 */
.pengrid { display: grid; gap: 12px; }
.pen2 {
	background: var(--white); border: 1px solid var(--line); border-radius: var(--r);
	padding: 20px; text-align: center;
}
.pen2--strong { border-color: rgba(168,57,47,.5); background: #fff8f6; }
.pen2__case { font-size: 12.5px; line-height: 1.75; color: var(--muted); }
.pen2__result {
	font-family: var(--serif); font-size: 19px; line-height: 1.55; margin-top: 10px; color: var(--navy);
}
.pen2--strong .pen2__result { color: var(--alert); }
.pen2__art {
	display: inline-block; margin-top: 12px; font-size: 10.5px; letter-spacing: .1em;
	color: #fff; background: var(--navy-3); padding: 2px 10px; border-radius: 2px;
}
.pen2--strong .pen2__art { background: var(--alert); }
@media (min-width: 768px) {
	.pengrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
	.pen2 { padding: 28px 22px; }
	.pen2__result { font-size: 22px; }
}

/* --------------------------------------------------------- ご家族 */
.psec--family { background: var(--paper); }
.famrow {
	display: grid; gap: 18px; padding: 26px 22px; background: var(--white);
	border: 1px solid var(--line); border-radius: var(--r);
}
.famrow__ico {
	display: inline-flex; align-items: center; justify-content: center;
	width: 66px; height: 66px; border-radius: 50%; color: var(--accent);
	background: rgba(224,104,31,.09); border: 1px solid rgba(224,104,31,.2);
}
.famrow__body p { font-size: 13.5px; line-height: 2.05; color: var(--muted); }
.famrow__body p + p { margin-top: 10px; }
.famrow__body .btn { margin-top: 18px; }
@media (min-width: 768px) {
	.famrow { grid-template-columns: max-content minmax(0, 1fr); gap: 32px; align-items: center; padding: 34px 40px; }
}

/* ==========================================================================
   ストーカー規制法（/law/）／被害に遭ったら（/safety/）で追加したもの
   ========================================================================== */

/* 条文の引用 */
.lawquote {
	position: relative; margin: 0; padding: 26px 22px 22px; background: var(--white);
	border: 1px solid var(--line); border-left: 3px solid var(--navy); border-radius: var(--r);
}
.lawquote p { font-family: var(--serif); font-size: 15px; line-height: 2.1; letter-spacing: .04em; }
.lawquote cite {
	display: block; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line-2);
	font-style: normal; font-size: 11.5px; letter-spacing: .08em; color: var(--muted-2);
}
@media (min-width: 768px) {
	.lawquote { padding: 34px 36px 28px; }
	.lawquote p { font-size: 17px; }
}

/* 8類型 */
.ltypes { display: grid; gap: 10px; counter-reset: lt; }
.ltype2 {
	display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; align-items: start;
	background: var(--white); border: 1px solid var(--line); border-radius: var(--r); padding: 16px 18px;
}
.ltype2__n {
	display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px;
	border-radius: 50%; background: var(--navy); color: #fff; font-family: var(--serif); font-size: 15px;
}
.ltype2__label { font-weight: 600; font-family: var(--serif); font-size: 16px; letter-spacing: .05em; }
.ltype2__text { margin-top: 6px; font-size: 12.5px; line-height: 1.95; color: var(--muted); }
@media (min-width: 768px) {
	.ltypes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.ltype2 { padding: 20px 22px; }
	.ltype2__label { font-size: 17px; }
}

/* /safety/ の3列サイン・4列フロー・注意色のブロック */
@media (min-width: 768px) {
	.signgrid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.vflow--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.famrow--alert { border-left: 3px solid var(--alert); }
.famrow--alert .famrow__ico { color: var(--alert); background: rgba(168,57,47,.08); border-color: rgba(168,57,47,.24); }
.famrow--alert strong { color: var(--alert); }

/* ==========================================================================
   代表について（/about/）／メディア（/media/）で追加したもの
   ========================================================================== */

/* 濃色セクション（見出しの色をまとめて反転する） */
.psec--dark { background: var(--navy); color: #fff; }
.psec--dark .psec__en { color: var(--accent-l); }
.psec--dark .psec__lead { color: rgba(255,255,255,.72); }
.psec--dark .psec__lead strong { color: #fff; }
.psec--dark .psec__source { color: rgba(255,255,255,.5); }
.psec--medialist .media__filters { justify-content: flex-start; }
.psec--medialist .mfilter small {
	margin-left: 6px; font-size: 10px; opacity: .75; font-variant-numeric: tabular-nums;
}
.psec--dark .media__wall { border-top: 0; padding-top: 0; }

/* 署名 */
.repsign { margin-top: 22px !important; text-align: right; }
.repsign__org { display: block; font-size: 11.5px; letter-spacing: .1em; color: var(--muted-2); }
.repsign__name { display: block; font-family: var(--serif); font-size: 21px; letter-spacing: .12em; margin-top: 4px; }

/* 表 */
.proftable { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.proftable > div { display: grid; gap: 4px; background: var(--white); padding: 15px 18px; }
.proftable dt { font-size: 11px; letter-spacing: .1em; color: var(--accent-ink); font-weight: 700; }
.proftable dd { font-size: 13.5px; line-height: 1.95; }
@media (min-width: 768px) {
	.proftable > div { grid-template-columns: 150px minmax(0, 1fr); gap: 20px; align-items: baseline; padding: 18px 24px; }
	.proftable dt { padding-top: 2px; }
}

/* 書誌 */
.bookspec { display: grid; gap: 1px; margin: 16px 0 18px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.14); border-radius: var(--r); overflow: hidden; }
.bookspec > div { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 10px; background: rgba(9,25,44,.5); padding: 9px 14px; }
.bookspec dt { font-size: 10.5px; letter-spacing: .1em; color: var(--accent-l); }
.bookspec dd { font-size: 12.5px; }
@media (min-width: 768px) {
	.bookspec { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ==========================================================================
   流れ（/flow/）／FAQ（/faq/）／お問い合わせ（/contact/）／プライバシー（/privacy/）
   ========================================================================== */

/* 流れ */
.flowlist { display: grid; max-width: 860px; }
.fstep2 { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 18px; position: relative; padding-bottom: 28px; }
.fstep2:last-child { padding-bottom: 0; }
.fstep2::before {
	content: ""; position: absolute; left: 27px; top: 62px; bottom: 6px; width: 1px;
	background: linear-gradient(var(--line), rgba(13,27,42,.04));
}
.fstep2:last-child::before { display: none; }
.fstep2__no { position: relative; z-index: 1; text-align: center; }
.fstep2__ico {
	display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px;
	border-radius: 50%; color: var(--accent); background: var(--white); border: 1px solid rgba(224,104,31,.28);
}
.fstep2__num { display: block; margin-top: 6px; font-family: var(--serif); font-size: 13px; color: var(--accent); letter-spacing: .06em; }
.fstep2__ttl { font-family: var(--serif); font-size: 19px; letter-spacing: .06em; padding-top: 12px; }
.fstep2__text { margin-top: 9px; font-size: 13.5px; line-height: 2.05; color: var(--muted); }
.fstep2__note { margin-top: 8px; font-size: 12px; line-height: 1.85; color: var(--muted-2); }
@media (min-width: 768px) {
	.fstep2__ttl { font-size: 22px; }
}

/* 2カラムのカード */
.twocol { display: grid; gap: 14px; }
.twocol__card { background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: var(--r); padding: 26px 22px; }
.twocol__card--victim { border-top-color: var(--victim); }
.twocol__ico { display: inline-flex; color: var(--accent); }
.twocol__card--victim .twocol__ico { color: var(--victim); }
.twocol__ttl { font-family: var(--serif); font-size: 19px; letter-spacing: .06em; margin-top: 12px; }
.twocol__list { margin: 14px 0 18px; display: grid; gap: 8px; }
.twocol__list li { position: relative; padding-left: 20px; font-size: 13px; line-height: 1.9; color: var(--muted); }
.twocol__list li::before {
	content: ""; position: absolute; left: 4px; top: 11px; width: 7px; height: 7px;
	border-radius: 50%; background: rgba(224,104,31,.5);
}
.twocol__card--victim .twocol__list li::before { background: rgba(47,109,106,.5); }
@media (min-width: 768px) {
	.twocol { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
	.twocol__card { padding: 32px 30px; }
}

/* 連絡方法カード */
.waygrid { display: grid; gap: 12px; }
.way {
	display: block; background: var(--white); border: 1px solid var(--line); border-radius: var(--r);
	padding: 24px 22px; transition: border-color .2s, transform .2s;
}
.way:hover { border-color: rgba(224,104,31,.5); transform: translateY(-2px); }
.way__ico {
	display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px;
	border-radius: 50%; color: var(--accent); background: rgba(224,104,31,.09); border: 1px solid rgba(224,104,31,.2);
}
.way__label { display: block; margin-top: 14px; font-size: 11px; letter-spacing: .16em; color: var(--accent-ink); font-weight: 700; }
.way__value { display: block; margin-top: 5px; font-family: var(--serif); font-size: 22px; letter-spacing: .04em; }
.way__note { display: block; margin-top: 8px; font-size: 12.5px; line-height: 1.85; color: var(--muted); }
@media (min-width: 768px) {
	.waygrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
	.way { padding: 30px 26px; }
}

/* フォーム */
.cform { display: grid; gap: 20px; max-width: 780px; position: relative; }
.cform__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cfield { display: grid; gap: 8px; }
.cfield__label { font-size: 13px; font-weight: 700; letter-spacing: .05em; display: flex; align-items: center; gap: 8px; }
.cfield__req, .cfield__any {
	font-style: normal; font-size: 10px; font-weight: 700; letter-spacing: .1em;
	padding: 2px 8px; border-radius: 2px;
}
.cfield__req { background: var(--accent); color: #fff; }
.cfield__any { background: rgba(13,27,42,.08); color: var(--muted); }
.cfield input[type="text"], .cfield input[type="email"], .cfield input[type="tel"], .cfield textarea {
	width: 100%; font: inherit; font-size: 15px; color: var(--ink); background: var(--white);
	border: 1px solid var(--line); border-radius: var(--r); padding: 13px 14px; line-height: 1.8;
	transition: border-color .2s, box-shadow .2s;
}
.cfield input:focus, .cfield textarea:focus {
	outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(224,104,31,.14);
}
.cfield textarea { resize: vertical; min-height: 180px; }
.cfield__radios { display: grid; gap: 8px; }
.cradio {
	display: flex; align-items: flex-start; gap: 10px; padding: 13px 15px; cursor: pointer;
	background: var(--white); border: 1px solid var(--line); border-radius: var(--r);
	font-size: 13.5px; line-height: 1.7; transition: border-color .2s, background .2s;
}
.cradio:hover { border-color: rgba(224,104,31,.45); }
.cradio input { margin-top: 4px; accent-color: var(--accent); }
.cradio:has(input:checked) { border-color: var(--accent); background: #fff8f3; }
.cform__privacy { font-size: 12px; line-height: 1.95; color: var(--muted); }
.cform__submit { margin-top: 4px; }
.cform__submit .btn { width: 100%; }
@media (min-width: 768px) {
	.cfield__radios { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cform__submit .btn { width: auto; min-width: 300px; }
}

.formerr {
	margin-bottom: 22px; padding: 18px 20px; background: #fff5f3;
	border: 1px solid rgba(168,57,47,.34); border-left: 3px solid var(--alert); border-radius: var(--r);
}
.formerr__ttl { font-weight: 700; color: var(--alert); font-size: 14px; }
.formerr ul { margin-top: 8px; display: grid; gap: 5px; }
.formerr li { font-size: 13px; line-height: 1.8; color: var(--muted); padding-left: 16px; position: relative; }
.formerr li::before { content: "・"; position: absolute; left: 0; }

.formdone {
	padding: 34px 24px; background: var(--white); border: 1px solid var(--line);
	border-top: 3px solid var(--accent); border-radius: var(--r); text-align: center;
}
.formdone__ico { display: inline-flex; color: var(--accent); }
.formdone__ttl { font-family: var(--serif); font-size: 24px; letter-spacing: .08em; margin-top: 12px; }
.formdone p { margin-top: 12px; font-size: 14px; line-height: 2; color: var(--muted); }
.formdone__note { font-size: 12.5px !important; }

/* プライバシーポリシー */
.policy { max-width: 860px; display: grid; gap: 30px; }
.policy__ttl {
	display: flex; align-items: baseline; gap: 12px; font-family: var(--serif); font-size: 19px;
	letter-spacing: .06em; padding-bottom: 12px; border-bottom: 1px solid var(--line);
}
.policy__no { font-size: 12px; color: var(--accent); letter-spacing: .1em; }
.policy__text { margin-top: 14px; font-size: 13.5px; line-height: 2.15; color: var(--muted); }
.policy__list { margin-top: 12px; display: grid; gap: 8px; }
.policy__list li {
	position: relative; padding-left: 20px; font-size: 13.5px; line-height: 1.95; color: var(--muted);
}
.policy__list li::before {
	content: ""; position: absolute; left: 4px; top: 11px; width: 7px; height: 7px;
	border-radius: 50%; background: rgba(224,104,31,.5);
}
.policy__link { margin-top: 12px; font-size: 12.5px; word-break: break-all; }
@media (min-width: 768px) {
	.policy { gap: 40px; }
	.policy__ttl { font-size: 22px; }
	.policy__text { font-size: 14.5px; }
}

/* ==========================================================================
   事例（/case/）／コラム（/column/）の一覧・個別、404・検索
   ========================================================================== */

/* 記事のヒーロー（実績や電話は出さず、見出しに集中させる） */
.phero--post { padding-bottom: 34px; }
.phero__tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.phero__tag {
	font-size: 10.5px; letter-spacing: .08em; padding: 4px 11px; border-radius: 2px;
	background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.22); color: rgba(255,255,255,.86);
}
.phero__tag--offender { background: rgba(224,104,31,.24); border-color: rgba(240,152,72,.5); }
.phero__tag--victim { background: rgba(47,109,106,.34); border-color: rgba(47,109,106,.6); }
.phero__tag--family { background: rgba(255,255,255,.14); }
.phero__date { margin-top: 14px; font-size: 12px; letter-spacing: .08em; color: rgba(255,255,255,.6); }
.phero--post .phero__h1 { margin-top: 12px; }
@media (min-width: 768px) {
	.phero--post { padding-bottom: 48px; }
	.phero--post .phero__h1 { font-size: 36px; }
}

/* 事例カード */
.caselist { display: grid; gap: 14px; }
.casecard a {
	display: block; height: 100%; background: var(--white); border: 1px solid var(--line);
	border-radius: var(--r); padding: 24px 22px; transition: border-color .2s, transform .2s;
}
.casecard a:hover { border-color: rgba(224,104,31,.5); transform: translateY(-2px); }
.casecard__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.casecard__role {
	font-size: 10.5px; font-weight: 700; letter-spacing: .1em; padding: 4px 11px; border-radius: 2px;
	background: rgba(13,27,42,.06); color: var(--navy);
}
.casecard__role--offender { background: rgba(224,104,31,.12); color: var(--accent-ink); }
.casecard__role--victim { background: rgba(47,109,106,.12); color: var(--victim-d); }
.casecard__period { font-size: 11.5px; letter-spacing: .06em; color: var(--muted-2); }
.casecard__title { font-family: var(--serif); font-size: 19px; line-height: 1.55; letter-spacing: .05em; margin-top: 12px; }
.casecard__text { margin-top: 10px; font-size: 13px; line-height: 1.95; color: var(--muted); }
.casecard__more {
	display: inline-flex; align-items: center; gap: 6px; margin-top: 14px;
	font-size: 12.5px; font-weight: 700; color: var(--accent-ink);
}
@media (min-width: 768px) {
	.caselist { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
	.casecard a { padding: 30px 28px; }
}

/* コラムカード */
.postlist { display: grid; gap: 12px; }
.postcard a {
	display: block; height: 100%; background: var(--white); border: 1px solid var(--line);
	border-radius: var(--r); padding: 22px 20px; transition: border-color .2s, transform .2s;
}
.postcard a:hover { border-color: rgba(224,104,31,.5); transform: translateY(-2px); }
.postcard__date { font-size: 11.5px; letter-spacing: .08em; color: var(--accent); font-variant-numeric: tabular-nums; }
.postcard__title { font-family: var(--serif); font-size: 18px; line-height: 1.55; letter-spacing: .05em; margin-top: 8px; }
.postcard__text { margin-top: 9px; font-size: 12.5px; line-height: 1.9; color: var(--muted); }
.postcard__more {
	display: inline-flex; align-items: center; gap: 6px; margin-top: 12px;
	font-size: 12.5px; font-weight: 700; color: var(--accent-ink);
}
@media (min-width: 768px) {
	.postlist { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
	.postcard a { padding: 26px 24px; }
}

/* ページ送り */
.pager { margin-top: 34px; }
.pager ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.pager a, .pager span {
	display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px;
	padding: 0 12px; border: 1px solid var(--line); border-radius: var(--r); background: var(--white);
	font-size: 13px; letter-spacing: .04em; transition: border-color .2s, background .2s, color .2s;
}
.pager a:hover { border-color: var(--accent); color: var(--accent-ink); }
.pager .current { background: var(--accent); border-color: var(--accent); color: #fff; font-weight: 700; }
.pager .dots { border-color: transparent; background: transparent; }

/* 本文（管理画面から入る内容。ここだけは素の要素にスタイルを当てる） */
.entrythumb { margin: 0 0 26px; max-width: 800px; }
/* ★元画像は640px幅が多い。100%で広げると1056pxまで引き伸ばされてぼやける（2026-09-19 見た目点検）→ 本文と同じ幅まで・元の大きさ以上には広げない */
.entrythumb img { width: auto; max-width: 100%; height: auto; border-radius: var(--r); }
.entrybody { max-width: 800px; font-size: 15px; line-height: 2.15; }
.entrybody > * + * { margin-top: 1.6em; }
.entrybody h2 {
	font-family: var(--serif); font-size: 22px; line-height: 1.55; letter-spacing: .05em;
	margin-top: 2.4em; padding: 0 0 12px 14px; border-left: 4px solid var(--accent);
	border-bottom: 1px solid var(--line);
}
.entrybody h3 {
	font-family: var(--serif); font-size: 19px; line-height: 1.6; letter-spacing: .05em;
	margin-top: 2.2em; padding-left: 13px; border-left: 3px solid rgba(224,104,31,.5);
}
.entrybody h4 { font-size: 16px; margin-top: 2em; letter-spacing: .05em; }
.entrybody p { line-height: 2.15; }
.entrybody a { color: var(--accent-ink); border-bottom: 1px solid rgba(168,72,14,.4); }
.entrybody a:hover { color: var(--accent); border-color: var(--accent); }
.entrybody strong { font-weight: 700; }
.entrybody ul, .entrybody ol { display: grid; gap: 9px; padding-left: 4px; }
.entrybody ul li { position: relative; padding-left: 20px; }
.entrybody ul li::before {
	content: ""; position: absolute; left: 4px; top: 13px; width: 7px; height: 7px;
	border-radius: 50%; background: rgba(224,104,31,.5);
}
.entrybody ol { counter-reset: eo; }
.entrybody ol li { position: relative; padding-left: 28px; counter-increment: eo; }
.entrybody ol li::before {
	content: counter(eo); position: absolute; left: 0; top: 4px;
	width: 20px; height: 20px; border-radius: 50%; background: var(--navy); color: #fff;
	font-size: 11px; display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--serif);
}
.entrybody blockquote {
	padding: 18px 20px; background: var(--white); border: 1px solid var(--line);
	border-left: 3px solid var(--navy); border-radius: var(--r); color: var(--muted);
}
.entrybody img { border-radius: var(--r); max-width: 100%; height: auto; }
.entrybody figure { margin-left: 0; margin-right: 0; }
/* WordPress の寄せ指定（旧記事の画像）。新テーマに無く、中央寄せの画像が左に寄っていた（2026-09-19 見た目点検） */
.entrybody .aligncenter { display: block; margin-left: auto; margin-right: auto; }
.entrybody img.alignnone { display: block; }
.entrybody .alignright { float: right; margin: .4em 0 1em 1.4em; }
.entrybody .alignleft { float: left; margin: .4em 1.4em 1em 0; }
.entrybody::after { content: ""; display: block; clear: both; }
/* 画像に幅（width:500px 等）が直書きされた旧キャプション・埋め込み動画をスマホの幅に収める */
.entrybody .wp-caption { max-width: 100% !important; }
.entrybody iframe, .entrybody video, .entrybody embed { max-width: 100%; }
.entrybody iframe[src*="youtube"], .entrybody iframe[src*="youtu.be"] { width: 100%; height: auto; aspect-ratio: 16 / 9; }
@media (max-width: 599px) {
	.entrybody .alignright, .entrybody .alignleft { float: none; display: block; margin: 0 auto; }
}
.entrybody figcaption { margin-top: 8px; font-size: 12px; color: var(--muted-2); }
.entrybody table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.entrybody th, .entrybody td { border: 1px solid var(--line); padding: 11px 14px; text-align: left; }
.entrybody th { background: var(--paper); font-weight: 700; }
.entrybody hr { border: 0; border-top: 1px solid var(--line); }
/* 旧LPから移した記事（2026-09-18）。写真＋箇条書きの表 table.conecpt と、項目見出しの span */
.entrybody table.conecpt { background: var(--white); }
.entrybody table.conecpt th { background: var(--white); width: 32%; vertical-align: top; }
.entrybody table.conecpt th img { width: 100%; height: auto; }
.entrybody table.conecpt td ul { gap: 18px; }
.entrybody table.conecpt td li > span:first-child { display: block; font-weight: 700; color: var(--navy); margin-bottom: 4px; }
.entrybody table.conecpt td li > span:first-child + br { display: none; }
@media (max-width: 767px) {
	.entrybody table.conecpt, .entrybody table.conecpt tbody,
	.entrybody table.conecpt tr, .entrybody table.conecpt th, .entrybody table.conecpt td { display: block; width: 100%; }
	.entrybody table.conecpt th { border-bottom: 0; padding-bottom: 0; }
	.entrybody table.conecpt th img { max-width: 360px; }
}
/* 旧サイトの埋め込みカードを置き換えた「関連記事」行と、拘禁刑の注記 */
.entrybody .srs-related { padding: 12px 16px; background: var(--white); border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: var(--r); font-size: 14px; }
.entrybody .srs-note { padding: 12px 16px; background: var(--paper); border-radius: var(--r); font-size: 13px; line-height: 1.95; color: var(--muted); }
@media (min-width: 768px) {
	.entrybody { font-size: 16px; }
	.entrybody h2 { font-size: 27px; }
	.entrybody h3 { font-size: 21px; }
}

.entrynote {
	max-width: 800px; margin-top: 26px; padding: 16px 18px; background: var(--paper);
	border-radius: var(--r); font-size: 12.5px; line-height: 1.95; color: var(--muted);
}
.entryback { margin-top: 26px; }

.entrynav { display: grid; gap: 12px; margin-top: 30px; }
.entrynav__item {
	display: block; background: var(--white); border: 1px solid var(--line); border-radius: var(--r);
	padding: 18px 20px; transition: border-color .2s;
}
.entrynav__item:hover { border-color: rgba(224,104,31,.5); }
.entrynav__lb { display: block; font-size: 11px; letter-spacing: .1em; color: var(--accent); font-weight: 700; }
.entrynav__ttl { display: block; margin-top: 6px; font-size: 13.5px; line-height: 1.7; }
.entrynav__item--next { text-align: right; }
@media (min-width: 768px) {
	.entrynav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
}

/* --------------------------------------------------------- このページの要点 / 最終更新 */
.phero__author { margin-left: 14px; }
.phero__author a { color: inherit; border-bottom: 1px solid rgba(255,255,255,.35); }
.phero__author a:hover { color: #fff; border-color: #fff; }
.phero__updated { margin-top: 18px; font-size: 11.5px; letter-spacing: .06em; color: rgba(255,255,255,.5); }
.psum {
	position: relative; margin: 30px 0 0; padding: 22px 20px;
	background: var(--white); border: 1px solid var(--line); border-left: 3px solid var(--accent);
	border-radius: var(--r);
}
.psum__ttl {
	font-family: var(--serif); font-size: 14px; letter-spacing: .12em; color: var(--navy);
	padding-bottom: 12px; border-bottom: 1px solid var(--line-2);
}
.psum__list { display: grid; gap: 10px; margin-top: 14px; }
.psum__list li {
	position: relative; padding-left: 22px; font-size: 13.5px; line-height: 1.95; color: var(--ink);
}
.psum__list li::before {
	content: ""; position: absolute; left: 3px; top: 10px; width: 9px; height: 9px;
	border-radius: 50%; border: 2px solid var(--accent);
}
.psum__list strong { font-weight: 700; }
.psum + .ptoc { margin-top: 14px; }
/* 目次の直後が紺の帯（/media/ など）だと箱が帯にくっつくので、上と同じだけ空ける */
.pbody > .wrap + .psec--dark,
.pbody > .wrap + .psec--reason { margin-top: 30px; }
@media (min-width: 768px) {
	.psum { margin-top: 44px; padding: 26px 30px; }
	.psum__list li { font-size: 14.5px; }
	.psum + .ptoc { margin-top: 18px; }
	.pbody > .wrap + .psec--dark,
	.pbody > .wrap + .psec--reason { margin-top: 44px; }
}

/* --------------------------------------------------------- サイトマップ / 2カラムの注記 */
.twocol__note { margin-top: 12px; font-size: 12.5px; line-height: 1.95; color: var(--muted); }
.smap { display: grid; gap: 30px; }
.smap__ttl {
	display: flex; align-items: baseline; gap: 12px; font-family: var(--serif); font-size: 19px;
	letter-spacing: .06em; padding-bottom: 12px; border-bottom: 1px solid var(--line);
}
.smap__no { font-size: 12px; color: var(--accent); letter-spacing: .1em; }
.smap__list { display: grid; gap: 10px; margin-top: 16px; }
.smap__list a {
	display: block; background: var(--white); border: 1px solid var(--line); border-radius: var(--r);
	padding: 16px 18px; transition: border-color .2s, transform .2s;
}
.smap__list a:hover { border-color: rgba(224,104,31,.5); transform: translateY(-1px); }
.smap__name { display: block; font-family: var(--serif); font-size: 16px; letter-spacing: .05em; }
.smap__desc { display: block; margin-top: 6px; font-size: 12px; line-height: 1.85; color: var(--muted); }
@media (min-width: 768px) {
	.smap { gap: 40px; }
	.smap__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.smap__ttl { font-size: 22px; }
}

/* ==========================================================================
   見た目点検（2026-09-19）で見つかった崩れの手直し（下層ページ・記事）
   ========================================================================== */
/* ヒーローの数字（¥11,000～）がスマホで「¥11,00／0～」と割れる */
@media (max-width: 767px) {
	.phero__stats-num { font-size: clamp(18px, 5.4vw, 27px); white-space: nowrap; }
	.phero__stats-num small { font-size: 11px; }
}
/* タブレット幅（768〜1023px）：3列だと題が細くなる一覧は2列に。
   ★ただしカードがちょうど3枚の組は3列のまま（2列だと3枚目が1枚だけ下の段に残る＝2026-09-19 最終点検の指摘）。
   ★5枚・9枚など奇数で最後の1枚が余るときは、その1枚を横いっぱいに */
@media (min-width: 768px) and (max-width: 1023px) {
	.plinks__grid, .signgrid, .dontgrid, .vgrid, .reasongrid, .ogrid, .pengrid, .postlist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	:is(.plinks__grid, .signgrid, .dontgrid, .vgrid, .reasongrid, .ogrid, .pengrid, .postlist):has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	:is(.plinks__grid, .signgrid, .dontgrid, .vgrid, .reasongrid, .ogrid, .pengrid, .postlist):not(:has(> :nth-child(3):last-child)) > :last-child:nth-child(odd):not(:first-child) { grid-column: 1 / -1; }
	/* 4段の流れ（/flow/ 以外のページのミニ版）は4列だと1列6〜8文字になる → 2×2 */
	.vflow--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bookspec { grid-template-columns: minmax(0, 1fr); }
}
/* 前の記事が無いとき、「次の記事」が左半分に来て右寄せの文字とずれる */
@media (min-width: 768px) {
	.entrynav__item--next:only-child { grid-column: 2; }
}

/* ---- 記事本文 ---- */
/* figure の margin:0 が「ブロック間の空き」まで消していた（見出しに図がくっつく） */
.entrybody figure { margin-left: 0; margin-right: 0; }
/* 寄せ指定なしの画像も中央に（同じ記事の中で左寄せと中央寄せが混ざって見えるため）。アイキャッチも中央 */
.entrybody img.alignnone { margin-left: auto; margin-right: auto; }
.entrythumb img { display: block; margin-left: auto; margin-right: auto; }
/* 写真＋文章の表（class なしの旧LP記事）も conecpt と同じ見せ方に */
.entrybody table:has(th > img) { background: var(--white); }
.entrybody table:has(th > img) th { background: var(--white); width: 32%; vertical-align: top; }
.entrybody table:has(th > img) th img { width: 100%; height: auto; }
.entrybody td > h2:first-child, .entrybody td > h3:first-child { margin-top: 0; }
.entrybody td > h2 { font-size: 19px; }
@media (max-width: 767px) {
	.entrybody table:has(th > img), .entrybody table:has(th > img) tbody,
	.entrybody table:has(th > img) tr, .entrybody table:has(th > img) th, .entrybody table:has(th > img) td { display: block; width: 100%; }
	.entrybody table:has(th > img) th { border-bottom: 0; padding-bottom: 0; }
	.entrybody table:has(th > img) th img { max-width: 360px; }
	.entrybody td > h2 { font-size: 17px; }
}
/* conecpt の箇条書き：項目名のあとの「改行＋全角空白」で1行ぶん空いていた */
.entrybody table.conecpt td li > span:first-child { display: inline; }
/* 旧記事に直書きされた大きな文字・水色の枠を、サイトの見た目にそろえる */
.entrybody [style*="font-size: x-large"], .entrybody [style*="font-size: large"] { font-size: 1.12em !important; }
.entrybody [style*="border: 5px solid"] {
	border: 1px solid var(--line) !important; border-left: 3px solid var(--accent) !important;
	background: var(--white) !important; padding: 14px 18px !important; border-radius: var(--r) !important;
}
.entrybody p:empty { display: none; }
/* 記事ページ全体が左に寄って見える（本文800px幅が1120pxの枠の左端にあり、右に約250pxの空き）→ 本文の列を中央に。
   タイトル部分も同じ列にそろえる（2026-09-19 吉田さん指摘） */
.single-post .phero__inner, .single-case .phero__inner { max-width: calc(800px + var(--pad) * 2); }
.entrythumb, .entrybody, .entryback, .entrynav, .entrynote { margin-left: auto; margin-right: auto; }
.entryback, .entrynav { max-width: 800px; }
/* 本文が見出しから始まる記事で、タイトル帯の下が空きすぎる（見出しの上の余白が足されていた） */
.entrybody > :first-child { margin-top: 0; }
/* サイトマップ：3件の組が2列だと1件だけ下に残る（2026-09-19 最終点検）→ PCは3列・タブレットは最後の1件を横いっぱいに */
@media (min-width: 768px) {
	.smap__list > li:last-child:nth-child(odd):not(:first-child) { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
	.smap__list:has(> li:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.smap__list:has(> li:nth-child(3):last-child) > li:last-child { grid-column: auto; }
}
