/* ==========================================================================
   SaaS NG — page-specific layout
   Anything reused across three or more pages belongs in components.css.
   ========================================================================== */

/* --- Hero (home) ---------------------------------------------------------- */

.hero {
	padding-block: clamp(2.5rem, 1.5rem + 4vw, 5rem) var(--section-y);
	background:
		radial-gradient(
			60rem 30rem at 85% 0%,
			rgb(245 217 168 / 40%),
			transparent 70%
		),
		var(--cream);
}

.hero__inner {
	display: grid;
	gap: clamp(2rem, 1rem + 4vw, 4rem);
	align-items: center;
	grid-template-columns: 1fr;
}

@media (min-width: 60rem) {
	.hero__inner {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	}
}

.hero h1 {
	margin-bottom: var(--space-4);
}

.hero .lead {
	margin-top: 0;
	max-width: 38rem;
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4);
	margin-top: var(--space-7);
}

.hero__meta {
	margin-top: var(--space-5);
	font-size: var(--text-sm);
	color: var(--text-muted);
}

.hero__art {
	/* On narrow screens the illustration is scene-setting, not information;
	   it stays but yields the top of the page to the headline. */
	order: -1;
	max-width: 34rem;
	margin-inline: auto;
	width: 100%;
}

@media (min-width: 60rem) {
	.hero__art {
		order: 0;
		max-width: none;
	}
}

.illo--hero {
	width: 100%;
	height: auto;
}

/* --- Page heads (every page except home) ---------------------------------- */

.page-head {
	padding-block: clamp(2.5rem, 1.8rem + 3vw, 4.5rem) clamp(2rem, 1.4rem + 2.5vw, 3.5rem);
	background:
		radial-gradient(
			50rem 22rem at 78% -10%,
			rgb(245 217 168 / 38%),
			transparent 70%
		),
		var(--cream);
	border-bottom: 1px solid var(--line);
}

.page-head h1 {
	max-width: 20ch;
}

.page-head .lead {
	max-width: 46rem;
}

.page-head--compact {
	padding-bottom: clamp(1.5rem, 1rem + 2vw, 2.5rem);
}

.page-head__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4);
	margin-top: var(--space-6);
}

.section-foot {
	margin-top: var(--space-7);
}

/* --- Problem trio (home) -------------------------------------------------- */

.problem__icon {
	display: block;
	width: 2.5rem;
	height: 2.5rem;
	color: var(--accent-ink);
	margin-bottom: var(--space-4);
}

.problem h3 {
	font-size: var(--text-lg);
	font-weight: var(--weight-semibold);
	margin-bottom: var(--space-2);
}

.problem p {
	color: var(--text-muted);
	margin: 0;
}

/* --- Feature card with a highlighted last slot (home) --------------------- */

.card--feature {
	background-color: var(--surface);
	border-color: var(--amber);
	border-style: dashed;
	box-shadow: none;
}

/* --- Two-column check list ------------------------------------------------ */

@media (min-width: 44rem) {
	.check-list--two {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: var(--space-6);
	}
}

/* --- Service rows (services page) ----------------------------------------- */

.service__inner {
	display: grid;
	gap: clamp(1.5rem, 1rem + 3vw, 3.5rem);
	align-items: center;
	grid-template-columns: 1fr;
}

@media (min-width: 60rem) {
	.service__inner {
		grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	}

	.service__inner--flip .service__copy {
		order: 2;
	}
}

.service__copy h2 {
	margin-bottom: var(--space-4);
}

.service__copy p {
	color: var(--text-muted);
	margin-bottom: var(--space-5);
}

.service__foot {
	margin-top: var(--space-5);
}

.service__art {
	max-width: 24rem;
	width: 100%;
	margin-inline: auto;
}

.service__art img {
	width: 100%;
	height: auto;
}

/* --- Feature grid (mobile apps) ------------------------------------------- */

.feature__icon {
	display: block;
	width: 2.5rem;
	height: 2.5rem;
	color: var(--accent-ink);
	margin-bottom: var(--space-4);
}

.feature h3 {
	font-size: var(--text-lg);
	font-weight: var(--weight-semibold);
	margin-bottom: var(--space-2);
}

.feature p {
	color: var(--text-muted);
	margin: 0;
}

@media (min-width: 68rem) {
	.steps--five {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

/* --- FAQ ------------------------------------------------------------------ */

.faq h3 {
	font-size: var(--text-lg);
	font-weight: var(--weight-semibold);
	margin-top: var(--space-7);
	padding-top: var(--space-5);
	border-top: 1px solid var(--line-strong);
}

.faq h3:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.faq p {
	margin-top: var(--space-3);
	color: var(--text-muted);
}

/* --- About ---------------------------------------------------------------- */

.about__split {
	display: grid;
	gap: clamp(2rem, 1rem + 4vw, 4rem);
	align-items: center;
	grid-template-columns: 1fr;
}

@media (min-width: 60rem) {
	.about__split {
		grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
	}
}

.about__copy h2 {
	margin-bottom: var(--space-4);
}

.about__copy p {
	color: var(--text-muted);
	margin-bottom: var(--space-4);
}

.about__art {
	max-width: 22rem;
	width: 100%;
	margin-inline: auto;
	text-align: center;
}

.about__art img {
	width: 100%;
	height: auto;
}

.about__art-caption {
	margin-top: var(--space-4);
	font-size: var(--text-sm);
	color: var(--text-muted);
	max-width: none;
}

.belief-list {
	list-style: none;
	padding: 0;
	display: grid;
	gap: var(--space-6);
}

.belief-list li {
	margin-top: 0;
	padding-left: var(--space-5);
	border-left: 3px solid var(--amber);
}

.belief-list h3 {
	font-size: var(--text-lg);
	font-weight: var(--weight-semibold);
	margin-bottom: var(--space-2);
}

.belief-list p {
	color: var(--text-muted);
	margin: 0;
}

.facts {
	display: grid;
	gap: var(--space-5);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	margin: 0;
}

.facts__item {
	padding-top: var(--space-4);
	border-top: 2px solid rgb(245 217 168 / 30%);
}

.facts dt {
	font-size: var(--text-sm);
	font-weight: var(--weight-semibold);
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	color: var(--sand);
	margin-bottom: var(--space-2);
}

.facts dd {
	margin: 0;
	color: var(--panel-ink);
	font-size: var(--text-lg);
	font-weight: var(--weight-medium);
	line-height: var(--leading-snug);
}

/* --- Contact -------------------------------------------------------------- */

.contact__grid {
	display: grid;
	gap: var(--space-5);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
}

.contact__card {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	padding: var(--space-6);
	background-color: var(--surface);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius-lg);
	text-decoration: none;
	color: var(--ink);
	transition:
		border-color var(--duration-base) var(--ease-out),
		transform var(--duration-base) var(--ease-out),
		box-shadow var(--duration-base) var(--ease-out);
}

a.contact__card:hover {
	border-color: var(--amber);
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
	color: var(--ink);
}

.contact__card--static {
	background-color: transparent;
	border-style: dashed;
}

.contact__icon {
	display: block;
	width: 2.25rem;
	height: 2.25rem;
	color: var(--accent-ink);
	margin-bottom: var(--space-3);
}

.contact__label {
	font-size: var(--text-sm);
	font-weight: var(--weight-semibold);
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	color: var(--text-muted);
}

.contact__value {
	font-size: var(--text-xl);
	font-weight: var(--weight-bold);
	letter-spacing: var(--tracking-tight);
	/* Long email and phone strings must never widen the layout. */
	overflow-wrap: anywhere;
}

a.contact__card:hover .contact__value {
	color: var(--accent-ink);
}

.contact__note {
	margin-top: var(--space-2);
	font-size: var(--text-sm);
	color: var(--text-muted);
}

.brief-list {
	list-style: none;
	padding: 0;
	counter-reset: brief;
	display: grid;
	gap: var(--space-6);
}

.brief-list li {
	margin-top: 0;
	position: relative;
	padding-left: 3.25rem;
}

.brief-list li::before {
	counter-increment: brief;
	content: counter(brief);
	position: absolute;
	left: 0;
	top: 0;
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	border: 2px solid var(--amber);
	border-radius: var(--radius-pill);
	font-weight: var(--weight-bold);
	color: var(--accent-ink);
}

.brief-list h3 {
	font-size: var(--text-lg);
	font-weight: var(--weight-semibold);
	margin-bottom: var(--space-2);
}

.brief-list p {
	color: var(--text-muted);
	margin: 0;
}

.contact__cta {
	margin-top: var(--space-8);
}

/* --- Engagement models (services) ----------------------------------------- */

.engagement__card {
	padding: var(--space-6);
	background-color: rgb(253 251 247 / 7%);
	border: 1px solid rgb(245 217 168 / 25%);
	border-radius: var(--radius-lg);
}

.engagement__card h3 {
	font-size: var(--text-xl);
	margin-bottom: var(--space-3);
}

.engagement__card > p {
	color: var(--sand);
	margin-bottom: var(--space-5);
}

.engagement__note {
	margin-top: var(--space-6);
	padding: var(--space-6);
	border: 2px dashed rgb(245 217 168 / 35%);
	border-radius: var(--radius-lg);
}

.engagement__note h3 {
	font-size: var(--text-lg);
	margin-bottom: var(--space-3);
}

.engagement__note p {
	color: var(--sand);
	margin: 0;
}

/* --- 404 ------------------------------------------------------------------ */

.notfound {
	text-align: center;
}

.notfound__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.notfound p {
	max-width: 40ch;
}

.notfound__art {
	width: min(18rem, 70%);
	height: auto;
	margin-bottom: var(--space-5);
}

.notfound__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-4);
	margin-top: var(--space-7);
}

.notfound__links {
	margin-top: var(--space-9);
	padding-top: var(--space-6);
	border-top: 1px solid var(--line);
	width: 100%;
}

.notfound__links h2 {
	font-size: var(--text-sm);
	font-weight: var(--weight-semibold);
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	color: var(--text-muted);
	margin-bottom: var(--space-4);
}

.notfound__links ul {
	list-style: none;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-2) var(--space-6);
}

.notfound__links li {
	margin-top: 0;
}
