/* =========================================================================
   Innovexis 2026 — theme.css  (the design's global stylesheet)
   Extracted from the Claude Design canvas. Every inline style lives here now.
   Tokens mirror inc/setup.php (editor palette) and the Customizer.
   ========================================================================= */

:root {
	/* Surfaces — the section gradients step down the page */
	--bg:            #170d26;
	--bg-footer:     #120a1f;
	--grad-hero:     linear-gradient(180deg, #1b1030 0%, #1d1134 55%, #20143a 100%);
	--grad-services: linear-gradient(180deg, #20143a 0%, #241645 100%);
	--grad-about:    linear-gradient(180deg, #241645 0%, #2a1a4f 100%);
	--grad-why:      linear-gradient(180deg, #2a1a4f 0%, #2e1d56 100%);
	--grad-reviews:  linear-gradient(180deg, #2e1d56 0%, #2b1a50 100%);
	--grad-contact:  linear-gradient(180deg, #2b1a50 0%, #20143a 100%);

	/* Brand */
	--accent:        #f5a524;
	--accent-hover:  #ffb63d;
	--accent-link:   #ffc247;
	--btn-ink:       #20132e;

	/* Text */
	--white:         #ffffff;
	--ink:           #e8e2f2;
	--ink-2:         #d6cce6;
	--ink-3:         #cbc0de;
	--muted:         #a294bb;
	--muted-2:       #9184ad;
	--muted-3:       #8b7ca6;
	--muted-4:       #6d5f8a;
	--placeholder:   #6b5b85;

	/* Lines & cards */
	--hairline:      rgba(255,255,255,0.06);
	--hairline-2:    rgba(255,255,255,0.075);
	--hairline-3:    rgba(255,255,255,0.12);
	--card-grad:     linear-gradient(180deg, rgba(255,255,255,0.045), rgba(255,255,255,0.015));
	--card-border:   rgba(255,255,255,0.075);
	--card-hover:    rgba(245,165,36,0.35);
	--chip-bg:       rgba(245,165,36,0.10);
	--chip-border:   rgba(245,165,36,0.24);

	/* Layout — container width caps at 1280, side padding is fluid */
	--maxw:  1280px;
	--pad:   clamp(18px, 4.5vw, 40px);

	/* One clean system sans everywhere. No web font is downloaded.
	   Real monospace is used only for <code> / <pre>. */
	--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
	--font-code: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
}

/* --- reset ---------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--font-sans);
	font-size: 16px;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-link); }
h1, h2, h3, h4 { margin: 0; font-weight: 800; letter-spacing: -0.02em; line-height: 1.16; color: var(--white); }
p { margin: 0; }
::placeholder { color: var(--placeholder); }
input, textarea, select { font-family: inherit; }

.mono { font-family: var(--font-sans); }
.txt-accent { color: var(--accent); }

/* --- a11y --------------------------------------------------------- */
.screen-reader-text {
	position: absolute !important;
	clip-path: inset(50%);
	width: 1px; height: 1px; overflow: hidden; white-space: nowrap;
}
.skip-link:focus {
	position: fixed; top: .5rem; left: .5rem; z-index: 1000;
	background: var(--accent); color: var(--btn-ink);
	padding: .6rem 1rem; border-radius: 6px; clip-path: none; width: auto; height: auto;
}
:where(a, button, input, textarea, select, summary):focus-visible {
	outline: 2px solid var(--accent); outline-offset: 3px;
}

/* --- shell ------------------------------------------------------- */
.wrap { max-width: var(--maxw); margin-inline: auto; padding-inline: var(--pad); }
.section { padding: 58px 0; position: relative; }
.section--services { background: var(--grad-services); }
.section--about    { background: var(--grad-about); }
.section--why      { background: var(--grad-why); }
.section--reviews  { background: var(--grad-reviews); padding: 56px 0 62px; }
.section--contact  { background: var(--grad-contact); padding: 56px 0 62px; }
.section--contact-page { padding-top: clamp(40px, 6vw, 76px); }
.section--contact-page .contact__grid { margin-top: 24px; }

/* --- clients strip (below the hero) -------------------------- */
.section--clients {
	padding: 40px 0;
	background: #150b23;
	border-top: 1px solid rgba(255,255,255,0.05);
	border-bottom: 1px solid rgba(255,255,255,0.05);
}
.section--clients .head-center h2 { font-size: clamp(19px, 2.6vw, 25px); margin-bottom: 0; max-width: 620px; }
.clients__marquee { margin-top: 25px; overflow: hidden; }
.clients__marquee.is-scrolling {
	-webkit-mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	        mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.clients__marquee:not(.is-scrolling) { display: flex; justify-content: center; }
.clients__track {
	list-style: none; margin: 0; padding: 0;
	display: flex; align-items: center; width: max-content;
}
.clients__marquee.is-scrolling .clients__track { animation: clients-scroll 34s linear infinite; }
.clients__marquee.is-scrolling:hover .clients__track { animation-play-state: paused; }
.clients__item {
	flex: 0 0 auto;
	display: flex; align-items: center;
	padding-inline: clamp(18px, 3vw, 40px);
}
.clients__item img {
	display: block;
	height: 48px; width: auto; max-width: 240px;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.7;
	transition: filter .25s ease, opacity .25s ease;
}
.clients__item:hover img { filter: none; opacity: 1; }
.clients__empty { text-align: center; color: var(--muted); font-size: 13px; margin: 16px 0 0; }
@keyframes clients-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.clients__marquee.is-scrolling .clients__track { animation: none; }
	.clients__marquee { overflow-x: auto; }
}

/* --- eyebrow (01 OUR CAPABILITIES ——) --------------------------- */
.eyebrow {
	display: flex; align-items: center; gap: 16px;
	margin-bottom: 2px;
	font-family: var(--font-sans);
	font-size: 13px; letter-spacing: 0.08em; text-transform: none;
	color: var(--accent);
}
.eyebrow::after { content: ""; width: 44px; height: 1px; background: rgba(245,165,36,0.4); }
.eyebrow--center { justify-content: center; }
.eyebrow--center::after { display: none; }

/* --- buttons -------------------------------------------------- */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 12px;
	font-size: 14px; font-weight: 700;
	padding: 15px 20px; border-radius: 6px;
	border: 1px solid transparent; cursor: pointer;
	transition: background .18s, border-color .18s, box-shadow .18s, color .18s;
}
.btn--primary {
	background: var(--accent); color: var(--btn-ink);
	box-shadow: 0 10px 30px rgba(245,165,36,0.22);
}
.btn--primary:hover { background: var(--accent-hover); color: var(--btn-ink); }
.btn--ghost { color: var(--ink-2); border-color: var(--hairline-3); font-weight: 600; }
.btn--ghost:hover { border-color: rgba(255,255,255,0.28); color: var(--ink-2); }
.btn--ghost .btn__square {
	width: 14px; height: 14px; border: 1.5px solid var(--accent); border-radius: 3px; display: inline-block;
}
.btn--block { width: 100%; }
.btn__arrow { font-size: 15px; line-height: 1; }

/* --- masthead / nav ---------------------------------------------- */
.masthead { position: absolute; inset-inline: 0; top: 0; z-index: 20; }
body:not(.home) .masthead { position: relative; background: #1b1030; border-bottom: 1px solid var(--hairline); }

.masthead__inner {
	max-width: var(--maxw); margin-inline: auto;
	padding: 26px var(--pad);
	display: flex; align-items: center; justify-content: space-between; gap: 32px;
}

.brand { display: flex; align-items: center; gap: 11px; }
.brand__logo { max-width: 50px; width: auto; height: auto; max-height: 44px; display: block; flex: none; }
.brand__orb {
	width: 30px; height: 30px; border-radius: 50%; flex: none; position: relative;
	background: radial-gradient(circle at 32% 30%, #f7a6ff, #a855f7 45%, #6d28d9 100%);
	box-shadow: 0 0 14px rgba(168,85,247,0.55);
}
.brand__orb::after {
	content: ""; position: absolute; width: 7px; height: 7px; border-radius: 50%;
	background: #ffd479; right: 3px; bottom: 4px;
}
.brand__text { display: flex; flex-direction: column; gap: 2px; }
.brand__wordmark { font-size: 15px; font-weight: 800; letter-spacing: 0.09em; color: var(--white); }
.brand__tagline { font-family: var(--font-sans); font-size: 8.5px; letter-spacing: 0.12em; color: #8b7aa8; }

.main-nav__list {
	list-style: none; margin: 0; padding: 0;
	display: flex; align-items: center; gap: 30px;
	font-family: var(--font-sans); font-size: 15px; letter-spacing: 0.02em;
}
.main-nav__list a { color: var(--muted); }
.main-nav__list > li:first-child a { color: var(--ink-3); }
.main-nav__list a:hover { color: var(--ink); }

.masthead__cta {
	font-family: var(--font-sans); font-size: 11.5px; letter-spacing: 0.06em;
	color: var(--accent); border: 1px solid rgba(245,165,36,0.55);
	border-radius: 5px; padding: 9px 16px; white-space: nowrap;
}
.masthead__cta:hover { background: rgba(245,165,36,0.12); color: var(--accent); }

.nav-toggle { display: none; background: none; border: 0; color: var(--white); padding: 6px; cursor: pointer; }
.nav-toggle svg { width: 24px; height: 24px; }

.mobile-nav { display: none; }

/* --- hero ------------------------------------------------------ */
.hero {
	position: relative;
	background:
		radial-gradient(900px 420px at 8% 92%, rgba(245,165,36,0.16), transparent 70%),
		radial-gradient(700px 500px at 78% 12%, rgba(140,72,190,0.16), transparent 70%),
		var(--grad-hero);
	border-bottom: 1px solid rgba(255,255,255,0.04);
}
.hero__grid {
	position: absolute; inset: 0; pointer-events: none;
	background-image:
		linear-gradient(rgba(255,255,255,0.028) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,0.028) 1px, transparent 1px);
	background-size: 110px 110px;
}
.hero { overflow: hidden; }
.hero--slider { position: relative; }

/* slider — slides stacked in one grid cell, sliding left */
.hero__slides { position: relative; display: grid; overflow: hidden; }
.hero__slide {
	grid-area: 1 / 1; position: relative; display: flex;
	opacity: 0; pointer-events: none;
	transform: translateX(60px);
	transition: opacity .7s ease, transform .7s cubic-bezier(.4, 0, .2, 1);
}
.hero__slide.is-active {
	opacity: 1; pointer-events: auto;
	transform: none; z-index: 2;
}
.hero__slide.is-prev {
	opacity: 0;
	transform: translateX(-60px); z-index: 1;
}
.hero__slide-media { position: absolute; inset: 0; z-index: 0; }
.hero__slide-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero__slide-media::after {
	content: ""; position: absolute; inset: 0;
	background:
		radial-gradient(900px 420px at 8% 92%, rgba(245,165,36,0.14), transparent 70%),
		linear-gradient(180deg, rgba(20,12,32,0.82) 0%, rgba(20,12,32,0.86) 45%, rgba(26,16,46,0.92) 100%);
}
.hero__slide .hero__grid { z-index: 1; }
.hero__slide-inner {
	position: relative; z-index: 2;
	width: 100%; max-width: var(--maxw); margin-inline: auto;
	padding: 150px var(--pad) 118px;
	min-height: clamp(560px, 82vh, 820px);
	display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
}
.hero__slide-inner > :first-child { margin-top: 0; }

/* stat strip below the slider, shared across slides */
.hero__inner { position: relative; z-index: 2; max-width: var(--maxw); margin-inline: auto; padding: 0 var(--pad); }
.hero--slider .hero__stats { margin-top: 0; padding: 24px 0 34px; }

.hero__dots {
	position: absolute; z-index: 4; left: 0; right: 0; bottom: 30px;
	display: flex; gap: 9px; justify-content: center;
}
.hero__dot {
	width: 26px; height: 4px; border-radius: 2px; border: none; padding: 0; cursor: pointer;
	background: rgba(255,255,255,0.22); transition: background .18s;
}
.hero__dot:hover { background: rgba(245,165,36,0.6); }
.hero__dot.is-active { background: var(--accent); }

.hero__arrow {
	position: absolute; top: 50%; z-index: 4; transform: translateY(-50%);
	width: 44px; height: 44px; border-radius: 50%; cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	font-size: 22px; line-height: 1; color: var(--white);
	background: rgba(23,13,38,0.4); border: 1px solid rgba(255,255,255,0.2);
	backdrop-filter: blur(4px);
	transition: background .18s, border-color .18s, color .18s;
}
.hero__arrow:hover { background: rgba(245,165,36,0.9); border-color: var(--accent); color: #1b1030; }
.hero__arrow--prev { left: clamp(10px, 2.5vw, 26px); }
.hero__arrow--next { right: clamp(10px, 2.5vw, 26px); }

@media (prefers-reduced-motion: reduce) {
	.hero__slide { transition: opacity .2s ease; transform: none !important; }
}

.hero__badge {
	display: inline-flex; align-items: center; gap: 9px;
	border: 1px solid rgba(245,165,36,0.28); background: rgba(245,165,36,0.06);
	border-radius: 999px; padding: 7px 15px;
}
.hero__badge-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 8px var(--accent); }
.hero__badge-text { font-family: var(--font-sans); font-size: 10.5px; letter-spacing: 0.07em; color: #e2b96a; }

.hero__title {
	margin-top: 34px;
	font-size: clamp(38px, 7.4vw, 76px); line-height: 1.06; font-weight: 800; letter-spacing: -0.028em;
	color: var(--white); max-width: 820px;
}
.hero__subtitle { margin-top: 32px; max-width: 640px; font-size: 16px; line-height: 1.75; color: var(--muted); }

.hero__actions { display: flex; align-items: center; gap: 18px; margin-top: 38px; flex-wrap: wrap; }
.hero__actions .btn--primary { gap: 38px; }

.hero__stats {
	display: flex; align-items: stretch; gap: 0;
	margin-top: 48px; padding-top: 26px;
	border-top: 1px solid rgba(255,255,255,0.07);
}
.hero__stat { padding: 0 56px; }
.hero__stat:first-child { padding-left: 0; padding-right: 56px; }
.hero__stat + .hero__stat { border-left: 1px solid rgba(255,255,255,0.07); }
.hero__stat-value { font-family: var(--font-sans); font-size: 22px; font-weight: 500; color: var(--accent); letter-spacing: 0.02em; }
.hero__stat-label { font-size: 12.5px; color: #8b7ca6; margin-top: 8px; }
.hero__stats-spacer { flex: 1; }
.hero__scroll { display: flex; flex-direction: column; align-items: center; gap: 10px; padding-top: 6px; }
.hero__scroll span { font-family: var(--font-sans); font-size: 9px; letter-spacing: 0.1em; color: var(--muted-4); }
.hero__scroll::after { content: ""; width: 1px; height: 34px; background: linear-gradient(var(--muted-4), transparent); }

/* --- section heads (services / about / contact) ------------------ */
.head-2col {
	display: grid; grid-template-columns: 1.35fr 1fr; gap: 80px;
	align-items: end;
}
.head-2col h2 { margin: 0 0 15px; font-size: clamp(28px, 4.4vw, 46px); line-height: 1.16; }
.head-2col p { margin: 0; font-size: 14.5px; line-height: 1.8; color: #9d8fb8; }

.head-center { text-align: center; }
.head-center h2 { margin: 0 auto 15px; font-size: clamp(26px, 4vw, 42px); line-height: 1.2; max-width: 660px; }
.head-center .about__para { margin-top: 0; }

/* --- card grid (services / why) --------------------------------- */
.cards {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); gap: 22px; margin-top: 15px;
	list-style: none; padding: 0;
}
.card {
	background: var(--card-grad); border: 1px solid var(--card-border);
	border-radius: 12px; padding: 26px 26px 30px;
	transition: border-color .2s;
}
.card:hover { border-color: var(--card-hover); }
.card__row { display: flex; align-items: flex-start; justify-content: space-between; }
.card__glyph {
	width: 40px; height: 40px; border-radius: 9px; flex: none;
	background: var(--chip-bg); border: 1px solid var(--chip-border);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-sans); font-size: 15px; color: var(--accent);
}
.card--why .card__glyph { width: 42px; height: 42px; border-color: rgba(245,165,36,0.26); background: rgba(245,165,36,0.12); font-size: 16px; }
.card__glyph i, .card__glyph svg { font-size: 17px; width: 1em; height: 1em; }
.card__num { font-family: var(--font-sans); font-size: 22px; font-weight: 500; color: rgba(255,255,255,0.09); }
.card__title { margin-top: 26px; font-size: 16px; font-weight: 700; line-height: 1.35; color: var(--white); }
.card__text { margin-top: 13px; font-size: 13px; line-height: 1.75; color: var(--muted-2); }
.card--link { display: block; color: inherit; }

/* --- about ---------------------------------------------------- */
.about__grid { display: grid; grid-template-columns: 1fr 1.02fr; gap: 76px; margin-top: 15px; align-items: start; }
.about__body h2 { font-size: clamp(26px, 4vw, 42px); line-height: 1.18; }
.about__para { margin-top: 15px; font-size: 14.5px; line-height: 1.85; color: var(--muted); max-width: 560px; }
.about__para + .about__para { margin-top: 15px; }
.about__checks { display: flex; flex-direction: column; gap: 14px; margin-top: 34px; }
.about__check { display: flex; align-items: center; gap: 12px; }
.about__check-mark { color: var(--accent); font-size: 13px; }
.about__check span:last-child { font-size: 13.5px; color: var(--ink-3); }
.about__link {
	display: inline-flex; align-items: center; gap: 10px; margin-top: 38px;
	font-family: var(--font-sans); font-size: 12px; letter-spacing: 0.06em; color: var(--accent);
}

.about__media { position: relative; }
.about__frame {
	position: relative; border-radius: 14px; overflow: hidden;
	border: 1px solid rgba(255,255,255,0.1); background: #1d1233; aspect-ratio: 1.32 / 1;
}
.about__frame img { width: 100%; height: 100%; object-fit: cover; }
.about__frame-placeholder {
	position: absolute; inset: 0;
	background-color: #241a3d;
	background-image: repeating-linear-gradient(58deg, rgba(255,255,255,0.05) 0 2px, transparent 2px 12px);
	display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 30px;
	font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.07em; color: #8879a6;
}
.about__badge-exp {
	position: absolute; top: 16px; right: 16px; text-align: right;
	background: rgba(58,32,96,0.92); border: 1px solid rgba(245,165,36,0.3);
	border-radius: 8px; padding: 10px 14px;
}
.about__badge-exp b { font-size: 17px; font-weight: 800; color: var(--accent); line-height: 1; display: block; }
.about__badge-exp span { font-family: var(--font-sans); font-size: 9.5px; letter-spacing: 0.07em; color: #b9a9d1; margin-top: 5px; display: block; }
.about__badge-founded {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 20px 22px;
	display: flex; align-items: flex-end; justify-content: space-between;
	background: linear-gradient(transparent, rgba(18,10,32,0.92) 62%);
}
.about__badge-founded .k { font-family: var(--font-sans); font-size: 10px; letter-spacing: 0.08em; color: #a494c2; }
.about__badge-founded .v { font-size: 16px; font-weight: 700; color: var(--white); margin-top: 6px; }
.about__badge-founded .mark {
	width: 26px; height: 26px; border: 1px solid rgba(245,165,36,0.45); border-radius: 6px;
	display: flex; align-items: center; justify-content: center; color: var(--accent); font-size: 12px;
}

/* --- testimonial slider -------------------------------------- */
.reviews__wrap { display: flex; justify-content: center; }
.reviews__card {
	width: 100%; max-width: 1000px;
	background: linear-gradient(150deg, rgba(43,63,110,0.55), rgba(38,26,68,0.5));
	border: 1px solid rgba(255,255,255,0.08); border-radius: 16px;
	padding: 44px 62px 40px;
}
.reviews__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.reviews__mark { font-family: Georgia, "Times New Roman", serif; font-size: 52px; line-height: 0.8; color: rgba(255,255,255,0.16); }
.reviews__nav { display: flex; gap: 10px; }
.reviews__nav button {
	width: 34px; height: 34px; border-radius: 8px; background: transparent;
	border: 1px solid rgba(255,255,255,0.16); color: var(--ink-2); font-size: 14px; cursor: pointer;
	transition: border-color .18s, color .18s;
}
.reviews__nav button:hover { border-color: rgba(245,165,36,0.6); color: var(--accent); }
.reviews__slides { position: relative; display: grid; }
.reviews__slide {
	grid-area: 1 / 1;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity .5s ease, transform .5s cubic-bezier(.22,1,.36,1);
	pointer-events: none;
	visibility: hidden;
}
.reviews__slide.is-active {
	opacity: 1;
	transform: none;
	pointer-events: auto;
	visibility: visible;
	transition-delay: .05s;
}
/* smooth the height change between slides */
.reviews__slides { transition: min-height .4s ease; }
/* fade the author line when it swaps */
.reviews__who { transition: opacity .3s ease; }
.reviews__who.is-swapping { opacity: 0; }

@media (prefers-reduced-motion: reduce) {
	.reviews__slide { transition: none; transform: none; }
	.reviews__who { transition: none; }
}
.reviews__quote {
	margin-top: 24px; font-size: 20px; line-height: 1.75; font-weight: 500;
	color: #e4dcf1; max-width: 760px; min-height: 140px; text-wrap: pretty;
}
.reviews__cite {
	display: flex; align-items: center; justify-content: space-between; gap: 24px;
	margin-top: 32px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,0.08);
}
.reviews__who { display: flex; align-items: center; gap: 14px; }
.reviews__avatar {
	width: 36px; height: 36px; border-radius: 50%; overflow: hidden; flex: none;
	background: rgba(245,165,36,0.16); border: 1px solid rgba(245,165,36,0.35);
	display: flex; align-items: center; justify-content: center;
	font-size: 11px; font-weight: 700; color: var(--accent);
}
.reviews__avatar img { width: 100%; height: 100%; object-fit: cover; }
.reviews__name { font-size: 13.5px; font-weight: 700; color: var(--white); }
.reviews__meta { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.06em; color: var(--muted-2); margin-top: 5px; text-transform: none; }
.reviews__dots { display: flex; align-items: center; gap: 9px; }
.reviews__dot {
	width: 26px; height: 4px; border-radius: 2px; border: none; padding: 0; cursor: pointer;
	background: rgba(255,255,255,0.18); transition: background .18s;
}
.reviews__dot:hover { background: rgba(245,165,36,0.6); }
.reviews__dot.is-active { background: var(--accent); }

/* --- contact ------------------------------------------------ */
.contact__grid { display: grid; grid-template-columns: 1fr 1.08fr; gap: 80px; margin-top: 15px; align-items: start; }
.contact__intro h2 { font-size: clamp(26px, 4vw, 42px); line-height: 1.18; }
.contact__intro p { margin-top: 15px; font-size: 14.5px; line-height: 1.8; color: var(--muted); max-width: 470px; }
.contact__list { display: flex; flex-direction: column; gap: 22px; margin-top: 40px; }
.contact__row { display: flex; align-items: center; gap: 16px; }
.contact__row-glyph {
	width: 34px; height: 34px; border-radius: 8px; flex: none;
	background: var(--chip-bg); border: 1px solid var(--chip-border);
	display: flex; align-items: center; justify-content: center; color: var(--accent); font-size: 13px;
}
.contact__row-glyph i { font-size: 14px; }
.contact__row-label { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.08em; color: var(--muted-3); }
.contact__row-value { font-size: 14px; font-weight: 600; color: #e6dff2; margin-top: 0; }

.contact__form {
	background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.018));
	border: 1px solid rgba(255,255,255,0.085); border-radius: 14px; padding: 32px 32px 34px;
}
.contact__form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.contact__field { margin-top: 22px; }
.contact__field:first-child, .contact__form-row .contact__field { margin-top: 0; }
.contact__field-label { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.07em; color: var(--muted-3); margin-bottom: 10px; text-transform: none; }
.contact__form input,
.contact__form select,
.contact__form textarea {
	width: 100%; background: rgba(15,8,28,0.5); border: 1px solid rgba(255,255,255,0.1);
	border-radius: 7px; padding: 13px 14px; color: var(--ink); font-size: 13.5px; outline: none;
}
.contact__form select { appearance: none; color: var(--muted-3); }
.contact__form textarea { resize: vertical; }
.contact__form input:focus,
.contact__form select:focus,
.contact__form textarea:focus { border-color: rgba(245,165,36,0.5); }
.contact__form .btn { margin-top: 24px; }
.contact__form-note { text-align: center; font-family: var(--font-sans); font-size: 9.5px; letter-spacing: 0.1em; color: #7a6b96; margin-top: 16px; }
.contact__form-flash { border-radius: 8px; padding: 12px 14px; font-size: 13px; margin-bottom: 18px; }
.contact__form-flash--ok  { background: rgba(245,165,36,0.12); border: 1px solid rgba(245,165,36,0.4); color: var(--accent); }
.contact__form-flash--err { background: rgba(179,40,59,0.14); border: 1px solid rgba(179,40,59,0.5); color: #ff9ba6; }
.contact__map {
	margin-top: 44px; border-radius: 16px; overflow: hidden;
	border: 1px solid var(--hairline-3); background: #1d1233;
}
.contact__map iframe { display: block; width: 100%; height: 420px; filter: grayscale(0.3) contrast(1.05); }
.contact-flash { position: fixed; left: 50%; bottom: 1.5rem; transform: translateX(-50%); z-index: 100; padding: .8rem 1.25rem; border-radius: 8px; font-size: .9rem; }
.contact-flash--sent { background: var(--accent); color: var(--btn-ink); }
.contact-flash--error { background: #b3283b; color: #fff; }

/* --- team ------------------------------------------------- */
.section--team { background: var(--grad-about); }
.team__group { margin-top: 15px; }
.team__group + .team__group { margin-top: 60px; }
.team__group-title {
	font-family: var(--font-sans);
	font-size: clamp(20px, 3vw, 26px);
	font-weight: 800; letter-spacing: -0.02em;
	text-transform: none; color: #fff; text-align: left; margin: 0 0 24px;
}
.team__grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; align-items: stretch; }
.team__card {
	background: var(--card-grad); border: 1px solid var(--card-border);
	border-radius: 14px; overflow: hidden; transition: border-color .2s;
	display: flex; flex-direction: column;   /* equal-height cards in a row */
}
.team__card:hover { border-color: var(--card-hover); }
.team__photo { position: relative; height: 250px; background: #1d1233; flex: none; }
.team__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top center; filter: grayscale(45%); transition: filter .4s, transform .4s; }
.team__card:hover .team__photo img { filter: grayscale(0); transform: scale(1.04); }
.team__photo-fallback { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--font-sans); font-size: 40px; color: rgba(255,255,255,0.14); }
.team__meta { padding: 18px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.team__name { font-size: 15px; font-weight: 700; color: #fff; }
.team__role { font-size: 12.5px; color: var(--muted); margin-top: 5px; }
.team__bio { font-size: 12.5px; line-height: 1.7; color: var(--muted-2); margin-top: 12px; }
/* social row: always pinned to the bottom of every card */
.team__social { display: flex; gap: 8px; margin-top: auto; padding-top: 18px; }
.team__social a {
	width: 30px; height: 30px; border: 1px solid var(--hairline-3); border-radius: 7px;
	display: flex; align-items: center; justify-content: center; color: #c2b6d8;
}
.team__social a:hover { border-color: rgba(245,165,36,0.5); color: var(--accent); }
.team__social svg { width: 14px; height: 14px; }

/* --- professional services ------------------------------- */
.section--proservices { background: var(--grad-why); }
.proserv { list-style: none; padding: 0; margin: 15px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: stretch; }
.proserv__card {
	background: var(--card-grad); border: 1px solid var(--card-border);
	border-radius: 14px; overflow: hidden; transition: border-color .2s;
	display: flex;   /* equal-height cards in a row */
}
.proserv__card:hover { border-color: var(--card-hover); }
.proserv__inner { display: flex; flex-direction: column; color: inherit; width: 100%; }
.proserv__media { height: 250px; background: #1d1233; overflow: hidden; flex: none; }
.proserv__media img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .4s; }
.proserv__card:hover .proserv__media img { transform: scale(1.04); }
.proserv__media-fallback {
	display: block; width: 100%; height: 100%;
	background-color: #241a3d;
	background-image: repeating-linear-gradient(58deg, rgba(255,255,255,0.05) 0 2px, transparent 2px 12px);
}
.proserv__body { padding: 22px 22px 26px; display: flex; flex-direction: column; flex: 1; }
.proserv__name { font-size: 16px; font-weight: 700; color: #fff; line-height: 1.35; }
.proserv__desc { font-size: 13px; line-height: 1.75; color: var(--muted-2); margin-top: 10px; }
.proserv__more { display: inline-block; margin-top: auto; padding-top: 14px; font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.06em; color: var(--accent); }

/* --- footer ----------------------------------------------- */
.site-footer { position: relative; background: linear-gradient(180deg, #170d26 0%, #120a1f 100%); border-top: 1px solid var(--hairline); }
.site-footer__cta {
	max-width: var(--maxw); margin-inline: auto; padding: 44px var(--pad);
	display: flex; align-items: center; justify-content: space-between; gap: 40px;
	border-bottom: 1px solid var(--hairline);
}
.site-footer__cta-text { text-align: left; max-width: 640px; display: flex; flex-direction: column; gap: 6px; }
.site-footer__cta-eyebrow { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.08em; color: var(--accent); }
.site-footer__cta-title { margin: 0; font-size: clamp(20px, 3vw, 26px); font-weight: 800; letter-spacing: -0.02em; color: var(--white); }
.site-footer__cta-subtitle { margin: 0; font-size: 14px; line-height: 1.7; color: var(--muted); }
.site-footer__cta .btn { gap: 26px; white-space: nowrap; }

.site-footer__cols {
	max-width: var(--maxw); margin-inline: auto; padding: 44px var(--pad) 40px;
	display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.1fr; gap: 48px;
}
.site-footer__col-title { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.08em; color: var(--accent); text-transform: none; }
.site-footer__links { display: flex; flex-direction: column; gap: 12px; margin-top: 20px; font-size: 13px; list-style: none; padding: 0; }
.site-footer__links a { color: #bdb0d4; }
.site-footer__links a:hover { color: var(--accent-link); }

.site-footer__brand-blurb { margin-top: 18px; font-size: 12.5px; line-height: 1.85; color: var(--muted-3); max-width: 300px; }
.site-footer__social { display: flex; gap: 10px; margin-top: 22px; }
.site-footer__social a {
	width: 32px; height: 32px; border: 1px solid var(--hairline-3); border-radius: 7px;
	display: flex; align-items: center; justify-content: center; color: #c2b6d8;
}
.site-footer__social a:hover { border-color: rgba(245,165,36,0.5); color: var(--accent); }
.site-footer__social svg { width: 14px; height: 14px; }

.site-footer__office {
	margin-top: 20px; border: 1px solid var(--hairline-2); border-radius: 9px;
	padding: 16px 18px; background: rgba(255,255,255,0.02);
}
.site-footer__office-k { font-family: var(--font-sans); font-size: 10px; letter-spacing: 0.08em; color: var(--muted-3); }
.site-footer__office-name { font-size: 12px; font-weight: 700; color: var(--white); margin-top: 10px; }
.site-footer__office-lines { font-size: 11.5px; line-height: 1.8; color: var(--muted-3); margin-top: 6px; }

.site-footer__base {
	max-width: var(--maxw); margin-inline: auto; padding: 20px var(--pad) 30px;
	border-top: 1px solid var(--hairline);
	display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.site-footer__copy { font-size: 11.5px; color: var(--muted-4); }
.site-footer__partner { font-family: var(--font-sans); font-size: 10.5px; letter-spacing: 0.06em; color: var(--muted-4); text-transform: none; }
.site-footer__partner a { color: var(--accent); letter-spacing: 0.06em; }

/* =========================================================================
   Inner pages — archive / single post / page / 404 / search
   ========================================================================= */
.container { max-width: var(--maxw); margin-inline: auto; padding-inline: var(--pad); }

/* section wrappers on inner pages carry the same gradient as the About band */
.section--archive, .section--single, .section--page, .section--404, .section--search { background: var(--grad-about); }

/* --- breadcrumb ------------------------------------------- */
.breadcrumb { margin-bottom: 22px; font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.03em; }
.breadcrumb__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.breadcrumb__item { display: inline-flex; align-items: center; gap: 8px; color: var(--muted-3); }
.breadcrumb__item:not(:first-child)::before { content: "/"; color: var(--muted-4); }
.breadcrumb__item a { color: var(--muted-2); }
.breadcrumb__item a:hover { color: var(--accent); }
.breadcrumb__item [aria-current] { color: var(--accent); }
.pagehead--center .breadcrumb__list { justify-content: center; }

/* pages that render a section partial (team / professional services / contact):
   centre the breadcrumb above the centred section head */
.section--team .breadcrumb,
.section--proservices .breadcrumb,
.section--contact-page .breadcrumb { text-align: center; }
.section--team .breadcrumb__list,
.section--proservices .breadcrumb__list,
.section--contact-page .breadcrumb__list { justify-content: center; }
.section--contact-page .contact__grid { text-align: left; }

/* --- page header (title block) ------------------------------ */
.pagehead { max-width: 760px; }

/* single post / page: centre the whole article column */
.section--single .pagehead,
.section--page .pagehead,
.section--single .entry__media,
.section--page .entry__media,
.section--single .entry__content,
.section--page .entry__content,
.section--single .entry__foot,
.section--page .entry__foot,
.section--single .comments,
.section--page .comments { margin-inline: auto; }
.section--single .entry__media,
.section--page .entry__media { max-width: 860px; }
.section--single .pagehead,
.section--page .pagehead { text-align: center; }
.section--single .pagehead__meta,
.section--page .pagehead__meta,
.section--single .breadcrumb__list,
.section--page .breadcrumb__list { justify-content: center; }
.pagehead--center { margin-inline: auto; text-align: center; }
.pagehead__eyebrow { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.08em; text-transform: none; color: var(--accent); margin-bottom: 12px; }
.pagehead__title { margin: 0 0 15px; font-size: clamp(30px, 5vw, 52px); line-height: 1.12; color: var(--white); }
.pagehead__lead { margin-top: 0; font-size: 15px; line-height: 1.8; color: var(--muted); }
.pagehead__meta { margin-top: 4px; font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.05em; text-transform: none; color: var(--muted-3); display: flex; gap: 14px; flex-wrap: wrap; }
.pagehead__meta a { color: var(--muted-3); }
.pagehead__meta a:hover { color: var(--accent); }

/* --- featured media --------------------------------------- */
.entry__media { margin: 40px 0; border-radius: 16px; overflow: hidden; border: 1px solid var(--hairline-3); }
.entry__media img { width: 100%; display: block; }

/* --- article body ---------------------------------------- */
.entry__content { max-width: 720px; font-size: 16px; line-height: 1.85; color: var(--ink); }
.entry__content > * { margin-block: 1.4em 0; }
.entry__content > :first-child { margin-block-start: 0; }
.entry__content :is(h2, h3, h4) { color: #fff; line-height: 1.25; margin-block-start: 1.9em; }
.entry__content h2 { font-size: 26px; }
.entry__content h3 { font-size: 20px; }
.entry__content a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.entry__content :is(ul, ol) { padding-inline-start: 1.3em; color: var(--ink); }
.entry__content li { margin-block: .4em 0; }
.entry__content blockquote {
	border-inline-start: 3px solid var(--accent); padding-inline-start: 1.2rem;
	color: var(--ink-2); font-size: 1.1em; font-style: italic;
}
.entry__content code,
.entry__content pre,
.entry__content kbd,
.entry__content samp { font-family: var(--font-code); }
.entry__content code { font-size: .9em; background: rgba(255,255,255,0.06); padding: .15em .4em; border-radius: 4px; }
.entry__content pre { background: rgba(15,8,28,0.6); border: 1px solid var(--hairline-2); border-radius: 10px; padding: 18px; overflow-x: auto; }
.entry__content img { border-radius: 10px; }
.entry__content figcaption { font-size: 12.5px; color: var(--muted-3); margin-top: 8px; }

.entry__foot {
	max-width: 720px; margin-top: 44px; padding-top: 24px;
	border-top: 1px solid var(--hairline); display: flex; flex-wrap: wrap; gap: 18px;
	align-items: center; justify-content: space-between;
	font-family: var(--font-sans); font-size: 12px; color: var(--muted-3);
}
.entry__tags a { color: var(--muted-2); }
.entry__tags a:hover { color: var(--accent); }

.link-arrow { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-sans); font-size: 12px; color: var(--accent); }
.link-arrow svg { width: 14px; height: 14px; }

/* --- post grid (archive / blog) ------------------------- */
.post-grid { list-style: none; padding: 0; margin: 44px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px; }
.post-card {
	background: var(--card-grad); border: 1px solid var(--card-border);
	border-radius: 14px; overflow: hidden; display: flex; flex-direction: column;
	transition: border-color .2s;
}
.post-card:hover { border-color: var(--card-hover); }
.post-card__media { display: block; aspect-ratio: 16 / 10; background: #1d1233; overflow: hidden; }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.post-card:hover .post-card__media img { transform: scale(1.04); }
.post-card__body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.post-card__cat { font-family: var(--font-sans); font-size: 11px; letter-spacing: 0.07em; text-transform: none; color: var(--accent); }
.post-card__title { font-size: 17px; line-height: 1.35; margin: 0; }
.post-card__title a { color: #fff; }
.post-card__title a:hover { color: var(--accent); }
.post-card__excerpt { font-size: 13px; line-height: 1.7; color: var(--muted-2); margin: 0; }
.post-card__date { margin-top: auto; font-family: var(--font-sans); font-size: 11px; color: var(--muted-3); }

/* --- pagination ---------------------------------------- */
.pagination, .navigation .nav-links, .comments-pagination, .page-links {
	margin-top: 48px; display: flex; flex-wrap: wrap; gap: 8px;
	font-family: var(--font-sans); font-size: 13px;
}
.pagination .page-numbers, .nav-links .page-numbers, .page-links > * {
	padding: 9px 13px; border: 1px solid var(--hairline-3); border-radius: 7px; color: var(--ink-2);
}
.pagination .current, .nav-links .current { background: var(--accent); color: var(--btn-ink); border-color: var(--accent); }
.pagination a:hover, .nav-links a:hover { border-color: rgba(245,165,36,0.5); color: var(--accent); }

/* --- search form -------------------------------------- */
.search-form { display: flex; gap: 10px; margin: 24px 0; max-width: 480px; }
.search-form__field { flex: 1; background: rgba(15,8,28,0.5); border: 1px solid var(--hairline-3); border-radius: 7px; padding: 12px 14px; color: var(--ink); font: inherit; }

/* --- comments ---------------------------------------- */
.comments { max-width: 720px; margin-top: 64px; padding-top: 32px; border-top: 1px solid var(--hairline); }
.comments__title { font-size: 20px; color: #fff; }
.comments__list { list-style: none; padding: 0; margin: 24px 0 0; }
.comments__list .children { list-style: none; padding-inline-start: 22px; }
.comments__list li { padding: 16px 0; border-bottom: 1px solid var(--hairline); }
.comments__list .comment-author { font-weight: 700; color: #fff; }
.comments__list .comment-metadata a { font-family: var(--font-sans); font-size: 11px; color: var(--muted-3); }
.comment-form { margin-top: 36px; display: grid; gap: 14px; max-width: 620px; }
.comment-form input:not([type="submit"]):not([type="checkbox"]),
.comment-form textarea {
	width: 100%; background: rgba(15,8,28,0.5); border: 1px solid var(--hairline-3);
	border-radius: 7px; padding: 12px 14px; color: var(--ink); font: inherit;
}

/* --- 404 --------------------------------------------- */
.page-404__code { font-family: var(--font-sans); color: var(--accent); font-size: 12px; letter-spacing: 0.08em; }
.page-404 .btn { margin-top: 24px; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* =========================================================================
   Responsive
   Grids (.cards / .team__grid / .proserv / .post-grid) and headline sizes
   are already fluid (auto-fit + clamp). These queries handle layout that
   can't be expressed that way: two-column bands, the nav, the hero strip.
   ========================================================================= */

/* wide tablets / small laptops — collapse the paired columns */
@media (max-width: 1100px) {
	.team__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1000px) {
	.head-2col { grid-template-columns: 1fr; gap: 22px; }
	.about__grid { grid-template-columns: 1fr; gap: 44px; }
	.contact__grid { grid-template-columns: 1fr; gap: 40px; }
	.site-footer__cols { grid-template-columns: 1fr 1fr; gap: 36px; }
	.hero__stat, .hero__stat:first-child { padding-inline: clamp(16px, 4vw, 40px); }
	.hero__stat:first-child { padding-left: 0; }
}
@media (max-width: 720px) {
	.team__grid, .proserv { grid-template-columns: repeat(2, 1fr); }
}

/* tablets — mobile nav, hero strip wraps, footer stacks */
@media (max-width: 820px) {
	.main-nav, .masthead__cta { display: none; }
	.nav-toggle { display: inline-flex; }
	.masthead { position: relative; background: #1b1030; }
	.mobile-nav {
		display: block; position: absolute; inset-inline: 0; top: 100%; z-index: 30;
		background: #1b1030; border-bottom: 1px solid var(--hairline);
		padding: 12px var(--pad) 20px;
	}
	.mobile-nav[hidden] { display: none; }
	.mobile-nav .main-nav__list { flex-direction: column; align-items: flex-start; gap: 4px; }
	.mobile-nav .main-nav__list a { display: block; padding: 12px 0; font-size: 16px; }

	.hero__slide-inner { padding: 104px var(--pad) 84px; min-height: clamp(460px, 74vh, 620px); }
	.hero__arrow { display: none; }
	.hero__dots { bottom: 18px; }
	.hero__stats { flex-wrap: wrap; gap: 22px 32px; }
	.hero__stat, .hero__stat:first-child { padding: 0; border-left: 0; }
	.hero__stats-spacer, .hero__scroll { display: none; }

	.reviews__card { padding: 32px 22px; }
	.reviews__cite { flex-direction: column; align-items: flex-start; gap: 18px; }

	.site-footer__cta { flex-direction: column; align-items: flex-start; gap: 20px; }
	.site-footer__cols { grid-template-columns: 1fr; gap: 32px; }
	.site-footer__base { flex-direction: column; align-items: flex-start; gap: 14px; }
}

/* phones */
@media (max-width: 520px) {
	.section { padding: 44px 0; }
	.btn { padding: 13px 18px; }
	.hero__actions { width: 100%; }
	.hero__actions .btn { flex: 1; justify-content: center; }
	.hero__actions .btn--primary { gap: 12px; }
	.contact__form-row { grid-template-columns: 1fr; }
	.contact__form { padding: 22px 18px 26px; }
	.about__frame { aspect-ratio: 4 / 3; }
	.team__grid, .proserv { grid-template-columns: 1fr; }
}

/* wide horizontal content must scroll inside itself, never the page */
.entry__content pre,
.entry__content table,
.wp-block-table { overflow-x: auto; max-width: 100%; }
img, iframe, video, svg, table { max-width: 100%; }
