:root {
	--ink: #101214;
	--ink-soft: #16191c;
	--surface: #1d2023;
	--surface-light: #25282b;
	--ivory: #f5f2eb;
	--muted: #aaa9a4;
	--gold: #c7a15a;
	--gold-light: #e1c37e;
	--line: rgba(255, 255, 255, 0.12);
	--shell: min(1240px, calc(100vw - 64px));
	--ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	overflow-x: hidden;
	background: var(--ink);
	color: var(--ivory);
	font-family: Vazirmatn, IRANSansX, Tahoma, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.9;
	-webkit-font-smoothing: antialiased;
}

body.menu-open {
	overflow: hidden;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
	text-decoration: none;
}

button,
input,
textarea {
	font: inherit;
}

button,
a {
	-webkit-tap-highlight-color: transparent;
}

.shell {
	width: var(--shell);
	margin-inline: auto;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: fixed;
	z-index: 9999;
	inset-block-start: 12px;
	inset-inline-start: 12px;
	padding: 8px 16px;
	transform: translateY(-150%);
	background: var(--ivory);
	color: var(--ink);
}

.skip-link:focus {
	transform: translateY(0);
}

.site-header {
	position: absolute;
	z-index: 100;
	inset: 0 0 auto;
	height: 94px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	transition: background 0.35s ease, height 0.35s ease, transform 0.35s ease;
}

.site-header.is-fixed {
	position: fixed;
	height: 76px;
	background: rgba(16, 18, 20, 0.92);
	backdrop-filter: blur(18px);
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.18);
}

.admin-bar .site-header.is-fixed {
	top: 32px;
}

.header-inner {
	display: grid;
	grid-template-columns: 210px 1fr 135px;
	align-items: center;
	height: 100%;
	gap: 36px;
}

.brand-shell,
.brand {
	display: inline-flex;
	align-items: center;
	justify-self: start;
	gap: 12px;
	width: max-content;
}

.custom-logo-link {
	display: flex;
}

.custom-logo {
	max-width: 160px;
	max-height: 58px;
	width: auto;
}

.brand-mark {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(199, 161, 90, 0.8);
	color: var(--gold-light);
	font: 400 28px/1 Georgia, serif;
}

.brand-copy {
	display: grid;
	line-height: 1;
	direction: ltr;
	text-align: left;
}

.brand-copy strong {
	font: 500 25px/1 Arial, sans-serif;
	letter-spacing: 0.21em;
}

.brand-copy small {
	margin-top: 7px;
	color: var(--muted);
	font: 8px/1 Arial, sans-serif;
	letter-spacing: 0.24em;
}

.primary-nav {
	justify-self: center;
}

.primary-nav .menu,
.footer-menu {
	display: flex;
	align-items: center;
	gap: 38px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.primary-nav a {
	position: relative;
	display: block;
	padding: 11px 0;
	color: rgba(245, 242, 235, 0.82);
	font-size: 14px;
}

.primary-nav a::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	width: 0;
	height: 1px;
	margin: auto;
	background: var(--gold);
	transition: width 0.3s var(--ease);
}

.primary-nav a:hover::after,
.primary-nav .current-menu-item a::after {
	width: 100%;
}

.header-contact {
	justify-self: end;
	padding: 8px 22px;
	border: 1px solid rgba(199, 161, 90, 0.65);
	color: var(--ivory);
	font-size: 13px;
	transition: color 0.25s ease, background 0.25s ease;
}

.header-contact:hover {
	background: var(--gold);
	color: var(--ink);
}

.menu-toggle {
	display: none;
}

.eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--gold-light);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.eyebrow::before {
	content: "";
	width: 27px;
	height: 1px;
	background: currentColor;
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 22px;
	min-height: 52px;
	padding: 10px 25px;
	border: 1px solid transparent;
	font-size: 14px;
	transition: transform 0.3s var(--ease), background 0.3s ease, color 0.3s ease;
}

.button:hover {
	transform: translateY(-3px);
}

.button-gold {
	background: var(--gold);
	color: #121313;
}

.button-gold:hover {
	background: var(--gold-light);
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 8px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.28);
	color: var(--ivory);
	font-size: 14px;
}

.text-link-large {
	color: var(--gold-light);
	border-color: rgba(199, 161, 90, 0.45);
}

.hero {
	position: relative;
	height: min(800px, 100vh);
	min-height: 700px;
	background: var(--ink);
}

.hero-slides,
.hero-slide {
	position: absolute;
	inset: 0;
}

.hero-slide {
	visibility: hidden;
	overflow: hidden;
	opacity: 0;
	background-image: var(--slide-image);
	background-position: center;
	background-size: cover;
	transition: opacity 0.8s ease, visibility 0.8s;
}

.hero-slide::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(5, 8, 11, 0.16) 0%, rgba(9, 11, 13, 0.35) 42%, rgba(9, 11, 13, 0.92) 100%),
		linear-gradient(0deg, rgba(11, 13, 15, 0.75) 0%, transparent 45%);
}

.hero-slide::before {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0 43% 0 auto;
	width: 1px;
	background: linear-gradient(transparent 12%, var(--gold) 52%, transparent 90%);
	transform: skew(-19deg);
	box-shadow: 28px 0 70px rgba(199, 161, 90, 0.15);
}

.hero-slide.is-active {
	visibility: visible;
	opacity: 1;
}

.hero-slide.is-active {
	animation: heroZoom 8s linear both;
}

@keyframes heroZoom {
	from { background-size: 100% auto; }
	to { background-size: 105% auto; }
}

.hero-shade {
	position: absolute;
	z-index: 1;
	inset: 0;
	background: radial-gradient(circle at 30% 30%, transparent 0, rgba(0, 0, 0, 0.16) 55%, rgba(0, 0, 0, 0.48) 100%);
}

.hero-content {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	height: 100%;
	padding-top: 80px;
}

.hero-panel {
	width: min(560px, 50%);
	padding: 44px 0 50px 42px;
}

.hero-panel h1,
.hero-panel h2 {
	max-width: 680px;
	margin: 17px 0 18px;
	font-size: clamp(42px, 5vw, 76px);
	font-weight: 600;
	line-height: 1.28;
	letter-spacing: -0.045em;
}

.hero-panel p {
	max-width: 550px;
	margin: 0;
	color: rgba(245, 242, 235, 0.77);
	font-size: clamp(16px, 1.5vw, 19px);
	line-height: 2.1;
}

.hero-actions {
	display: flex;
	align-items: center;
	gap: 30px;
	margin-top: 37px;
}

.hero-controls {
	position: absolute;
	z-index: 5;
	inset: auto 0 0;
	display: grid;
	grid-template-columns: 76px 165px 95px 1fr;
	align-items: center;
	gap: 22px;
	height: 105px;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.hero-count {
	display: flex;
	align-items: baseline;
	gap: 8px;
	direction: ltr;
}

.hero-count strong {
	color: var(--gold-light);
	font: 400 20px/1 Arial, sans-serif;
}

.hero-count span {
	color: rgba(255, 255, 255, 0.45);
	font: 12px/1 Arial, sans-serif;
}

.hero-progress,
.carousel-progress {
	height: 1px;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.22);
}

.hero-progress span,
.carousel-progress span {
	display: block;
	width: 0;
	height: 100%;
	background: var(--gold);
}

.hero-progress span {
	animation: sliderProgress 6s linear forwards;
}

.hero.is-paused .hero-progress span {
	animation-play-state: paused;
}

@keyframes sliderProgress {
	to { width: 100%; }
}

.hero-arrows,
.carousel-controls > div:last-child {
	display: flex;
	gap: 6px;
}

.hero-arrows button,
.carousel-controls button {
	display: grid;
	place-items: center;
	width: 39px;
	height: 39px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--ivory);
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.hero-arrows button:hover,
.carousel-controls button:hover {
	background: var(--gold);
	color: var(--ink);
}

.hero-tabs {
	display: flex;
	justify-content: flex-end;
	gap: 42px;
}

.hero-tabs button {
	position: relative;
	padding: 15px 0;
	border: 0;
	background: transparent;
	color: rgba(255, 255, 255, 0.58);
	font-size: 13px;
	cursor: pointer;
}

.hero-tabs button::after {
	content: "";
	position: absolute;
	inset: auto 0 -1px;
	width: 0;
	height: 2px;
	background: var(--gold);
	transition: width 0.35s var(--ease);
}

.hero-tabs button.is-active {
	color: var(--gold-light);
}

.hero-tabs button.is-active::after {
	width: 100%;
}

.section {
	padding: 115px 0;
}

.companies {
	background:
		linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px),
		var(--ink-soft);
	background-size: 80px 80px;
}

.section-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 50px;
	margin-bottom: 54px;
}

.section-heading h2,
.about-copy h2,
.contact-cta h2,
.page-hero h1 {
	margin: 10px 0 0;
	font-size: clamp(34px, 4vw, 58px);
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: -0.04em;
}

.section-heading > p {
	width: min(470px, 44%);
	margin: 0;
	color: var(--muted);
	font-size: 14px;
}

.company-carousel {
	overflow: hidden;
}

.company-track {
	display: flex;
	gap: 22px;
	transition: transform 0.75s var(--ease);
	will-change: transform;
}

.company-card {
	display: flex;
	flex: 0 0 calc((100% - 44px) / 3);
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	background: #191c1f;
	border: 1px solid rgba(255, 255, 255, 0.12);
	transition: border-color 0.35s ease, transform 0.35s var(--ease), box-shadow 0.35s ease;
}

.company-card:hover {
	z-index: 2;
	border-color: rgba(199, 161, 90, 0.62);
	transform: translateY(-7px);
	box-shadow: 0 24px 70px rgba(0, 0, 0, 0.24);
}

.company-image {
	position: relative;
	overflow: hidden;
	aspect-ratio: 1.56;
	background: #202326;
}

.company-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(12, 14, 15, 0.6), transparent 55%);
}

.company-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.45) contrast(1.05);
	transition: transform 0.7s var(--ease), filter 0.5s ease;
}

.company-card:hover .company-image img {
	transform: scale(1.04);
	filter: saturate(0.8) contrast(1.05);
}

.company-number {
	position: absolute;
	z-index: 2;
	inset: auto auto 15px 17px;
	color: rgba(255, 255, 255, 0.55);
	font: 12px/1 Arial, sans-serif;
	letter-spacing: 0.12em;
}

.company-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 26px 27px 24px;
}

.company-identity {
	display: flex;
	align-items: center;
	gap: 15px;
}

.company-monogram {
	display: grid;
	flex: 0 0 42px;
	place-items: center;
	height: 42px;
	border: 1px solid rgba(199, 161, 90, 0.55);
	color: var(--gold-light);
	font-size: 19px;
}

.company-identity h3 {
	margin: 0 0 4px;
	font-size: 20px;
	font-weight: 500;
}

.company-identity div > span {
	display: block;
	color: rgba(255, 255, 255, 0.43);
	font: 10px/1.3 Arial, sans-serif;
	letter-spacing: 0.08em;
}

.company-activity {
	margin: 23px 0 7px;
	color: var(--gold-light);
	font-size: 12px;
}

.company-summary {
	min-height: 62px;
	margin: 0;
	color: rgba(245, 242, 235, 0.7);
	font-size: 13px;
	line-height: 1.85;
}

.company-highlights {
	min-height: 96px;
	padding: 17px 0 0;
	margin: 18px 0 20px;
	border-top: 1px solid var(--line);
	list-style: none;
}

.company-highlights li {
	position: relative;
	padding-right: 15px;
	color: rgba(245, 242, 235, 0.57);
	font-size: 12px;
	line-height: 1.9;
}

.company-highlights li::before {
	content: "";
	position: absolute;
	inset: 0 0 auto auto;
	top: 11px;
	width: 4px;
	height: 4px;
	background: var(--gold);
	transform: rotate(45deg);
}

.company-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 16px;
	margin-top: auto;
	border-top: 1px solid var(--line);
	color: var(--ivory);
	font-size: 12px;
	transition: color 0.2s ease;
}

.company-link span {
	color: var(--gold);
	font-size: 18px;
}

.company-link:hover {
	color: var(--gold-light);
}

.carousel-controls {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 30px;
	margin-top: 35px;
}

.carousel-progress span {
	width: 33.333%;
	transition: transform 0.6s var(--ease), width 0.3s ease;
	transform-origin: right;
}

.about-preview {
	position: relative;
	overflow: hidden;
	background: #202326;
}

.about-preview::before {
	content: "RAAF";
	position: absolute;
	inset: auto auto -0.22em -0.04em;
	color: rgba(255, 255, 255, 0.022);
	font: 700 28vw/0.8 Arial, sans-serif;
	letter-spacing: -0.08em;
}

.about-grid {
	position: relative;
	display: grid;
	grid-template-columns: 0.95fr 1.05fr;
	align-items: center;
	gap: clamp(55px, 8vw, 120px);
}

.about-art {
	position: relative;
	padding: 24px 0 0 24px;
}

.about-art::before {
	content: "";
	position: absolute;
	inset: 0 24px 24px 0;
	border: 1px solid rgba(199, 161, 90, 0.48);
}

.about-art img {
	position: relative;
	width: 100%;
	aspect-ratio: 1.08;
	object-fit: cover;
	filter: saturate(0.55);
}

.about-art > span {
	position: absolute;
	inset: auto 32px 28px auto;
	color: var(--gold-light);
	font: 500 12px/1 Arial, sans-serif;
	letter-spacing: 0.3em;
}

.about-copy h2 {
	max-width: 570px;
	margin-bottom: 25px;
}

.about-copy > p {
	margin: 0 0 13px;
	color: rgba(245, 242, 235, 0.68);
	font-size: 14px;
}

.about-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin: 35px 0;
	border-block: 1px solid var(--line);
}

.about-stats div {
	display: grid;
	gap: 5px;
	padding: 21px 13px;
	border-left: 1px solid var(--line);
}

.about-stats div:last-child {
	border-left: 0;
}

.about-stats strong {
	color: var(--gold-light);
	font: 400 28px/1.2 Tahoma, sans-serif;
}

.about-stats span {
	color: var(--muted);
	font-size: 11px;
}

.contact-cta {
	background: linear-gradient(100deg, #292b2d 0%, #1b1e20 75%);
	border-block: 1px solid var(--line);
}

.contact-cta-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	min-height: 190px;
}

.contact-cta h2 {
	margin-top: 5px;
	font-size: clamp(28px, 3.3vw, 46px);
}

.site-footer {
	padding-top: 70px;
	background: #0c0e0f;
}

.footer-main {
	display: grid;
	grid-template-columns: 1.35fr 0.8fr 1fr;
	gap: 80px;
	padding-bottom: 55px;
}

.footer-brand {
	margin-bottom: 22px;
}

.footer-main p {
	max-width: 350px;
	margin: 0;
	color: rgba(255, 255, 255, 0.43);
	font-size: 12px;
}

.footer-menu {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 13px 30px;
}

.footer-menu a,
.footer-contact {
	color: rgba(255, 255, 255, 0.53);
	font-size: 12px;
}

.footer-menu a:hover,
.footer-contact a:hover {
	color: var(--gold-light);
}

.footer-contact {
	display: grid;
	align-content: start;
	gap: 10px;
}

.footer-contact a[dir="ltr"] {
	direction: ltr;
	text-align: right;
}

.footer-bottom {
	display: flex;
	justify-content: space-between;
	padding-block: 22px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	color: rgba(255, 255, 255, 0.32);
	font-size: 10px;
}

/* Inner pages */
.inner-page .site-header {
	position: absolute;
}

.page-hero {
	position: relative;
	overflow: hidden;
	padding: 210px 0 105px;
	background:
		radial-gradient(circle at 15% 30%, rgba(199, 161, 90, 0.11), transparent 26%),
		linear-gradient(115deg, #222629, #101214 68%);
	border-bottom: 1px solid var(--line);
}

.page-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, transparent 49.9%, rgba(255, 255, 255, 0.035) 50%, transparent 50.1%),
		linear-gradient(0deg, transparent 49.9%, rgba(255, 255, 255, 0.035) 50%, transparent 50.1%);
	background-size: 90px 90px;
	pointer-events: none;
}

.page-hero-grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr 0.5fr;
	align-items: center;
}

.page-hero h1 {
	font-size: clamp(48px, 7vw, 92px);
}

.page-hero p {
	max-width: 680px;
	margin: 23px 0 0;
	color: var(--muted);
	font-size: 16px;
}

.page-hero-mark {
	justify-self: end;
	color: rgba(199, 161, 90, 0.12);
	font: 400 clamp(150px, 22vw, 310px)/0.7 Georgia, serif;
}

.page-content {
	background: var(--ink-soft);
}

.content-grid {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 90px;
}

.content-grid aside {
	display: grid;
	align-content: start;
	gap: 12px;
	padding-top: 10px;
}

.content-grid aside span {
	color: var(--gold-light);
	font-size: 12px;
}

.content-grid aside strong {
	font-size: 20px;
	font-weight: 400;
	line-height: 1.8;
}

.entry-content {
	max-width: 850px;
}

.entry-content h2 {
	margin: 0 0 20px;
	font-size: clamp(27px, 3vw, 40px);
	font-weight: 500;
	line-height: 1.5;
}

.entry-content h2:not(:first-child) {
	margin-top: 62px;
}

.entry-content h3 {
	margin-top: 40px;
	font-size: 24px;
	font-weight: 500;
}

.entry-content p,
.entry-content li {
	color: rgba(245, 242, 235, 0.68);
	font-size: 15px;
	line-height: 2.2;
}

.pillars {
	background: #202326;
}

.pillar-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border: 1px solid var(--line);
}

.pillar-grid article {
	min-height: 295px;
	padding: 32px 27px;
	border-left: 1px solid var(--line);
}

.pillar-grid article:last-child {
	border-left: 0;
}

.pillar-grid article > span {
	color: var(--gold);
	font: 12px/1 Arial, sans-serif;
}

.pillar-grid h3 {
	margin: 55px 0 13px;
	font-size: 20px;
	font-weight: 500;
}

.pillar-grid p {
	margin: 0;
	color: var(--muted);
	font-size: 12px;
}

.contact-details {
	background: var(--ink-soft);
}

.contact-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.contact-card {
	min-height: 270px;
	padding: 35px 38px;
	background: #202326;
	border: 1px solid var(--line);
	transition: border-color 0.3s ease, transform 0.3s var(--ease);
}

.contact-card:hover {
	border-color: rgba(199, 161, 90, 0.55);
	transform: translateY(-4px);
}

.contact-card-wide {
	grid-column: 1 / -1;
	min-height: auto;
}

.contact-label {
	color: var(--gold-light);
	font-size: 12px;
}

.contact-card h2 {
	margin: 35px 0 12px;
	font-size: 32px;
	font-weight: 500;
}

.contact-card address,
.contact-card p {
	max-width: 620px;
	color: var(--muted);
	font-size: 14px;
	font-style: normal;
}

.phone-list {
	display: flex;
	flex-wrap: wrap;
	gap: 20px 65px;
	margin-top: 27px;
	direction: ltr;
}

.phone-list a,
.contact-email {
	color: var(--ivory);
	font: 400 clamp(24px, 3.2vw, 43px)/1.4 Arial, sans-serif;
	transition: color 0.2s ease;
}

.phone-list a:hover,
.contact-email:hover {
	color: var(--gold-light);
}

.contact-email {
	display: block;
	margin-top: 25px;
	font-size: clamp(24px, 3.2vw, 42px);
}

@media (max-width: 1024px) {
	:root {
		--shell: min(100% - 44px, 940px);
	}

	.header-inner {
		grid-template-columns: 185px 1fr 115px;
		gap: 18px;
	}

	.primary-nav .menu {
		gap: 22px;
	}

	.hero {
		min-height: 680px;
	}

	.hero-panel {
		width: 63%;
	}

	.hero-controls {
		grid-template-columns: 70px 120px 90px 1fr;
	}

	.hero-tabs {
		gap: 22px;
	}

	.company-card {
		flex-basis: calc((100% - 22px) / 2);
	}

	.about-grid {
		gap: 55px;
	}

	.footer-main {
		gap: 40px;
	}

	.pillar-grid {
		grid-template-columns: 1fr 1fr;
	}

	.pillar-grid article:nth-child(2) {
		border-left: 0;
	}

	.pillar-grid article:nth-child(-n+2) {
		border-bottom: 1px solid var(--line);
	}
}

@media (max-width: 780px) {
	:root {
		--shell: calc(100% - 34px);
	}

	.admin-bar .site-header.is-fixed {
		top: 46px;
	}

	.site-header,
	.site-header.is-fixed {
		height: 72px;
	}

	.header-inner {
		display: flex;
		justify-content: space-between;
	}

	.brand-mark {
		width: 35px;
		height: 35px;
		font-size: 23px;
	}

	.brand-copy strong {
		font-size: 20px;
	}

	.brand-copy small {
		font-size: 6px;
	}

	.header-contact {
		display: none;
	}

	.menu-toggle {
		position: relative;
		z-index: 102;
		display: grid;
		gap: 7px;
		width: 42px;
		height: 42px;
		padding: 12px 8px;
		border: 0;
		background: transparent;
		cursor: pointer;
	}

	.menu-toggle span:not(.screen-reader-text) {
		display: block;
		width: 26px;
		height: 1px;
		background: var(--ivory);
		transition: transform 0.3s ease;
	}

	.menu-open .menu-toggle span:first-child {
		transform: translateY(4px) rotate(45deg);
	}

	.menu-open .menu-toggle span:nth-child(2) {
		transform: translateY(-4px) rotate(-45deg);
	}

	.primary-nav {
		position: fixed;
		z-index: 101;
		inset: 0;
		display: grid;
		place-items: center;
		visibility: hidden;
		opacity: 0;
		background: rgba(12, 14, 15, 0.98);
		transition: opacity 0.3s ease, visibility 0.3s;
	}

	.menu-open .primary-nav {
		visibility: visible;
		opacity: 1;
	}

	.primary-nav .menu {
		display: grid;
		gap: 19px;
		text-align: center;
	}

	.primary-nav a {
		font-size: 22px;
	}

	.hero {
		height: 780px;
		min-height: 0;
	}

	.hero-slide {
		background-position: 35% center;
	}

	.hero-slide::after {
		background: linear-gradient(0deg, rgba(9, 11, 13, 0.97) 8%, rgba(9, 11, 13, 0.58) 65%, rgba(9, 11, 13, 0.22) 100%);
	}

	.hero-slide::before {
		display: none;
	}

	@keyframes heroZoom {
		from { background-size: auto 100%; }
		to { background-size: auto 104%; }
	}

	.hero-content {
		align-items: flex-end;
		padding: 0 0 170px;
	}

	.hero-panel {
		width: 100%;
		padding: 0;
	}

	.hero-panel h1,
	.hero-panel h2 {
		font-size: clamp(38px, 11vw, 56px);
	}

	.hero-panel p {
		font-size: 14px;
	}

	.hero-actions {
		align-items: flex-start;
		flex-direction: column;
		gap: 12px;
		margin-top: 25px;
	}

	.hero-controls {
		grid-template-columns: 60px 1fr 90px;
		gap: 15px;
		height: 85px;
	}

	.hero-tabs {
		display: none;
	}

	.section {
		padding: 82px 0;
	}

	.section-heading {
		display: grid;
		gap: 20px;
		margin-bottom: 38px;
	}

	.section-heading > p {
		width: 100%;
	}

	.company-card {
		flex-basis: 100%;
	}

	.company-body {
		padding: 23px 22px;
	}

	.about-grid,
	.content-grid {
		grid-template-columns: 1fr;
		gap: 50px;
	}

	.about-art {
		order: 2;
	}

	.about-stats {
		grid-template-columns: 1fr;
	}

	.about-stats div {
		grid-template-columns: auto 1fr;
		align-items: center;
		border-left: 0;
		border-bottom: 1px solid var(--line);
	}

	.about-stats div:last-child {
		border-bottom: 0;
	}

	.contact-cta-inner {
		align-items: flex-start;
		flex-direction: column;
		justify-content: center;
		min-height: 260px;
	}

	.footer-main {
		grid-template-columns: 1fr;
		gap: 38px;
	}

	.footer-bottom {
		gap: 8px;
		flex-direction: column;
	}

	.page-hero {
		padding: 155px 0 75px;
	}

	.page-hero-grid {
		grid-template-columns: 1fr;
	}

	.page-hero-mark {
		position: absolute;
		z-index: -1;
		inset: auto auto 0 0;
	}

	.content-grid aside {
		padding-bottom: 25px;
		border-bottom: 1px solid var(--line);
	}

	.pillar-grid,
	.contact-grid {
		grid-template-columns: 1fr;
	}

	.pillar-grid article,
	.pillar-grid article:nth-child(2) {
		min-height: 245px;
		border: 0;
		border-bottom: 1px solid var(--line);
	}

	.pillar-grid article:last-child {
		border-bottom: 0;
	}

	.contact-card-wide {
		grid-column: auto;
	}

	.phone-list {
		display: grid;
		gap: 13px;
	}
}

@media (max-width: 420px) {
	.hero-panel h1,
	.hero-panel h2 {
		font-size: 37px;
	}

	.button {
		width: 100%;
	}

	.company-summary {
		min-height: 0;
	}

	.contact-card {
		padding: 28px 24px;
	}

	.contact-email {
		font-size: 20px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
