/* Arvesan — tokens (design system tokens.json) */
:root {
  --pure-white: #ffffff;
  --light-ash: #f4f4f4;
  --carbon-dark: #171a20;
  --graphite: #393c41;
  --pewter: #5c5e62;
  --silver-fog: #8e8e8e;
  --cloud-gray: #eeeeee;
  --pale-silver: #d0d1d2;
  --electric-blue: #3e6ae1;
  --electric-blue-hover: #3457b1;
  --on-electric-blue: var(--pure-white);
  --promo-blue: var(--electric-blue);
  --frosted-glass: rgba(255, 255, 255, 0.75);
  --overlay-scrim: rgba(128, 128, 128, 0.65);
  --subtle-hint: rgba(0, 0, 0, 0.05);
  --focus-border: var(--carbon-dark);
  --button-inset-rest: rgba(0, 0, 0, 0) 0px 0px 0px 2px inset;
  --focus-ring: inset 0px 0px 0px 2px #ffffff;
  --input-focus: inset 0px 0px 0px 1px #171a20;
  --space-4: 4px;
  --space-8: 8px;
  --space-16: 16px;
  --space-21: 21.44px;
  --radius-none: 0px;
  --radius-button: 4px;
  --radius-card: 12px;
  --radius-dot: 50%;
  --button-width: 200px;
  --button-width-narrow: 160px;
  --button-height: 40px;
  --button-border: 3px;
  --nav-button-height: 32px;
  --carousel-arrow: 44px;
  --container-max: 1383px;
  --hero-height: 100vh;
  --bp-tablet: 768px;
  --bp-desktop: 1024px;
  --bp-wide: 1440px;
  --font-display: "Universal Sans Display", -apple-system, Arial, sans-serif;
  --font-text: "Universal Sans Text", -apple-system, Arial, sans-serif;
}
.hero-title { font-family: var(--font-display); font-size: 40px; line-height: 48px; font-weight: 500; }
.hero-title-mobile { font-family: var(--font-display); font-size: 28px; line-height: 1.2; font-weight: 500; }
.promo-text { font-family: var(--font-text); font-size: 22px; line-height: 20px; font-weight: 400; }
.product-name { font-family: var(--font-text); font-size: 17px; line-height: 20px; font-weight: 500; }
.category-label { font-family: var(--font-text); font-size: 16px; font-weight: 500; }
.nav-item { font-family: var(--font-text); font-size: 14px; line-height: 16.8px; font-weight: 500; }
.button-label { font-family: var(--font-text); font-size: 14px; line-height: 16.8px; font-weight: 500; }
.body { font-family: var(--font-text); font-size: 14px; line-height: 20px; font-weight: 400; }
.sub-link { font-family: var(--font-text); font-size: 14px; line-height: 20px; font-weight: 400; }
@media (max-width: 767px) { .hero-title { font-size: 28px; line-height: 1.2; } }
/* components (design system bundle.css) */
/* Arvesan components — every value is a token from tokens.json; breakpoints are bp-tablet (768px) and bp-desktop (1024px). */

.av-icon { display: block; flex: none; }

/* ---------- Button ---------- */
.av-btn {
  display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box;
  padding: var(--space-4); border: var(--button-border) solid transparent; border-radius: var(--radius-button);
  box-shadow: var(--button-inset-rest); text-decoration: none; cursor: pointer; text-align: center;
  transition: border-color .33s, background-color .33s, color .33s, box-shadow .25s;
}
.av-btn:focus-visible { outline: none; border-color: var(--focus-border); box-shadow: var(--focus-ring); }
.av-btn--primary, .av-btn--secondary { min-height: var(--button-height); width: var(--button-width); max-width: 100%; }
.av-btn--narrow { width: var(--button-width-narrow); }
.av-btn--auto { width: auto; padding-left: var(--space-16); padding-right: var(--space-16); }
.av-btn--primary { background-color: var(--electric-blue); color: var(--on-electric-blue); }
.av-btn--primary:hover { background-color: var(--electric-blue-hover); }
.av-btn--secondary { background-color: var(--pure-white); color: var(--graphite); }
.av-btn--secondary:hover { background-color: var(--light-ash); }
.av-btn--nav {
  min-height: var(--nav-button-height); padding: var(--space-4) var(--space-16); border-width: 0;
  background-color: transparent; color: var(--carbon-dark); transition: color .33s, background-color .33s;
}
.av-btn--nav:hover, .av-btn--nav.is-open, .av-btn--nav[aria-current="page"] { background-color: var(--subtle-hint); }
.av-btn--nav:focus-visible { box-shadow: inset 0 0 0 2px var(--focus-border); }

/* ---------- TextLink ---------- */
.av-link {
  color: var(--pewter); text-decoration: none; box-shadow: inset 0 -1px 0 0 transparent;
  transition: box-shadow .33s cubic-bezier(0.5, 0, 0, 0.75), color .33s;
}
.av-link:hover { color: var(--carbon-dark); box-shadow: inset 0 -1px 0 0 currentColor; }
.av-link--light, .av-link--light:hover { color: var(--pure-white); }
.av-link:focus-visible { outline: 3px solid var(--focus-border); outline-offset: 2px; border-radius: var(--radius-button); }

/* ---------- ProductCard ---------- */
.av-product { display: flex; flex-direction: column; align-items: center; text-align: center; background: transparent; }
.av-product__media { width: 100%; aspect-ratio: 16 / 9; margin-bottom: var(--space-8); overflow: hidden; }
.av-product__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.av-product__name { color: var(--carbon-dark); }
.av-product__links { display: flex; gap: var(--space-16); margin-top: var(--space-4); }

/* ---------- NavPanel ---------- */
.av-panel { background: var(--pure-white); }
.av-panel__inner {
  max-width: var(--container-max); margin: 0 auto; box-sizing: border-box; padding: var(--space-21) var(--space-16);
  display: grid; grid-template-columns: 7fr 3fr; gap: var(--space-21);
}
.av-panel__grid { display: grid; grid-template-columns: repeat(var(--av-cols, 3), minmax(0, 1fr)); gap: var(--space-21) var(--space-16); align-content: start; }
.av-panel__side { list-style: none; margin: 0; padding: 0 0 0 var(--space-21); display: flex; flex-direction: column; gap: var(--space-8); }
.av-panel__sidelink { display: inline-block; padding: var(--space-4) 0; color: var(--carbon-dark); text-decoration: none; transition: color .33s; }
.av-panel__sidelink:hover { color: var(--pewter); }
.av-panel__sidelink:focus-visible { outline: 3px solid var(--focus-border); outline-offset: 2px; border-radius: var(--radius-button); }
@media (max-width: 1023px) {
  .av-panel__inner { grid-template-columns: 1fr; }
  .av-panel__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .av-panel__side { padding-left: 0; flex-direction: row; flex-wrap: wrap; gap: var(--space-8) var(--space-21); }
}

/* ---------- SiteHeader ---------- */
.av-header { position: relative; z-index: 10; background-color: transparent; transition: background-color .33s; }
.av-header--sticky { position: sticky; top: 0; }
.av-header[data-surface="white"] { background-color: var(--pure-white); }
.av-header[data-surface="frosted"] { background-color: var(--frosted-glass); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.av-header__bar {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--space-16);
  padding: var(--space-8) var(--space-21); min-height: var(--nav-button-height);
}
.av-header__logo { justify-self: start; display: inline-flex; border-radius: var(--radius-button); }
.av-header__logo img { display: block; height: 24px; width: auto; }
.av-header__logo:focus-visible { outline: 3px solid var(--focus-border); outline-offset: 2px; }
.av-header__nav { display: flex; align-items: center; gap: 0; }
.av-header__actions { justify-self: end; display: flex; align-items: center; gap: var(--space-4); }
.av-header__menu { justify-self: end; }
.av-icon-btn {
  display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box;
  min-width: var(--nav-button-height); min-height: var(--nav-button-height); padding: var(--space-4);
  border: 0; border-radius: var(--radius-button); background: transparent; color: var(--carbon-dark); cursor: pointer;
  transition: color .33s, background-color .33s;
}
.av-icon-btn:hover { background-color: var(--subtle-hint); }
.av-icon-btn:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--focus-border); }
@media (max-width: 767px) {
  .av-header__bar { grid-template-columns: 1fr auto; padding: var(--space-8) var(--space-16); }
}
.av-drawer { background: var(--pure-white); padding: var(--space-8) var(--space-16) var(--space-21); display: flex; flex-direction: column; gap: var(--space-16); }
.av-drawer__item { display: block; color: var(--carbon-dark); text-decoration: none; padding: var(--space-8) 0; }
.av-drawer__subs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-8); }
.av-drawer__actions { display: flex; flex-direction: column; gap: var(--space-8); padding-top: var(--space-8); }
.av-drawer__action { display: inline-flex; align-items: center; gap: var(--space-8); color: var(--carbon-dark); text-decoration: none; }

/* ---------- Hero ---------- */
.av-hero { position: relative; overflow: hidden; background: var(--pure-white); }
.av-hero__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .33s, visibility .33s; display: flex; flex-direction: column; justify-content: space-between; align-items: center; }
.av-hero__slide.is-active { opacity: 1; visibility: visible; }
.av-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.av-hero__top { position: relative; text-align: center; max-width: 720px; box-sizing: border-box; padding: calc(var(--nav-button-height) + var(--space-16) * 3) var(--space-16) 0; }
.av-hero__title { margin: 0; }
.av-hero__subtitle { margin: var(--space-8) 0 0; }
.av-hero__promo { margin: var(--space-16) 0 0; color: var(--promo-blue); }
.av-hero--dark .av-hero__title { color: var(--carbon-dark); }
.av-hero--dark .av-hero__subtitle { color: var(--carbon-dark); }
.av-hero--light .av-hero__title, .av-hero--light .av-hero__subtitle, .av-hero--light .av-hero__promo { color: var(--pure-white); }
.av-hero__ctas { position: relative; display: flex; justify-content: center; gap: var(--space-16); padding: 0 var(--space-16) calc(var(--space-21) * 3); box-sizing: border-box; width: 100%; }
.av-hero__arrow {
  position: absolute; top: 50%; margin-top: calc(var(--carousel-arrow) / -2); width: var(--carousel-arrow); height: var(--carousel-arrow);
  display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: var(--radius-button);
  background-color: var(--frosted-glass); color: var(--carbon-dark); cursor: pointer; transition: background-color .33s;
}
.av-hero__arrow:hover { background-color: var(--pure-white); }
.av-hero__arrow:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--focus-border); }
.av-hero__arrow--prev { left: var(--space-16); }
.av-hero__arrow--next { right: var(--space-16); }
.av-hero__dots { position: absolute; left: 0; right: 0; bottom: var(--space-21); display: flex; justify-content: center; gap: var(--space-4); }
.av-hero__dot { width: var(--space-21); height: var(--space-21); padding: 0; border: 0; background: transparent; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-button); }
.av-hero__dot span { width: var(--space-8); height: var(--space-8); border-radius: var(--radius-dot); background-color: var(--pewter); transition: background-color .33s; }
.av-hero__dot.is-active span { background-color: var(--carbon-dark); }
.av-hero--light .av-hero__dot span { background-color: var(--pale-silver); }
.av-hero--light .av-hero__dot.is-active span { background-color: var(--pure-white); }
.av-hero__dot:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--focus-border); }
@media (max-width: 767px) {
  .av-hero__ctas { flex-direction: column; align-items: center; }
  .av-hero__ctas .av-btn { width: 100%; }
  .av-hero__arrow { display: none; }
}

/* ---------- CategoryCard ---------- */
.av-cat { position: relative; display: block; overflow: hidden; border-radius: var(--radius-card); aspect-ratio: 2 / 1; text-decoration: none; }
.av-cat__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.av-cat__label { position: absolute; top: var(--space-21); left: var(--space-21); }
.av-cat--light .av-cat__label { color: var(--pure-white); }
.av-cat--dark .av-cat__label { color: var(--carbon-dark); }
.av-cat:focus-visible { outline: 3px solid var(--focus-border); outline-offset: 2px; }
.av-cat-row { display: grid; grid-template-columns: 2fr 1fr; gap: var(--space-16); }
.av-cat-row > .av-cat:not(:first-child) { aspect-ratio: auto; }
@media (max-width: 767px) {
  .av-cat-row { grid-template-columns: 1fr; }
  .av-cat-row > .av-cat:not(:first-child) { aspect-ratio: 2 / 1; }
}

/* ---------- TextField ---------- */
.av-field { display: flex; flex-direction: column; gap: var(--space-8); }
.av-field__label { color: var(--carbon-dark); }
.av-field__control {
  box-sizing: border-box; width: 100%; min-height: var(--button-height); padding: var(--space-8) var(--space-16);
  background: transparent; color: var(--carbon-dark); border: 1px solid var(--pewter); border-radius: var(--radius-button);
  transition: border-color .33s, box-shadow .25s;
}
.av-field__control::placeholder { color: var(--silver-fog); opacity: 1; }
.av-field__control:focus-visible { outline: none; border-color: var(--focus-border); box-shadow: var(--input-focus); }
.av-field__control--area { resize: vertical; min-height: calc(var(--button-height) * 3); }
.av-field__control--select { appearance: auto; }
.av-field__hint { margin: 0; color: var(--pewter); }
.av-check { display: flex; gap: var(--space-8); align-items: flex-start; color: var(--graphite); cursor: pointer; }
.av-check__box { width: var(--space-16); height: var(--space-16); margin: 2px 0 0; accent-color: var(--carbon-dark); flex: none; }
.av-check__box:focus-visible { outline: 3px solid var(--focus-border); outline-offset: 2px; }

/* ---------- ChatBar ---------- */
.av-chat { background: var(--pure-white); border-top: 1px solid var(--pale-silver); margin: 0; }
.av-chat--fixed { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; }
.av-chat__inner { max-width: var(--container-max); margin: 0 auto; box-sizing: border-box; display: flex; align-items: center; gap: var(--space-16); padding: var(--space-8) var(--space-16); }
.av-chat__label { color: var(--carbon-dark); white-space: nowrap; }
.av-chat__field { flex: 1; display: flex; align-items: center; min-width: 0; border-radius: var(--radius-button); transition: box-shadow .25s; }
.av-chat__field:focus-within { box-shadow: inset 0 0 0 2px var(--focus-border); }
.av-chat__input { flex: 1; min-width: 0; min-height: var(--button-height); padding: 0 var(--space-8); border: 0; background: transparent; color: var(--carbon-dark); font-family: var(--font-text); }
.av-chat__input::placeholder { color: var(--silver-fog); opacity: 1; }
.av-chat__input:focus { outline: none; }
.av-chat__send { display: inline-flex; align-items: center; justify-content: center; min-width: var(--nav-button-height); min-height: var(--nav-button-height); border: 0; border-radius: var(--radius-button); background: transparent; color: var(--carbon-dark); cursor: pointer; transition: background-color .33s; }
.av-chat__send:hover { background-color: var(--subtle-hint); }
.av-chat__send:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--focus-border); }
.av-chat__cta { display: inline-flex; align-items: center; gap: var(--space-8); color: var(--carbon-dark); text-decoration: none; white-space: nowrap; padding: var(--space-4) var(--space-16); border-radius: var(--radius-button); transition: background-color .33s; }
.av-chat__cta:hover { background-color: var(--subtle-hint); }
.av-chat__cta:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--focus-border); }
.av-chat__cta-icon { color: var(--electric-blue); }
@media (max-width: 767px) {
  .av-chat__label { display: none; }
  .av-chat__cta span { display: none; }
}

/* preview frame helpers */
body { margin: 0; background: var(--pure-white); color: var(--graphite); font-family: var(--font-text); }

/* page */
.av-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { --chat-h: 57px; padding-bottom: var(--chat-h); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; }
.av-skip { position: absolute; left: var(--space-16); top: -100px; z-index: 50; background: var(--pure-white); color: var(--carbon-dark); padding: var(--space-8) var(--space-16); border-radius: var(--radius-button); }
.av-skip:focus { top: var(--space-8); outline: 3px solid var(--focus-border); }

/* boxed content: only the banner runs full width */
:root { --box: 1200px; }
.av-container { max-width: var(--box); margin: 0 auto; }
.av-header__bar { max-width: var(--box); margin: 0 auto; box-sizing: content-box; padding-left: var(--space-21); padding-right: var(--space-21); }
.av-panel__inner { max-width: var(--box); box-sizing: content-box; }
.av-header { border-bottom: 1px solid var(--cloud-gray); }
.av-header__panel { border-bottom: 1px solid var(--cloud-gray); }
.av-chat__inner { max-width: var(--box); box-sizing: content-box; padding-left: var(--space-21); padding-right: var(--space-21); }
@media (max-width: 767px) { .av-chat__inner { padding-left: var(--space-16); padding-right: var(--space-16); } }
@media (max-width: 767px) { .av-header__bar { padding-left: var(--space-16); padding-right: var(--space-16); } }

/* header: white, sticky */
.av-logo { display: block; height: 24px; width: auto; }
.av-header__panel { position: absolute; left: 0; right: 0; top: 100%; }
.av-header__panel[hidden], .av-drawer[hidden] { display: none; }
.av-header__menu { display: none; }
@media (max-width: 767px) {
  .av-header__nav, .av-header__actions { display: none; }
  .av-header__menu { display: inline-flex; }
}
.av-drawer { max-height: calc(100vh - 48px); overflow-y: auto; box-sizing: border-box; }
.av-product__media--logo { background: var(--light-ash); display: flex; align-items: center; justify-content: center; }
.av-product__media--logo img { width: auto; height: 32px; object-fit: contain; }
.av-panel .av-product { padding: var(--space-16) 0; }

/* compact photo hero */
.av-hero--compact { height: clamp(420px, 56vh, 540px); }
.av-hero--compact .av-hero__slide { justify-content: center; }
.av-hero--compact .av-hero__top { padding-top: 0; }
.av-hero--compact .av-hero__ctas { padding: calc(var(--space-21) * 1.5) var(--space-16) 0; }
.av-hero--compact { background: var(--carbon-dark); }
.av-hero--compact .av-hero__img { filter: blur(10px) brightness(.5) saturate(1.1); transform: scale(1.08); }
.av-hero--compact .av-hero__subtitle, .av-hero--compact .av-hero__promo { text-shadow: 0 1px 2px rgba(0, 0, 0, .35); }
.av-hero__img { object-position: var(--pos, 50% 50%); }
@media (max-width: 767px) { .av-hero__img { object-position: var(--pos-m, 50% 50%); } .av-hero--compact { height: auto; min-height: 520px; } .av-hero--compact .av-hero__slide { position: relative; min-height: 520px; padding: calc(var(--space-21) * 2) 0; box-sizing: border-box; } }
.av-hero__title { text-wrap: balance; }
.av-hero__subtitle { max-width: 560px; margin-left: auto; margin-right: auto; }
.av-hero__promo { line-height: 1.2; }

/* faded grey photos on the left and right of a section */
.av-deco { position: relative; overflow: hidden; isolation: isolate; }
.av-deco > .av-container { position: relative; z-index: 1; }
.av-deco__img { position: absolute; top: 0; bottom: 0; width: min(36vw, 560px); background-size: cover; background-position: center; filter: grayscale(1) contrast(1.05); opacity: .13; pointer-events: none; z-index: 0; mix-blend-mode: multiply; }
.av-deco__img { --fade-y: linear-gradient(to bottom, transparent 0%, #000 22%, #000 78%, transparent 100%); -webkit-mask-composite: source-in; mask-composite: intersect; }
.av-deco__img--l { left: 0; -webkit-mask-image: linear-gradient(to right, #000 10%, transparent 92%), var(--fade-y); mask-image: linear-gradient(to right, #000 10%, transparent 92%), var(--fade-y); }
.av-deco__img--r { right: 0; -webkit-mask-image: linear-gradient(to left, #000 10%, transparent 92%), var(--fade-y); mask-image: linear-gradient(to left, #000 10%, transparent 92%), var(--fade-y); }
@media (max-width: 1023px) { .av-deco__img { width: 44vw; opacity: .08; } }
@media (max-width: 767px) { .av-deco__img { display: none; } }

/* sections */
.av-section { padding: calc(var(--space-21) * 4) var(--space-21); }
.av-section--ash { background: var(--light-ash); }
.av-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-16); margin-bottom: calc(var(--space-21) * 2); }
.av-section__head--center { flex-direction: column; align-items: center; text-align: center; }
.av-section__title { margin: 0; color: var(--carbon-dark); }
.av-section__lead { margin: var(--space-8) 0 0; color: var(--graphite); max-width: 560px; }
.av-eyebrow { display: block; margin: 0 0 var(--space-8); color: var(--pewter); }

/* projects */
.av-projects { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-16); }
.av-project { background: var(--light-ash); border-radius: var(--radius-card); padding: calc(var(--space-21) * 2); display: flex; flex-direction: column; overflow: hidden; }
.av-project__media { margin: calc(var(--space-21) * -2) calc(var(--space-21) * -2) calc(var(--space-21) * 2); aspect-ratio: 16 / 9; overflow: hidden; background: var(--cloud-gray); }
.av-project__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.av-project__logo { height: 40px; width: auto; align-self: flex-start; }
.av-project__tagline { margin: calc(var(--space-21) * 1.5) 0 var(--space-8); color: var(--carbon-dark); }
.av-project__body { margin: 0; color: var(--graphite); max-width: 560px; }
.av-project__features { list-style: none; margin: calc(var(--space-21) * 1.5) 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-16) var(--space-21); }
.av-project__features strong { display: block; font-weight: 500; color: var(--carbon-dark); }
.av-project__features span { display: block; color: var(--pewter); }
.av-project__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-16); margin: calc(var(--space-21) * 1.5) 0 0; padding: var(--space-21) 0 0; border-top: 1px solid var(--pale-silver); }
.av-project__stats dt { color: var(--carbon-dark); }
.av-project__stats dd { margin: var(--space-4) 0 0; color: var(--pewter); }
.av-project__note { margin: var(--space-16) 0 0; color: var(--pewter); }
.av-project__actions { margin-top: auto; padding-top: calc(var(--space-21) * 1.5); display: flex; align-items: center; gap: var(--space-21); flex-wrap: wrap; }

/* references */
.av-clients { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: calc(var(--space-21) * 2) calc(var(--space-21) * 2.5); max-width: 1180px; margin: 0 auto; }
.av-clients li { display: flex; align-items: center; justify-content: center; height: 48px; }
.av-clients img { max-height: 48px; max-width: 150px; width: auto; height: auto; filter: grayscale(1); opacity: .75; transition: filter .33s, opacity .33s; }
.av-clients li:hover img { filter: none; opacity: 1; }

/* Arveya customer references: retain the original brand colors and proportions. */
.av-arveya-clients { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-16); }
.av-arveya-client { min-width: 0; padding: var(--space-16); border: 1px solid var(--cloud-gray); border-radius: var(--radius-card); background: var(--pure-white); text-align: center; }
.av-arveya-client__media { height: 132px; display: flex; align-items: center; justify-content: center; overflow: hidden; border-radius: var(--radius-button); }
.av-arveya-client__media img { display: block; flex-shrink: 0; width: auto; height: auto; max-width: min(180px, 100%); max-height: 112px; object-fit: contain; }
.av-arveya-client__media--coldwell { padding: 0 var(--space-16); background: #002b5c; }
.av-arveya-client__media--lotus img { width: 256px; height: 256px; max-width: none; max-height: none; }
.av-arveya-client__name { display: block; margin-top: var(--space-16); color: var(--graphite); }
@media (max-width: 1023px) { .av-arveya-clients { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .av-arveya-client { padding: var(--space-8); } .av-arveya-client__media { height: 112px; } .av-arveya-client__name { min-height: 40px; margin-top: var(--space-8); } }

/* A sharp city image and a separate scrim keep the homepage hero legible. */
.av-hero--city .av-hero__img { filter: none; transform: none; }
.av-hero--city .av-hero__slide::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(3, 17, 42, .2), rgba(3, 17, 42, .42) 52%, rgba(3, 17, 42, .28)); }
.av-hero--city .av-hero__top, .av-hero--city .av-hero__ctas { z-index: 2; }
.av-hero--city .av-hero__title, .av-hero--city .av-hero__subtitle, .av-hero--city .av-hero__promo { text-shadow: 0 2px 16px rgba(0, 0, 0, .3); }

/* solutions */
.av-solutions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--space-21) * 2) var(--space-21); }
.av-solution { display: flex; flex-direction: column; }
.av-solution__media { aspect-ratio: 16 / 10; border-radius: var(--radius-card); overflow: hidden; margin-bottom: var(--space-21); background: var(--cloud-gray); }
.av-solution__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.av-solution__num { color: var(--pewter); }
.av-solution h3 { margin: var(--space-16) 0 var(--space-8); color: var(--carbon-dark); }
.av-solution p { margin: 0 0 var(--space-16); color: var(--graphite); }
.av-solution .av-link { margin-top: auto; align-self: flex-start; }

/* about */
.av-about { display: grid; grid-template-columns: 5fr 6fr; gap: calc(var(--space-21) * 3); align-items: start; }
.av-about__media { border-radius: var(--radius-card); overflow: hidden; aspect-ratio: 4 / 5; position: sticky; top: calc(var(--nav-button-height) + var(--space-21) * 2); }
.av-about__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.av-about .av-figures { margin-top: calc(var(--space-21) * 2); }
.av-about__body { margin: var(--space-16) 0 0; color: var(--graphite); max-width: 560px; }
.av-about__actions { margin-top: calc(var(--space-21) * 1.5); display: flex; align-items: center; gap: var(--space-21); flex-wrap: wrap; }
.av-figures { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-16); margin: 0 0 calc(var(--space-21) * 2); }
.av-figures dt { color: var(--carbon-dark); }
.av-figures dd { margin: var(--space-4) 0 0; color: var(--pewter); }
.av-values { list-style: none; margin: 0; padding: 0; }
.av-values li { border-top: 1px solid var(--cloud-gray); padding: var(--space-21) 0; }
.av-values h3 { margin: 0 0 var(--space-8); color: var(--carbon-dark); }
.av-values p { margin: 0; color: var(--graphite); }

/* faq + footer (as v1) */
.av-faq { max-width: 800px; margin: 0 auto; }
.av-faq__list { border-bottom: 1px solid var(--pale-silver); }
.av-faq__item { border-top: 1px solid var(--pale-silver) !important; }
.av-faq__more { text-align: center; margin-top: calc(var(--space-21) * 1.5); }
.av-faq .av-faq__q { padding-left: var(--space-8); padding-right: var(--space-8); }
.av-faq .av-faq__q:focus-visible { outline-offset: -3px; }
.av-faq .av-faq__a { padding: 0 calc(var(--space-21) * 2) var(--space-21) var(--space-8); }
@media (max-width: 767px) { .av-faq .av-faq__a { padding-right: var(--space-8); } }
.av-faq__item { border-top: 1px solid var(--cloud-gray); }
.av-faq__q { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: var(--space-16); padding: var(--space-21) 0; cursor: pointer; color: var(--carbon-dark); border-radius: var(--radius-button); transition: color .33s; }
.av-faq__q::-webkit-details-marker { display: none; }
.av-faq__q:hover { color: var(--pewter); }
.av-faq__q:focus-visible { outline: 3px solid var(--focus-border); outline-offset: 2px; }
.av-faq__minus, .av-faq__item[open] .av-faq__plus { display: none; }
.av-faq__item[open] .av-faq__minus { display: block; }
.av-faq__a { margin: 0; padding: 0 calc(var(--space-21) * 2) var(--space-21) 0; color: var(--graphite); }
.av-footer { background: var(--light-ash); padding: calc(var(--space-21) * 3) var(--space-21) calc(var(--space-21) * 2); }
.av-footer__top { display: grid; grid-template-columns: 4fr 2fr 2fr 2fr; gap: calc(var(--space-21) * 2); }
.av-footer__about p { margin: var(--space-16) 0; color: var(--graphite); max-width: 360px; }
.av-footer__contact { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-8); }
.av-footer__contact li { display: flex; gap: var(--space-8); align-items: flex-start; color: var(--pewter); }
.av-footer__contact .av-icon { width: 20px; height: 20px; color: var(--carbon-dark); flex: none; }
.av-footer__col h2 { margin: 0 0 var(--space-16); color: var(--carbon-dark); }
.av-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-8); }
.av-footer__bottom { margin-top: calc(var(--space-21) * 2); padding-top: var(--space-21); border-top: 1px solid var(--pale-silver); display: flex; justify-content: space-between; gap: var(--space-16); flex-wrap: wrap; color: var(--pewter); }
.av-footer__bottom p { margin: 0; }
.av-footer__legal { display: flex; gap: var(--space-16); flex-wrap: wrap; }

@media (max-width: 1023px) {
  .av-projects { grid-template-columns: 1fr; }
  .av-solutions { grid-template-columns: 1fr 1fr; }
  .av-about { grid-template-columns: 1fr; gap: calc(var(--space-21) * 2); }
  .av-footer__top { grid-template-columns: 1fr 1fr; }
  .av-footer__about { grid-column: 1 / -1; }
  .av-about__media { position: static; aspect-ratio: 16 / 10; }
}
@media (max-width: 767px) {
  .av-section { padding: calc(var(--space-21) * 3) var(--space-16); }
  .av-section__head { flex-direction: column; align-items: flex-start; margin-bottom: var(--space-21); }
  .av-section__head--center { align-items: center; }
  .av-project { padding: var(--space-21); }
  .av-project__features { grid-template-columns: 1fr; }
  .av-project__stats, .av-figures { grid-template-columns: 1fr; gap: var(--space-16); }
  .av-solutions { grid-template-columns: 1fr; gap: calc(var(--space-21) * 2); }
  .av-project__media { margin: calc(var(--space-21) * -1) calc(var(--space-21) * -1) var(--space-21); }
  .av-clients { gap: var(--space-21) calc(var(--space-21) * 1.5); }
  .av-clients li { height: 36px; }
  .av-clients img { max-height: 36px; max-width: 120px; }
  .av-footer { padding: calc(var(--space-21) * 2) var(--space-16) var(--space-21); }
  .av-footer__top { grid-template-columns: 1fr; gap: var(--space-21); }
  .av-faq__a { padding-right: 0; }
}

/* nav: current section, panel cards */
.av-btn--nav.is-current { background-color: var(--subtle-hint); }
.av-panelcard { text-decoration: none; padding: 0 !important; gap: var(--space-8); }
.av-panelcard .av-product__media { border-radius: var(--radius-button); margin-bottom: 0; }
.av-panelcard:hover .av-product__name { color: var(--pewter); }
.av-panelcard:focus-visible { outline: 3px solid var(--focus-border); outline-offset: 2px; border-radius: var(--radius-button); }
.av-panel .av-product__media--logo img { height: 32px; }

/* inner page banner */
.av-pagehero { position: relative; overflow: hidden; background: var(--carbon-dark); min-height: clamp(260px, 34vh, 340px); display: flex; align-items: center; }
.av-pagehero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: blur(8px) brightness(.45) saturate(1.1); transform: scale(1.08); }
.av-pagehero__inner { position: relative; width: 100%; max-width: var(--box); margin: 0 auto; box-sizing: content-box; padding: calc(var(--space-21) * 2.5) var(--space-21); color: var(--pure-white); }
.av-pagehero__title { margin: var(--space-16) 0 0; color: var(--pure-white); max-width: 820px; text-wrap: balance; }
.av-pagehero__lead { margin: var(--space-16) 0 0; color: var(--pure-white); max-width: 640px; text-shadow: 0 1px 2px rgba(0, 0, 0, .35); }
.av-crumbs { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-8); color: var(--pure-white); }
.av-crumbs li + li::before { content: "›"; margin-right: var(--space-8); opacity: .8; }
.av-crumbs a { color: var(--pure-white); text-decoration: none; box-shadow: inset 0 -1px 0 0 transparent; transition: box-shadow .33s cubic-bezier(0.5, 0, 0, 0.75); }
.av-crumbs a:hover { box-shadow: inset 0 -1px 0 0 currentColor; }
.av-crumbs a:focus-visible { outline: 3px solid var(--pure-white); outline-offset: 2px; border-radius: var(--radius-button); }

/* split image + text */
.av-split { display: grid; grid-template-columns: 1fr 1fr; gap: calc(var(--space-21) * 3); align-items: center; }
.av-split + .av-split { margin-top: calc(var(--space-21) * 4); }
.av-split--rev .av-split__media { order: 2; }
.av-split__media { border-radius: var(--radius-card); overflow: hidden; aspect-ratio: 4 / 3; background: var(--cloud-gray); }
.av-split__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.av-split__media--frame { aspect-ratio: auto; background: var(--light-ash); padding: var(--space-16); }
.av-split__media--frame img { height: auto; border-radius: var(--radius-button); }
.av-section--ash .av-split__media--frame { background: var(--pure-white); }
.av-split__title { margin: 0; color: var(--carbon-dark); text-wrap: balance; }
.av-split__p { margin: var(--space-16) 0 0; color: var(--graphite); max-width: 560px; }
.av-split__actions { margin-top: calc(var(--space-21) * 1.5); display: flex; flex-wrap: wrap; gap: var(--space-16) var(--space-21); align-items: center; }
.av-split__brandlogo { height: 36px; width: auto; margin-bottom: var(--space-21); }
.av-checks { list-style: none; margin: calc(var(--space-21) * 1.25) 0 0; padding: 0; max-width: 560px; }
.av-checks li { position: relative; padding: var(--space-8) 0 var(--space-8) calc(var(--space-16) + var(--space-8)); border-top: 1px solid var(--cloud-gray); color: var(--carbon-dark); }
.av-checks li:last-child { border-bottom: 1px solid var(--cloud-gray); }
.av-checks li::before { content: ""; position: absolute; left: 0; top: 50%; width: var(--space-8); height: var(--space-8); margin-top: -4px; border-radius: var(--radius-dot); background: var(--carbon-dark); }

/* numbered cards */
.av-numbered { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: var(--space-16); }
.av-numbered__item { background: var(--light-ash); border-radius: var(--radius-card); padding: calc(var(--space-21) * 1.5); }
.av-section--ash .av-numbered__item { background: var(--pure-white); }
.av-numbered__num { color: var(--pewter); }
.av-numbered__item h3 { margin: var(--space-16) 0 var(--space-8); color: var(--carbon-dark); }
.av-numbered__item p { margin: 0; color: var(--graphite); }

/* stats */
.av-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--space-21); margin: 0; }
.av-stats > div { border-top: 1px solid var(--pale-silver); padding-top: var(--space-21); }
.av-stats dt { color: var(--carbon-dark); }
.av-stats dd { margin: var(--space-8) 0 0; color: var(--pewter); }
.av-stats__note { margin: var(--space-21) 0 0; color: var(--pewter); }

/* centred intro */
.av-intro { max-width: 820px; margin: 0 auto; text-align: center; }
.av-intro .av-section__title { text-wrap: balance; }
.av-intro p { margin: var(--space-16) auto 0; color: var(--graphite); max-width: 680px; }

/* zigzag solution rows */
.av-solrow .av-split__media { aspect-ratio: 16 / 10; }
.av-solrow__num { display: block; color: var(--pewter); margin-bottom: var(--space-8); }
.av-solrow + .av-solrow { margin-top: calc(var(--space-21) * 3); padding-top: calc(var(--space-21) * 3); border-top: 1px solid var(--pale-silver); }

/* solution detail */
.av-detail { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: calc(var(--space-21) * 3); align-items: start; }
.av-detail__lead p { margin: 0 0 var(--space-16); color: var(--graphite); }
.av-detail__lead p:first-child { font-size: 17px; line-height: 26px; color: var(--carbon-dark); }
.av-detail__media { border-radius: var(--radius-card); overflow: hidden; aspect-ratio: 16 / 9; margin: calc(var(--space-21) * 1.5) 0 0; background: var(--cloud-gray); }
.av-detail__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.av-aside { position: sticky; top: calc(var(--nav-button-height) + var(--space-21) * 2); display: flex; flex-direction: column; gap: var(--space-16); }
.av-aside__box { background: var(--light-ash); border-radius: var(--radius-card); padding: var(--space-21); }
.av-aside__box h2 { margin: 0 0 var(--space-16); color: var(--carbon-dark); }
.av-aside__list { list-style: none; margin: 0; padding: 0; }
.av-aside__list a { display: block; padding: var(--space-8) 0; color: var(--graphite); text-decoration: none; border-top: 1px solid var(--pale-silver); transition: color .33s; }
.av-aside__list li:first-child a { border-top: 0; }
.av-aside__list a:hover { color: var(--carbon-dark); }
.av-aside__list a[aria-current="page"] { color: var(--carbon-dark); font-weight: 500; }
.av-aside__list a:focus-visible { outline: 3px solid var(--focus-border); outline-offset: 2px; border-radius: var(--radius-button); }
.av-aside__box p { margin: 0 0 var(--space-16); color: var(--graphite); }
.av-aside__box .av-btn { width: 100%; }
.av-aside__phone { display: inline-flex; gap: var(--space-8); align-items: center; margin-top: var(--space-16); color: var(--carbon-dark); text-decoration: none; }
.av-aside__phone .av-icon { width: 20px; height: 20px; color: var(--electric-blue); }
.av-gives { display: grid; grid-template-columns: 5fr 7fr; gap: calc(var(--space-21) * 2); align-items: start; }
.av-gives__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-16); }
.av-gives__grid li { background: var(--pure-white); border-radius: var(--radius-card); padding: var(--space-21); color: var(--carbon-dark); min-height: 104px; display: flex; flex-direction: column; justify-content: space-between; gap: var(--space-16); }
.av-gives__num { color: var(--pewter); }
.av-related { display: grid; grid-template-columns: 1fr 1fr; gap: calc(var(--space-21) * 2); align-items: center; background: var(--light-ash); border-radius: var(--radius-card); overflow: hidden; }
.av-related__media { height: 100%; min-height: 280px; }
.av-related__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.av-related__text { padding: calc(var(--space-21) * 2) calc(var(--space-21) * 2) calc(var(--space-21) * 2) 0; }
.av-related__text img { height: 32px; width: auto; }
.av-related__text h2 { margin: var(--space-21) 0 var(--space-8); color: var(--carbon-dark); }
.av-related__text p { margin: 0 0 var(--space-21); color: var(--graphite); }

/* CTA band */
.av-section--tight { padding-top: 0; }
.av-section--ash + .av-section--tight { padding-top: calc(var(--space-21) * 4); }
.av-ctaband { position: relative; overflow: hidden; border-radius: var(--radius-card); background: var(--carbon-dark); }
.av-ctaband__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: blur(8px) brightness(.42); transform: scale(1.1); }
.av-ctaband__inner { position: relative; padding: calc(var(--space-21) * 3) calc(var(--space-21) * 2); text-align: center; color: var(--pure-white); }
.av-ctaband .av-eyebrow { color: var(--pure-white); }
.av-ctaband__title { margin: 0 auto; color: var(--pure-white); max-width: 760px; text-wrap: balance; }
.av-ctaband__text { margin: var(--space-16) auto 0; max-width: 600px; color: var(--pure-white); }
.av-ctaband__actions { margin-top: calc(var(--space-21) * 1.5); display: flex; justify-content: center; gap: var(--space-16); flex-wrap: wrap; }
.av-ctaband .av-btn--primary:focus-visible { border-color: var(--pure-white); }

/* contact */
.av-contactcards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-16); }
.av-contactcard { background: var(--light-ash); border-radius: var(--radius-card); padding: calc(var(--space-21) * 1.25); display: flex; flex-direction: column; gap: var(--space-8); }
.av-contactcard .av-icon { width: 28px; height: 28px; color: var(--carbon-dark); margin-bottom: var(--space-8); }
.av-contactcard h2 { margin: 0; color: var(--carbon-dark); }
.av-contactcard p { margin: 0; color: var(--graphite); }
.av-contactcard__value { color: var(--carbon-dark) !important; font-weight: 500; }
.av-contactcard .av-link { margin-top: auto; align-self: flex-start; }
.av-contact { display: grid; grid-template-columns: 7fr 5fr; gap: calc(var(--space-21) * 2); align-items: start; }
.av-form { background: var(--pure-white); border-radius: var(--radius-card); padding: calc(var(--space-21) * 2); border: 1px solid var(--cloud-gray); }
.av-form h2 { margin: 0; color: var(--carbon-dark); }
.av-form > p { margin: var(--space-8) 0 calc(var(--space-21) * 1.5); color: var(--graphite); }
.av-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-16); }
.av-form__full { grid-column: 1 / -1; }
.av-form__note { margin: var(--space-16) 0 0; color: var(--pewter); }
.av-form__status { margin: var(--space-16) 0 0; color: var(--carbon-dark); }
.av-office { border-radius: var(--radius-card); overflow: hidden; background: var(--light-ash); }
.av-section--ash .av-office { background: var(--pure-white); border: 1px solid var(--cloud-gray); }
.av-office__media { aspect-ratio: 4 / 3; }
.av-office__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.av-office__text { padding: calc(var(--space-21) * 1.5); }
.av-office__text h2 { margin: var(--space-8) 0; color: var(--carbon-dark); }
.av-office__text p { margin: 0 0 var(--space-16); color: var(--graphite); }

/* brand strip */
.av-brandstrip { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-16); }
.av-brandstrip a { display: flex; flex-direction: column; gap: var(--space-16); background: var(--light-ash); border-radius: var(--radius-card); padding: calc(var(--space-21) * 1.5); text-decoration: none; transition: background-color .33s; }
.av-section--ash .av-brandstrip a { background: var(--pure-white); }
.av-brandstrip a:hover { background: var(--cloud-gray); }
.av-brandstrip a:focus-visible { outline: 3px solid var(--focus-border); outline-offset: 2px; }
.av-brandstrip img { height: 36px; width: auto; align-self: flex-start; }
.av-brandstrip span { color: var(--graphite); }
.av-brandstrip strong { color: var(--carbon-dark); font-weight: 500; }

@media (max-width: 1023px) {
  .av-split, .av-detail, .av-gives, .av-contact, .av-related { grid-template-columns: 1fr; gap: calc(var(--space-21) * 1.5); }
  .av-split--rev .av-split__media { order: 0; }
  .av-numbered { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .av-contactcards { grid-template-columns: 1fr 1fr; }
  .av-aside { position: static; }
  .av-related__text { padding: 0 calc(var(--space-21) * 1.5) calc(var(--space-21) * 1.5); }
  .av-related__media { min-height: 220px; }
}
@media (max-width: 767px) {
  .av-pagehero__inner { padding: calc(var(--space-21) * 2) var(--space-16); }
  .av-split + .av-split { margin-top: calc(var(--space-21) * 3); }
  .av-solrow + .av-solrow { margin-top: calc(var(--space-21) * 2); padding-top: calc(var(--space-21) * 2); }
  .av-section--ash + .av-section--tight { padding-top: calc(var(--space-21) * 3); }
  .av-gives__grid li { min-height: 0; }
  .av-numbered, .av-contactcards, .av-brandstrip, .av-gives__grid, .av-form__grid { grid-template-columns: 1fr; }
  .av-ctaband__inner { padding: calc(var(--space-21) * 2) var(--space-21); }
  .av-ctaband__actions .av-btn { width: 100%; }
  .av-form { padding: var(--space-21); }
}
