/*
 * banglao 規約・ポリシー類ページ専用スタイル。
 *
 * トーンは archive.css（カテゴリー）/ shop-page.css と共通
 * （紺ヒーロー＋赤いマーカー下線、白背景、共通フォント --bl-font）。
 * page-policy.php（固定ページ スラッグ kiyaku / privacy-policy）でのみ読み込む（inc/enqueue.php）。
 * 全体を .policy-page（= #main）配下にスコープし、他ページに影響させない。
 * 本文は固定ページの HTML（h2 / h3 / p / ul / ol / table）にスタイルを当てるだけ。
 */

/* --- 全幅レイアウト（祖先の横幅制限を外す） ------------------------------ */
body.policy #content,
body.policy #content-in,
body.policy .content-in.wrap {
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
}

body.policy #content {
	margin-top: 0;
}

body.policy #main.policy-page {
	padding: 0;
	background: var(--bl-blue-tint);
	overflow-x: clip;
}

/* --- トークン（archive.css と同じ値） ----------------------------------- */
.policy-page {
	--bl-red: #d7282f;
	--bl-red-dark: #a91822;
	--bl-navy: #102a43;
	--bl-ink: #17212b;
	--bl-muted: #65717d;
	--bl-line: #e2e4e7;
	--bl-shell: min(820px, calc(100% - 48px));

	color: var(--bl-ink);
	font-feature-settings: "palt";
	line-height: 1.7;
}

.policy-page a {
	text-decoration: none;
}

/* --- ヒーロー ------------------------------------------------------------ */
.policy-page-hero {
	position: relative;
	overflow: hidden;
	background: var(--bl-navy);
	color: #fff;
}

.policy-page-hero::after {
	content: "";
	position: absolute;
	width: 420px;
	height: 420px;
	border: 84px solid rgba(255, 255, 255, .06);
	border-radius: 50%;
	right: -170px;
	top: -200px;
	pointer-events: none;
}

.policy-page-hero__in {
	position: relative;
	z-index: 1;
	width: min(1180px, calc(100% - 48px));
	margin-inline: auto;
	padding: 14px 0 clamp(36px, 5vw, 58px);
}

.policy-page-hero .bl-breadcrumb {
	padding: 6px 0 0;
	color: #fff;
}

.policy-page-hero .bl-breadcrumb a,
.policy-page-hero .bl-breadcrumb__current {
	color: #fff;
}

.policy-page-hero .bl-breadcrumb a {
	text-decoration-color: rgba(255, 255, 255, .5);
}

.policy-page-hero .bl-breadcrumb a:hover,
.policy-page-hero .bl-breadcrumb a:focus-visible {
	color: #ffd7d9;
}

.policy-page-hero .bl-breadcrumb__sep {
	color: #ff6e73;
}

.policy-page-hero__kicker {
	margin: clamp(20px, 3vw, 34px) 0 12px;
	font-family: var(--bl-font);
	font-weight: 700;
	font-size: 12px;
	letter-spacing: .24em;
	color: #8fa6bd;
}

.policy-page-hero__title {
	margin: 0;
	font-size: clamp(30px, 4.4vw, 52px);
	line-height: 1.22;
	letter-spacing: -.03em;
	color: #fff;
}

.policy-page-hero__title em {
	font-style: normal;
	padding: 0 3px;
	background: linear-gradient(transparent 74%, var(--bl-red) 74%, var(--bl-red) 92%, transparent 92%);
}

.policy-page-hero__date {
	margin: 18px 0 0;
	color: #c5d2dc;
	font-size: 13px;
	line-height: 1.9;
}

/* --- 本文（読み物のカード） ----------------------------------------------- */
.policy-page-body__in {
	width: var(--bl-shell);
	margin-inline: auto;
	padding: clamp(32px, 5vw, 56px) 0 clamp(56px, 8vw, 92px);
}

.policy-page-card {
	margin: 0;
	padding: clamp(24px, 4vw, 48px);
	background: #fff;
	border: 1px solid var(--bl-line);
	border-radius: 12px;
	box-shadow: 0 10px 28px rgba(16, 42, 67, .08);
}

.policy-page-card .entry-content {
	margin: 0;
	padding: 0;
	font-size: 15px;
	line-height: 1.95;
}

/* 旧エディターが付けた文字色（インライン指定）は使わず、サイトの文字色に統一する。 */
.policy-page-card .entry-content span[style] {
	color: inherit !important;
	background: none !important;
}

.policy-page-card .entry-content > *:first-child {
	margin-top: 0;
}

.policy-page-card .entry-content > p:empty,
.policy-page-card .entry-content > p:has(> br:only-child) {
	display: none;
}

.policy-page-card .entry-content p {
	margin: 0 0 1.2em;
}

/* --- 見出し --------------------------------------------------------------- */
.policy-page-card .entry-content h2 {
	margin: 2.4em 0 .9em;
	padding: 0 0 .5em;
	background: none;
	border: 0;
	border-bottom: 2px solid var(--bl-navy);
	color: var(--bl-navy);
	font-size: clamp(19px, 2.4vw, 22px);
	font-weight: 800;
	line-height: 1.5;
}

.policy-page-card .entry-content h2:first-child {
	margin-top: 0;
}

.policy-page-card .entry-content h3 {
	margin: 1.9em 0 .7em;
	padding: 0 0 0 .75em;
	background: none;
	border: 0;
	border-left: 4px solid var(--bl-red);
	color: var(--bl-navy);
	font-size: 17px;
	font-weight: 800;
	line-height: 1.55;
}

.policy-page-card .entry-content h4 {
	margin: 1.5em 0 .5em;
	padding: 0;
	background: none;
	border: 0;
	color: var(--bl-navy);
	font-size: 15px;
	font-weight: 800;
}

/* --- リスト --------------------------------------------------------------- */
.policy-page-card .entry-content ul,
.policy-page-card .entry-content ol {
	margin: 0 0 1.4em;
	padding-left: 1.6em;
}

.policy-page-card .entry-content ul {
	list-style: disc;
}

.policy-page-card .entry-content ol {
	list-style: decimal;
}

.policy-page-card .entry-content li {
	margin: 0 0 .5em;
	padding: 0;
}

.policy-page-card .entry-content li::before,
.policy-page-card .entry-content li::marker {
	color: var(--bl-red);
}

.policy-page-card .entry-content li > ul,
.policy-page-card .entry-content li > ol {
	margin: .5em 0 .5em;
}

/* 旧エディターのインデント指定（ql-indent-N）は、リストの入れ子の代わりに左余白で表す。 */
.policy-page-card .entry-content li.ql-indent-1 {
	margin-left: 1.4em;
}

.policy-page-card .entry-content li.ql-indent-2 {
	margin-left: 2.8em;
}

/* --- 表・リンク ------------------------------------------------------------ */
.policy-page-card .entry-content table {
	width: 100%;
	margin: 0 0 1.6em;
	border-collapse: collapse;
	font-size: 14px;
}

.policy-page-card .entry-content th,
.policy-page-card .entry-content td {
	padding: 12px 14px;
	border: 1px solid var(--bl-line);
	text-align: left;
	vertical-align: top;
}

.policy-page-card .entry-content th {
	background: var(--bl-blue-tint);
	color: var(--bl-navy);
	font-weight: 800;
}

.policy-page-card .entry-content a {
	color: var(--bl-red-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.policy-page-card .entry-content a:hover,
.policy-page-card .entry-content a:focus-visible {
	color: var(--bl-red);
}

@media (max-width: 600px) {
	.policy-page {
		--bl-shell: calc(100% - 32px);
	}
	.policy-page-hero__in {
		width: calc(100% - 32px);
	}
	.policy-page-card .entry-content {
		font-size: 14px;
	}
	.policy-page-card .entry-content table {
		display: block;
		overflow-x: auto;
	}
}
