/*
 * WordPress integration bridge.
 *
 * theme.json emits global link and heading rules outside the component
 * layer. Keep these narrow overrides in their own file so the shared
 * components file only owns reusable UI.
 */
a.cal-button-primary,
a.cal-button-primary:visited {
	color: var(--cal-color-on-accent);
}

a.cal-button-primary:hover,
a.cal-button-primary:focus-visible {
	border-color: var(--cal-navy);
	background: var(--cal-navy);
	color: var(--cal-color-on-navy);
}

a.cal-button-secondary,
a.cal-button-secondary:visited {
	color: var(--cal-color-link-hover);
}

.cal-home-hero h1,
.cal-article-header h1 {
	color: var(--cal-color-on-navy);
}

.cal-site-header a.cal-header-cta,
.cal-site-header a.cal-header-cta:visited {
	border-color: var(--cal-accent);
	background: var(--cal-accent);
	color: var(--cal-color-on-accent);
}

.cal-site-header a.cal-header-cta:hover,
.cal-site-header a.cal-header-cta:focus-visible {
	border-color: var(--cal-navy);
	background: var(--cal-navy);
	color: var(--cal-color-on-navy);
}

.cal-site-nav > ul > li > a {
	color: var(--cal-color-text-subtle);
}

.cal-card__title a,
a.cal-card__action,
a.cal-text-link {
	color: var(--cal-color-link);
}

.cal-card__title a:hover,
a.cal-card__action:hover,
a.cal-text-link:hover {
	color: var(--cal-color-link-hover);
}

/* theme.json emits unlayered heading/link colours after the layered theme CSS. */
.cal-site-footer .cal-footer-nav__title {
	color: var(--cal-footer-text);
}

.cal-site-footer .cal-footer-nav a,
.cal-site-footer .cal-footer-nav a:visited,
.cal-site-footer .cal-site-footer__utility a,
.cal-site-footer .cal-site-footer__utility a:visited {
	color: var(--cal-footer-muted);
}

.cal-site-footer .cal-footer-nav a:hover,
.cal-site-footer .cal-footer-nav a:focus-visible,
.cal-site-footer .cal-site-footer__utility a:hover,
.cal-site-footer .cal-site-footer__utility a:focus-visible {
	color: var(--cal-accent);
}

/* Homepage composition stays local to .cal-home so shared templates keep
 * their existing spacing and hierarchy. */
.cal-home {
	background: var(--cal-paper);
}

.cal-home .cal-home-hero {
	background: var(--cal-navy);
	background-image: var(--cal-hero-background);
}

.cal-home .cal-home-hero__inner {
	grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.92fr);
	gap: 48px;
	min-width: 0;
	padding-top: 64px;
	padding-bottom: 64px;
}

.cal-home .cal-home-hero__eyebrow {
	color: var(--cal-accent);
}

.cal-home .cal-home-hero h1 {
	max-width: 680px;
	margin-top: 14px;
	font-size: 3.75rem;
	line-height: 1.02;
	letter-spacing: 0;
	text-wrap: balance;
}

.cal-home .cal-home-hero .cal-lede {
	max-width: 54ch;
	font-size: 1.02rem;
	line-height: 1.65;
}

.cal-home .cal-actions {
	gap: 12px;
	margin-top: 30px;
}

.cal-home .cal-button + .cal-button {
	margin-left: 0;
}

.cal-home-hero__panel {
	min-width: 0;
	align-self: center;
	border: 1px solid var(--cal-line);
	border-top: 3px solid var(--cal-accent);
	border-radius: var(--cal-radius-md);
	background: var(--cal-surface);
	padding: 24px 26px 20px;
	box-shadow: var(--cal-shadow-panel);
}

.cal-home-hero__panel-label {
	margin: 0;
	color: var(--cal-focus);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}

.cal-home-hero__panel h2 {
	margin: 10px 0 16px;
	color: var(--cal-ink);
	font-size: 1.45rem;
	line-height: 1.18;
	letter-spacing: 0;
}

.cal-home-hero__steps {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cal-home-hero__steps li {
	display: grid;
	grid-template-columns: 30px minmax(0, 1fr);
	column-gap: 10px;
	padding: 12px 0;
	border-top: 1px solid var(--cal-line);
}

.cal-home-hero__steps li:first-child {
	border-top: 0;
}

.cal-home-hero__steps span {
	grid-row: span 2;
	color: var(--cal-focus);
	font-size: 0.72rem;
	font-weight: 800;
}

.cal-home-hero__steps strong {
	color: var(--cal-ink);
	font-size: 0.9rem;
	line-height: 1.25;
}

.cal-home-hero__steps small {
	margin-top: 4px;
	color: var(--cal-muted);
	font-size: 0.78rem;
	line-height: 1.5;
}

.cal-home .cal-home-hero__media {
	grid-column: 2;
	grid-row: 2;
	justify-self: end;
	max-width: 360px;
	margin-top: -22px;
}

.cal-home .cal-home-main {
	padding-top: 0;
}

.cal-home .cal-home-content {
	padding-top: 48px;
	padding-bottom: 12px;
}

.cal-home .cal-home-section {
	margin: 0;
	padding-top: 56px;
	padding-bottom: 64px;
}

.cal-home .cal-home-section--guides {
	max-width: none;
	border-top: 1px solid var(--cal-line);
	background: var(--cal-tint);
	padding: 34px 28px 38px;
}

.cal-home .cal-home-section--guides > * {
	max-width: var(--cal-wide);
	margin-right: auto;
	margin-left: auto;
	padding-right: 0;
	padding-left: 0;
}

.cal-home .cal-section-heading {
	margin-bottom: 24px;
}

.cal-home .cal-section-heading h2 {
	margin-top: 8px;
	font-size: 2rem;
	line-height: 1.15;
	letter-spacing: 0;
}

.cal-home .cal-section-heading p:not(.cal-section-kicker) {
	max-width: 58ch;
	margin: 12px 0 0;
	font-size: 0.92rem;
	line-height: 1.6;
}

.cal-home .cal-home-section--guides .cal-grid {
	max-width: none;
	padding-right: 0;
	padding-left: 0;
}

.cal-home-empty {
	border: 1px solid var(--cal-line);
	border-left: 3px solid var(--cal-accent);
	border-radius: var(--cal-radius-md);
	background: var(--cal-surface);
	padding: 18px 20px;
}

.cal-home-empty h3 {
	margin: 0;
	font-size: 1rem;
	line-height: 1.35;
}

.cal-home-empty p {
	max-width: 62ch;
	margin: 6px 0 0;
	font-size: 0.88rem;
	line-height: 1.6;
}

.cal-home-empty .cal-text-link {
	margin-top: 16px;
}

@media (max-width: 900px) {
	.cal-home .cal-home-hero__inner {
		grid-template-columns: 1fr;
		gap: 32px;
		padding-top: 50px;
		padding-bottom: 52px;
	}

	.cal-home-hero__panel {
		width: 100%;
		max-width: 620px;
	}

	.cal-home .cal-home-hero__media {
		grid-column: auto;
		grid-row: auto;
		justify-self: start;
		margin-top: 0;
	}
}

@media (max-width: 560px) {
	.cal-home .cal-home-hero__inner {
		gap: 24px;
		padding-top: 38px;
		padding-bottom: 42px;
	}

	.cal-home .cal-home-hero h1 {
		font-size: 2.4rem;
		line-height: 1.08;
		overflow-wrap: anywhere;
	}

	.cal-home-hero__panel {
		padding: 20px 18px 16px;
	}

	.cal-home .cal-home-section {
		padding-top: 42px;
		padding-bottom: 48px;
	}

	.cal-home .cal-home-section--guides > * {
		padding-right: 0;
		padding-left: 0;
	}

	.cal-home .cal-home-section--guides {
		padding: 28px var(--cal-gutter-mobile) 30px;
	}

	.cal-home .cal-section-heading h2 {
		font-size: 1.75rem;
	}

	.cal-home .cal-section-heading-row {
		gap: 12px;
	}

	.cal-home .cal-actions {
		margin-top: 24px;
	}

	.cal-home .cal-button {
		min-width: 0;
	}
}
