/* ==========================================================================
   City Star — Brand Design System
   Navy + Gold architectural identity · RTL-first
   ========================================================================== */

:root {
	--cs-navy: #0f2744;
	--cs-navy-deep: #081828;
	--cs-navy-mid: #1a3a5c;
	--cs-gold: #c9a227;
	--cs-gold-soft: #d4b84a;
	--cs-gold-deep: #a8841a;
	--cs-ink: #152033;
	--cs-muted: #5c6b80;
	--cs-line: rgba(15, 39, 68, 0.1);
	--cs-surface: #ffffff;
	--cs-surface-2: #eef2f6;
	--cs-white: #ffffff;
	--cs-radius: 2px;
	--cs-container: 1180px;
	--cs-header-h: 104px;
	--cs-font: "Cairo", "Segoe UI", Tahoma, sans-serif;
	--cs-font-en: "Outfit", "Cairo", sans-serif;
	--cs-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--cs-shadow: 0 24px 60px rgba(8, 24, 40, 0.14);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--cs-font);
	font-size: 1.05rem;
	line-height: 1.85;
	color: var(--cs-ink);
	background: var(--cs-surface);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
}

ul,
ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

h1, h2, h3, h4 {
	margin: 0;
	line-height: 1.25;
	font-weight: 700;
	color: var(--cs-navy);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.cs-skip-link {
	position: absolute;
	inset-inline-start: 1rem;
	top: -100px;
	z-index: 9999;
	background: var(--cs-gold);
	color: var(--cs-navy-deep);
	padding: 0.75rem 1rem;
	font-weight: 700;
}

.cs-skip-link:focus {
	top: 1rem;
}

.cs-container {
	width: min(100%, var(--cs-container));
	margin-inline: auto;
	padding-inline: 1.25rem;
	box-sizing: border-box;
}

/* Buttons */
.cs-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 52px;
	padding: 0.85rem 1.75rem;
	border: 1px solid transparent;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	cursor: pointer;
	transition: transform 0.35s var(--cs-ease), background 0.35s var(--cs-ease), border-color 0.35s var(--cs-ease), color 0.35s var(--cs-ease);
}

.cs-btn--gold {
	background: linear-gradient(135deg, var(--cs-gold-soft), var(--cs-gold) 45%, var(--cs-gold-deep));
	color: var(--cs-navy-deep);
	box-shadow: 0 10px 30px rgba(201, 162, 39, 0.28);
}

.cs-btn--gold:hover {
	transform: translateY(-2px);
}

.cs-btn--ghost {
	border-color: rgba(255, 255, 255, 0.45);
	color: var(--cs-white);
	background: rgba(255, 255, 255, 0.04);
	backdrop-filter: blur(6px);
}

.cs-btn--ghost:hover {
	border-color: var(--cs-gold);
	color: var(--cs-gold-soft);
}

.cs-btn--outline {
	border-color: var(--cs-navy);
	color: var(--cs-navy);
	background: transparent;
}

.cs-btn--outline:hover {
	background: var(--cs-navy);
	color: var(--cs-white);
}

.cs-link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin-top: 1.25rem;
	font-weight: 700;
	color: var(--cs-navy);
	border-bottom: 1px solid var(--cs-gold);
	padding-bottom: 0.15rem;
	transition: color 0.3s var(--cs-ease);
}

.cs-link::after {
	content: "←";
	color: var(--cs-gold);
	transition: transform 0.3s var(--cs-ease);
}

.cs-link:hover {
	color: var(--cs-gold-deep);
}

.cs-link:hover::after {
	transform: translateX(-4px);
}

.cs-eyebrow {
	display: inline-block;
	margin: 0 0 0.85rem;
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--cs-gold-deep);
}

.cs-eyebrow--light {
	color: var(--cs-gold-soft);
}

.cs-heading {
	font-size: clamp(1.85rem, 3.4vw, 2.75rem);
	margin-bottom: 1rem;
	max-width: 18ch;
}

.cs-heading--sm {
	font-size: clamp(1.45rem, 2.4vw, 1.9rem);
	max-width: 22ch;
}

.cs-heading--light {
	color: var(--cs-white);
	max-width: 18ch;
}

.cs-text {
	margin: 0 0 1rem;
	color: var(--cs-muted);
	max-width: 54ch;
}

/* Header */
.cs-header {
	inset-inline: 0;
	top: 0;
	z-index: 1000;
	height: var(--cs-header-h);
	transition: background 0.4s var(--cs-ease), box-shadow 0.4s var(--cs-ease), backdrop-filter 0.4s var(--cs-ease);
}

.cs-header--sticky,
.cs-header[data-cs-header] {
	position: fixed;
}

.cs-header.is-solid {
	background: var(--cs-header-solid-bg, rgba(8, 24, 40, 0.92));
	backdrop-filter: blur(14px);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
}

.cs-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 100%;
	gap: 1rem;
	position: relative;
}

.cs-brand {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
	line-height: 0;
	z-index: 2;
	flex: 0 0 auto;
}

.cs-brand__logo {
	width: 96px;
	height: 96px;
	max-width: 96px;
	object-fit: contain;
	display: block;
	filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.45));
}

.cs-brand__text {
	display: flex;
	flex-direction: column;
	line-height: 1.15;
}

.cs-brand__ar {
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--cs-white);
}

.cs-brand__en {
	font-family: var(--cs-font-en);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	color: var(--cs-gold-soft);
}

/* Kill any leaked/custom-logo ghosts on the page */
body > .custom-logo-link,
.cs-main .custom-logo-link,
.cs-hero .custom-logo,
.cs-hero .custom-logo-link {
	display: none !important;
}

.cs-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: max-content;
	max-width: calc(100% - 280px);
	z-index: 1;
}

.cs-header__cta {
	min-height: 46px;
	padding-inline: 1.25rem;
	font-size: 0.95rem;
	z-index: 2;
	flex: 0 0 auto;
	margin-inline-start: auto;
}

.cs-nav__cta--mobile {
	display: none;
}

.cs-nav__list {
	display: flex;
	align-items: center;
	gap: 1.35rem;
}

.cs-nav__list a {
	color: rgba(255, 255, 255, 0.88);
	font-weight: 600;
	font-size: 0.98rem;
	position: relative;
	transition: color 0.25s var(--cs-ease);
}

.cs-nav__list a::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	bottom: -6px;
	height: 2px;
	background: var(--cs-gold);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.3s var(--cs-ease);
}

.cs-nav__list a:hover,
.cs-nav__list .current-menu-item > a {
	color: var(--cs-gold-soft);
}

.cs-nav__list a:hover::after,
.cs-nav__list .current-menu-item > a::after {
	transform: scaleX(1);
}

.cs-nav-toggle {
	display: none;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.25);
	background: transparent;
	padding: 0;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 6px;
	cursor: pointer;
}

.cs-nav-toggle__bar {
	display: block;
	width: 20px;
	height: 2px;
	background: var(--cs-white);
	transition: transform 0.3s var(--cs-ease);
}

/* Hero */
.cs-hero {
	position: relative;
	min-height: 100vh;
	min-height: 100dvh;
	display: grid;
	place-items: center;
	overflow: hidden;
	color: var(--cs-white);
}

.cs-hero__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.cs-hero__media img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center center;
	transform: scale(1.06);
	animation: cs-kenburns 18s var(--cs-ease) infinite alternate;
}

.cs-hero__veil {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(8, 24, 40, 0.62) 0%, rgba(8, 24, 40, 0.38) 45%, rgba(8, 24, 40, 0.82) 100%),
		radial-gradient(ellipse at 50% 60%, rgba(201, 162, 39, 0.12), transparent 50%);
}

.cs-hero__content {
	position: relative;
	z-index: 2;
	text-align: center;
	padding-block: calc(var(--cs-header-h) + 3rem) 5rem;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.cs-hero__en {
	margin: 0 0 0.85rem;
	font-family: var(--cs-font-en);
	font-size: clamp(0.78rem, 1.4vw, 0.95rem);
	font-weight: 600;
	letter-spacing: 0.42em;
	color: var(--cs-gold-soft);
}

.cs-hero__title {
	font-size: clamp(3.2rem, 9vw, 6rem);
	font-weight: 800;
	color: var(--cs-white);
	letter-spacing: -0.02em;
	margin: 0;
	text-shadow: 0 12px 48px rgba(0, 0, 0, 0.4);
}

.cs-hero__rule {
	display: block;
	width: 72px;
	height: 2px;
	margin: 1.35rem 0 1.25rem;
	background: linear-gradient(90deg, transparent, var(--cs-gold), transparent);
}

.cs-hero__lead {
	margin: 0 0 2.25rem;
	max-width: 26ch;
	font-size: clamp(1.08rem, 2vw, 1.35rem);
	color: rgba(255, 255, 255, 0.9);
	line-height: 1.7;
}

.cs-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	justify-content: center;
}

.cs-hero__scroll {
	position: absolute;
	bottom: 1.75rem;
	inset-inline-start: 50%;
	transform: translateX(50%);
	z-index: 2;
}

.cs-hero__scroll span {
	display: block;
	width: 22px;
	height: 36px;
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 999px;
	position: relative;
}

.cs-hero__scroll span::after {
	content: "";
	position: absolute;
	top: 8px;
	inset-inline-start: 50%;
	width: 4px;
	height: 8px;
	margin-inline-start: -2px;
	background: var(--cs-gold);
	border-radius: 999px;
	animation: cs-scroll 1.6s var(--cs-ease) infinite;
}

/* Sections */
.cs-section {
	padding-block: clamp(4.5rem, 8vw, 7.5rem);
	position: relative;
}

.cs-section--tint {
	background:
		linear-gradient(180deg, var(--cs-surface-2), #f7f9fb 40%, var(--cs-surface));
}

.cs-section--dark {
	background:
		radial-gradient(circle at 20% 0%, rgba(201, 162, 39, 0.12), transparent 35%),
		linear-gradient(180deg, var(--cs-navy-deep), #0b1d31 60%, var(--cs-navy-deep));
	color: var(--cs-white);
}

.cs-section__head {
	margin-bottom: clamp(2.5rem, 5vw, 3.75rem);
	max-width: 44rem;
	margin-inline: auto;
	text-align: center;
}

.cs-section__head .cs-heading {
	max-width: none;
	margin-inline: auto;
}

.cs-section__head--light .cs-heading {
	color: var(--cs-white);
}

.cs-section__lead {
	margin: 0 auto;
	color: var(--cs-muted);
	max-width: 48ch;
	font-size: 1.08rem;
}

.cs-section__head--light .cs-section__lead {
	color: rgba(255, 255, 255, 0.72);
}

/* About */
.cs-about__grid {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
}

.cs-about__visual {
	position: relative;
}

.cs-about__visual img {
	width: 100%;
	aspect-ratio: 5 / 4;
	object-fit: cover;
	box-shadow: var(--cs-shadow);
}

.cs-about__accent {
	position: absolute;
	inset-inline-end: -14px;
	bottom: -14px;
	width: 48%;
	height: 48%;
	border: 1px solid var(--cs-gold);
	z-index: -1;
	pointer-events: none;
}

.cs-about__copy .cs-heading {
	max-width: 16ch;
}

/* Services — interaction containers (not decorative cards) */
.cs-services__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.cs-service {
	display: flex;
	flex-direction: column;
	background: var(--cs-white);
	border: 1px solid var(--cs-line);
	overflow: hidden;
	transition: transform 0.45s var(--cs-ease), border-color 0.45s var(--cs-ease), box-shadow 0.45s var(--cs-ease);
}

.cs-service__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.cs-service:hover {
	transform: translateY(-6px);
	border-color: rgba(201, 162, 39, 0.45);
	box-shadow: var(--cs-shadow);
}

.cs-service__more {
	display: inline-flex;
	margin-top: 1rem;
	font-weight: 700;
	font-size: 0.92rem;
	color: var(--cs-gold-deep);
	border-bottom: 1px solid currentColor;
	align-self: flex-start;
	padding-bottom: 2px;
	transition: color 0.25s var(--cs-ease);
}

.cs-service:hover .cs-service__more {
	color: var(--cs-navy);
}

.cs-service__media {
	margin: 0;
	overflow: hidden;
	aspect-ratio: 16 / 11;
}

.cs-service__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--cs-ease);
}

.cs-service:hover .cs-service__media img {
	transform: scale(1.06);
}

.cs-service__body {
	padding: 1.5rem 1.4rem 1.7rem;
	position: relative;
}

.cs-service__num {
	display: block;
	font-family: var(--cs-font-en);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--cs-gold);
	margin-bottom: 0.55rem;
}

.cs-service h3 {
	font-size: 1.35rem;
	margin-bottom: 0.65rem;
}

.cs-service p {
	margin: 0;
	color: var(--cs-muted);
	font-size: 0.98rem;
}

/* Vision / Mission */
.cs-vm__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.25rem;
}

.cs-vm__item {
	padding: clamp(2rem, 4vw, 3rem);
	background: var(--cs-surface-2);
	border-inline-start: 3px solid var(--cs-navy);
}

.cs-vm__item--gold {
	background: linear-gradient(145deg, #163252, #0f2744);
	border-inline-start-color: var(--cs-gold);
	color: var(--cs-white);
}

.cs-vm__item--gold .cs-heading,
.cs-vm__item--gold .cs-text {
	color: var(--cs-white);
}

.cs-vm__item--gold .cs-text {
	opacity: 0.85;
}

.cs-vm__item--gold .cs-eyebrow {
	color: var(--cs-gold-soft);
}

/* Why */
.cs-why {
	background:
		linear-gradient(180deg, #f3f6f9 0%, #ffffff 55%, #ffffff 100%);
}

.cs-why__top {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: clamp(1.75rem, 4vw, 3.5rem);
	align-items: center;
	margin-bottom: clamp(2.5rem, 5vw, 3.5rem);
}

.cs-why__intro .cs-heading {
	max-width: 14ch;
}

.cs-why__intro .cs-text {
	margin-bottom: 1.5rem;
}

.cs-why__visual {
	position: relative;
	margin: 0;
}

.cs-why__visual img {
	width: 100%;
	aspect-ratio: 5 / 4;
	object-fit: cover;
	box-shadow: var(--cs-shadow);
}

.cs-why__badge {
	position: absolute;
	inset-inline-start: 1rem;
	bottom: 1rem;
	display: flex;
	align-items: baseline;
	gap: 0.55rem;
	padding: 0.85rem 1.1rem;
	background: rgba(8, 24, 40, 0.9);
	color: var(--cs-white);
	backdrop-filter: blur(8px);
}

.cs-why__badge span {
	font-family: var(--cs-font-en);
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
	color: var(--cs-gold-soft);
}

.cs-why__badge small {
	font-size: 0.92rem;
	font-weight: 600;
}

.cs-why__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background: var(--cs-line);
	border: 1px solid var(--cs-line);
	list-style: none;
	padding: 0;
	margin: 0;
}

.cs-why__item {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	padding: 1.6rem 1.35rem;
	background: var(--cs-white);
	transition: background 0.35s var(--cs-ease);
}

.cs-why__item:hover {
	background: #f7fafc;
}

.cs-why__num {
	flex: 0 0 auto;
	font-family: var(--cs-font-en);
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--cs-gold-deep);
	line-height: 1.2;
	padding-top: 0.15rem;
}

.cs-why__copy h3 {
	font-size: 1.12rem;
	margin: 0 0 0.4rem;
	color: var(--cs-navy);
}

.cs-why__copy p {
	margin: 0;
	color: var(--cs-muted);
	font-size: 0.95rem;
	line-height: 1.7;
	font-weight: 500;
}

/* Scope */
.cs-scope__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.1rem;
}

.cs-scope__item {
	position: relative;
	overflow: hidden;
	min-height: 320px;
	isolation: isolate;
}

.cs-scope__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
	inset: 0;
	transition: transform 0.8s var(--cs-ease);
}

.cs-scope__item:hover img {
	transform: scale(1.07);
}

.cs-scope__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: flex-start;
	padding: 1.75rem;
	background: linear-gradient(180deg, transparent 20%, rgba(8, 24, 40, 0.88) 100%);
	z-index: 1;
}

.cs-scope__overlay h3 {
	color: var(--cs-white);
	font-size: 1.45rem;
	margin-bottom: 0.45rem;
}

.cs-scope__overlay p {
	margin: 0 0 1.1rem;
	color: rgba(255, 255, 255, 0.78);
	max-width: 36ch;
	font-size: 0.95rem;
}

.cs-scope__link {
	display: block;
	position: relative;
	min-height: 320px;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.cs-scope__more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0.55rem 1.35rem;
	margin-top: 0.15rem;
	font-weight: 700;
	font-size: 0.92rem;
	color: var(--cs-navy-deep);
	background: linear-gradient(135deg, var(--cs-gold-soft), var(--cs-gold) 45%, var(--cs-gold-deep));
	border: 0;
	box-shadow: 0 8px 22px rgba(201, 162, 39, 0.28);
	transition: transform 0.3s var(--cs-ease), box-shadow 0.3s var(--cs-ease);
}

.cs-scope__item:hover .cs-scope__more {
	transform: translateY(-2px);
	box-shadow: 0 10px 26px rgba(201, 162, 39, 0.4);
}

.cs-scope--light {
	background: #ffffff;
}

/* Process */
.cs-process {
	background:
		radial-gradient(circle at 10% 0%, rgba(201, 162, 39, 0.08), transparent 35%),
		linear-gradient(180deg, #ffffff 0%, #f4f7fa 100%);
}

.cs-process__layout {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(2rem, 5vw, 3.75rem);
	align-items: start;
}

.cs-process__aside {
	position: sticky;
	top: calc(var(--cs-header-h) + 1rem);
}

.cs-process__visual {
	margin: 0;
	overflow: hidden;
	position: relative;
}

.cs-process__visual img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	display: block;
	box-shadow: var(--cs-shadow);
}

.cs-process__aside-copy {
	margin-top: 1.25rem;
	padding: 1.25rem 1.35rem;
	border-inline-start: 3px solid var(--cs-gold);
	background: rgba(15, 39, 68, 0.04);
}

.cs-process__aside-label {
	margin: 0 0 0.45rem;
	font-weight: 800;
	color: var(--cs-navy);
}

.cs-process__aside-copy p:last-child {
	margin: 0;
	color: var(--cs-muted);
	line-height: 1.8;
	font-size: 0.98rem;
}

.cs-process__timeline {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
	position: relative;
}

.cs-process__timeline::before {
	content: "";
	position: absolute;
	inset-inline-start: 25px;
	top: 26px;
	bottom: 26px;
	width: 2px;
	background: linear-gradient(180deg, var(--cs-gold), rgba(201, 162, 39, 0.25));
}

.cs-process__step {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1.15rem;
	align-items: start;
	padding: 0 0 1.75rem;
	position: relative;
}

.cs-process__step:last-child {
	padding-bottom: 0;
}

.cs-process__marker {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

.cs-process__num {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	font-family: var(--cs-font-en);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--cs-navy-deep);
	background: linear-gradient(145deg, var(--cs-gold-soft), var(--cs-gold-deep));
	box-shadow: 0 8px 20px rgba(201, 162, 39, 0.28);
	border: 3px solid #fff;
}

.cs-process__body {
	padding: 1.15rem 1.25rem 1.25rem;
	background: var(--cs-white);
	border: 1px solid var(--cs-line);
	border-inline-start: 3px solid var(--cs-gold);
	transition: border-color 0.3s var(--cs-ease), box-shadow 0.3s var(--cs-ease), transform 0.3s var(--cs-ease);
}

.cs-process__step:hover .cs-process__body {
	border-color: rgba(201, 162, 39, 0.35);
	box-shadow: 0 14px 36px rgba(8, 24, 40, 0.08);
	transform: translateY(-2px);
}

.cs-process__label {
	display: block;
	margin: 0 0 0.4rem;
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--cs-navy);
	line-height: 1.45;
}

.cs-process__desc {
	margin: 0;
	color: var(--cs-muted);
	font-size: 0.96rem;
	line-height: 1.75;
	font-weight: 500;
}

/* CTA */
.cs-cta {
	position: relative;
	min-height: 420px;
	display: grid;
	place-items: center;
	overflow: hidden;
	text-align: center;
}

.cs-cta__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.cs-cta__media img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center center;
}

.cs-cta__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(120deg, rgba(8, 24, 40, 0.9), rgba(15, 39, 68, 0.78));
}

.cs-cta__content {
	position: relative;
	z-index: 1;
	padding-block: 5rem;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.cs-cta__text {
	margin: 0 0 1.75rem;
	color: rgba(255, 255, 255, 0.8);
	max-width: 40ch;
}

.cs-elementor-hint {
	padding-block: 1.25rem 2.5rem;
	font-size: 0.92rem;
	color: var(--cs-muted);
	border-top: 1px dashed var(--cs-line);
}

.cs-elementor-hint span {
	display: block;
	font-weight: 700;
	color: var(--cs-navy);
	margin-bottom: 0.25rem;
}

/* Single service */
.cs-service-single__hero {
	position: relative;
	overflow: hidden;
	min-height: 380px;
	display: flex;
	align-items: flex-end;
	padding-top: calc(var(--cs-header-h) + 1rem);
}

.cs-service-single__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.cs-service-single__bg img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center center;
}

.cs-service-single__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(8, 24, 40, 0.45), rgba(8, 24, 40, 0.88));
}

.cs-service-single__intro {
	position: relative;
	z-index: 1;
	padding-bottom: 3rem;
	width: 100%;
}

.cs-service-single__num {
	display: block;
	font-family: var(--cs-font-en);
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--cs-gold-soft);
	margin-bottom: 0.5rem;
}

.cs-service-single__lead {
	margin: 0.85rem 0 0;
	max-width: 42ch;
	color: rgba(255, 255, 255, 0.82);
	font-size: 1.08rem;
}

.cs-service-single__body {
	padding-block: clamp(3rem, 6vw, 4.5rem) 4.5rem;
	background: var(--cs-surface);
}

.cs-service-single__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: clamp(1.75rem, 4vw, 3rem);
	align-items: start;
	margin-bottom: 2.5rem;
}

.cs-service-single__media {
	margin: 0;
	overflow: hidden;
	background: var(--cs-surface-2);
}

.cs-service-single__media img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}

.cs-service-single__content {
	max-width: 58ch;
	width: 100%;
	padding: 0;
	margin: 0;
}

.cs-service-single__content > *:first-child {
	margin-top: 0;
}

.cs-service-single__content p {
	color: var(--cs-muted);
	margin: 0 0 1rem;
	line-height: 1.9;
}

.cs-service-single__content h2,
.cs-service-single__content h3 {
	color: var(--cs-navy);
	margin-top: 1.75rem;
	margin-bottom: 0.75rem;
}

.cs-service-single__content ul {
	list-style: disc;
	padding-inline-start: 1.35rem;
	margin: 0 0 1rem;
	color: var(--cs-muted);
}

.cs-service-single__content li {
	margin-bottom: 0.45rem;
}

.cs-service-single__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	padding-top: 0.5rem;
	justify-content: center;
	align-items: center;
}

@media (max-width: 860px) {
	.cs-service-single__layout {
		grid-template-columns: 1fr;
	}

	.cs-service-single__content {
		max-width: none;
	}
}

/* Single project */
.cs-project-single__hero {
	position: relative;
	overflow: hidden;
	min-height: 380px;
	display: flex;
	align-items: flex-end;
	padding-top: calc(var(--cs-header-h) + 1rem);
}

.cs-project-single__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.cs-project-single__bg img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center center;
}

.cs-project-single__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(8, 24, 40, 0.4), rgba(8, 24, 40, 0.9));
}

.cs-project-single__intro {
	position: relative;
	z-index: 1;
	padding-bottom: 3rem;
	width: 100%;
}

.cs-project-single__lead {
	margin: 0.85rem 0 0;
	max-width: 46ch;
	color: rgba(255, 255, 255, 0.82);
	font-size: 1.08rem;
}

.cs-project-single__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
	color: rgba(255, 255, 255, 0.85);
	font-weight: 600;
}

.cs-project-single__meta span {
	color: var(--cs-gold-soft);
	margin-inline-end: 0.35rem;
}

.cs-project-single__body {
	padding-block: clamp(3rem, 6vw, 4.5rem) 4.5rem;
	background: var(--cs-surface);
}

.cs-project-single__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: clamp(1.75rem, 4vw, 3rem);
	align-items: start;
	margin-bottom: 3rem;
}

.cs-project-single__featured {
	margin: 0;
	overflow: hidden;
	background: var(--cs-surface-2);
}

.cs-project-single__featured img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}

.cs-project-single__content {
	max-width: 58ch;
}

.cs-project-single__content p {
	color: var(--cs-muted);
	margin: 0 0 1rem;
	line-height: 1.9;
}

.cs-project-single__content h2,
.cs-project-single__content h3 {
	color: var(--cs-navy);
	margin-top: 1.75rem;
	margin-bottom: 0.75rem;
}

.cs-project-single__content ul {
	list-style: disc;
	padding-inline-start: 1.35rem;
	margin: 0 0 1rem;
	color: var(--cs-muted);
}

.cs-project-gallery {
	margin-bottom: 2.75rem;
}

.cs-project-gallery__head {
	margin-bottom: 1.5rem;
}

.cs-project-gallery__head .cs-heading {
	max-width: none;
}

.cs-project-gallery__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.85rem;
}

.cs-project-gallery__item {
	display: block;
	overflow: hidden;
	background: var(--cs-surface-2);
}

.cs-project-gallery__item img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
	transition: transform 0.55s var(--cs-ease);
}

.cs-project-gallery__item:hover img {
	transform: scale(1.05);
}

.cs-project-single__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	justify-content: center;
}

.cs-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(8, 24, 40, 0.92);
	display: grid;
	place-items: center;
	padding: 2rem;
}

.cs-lightbox[hidden] {
	display: none !important;
}

.cs-lightbox img {
	max-width: min(1100px, 100%);
	max-height: 85vh;
	object-fit: contain;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
}

.cs-lightbox__close {
	position: absolute;
	top: 1rem;
	inset-inline-end: 1rem;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	background: transparent;
	color: #fff;
	font-size: 1.75rem;
	cursor: pointer;
	line-height: 1;
}

@media (max-width: 860px) {
	.cs-project-single__layout,
	.cs-project-gallery__grid {
		grid-template-columns: 1fr;
	}

	.cs-project-gallery__grid {
		grid-template-columns: 1fr 1fr;
	}
}

/* Contact page */
.cs-contact {
	background: #ffffff;
}

.cs-contact__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(2rem, 5vw, 3.5rem);
	align-items: start;
}

.cs-contact__info .cs-heading {
	max-width: none;
	white-space: nowrap;
}

.cs-contact__list {
	list-style: none;
	margin: 2rem 0 0;
	padding: 0;
	display: grid;
	gap: 1.25rem;
}

.cs-contact__list li {
	padding-bottom: 1.15rem;
	border-bottom: 1px solid var(--cs-line);
}

.cs-contact__label {
	display: block;
	font-size: 0.88rem;
	font-weight: 700;
	color: var(--cs-gold-deep);
	margin-bottom: 0.35rem;
}

.cs-contact__list a,
.cs-contact__list span:not(.cs-contact__label) {
	color: var(--cs-navy);
	font-weight: 700;
	font-size: 1.05rem;
}

.cs-contact__list a:hover {
	color: var(--cs-gold-deep);
}

.cs-contact__note {
	margin-top: 1.5rem;
	padding: 1rem 1.15rem;
	background: var(--cs-surface-2);
	border-inline-start: 3px solid var(--cs-gold);
}

.cs-contact__note p {
	margin: 0;
	color: var(--cs-muted);
	font-size: 0.95rem;
	font-weight: 600;
}

.cs-contact__form-wrap {
	background: var(--cs-surface-2);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border: 1px solid var(--cs-line);
}

.cs-contact__form {
	display: grid;
	gap: 1.1rem;
}

.cs-contact__fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.1rem;
}

.cs-contact__row {
	display: grid;
	gap: 0.45rem;
}

.cs-contact__row label {
	font-weight: 700;
	color: var(--cs-navy);
	font-size: 0.95rem;
}

.cs-contact__row input,
.cs-contact__row textarea {
	width: 100%;
	border: 1px solid rgba(15, 39, 68, 0.14);
	background: #fff;
	padding: 0.9rem 1rem;
	font-family: inherit;
	font-size: 1rem;
	color: var(--cs-ink);
	outline: none;
	transition: border-color 0.25s var(--cs-ease), box-shadow 0.25s var(--cs-ease);
}

.cs-contact__row input:focus,
.cs-contact__row textarea:focus {
	border-color: rgba(201, 162, 39, 0.65);
	box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.15);
}

.cs-req {
	color: #b42318;
}

.cs-contact__error {
	display: none;
	font-size: 0.86rem;
	font-weight: 600;
	color: #b42318;
	line-height: 1.4;
}

.cs-contact__row.is-invalid .cs-contact__error {
	display: block;
}

.cs-contact__row.is-invalid input,
.cs-contact__row.is-invalid textarea {
	border-color: rgba(180, 35, 24, 0.55);
	box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.1);
}

.cs-contact__row textarea {
	resize: vertical;
	min-height: 150px;
}

.cs-contact__submit {
	justify-self: start;
	min-width: 180px;
	border: 0;
	cursor: pointer;
}

.cs-contact__notice {
	padding: 1rem 1.2rem;
	margin-bottom: 1.5rem;
	font-weight: 700;
}

.cs-contact__notice--success {
	background: rgba(22, 163, 74, 0.1);
	color: #166534;
	border: 1px solid rgba(22, 163, 74, 0.25);
}

.cs-contact__notice--error {
	background: rgba(185, 28, 28, 0.08);
	color: #991b1b;
	border: 1px solid rgba(185, 28, 28, 0.2);
}

@media (max-width: 860px) {
	.cs-contact__grid,
	.cs-contact__fields {
		grid-template-columns: 1fr;
	}

	.cs-contact__info .cs-heading {
		white-space: normal;
	}

	.cs-contact__submit {
		width: 100%;
		justify-self: stretch;
	}
}

/* About page */
.cs-about-page__hero {
	position: relative;
	overflow: hidden;
	min-height: 420px;
	display: flex;
	align-items: flex-end;
	padding: 0;
	background: none;
}

.cs-about-page__hero-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.cs-about-page__hero-bg img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center center;
}

.cs-about-page__hero-veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(8, 24, 40, 0.45), rgba(8, 24, 40, 0.88));
}

.cs-about-page__hero-content {
	position: relative;
	z-index: 1;
	padding: calc(var(--cs-header-h) + 3rem) 0 3.5rem;
	width: 100%;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.cs-about-page__hero-lead {
	margin: 0.9rem auto 0;
	max-width: 38ch;
	color: rgba(255, 255, 255, 0.86);
	font-size: 1.12rem;
	line-height: 1.8;
}

.cs-about-page__story-grid,
.cs-about-page__team-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}

.cs-about-page__story-media,
.cs-about-page__team-media {
	position: relative;
	margin: 0;
}

.cs-about-page__story-media img,
.cs-about-page__team-media img {
	width: 100%;
	aspect-ratio: 5 / 4;
	object-fit: cover;
	box-shadow: var(--cs-shadow);
}

.cs-about-page__story-accent {
	position: absolute;
	inset-inline-end: -14px;
	bottom: -14px;
	width: 45%;
	height: 45%;
	border: 1px solid var(--cs-gold);
	z-index: -1;
	pointer-events: none;
}

.cs-about-page__story-copy .cs-heading,
.cs-about-page__team-copy .cs-heading {
	max-width: none;
}

.cs-about-page__pillars-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
}

.cs-about-page__pillar {
	padding: 1.75rem 1.4rem;
	background: var(--cs-white);
	border: 1px solid var(--cs-line);
	border-top: 3px solid var(--cs-gold);
	transition: transform 0.35s var(--cs-ease), box-shadow 0.35s var(--cs-ease);
}

.cs-about-page__pillar:hover {
	transform: translateY(-4px);
	box-shadow: var(--cs-shadow);
}

.cs-about-page__pillar-num {
	display: block;
	font-family: var(--cs-font-en);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--cs-gold-deep);
	margin-bottom: 0.85rem;
}

.cs-about-page__pillar h3 {
	font-size: 1.3rem;
	margin-bottom: 0.65rem;
}

.cs-about-page__pillar p {
	margin: 0;
	color: var(--cs-muted);
	line-height: 1.8;
	font-size: 0.98rem;
}

.cs-about-page__vm-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.25rem;
}

.cs-about-page__vm-item {
	padding: clamp(2rem, 4vw, 2.75rem);
	background: var(--cs-surface-2);
	border-inline-start: 3px solid var(--cs-navy);
}

.cs-about-page__vm-item--dark {
	background: linear-gradient(145deg, #163252, #0f2744);
	border-inline-start-color: var(--cs-gold);
	color: var(--cs-white);
}

.cs-about-page__vm-item--dark .cs-heading,
.cs-about-page__vm-item--dark .cs-text {
	color: var(--cs-white);
}

.cs-about-page__vm-item--dark .cs-text {
	opacity: 0.88;
}

.cs-about-page__vm-item--dark .cs-eyebrow {
	color: var(--cs-gold-soft);
}

.cs-about-page__checks {
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.75rem;
}

.cs-about-page__checks li {
	position: relative;
	padding-inline-start: 1.5rem;
	font-weight: 700;
	color: var(--cs-navy);
	line-height: 1.6;
}

.cs-about-page__checks li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: 0.55rem;
	width: 10px;
	height: 10px;
	background: linear-gradient(135deg, var(--cs-gold-soft), var(--cs-gold-deep));
	clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}

.cs-about-page__cta-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	justify-content: center;
}

@media (max-width: 860px) {
	.cs-about-page__story-grid,
	.cs-about-page__team-grid,
	.cs-about-page__vm-grid,
	.cs-about-page__pillars-grid {
		grid-template-columns: 1fr;
	}
}

/* Inner pages */
.cs-page__hero {
	padding: calc(var(--cs-header-h) + 3.5rem) 0 3rem;
	background:
		radial-gradient(circle at 85% 20%, rgba(201, 162, 39, 0.16), transparent 40%),
		linear-gradient(180deg, var(--cs-navy-deep), var(--cs-navy));
}

.cs-page-hero--media {
	position: relative;
	overflow: hidden;
	min-height: 380px;
	display: flex;
	align-items: flex-end;
	padding: 0;
	background: none;
}

.cs-page-hero__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.cs-page-hero__bg img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center center;
}

.cs-page-hero__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(8, 24, 40, 0.5), rgba(8, 24, 40, 0.88));
}

.cs-page-hero__content {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: calc(var(--cs-header-h) + 3rem) 0 3.25rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.cs-page-hero__lead {
	margin: 0.9rem auto 0;
	max-width: 36ch;
	color: rgba(255, 255, 255, 0.86);
	font-size: 1.08rem;
	line-height: 1.8;
}

.cs-page__hero .cs-page-title,
.cs-page__hero .cs-eyebrow {
	color: var(--cs-white);
}

.cs-page__hero .cs-eyebrow {
	color: var(--cs-gold-soft);
}

.cs-page__content {
	padding-block: 3.5rem 5rem;
	max-width: 820px;
}

.cs-page__content p {
	color: var(--cs-muted);
}

.cs-page__content h2,
.cs-page__content h3 {
	margin-top: 2rem;
	margin-bottom: 0.75rem;
}

.cs-page__content ul {
	list-style: disc;
	padding-inline-start: 1.25rem;
	color: var(--cs-muted);
}

.cs-page__content li {
	margin-bottom: 0.4rem;
}

/* Blog */
.cs-blog {
	padding-block: calc(var(--cs-header-h) + 3rem) 5rem;
}

.cs-blog__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.cs-blog__item {
	border-bottom: 1px solid var(--cs-line);
	padding-bottom: 1.25rem;
}

.cs-blog__thumb img {
	width: 100%;
	aspect-ratio: 16/11;
	object-fit: cover;
	margin-bottom: 1rem;
}

.cs-blog__title {
	font-size: 1.2rem;
	margin-bottom: 0.5rem;
}

.cs-blog__excerpt {
	color: var(--cs-muted);
	font-size: 0.95rem;
}

/* Footer */
.cs-footer {
	position: relative;
	overflow: hidden;
	background: var(--cs-navy-deep);
	color: rgba(255, 255, 255, 0.78);
	padding-block: 4.5rem 1.75rem;
}

.cs-footer__glow {
	position: absolute;
	width: 420px;
	height: 420px;
	inset-inline-end: -120px;
	top: -160px;
	background: radial-gradient(circle, rgba(201, 162, 39, 0.16), transparent 65%);
	pointer-events: none;
}

.cs-footer__grid {
	position: relative;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 2rem;
	margin-bottom: 3rem;
}

.cs-footer__tagline {
	margin: 1rem 0 0;
	max-width: 28ch;
	line-height: 1.8;
}

.cs-footer__title {
	color: var(--cs-white);
	font-size: 1.05rem;
	margin-bottom: 1rem;
}

.cs-footer__links {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

.cs-footer__links a {
	color: rgba(255, 255, 255, 0.72);
	transition: color 0.25s var(--cs-ease);
}

.cs-footer__links a:hover {
	color: var(--cs-gold-soft);
}

.cs-footer__bottom {
	position: relative;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-top: 1.25rem;
	font-size: 0.9rem;
	text-align: center;
}

.cs-footer__bottom p {
	margin: 0;
}

.cs-brand--footer .cs-brand__logo {
	width: 88px;
	height: 88px;
	max-width: 88px;
}

/* Reveal animations — visible by default (Elementor/editor safe).
   Hidden only when html.cs-animate-reveals is set on the live front-end. */
[data-reveal] {
	opacity: 1;
	transform: none;
	transition: opacity 0.8s var(--cs-ease), transform 0.8s var(--cs-ease);
}

html.cs-animate-reveals [data-reveal]:not(.is-inview) {
	opacity: 0;
	transform: translateY(28px);
}

html.cs-animate-reveals [data-reveal].is-inview {
	opacity: 1;
	transform: none;
}

[data-reveal-delay="1"] { transition-delay: 0.1s; }
[data-reveal-delay="2"] { transition-delay: 0.2s; }
[data-reveal-delay="3"] { transition-delay: 0.3s; }
[data-reveal-delay="4"] { transition-delay: 0.45s; }

@keyframes cs-kenburns {
	from { transform: scale(1.05); }
	to { transform: scale(1.12); }
}

@keyframes cs-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-8px); }
}

@keyframes cs-scroll {
	0% { opacity: 0; transform: translateY(0); }
	40% { opacity: 1; }
	100% { opacity: 0; transform: translateY(12px); }
}

/* Elementor compatibility */
.elementor-page .cs-main,
.elementor-editor-active .cs-main,
.cs-main--elementor {
	overflow: visible;
}

.cs-main--elementor .elementor,
.elementor-element.elementor-widget-citystar_hero,
.elementor-element.elementor-widget-citystar_about,
.elementor-element.elementor-widget-citystar_services,
.elementor-element.elementor-widget-citystar_vision,
.elementor-element.elementor-widget-citystar_why,
.elementor-element.elementor-widget-citystar_projects,
.elementor-element.elementor-widget-citystar_process,
.elementor-element.elementor-widget-citystar_cta {
	width: 100%;
}

.elementor-widget-citystar_hero .cs-hero,
.elementor-widget-citystar_cta .cs-cta {
	width: 100%;
}

/* Allow Elementor-added sections between City Star widgets */
.elementor .e-con-full.e-con > .e-con-inner {
	max-width: 100%;
}

.elementor-location-header + .cs-main,
body.elementor-template-full-width .cs-main {
	padding-top: 0;
}

/* Responsive */
@media (max-width: 1024px) {
	.cs-services__grid,
	.cs-why__grid,
	.cs-blog__grid {
		grid-template-columns: 1fr 1fr;
	}

	.cs-why__top {
		grid-template-columns: 1fr;
	}

	.cs-process__layout {
		grid-template-columns: 1fr;
	}

	.cs-process__aside {
		position: static;
	}

	.cs-footer__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 860px) {
	.cs-about__grid,
	.cs-vm__grid,
	.cs-scope__grid {
		grid-template-columns: 1fr;
	}

	.cs-header__cta {
		display: none;
	}

	.cs-nav__cta--mobile {
		display: inline-flex;
		width: 100%;
	}

	.cs-nav-toggle {
		display: inline-flex;
		margin-inline-start: auto;
	}

	.cs-nav {
		position: fixed;
		left: 0;
		right: 0;
		top: var(--cs-header-h);
		transform: translateY(-120%);
		width: 100%;
		max-width: none;
		background: rgba(8, 24, 40, 0.97);
		flex-direction: column;
		align-items: stretch;
		padding: 1.25rem 1.5rem 1.75rem;
		gap: 1rem;
		opacity: 0;
		pointer-events: none;
		transition: transform 0.4s var(--cs-ease), opacity 0.4s var(--cs-ease);
		border-bottom: 1px solid rgba(201, 162, 39, 0.25);
	}

	.cs-nav.is-open {
		transform: none;
		opacity: 1;
		pointer-events: auto;
	}

	.cs-nav__list {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.85rem;
	}

	.cs-header {
		background: rgba(8, 24, 40, 0.9);
		backdrop-filter: blur(10px);
	}

	.cs-brand__logo {
		width: 80px;
		height: 80px;
		max-width: 80px;
	}
}

@media (max-width: 640px) {
	.cs-services__grid,
	.cs-why__grid,
	.cs-blog__grid,
	.cs-footer__grid {
		grid-template-columns: 1fr;
	}

	.cs-process__visual img {
		aspect-ratio: 16 / 10;
	}

	.cs-process__num {
		width: 44px;
		height: 44px;
		font-size: 0.92rem;
	}

	.cs-hero__actions {
		width: 100%;
		flex-direction: column;
	}

	.cs-hero__actions .cs-btn {
		width: 100%;
	}

	.cs-scope__item {
		min-height: 280px;
	}

	/* Mobile: force full-bleed cover on all section backgrounds */
	.cs-hero,
	.cs-cta,
	.cs-page-hero--media,
	.cs-about-page__hero,
	.cs-service-single__hero,
	.cs-project-single__hero {
		isolation: isolate;
	}

	.cs-hero__media img,
	.cs-cta__media img,
	.cs-page-hero__bg img,
	.cs-about-page__hero-bg img,
	.cs-service-single__bg img,
	.cs-project-single__bg img,
	.cs-scope__item img,
	.cs-why__visual img {
		object-fit: cover !important;
		object-position: center center !important;
		width: 100% !important;
		height: 100% !important;
		max-width: none !important;
	}

	/* Ken Burns can leave empty edges on some mobile browsers */
	.cs-hero__media img {
		transform: none !important;
		animation: none !important;
	}

	.cs-cta {
		min-height: 70vh;
		min-height: 70dvh;
	}
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation: none !important;
		transition: none !important;
	}
	html.cs-animate-reveals [data-reveal],
	[data-reveal] {
		opacity: 1;
		transform: none;
	}
}