/* ===========================================================
   Stewart Law — Homepage layout
   Section-by-section styles for the redesigned front page.
   Scoped to .stewartlaw-front-page so nothing bleeds onto
   interior pages until Phase 2 expands the system.
   =========================================================== */

.stewartlaw-front-page {
	overflow-x: hidden;
}

/* Hide Twenty Sixteen / Kadence default sidebar on the front page.
   Adjusted again once we activate the child theme on Kadence —
   Kadence templates have their own primary/sidebar wrappers we'll
   target explicitly. For Twenty Sixteen baseline this works. */
.stewartlaw-front-page #secondary,
.stewartlaw-front-page .widget-area,
.stewartlaw-front-page .secondary {
	display: none !important;
}

.stewartlaw-front-page #primary,
.stewartlaw-front-page .site-main,
.stewartlaw-front-page .content-area {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	float: none;
}

/* ---------- 1. Minimal hero ---------- */
.sl-hero {
	padding-top: clamp(var(--sl-s-6), 10vw, var(--sl-s-8));
	padding-bottom: clamp(var(--sl-s-3), 4vw, var(--sl-s-5));
	background: linear-gradient(180deg, var(--sl-color-paper) 0%, var(--sl-color-paper-tint) 100%);
}

.sl-hero__inner {
	max-width: 980px;
	margin-inline: auto;
	padding-inline: clamp(var(--sl-s-3), 4vw, var(--sl-s-5));
	text-align: left;
}

.sl-hero__title {
	font-family: var(--sl-font-serif);
	font-size: var(--sl-fs-display);
	line-height: var(--sl-lh-display);
	letter-spacing: var(--sl-tracking-display);
	font-weight: 500;
	color: var(--sl-color-ink);
	margin: 0 0 var(--sl-s-3);
	font-optical-sizing: auto;
}

.sl-hero__sub {
	font-family: var(--sl-font-sans);
	font-size: clamp(1.125rem, 1.4vw + 0.5rem, 1.375rem);
	line-height: 1.45;
	color: var(--sl-color-ink-soft);
	max-width: 38ch;
	margin: 0 0 var(--sl-s-5);
}

.sl-hero__ctas {
	display: flex;
	gap: var(--sl-s-3);
	align-items: center;
	flex-wrap: wrap;
}

/* ---------- 2. Positioning paragraph ---------- */
.sl-positioning {
	padding-block: clamp(var(--sl-s-3), 3vw, var(--sl-s-4));
}

.sl-positioning__lede {
	max-width: 60ch;
	margin: 0 auto;
	font-size: clamp(1.0625rem, 0.6vw + 0.9rem, 1.1875rem);
	line-height: 1.65;
	color: var(--sl-color-ink-soft);
	text-align: left;
}

/* ---------- 3. Practice-area cards ---------- */
.sl-practice {
	padding-block: clamp(var(--sl-s-5), 7vw, var(--sl-s-7));
}

.sl-practice__head {
	max-width: 720px;
	margin: 0 auto var(--sl-s-5);
	text-align: center;
}
.sl-practice__head h2 {
	font-size: var(--sl-fs-h2);
	margin: 0;
}

.sl-practice__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: var(--sl-s-3);
}

@media (min-width: 900px) {
	.sl-practice__grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.sl-practice__icon {
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--sl-color-accent);
	margin-bottom: var(--sl-s-1);
}
.sl-practice__icon svg { width: 100%; height: 100%; }

/* ---------- 4. Credibility band ---------- */
.sl-credband {
	padding-block: clamp(var(--sl-s-5), 6vw, var(--sl-s-6));
	background: var(--sl-color-paper-tint);
	border-block: 1px solid var(--sl-color-line);
}

.sl-credband__inner {
	max-width: 880px;
	margin-inline: auto;
	padding-inline: var(--sl-s-3);
}

/* ---------- 5. Process ---------- */
.sl-process {
	padding-block: clamp(var(--sl-s-6), 8vw, var(--sl-s-7));
}

.sl-process__head {
	max-width: 720px;
	margin: 0 auto var(--sl-s-6);
	text-align: center;
}
.sl-process__head h2 {
	font-size: var(--sl-fs-h2);
	margin: 0 0 var(--sl-s-2);
}
.sl-process__head p {
	margin: 0;
	color: var(--sl-color-ink-soft);
	font-size: var(--sl-fs-large);
}

.sl-process__steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: var(--sl-s-4);
}
@media (min-width: 900px) {
	.sl-process__steps { grid-template-columns: repeat(4, 1fr); }
}

.sl-step__num {
	font-family: var(--sl-font-serif);
	font-size: 2.5rem;
	font-weight: 400;
	color: var(--sl-color-accent);
	line-height: 1;
	display: block;
	margin-bottom: var(--sl-s-2);
	font-optical-sizing: auto;
}

.sl-step__title {
	font-family: var(--sl-font-serif);
	font-size: var(--sl-fs-h3);
	font-weight: 500;
	margin: 0 0 var(--sl-s-1);
	color: var(--sl-color-ink);
}

.sl-step__body {
	font-size: var(--sl-fs-small);
	color: var(--sl-color-ink-soft);
	line-height: 1.55;
	margin: 0;
}

/* ---------- 6. Final CTA panel ---------- */
.sl-finalcta {
	padding-top: clamp(var(--sl-s-3), 4vw, var(--sl-s-5));
	padding-bottom: clamp(var(--sl-s-6), 8vw, var(--sl-s-7));
	background: linear-gradient(180deg, var(--sl-color-paper-tint) 0%, var(--sl-color-paper) 100%);
}

.sl-finalcta__panel {
	max-width: 880px;
	margin-inline: auto;
	padding: clamp(var(--sl-s-4), 5vw, var(--sl-s-6));
	text-align: center;
}

.sl-finalcta__title {
	font-family: var(--sl-font-serif);
	font-size: clamp(1.875rem, 3vw + 0.5rem, 2.75rem);
	font-weight: 500;
	line-height: 1.1;
	margin: 0 0 var(--sl-s-3);
	color: var(--sl-color-ink);
}

.sl-finalcta__sub {
	margin: 0 0 var(--sl-s-4);
	color: var(--sl-color-ink-soft);
	font-size: var(--sl-fs-large);
}

.sl-finalcta__ctas {
	display: inline-flex;
	gap: var(--sl-s-3);
	flex-wrap: wrap;
	justify-content: center;
}

/* ---------- Mobile spacing trims ---------- */
@media (max-width: 600px) {
	.sl-hero__title    { font-size: clamp(2.25rem, 9vw, 3rem); }
	.sl-hero__sub      { font-size: 1.0625rem; }
	.sl-process__steps { gap: var(--sl-s-3); }
}
