/* PSTN privacy policy — scoped to the code-backed /privacy-policy/ route. */
.pstn-privacy {
	--privacy-blue: #1469c8;
	--privacy-deep: #0b3f78;
	--privacy-ink: #15202b;
	--privacy-muted: #66736f;
	--privacy-line: #e1e8e4;
	padding-top: var(--pstn-chrome-height);
	overflow: clip;
	background: #fff;
	color: var(--privacy-ink);
}

body.pstn-promotion-hidden .pstn-privacy { padding-top: var(--pstn-header-height); }

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

.pstn-privacy h1,
.pstn-privacy h2,
.pstn-privacy h3,
.pstn-privacy p,
.pstn-privacy dl,
.pstn-privacy dd,
.pstn-privacy ol,
.pstn-privacy ul { margin: 0; }

.pstn-privacy a { color: inherit; text-decoration: none; }

.pstn-privacy-container {
	width: min(calc(100% - 64px), 1320px);
	margin-right: auto;
	margin-left: auto;
}

.pstn-privacy-hero {
	position: relative;
	min-height: 360px;
	padding: 84px 0 66px;
	overflow: hidden;
	background:
		radial-gradient(circle at 88% 12%, rgba(20, 105, 200, .13), transparent 30%),
		linear-gradient(128deg, #faf6ed 0%, #f3f8f5 56%, #e8f2ee 100%);
}

.pstn-privacy-hero::after {
	position: absolute;
	top: -210px;
	right: -90px;
	width: 500px;
	height: 500px;
	border: 1px solid rgba(20, 105, 200, .12);
	border-radius: 50%;
	content: "";
}

.pstn-privacy-kicker,
.pstn-privacy-section-no {
	color: var(--privacy-blue);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .2em;
}

.pstn-privacy-hero h1 {
	margin-top: 19px;
	font-family: var(--pstn-font);
	font-size: clamp(46px, 5.2vw, 76px);
	font-weight: 700;
	line-height: 1.04;
	letter-spacing: -.055em;
}

.pstn-privacy-hero__lead {
	margin-top: 28px !important;
	color: #42504d;
	font-size: 17px;
	line-height: 1.8;
	letter-spacing: -.025em;
}

.pstn-privacy-layout {
	padding-top: 92px;
	padding-bottom: 150px;
	display: grid;
	grid-template-columns: 224px minmax(0, 1fr);
	gap: clamp(64px, 8vw, 126px);
}

.pstn-privacy-nav {
	position: sticky;
	top: 170px;
	min-width: 0;
	max-width: 100%;
	align-self: start;
}

.pstn-privacy-nav > strong {
	display: block;
	padding-bottom: 17px;
	border-bottom: 2px solid var(--privacy-ink);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .18em;
}

.pstn-privacy-nav ol { padding: 14px 0 0; list-style: none; counter-reset: privacy-nav; }
.pstn-privacy-nav li { counter-increment: privacy-nav; }
.pstn-privacy-nav a {
	min-height: 44px;
	display: grid;
	grid-template-columns: 25px 1fr;
	align-items: center;
	color: #66706f;
	font-size: 12px;
	line-height: 1.45;
	transition: color .2s ease;
}
.pstn-privacy-nav a::before { content: counter(privacy-nav, decimal-leading-zero); color: #75817d; font-size: 12px; }
.pstn-privacy-nav a:hover,
.pstn-privacy-nav a:focus-visible { color: var(--privacy-blue); }

.pstn-privacy-content { max-width: 900px; min-width: 0; }

.pstn-privacy-notice {
	margin-bottom: 76px;
	padding: 27px 30px;
	border: 1px solid #d7e5de;
	border-radius: 8px;
	background: #f3f8f5;
}
.pstn-privacy-notice strong { display: block; font-size: 16px; line-height: 1.5; }
.pstn-privacy-notice p { margin-top: 8px !important; color: #63706c; font-size: 13px; line-height: 1.7; }

.pstn-privacy-content > section {
	padding: 0 0 78px;
	border-bottom: 1px solid var(--privacy-line);
	scroll-margin-top: 175px;
}
.pstn-privacy-content > section + section { padding-top: 78px; }
.pstn-privacy-content > section:last-child { padding-bottom: 0; border-bottom: 0; }
.pstn-privacy-content h2 { margin-top: 13px; font-size: clamp(25px, 2.2vw, 34px); line-height: 1.3; letter-spacing: -.04em; }
.pstn-privacy-content h3 { font-size: 17px; line-height: 1.45; letter-spacing: -.025em; }
.pstn-privacy-content section > p:not(.pstn-privacy-section-no):not(.pstn-privacy-effective) {
	margin-top: 22px;
	color: #596461;
	font-size: 14px;
	line-height: 1.9;
	letter-spacing: -.015em;
}
.pstn-privacy-content section > p + p { margin-top: 11px !important; }
.pstn-privacy-content section > ul { margin-top: 20px; padding-left: 19px; color: #596461; font-size: 14px; line-height: 1.85; }
.pstn-privacy-content section > ul li + li { margin-top: 5px; }

.pstn-privacy-data-list { margin-top: 34px; display: grid; gap: 13px; }
.pstn-privacy-data-list > article { padding: 27px 30px 26px; border: 1px solid var(--privacy-line); border-radius: 8px; }
.pstn-privacy-data-list dl { margin-top: 21px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pstn-privacy-data-list dl > div { padding-right: 20px; }
.pstn-privacy-data-list dl > div + div { padding-left: 20px; border-left: 1px solid var(--privacy-line); }
.pstn-privacy-data-list dt { color: var(--privacy-blue); font-size: 12px; font-weight: 750; letter-spacing: .08em; }
.pstn-privacy-data-list dd { margin-top: 8px; color: #626d69; font-size: 12px; line-height: 1.7; }

.pstn-privacy-service-list { margin-top: 26px; border-top: 2px solid var(--privacy-ink); }
.pstn-privacy-service-list > div {
	min-height: 73px;
	padding: 16px 2px;
	display: grid;
	grid-template-columns: 180px 1fr auto;
	align-items: center;
	gap: 20px;
	border-bottom: 1px solid var(--privacy-line);
}
.pstn-privacy-service-list strong { font-size: 13px; }
.pstn-privacy-service-list span { color: #68736f; font-size: 12px; }
.pstn-privacy-service-list a { min-height: 44px; display: inline-flex; align-items: center; border-bottom: 1px solid #9da6a3; color: #4c5653; font-size: 12px; font-weight: 650; }

.pstn-privacy-contact {
	margin-top: 28px;
	padding: 27px 30px;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-radius: 8px;
	background: #f7f5ef;
}
.pstn-privacy-contact > div + div { padding-left: 24px; border-left: 1px solid #dfddd5; }
.pstn-privacy-contact span { display: block; color: #66726e; font-size: 12px; }
.pstn-privacy-contact strong,
.pstn-privacy-contact a { margin-top: 7px; display: block; font-size: 13px; font-weight: 700; }

.pstn-privacy-remedies { padding-left: 0 !important; list-style: none; border-top: 1px solid var(--privacy-line); }
.pstn-privacy-remedies li { min-height: 49px; margin: 0 !important; padding: 10px 2px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--privacy-line); }
.pstn-privacy-remedies a { color: var(--privacy-deep); font-weight: 650; }
.pstn-privacy-remedies span { color: #78817e; font-size: 12px; }

.pstn-privacy-effective {
	margin-top: 27px !important;
	padding: 18px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	border-radius: 8px;
	background: #f3f8f5;
	font-size: 13px;
}
.pstn-privacy-effective strong { font-weight: 700; }
.pstn-privacy-effective span { color: #69736f; }

@media (max-width: 900px) {
	.pstn-privacy-container { width: min(calc(100% - 40px), 1320px); }
	.pstn-privacy-hero { min-height: 390px; padding-top: 72px; }
	.pstn-privacy-layout { padding-top: 48px; grid-template-columns: 1fr; gap: 60px; }
	.pstn-privacy-nav { position: static; }
	.pstn-privacy-nav > strong { padding-bottom: 12px; }
	.pstn-privacy-nav ol { width: 100%; max-width: 100%; padding-top: 12px; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
	.pstn-privacy-nav ol::-webkit-scrollbar { display: none; }
	.pstn-privacy-nav li { flex: 0 0 auto; }
	.pstn-privacy-nav a { min-height: 44px; padding: 0 13px; display: flex; border: 1px solid var(--privacy-line); border-radius: 999px; background: #fff; white-space: nowrap; }
	.pstn-privacy-nav a::before { margin-right: 7px; }
	.pstn-privacy-content { max-width: none; }
	.pstn-privacy-content > section { scroll-margin-top: 120px; }
}

@media (max-width: 767px) {
	.pstn-privacy-container { width: calc(100% - 30px); }
	.pstn-privacy-hero { min-height: 0; padding: 55px 0 42px; }
	.pstn-privacy-hero h1 { margin-top: 14px; font-size: 42px; }
	.pstn-privacy-hero__lead { margin-top: 21px !important; font-size: 14px; line-height: 1.75; }
	.pstn-privacy-hero__lead br { display: none; }
	.pstn-privacy-layout { padding-top: 32px; padding-bottom: 105px; gap: 48px; }
	.pstn-privacy-notice { margin-bottom: 58px; padding: 22px 20px; border-radius: 13px; }
	.pstn-privacy-notice strong { font-size: 14px; }
	.pstn-privacy-content > section { padding-bottom: 58px; }
	.pstn-privacy-content > section + section { padding-top: 58px; }
	.pstn-privacy-content h2 { font-size: 25px; }
	.pstn-privacy-content section > p:not(.pstn-privacy-section-no):not(.pstn-privacy-effective),
	.pstn-privacy-content section > ul { font-size: 13px; line-height: 1.85; }
	.pstn-privacy-data-list > article { padding: 22px 20px; border-radius: 13px; }
	.pstn-privacy-data-list dl { grid-template-columns: 1fr; }
	.pstn-privacy-data-list dl > div { padding: 13px 0; display: grid; grid-template-columns: 48px 1fr; gap: 8px; }
	.pstn-privacy-data-list dl > div + div { padding-left: 0; border-top: 1px solid var(--privacy-line); border-left: 0; }
	.pstn-privacy-data-list dd { margin-top: 0; }
	.pstn-privacy-service-list > div { padding: 17px 1px; grid-template-columns: 1fr auto; gap: 7px 14px; }
	.pstn-privacy-service-list span { grid-column: 1 / -1; grid-row: 2; }
	.pstn-privacy-service-list a { grid-column: 2; grid-row: 1; }
	.pstn-privacy-contact { padding: 21px 20px; grid-template-columns: 1fr; }
	.pstn-privacy-contact > div { padding: 10px 0; display: grid; grid-template-columns: 115px 1fr; align-items: center; }
	.pstn-privacy-contact > div + div { padding-left: 0; border-top: 1px solid #dfddd5; border-left: 0; }
	.pstn-privacy-contact strong,
	.pstn-privacy-contact a { margin-top: 0; }
	.pstn-privacy-remedies li { align-items: flex-start; flex-direction: column; gap: 3px; }
}

@media (prefers-reduced-motion: reduce) {
	.pstn-privacy *,
	.pstn-privacy *::before,
	.pstn-privacy *::after { scroll-behavior: auto !important; transition: none !important; }
}
