:root {
	--policy-ink: #151819;
	--policy-green: #214944;
	--policy-red: #bd281d;
	--policy-gold: #c8aa62;
	--policy-line: #d9dedd;
	--policy-soft: #f2f4f4;
	--policy-muted: #687174;
}

.policy-page { background: #fff; }
.policy-page main { overflow: visible; }

.policy-hero {
	position: relative;
	min-height: 430px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	color: #fff;
	background:
		linear-gradient(115deg, rgba(12, 16, 16, .98), rgba(22, 35, 34, .92) 58%, rgba(33, 73, 68, .78)),
		#17201f;
}

.policy-hero::before {
	position: absolute;
	top: 0;
	right: 9%;
	bottom: 0;
	width: min(39vw, 610px);
	content: "";
	border-right: 1px solid rgba(255, 255, 255, .08);
	border-left: 1px solid rgba(255, 255, 255, .08);
	background:
		linear-gradient(90deg, transparent 49.8%, rgba(255, 255, 255, .07) 50%, transparent 50.2%),
		linear-gradient(0deg, transparent 49.8%, rgba(255, 255, 255, .06) 50%, transparent 50.2%);
	transform: skewX(-9deg);
}

.policy-hero::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 3px;
	content: "";
	background: var(--policy-gold);
}

.policy-hero-privacy {
	background: linear-gradient(115deg, rgba(12, 16, 16, .98), rgba(24, 42, 40, .94) 58%, rgba(44, 67, 64, .82)), #17201f;
}

.policy-hero-inner,
.policy-shell {
	width: min(1240px, calc(100% - 64px));
	margin-right: auto;
	margin-left: auto;
}

.policy-hero-inner {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 60px;
	padding: 132px 0 70px;
}

.policy-hero-inner > div > p {
	margin: 0 0 18px;
	color: var(--policy-gold);
	font: 700 15px/1.2 Georgia, "Times New Roman", serif;
}

.policy-hero-inner > div > p span {
	display: inline-grid;
	width: 29px;
	height: 23px;
	margin-left: 9px;
	place-items: center;
	color: #fff;
	background: var(--policy-red);
	font: 700 12px/1 Pretendard, sans-serif;
}

.policy-hero h1 {
	margin: 0;
	font-size: clamp(45px, 6vw, 74px);
	line-height: 1.05;
	letter-spacing: 0;
}

.policy-hero-inner > div > span {
	display: block;
	margin-top: 24px;
	color: #ccd3d2;
	font-size: 17px;
	line-height: 1.75;
}

.policy-hero dl {
	width: min(390px, 36%);
	margin: 0;
	border-top: 1px solid rgba(255, 255, 255, .32);
}

.policy-hero dl div {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr);
	gap: 20px;
	padding: 18px 0;
	border-bottom: 1px solid rgba(255, 255, 255, .17);
}

.policy-hero dt { color: #aeb8b7; font-size: 14px; }
.policy-hero dd { margin: 0; color: #fff; font-size: 15px; font-weight: 800; }

.policy-shell {
	display: grid;
	grid-template-columns: 250px minmax(0, 1fr);
	gap: 76px;
	padding: 90px 0 120px;
}

.policy-index {
	position: sticky;
	top: calc(var(--header-height) + 26px);
	align-self: start;
}

.policy-index > p {
	margin: 0 0 17px;
	color: var(--policy-red);
	font: 700 14px/1 Georgia, "Times New Roman", serif;
}

.policy-index nav { border-top: 2px solid var(--policy-ink); }
.policy-index nav a {
	display: grid;
	grid-template-columns: 31px minmax(0, 1fr);
	gap: 8px;
	align-items: center;
	min-height: 52px;
	color: #566063;
	border-bottom: 1px solid var(--policy-line);
	font-size: 14px;
	transition: color .2s ease, padding-left .25s ease;
}

.policy-index nav a:hover,
.policy-index nav a:focus-visible {
	padding-left: 7px;
	color: var(--policy-red);
	outline: 0;
}

.policy-index nav span { color: #9ba3a5; font: 700 12px/1 Georgia, serif; }
.policy-switch {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 55px;
	margin-top: 22px;
	padding: 0 17px;
	color: #fff;
	background: var(--policy-green);
	font-size: 14px;
	font-weight: 800;
}
.policy-switch svg { width: 17px; }

.policy-document { min-width: 0; }
.policy-document-head {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 38px;
	padding: 0 0 48px;
	border-bottom: 2px solid var(--policy-ink);
}
.policy-document-head > div { display: flex; flex-direction: column; gap: 8px; }
.policy-document-head span { color: var(--policy-red); font: 700 14px/1.2 Georgia, serif; }
.policy-document-head strong { font-size: 22px; }
.policy-document-head p { margin: 0; color: var(--policy-muted); font-size: 15px; line-height: 1.8; }

.policy-section {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
	gap: 28px;
	padding: 64px 0;
	scroll-margin-top: calc(var(--header-height) + 24px);
	border-bottom: 1px solid var(--policy-line);
}
.policy-section-accent { position: relative; }
.policy-section-accent::before {
	position: absolute;
	top: 0;
	bottom: 0;
	left: -28px;
	width: 3px;
	content: "";
	background: var(--policy-red);
}
.policy-number {
	width: 43px;
	height: 43px;
	display: grid;
	place-items: center;
	color: #fff;
	background: var(--policy-ink);
	font: 700 14px/1 Georgia, serif;
}
.policy-section h2 { margin: 0 0 36px; font-size: 31px; line-height: 1.25; }
.policy-section h3 { margin: 34px 0 13px; font-size: 18px; line-height: 1.45; }
.policy-section h2 + h3 { margin-top: 0; }
.policy-section p,
.policy-section li { color: #4f595c; font-size: 15px; line-height: 1.9; }
.policy-section p { margin: 0; }
.policy-section ol,
.policy-section ul { margin: 0; padding-left: 21px; }
.policy-section li + li { margin-top: 7px; }
.policy-section strong { color: var(--policy-ink); }

.policy-note {
	display: grid;
	grid-template-columns: 23px minmax(0, 1fr);
	gap: 13px;
	margin-top: 26px !important;
	padding: 20px 22px;
	color: #324643 !important;
	background: #edf3f2;
	border-left: 3px solid var(--policy-green);
}
.policy-note svg { width: 21px; margin-top: 3px; }

.policy-price-list,
.policy-retention {
	margin: 5px 0 22px;
	border-top: 2px solid var(--policy-ink);
}
.policy-price-list p,
.policy-retention p {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	padding: 16px 4px;
	border-bottom: 1px solid var(--policy-line);
}
.policy-price-list strong,
.policy-retention strong { text-align: right; }
.policy-price-list strong { font-size: 17px; }

.policy-data-table { margin: 10px 0 25px; border-top: 2px solid var(--policy-ink); }
.policy-data-table > div {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr) 165px;
	border-bottom: 1px solid var(--policy-line);
}
.policy-data-table-two > div { grid-template-columns: minmax(220px, .75fr) minmax(0, 1.25fr); }
.policy-data-table span,
.policy-data-table strong { padding: 16px 14px; font-size: 14px; line-height: 1.65; }
.policy-data-table strong { background: var(--policy-soft); }
.policy-data-table span + span,
.policy-data-table strong + strong { border-left: 1px solid var(--policy-line); }

.policy-section address {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 24px;
	margin: 18px 0 0;
	padding: 24px;
	color: #d8dfde;
	background: var(--policy-green);
	font-style: normal;
}
.policy-section address strong { grid-column: 1 / -1; color: #fff; font-size: 18px; }
.policy-section address span,
.policy-section address a { font-size: 14px; }
.policy-section address a { text-decoration: underline; text-underline-offset: 3px; }
.policy-effective { margin-top: 25px !important; color: var(--policy-ink) !important; font-weight: 800; }
.policy-agencies { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; padding: 1px !important; background: var(--policy-line); list-style: none; }
.policy-agencies li { display: flex; flex-direction: column; gap: 4px; margin: 0 !important; padding: 17px; background: #fff; }
.policy-agencies span { color: var(--policy-muted); font-size: 14px; }

@media (max-width: 960px) {
	.policy-hero-inner,
	.policy-shell { width: min(100% - 40px, 760px); }
	.policy-hero { min-height: 390px; }
	.policy-hero-inner { padding: 118px 0 56px; }
	.policy-hero dl { width: 340px; }
	.policy-shell { grid-template-columns: 1fr; gap: 45px; padding-top: 55px; }
	.policy-index { position: static; }
	.policy-index nav { display: grid; grid-template-columns: repeat(3, 1fr); }
	.policy-index nav a { border-right: 1px solid var(--policy-line); }
	.policy-switch { width: 240px; }
}

@media (max-width: 680px) {
	.policy-hero-inner,
	.policy-shell { width: calc(100% - 32px); }
	.policy-hero { min-height: 0; }
	.policy-hero::before { right: -30%; width: 78vw; }
	.policy-hero-inner { display: block; padding: 112px 0 44px; }
	.policy-hero h1 { font-size: 39px; }
	.policy-hero-inner > div > span { margin-top: 18px; font-size: 15px; }
	.policy-hero dl { width: 100%; margin-top: 35px; }
	.policy-hero dl div { grid-template-columns: 92px minmax(0, 1fr); padding: 13px 0; }
	.policy-shell { gap: 38px; padding: 42px 0 78px; }
	.policy-index nav { grid-template-columns: repeat(2, 1fr); }
	.policy-index nav a { min-height: 50px; padding-right: 8px; }
	.policy-switch { width: 100%; }
	.policy-document-head { grid-template-columns: 1fr; gap: 18px; padding-bottom: 30px; }
	.policy-document-head > div { flex-direction: row; align-items: center; justify-content: space-between; }
	.policy-document-head strong { font-size: 19px; }
	.policy-section { grid-template-columns: 1fr; gap: 20px; padding: 47px 0; }
	.policy-section-accent::before { left: -16px; }
	.policy-section h2 { margin-bottom: 28px; font-size: 27px; }
	.policy-section h3 { margin-top: 29px; font-size: 17px; }
	.policy-section p,
	.policy-section li { font-size: 15px; line-height: 1.82; }
	.policy-price-list p,
	.policy-retention p { align-items: flex-start; padding: 14px 2px; }
	.policy-price-list p span,
	.policy-retention p span { flex: 1; }
	.policy-data-table > div,
	.policy-data-table-two > div { grid-template-columns: 112px minmax(0, 1fr); }
	.policy-data-table > div > :nth-child(3) { grid-column: 2; border-top: 1px solid var(--policy-line); border-left: 1px solid var(--policy-line); }
	.policy-data-table > div:first-child > :nth-child(3) { display: none; }
	.policy-data-table span,
	.policy-data-table strong { padding: 13px 11px; }
	.policy-section address { grid-template-columns: 1fr; padding: 20px; }
	.policy-agencies { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: no-preference) {
	.policy-hero-inner > div,
	.policy-hero dl { animation: policy-enter .8s cubic-bezier(.16, 1, .3, 1) both; }
	.policy-hero dl { animation-delay: .14s; }
	@keyframes policy-enter {
		from { opacity: 0; transform: translateY(18px); }
		to { opacity: 1; transform: none; }
	}
}
