/* ==========================================================================
   Refund Policy page (page-templates/template-refund-policy.php).
   Loaded on this page only — see inc/refund-policy.php. Every class here
   is prefixed .rp- so nothing leaks into the rest of the site.
   ========================================================================== */

/* ---- Hero "last updated" line ---- */
.rp-updated {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 18px 0 0;
	padding: 8px 16px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.28);
	color: #fff;
	font-size: 0.85rem;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.rp-updated svg { width: 16px; height: 16px; }

/* ---- At a Glance: four refund tiers ---- */
.rp-glance {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.rp-tier {
	--rp-tone: var(--color-primary);
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
	padding: 30px 26px 26px;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	transition: transform var(--transition), box-shadow var(--transition);
}
.rp-tier::before {
	content: '';
	position: absolute;
	inset: 0 0 auto 0;
	height: 5px;
	background: var(--rp-tone);
}
.rp-tier:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.rp-tier--green      { --rp-tone: var(--color-primary); }
.rp-tier--ochre      { --rp-tone: var(--accent-ochre); }
.rp-tier--terracotta { --rp-tone: var(--accent-terracotta); }
.rp-tier--sage       { --rp-tone: var(--accent-sage); }
.rp-tier-when {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-text-light);
}
.rp-tier-value {
	font-family: var(--font-heading);
	font-size: clamp(1.45rem, 1.8vw, 1.8rem);
	line-height: 1.2;
	color: var(--rp-tone);
}
.rp-tier p { margin: 0; font-size: 0.9rem; color: var(--color-text-light); }

/* ---- Policy details: index + numbered blocks ---- */
.rp-layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 40px;
	align-items: start;
}
.rp-index {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 26px 24px;
	box-shadow: var(--shadow-sm);
}
.rp-index h2 {
	font-size: 1.05rem;
	margin: 0 0 14px;
	color: var(--color-primary-dark);
}
.rp-index ol {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	counter-reset: rp-index;
}
.rp-index li { counter-increment: rp-index; }
.rp-index a {
	display: flex;
	gap: 10px;
	padding: 9px 12px;
	border-radius: var(--radius-sm);
	font-size: 0.9rem;
	color: var(--color-text);
	transition: background var(--transition), color var(--transition), padding-left var(--transition);
}
.rp-index a::before {
	content: counter(rp-index, decimal-leading-zero);
	font-weight: 600;
	color: var(--color-secondary);
}
.rp-index a:hover,
.rp-index a:focus-visible {
	background: var(--color-bg-alt);
	color: var(--color-primary-dark);
	padding-left: 16px;
}
.rp-print { width: 100%; }

.rp-content { display: flex; flex-direction: column; gap: 20px; min-width: 0; }

.rp-note {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 20px 22px;
	border-radius: var(--radius-md);
	background: linear-gradient(135deg, rgba(47, 93, 80, 0.1), rgba(201, 162, 75, 0.12));
	border: 1px solid rgba(47, 93, 80, 0.2);
	border-left: 4px solid var(--color-primary);
}
.rp-note svg { width: 22px; height: 22px; flex-shrink: 0; color: var(--color-primary); margin-top: 2px; }
.rp-note p { margin: 0; color: var(--color-primary-dark); font-weight: 500; }

.rp-block {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	padding: 28px;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
	scroll-margin-top: calc(var(--header-h) + 20px);
	transition: border-color var(--transition), box-shadow var(--transition);
}
.rp-block:hover { border-color: rgba(47, 93, 80, 0.35); box-shadow: var(--shadow-md); }
.rp-block:target { border-color: var(--color-secondary); box-shadow: 0 0 0 4px rgba(217, 138, 61, 0.15); }
.rp-block-num {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 1.1rem;
	color: #fff;
	background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
}
.rp-block h3 { margin: 4px 0 10px; font-size: 1.2rem; color: var(--color-primary-dark); }
.rp-block p { margin: 0 0 10px; color: var(--color-text-light); }
.rp-block p:last-child { margin-bottom: 0; }

.rp-list { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 10px; }
.rp-list li { display: flex; gap: 10px; align-items: flex-start; color: var(--color-text); font-size: 0.95rem; }
.rp-list svg { width: 18px; height: 18px; flex-shrink: 0; margin-top: 3px; color: var(--color-secondary); }

/* ---- How to request: three steps ---- */
.rp-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	position: relative;
}
.rp-step {
	position: relative;
	text-align: center;
	padding: 36px 26px 28px;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
	transition: transform var(--transition), box-shadow var(--transition);
}
.rp-step:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.rp-step-num {
	width: 56px;
	height: 56px;
	margin: 0 auto 16px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-heading);
	font-size: 1.4rem;
	font-weight: 700;
	color: #fff;
	background: linear-gradient(135deg, var(--color-secondary), var(--color-secondary-dark));
	box-shadow: 0 6px 18px rgba(217, 138, 61, 0.35);
}
.rp-step h3 { font-size: 1.1rem; margin-bottom: 8px; }
.rp-step p { margin: 0; color: var(--color-text-light); font-size: 0.93rem; }

/* ---- Responsive ---- */
@media (max-width: 1180px) {
	.rp-glance { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1024px) {
	.rp-layout { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 780px) {
	.rp-glance, .rp-steps { grid-template-columns: 1fr; }
	.rp-block { flex-direction: column; gap: 14px; padding: 22px; }
	.rp-block-num { width: 42px; height: 42px; font-size: 1rem; }
}

/* ---- Print / Save as PDF: just the policy text ---- */
@media print {
	.site-header, .site-footer, .rp-index, .rp-cta-section, .rp-steps, .hero--page .breadcrumb-row { display: none !important; }
	.hero--page { background: none !important; color: #000; min-height: 0; padding: 0; }
	.hero--page h1, .hero--page .lead, .rp-updated { color: #000 !important; }
	.section { padding: 16px 0 !important; background: none !important; }
	.reveal { opacity: 1 !important; transform: none !important; }
	.rp-layout { display: block; }
	.rp-tier, .rp-block, .rp-note { box-shadow: none; break-inside: avoid; }
}
