/* HoliSpace overview pages (Lessen & Sessies) — scoped under
   body.holispace-overview. Uses CSS variables already defined in main.css
   (--primary, --beige, --beige-dark, --cream, --text). Local helpers below
   add muted/soft/rule aliases used by the layout. */

body.holispace-overview {
	--ov-muted: #8a5a3e;
	--ov-soft: #b08566;
	--ov-rule: var(--beige-dark);
	background: var(--cream);
	color: var(--text);
	font-family: 'DM Sans', system-ui, sans-serif;
	font-size: 18px;
	line-height: 1.7;
	font-weight: 300;
	-webkit-font-smoothing: antialiased;
}

body.holispace-overview .holispace-overview { display: block; padding-top: 110px; padding-bottom: 96px; }
body.holispace-overview ::selection { background: var(--beige-dark); color: var(--text); }

/* Hero */
body.holispace-overview .hsov-hero {
	max-width: 1240px;
	margin: 0 auto;
	padding: 64px 32px 24px;
}
body.holispace-overview .hsov-crumbs {
	font-size: 13px;
	color: var(--ov-soft);
	letter-spacing: 0.02em;
	margin-bottom: 24px;
}
body.holispace-overview .hsov-crumbs a { color: var(--ov-muted); text-decoration: none; }
body.holispace-overview .hsov-crumbs a:hover { color: var(--primary); }
body.holispace-overview .hsov-crumbs .sep { margin: 0 8px; color: var(--beige-dark); }
body.holispace-overview .hsov-kicker {
	display: inline-block;
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--primary);
	margin-bottom: 20px;
	font-weight: 500;
}
body.holispace-overview .hsov-h1 {
	font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
	font-weight: 400;
	letter-spacing: -0.005em;
	font-size: clamp(42px, 5.6vw, 76px);
	line-height: 1.05;
	margin: 0 0 24px;
	color: var(--text);
	text-wrap: balance;
	max-width: 18ch;
}
body.holispace-overview .hsov-h1 em { font-style: italic; color: var(--primary); }
body.holispace-overview .hsov-hero-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 64px;
	align-items: end;
	padding-top: 8px;
}
body.holispace-overview .hsov-deck {
	font-size: 21px;
	color: var(--ov-muted);
	line-height: 1.55;
	margin: 0 0 8px;
	text-wrap: pretty;
	max-width: 46ch;
}
body.holispace-overview .hsov-meta {
	border-top: 1px solid var(--ov-rule);
	padding-top: 16px;
	margin-top: 8px;
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	font-size: 13px;
	color: var(--ov-muted);
}
body.holispace-overview .hsov-meta strong {
	color: var(--text);
	font-weight: 500;
	display: block;
	font-size: 18px;
	margin-bottom: 2px;
	font-family: 'Playfair Display', Georgia, serif;
}

/* Cards grid */
body.holispace-overview .hsov-grid-wrap--lessen {
	max-width: 1240px;
	margin: 48px auto 0;
	padding: 40px 32px 0;
	border-top: 1px solid var(--ov-rule);
}
body.holispace-overview .hsov-grid--lessen {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px 28px;
}
body.holispace-overview .hsov-grid-wrap--sessies {
	max-width: 1240px;
	margin: 64px auto 0;
	padding: 0 32px;
}
body.holispace-overview .hsov-grid--sessies {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px 40px;
}
body.holispace-overview .hsov-card {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	transition: transform 0.25s ease;
}
body.holispace-overview .hsov-card:hover { transform: translateY(-2px); }
body.holispace-overview .hsov-card-img {
	border-radius: 14px;
	overflow: hidden;
	position: relative;
	margin-bottom: 18px;
	border: 1px solid var(--ov-rule);
	background: var(--beige);
}
body.holispace-overview .hsov-card--lesson .hsov-card-img { aspect-ratio: 5 / 4; }
body.holispace-overview .hsov-card--session .hsov-card-img { aspect-ratio: 5 / 3; margin-bottom: 22px; }
body.holispace-overview .hsov-card-img svg { width: 100%; height: 100%; display: block; }
body.holispace-overview .hsov-card-tag {
	position: absolute;
	left: 12px;
	bottom: 12px;
	background: rgba(99, 48, 26, 0.7);
	color: var(--cream);
	backdrop-filter: blur(6px);
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 4px 8px;
	border-radius: 6px;
	font-weight: 500;
}
body.holispace-overview .hsov-card-duration {
	position: absolute;
	right: 12px;
	top: 12px;
	background: rgba(253, 250, 245, 0.95);
	color: var(--text);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	padding: 5px 10px;
	border-radius: 999px;
}
body.holispace-overview .hsov-card-badge {
	position: absolute;
	right: 14px;
	top: 14px;
	background: rgba(253, 250, 245, 0.95);
	color: var(--text);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	padding: 6px 11px;
	border-radius: 999px;
}
body.holispace-overview .hsov-card-meta {
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--primary);
	font-weight: 500;
	margin-bottom: 6px;
}
body.holispace-overview .hsov-card-title {
	font-family: 'Playfair Display', 'Cormorant Garamond', Georgia, serif;
	font-weight: 400;
	font-size: 28px;
	line-height: 1.18;
	letter-spacing: -0.005em;
	margin: 0 0 8px;
	color: var(--text);
}
body.holispace-overview .hsov-card-title--lg {
	font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
	font-size: 36px;
	line-height: 1.1;
	margin-bottom: 12px;
	text-wrap: balance;
}
body.holispace-overview .hsov-card-desc {
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--ov-muted);
	margin: 0 0 12px;
	text-wrap: pretty;
}
body.holispace-overview .hsov-card-desc--lg {
	font-size: 17px;
	line-height: 1.6;
	color: var(--text);
	opacity: 0.8;
	margin-bottom: 18px;
}
body.holispace-overview .hsov-card-read {
	font-size: 13px;
	color: var(--primary);
	font-weight: 500;
	margin-top: auto;
	padding-top: 4px;
}
body.holispace-overview .hsov-card-read::after { content: ' →'; transition: margin 0.2s; }
body.holispace-overview .hsov-card:hover .hsov-card-read::after { margin-left: 4px; }
body.holispace-overview .hsov-card-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 16px;
	border-top: 1px solid var(--ov-rule);
	font-size: 13px;
	color: var(--ov-muted);
	margin-top: auto;
}
body.holispace-overview .hsov-card-foot .price { color: var(--text); font-weight: 600; }
body.holispace-overview .hsov-card-foot .price span { color: var(--ov-muted); font-weight: 400; margin-left: 4px; }
body.holispace-overview .hsov-card-foot .read { color: var(--primary); font-weight: 500; }
body.holispace-overview .hsov-card-foot .read::after { content: ' \2192'; }

/* Strip (lessen) */
body.holispace-overview .hsov-strip {
	max-width: 1240px;
	margin: 96px auto 0;
	padding: 0 32px;
}
body.holispace-overview .hsov-strip-inner {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 80px;
	border-top: 1px solid var(--ov-rule);
	padding-top: 64px;
}
body.holispace-overview .hsov-strip h2 {
	font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
	font-weight: 400;
	font-size: clamp(32px, 3.8vw, 48px);
	line-height: 1.1;
	letter-spacing: -0.005em;
	margin: 0;
	color: var(--text);
	text-wrap: balance;
}
body.holispace-overview .hsov-strip h2 em { font-style: italic; color: var(--primary); }
body.holispace-overview .hsov-strip-body p {
	font-size: 17px;
	line-height: 1.7;
	color: var(--text);
	opacity: 0.85;
	margin: 0 0 18px;
}
body.holispace-overview .hsov-strip-body p:last-child { margin-bottom: 0; }

/* Practical (lessen) */
body.holispace-overview .hsov-practical {
	max-width: 1240px;
	margin: 64px auto 0;
	padding: 0 32px;
}
body.holispace-overview .hsov-practical-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
body.holispace-overview .hsov-practical-card {
	background: #fff;
	border: 1px solid var(--ov-rule);
	border-radius: 16px;
	padding: 22px 22px 24px;
}
body.holispace-overview .hsov-practical-card .ic {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--beige);
	display: grid;
	place-items: center;
	color: var(--primary);
	font-size: 14px;
	margin-bottom: 14px;
}
body.holispace-overview .hsov-practical-card h4 {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: var(--primary);
	margin: 0 0 8px;
	font-weight: 500;
}
body.holispace-overview .hsov-practical-card p {
	font-size: 15px;
	line-height: 1.55;
	margin: 0;
	color: var(--text);
	opacity: 0.85;
}

/* Promise band (sessies) */
body.holispace-overview .hsov-promise {
	max-width: 1240px;
	margin: 96px auto 0;
	padding: 0 32px;
}
body.holispace-overview .hsov-promise-inner {
	border-top: 1px solid var(--ov-rule);
	border-bottom: 1px solid var(--ov-rule);
	padding: 36px 0;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 48px;
}
body.holispace-overview .hsov-promise-item .lbl {
	font-size: 11px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--primary);
	font-weight: 500;
	margin-bottom: 8px;
}
body.holispace-overview .hsov-promise-item p {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--text);
	opacity: 0.85;
	text-wrap: pretty;
}

/* Who (sessies) */
body.holispace-overview .hsov-who {
	max-width: 1240px;
	margin: 96px auto 0;
	padding: 0 32px;
}
body.holispace-overview .hsov-who-inner {
	background: var(--beige);
	border-radius: 24px;
	padding: 56px 64px;
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: 64px;
	align-items: start;
}
body.holispace-overview .hsov-who h2 {
	font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
	font-weight: 400;
	font-size: clamp(32px, 3.6vw, 46px);
	line-height: 1.1;
	letter-spacing: -0.005em;
	margin: 0;
	color: var(--text);
	text-wrap: balance;
}
body.holispace-overview .hsov-who h2 em { font-style: italic; color: var(--primary); }
body.holispace-overview .hsov-who-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px 36px;
	margin: 0;
	padding: 0;
	list-style: none;
}
body.holispace-overview .hsov-who-list li {
	position: relative;
	padding-left: 24px;
	font-size: 16px;
	line-height: 1.55;
	color: var(--text);
}
body.holispace-overview .hsov-who-list li::before {
	content: '\2713';
	position: absolute;
	left: 0;
	top: 0;
	color: var(--primary);
	font-weight: 700;
	font-size: 13px;
}

/* Process steps (sessies) */
body.holispace-overview .hsov-process {
	max-width: 1240px;
	margin: 96px auto 0;
	padding: 0 32px;
}
body.holispace-overview .hsov-process-head { margin-bottom: 32px; }
body.holispace-overview .hsov-process-head h2 {
	font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
	font-weight: 400;
	font-size: clamp(30px, 3.2vw, 40px);
	line-height: 1.15;
	letter-spacing: -0.005em;
	margin: 0 0 8px;
	color: var(--text);
}
body.holispace-overview .hsov-process-head p {
	margin: 0;
	color: var(--ov-muted);
	font-size: 17px;
	max-width: 54ch;
}
body.holispace-overview .hsov-steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
body.holispace-overview .hsov-step {
	border-top: 1px solid var(--ov-rule);
	padding-top: 18px;
}
body.holispace-overview .hsov-step .n {
	font-size: 11px;
	letter-spacing: 0.22em;
	color: var(--primary);
	font-weight: 500;
	margin-bottom: 8px;
}
body.holispace-overview .hsov-step h4 {
	font-family: 'Playfair Display', Georgia, serif;
	font-weight: 500;
	font-size: 19px;
	line-height: 1.25;
	margin: 0 0 6px;
	color: var(--text);
}
body.holispace-overview .hsov-step p {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--ov-muted);
}

/* CTA strip */
body.holispace-overview .hsov-cta-strip {
	max-width: 1240px;
	margin: 80px auto 64px;
	padding: 0 32px;
}
body.holispace-overview .hsov-cta-inner {
	background: var(--primary);
	color: #fff;
	border-radius: 24px;
	padding: 56px 64px;
	display: grid;
	grid-template-columns: 1.4fr auto;
	gap: 40px;
	align-items: center;
	position: relative;
	overflow: hidden;
}
body.holispace-overview .hsov-cta-inner::before {
	content: '';
	position: absolute;
	top: -30%;
	right: -15%;
	width: 50%;
	height: 160%;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.08) 0%, transparent 65%);
	pointer-events: none;
}
body.holispace-overview .hsov-cta-strip h3 {
	font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
	font-weight: 400;
	font-size: clamp(32px, 3.6vw, 44px);
	line-height: 1.1;
	letter-spacing: -0.005em;
	margin: 0 0 10px;
	text-wrap: balance;
	position: relative;
}
body.holispace-overview .hsov-cta-strip h3 em { font-style: italic; color: var(--beige); }
body.holispace-overview .hsov-cta-strip p {
	margin: 0;
	color: rgba(244, 223, 201, 0.9);
	font-size: 16px;
	max-width: 48ch;
	position: relative;
}
body.holispace-overview .hsov-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 14px;
	font-weight: 500;
	padding: 14px 26px;
	border-radius: 999px;
	text-decoration: none;
	letter-spacing: 0.04em;
	transition: transform 0.2s, background 0.2s, box-shadow 0.2s;
	position: relative;
}
body.holispace-overview .hsov-btn-primary { background: #fff; color: var(--primary); }
body.holispace-overview .hsov-btn-primary:hover {
	background: var(--cream);
	transform: translateY(-2px);
	box-shadow: 0 12px 36px rgba(0, 0, 0, 0.18);
}

/* Responsive */
@media (max-width: 980px) {
	body.holispace-overview .holispace-overview { padding-bottom: 64px; }
	body.holispace-overview .hsov-hero { padding-top: 40px; }
	body.holispace-overview .hsov-hero-grid { grid-template-columns: 1fr; gap: 32px; }
	body.holispace-overview .hsov-grid--lessen { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
	body.holispace-overview .hsov-grid--sessies { grid-template-columns: 1fr; gap: 48px; }
	body.holispace-overview .hsov-strip-inner { grid-template-columns: 1fr; gap: 24px; padding-top: 40px; }
	body.holispace-overview .hsov-practical-grid { grid-template-columns: 1fr 1fr; }
	body.holispace-overview .hsov-promise-inner { grid-template-columns: 1fr; gap: 24px; }
	body.holispace-overview .hsov-who-inner { grid-template-columns: 1fr; padding: 32px; gap: 24px; }
	body.holispace-overview .hsov-who-list { grid-template-columns: 1fr; }
	body.holispace-overview .hsov-steps { grid-template-columns: 1fr 1fr; }
	body.holispace-overview .hsov-cta-inner { grid-template-columns: 1fr; padding: 32px; gap: 20px; text-align: left; }
}
@media (max-width: 620px) {
	body.holispace-overview .hsov-grid--lessen { grid-template-columns: 1fr; }
	body.holispace-overview .hsov-practical-grid { grid-template-columns: 1fr; }
	body.holispace-overview .hsov-steps { grid-template-columns: 1fr; }
}
