/* ============================================================
   Policies Library — template-policies.php
   Editorial & governance library: hero, posture pillar, notes,
   six card sections, and a full-text modal.
   ============================================================ */

.gc-policies {
	--pol-max: 1280px;
}

/* HERO */
.gc-policies__hero {
	background: var(--gc-bg-card, #fff);
	padding: 35px 0 48px;
	position: relative;
	overflow: hidden;
	border-bottom: 0.5px solid var(--gc-border, #E4EAF2);
}
.gc-policies__hero::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 50%;
	height: 100%;
	background: radial-gradient(ellipse 60% 80% at 100% 50%, rgba(0, 198, 174, .06) 0%, transparent 60%);
	pointer-events: none;
}
.gc-policies__hero-inner {
	max-width: var(--pol-max);
	margin: 0 auto;
	padding: 0 31px;
	position: relative;
	z-index: 1;
}
.gc-policies__hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: var(--gc-primary-soft, #E6FAF7);
	border: 0.5px solid rgba(0, 198, 174, .3);
	color: var(--gc-primary-dark, #00A894);
	font-size: 11px;
	font-weight: 800;
	padding: 6px 15px;
	border-radius: 999px;
	margin-bottom: 18px;
	text-transform: uppercase;
	letter-spacing: .08em;
}
.gc-policies__hero-dot {
	width: 6px;
	height: 6px;
	min-width: 6px;
	max-width: 6px;
	aspect-ratio: 1 / 1;
	flex: 0 0 6px;
	align-self: center;
	border-radius: 50%;
	background: var(--gc-primary-dark, #00A894);
	display: block;
	padding: 0;
	line-height: 0;
	font-size: 0;
	animation: gc-pulse 1.5s ease-in-out infinite;
}
@keyframes gc-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: .2; }
}
.gc-policies__hero-title {
	font-family: var(--gc-font-display, 'Sora', sans-serif);
	font-size: 42px;
	font-weight: 800;
	color: var(--gc-navy, #0D1B3E);
	letter-spacing: -1px;
	line-height: 1.1;
	margin: 0 0 18px;
}
.gc-policies__hero-accent {
	color: var(--gc-primary, #00C6AE);
}
.gc-policies__hero-sub {
	font-size: 15.5px;
	color: var(--gc-muted, #64748B);
	line-height: 1.75;
	max-width: 780px;
	margin: 0;
}
/* META BAR — full-width gray strip (mirrors About ticker) */
.gc-policies__meta-bar {
	background: var(--gc-bg-soft, #F8FAFC);
	border-top: 0.5px solid var(--gc-border, #E4EAF2);
	border-bottom: 0.5px solid var(--gc-border, #E4EAF2);
}
.gc-policies__meta-inner {
	max-width: var(--pol-max);
	margin: 0 auto;
	padding: 16px 31px;
	display: flex;
	align-items: center;
	gap: 36px;
	flex-wrap: wrap;
}
.gc-policies__meta-item {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.gc-policies__meta-label {
	font-size: 11px;
	color: var(--gc-light, #9ca3af);
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 500;
}
.gc-policies__meta-value {
	font-family: var(--gc-font-display, 'Sora', sans-serif);
	font-size: 15px;
	font-weight: 600;
	color: var(--gc-navy, #0D1B3E);
	letter-spacing: -0.01em;
	line-height: 1.3;
}
[data-theme="dark"] .gc-policies__meta-bar {
	background: rgba(255, 255, 255, 0.02);
}
[data-theme="dark"] .gc-policies__meta-value {
	color: #f1f5f9;
}

/* WRAP */
.gc-policies__wrap {
	max-width: var(--pol-max);
	margin: 0 auto;
	padding: 40px 31px 36px;
}

/* PILLAR */
.gc-policies__pillar {
	background: var(--gc-bg-card, #fff);
	border: 0.5px solid var(--gc-border, #E4EAF2);
	border-radius: 14px;
	padding: 34px 38px;
	box-shadow: 0 1px 3px rgba(13, 27, 62, .04);
	margin-bottom: 24px;
}
.gc-policies__pillar-eyebrow {
	display: inline-flex;
	align-items: center;
	background: var(--gc-primary-soft, #E6FAF7);
	border: 0.5px solid rgba(0, 198, 174, .3);
	color: var(--gc-primary-dark, #00A894);
	font-size: 10.5px;
	font-weight: 800;
	padding: 5px 14px;
	border-radius: 999px;
	margin-bottom: 16px;
	text-transform: uppercase;
	letter-spacing: .1em;
}
.gc-policies__pillar-title {
	font-family: var(--gc-font-display, 'Sora', sans-serif);
	font-size: 27px;
	font-weight: 800;
	color: var(--gc-navy, #0D1B3E);
	letter-spacing: -.4px;
	margin: 0 0 14px;
	line-height: 1.2;
}
.gc-policies__pillar-desc {
	font-size: 14.5px;
	color: var(--gc-muted, #64748B);
	line-height: 1.85;
	margin: 0 0 22px;
}
.gc-policies__pillar-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	padding-top: 22px;
	border-top: 0.5px solid var(--gc-border, #E4EAF2);
}
.gc-policies__pillar-stat {
	background: var(--gc-bg-soft, #F8FAFC);
	border: 0.5px solid var(--gc-border, #E4EAF2);
	border-radius: 10px;
	padding: 14px 16px;
}
.gc-policies__pillar-stat-lbl {
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--gc-primary-dark, #00A894);
	margin-bottom: 6px;
}
.gc-policies__pillar-stat-val {
	font-size: 13px;
	color: var(--gc-navy, #0D1B3E);
	font-weight: 600;
	line-height: 1.45;
}

/* NOTES */
.gc-policies__note {
	border-radius: 14px;
	padding: 18px 24px;
	margin-bottom: 28px;
	font-size: 12.5px;
	line-height: 1.75;
}
.gc-policies__note h3 {
	font-family: var(--gc-font-display, 'Sora', sans-serif);
	font-size: 14px;
	margin-bottom: 6px;
	font-weight: 800;
}
.gc-policies__note--gold {
	background: #FFFBEB;
	border: 0.5px solid #FDE68A;
	color: #92400E;
}
.gc-policies__note--gold h3 { color: #78350F; }
.gc-policies__note--gold strong { color: #78350F; }
.gc-policies__note--teal {
	background: var(--gc-primary-soft, #E6FAF7);
	border: 0.5px solid rgba(0, 198, 174, .35);
	color: #0A5C52;
}
.gc-policies__note--teal h3 { color: #00665A; }
.gc-policies__note--teal strong { color: #00665A; }

/* SECTION */
.gc-policies__section {
	margin-bottom: 56px;
}
.gc-policies__sec-head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 20px;
	padding-bottom: 16px;
	border-bottom: 0.5px solid var(--gc-border, #E4EAF2);
}
.gc-policies__sec-icon {
	width: 44px;
	height: 44px;
	border-radius: 11px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	background: var(--gc-primary-soft, #E6FAF7);
	color: var(--gc-primary-dark, #00A894);
}
.gc-policies__sec-icon svg { width: 22px; height: 22px; }
.gc-policies__sec-title {
	font-family: var(--gc-font-display, 'Sora', sans-serif);
	font-size: 20px;
	font-weight: 800;
	color: var(--gc-navy, #0D1B3E);
	margin: 0;
}
.gc-policies__sec-desc {
	font-size: 12.5px;
	color: var(--gc-muted, #64748B);
	margin: 3px 0 0;
}
.gc-policies__intro {
	font-size: 14.5px;
	color: var(--gc-muted, #64748B);
	line-height: 1.85;
	margin: 0 0 22px;
	max-width: 840px;
}

/* CARD GRID */
.gc-policies__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}
.gc-policies__card {
	background: var(--gc-bg-card, #fff);
	border: 0.5px solid var(--gc-border, #E4EAF2);
	border-radius: 14px;
	padding: 20px 22px;
	box-shadow: 0 1px 3px rgba(13, 27, 62, .04);
	transition: all .18s ease;
	display: flex;
	flex-direction: column;
	cursor: pointer;
	position: relative;
	overflow: hidden;
	text-align: left;
	font-family: inherit;
	width: 100%;
}
.gc-policies__card:hover {
	border-color: var(--gc-primary, #00C6AE);
	box-shadow: 0 12px 32px rgba(13, 27, 62, .10);
	transform: translateY(-2px);
}
.gc-policies__card-icon {
	width: 36px;
	height: 36px;
	border-radius: 9px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-bottom: 12px;
	background: var(--gc-primary-soft, #E6FAF7);
	color: var(--gc-primary-dark, #00A894);
}
.gc-policies__card-icon svg { width: 18px; height: 18px; }
.gc-policies__card-label {
	font-size: 9.5px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .1em;
	margin-bottom: 5px;
	color: var(--gc-primary-dark, #00A894);
}
.gc-policies__card-name {
	font-family: var(--gc-font-display, 'Sora', sans-serif);
	font-size: 14px;
	font-weight: 800;
	color: var(--gc-navy, #0D1B3E);
	margin-bottom: 5px;
	line-height: 1.3;
}
.gc-policies__card-desc {
	font-size: 12px;
	color: var(--gc-muted, #64748B);
	line-height: 1.55;
	margin-bottom: 10px;
	flex: 1;
}
.gc-policies__card-meta {
	font-size: 10.5px;
	color: var(--gc-light, #94A3B8);
	font-weight: 600;
	margin-top: auto;
	padding-top: 9px;
	border-top: 0.5px solid var(--gc-border, #E4EAF2);
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.gc-policies__card-read {
	color: var(--gc-primary-dark, #00A894);
	font-weight: 700;
}

/* MODAL */
.gc-policies__modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(13, 27, 62, .6);
	backdrop-filter: blur(6px);
	z-index: 1000;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 28px;
	overflow-y: auto;
	opacity: 0;
	transition: opacity .3s ease;
}
.gc-policies__modal-overlay[hidden] {
	display: none;
}
.gc-policies__modal-overlay.is-open {
	opacity: 1;
}
.gc-policies__modal {
	background: var(--gc-bg-card, #fff);
	border-radius: 16px;
	width: 100%;
	max-width: 840px;
	min-height: 200px;
	box-shadow: 0 24px 80px rgba(13, 27, 62, .28);
	transform: translateY(20px) scale(.98);
	transition: all .3s ease;
	overflow: hidden;
	margin: auto;
}
.gc-policies__modal-overlay.is-open .gc-policies__modal {
	transform: translateY(0) scale(1);
}
.gc-policies__modal-head {
	padding: 30px 36px 24px;
	position: relative;
	border-bottom: 0.5px solid var(--gc-border, #E4EAF2);
}
.gc-policies__modal-accent {
	height: 3px;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	border-radius: 16px 16px 0 0;
	background: var(--gc-primary, #00C6AE);
}
.gc-policies__modal-top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
}
.gc-policies__modal-icon {
	width: 56px;
	height: 56px;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-bottom: 14px;
	background: var(--gc-primary-soft, #E6FAF7);
	color: var(--gc-primary-dark, #00A894);
}
.gc-policies__modal-icon svg { width: 28px; height: 28px; }
.gc-policies__modal-close {
	width: 38px;
	height: 38px;
	border-radius: 9px;
	border: 0.5px solid var(--gc-border, #E4EAF2);
	background: var(--gc-bg-soft, #F8FAFC);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	cursor: pointer;
	transition: .15s;
	flex-shrink: 0;
	color: var(--gc-muted, #64748B);
}
.gc-policies__modal-close:hover {
	background: var(--gc-navy, #0D1B3E);
	border-color: var(--gc-navy, #0D1B3E);
	color: #fff;
}
.gc-policies__modal-badge {
	font-size: 10px;
	font-weight: 800;
	padding: 3px 11px;
	border-radius: 999px;
	text-transform: uppercase;
	letter-spacing: .07em;
	margin-bottom: 10px;
	display: inline-block;
	background: var(--gc-primary-soft, #E6FAF7);
	color: var(--gc-primary-dark, #00A894);
}
.gc-policies__modal-title {
	font-family: var(--gc-font-display, 'Sora', sans-serif);
	font-size: 25px;
	font-weight: 800;
	color: var(--gc-navy, #0D1B3E);
	letter-spacing: -.4px;
	margin: 0 0 7px;
}
.gc-policies__modal-sub {
	font-size: 13.5px;
	color: var(--gc-muted, #64748B);
	line-height: 1.65;
	margin: 0;
}
.gc-policies__modal-meta {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-top: 16px;
	flex-wrap: wrap;
}
.gc-policies__modal-meta-item {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 11.5px;
	color: var(--gc-light, #94A3B8);
	font-weight: 600;
}
.gc-policies__modal-body {
	padding: 32px 36px;
	font-size: 14px;
	line-height: 1.85;
	color: var(--gc-muted, #64748B);
	max-height: calc(100vh - 300px);
	overflow-y: auto;
}
.gc-policies__modal-body h2 {
	font-family: var(--gc-font-display, 'Sora', sans-serif);
	font-size: 17px;
	font-weight: 800;
	color: var(--gc-navy, #0D1B3E);
	margin: 24px 0 11px;
	display: flex;
	align-items: center;
	gap: 9px;
}
.gc-policies__modal-body h2::before {
	content: '';
	width: 3px;
	height: 17px;
	border-radius: 2px;
	flex-shrink: 0;
	background: var(--gc-primary, #00C6AE);
}
.gc-policies__modal-body h3 {
	font-family: var(--gc-font-display, 'Sora', sans-serif);
	font-size: 14.5px;
	font-weight: 800;
	color: var(--gc-navy, #0D1B3E);
	margin: 18px 0 7px;
}
.gc-policies__modal-body p { margin-bottom: 13px; }
.gc-policies__modal-body p:last-child { margin-bottom: 0; }
.gc-policies__modal-body strong { color: var(--gc-navy, #0D1B3E); }
.gc-policies__modal-body ul {
	margin: 8px 0 14px 20px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.gc-policies__modal-body ul li {
	font-size: 14px;
	color: var(--gc-muted, #64748B);
	line-height: 1.65;
}
.gc-policies__modal-body ul li::marker { color: var(--gc-primary, #00C6AE); }
.gc-policies__modal-body a {
	color: var(--gc-primary-dark, #00A894);
	font-weight: 600;
}
.gc-policies__modal-body a:hover { text-decoration: underline; }

.modal-callout {
	border-radius: 10px;
	padding: 14px 16px;
	margin: 18px 0;
	font-size: 13px;
	line-height: 1.7;
	display: flex;
	gap: 11px;
	align-items: flex-start;
}
.modal-callout.green { background: #F0FDF4; border: 0.5px solid #BBF7D0; color: #166534; }
.modal-callout.blue { background: #EFF6FF; border: 0.5px solid #BFDBFE; color: var(--gc-navy, #0D1B3E); }
.modal-callout.gold { background: #FFFBEB; border: 0.5px solid #FDE68A; color: #92400E; }
.modal-callout.rose { background: #FFF1F2; border: 0.5px solid #FECDD3; color: #BE123C; }
.modal-callout span { font-size: 18px; flex-shrink: 0; line-height: 1.4; }

.policy-legal-footer {
	margin-top: 26px;
	padding: 16px 18px;
	background: var(--gc-bg-soft, #F8FAFC);
	border: 0.5px solid var(--gc-border, #E4EAF2);
	border-radius: 11px;
	font-size: 11.5px;
	line-height: 1.7;
	color: var(--gc-light, #94A3B8);
}
.policy-legal-footer strong { color: var(--gc-muted, #64748B); font-weight: 700; }
.policy-legal-footer .plf-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px dashed var(--gc-border, #E4EAF2);
	font-family: var(--gc-font-display, 'Sora', sans-serif);
	font-size: 10.5px;
	font-weight: 700;
	color: var(--gc-muted, #64748B);
	text-transform: uppercase;
	letter-spacing: .04em;
}
.policy-legal-footer .plf-row span.plf-dot { color: var(--gc-light, #94A3B8); }
.contact-list, .related-list { margin-bottom: 14px; }

.gc-policies__modal-foot {
	padding: 18px 36px;
	border-top: 0.5px solid var(--gc-border, #E4EAF2);
	background: var(--gc-bg-soft, #F8FAFC);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}
.gc-policies__modal-info { font-size: 12px; color: var(--gc-light, #94A3B8); }
.gc-policies__modal-nav { display: flex; gap: 8px; }
.gc-policies__modal-btn {
	padding: 10px 22px;
	border-radius: 9px;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	transition: .15s;
	border: none;
}
.gc-policies__modal-btn--close {
	background: var(--gc-bg-card, #fff);
	color: var(--gc-muted, #64748B);
	border: 0.5px solid var(--gc-border, #E4EAF2);
}
.gc-policies__modal-btn--close:hover {
	border-color: var(--gc-navy, #0D1B3E);
	color: var(--gc-navy, #0D1B3E);
}
.gc-policies__modal-btn--print {
	background: var(--gc-navy, #0D1B3E);
	color: #fff;
}
.gc-policies__modal-btn--print:hover { background: var(--gc-navy-mid, #1A2F5E); }

/* DARK MODE */
[data-theme="dark"] .gc-policies__hero,
[data-theme="dark"] .gc-policies__pillar,
[data-theme="dark"] .gc-policies__card,
[data-theme="dark"] .gc-policies__modal {
	background: var(--gc-bg-card, #0f1d40);
	border-color: rgba(255, 255, 255, .08);
}
[data-theme="dark"] .gc-policies__hero-title,
[data-theme="dark"] .gc-policies__pillar-title,
[data-theme="dark"] .gc-policies__card-name,
[data-theme="dark"] .gc-policies__sec-title,
[data-theme="dark"] .gc-policies__modal-title,
[data-theme="dark"] .gc-policies__modal-body h2,
[data-theme="dark"] .gc-policies__modal-body h3 {
	color: #f1f5f9;
}
[data-theme="dark"] .gc-policies__pillar-stat,
[data-theme="dark"] .gc-policies__pillar-grid {
	border-color: rgba(255, 255, 255, .08);
}
[data-theme="dark"] .gc-policies__pillar-stat {
	background: rgba(255, 255, 255, .04);
}

/* RESPONSIVE */
@media (max-width: 1024px) {
	.gc-policies__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gc-policies__pillar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
	.gc-policies__hero-title { font-size: 31px; }
	.gc-policies__hero { padding: 33px 0px 36px; }
	.gc-policies__hero-inner,
	.gc-policies__meta-inner {
		padding-left: 24px;
		padding-right: 24px;
	}
	.gc-policies__meta-inner {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 18px 16px;
		align-items: start;
	}
	.gc-policies__wrap { padding: 32px 24px 64px; }
	.gc-policies__pillar { padding: 24px 20px; }
}
@media (max-width: 540px) {
	.gc-policies__grid,
	.gc-policies__pillar-grid { grid-template-columns: 1fr; }
	.gc-policies__hero-title { font-size: 26px; }
	.gc-policies__modal-head,
	.gc-policies__modal-body,
	.gc-policies__modal-foot { padding-left: 20px; padding-right: 20px; }
}
/* ── Dark mode: modal navy buttons + blue callout ── */
[data-theme="dark"] .gc-policies__modal-close:hover {
	background: #0D1B3E;
	border-color: #0D1B3E;
}
[data-theme="dark"] .gc-policies__modal-btn--print {
	background: #0D1B3E;
}
[data-theme="dark"] .modal-callout.blue {
	background: rgba(59, 130, 246, 0.12);
	border-color: rgba(59, 130, 246, 0.3);
	color: #93C5FD;
}

/* ── Dark mode ── */

/* Hero is a section, not a card — match the page background. */
[data-theme="dark"] .gc-policies__hero {
	background: var(--gc-bg);
}

/* Gold "Important" note: light amber → dark amber tint with readable text. */
[data-theme="dark"] .gc-policies__note--gold {
	background: rgba(234, 179, 8, 0.06);
	border-color: rgba(234, 179, 8, 0.20);
	color: rgba(255, 255, 255, 0.78);
}
[data-theme="dark"] .gc-policies__note--gold h3,
[data-theme="dark"] .gc-policies__note--gold strong {
	color: #FCD34D;
}

/* Teal "A note" block: the dark-teal text is unreadable on the dark-teal
   tint — lift text to bright teal / light. */
[data-theme="dark"] .gc-policies__note--teal {
	background: rgba(0, 198, 174, 0.06);
	border-color: rgba(0, 198, 174, 0.20);
	color: rgba(255, 255, 255, 0.82);
}
[data-theme="dark"] .gc-policies__note--teal h3,
[data-theme="dark"] .gc-policies__note--teal strong {
	color: #7DD3C8;
}

/* ── Dark mode: modal callouts (green/gold/rose) ──
   Light status tints with dark text are unreadable on dark. Swap to dark
   translucent tints with bright text, preserving semantic colour. */
[data-theme="dark"] .modal-callout.green {
	background: rgba(34, 197, 94, 0.12);
	border-color: rgba(34, 197, 94, 0.3);
	color: #86EFAC;
}
[data-theme="dark"] .modal-callout.gold {
	background: rgba(234, 179, 8, 0.12);
	border-color: rgba(234, 179, 8, 0.3);
	color: #FCD34D;
}
[data-theme="dark"] .modal-callout.rose {
	background: rgba(244, 63, 94, 0.12);
	border-color: rgba(244, 63, 94, 0.3);
	color: #FDA4AF;
}

/* ── Dark mode: hero eyebrow badge — match iHub (subtle teal pill) ── */
[data-theme="dark"] .gc-policies__hero-badge {
	background: rgba(0, 198, 174, 0.08);
	border-color: rgba(0, 198, 174, 0.20);
	color: #7DD3C8;
}