:root {
  --primary: #0069b4;
  --primary-hover: #00538e;
  --deep: #063a68;
  --deepest: #08263f;
  --sky: #10a9cf;
  --cyan: #10a9cf;
  --accent-aqua: #72d8da;
  --teal: #0f9f87;
  --amber: #d88918;
  --ink: #0f172a;
  --text: #334155;
  --muted: #64748b;
  --muted-on-tint: #616f85;
  --slate-soft: #526173;
  --white: #fff;
  --soft: #f7fafc;
  --tint: #eff8fd;
  --tint-2: #e6f5fb;
  --border: #dce6eb;
  --focus: #f5b942;
  --grad-brand: linear-gradient(135deg, #0069b4, #063a68);
  --grad-text: linear-gradient(120deg, #0069b4 0%, #10a9cf 58%, #0f9f87 100%);
  --grad-soft: linear-gradient(135deg, #eef8fd 0%, #f7fbff 52%, #ecfbf8 100%);
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);
  --shadow-card: 0 15px 32px -22px rgba(6, 58, 104, .38);
  --shadow-pop: 0 24px 56px -28px rgba(15, 23, 42, .4);
  --shadow-soft: 0 18px 40px -26px rgba(6, 58, 104, .45);
  --radius-sm: .65rem;
  --radius-md: 1rem;
  --radius-lg: 1.35rem;
  --radius-pill: 999px;
  --font: "Plus Jakarta Sans", "Segoe UI", Arial, sans-serif;
  --container: min(88vw, 1240px);
  --section-y: clamp(4.5rem, 7vw, 7.2rem);
  --header-height: 74px;
  --text-display: clamp(2.65rem, 3.05vw, 3.35rem);
  --text-hero: clamp(2.5rem, 3.15vw, 3.3rem);
  --text-heading: clamp(2rem, 2.65vw, 2.85rem);
  --text-closing: clamp(1.9rem, 2.5vw, 2.6rem);
  --text-subheading: clamp(1.65rem, 2.1vw, 2.25rem);
  --text-card-title: clamp(1.15rem, 1.35vw, 1.3rem);
  --text-subtitle: 1.05rem;
  --text-lead: clamp(1rem, .35vw + .92rem, 1.075rem);
  --text-body: 1rem;
  --text-body-small: .875rem;
  --text-ui: .8125rem;
  --text-label-lg: .75rem;
  --text-label: .6875rem;
  --text-micro: .625rem;
}

/* ============================================================
   Readability and responsive scale
   The first client review showed that a 120% browser zoom was needed on a
   wide display. This fluid root scale delivers the same comfortable reading
   size without asking the visitor to zoom, while remaining restrained on
   phones. The tokens map directly to Wix Studio text styles later.
   ============================================================ */
html { font-size: clamp(16px, calc(15.5px + .05vw), 16.5px); }

:root {
  --container: min(88vw, 1240px);
  --text-body: 1rem;
  --text-body-small: .95rem;
  --text-ui: .9rem;
  --text-label-lg: .84rem;
  --text-label: .78rem;
  --text-micro: .71rem;
}

.topbar-inner { font-size: var(--text-label); }
.support-status { font-size: var(--text-micro); }
.desktop-nav a,
.header-demo { font-size: var(--text-ui); }
.desktop-nav { gap: .08rem; }
.desktop-nav > a,
.desktop-nav > .nav-group > a { padding-inline: .72rem; }
.solution-card li,
.pam-control-list small,
.integration-points small,
.direct-contact strong,
.event-proof-rail span,
.event-audience-grid p,
.event-delivery-grid p { font-size: var(--text-label-lg); }
.solution-photo span,
.event-delivery-grid span,
.event-hero-points li { font-size: var(--text-micro); }
.industry-card.image-card strong { font-size: var(--text-ui); }
.industry-card.image-card small { font-size: var(--text-label); }
.about-practices strong { font-size: var(--text-body); }
.about-practices small { font-size: var(--text-ui); line-height: 1.55; }
.about-practices a { min-height: 7.4rem; }
.footer-nav a { font-size: var(--text-ui); }
.footer-nav a.footer-sub { font-size: var(--text-label-lg); }
.footer-contact-link strong { font-size: var(--text-ui); }
.footer-headquarters span,
.footer-hubs li { font-size: var(--text-label-lg); }

@media (min-width: 1500px) {
  :root { --container: min(86vw, 1280px); }
  .inner-hero-grid,
  .page-hero-grid { min-height: 620px; }
}

@media (max-width: 1120px) {
  :root { --container: min(92vw, 1080px); }
}

@media (max-width: 640px) {
  :root {
    --container: min(90vw, 620px);
    --section-y: clamp(3.6rem, 13vw, 4.8rem);
    --text-body-small: .975rem;
    --text-ui: .925rem;
    --text-label-lg: .875rem;
    --text-label: .8125rem;
    --text-micro: .75rem;
  }
  .topbar-inner { min-height: 2.25rem; }
  .topbar-contact a { font-size: var(--text-label); }
  .about-practices a { min-height: auto; padding-block: 1.2rem; }
  .about-practices strong { font-size: var(--text-body); }
  .about-practices small { font-size: var(--text-ui); }
}

/* Solutions now has enough child pages for a compact three-column mega menu.
   It remains a normal dropdown in Wix terms: one global header component,
   category headings, and CMS-backed destinations. */
.nav-menu.nav-mega {
  left: 0;
  width: min(58rem, 84vw);
  min-width: 0;
  padding: .85rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .45rem 1rem;
  transform: translate(0, -.35rem);
}
.nav-group:hover .nav-menu.nav-mega,
.nav-group:focus-within .nav-menu.nav-mega { transform: translate(0, 0); }
.nav-group.is-dismissed .nav-menu.nav-mega { transform: translate(0, -.35rem); }
.nav-menu-group { display: grid; align-content: start; gap: .15rem; }
.nav-menu-group > span {
  display: block;
  padding: .55rem .8rem .35rem;
  color: var(--primary);
  font-size: var(--text-micro);
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.nav-menu.nav-mega a { white-space: normal; }
.nav-menu.nav-mega .nav-menu-feature {
  border: 1px solid rgba(0,105,180,.14);
  background: var(--tint);
  color: var(--primary);
}

/* ============================================================
   Shared service-detail template
   Every requested service page uses these same sections and responsive rules;
   only the CMS-shaped content changes. This is intentionally close to the
   native Wix Studio implementation model.
   ============================================================ */
.service-hero {
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle at 82% 18%, rgba(16,169,207,.16), transparent 26rem), linear-gradient(135deg, #fff 0%, #f4fbfe 58%, #eaf7fb 100%);
}
.service-hero::after {
  position: absolute;
  right: -17rem;
  bottom: -21rem;
  width: 44rem;
  height: 44rem;
  border: 1px solid rgba(0,105,180,.1);
  border-radius: 50%;
  content: "";
}
.service-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 650px;
  padding: clamp(3.8rem, 6vw, 6rem) 0;
  grid-template-columns: minmax(0, 1.03fr) minmax(340px, .82fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
}
.service-breadcrumb {
  display: inline-flex;
  margin-bottom: 1.2rem;
  align-items: center;
  color: var(--slate-soft);
  font-size: var(--text-label);
  font-weight: 800;
  gap: .55rem;
}
.service-breadcrumb svg { width: .9rem; height: .9rem; transform: rotate(180deg); }
.service-hero-copy .pill svg { width: 1rem; height: 1rem; }
.service-hero-copy h1 {
  max-width: 15ch;
  margin: 1.05rem 0 1rem;
  font-size: var(--text-display);
  line-height: 1.08;
  letter-spacing: -.05em;
}
.service-hero-copy > p {
  max-width: 62ch;
  margin: 0;
  color: var(--muted);
  font-size: var(--text-lead);
  line-height: 1.72;
}
.service-hero-copy .hero-actions { margin-top: 1.6rem; }
.service-hero-media {
  position: relative;
  width: min(100%, 500px);
  margin: 0;
  justify-self: end;
}
.service-hero-media::before {
  position: absolute;
  inset: -1rem 1rem 1rem -1rem;
  z-index: -1;
  border: 1px solid rgba(0,105,180,.18);
  border-radius: 1.6rem 1.6rem 5rem 1.6rem;
  content: "";
}
.service-hero-media img {
  width: 100%;
  aspect-ratio: 4 / 5;
  border-radius: 1.25rem 1.25rem 4.6rem 1.25rem;
  object-fit: cover;
  box-shadow: 0 30px 70px -36px rgba(7,54,88,.45);
}
.service-hero-media figcaption {
  position: absolute;
  right: -1.5rem;
  bottom: 2rem;
  width: min(88%, 360px);
  padding: 1.05rem 1.2rem;
  border: 1px solid rgba(0,105,180,.15);
  border-radius: .9rem;
  background: rgba(255,255,255,.95);
  box-shadow: var(--shadow-pop);
  backdrop-filter: blur(12px);
}
.service-hero-media figcaption span {
  display: block;
  color: var(--primary);
  font-size: var(--text-micro);
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.service-hero-media figcaption strong {
  display: block;
  margin-top: .35rem;
  color: var(--ink);
  font-size: var(--text-ui);
  line-height: 1.5;
}
.service-overview { background: var(--white); }
.service-overview-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  align-items: start;
  gap: clamp(2rem, 7vw, 7rem);
}
.service-overview h2 { max-width: 18ch; margin: .85rem 0 0; }
.service-overview-grid > p {
  max-width: 62ch;
  margin: .4rem 0 0;
  color: var(--slate-soft);
  font-size: clamp(1.05rem, .55vw + .96rem, 1.25rem);
  line-height: 1.75;
}
.service-outcomes { padding: var(--section-y) 0; background: var(--tint); }
.service-outcome-grid,
.service-capability-grid,
.service-approach-grid { display: grid; gap: 1rem; }
.service-outcome-grid { grid-template-columns: repeat(3, 1fr); }
.service-outcome-grid article {
  min-width: 0;
  padding: clamp(1.5rem, 2.6vw, 2.2rem);
  border: 1px solid rgba(0,105,180,.13);
  border-radius: var(--radius-md);
  background: rgba(255,255,255,.9);
  box-shadow: var(--shadow-sm);
}
.service-outcome-grid article > span {
  display: grid;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: .8rem;
  background: #e8f8f4;
  color: var(--teal);
  place-items: center;
}
.service-outcome-grid svg { width: 1.25rem; height: 1.25rem; stroke-width: 2.3; }
.service-outcome-grid h3 { margin: 1.25rem 0 .6rem; font-size: var(--text-card-title); }
.service-outcome-grid p { margin: 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.72; }
.service-capabilities { background: var(--white); }
.service-capability-grid { grid-template-columns: repeat(3, 1fr); }
.service-capability-grid article {
  min-width: 0;
  min-height: 17rem;
  padding: clamp(1.5rem, 2.5vw, 2.1rem);
  border: 1px solid var(--border);
  border-top: 3px solid var(--primary);
  border-radius: var(--radius-md);
  background: var(--white);
  box-shadow: var(--shadow-sm);
}
.service-card-index {
  color: var(--primary);
  font-size: var(--text-micro);
  font-weight: 800;
  letter-spacing: .12em;
}
.service-capability-grid h3 { margin: 3.2rem 0 .65rem; font-size: var(--text-card-title); }
.service-capability-grid p { margin: 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.72; }
.service-approach { overflow: hidden; background: linear-gradient(125deg, #052d4d, #07547a); color: #fff; }
.service-approach-head { display: grid; margin-bottom: 3rem; grid-template-columns: .65fr 1.2fr .85fr; align-items: end; gap: clamp(1.5rem, 5vw, 5rem); }
.service-approach-head .page-kicker { color: #75dbe8; }
.service-approach-head h2 { max-width: 18ch; margin: 0; color: #fff; }
.service-approach-head > p { max-width: 50ch; margin: 0; color: #b7d0dc; font-size: var(--text-body-small); line-height: 1.72; }
.service-approach-grid { position: relative; grid-template-columns: repeat(4, 1fr); }
.service-approach-grid::before {
  position: absolute;
  top: 2.05rem;
  right: 6%;
  left: 6%;
  height: 1px;
  background: rgba(117,219,232,.42);
  content: "";
}
.service-approach-grid article { position: relative; padding: 0 clamp(.6rem, 1.8vw, 1.5rem); }
.service-approach-grid article > span {
  position: relative;
  z-index: 1;
  display: grid;
  width: 4.1rem;
  height: 4.1rem;
  border: 1px solid rgba(117,219,232,.42);
  border-radius: 50%;
  background: #073f65;
  color: #81e1e7;
  font-size: var(--text-label);
  font-weight: 800;
  place-items: center;
}
.service-approach-grid h3 { margin: 1.4rem 0 .55rem; color: #fff; font-size: var(--text-subtitle); }
.service-approach-grid p { margin: 0; color: #b7d0dc; font-size: var(--text-body-small); line-height: 1.7; }
.service-scope { background: linear-gradient(135deg, #f8fbfd, #eef8fc); }
.service-scope-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.service-scope-panel { padding: clamp(1.7rem, 3.5vw, 3rem); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--shadow-card); }
.service-scope-panel h2 { max-width: 17ch; margin: .9rem 0 1.6rem; font-size: var(--text-subheading); }
.service-scope-panel ul { display: grid; margin: 0; padding: 0; gap: .8rem; list-style: none; }
.service-scope-panel li { display: grid; padding: .8rem 0; border-top: 1px solid var(--border); grid-template-columns: 1.5rem 1fr; align-items: start; gap: .7rem; color: var(--slate-soft); font-size: var(--text-body-small); line-height: 1.55; }
.service-scope-panel li svg { width: 1.15rem; height: 1.15rem; margin-top: .15rem; color: var(--teal); stroke-width: 2.3; }
.service-related { padding: var(--section-y) 0; background: var(--white); }
.service-related-head { display: flex; margin-bottom: 2.2rem; align-items: end; justify-content: space-between; gap: 2rem; }
.service-related-head h2 { max-width: 17ch; margin: .8rem 0 0; }
.service-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.service-related-grid a { display: grid; min-width: 0; min-height: 10rem; padding: 1.5rem; border: 1px solid var(--border); border-radius: var(--radius-md); grid-template-columns: 1fr auto; grid-template-rows: auto 1fr; gap: .7rem 1rem; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.service-related-grid a:hover { border-color: rgba(0,105,180,.3); box-shadow: var(--shadow-card); transform: translateY(-3px); }
.service-related-grid span { grid-column: 1 / -1; color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.service-related-grid strong { align-self: end; color: var(--ink); font-size: var(--text-subtitle); line-height: 1.35; }
.service-related-grid svg { width: 1.1rem; height: 1.1rem; align-self: end; color: var(--primary); }
.service-not-found { width: min(90vw, 720px); margin: 10vh auto; font-family: var(--font); }
.service-not-found a { color: var(--primary); font-weight: 800; }

@media (max-width: 1120px) {
  .service-hero-grid { min-height: 590px; grid-template-columns: 1fr .78fr; gap: 3rem; }
  .service-capability-grid { grid-template-columns: repeat(2, 1fr); }
  .service-capability-grid article { min-height: 15rem; }
}

@media (max-width: 900px) {
  .service-hero-grid,
  .service-overview-grid { grid-template-columns: 1fr; }
  .service-hero-grid { min-height: auto; }
  .service-hero-media { width: min(88%, 520px); margin-inline: auto; justify-self: center; }
  .service-outcome-grid { grid-template-columns: 1fr; }
  .service-approach-head { display: block; }
  .service-approach-head h2 { margin: .8rem 0 1rem; }
  .service-approach-grid { grid-template-columns: repeat(2, 1fr); gap: 2.4rem 1rem; }
  .service-approach-grid::before { display: none; }
  .service-related-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .service-hero-grid { padding-block: 3rem 4rem; gap: 3rem; }
  .service-hero-copy h1 { font-size: clamp(2.2rem, 10vw, 2.8rem); }
  .service-hero-copy > p { font-size: var(--text-body); }
  .service-hero-copy .hero-actions { align-items: stretch; flex-direction: column; }
  .service-hero-copy .button { width: 100%; }
  .service-hero-media { width: calc(100% - 1rem); margin-left: 0; }
  .service-hero-media::before { inset: -.65rem .65rem .65rem -.65rem; }
  .service-hero-media figcaption { right: -1rem; bottom: 1rem; width: 92%; }
  .service-capability-grid,
  .service-approach-grid,
  .service-scope-grid { grid-template-columns: 1fr; }
  .service-capability-grid article { min-height: 0; }
  .service-capability-grid h3 { margin-top: 2rem; }
  .service-approach-grid article { padding: 0; }
  .service-related-head { display: block; }
}

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

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 1.5rem);
}

body {
  margin: 0;
  overflow-x: clip;
  background: var(--white);
  color: var(--text);
  font-family: var(--font);
  font-size: var(--text-body);
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

body.menu-open { overflow: hidden; }

img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

::selection { background: #b9ecf5; color: var(--ink); }

.svg-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.visually-hidden {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  padding: 0;
  border: 0;
  margin: -1px;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.svg-sprite symbol,
svg use { pointer-events: none; }

svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.container { width: var(--container); margin-inline: auto; }

.skip-link {
  position: fixed;
  top: .5rem;
  left: .5rem;
  z-index: 1000;
  padding: .75rem 1rem;
  border-radius: .5rem;
  background: var(--focus);
  color: var(--ink);
  font-weight: 800;
  transform: translateY(-150%);
}

.skip-link:focus { transform: none; }

h1, h2, h3 { margin-top: 0; color: var(--ink); letter-spacing: -.045em; line-height: 1.12; }
h1 { font-size: var(--text-display); }
h2 { font-size: var(--text-heading); }
h3 { font-size: 1.125rem; }
h1 em, h2 em {
  background: var(--grad-text);
  background-clip: text;
  color: transparent;
  font-style: normal;
}

.pill {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  align-items: center;
  gap: .48rem;
  padding: .36rem .78rem;
  border: 1px solid rgba(16, 169, 207, .28);
  border-radius: var(--radius-pill);
  background: linear-gradient(135deg, rgba(230, 245, 251, .9), rgba(236, 251, 248, .78));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), var(--shadow-sm);
  color: var(--primary);
  font-size: var(--text-label);
  font-weight: 800;
  letter-spacing: .1em;
  line-height: 1.25;
  text-transform: uppercase;
}

.pill i {
  width: .42rem;
  height: .42rem;
  border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 0 4px rgba(15, 159, 135, .1);
}

.button {
  display: inline-flex;
  min-height: 2.8rem;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  padding: .72rem 1.15rem;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-size: var(--text-ui);
  font-weight: 800;
  line-height: 1.2;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}

.button svg { width: 1rem; height: 1rem; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--grad-brand); color: var(--white); box-shadow: 0 12px 24px -14px rgba(0, 105, 180, .75); }
.button-primary:hover { background: linear-gradient(135deg, #0078c9, #064a7f); box-shadow: 0 16px 28px -15px rgba(0, 105, 180, .85); }
.button-outline { border-color: rgba(0, 105, 180, .35); background: rgba(255, 255, 255, .82); color: var(--primary); }
.button-outline:hover { border-color: var(--primary); background: var(--tint); }
.button-large { min-height: 3.25rem; padding-inline: 1.45rem; }

.text-link {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: var(--primary);
  font-size: var(--text-ui);
  font-weight: 800;
}

.text-link svg { width: 1rem; height: 1rem; transition: transform .18s ease; }
.text-link:hover svg { transform: translateX(3px); }

.topbar { background: var(--deepest); color: #d5e7f2; }
.topbar-inner {
  display: grid;
  min-height: 34px;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  font-size: .75rem;
}

.topbar-contact { display: flex; align-items: center; gap: 1.15rem; }
.topbar-contact a { display: inline-flex; align-items: center; gap: .38rem; }
.topbar-contact a:hover { color: var(--white); }
.topbar-contact svg { width: .75rem; height: .75rem; color: var(--sky); }
.topbar-inner p { margin: 0; color: #a8c9da; font-weight: 600; }
.topbar-social { display: flex; justify-self: end; align-items: center; gap: .3rem; }
.topbar-social > span { display: grid; width: 1.65rem; height: 1.65rem; border: 1px solid rgba(141,178,197,.2); border-radius: 50%; place-items: center; color: #8db2c5; }
.topbar-social svg { width: .82rem; height: .82rem; stroke-width: 1.7; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  min-height: var(--header-height);
  border-bottom: 1px solid rgba(220, 230, 235, .8);
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(14px);
  transition: box-shadow .2s ease;
}

.site-header.scrolled { box-shadow: 0 10px 24px -22px rgba(15, 23, 42, .65); }

.header-inner {
  display: grid;
  min-height: var(--header-height);
  grid-template-columns: minmax(215px, .85fr) auto minmax(160px, .85fr);
  align-items: center;
  gap: 1.25rem;
}

.brand { display: inline-flex; width: max-content; align-items: center; }
.brand img { width: clamp(205px, 17vw, 260px); height: auto; }

.desktop-nav { display: flex; align-items: center; justify-content: center; gap: .05rem; }
.desktop-nav a {
  position: relative;
  padding: .75rem .62rem;
  color: var(--ink);
  font-size: .775rem;
  font-weight: 700;
  white-space: nowrap;
}

.desktop-nav a::after {
  position: absolute;
  right: .62rem;
  bottom: .42rem;
  left: .62rem;
  height: 2px;
  border-radius: 2px;
  background: var(--grad-text);
  content: "";
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .18s ease;
}

.desktop-nav a:hover, .desktop-nav a.active { color: var(--primary); }
.desktop-nav a:hover::after, .desktop-nav a.active::after { transform: scaleX(1); }
.header-actions { display: flex; justify-self: end; align-items: center; gap: .65rem; }
.header-demo { min-height: 2.65rem; padding-inline: 1rem; font-size: .775rem; }
.menu-button { display: none; }

.mobile-backdrop, .mobile-menu { display: none; }

.hero {
  position: relative;
  overflow: hidden;
  padding: clamp(3.25rem, 6svh, 4.5rem) 0;
  background:
    radial-gradient(760px 420px at 90% -8%, #dff3fc 0%, transparent 62%),
    radial-gradient(620px 390px at -10% 110%, #e7faf6 0%, transparent 56%),
    var(--white);
}

.hero::after {
  position: absolute;
  top: 20%;
  right: 2.5%;
  width: 26rem;
  height: 26rem;
  border: 1px solid rgba(16, 169, 207, .08);
  border-radius: 50%;
  content: "";
}

.hero-orb { position: absolute; border-radius: 50%; filter: blur(80px); pointer-events: none; }
.orb-one { top: 12%; left: 42%; width: 12rem; height: 12rem; background: rgba(16, 169, 207, .12); }
.orb-two { right: 6%; bottom: 4%; width: 10rem; height: 10rem; background: rgba(15, 159, 135, .1); }

.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: clamp(3rem, 5vw, 5.5rem); }
.hero-grid > * { min-width: 0; }
.hero-copy h1 { max-width: 14ch; margin: 1.1rem 0 1rem; font-weight: 800; }
.hero-copy > p { max-width: 640px; margin: 0; color: var(--muted); font-size: var(--text-lead); }
.hero-actions { display: flex; margin-top: 1.7rem; flex-wrap: wrap; gap: .75rem; }
.micro-proof { display: flex; margin-top: 1rem; flex-wrap: wrap; gap: .5rem; }
.micro-proof span {
  display: inline-flex;
  align-items: center;
  gap: .36rem;
  padding: .36rem .7rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, .88);
  box-shadow: var(--shadow-sm);
  color: var(--text);
  font-size: .75rem;
  font-weight: 700;
}
.micro-proof svg { width: .8rem; height: .8rem; color: var(--teal); stroke-width: 2.6; }

.hero-media {
  position: relative;
  width: min(100%, 430px);
  margin: 0;
  padding: 0 0 1.15rem 1.15rem;
  justify-self: end;
}

.hero-media::before {
  position: absolute;
  inset: 1.15rem 1.15rem 0 0;
  border-radius: 1.5rem;
  background: linear-gradient(145deg, rgba(0,105,180,.16), rgba(15,159,135,.2));
  content: "";
}

.hero-media-frame {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid rgba(0,105,180,.16);
  border-radius: 1.5rem;
  background: var(--deepest);
  box-shadow: var(--shadow-pop);
}

.hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-media figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  width: min(84%, 360px);
  padding: 1rem 1.15rem;
  border: 1px solid var(--border);
  border-radius: 1rem 0 1rem 0;
  background: rgba(255,255,255,.96);
  box-shadow: var(--shadow-pop);
}

.hero-media figcaption span,
.approach-media figcaption span { display: block; color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.hero-media figcaption strong,
.approach-media figcaption strong { display: block; margin-top: .3rem; color: var(--ink); font-size: .82rem; line-height: 1.4; }

.corporate-proof { padding: 2.25rem 0 1.5rem; border-block: 1px solid var(--border); background: var(--soft); }
.corporate-proof-head { display: grid; max-width: 680px; margin-bottom: 1.25rem; justify-items: start; gap: .45rem; }
.corporate-proof-head > span { color: var(--primary); font-size: var(--text-label); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.corporate-proof-head h2 { max-width: 34ch; margin: 0; font-size: clamp(1.35rem, 2vw, 1.7rem); line-height: 1.18; letter-spacing: -.03em; }
.corporate-proof-logos { display: grid; border: 1px solid var(--border); background: var(--white); grid-template-columns: .85fr .85fr 1.5fr 1fr; }
.corporate-proof-logos figure { display: grid; min-width: 0; min-height: 112px; margin: 0; padding: .8rem 1rem; border-right: 1px solid var(--border); place-items: center; grid-template-rows: 58px auto; gap: .45rem; }
.corporate-proof-logos figure:last-child { border-right: 0; }
.corporate-proof-logos img { width: 100%; height: 58px; object-fit: contain; }
.corporate-proof-logos figcaption { color: var(--muted); font-size: var(--text-micro); font-weight: 700; text-align: center; }

.section { padding: var(--section-y) 0; }
.intro { position: relative; overflow: hidden; padding-block: clamp(4.5rem, 6vw, 6rem); background: var(--deepest); color: var(--white); }
.intro::before { position: absolute; top: -16rem; right: -10rem; width: 38rem; height: 38rem; border-radius: 50%; background: radial-gradient(circle, rgba(16, 169, 207, .2), rgba(16, 169, 207, 0) 68%); content: ""; pointer-events: none; }
.intro-grid { position: relative; display: grid; grid-template-columns: .82fr 1.18fr; align-items: start; column-gap: clamp(2.5rem, 7vw, 7rem); row-gap: 0; }
.intro-grid > *, .pam-grid > *, .contact-wrap > * { min-width: 0; }
.intro-heading .pill { border-color: rgba(122, 220, 240, .28); background: rgba(255, 255, 255, .07); box-shadow: none; color: #8ee3f2; }
.intro-heading h2 { max-width: 14ch; margin: 1rem 0 0; color: var(--white); font-weight: 800; }
.intro-heading h2 em { background: linear-gradient(120deg, #72d8ef, #70e0c8); background-clip: text; color: transparent; }
.intro-copy { max-width: 590px; padding-top: .25rem; }
.intro-copy p { max-width: 52ch; margin: 0 0 .9rem; color: #a9c4d2; }
.intro-copy .intro-lead { margin-bottom: 1rem; color: #e0edf3; font-size: clamp(1.05rem, 1.35vw, 1.22rem); font-weight: 500; line-height: 1.6; }
.intro-copy .text-link { margin-top: .65rem; color: #7adcf0; }
.integration-points { display: grid; margin: clamp(2.5rem, 5vw, 4rem) 0 0; padding: 0; border-block: 1px solid rgba(255, 255, 255, .14); grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); list-style: none; }
.integration-points li { display: grid; min-width: 0; padding: 1.5rem clamp(1.25rem, 2.5vw, 2rem); border-right: 1px solid rgba(255, 255, 255, .14); grid-template-columns: auto 1fr; align-items: start; gap: 1rem; }
.integration-points li:first-child { padding-left: 0; }
.integration-points li:last-child { padding-right: 0; border-right: 0; }
.integration-points strong { display: block; margin: -.15rem 0 .35rem; color: var(--white); font-size: .95rem; }
.integration-points small { display: block; color: #96b5c5; font-size: .76rem; line-height: 1.55; }

.solutions { background: var(--soft); }
.section-head { max-width: 720px; margin: 0 auto clamp(2.8rem, 5vw, 4.5rem); text-align: center; }
.section-head .pill { margin-inline: auto; }
.section-head h2 { margin: 1rem 0 .7rem; font-weight: 800; }
.section-head p { max-width: 650px; margin: 0 auto; color: var(--muted); }

.solution-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.1rem; }
.solution-card {
  position: relative;
  display: grid;
  min-height: 325px;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border: 1px solid var(--border);
  border-top: 3px solid var(--primary);
  border-radius: .35rem;
  background: var(--white);
  box-shadow: var(--shadow-sm);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.solution-card:hover { border-color: rgba(0, 105, 180, .3); box-shadow: var(--shadow-card); transform: translateY(-3px); }
.solution-card.featured { background: linear-gradient(150deg, #fff, #f1f9fd 65%, #edfafa); }
.service-icon { display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid rgba(0, 105, 180, .16); border-radius: .85rem; background: var(--tint); color: var(--primary); }
.service-icon.sky { background: #e9f8fc; color: var(--sky); }
.service-icon.teal { background: #e9faf6; color: var(--teal); }
.service-icon.amber { background: #fff6e7; color: var(--amber); }
.service-icon svg { width: 1.4rem; height: 1.4rem; }
.card-label { position: absolute; top: 2rem; right: 2rem; padding: .3rem .65rem; border: 1px solid rgba(0, 105, 180, .18); border-radius: var(--radius-pill); background: rgba(255,255,255,.85); color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.solution-card h3 { margin: 1.2rem 0 .55rem; font-size: var(--text-card-title); font-weight: 800; }
.solution-card > p { margin: 0; color: var(--muted); font-size: var(--text-body-small); }
.solution-card ul { display: grid; margin: 1.1rem 0 1.25rem; padding: 0; gap: .45rem; list-style: none; }
.solution-card li { position: relative; padding-left: 1rem; color: #526473; font-size: .72rem; font-weight: 700; }
.solution-card li::before { position: absolute; top: .58em; left: 0; width: .35rem; height: .35rem; border-radius: 50%; background: var(--sky); content: ""; }
.solution-card > a { display: inline-flex; width: max-content; align-items: center; align-self: end; gap: .45rem; color: var(--primary); font-size: var(--text-ui); font-weight: 800; }
.solution-card > a svg { width: .9rem; height: .9rem; transition: transform .18s ease; }
.solution-card > a:hover svg { transform: translateX(3px); }

.pam { overflow: hidden; background: var(--white); }
.pam-grid { display: grid; grid-template-columns: .82fr 1.18fr; align-items: center; gap: clamp(3rem, 6vw, 6rem); }
.pam-copy h2 { max-width: 14ch; margin: 1rem 0 .9rem; font-weight: 800; }
.pam-copy > p { max-width: 46ch; margin: 0; color: var(--muted); }
.pam-control-list { margin: 1.45rem 0 0; padding: 0; border-top: 1px solid var(--border); list-style: none; }
.pam-control-list li { display: grid; padding: .9rem 0; border-bottom: 1px solid var(--border); grid-template-columns: 2rem 1fr; align-items: start; gap: .75rem; }
.pam-control-list strong { display: block; margin-bottom: .2rem; color: var(--ink); font-size: .9rem; }
.pam-control-list small { display: block; color: var(--muted); font-size: .76rem; line-height: 1.55; }
.pam-actions { display: flex; margin-top: 1.7rem; align-items: center; flex-wrap: wrap; gap: 1rem; }
.pam-actions > span { max-width: 24ch; color: var(--muted); font-size: var(--text-micro); font-weight: 700; line-height: 1.5; text-transform: uppercase; }

.pam-visual { position: relative; min-height: 480px; padding: 2rem; }
.pam-visual::before { position: absolute; inset: 0; border-radius: 42% 58% 61% 39% / 46% 40% 60% 54%; background: var(--grad-soft); content: ""; }
.pam-frame { position: relative; z-index: 1; overflow: hidden; border: 1px solid rgba(0, 105, 180, .18); border-radius: 1.2rem; background: rgba(255,255,255,.96); box-shadow: var(--shadow-pop); }
.pam-frame-head { display: grid; min-height: 3rem; padding: 0 1rem; border-bottom: 1px solid var(--border); background: var(--soft); grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; }
.pam-frame-head > div { display: flex; gap: .32rem; }
.pam-frame-head i { width: .45rem; height: .45rem; border-radius: 50%; background: #cbd5e1; }
.pam-frame-head span { color: var(--muted); font-size: var(--text-micro); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.pam-frame-head b { justify-self: end; padding: .25rem .52rem; border-radius: var(--radius-pill); background: #e7f8f4; color: #087762; font-size: var(--text-micro); text-transform: uppercase; }
.pam-frame-body { display: grid; min-height: 275px; padding: 2rem 1.25rem; grid-template-columns: 1fr .65fr 1fr .65fr 1fr; align-items: center; background: linear-gradient(rgba(0,105,180,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(0,105,180,.035) 1px, transparent 1px); background-size: 36px 36px; }
.pam-person, .pam-target { display: flex; align-items: center; flex-direction: column; text-align: center; }
.pam-person > span, .pam-target > span { display: grid; width: 3.5rem; height: 3.5rem; place-items: center; border: 1px solid rgba(0,105,180,.18); border-radius: 50%; background: var(--white); color: var(--primary); box-shadow: var(--shadow-card); }
.pam-person svg, .pam-target svg { width: 1.5rem; height: 1.5rem; }
.pam-frame-body strong { margin-top: .65rem; color: var(--ink); font-size: .7rem; }
.pam-frame-body small { color: var(--muted); font-size: var(--text-micro); }
.flow-arrow { display: flex; align-items: center; flex-direction: column; gap: .35rem; }
.flow-arrow i { position: relative; width: 100%; height: 1px; background: var(--sky); }
.flow-arrow i::after { position: absolute; top: -3px; right: 0; width: .4rem; height: .4rem; border-top: 1px solid var(--sky); border-right: 1px solid var(--sky); content: ""; transform: rotate(45deg); }
.flow-arrow b { color: var(--muted); font-size: var(--text-micro); text-transform: uppercase; }
.pam-gate { display: flex; min-height: 135px; align-items: center; justify-content: center; flex-direction: column; border: 1px solid rgba(0,105,180,.22); border-radius: 1rem; background: linear-gradient(150deg, #fff, var(--tint)); box-shadow: var(--shadow-card); text-align: center; }
.pam-gate svg { width: 2.2rem; height: 2.2rem; color: var(--primary); }
.pam-monitor { display: flex; min-height: 4.5rem; align-items: center; gap: .75rem; padding: .85rem 1rem; border-top: 1px solid var(--border); background: var(--soft); }
.pam-monitor > span { display: grid; width: 2.2rem; height: 2.2rem; place-items: center; border-radius: .65rem; background: var(--tint); color: var(--primary); }
.pam-monitor svg { width: 1.1rem; height: 1.1rem; }
.pam-monitor p { margin: 0; line-height: 1.4; }
.pam-monitor strong { display: block; color: var(--ink); font-size: .72rem; }
.pam-monitor small { color: var(--muted); font-size: var(--text-micro); }
.status-dot { width: .55rem; height: .55rem; margin-left: auto; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 5px rgba(15,159,135,.1); }

.approach { background: var(--soft); }
.approach-layout { display: grid; grid-template-columns: .92fr 1.08fr; align-items: stretch; gap: clamp(2rem, 5vw, 5rem); }
.approach-media { position: relative; min-height: 500px; margin: 0; overflow: hidden; border-radius: 1.3rem; background: var(--deepest); box-shadow: var(--shadow-card); }
.approach-media img { width: 100%; height: 100%; object-fit: cover; object-position: 58% center; }
.approach-media::after { position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(7,27,45,.82)); content: ""; }
.approach-media figcaption { position: absolute; right: 1.25rem; bottom: 1.25rem; left: 1.25rem; z-index: 1; }
.approach-media figcaption span { color: #7adcf0; }
.approach-media figcaption strong { max-width: 30ch; color: var(--white); font-size: 1rem; }
.process-grid { display: grid; margin: 0; padding: 0; border-top: 1px solid var(--border); grid-template-columns: 1fr; list-style: none; }
.process-grid li { display: grid; padding: 1.35rem 0; border-bottom: 1px solid var(--border); grid-template-columns: 2.6rem 1fr; align-items: start; gap: 1rem; }
.process-grid h3 { margin: 0 0 .4rem; font-weight: 800; }
.process-grid p { margin: 0; color: var(--muted); font-size: var(--text-body-small); }

.industries { background: var(--white); }
.industry-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .85rem; }
.industry-card { display: grid; min-height: 92px; padding: .95rem 1rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); box-shadow: var(--shadow-sm); grid-template-columns: auto 1fr auto; align-items: center; gap: .8rem; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.industry-card:hover { border-color: rgba(0,105,180,.3); box-shadow: var(--shadow-card); transform: translateY(-3px); }
.industry-card > span { display: grid; width: 2.8rem; height: 2.8rem; place-items: center; border-radius: .8rem; background: var(--tint); color: var(--primary); }
.industry-card > span svg { width: 1.35rem; height: 1.35rem; }
.industry-card p { margin: 0; line-height: 1.35; }
.industry-card strong { display: block; color: var(--ink); font-size: var(--text-ui); }
.industry-card small { display: block; margin-top: .18rem; color: var(--muted); font-size: var(--text-micro); }
.industry-arrow { width: .95rem; height: .95rem; color: var(--primary); transition: transform .18s ease; }
.industry-card:hover .industry-arrow { transform: translateX(3px); }

.proof { position: relative; overflow: hidden; background: linear-gradient(180deg, #eff8fd, #fff); }
.proof-glow { position: absolute; top: -8rem; left: -5rem; width: 24rem; height: 24rem; border-radius: 50%; background: rgba(16,169,207,.15); filter: blur(110px); }
.proof .container { position: relative; }
.proof-heading { max-width: 790px; margin-bottom: 2.5rem; }
.proof-heading h2 { margin: 1rem 0 .8rem; font-weight: 800; }
.proof-heading > p { margin: 0; color: var(--muted); }
.ecosystem-block { display: grid; border-block: 1px solid rgba(0,105,180,.2); background: rgba(255,255,255,.74); grid-template-columns: .72fr 1.28fr; }
.ecosystem-copy { padding: 2rem; border-right: 1px solid var(--border); }
.ecosystem-copy > span,
.certification-head span { color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.proof-section-label { display: inline-flex; align-items: center; gap: .5rem; }
.proof-section-label svg { width: 1rem; height: 1rem; flex: 0 0 auto; stroke-width: 2; }
.ecosystem-copy h3 { margin: .45rem 0 .55rem; font-size: 1.35rem; font-weight: 800; }
.ecosystem-copy p { margin: 0; color: var(--muted); font-size: var(--text-body-small); }
.partner-matrix { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(4, 1fr); list-style: none; }
.partner-matrix li { display: flex; min-height: 88px; padding: 1rem; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); align-items: center; justify-content: center; text-align: center; }
.partner-matrix img { width: min(100%, 128px); height: 38px; object-fit: contain; opacity: .78; transition: opacity .18s ease, transform .18s ease; }
.partner-matrix li:hover img { opacity: 1; transform: scale(1.035); }
.partner-matrix li:nth-child(4n) { border-right: 0; }
.partner-matrix li:nth-last-child(-n+4) { border-bottom: 0; }
.credentials-proof { overflow: hidden; border-top: 1px solid rgba(0,105,180,.1); background: linear-gradient(180deg, #f8fbfd, #fff); }
.certification-block { margin-top: 1.75rem; }
.credentials-proof .certification-block { margin-top: 0; }
.certification-head { margin-bottom: 1rem; }
.certification-head > div { display: grid; max-width: 680px; justify-items: start; gap: .4rem; }
.certification-head h2 { max-width: 38ch; margin: 0; font-size: clamp(1.25rem, 1.8vw, 1.5rem); line-height: 1.2; font-weight: 800; letter-spacing: -.025em; }
.certification-marquee { position: relative; display: grid; gap: .5rem; }
.cert-marquee-row { overflow-x: auto; scrollbar-width: none; mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.cert-marquee-row::-webkit-scrollbar { display: none; }
.cert-marquee-row.is-ready { overflow: hidden; }
.cert-marquee-track { display: flex; width: max-content; }
.cert-marquee-set { display: flex; padding-right: .5rem; gap: .5rem; }
.cert-marquee-row.is-ready .cert-marquee-track { animation: certification-scroll 52s linear infinite; }
.cert-marquee-row.reverse.is-ready .cert-marquee-track { animation-duration: 58s; animation-direction: reverse; }
.certification-marquee:hover .cert-marquee-track { animation-play-state: paused; }
.cert-marquee-set figure { position: relative; display: grid; width: 140px; min-height: 84px; margin: 0; padding: .65rem .8rem; border: 1px solid var(--border); border-radius: .25rem; background: rgba(255, 255, 255, .86); place-items: center; }
.cert-marquee-set img { width: 100%; height: 58px; object-fit: contain; }
.cert-marquee-set figcaption { position: absolute; overflow: hidden; width: 1px; height: 1px; padding: 0; border: 0; margin: -1px; clip: rect(0, 0, 0, 0); white-space: nowrap; }

@keyframes certification-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.contact { padding-block: clamp(3.5rem, 5vw, 5.25rem); background: var(--deepest); color: var(--white); }
.contact-wrap { display: grid; padding: clamp(1.35rem, 2.4vw, 2rem); border: 1px solid rgba(255,255,255,.11); border-radius: 1.35rem; background: linear-gradient(135deg, rgba(0,105,180,.42), rgba(6,58,104,.34) 52%, rgba(15,159,135,.17)); grid-template-columns: 1fr .9fr; align-items: center; gap: clamp(2.5rem, 5vw, 4.75rem); box-shadow: 0 28px 60px -32px rgba(0,0,0,.6); }
.pill-light { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.1); color: #dff4fb; box-shadow: none; }
.contact-info { padding: clamp(.35rem, 1.4vw, 1rem); }
.contact-info h2 { max-width: 14ch; margin: .8rem 0 .75rem; color: var(--white); font-size: clamp(2.05rem, 3vw, 2.85rem); font-weight: 800; }
.contact-info h2 em { background: linear-gradient(120deg, #7adcf0, #7ce0ca); background-clip: text; color: transparent; }
.contact-info > p { max-width: 50ch; margin: 0; color: #bed4df; font-size: var(--text-body-small); }
.direct-contact { display: grid; margin-top: 1.15rem; grid-template-columns: repeat(2, 1fr); gap: .65rem; }
.direct-contact a { display: flex; min-height: 3.5rem; align-items: center; gap: .65rem; padding: .65rem .75rem; border: 1px solid rgba(255,255,255,.13); border-radius: .7rem; background: rgba(255,255,255,.06); }
.direct-contact a:hover { background: rgba(255,255,255,.1); }
.direct-contact > a > svg { width: 1.15rem; height: 1.15rem; color: #7adcf0; }
.direct-contact p { margin: 0; line-height: 1.3; }
.direct-contact small { display: block; color: #93b2c3; font-size: var(--text-micro); font-weight: 700; text-transform: uppercase; }
.direct-contact strong { display: block; color: var(--white); font-size: .75rem; }

.contact-form { padding: clamp(1.25rem, 2.2vw, 1.7rem); border: 1px solid rgba(255,255,255,.14); border-radius: 1rem; background: var(--white); box-shadow: var(--shadow-pop); color: var(--text); }
.form-head { display: flex; margin-bottom: .9rem; padding-bottom: .75rem; border-bottom: 1px solid var(--border); align-items: flex-start; justify-content: space-between; gap: 1rem; }
.form-head span { color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.form-head h3 { margin: .2rem 0 0; font-weight: 800; }
.field-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .65rem .75rem; }
.contact-form label { display: grid; margin: 0; align-content: start; gap: .3rem; color: var(--ink); font-size: var(--text-label); font-weight: 800; letter-spacing: .03em; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; min-height: 2.75rem; padding: .68rem .78rem; border: 1px solid var(--border); border-radius: .65rem; background: var(--soft); color: var(--ink); font-size: var(--text-body-small); outline: none; }
.contact-form textarea { min-height: 4rem; resize: vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--primary); background: var(--white); box-shadow: 0 0 0 3px rgba(0,105,180,.1); }
.form-submit { width: 100%; margin-top: .8rem; border: 0; }
.form-note, .form-status { margin: .65rem 0 0; color: var(--muted); font-size: var(--text-micro); text-align: center; }
.form-status { min-height: 1.2em; color: #087762; font-weight: 700; }

.site-footer { position: relative; overflow: hidden; padding: 4rem 0 0; background: radial-gradient(circle at 8% 8%, rgba(0,105,180,.17), transparent 28rem), linear-gradient(180deg, #071d31, #041522); color: #a7becb; }
.site-footer::before { position: absolute; top: 0; right: 0; left: 0; height: 2px; background: linear-gradient(90deg, var(--primary), var(--cyan), var(--teal)); content: ""; }
.site-footer .container { position: relative; }
.footer-grid { display: grid; padding-bottom: 2.75rem; grid-template-columns: 1.35fr .8fr .7fr 1.1fr; align-items: start; gap: clamp(2rem, 4.5vw, 4.5rem); }
.footer-brandmark { display: inline-flex; width: min(100%, 255px); padding: .7rem .9rem; border: 1px solid rgba(255,255,255,.13); border-radius: .4rem; background: #fff; }
.footer-brandmark img { width: 100%; height: auto; }
.footer-brand > p { max-width: 360px; margin: 1.25rem 0 1rem; color: #9eb7c4; font-size: var(--text-body-small); line-height: 1.75; }
.footer-location { display: inline-flex; align-items: center; gap: .5rem; color: #72cfe1; font-size: var(--text-label); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.footer-location svg { width: 1rem; height: 1rem; }
.footer-grid h2 { margin: .2rem 0 1.05rem; color: var(--white); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.footer-nav a { display: flex; min-height: 2.35rem; border-bottom: 1px solid rgba(255,255,255,.07); align-items: center; justify-content: space-between; color: #9eb7c4; font-size: .8rem; line-height: 1.45; }
.footer-nav a::after { margin-left: .75rem; color: #4e8299; content: "→"; transition: color .18s ease, transform .18s ease; }
.footer-nav a:hover { color: #78d6e8; }
.footer-nav a:hover::after { color: #78d6e8; transform: translateX(.2rem); }
.footer-reach { min-width: 0; }
.footer-contact-link { display: grid; min-height: 3.25rem; padding: .5rem 0; border-bottom: 1px solid rgba(255,255,255,.08); align-items: center; grid-template-columns: 2rem minmax(0, 1fr); gap: .65rem; }
.footer-contact-link > span { display: grid; width: 2rem; height: 2rem; border: 1px solid rgba(117,215,234,.2); border-radius: 50%; place-items: center; color: #78d6e8; }
.footer-contact-link svg { width: .95rem; height: .95rem; }
.footer-contact-link p { min-width: 0; margin: 0; }
.footer-contact-link small { display: block; color: #648da1; font-size: var(--text-label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.footer-contact-link strong { display: block; overflow: hidden; color: #dcecf3; font-size: .8rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.footer-contact-link:hover strong { color: #78d6e8; }
.footer-presence { display: grid; padding: 1.5rem 0; border-top: 1px solid rgba(255,255,255,.09); grid-template-columns: .9fr 1.5fr .8fr; align-items: center; gap: 2rem; }
.footer-presence > * + * { padding-left: 2rem; border-left: 1px solid rgba(255,255,255,.09); }
.footer-presence-intro span, .footer-presence small { display: block; color: #72cfe1; font-size: var(--text-micro); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.footer-presence-intro strong { display: block; max-width: 23ch; margin-top: .35rem; color: var(--white); font-size: .95rem; line-height: 1.35; }
.footer-headquarters { margin: 0; font-style: normal; }
.footer-headquarters strong { display: block; margin: .35rem 0 .25rem; color: #dcecf3; font-size: .84rem; }
.footer-headquarters span { display: block; max-width: 58ch; color: #849fac; font-size: .73rem; line-height: 1.6; }
.footer-hubs ul { display: flex; margin: .6rem 0 0; padding: 0; flex-wrap: wrap; gap: .35rem .7rem; list-style: none; }
.footer-hubs li { color: #dcecf3; font-size: .78rem; font-weight: 700; }
.footer-hubs li + li::before { margin-right: .7rem; color: #4e8299; content: "•"; }
.footer-bottom { display: flex; min-height: 5rem; border-top: 1px solid rgba(255,255,255,.09); align-items: center; justify-content: space-between; gap: 2rem; }
.footer-bottom p, .footer-bottom-meta { margin: 0; color: #718e9d; font-size: var(--text-label); }
.footer-bottom-meta { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .55rem; text-align: right; }
.footer-bottom-meta a { color: #b9d6e2; font-weight: 700; }
.footer-bottom-meta a:hover { color: #78d6e8; }
.footer-bottom-meta b { font-size: .72rem; font-weight: 700; }

@media (min-width: 901px) {
  .hero {
    display: grid;
    min-height: calc(100svh - var(--header-height) - 34px);
    align-items: center;
  }
}

@media (min-width: 901px) and (max-height: 760px) {
  .hero {
    min-height: auto;
    padding-block: 2.5rem;
  }

  .hero-copy h1 { font-size: clamp(2.55rem, 3.2vw, 3.2rem); }
  .hero-actions { margin-top: 1.25rem; }
}

.reveal { opacity: 1; transform: none; }
.js .reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1120px) {
  :root { --container: min(92vw, 960px); }
  .desktop-nav, .header-demo { display: none; }
  .header-inner { grid-template-columns: 1fr auto; }
  /* icon-only trigger: no chrome, but a full 44px hit area */
  .menu-button { display: inline-grid; width: 2.75rem; height: 2.75rem; padding: 0; border: 0; border-radius: var(--radius-sm); background: none; color: var(--ink); cursor: pointer; place-items: center; transition: background .18s ease, color .18s ease; }
  .menu-button:active { background: var(--tint); color: var(--primary); }
  .menu-button svg { width: 1.5rem; height: 1.5rem; stroke-width: 2; }
  .mobile-backdrop { position: fixed; inset: 0; z-index: 190; display: block; background: rgba(7,27,45,.45); opacity: 0; visibility: hidden; transition: .25s ease; }
  .mobile-backdrop.open { opacity: 1; visibility: visible; }
  .mobile-menu { position: fixed; top: 0; right: 0; z-index: 200; display: none; width: min(92vw, 440px); height: 100dvh; background: var(--white); box-shadow: -20px 0 50px -30px rgba(15,23,42,.5); flex-direction: column; }
  .mobile-menu.open { display: flex; }
  .mobile-menu:focus { outline: none; }
  .mobile-menu-head { display: flex; min-height: 76px; padding: 0 1.2rem; border-bottom: 1px solid var(--border); align-items: center; justify-content: space-between; }
  .mobile-menu-head img { width: 210px; height: auto; }
  .mobile-menu-head button { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 0; border-radius: 50%; background: var(--soft); color: var(--ink); cursor: pointer; transition: background .18s ease, color .18s ease; }
  .mobile-menu-head button:active { background: var(--tint); color: var(--primary); }
  .mobile-menu-head svg { width: 1rem; height: 1rem; }
  .mobile-quick { display: grid; padding: 1rem 1.2rem; border-bottom: 1px solid var(--border); grid-template-columns: 1fr; gap: .6rem; }
  .mobile-quick a { display: inline-flex; min-height: 2.95rem; align-items: center; justify-content: center; gap: .45rem; border: 1px solid rgba(0,105,180,.2); border-radius: .7rem; background: var(--tint); color: var(--primary); font-size: var(--text-label); font-weight: 800; }
  .mobile-quick svg { width: .95rem; height: .95rem; }
  .mobile-menu nav { overflow-y: auto; padding: 1.1rem 1.2rem; }
  .mobile-menu nav > span { display: block; margin: 0 0 .5rem; color: var(--muted); font-size: var(--text-micro); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
  .mobile-menu nav a { display: grid; min-height: 3.1rem; padding: .8rem 0; border-bottom: 1px solid var(--border); grid-template-columns: 2rem 1fr; align-items: center; color: var(--ink); font-size: var(--text-ui); font-weight: 800; }
  .mobile-menu nav b { color: var(--primary); font-size: var(--text-micro); }
  .mobile-menu-foot { margin-top: auto; padding: 1rem 1.2rem; border-top: 1px solid var(--border); }
  .mobile-menu-foot .button { width: 100%; }
  .hero-grid { gap: 3.5rem; }
}

@media (max-width: 900px) {
  :root {
    --text-micro: .6875rem;
    --text-label: .75rem;
    --text-label-lg: .8125rem;
  }

  .topbar-inner { grid-template-columns: 1fr auto; }
  .topbar-inner p { display: none; }
  .hero-grid, .pam-grid, .contact-wrap { grid-template-columns: 1fr; }
  .hero-copy { max-width: 760px; }
  .hero-copy h1 { max-width: 14ch; }
  .hero-media { width: min(100%, 520px); margin-inline: auto; justify-self: center; }
  .corporate-proof-head { gap: .4rem; }
  .corporate-proof-logos { grid-template-columns: repeat(2, 1fr); }
  .corporate-proof-logos figure:nth-child(2) { border-right: 0; }
  .corporate-proof-logos figure:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
  .intro-grid { grid-template-columns: 1fr; gap: 2rem; }
  .intro-heading h2 { max-width: 15ch; }
  .integration-points { margin-top: .5rem; grid-template-columns: 1fr; }
  .integration-points li { padding: 1.25rem 0; border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }
  .integration-points li:last-child { border-bottom: 0; }
  .pam-copy h2 { max-width: 15ch; }
  .pam-visual { width: min(100%, 680px); margin-inline: auto; }
  .approach-layout { grid-template-columns: 1fr; }
  .approach-media { min-height: 420px; }
  .industry-grid { grid-template-columns: repeat(2, 1fr); }
  .ecosystem-block { grid-template-columns: 1fr; }
  .ecosystem-copy { border-right: 0; border-bottom: 1px solid var(--border); }
  .contact-wrap { padding: 2rem; }
  .contact-info { padding: .5rem; }
  .contact-form { width: min(100%, 640px); margin-inline: auto; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-brand { grid-column: 1 / -1; }
  .footer-reach { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
  .footer-reach h2 { grid-column: 1 / -1; }
  .footer-presence { grid-template-columns: 1fr 1.45fr; }
  .footer-presence-intro { grid-column: 1 / -1; }
  .footer-presence > * + * { padding-left: 0; border-left: 0; }
  .footer-hubs { padding-left: 2rem !important; border-left: 1px solid rgba(255,255,255,.09) !important; }
}

@media (max-width: 640px) {
  /* tap targets: give small inline controls a 44px-high hit area on touch */
  .topbar-contact a { min-height: 2.75rem; align-items: center; }
  .text-link { min-height: 2.75rem; align-items: center; }
  .footer-bottom-meta a { display: inline-flex; min-height: 2.75rem; align-items: center; }
  .footer-nav a, .direct-contact-list a, .conversation-routes a { min-height: 2.9rem; }
  .solution-card > a { min-height: 2.75rem; align-items: center; }
  .brand { min-height: 2.75rem; align-items: center; }

  :root { --container: 88vw; --section-y: 3.75rem; --header-height: 68px; }
  .pill {
    max-width: 100%;
    padding: .46rem .68rem;
    gap: .4rem;
    font-size: var(--text-micro);
    letter-spacing: .075em;
    line-height: 1;
    white-space: nowrap;
  }
  .pill i { width: .36rem; height: .36rem; flex: 0 0 auto; }
  .topbar-contact a:last-child { display: none; }
  .brand img { width: 190px; }
  .hero { padding-block: 2.8rem 3.2rem; }
  .hero-grid { gap: 2.75rem; }
  .hero-copy h1 { font-size: clamp(2.15rem, 9.2vw, 2.65rem); }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .button { width: 100%; }
  .micro-proof {
    display: grid;
    width: 100%;
    margin-top: 1.05rem;
    border-top: 1px solid var(--border);
    grid-template-columns: 1fr;
    gap: 0;
  }
  .micro-proof span {
    width: 100%;
    min-height: 2.6rem;
    padding: .55rem .15rem;
    border: 0;
    border-bottom: 1px solid var(--border);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    justify-content: flex-start;
  }
  .micro-proof svg { width: .9rem; height: .9rem; }
  .proof-heading { max-width: 34rem; margin-bottom: 1.35rem; }
  .proof-heading h2 {
    max-width: 100%;
    margin: .8rem 0 .65rem;
    font-size: clamp(1.6rem, 7.4vw, 1.9rem);
    line-height: 1.08;
    letter-spacing: -.035em;
  }
  .proof-heading > p { max-width: 34ch; font-size: .95rem; line-height: 1.62; }
  .hero-media { width: 100%; padding: 0 0 .75rem .75rem; }
  .hero-media-frame { aspect-ratio: 4 / 5; }
  .hero-media::before { inset: .75rem .75rem 0 0; }
  .hero-media figcaption { width: min(90%, 330px); padding: .85rem 1rem; }
  .corporate-proof { padding-top: 1.8rem; }
  .corporate-proof-head h2 { font-size: 1.12rem; }
  .corporate-proof-logos figure { min-height: 100px; padding: .65rem; grid-template-rows: 52px auto; }
  .corporate-proof-logos img { height: 52px; }
  .solution-card { min-height: 0; }
  .pam-actions { display: grid; margin-top: 1.35rem; gap: .65rem; }
  .pam-actions .button { width: 100%; }
  .pam-actions > span {
    width: 100%;
    max-width: none;
    padding-inline: .35rem;
    font-size: .68rem;
    font-weight: 600;
    line-height: 1.45;
    letter-spacing: 0;
    text-align: center;
    text-transform: none;
  }
  .pam-visual { min-height: 0; padding: .75rem 0 1rem; }
  .pam-frame-head { min-height: 3.25rem; padding-inline: .8rem; grid-template-columns: 1fr auto; gap: .5rem; }
  .pam-frame-head > div { display: none; }
  .pam-frame-head span { font-size: var(--text-micro); }
  .pam-frame-head b { font-size: var(--text-micro); }
  .pam-frame-body { min-height: 0; padding: 1rem; grid-template-columns: 1fr; grid-template-rows: auto 2.4rem auto 2.4rem auto; align-items: stretch; }
  .pam-person, .pam-target, .pam-gate { display: grid; min-height: 4.5rem; padding: .7rem .8rem; grid-template-columns: 2.8rem minmax(0, 1fr); grid-template-rows: auto auto; align-content: center; align-items: center; column-gap: .75rem; text-align: left; }
  .pam-person, .pam-target { border: 1px solid rgba(0,105,180,.12); border-radius: .85rem; background: rgba(255,255,255,.9); }
  .pam-person > span, .pam-target > span { width: 2.7rem; height: 2.7rem; grid-row: 1 / 3; }
  .pam-person svg, .pam-target svg { width: 1.15rem; height: 1.15rem; }
  .pam-gate { min-height: 5rem; }
  .pam-gate svg { width: 1.75rem; height: 1.75rem; grid-row: 1 / 3; justify-self: center; }
  .pam-frame-body strong { margin: 0; font-size: .72rem; }
  .pam-frame-body small { display: block; grid-column: 2; font-size: var(--text-micro); }
  .flow-arrow { position: relative; width: 100%; align-items: center; justify-content: center; gap: 0; }
  .flow-arrow i { width: 1px; height: 1.8rem; margin: 0; }
  .flow-arrow i::after { top: auto; right: auto; bottom: 0; left: -3px; border-top: 0; border-right: 1px solid var(--sky); border-bottom: 1px solid var(--sky); transform: rotate(45deg); }
  .flow-arrow b { position: absolute; top: .7rem; left: calc(50% + .85rem); font-size: var(--text-micro); letter-spacing: .06em; }
  .pam-monitor { min-height: 4.25rem; padding: .75rem .8rem; }
  .approach-media { min-height: 340px; }
  .approach-media figcaption { right: 1rem; bottom: 1rem; left: 1rem; }
  .process-grid li { grid-template-columns: 2.6rem 1fr; }
  .industry-grid { grid-template-columns: 1fr; }
  .ecosystem-copy { padding: 1.4rem; }
  .partner-matrix { grid-template-columns: repeat(2, 1fr); }
  .partner-matrix li:nth-child(4n) { border-right: 1px solid var(--border); }
  .partner-matrix li:nth-child(2n) { border-right: 0; }
  .partner-matrix li:nth-last-child(-n+4) { border-bottom: 1px solid var(--border); }
  .partner-matrix li:nth-last-child(-n+2) { border-bottom: 0; }
  .certification-head > div { display: grid; gap: .35rem; }
  .certification-marquee { gap: .45rem; }
  .cert-marquee-set { padding-right: .45rem; gap: .45rem; }
  .cert-marquee-set figure { width: 120px; min-height: 76px; padding: .55rem .7rem; }
  .cert-marquee-set img { height: 52px; }
  .contact-wrap { width: 94vw; padding: 1rem; }
  .contact-info { padding: .8rem; }
  .contact-info h2 { font-size: clamp(2.15rem, 9vw, 2.75rem); }
  .direct-contact { grid-template-columns: 1fr; }
  .field-grid, .contact-form .field-grid { grid-template-columns: 1fr; gap: .65rem; }
  .form-head { align-items: flex-start; flex-direction: column; }
  .site-footer { padding-top: 3rem; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-brandmark { width: min(100%, 230px); }
  .footer-nav a { min-height: 2.75rem; }
  .footer-reach { display: block; grid-column: auto; }
  .footer-contact-link { min-height: 3.5rem; }
  .footer-presence { padding: 1.25rem 0; grid-template-columns: 1fr; gap: 0; }
  .footer-presence > * { padding: 1rem 0; border-top: 1px solid rgba(255,255,255,.08); }
  .footer-presence > :first-child { padding-top: 0; border-top: 0; }
  .footer-hubs { padding-left: 0 !important; border-left: 0 !important; }
  .footer-bottom { min-height: auto; padding: 1.4rem 0; align-items: flex-start; flex-direction: column; gap: .75rem; }
  .footer-bottom-meta { justify-content: flex-start; text-align: left; }
}

/* Client review refinement — stronger imagery, leaner copy and more grounded corporate rhythm */
.topbar-inner { grid-template-columns: 1fr auto; }
.topbar-inner > p { justify-self: start; }
.topbar-contact { justify-self: end; }
.topbar-social { display: none; }
.support-status { display: inline-flex; align-items: center; color: #b9d4df; font-size: .7rem; font-weight: 800; letter-spacing: .04em; gap: .42rem; text-transform: uppercase; }
.support-status i { width: .42rem; height: .42rem; border-radius: 50%; background: #4ce1b2; box-shadow: 0 0 0 4px rgba(76,225,178,.11); }

.solution-card.solution-tile { min-height: 0; padding: .7rem .7rem 1.15rem; overflow: hidden; }
.solution-card.solution-tile h3,
.solution-card.solution-tile > p,
.solution-card.solution-tile > a { margin-inline: .5rem; }
.solution-photo { position: relative; height: 9.2rem; border-radius: .82rem; overflow: hidden; background: #dce9f0; }
.solution-photo::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 25%, rgba(2,25,43,.6)); content: ""; }
.solution-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.solution-card:hover .solution-photo img { transform: scale(1.035); }
.solution-photo span { position: absolute; z-index: 1; right: .7rem; bottom: .65rem; display: inline-flex; padding: .38rem .58rem; border: 1px solid rgba(255,255,255,.34); border-radius: 999px; background: rgba(4,43,70,.72); backdrop-filter: blur(8px); align-items: center; color: #fff; font-size: .62rem; font-weight: 800; letter-spacing: .08em; gap: .38rem; text-transform: uppercase; }
.solution-photo span svg { width: .82rem; height: .82rem; }
.solution-card.solution-tile h3 { margin-top: 1rem; }

.need-card.image-need { min-height: 13rem; border: 0; background: #062e4e; color: #fff; isolation: isolate; }
.need-card.image-need::before { z-index: -2; inset: 0; height: auto; background: var(--need-image) center / cover no-repeat; transform: none; transition: transform .45s ease; }
.need-card.image-need::after { position: absolute; z-index: -1; inset: 0; height: auto; background: linear-gradient(180deg, rgba(3,27,46,.12) 0%, rgba(3,27,46,.50) 34%, rgba(3,27,46,.94) 74%); content: ""; }
.need-card.image-need:hover::before { transform: scale(1.04); }
.need-card.image-need .need-icon { border: 1px solid rgba(255,255,255,.24); background: rgba(5,52,84,.66); color: #fff; backdrop-filter: blur(8px); }
.need-card.image-need strong { align-self: end; color: #fff; text-shadow: 0 1px 14px rgba(0,0,0,.25); }
.need-card.image-need .need-dest { border-top-color: rgba(255,255,255,.2); color: #cbe1e9; }
.need-card.image-need:hover .need-dest { color: #fff; }

.partners-page .credential-badges li { min-height: 8.2rem; background: #fff; }
.partners-page .credential-badges img { max-width: 6.6rem; max-height: 4.5rem; mix-blend-mode: multiply; }

.event-spotlight { padding: clamp(1.2rem, 2.5vw, 2rem) 0 clamp(4.2rem, 7vw, 6.8rem); background: var(--white); }
.event-spotlight-grid { display: grid; min-height: 30rem; border-radius: 1.35rem; overflow: hidden; background: #062e4e; grid-template-columns: 1.15fr .85fr; box-shadow: 0 24px 60px rgba(4,44,72,.18); }
.event-spotlight-media { position: relative; margin: 0; min-height: 30rem; }
.event-spotlight-media::after { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 58%, #062e4e 100%); content: ""; }
.event-spotlight-media img { width: 100%; height: 100%; object-fit: cover; }
.event-spotlight-copy { display: flex; padding: clamp(2rem, 4vw, 3.6rem); justify-content: center; flex-direction: column; color: #fff; }
.event-spotlight-copy h2 { max-width: 15ch; margin: 1rem 0 .9rem; color: #fff; font-size: clamp(2rem, 3.3vw, 3rem); line-height: 1.08; letter-spacing: -.045em; }
.event-spotlight-copy h2 em { color: #6ddfe2; font-style: normal; }
.event-spotlight-copy > p { margin: 0; color: #bad1de; font-size: var(--text-body-small); line-height: 1.72; }
.event-spotlight-copy ul { display: flex; margin: 1.25rem 0 1.5rem; padding: 0; flex-wrap: wrap; gap: .5rem; list-style: none; }
.event-spotlight-copy li { padding: .38rem .6rem; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: #d7e9ef; font-size: .66rem; font-weight: 700; }
.button-light { width: max-content; background: #fff; color: #064d7a; }
.button-light:hover { background: #e9f8fb; }

.ecosystem-block { overflow: hidden; }
.partner-flow { min-width: 0; padding-block: .35rem; overflow: hidden; }
.partner-flow .partner-matrix { display: flex; width: max-content; grid-template-columns: none; will-change: transform; }
.partner-flow .partner-matrix + .partner-matrix { border-top: 1px solid var(--border); }
.partner-flow .partner-matrix li { flex: 0 0 clamp(10rem, 18vw, 15rem); min-height: 4.75rem; border: 0; border-right: 1px solid var(--border); }
.partner-flow .partner-matrix:nth-child(2) { transform: translateX(-5rem); }
.partner-flow.is-ready .row-one,
.partner-flow.is-ready .row-three { animation: partner-flow-left 30s linear infinite; }
.partner-flow.is-ready .row-two { animation: partner-flow-right 34s linear infinite; }
.partner-flow:hover .partner-matrix { animation-play-state: paused; }
@keyframes partner-flow-left { to { transform: translateX(-33.333%); } }
@keyframes partner-flow-right { from { transform: translateX(-33.333%); } to { transform: translateX(0); } }

.industry-card.image-card { position: relative; min-height: 13rem; padding: 1.15rem; border: 0; overflow: hidden; align-content: end; grid-template-columns: auto 1fr auto; isolation: isolate; }
.industry-card.image-card::before { position: absolute; z-index: -2; inset: 0; background: var(--industry-image) center / cover no-repeat; transition: transform .45s ease; content: ""; }
.industry-card.image-card::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(2,23,40,.05), rgba(2,23,40,.9) 78%); content: ""; }
.industry-card.image-card:hover::before { transform: scale(1.035); }
.industry-card.image-card > span { width: 2.35rem; height: 2.35rem; border: 1px solid rgba(255,255,255,.25); background: rgba(6,64,99,.72); color: #fff; backdrop-filter: blur(8px); }
.industry-card.image-card strong { color: #fff; font-size: .84rem; }
.industry-card.image-card small { color: #b8d5df; }
.industry-card.image-card .industry-arrow { color: #fff; }

.footer-nav a { min-height: 2rem; border-bottom: 0; justify-content: flex-start; }
.footer-nav a::after { display: none; }

/* Event Internet page */
.event-page-hero { position: relative; min-height: 38rem; overflow: hidden; background: #041d31; color: #fff; }
.event-page-hero::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,27,46,.94) 0%, rgba(3,27,46,.68) 48%, rgba(3,27,46,.1) 100%); content: ""; }
.event-page-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.event-page-hero .container { position: relative; z-index: 1; display: flex; min-height: 38rem; justify-content: center; flex-direction: column; }
.event-page-hero h1 { max-width: 15ch; margin: 1rem 0; color: #fff; font-size: var(--text-hero); line-height: 1.08; letter-spacing: -.05em; }
.event-page-hero h1 em { color: #6ddfe2; font-style: normal; }
.event-page-hero p { max-width: 58ch; margin: 0 0 1.5rem; color: #d0e0e8; font-size: var(--text-lead); line-height: 1.65; }
.event-proof-rail { display: grid; margin-top: -2.2rem; position: relative; z-index: 2; border-radius: 1rem; overflow: hidden; background: #fff; grid-template-columns: repeat(4,1fr); box-shadow: var(--shadow-card); }
.event-proof-rail article { padding: 1.25rem 1.35rem; border-right: 1px solid var(--border); }
.event-proof-rail article:last-child { border-right: 0; }
.event-proof-rail strong { display: block; color: var(--ink); font-size: .82rem; }
.event-proof-rail span { display: block; margin-top: .22rem; color: var(--muted); font-size: .7rem; line-height: 1.5; }
.event-audience-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: .8rem; }
.event-audience-grid article { padding: 1.25rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: #fff; }
.event-audience-grid svg { width: 1.35rem; height: 1.35rem; color: var(--primary); }
.event-audience-grid h3 { margin: 1rem 0 .45rem; font-size: .9rem; }
.event-audience-grid p { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.6; }
.event-delivery { background: #062e4e; color: #fff; }
.event-delivery .section-head h2 { color: #fff; }
.event-delivery .section-head p { color: #b8d1dd; }
.event-delivery-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: rgba(255,255,255,.15); }
.event-delivery-grid article { padding: 1.5rem; background: #062e4e; }
.event-delivery-grid span { color: #70dde0; font-size: .65rem; font-weight: 800; letter-spacing: .1em; }
.event-delivery-grid h3 { margin: .8rem 0 .45rem; color: #fff; font-size: .95rem; }
.event-delivery-grid p { margin: 0; color: #b8d1dd; font-size: .72rem; line-height: 1.65; }

.desktop-nav .nav-group.is-active > a { color: var(--primary); }
.desktop-nav .nav-group.is-active > a::after { transform: scaleX(1); }
.mobile-menu nav a { position: relative; }
.mobile-menu nav a[aria-current="page"] { color: var(--primary); }

.event-page-hero-v2, .event-page-hero-v2 .container { min-height: 40rem; }
.event-page-hero-v2::after { background: linear-gradient(90deg, rgba(3,27,46,.96) 0%, rgba(3,27,46,.76) 47%, rgba(3,27,46,.18) 100%), linear-gradient(180deg, rgba(3,27,46,.06), rgba(3,27,46,.42)); }
.event-page-hero-v2 h1 { max-width: 17ch; }
.event-page-hero-v2 p { max-width: 64ch; }
.event-page-hero-v2 .hero-actions { margin-top: .25rem; }
.event-hero-points { display: flex; max-width: 760px; margin: 1.25rem 0 0; padding: 0; flex-wrap: wrap; gap: .55rem; list-style: none; }
.event-hero-points li { display: block; padding: .42rem .68rem; border: 1px solid rgba(255,255,255,.16); border-radius: var(--radius-pill); background: rgba(255,255,255,.08); color: #d9ecf4; font-size: var(--text-label); font-weight: 800; line-height: 1.25; }

.event-positioning { padding: clamp(3.2rem, 5.5vw, 5.2rem) 0; background: linear-gradient(135deg, #f5fbfe 0%, #fff 54%, #eef9fb 100%); }
.event-positioning-grid { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.event-positioning-copy h2 { max-width: 19ch; margin: .8rem 0 .8rem; font-size: clamp(1.9rem, 2.8vw, 2.85rem); }
.event-positioning-copy p { max-width: 58ch; margin: 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.75; }
.event-positioning-cards { display: grid; gap: 1px; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--border); grid-template-columns: repeat(3, 1fr); }
.event-positioning-cards article { min-height: 14rem; padding: 1.35rem 1.25rem; background: rgba(255,255,255,.9); }
.event-positioning-cards span { color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .12em; }
.event-positioning-cards strong, .event-positioning-cards small { display: block; }
.event-positioning-cards strong { margin-top: 3.1rem; color: var(--ink); font-size: var(--text-body-small); font-weight: 800; line-height: 1.35; }
.event-positioning-cards small { margin-top: .45rem; color: var(--muted); font-size: var(--text-label-lg); line-height: 1.6; }

.event-audiences-original { background: var(--white); }
.event-audiences-original .section-head { max-width: 62rem; }
.event-original-audience-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .85rem;
  margin-top: 2.25rem;
}
.event-original-audience-grid article {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 1rem;
  background: var(--white);
  box-shadow: 0 18px 45px -36px rgba(5, 38, 63, .48);
}
.event-original-audience-grid img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.event-original-audience-grid article > div { padding: 1rem; }
.event-original-audience-grid h3 { margin: 0; color: var(--ink); font-size: .94rem; }
.event-original-audience-grid p { margin: .45rem 0 0; color: var(--muted); font-size: .76rem; line-height: 1.62; }
.event-original-promises {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 1rem;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 1rem;
  background: var(--tint);
}
.event-original-promises article { padding: 1.15rem 1.25rem; border-right: 1px solid var(--border); }
.event-original-promises article:last-child { border-right: 0; }
.event-original-promises strong, .event-original-promises span { display: block; }
.event-original-promises strong { color: var(--ink); font-size: .86rem; }
.event-original-promises span { margin-top: .3rem; color: var(--muted); font-size: .73rem; line-height: 1.58; }

.event-audience-grid-v2 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.event-audience-grid-v2 article { position: relative; min-height: 16rem; padding: 1.35rem 1.15rem 1.25rem; overflow: hidden; background: linear-gradient(135deg, #fff, #f7fbfd); }
.event-audience-grid-v2 article::before { position: absolute; top: 0; right: 0; left: 0; height: 3px; background: var(--grad-text); content: ""; }
.event-audience-grid-v2 article > span { display: grid; width: 2.5rem; height: 2.5rem; border-radius: .75rem; background: var(--tint); color: var(--primary); place-items: center; }
.event-audience-grid-v2 article > svg { display: none; }

.event-service-model { background: var(--white); }
.event-service-grid { display: grid; grid-template-columns: .92fr 1.08fr; align-items: stretch; gap: clamp(2rem, 5vw, 5rem); }
.event-service-media { position: relative; min-height: 31rem; margin: 0; overflow: hidden; border-radius: var(--radius-md); background: var(--deepest); box-shadow: var(--shadow-card); }
.event-service-media img { width: 100%; height: 100%; object-fit: cover; }
.event-service-media::after { position: absolute; inset: 42% 0 0; background: linear-gradient(180deg, transparent, rgba(5, 28, 48, .86)); content: ""; }
.event-service-media figcaption { position: absolute; right: 1.2rem; bottom: 1.2rem; left: 1.2rem; z-index: 1; color: var(--white); }
.event-service-media figcaption span { display: block; color: #8ee3f2; font-size: var(--text-micro); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.event-service-media figcaption strong { display: block; margin-top: .35rem; max-width: 32ch; font-size: .95rem; line-height: 1.45; }
.event-service-copy { align-self: center; }
.event-service-copy h2 { max-width: 19ch; margin: 1rem 0 .8rem; font-size: clamp(1.95rem, 2.9vw, 2.9rem); }
.event-service-copy > p { max-width: 58ch; margin: 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.75; }
.event-service-copy ul { display: grid; margin: 1.35rem 0 0; padding: 0; border-top: 1px solid var(--border); list-style: none; }
.event-service-copy li { display: grid; padding: 1rem 0; border-bottom: 1px solid var(--border); grid-template-columns: .62fr 1fr; gap: 1rem; }
.event-service-copy strong, .event-service-copy span { display: block; }
.event-service-copy strong { color: var(--ink); font-size: var(--text-body-small); font-weight: 800; }
.event-service-copy span { color: var(--muted); font-size: var(--text-label-lg); line-height: 1.6; }

@media (max-width: 1120px) {
  .event-audience-grid-v2 { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 900px) {
  .event-original-audience-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .event-original-promises { grid-template-columns: 1fr; }
  .event-original-promises article { border-right: 0; border-bottom: 1px solid var(--border); }
  .event-original-promises article:last-child { border-bottom: 0; }
  .event-spotlight-grid { grid-template-columns: 1fr; }
  .event-spotlight-media { min-height: 22rem; }
  .event-spotlight-media::after { background: linear-gradient(180deg, transparent 55%, #062e4e 100%); }
  .event-audience-grid { grid-template-columns: repeat(2,1fr); }
  .event-proof-rail, .event-delivery-grid { grid-template-columns: repeat(2,1fr); }
  .event-positioning-grid, .event-service-grid { grid-template-columns: 1fr; }
  .event-positioning-cards { grid-template-columns: 1fr; }
  .event-positioning-cards article { min-height: 0; }
  .event-positioning-cards strong { margin-top: 1.7rem; }
  .event-service-media { min-height: 24rem; }
}

@media (max-width: 760px) {
  .topbar-inner { display: flex; justify-content: flex-end; }
  .topbar-inner > p { display: none; }
  .support-status { display: none; }
  .topbar-contact { width: 100%; justify-content: space-between; }
  .solution-photo { height: 11rem; }
  .industry-card.image-card { min-height: 10.5rem; }
  .event-page-hero, .event-page-hero .container { min-height: 34rem; }
  .event-page-hero-v2, .event-page-hero-v2 .container { min-height: 36rem; }
  .event-page-hero::after { background: linear-gradient(180deg, rgba(3,27,46,.35), rgba(3,27,46,.96) 65%); }
  .event-page-hero .container { justify-content: flex-end; padding-bottom: 3rem; }
  .event-audience-grid-v2 { grid-template-columns: 1fr; }
  .event-audience-grid-v2 article { min-height: 0; }
}

@media (max-width: 560px) {
  .topbar-contact a { font-size: .64rem; }
  .topbar-contact a:first-of-type { display: inline-flex; }
  .event-spotlight { padding-top: 0; }
  .event-spotlight-grid { border-radius: 0; margin-inline: calc(var(--container-pad) * -1); }
  .event-spotlight-copy { padding: 1.7rem var(--container-pad) 2rem; }
  .event-audience-grid, .event-proof-rail, .event-delivery-grid { grid-template-columns: 1fr; }
  .event-audience-grid { gap: .65rem; }
  .event-audience-grid-v2 article { padding: 1rem; }
  .event-audience-grid-v2 article > span { width: 2.15rem; height: 2.15rem; border-radius: .65rem; }
  .event-audience-grid h3 { margin-top: .8rem; }
  .event-proof-rail article { border-right: 0; border-bottom: 1px solid var(--border); }
  .event-proof-rail article:last-child { border-bottom: 0; }
  .event-page-hero-v2 h1 { max-width: 13ch; }
  .event-page-hero-v2 .button { width: 100%; }
  .event-hero-points { gap: .42rem; }
  .event-hero-points li { font-size: .64rem; }
  .event-positioning, .event-service-model { padding-block: 3rem; }
  .event-service-copy li { grid-template-columns: 1fr; gap: .35rem; }
}

@media (prefers-reduced-motion: reduce) {
  .partner-flow .partner-matrix { animation: none !important; }
}

@media (max-width: 360px) {
  .header-inner { gap: .6rem; }
  .brand img { width: 174px; }
  .mobile-menu-head img { width: 190px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .js .reveal { opacity: 1; transform: none; }
  .cert-marquee-row.is-ready { overflow-x: auto; mask-image: none; }
  .cert-marquee-row.is-ready .cert-marquee-track { animation: none; }
  .cert-marquee-set[aria-hidden="true"] { display: none; }
}

@media print {
  .topbar, .site-header, .mobile-backdrop, .mobile-menu, .form-submit { display: none; }
  .js .reveal { opacity: 1; transform: none; }
}

/* Inner page: About Bluewave */
.inner-hero { position: relative; overflow: hidden; background: radial-gradient(circle at 78% 18%, rgba(16,169,207,.13), transparent 26rem), linear-gradient(135deg, #fff 0%, #f5fbfe 58%, #edf8fc 100%); }
.inner-hero::after { position: absolute; right: -14rem; bottom: -20rem; width: 40rem; height: 40rem; border: 1px solid rgba(0,105,180,.09); border-radius: 50%; content: ""; }
.inner-hero-grid { position: relative; z-index: 1; display: grid; min-height: 600px; padding: clamp(3.5rem, 5vw, 5rem) 0; grid-template-columns: 1.05fr .82fr; align-items: center; gap: clamp(3rem, 7vw, 7rem); }
.inner-hero-copy h1 { max-width: 16ch; margin: 1.05rem 0 .95rem; color: var(--ink); font-size: var(--text-hero); font-weight: 800; line-height: 1.12; letter-spacing: -.045em; }
.inner-hero-copy h1 em, .about-lifecycle h2 em, .about-method h2 em, .about-values h2 em, .about-presence h2 em { background: linear-gradient(120deg, var(--primary), var(--sky), var(--teal)); background-clip: text; color: transparent; font-style: normal; }
.inner-hero-copy > p { max-width: 58ch; margin: 0; color: var(--muted); font-size: var(--text-lead); line-height: 1.68; }
.about-hero-media { position: relative; width: min(100%, 455px); margin: 0; justify-self: end; }
.about-hero-media::before { position: absolute; inset: -1rem 1rem 1rem -1rem; z-index: -1; border: 1px solid rgba(0,105,180,.17); border-radius: 1.6rem 1.6rem 5rem 1.6rem; content: ""; }
.about-hero-media img { width: 100%; height: auto; aspect-ratio: 4 / 5; border-radius: 1.2rem 1.2rem 4.5rem 1.2rem; object-fit: cover; object-position: 48% center; box-shadow: 0 30px 70px -36px rgba(7,54,88,.38); }
.about-hero-media figcaption { position: absolute; right: -2rem; bottom: 2.2rem; width: min(84%, 330px); padding: 1rem 1.15rem; border: 1px solid rgba(0,105,180,.15); border-radius: .85rem; background: rgba(255,255,255,.94); box-shadow: var(--shadow-soft); backdrop-filter: blur(12px); }
.about-hero-media figcaption span { display: block; color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.about-hero-media figcaption strong { display: block; margin-top: .35rem; color: var(--ink); font-size: var(--text-body-small); line-height: 1.5; }

.about-profile { border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--white); }
.about-profile-grid { display: grid; min-height: 7.5rem; grid-template-columns: repeat(3, 1fr); align-items: stretch; }
.about-profile-grid > div { display: grid; padding: 1.55rem clamp(1rem, 2.5vw, 2.5rem); align-content: center; gap: .35rem; border-right: 1px solid var(--border); }
.about-profile-grid > div:first-child { padding-left: 0; }
.about-profile-grid > div:last-child { border-right: 0; }
.about-profile-grid span { color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.about-profile-grid strong { color: var(--ink); font-size: var(--text-body-small); }

.about-lifecycle { background: var(--white); }
.about-lifecycle-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem, 8vw, 8rem); }
.about-editorial h2, .about-connected-head h2, .about-values h2, .about-presence h2 { max-width: 16ch; margin: 1rem 0 .95rem; color: var(--ink); font-weight: 800; }
.about-editorial p { max-width: 52ch; margin: .85rem 0 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.75; }
.about-editorial .lead { color: var(--slate-soft); font-size: clamp(1rem, 1.35vw, 1.15rem); }
.about-lifecycle-list { margin: 0; padding: 0; border-top: 1px solid var(--border); list-style: none; }
.about-lifecycle-list li { display: grid; min-height: 8rem; padding: 1.5rem 0; border-bottom: 1px solid var(--border); grid-template-columns: 1fr; gap: 1rem; }
.about-lifecycle-list strong { color: var(--ink); font-size: var(--text-subtitle); }
.about-lifecycle-list p { max-width: 52ch; margin: .5rem 0 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.65; }

.about-connected { position: relative; overflow: hidden; background: radial-gradient(circle at 82% 22%, rgba(16,169,207,.2), transparent 28rem), linear-gradient(135deg, #06233b, #073c62); color: var(--white); }
.about-connected::after { position: absolute; top: -17rem; right: -10rem; width: 40rem; height: 40rem; border: 1px solid rgba(122,220,240,.12); border-radius: 50%; content: ""; }
.about-connected .container { position: relative; z-index: 1; }
.about-connected-head { display: grid; margin-bottom: 3rem; grid-template-columns: .6fr 1.15fr .9fr; align-items: end; gap: 2.5rem; }
.about-connected-head .proof-section-label { align-self: start; color: #7adcf0; }
.about-connected-head h2 { max-width: 14ch; margin: 0; color: var(--white); }
.about-connected-head h2 em { color: #72d8da; font-style: normal; }
.about-connected-head > p { margin: 0; color: #b6cfda; font-size: var(--text-body-small); line-height: 1.75; }
.about-practices { border-top: 1px solid rgba(255,255,255,.14); }
.about-practices a { display: grid; min-height: 6.6rem; border-bottom: 1px solid rgba(255,255,255,.14); grid-template-columns: 3rem 1.2fr .85fr auto; align-items: center; gap: 1.5rem; color: var(--white); transition: padding .2s ease, background .2s ease; }
.about-practices a:hover { padding-inline: 1rem; background: rgba(255,255,255,.045); }
.about-practices a > span { display: flex; align-items: center; gap: .7rem; color: #72d8da; font-size: var(--text-label); font-weight: 800; }
.about-practices svg { width: 1.5rem; height: 1.5rem; }
.about-practices strong { font-size: var(--text-body); }
.about-practices small { color: #9ebac8; font-size: var(--text-label-lg); }
.about-practices b { color: #72d8da; font-size: 1.2rem; }

.about-method { background: #f5f9fc; }
.section-head.compact { max-width: 880px; margin-bottom: 3rem; text-align: left; }
.section-head.compact h2 { max-width: 16ch; }
.about-method-grid { display: grid; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); grid-template-columns: repeat(4, 1fr); }
.about-method-grid article { min-height: 19rem; padding: 2rem clamp(1rem, 2vw, 2rem); border-right: 1px solid var(--border); }
.about-method-grid article:first-child { padding-left: 0; }
.about-method-grid article:last-child { padding-right: 0; border-right: 0; }
.about-method-grid h3 { margin: 0 0 .8rem; color: var(--ink); font-size: var(--text-subtitle); line-height: 1.35; }
.about-method-grid p { margin: 0; color: var(--muted-on-tint); font-size: var(--text-body-small); line-height: 1.7; }

.about-values { background: var(--white); }
.about-values-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem, 8vw, 8rem); }
.about-values-statement { padding-right: 1rem; }
.about-values-statement p { max-width: 48ch; margin: 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.75; }
.about-values-list { margin: 0; border-top: 1px solid var(--border); }
.about-values-list > div { display: grid; min-height: 6.3rem; padding: 1.3rem 0; border-bottom: 1px solid var(--border); grid-template-columns: .55fr 1fr; align-items: center; gap: 1.5rem; }
.about-values-list dt { color: var(--ink); font-size: var(--text-body); font-weight: 800; }
.about-values-list dd { margin: 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.65; }

.about-presence { background: linear-gradient(135deg, #edf8fd, #f9fcfe); }
.about-presence-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(3rem, 8vw, 8rem); }
.about-presence-copy p { max-width: 48ch; color: var(--muted); font-size: var(--text-body-small); line-height: 1.75; }
.about-presence-details { display: grid; border-top: 1px solid rgba(0,105,180,.18); border-bottom: 1px solid rgba(0,105,180,.18); grid-template-columns: 1.2fr .8fr; }
.about-presence-details > * { margin: 0; padding: 2.2rem; font-style: normal; }
.about-presence-details > * + * { border-left: 1px solid rgba(0,105,180,.18); }
.about-presence-details span { color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.about-presence-details strong { display: block; margin: 1.5rem 0 .7rem; color: var(--ink); font-size: 1.45rem; }
.about-presence-details p { margin: 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.7; }
.about-presence-details ul { display: grid; margin: 1.5rem 0 1.2rem; padding: 0; gap: .8rem; list-style: none; }
.about-presence-details li { color: var(--ink); font-size: var(--text-body); font-weight: 800; }
.about-presence-details small { display: block; color: var(--muted); font-size: var(--text-label); line-height: 1.5; }

.about-cta { padding: clamp(3rem, 5vw, 5rem) 0; background: #063a68; color: var(--white); }
.about-cta-inner { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 3rem; }
.about-cta-inner > div > span { color: #72d8da; font-size: var(--text-micro); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.about-cta h2 { max-width: 24ch; margin: .5rem 0 .65rem; color: var(--white); font-size: var(--text-closing); }
.about-cta p { max-width: 62ch; margin: 0; color: #bad0dc; font-size: var(--text-body-small); line-height: 1.7; }

@media (max-width: 900px) {
  .inner-hero-grid { min-height: auto; grid-template-columns: 1fr; }
  .inner-hero-copy h1 { max-width: 16ch; }
  .about-hero-media { width: min(90%, 480px); margin-inline: auto; justify-self: center; }
  .about-lifecycle-grid, .about-values-grid, .about-presence-grid { grid-template-columns: 1fr; }
  .about-connected-head { grid-template-columns: 1fr 1fr; }
  .about-connected-head .proof-section-label { grid-column: 1 / -1; }
  .about-method-grid { grid-template-columns: repeat(2, 1fr); }
  .about-method-grid article:nth-child(2) { border-right: 0; }
  .about-method-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
  .about-method-grid article:first-child, .about-method-grid article:nth-child(3) { padding-left: 0; }
  .about-method-grid article:nth-child(2), .about-method-grid article:last-child { padding-right: 0; }
  .about-cta-inner { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .event-original-audience-grid { grid-template-columns: 1fr; }
  .event-original-audience-grid article { display: grid; grid-template-columns: 7.5rem 1fr; align-items: stretch; }
  .event-original-audience-grid img { height: 100%; aspect-ratio: auto; }
  .inner-hero-grid { padding-block: 3rem 4rem; gap: 3rem; }
  .inner-hero-copy h1 { max-width: 16ch; margin-top: .9rem; font-size: clamp(2.15rem, 9.2vw, 2.65rem); }
  .inner-hero-copy > p { font-size: var(--text-body-small); line-height: 1.7; }
  .about-hero-media { width: calc(100% - 1rem); margin-left: 0; }
  .about-hero-media::before { inset: -.65rem .65rem .65rem -.65rem; }
  .about-hero-media figcaption { right: -1rem; bottom: 1.1rem; width: 90%; }
  .about-profile-grid { grid-template-columns: 1fr; }
  .about-profile-grid > div, .about-profile-grid > div:first-child { min-height: 5.2rem; padding: 1.1rem 0; border-right: 0; border-bottom: 1px solid var(--border); }
  .about-profile-grid > div:last-child { border-bottom: 0; }
  .about-editorial h2, .about-connected-head h2, .about-method h2, .about-values h2, .about-presence h2 { max-width: 18ch; font-size: clamp(1.85rem, 7.8vw, 2.25rem); }
  .about-lifecycle-list li { min-height: 0; }
  .about-connected-head { margin-bottom: 2rem; grid-template-columns: 1fr; gap: 1.2rem; }
  .about-connected-head .proof-section-label { grid-column: auto; }
  .about-practices a { min-height: 7.6rem; padding-block: 1.2rem; grid-template-columns: 3rem 1fr auto; grid-template-areas: "meta title arrow" "meta desc desc"; gap: .35rem .8rem; }
  .about-practices a > span { align-self: start; flex-direction: column; grid-area: meta; gap: .35rem; }
  .about-practices strong { grid-area: title; font-size: var(--text-body-small); }
  .about-practices small { grid-area: desc; font-size: var(--text-label); line-height: 1.5; }
  .about-practices b { grid-area: arrow; align-self: center; }
  .about-method-grid { grid-template-columns: 1fr; }
  .about-method-grid article, .about-method-grid article:first-child, .about-method-grid article:nth-child(2), .about-method-grid article:nth-child(3), .about-method-grid article:last-child { min-height: 0; padding: 1.5rem 0; border-right: 0; border-bottom: 1px solid var(--border); }
  .about-method-grid h3 { margin-top: 0; }
  .about-values-list > div { min-height: 0; grid-template-columns: 1fr; gap: .5rem; }
  .about-presence-details { grid-template-columns: 1fr; }
  .about-presence-details > * { padding: 1.5rem 0; }
  .about-presence-details > * + * { border-top: 1px solid rgba(0,105,180,.18); border-left: 0; }
  .about-cta-inner { gap: 1.7rem; }
  .about-cta-inner .button { width: 100%; }
}

/* Inner pages: shared system */
.page-hero {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--border);
  background: radial-gradient(circle at 82% 18%, rgba(16,169,207,.14), transparent 25rem), linear-gradient(135deg, #fff 0%, #f4fafe 60%, #edf9fb 100%);
}
.page-hero::after { position: absolute; right: -15rem; bottom: -19rem; width: 38rem; height: 38rem; border: 1px solid rgba(0,105,180,.09); border-radius: 50%; content: ""; }
.page-hero-grid { position: relative; z-index: 1; display: grid; min-height: 520px; padding: clamp(3.4rem, 5.4vw, 5.4rem) 0; grid-template-columns: 1.04fr .86fr; align-items: center; gap: clamp(3rem, 7vw, 7rem); }
.page-hero-copy h1 { max-width: 17ch; margin: 1.05rem 0 .95rem; font-size: var(--text-hero); font-weight: 800; line-height: 1.12; letter-spacing: -.045em; }
.page-hero-copy > p { max-width: 60ch; margin: 0; color: var(--muted); font-size: var(--text-lead); line-height: 1.68; }
.page-hero-copy .hero-actions { margin-top: 1.45rem; }
.ext-icon { width: 1.2rem; height: 1.2rem; }
.page-kicker { display: flex; align-items: center; gap: .55rem; color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.page-kicker .ext-icon { width: 1.1rem; height: 1.1rem; }
.page-section-head { display: grid; margin-bottom: clamp(2rem, 4vw, 3.4rem); grid-template-columns: .6fr 1.25fr .85fr; align-items: end; gap: clamp(1.5rem, 4vw, 4rem); }
.page-section-head h2 { max-width: 17ch; margin: 0; }
.page-section-head > p { max-width: 52ch; margin: 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.75; }
.page-section-head.center { display: block; max-width: 800px; margin-inline: auto; text-align: center; }
.page-section-head.center h2 { max-width: 20ch; margin: .9rem auto 1rem; }
.page-section-head.center p { max-width: 62ch; margin-inline: auto; }
.page-section-head.stacked { display: block; }
.page-section-head.stacked h2 { margin: .9rem 0 1.5rem; }
.page-closing { padding: clamp(3.3rem, 5vw, 5rem) 0; background: linear-gradient(120deg, #062a48, #074b72); color: var(--white); }
.page-closing-inner { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 3rem; }
.page-closing h2 { max-width: 24ch; margin: .45rem 0 .65rem; color: var(--white); font-size: var(--text-closing); line-height: 1.12; }
.page-closing p { max-width: 64ch; margin: 0; color: #bad1dc; font-size: var(--text-body-small); line-height: 1.7; }
.page-closing .page-kicker { color: #75dbe8; }
.editor-note { display: flex; margin-top: 1rem; align-items: flex-start; gap: .55rem; color: #6a8192; font-size: var(--text-label); line-height: 1.55; }
.editor-note::before { flex: 0 0 auto; width: .4rem; height: .4rem; margin-top: .32rem; border-radius: 50%; background: var(--amber); content: ""; }

/* Solutions & Services */
.solutions-hero-aside { position: relative; width: min(100%, 440px); justify-self: end; }
.solutions-hero-aside img { width: 100%; height: auto; aspect-ratio: 4 / 5; border-radius: 1.2rem 1.2rem 4.5rem 1.2rem; object-fit: cover; box-shadow: 0 28px 64px -34px rgba(7,54,88,.42); }
.solutions-hero-aside figcaption { position: absolute; right: -1.5rem; bottom: 1.5rem; width: min(82%, 310px); padding: 1rem 1.1rem; border: 1px solid rgba(0,105,180,.15); border-radius: .85rem; background: rgba(255,255,255,.95); box-shadow: var(--shadow-card); }
.solutions-hero-aside span { display: block; color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.solutions-hero-aside strong { display: block; margin-top: .3rem; color: var(--ink); font-size: var(--text-ui); line-height: 1.45; }
/* Solutions: section heads sit on a rule so the kicker reads as an editorial label */
.solutions-page .page-section-head { padding-top: 1.35rem; border-top: 1px solid var(--border); align-items: start; }
.solutions-page .page-section-head .page-kicker { padding-top: .35rem; }

/* Solutions: operating-need router */
.needs-band { background: linear-gradient(170deg, #f2f9fd 0%, #f8fcff 46%, #f1fbf8 100%); }
.need-router { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.need-card { position: relative; overflow: hidden; display: grid; min-height: 12.5rem; padding: 1.5rem 1.5rem 1.35rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); grid-template-rows: auto 1fr auto; gap: 1.1rem; box-shadow: var(--shadow-sm); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.need-card::before { position: absolute; top: 0; right: 0; left: 0; height: 3px; background: var(--grad-text); transform: scaleX(0); transform-origin: left center; transition: transform .26s ease; content: ""; }
.need-card:hover { transform: translateY(-3px); border-color: rgba(0,105,180,.32); box-shadow: var(--shadow-card); }
.need-card:hover::before, .need-card:focus-visible::before { transform: scaleX(1); }
.need-card:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.need-top { display: flex; align-items: center; justify-content: flex-end; }
.need-icon { display: grid; width: 2.35rem; height: 2.35rem; border-radius: .7rem; background: var(--tint); color: var(--primary); place-items: center; transition: background .2s ease, color .2s ease; }
.need-icon svg { width: 1.15rem; height: 1.15rem; }
.need-card:hover .need-icon { background: var(--grad-brand); color: var(--white); }
.need-card strong { align-self: start; max-width: 20ch; color: var(--ink); font-size: var(--text-subtitle); font-weight: 800; line-height: 1.3; letter-spacing: -.02em; }
.need-dest { display: flex; padding-top: .95rem; border-top: 1px solid var(--border); align-items: center; justify-content: space-between; color: var(--muted); font-size: var(--text-label); font-weight: 700; line-height: 1.35; gap: .75rem; transition: color .2s ease; }
.need-dest svg { flex: 0 0 auto; width: .95rem; height: .95rem; transition: transform .2s ease; }
.need-card:hover .need-dest { color: var(--primary); }
.need-card:hover .need-dest svg { transform: translateX(3px); }

/* Solutions: practice stack */
.practice-stack { background: var(--white); }
.practice-list { position: relative; }
.practice-list::before { position: absolute; top: 3.2rem; bottom: 3.2rem; left: 1.4rem; width: 1px; background: linear-gradient(180deg, transparent, var(--border) 6%, var(--border) 94%, transparent); content: ""; }
.practice-row { position: relative; display: grid; padding: clamp(2.5rem, 5vw, 4rem) 0; grid-template-columns: 5rem .92fr 1.2fr; align-items: start; gap: clamp(1.5rem, 4vw, 3.8rem); }
.practice-row + .practice-row { border-top: 1px solid var(--border); }
.practice-meta { display: grid; justify-items: start; gap: .7rem; }
.practice-marker { position: relative; z-index: 1; display: grid; width: 2.8rem; height: 2.8rem; border: 1px solid rgba(0,105,180,.2); border-radius: .8rem; background: var(--white); color: var(--primary); place-items: center; box-shadow: 0 6px 16px -12px rgba(6,58,104,.5); }
.practice-copy h2 { max-width: 17ch; margin: 0 0 1rem; font-size: var(--text-subheading); line-height: 1.12; }
.practice-copy p { max-width: 48ch; margin: 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.75; }
.practice-copy .text-link { margin-top: 1.3rem; }

/* Solutions: capability panel */
.capability-panel { padding: 1.4rem 1.5rem 1.5rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--soft); }
.capability-panel-head { margin: 0 0 1.15rem; padding-bottom: .8rem; border-bottom: 1px solid var(--border); color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.capability-feature { display: grid; margin-bottom: 1.1rem; padding: .95rem 1rem; border: 1px solid rgba(0,105,180,.22); border-radius: var(--radius-sm); background: var(--white); grid-template-columns: auto 1fr auto; align-items: center; gap: .9rem; box-shadow: var(--shadow-sm); transition: border-color .2s ease, box-shadow .2s ease; }
.capability-feature:hover { border-color: var(--primary); box-shadow: var(--shadow-card); }
.capability-feature-icon { display: grid; width: 2.2rem; height: 2.2rem; border-radius: .6rem; background: var(--grad-brand); color: var(--white); place-items: center; }
.capability-feature-icon svg { width: 1.05rem; height: 1.05rem; }
.capability-feature-copy strong { display: block; color: var(--ink); font-size: var(--text-ui); font-weight: 800; }
.capability-feature-copy small { display: block; margin-top: .25rem; color: var(--muted); font-size: var(--text-label); line-height: 1.5; }
.capability-feature-arrow { flex: 0 0 auto; width: 1rem; height: 1rem; color: var(--primary); transition: transform .2s ease; }
.capability-feature:hover .capability-feature-arrow { transform: translateX(3px); }
.capability-list { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(2, 1fr); gap: .68rem 1.4rem; list-style: none; }
.capability-list li { position: relative; padding-left: 1.15rem; color: var(--slate-soft); font-size: var(--text-label-lg); font-weight: 700; line-height: 1.5; }
.capability-list li::before { position: absolute; top: .5em; left: 0; width: .4rem; height: .4rem; border-radius: 50%; background: var(--teal); content: ""; }

/* Solutions: ownership scale */
.delivery-models { background: var(--soft); }
.ownership-scale { position: relative; }
.ownership-axis { display: flex; margin: 0 0 1.5rem; align-items: center; justify-content: space-between; gap: 1.5rem; color: var(--muted); font-size: var(--text-label); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.ownership-grid { position: relative; display: grid; padding-top: 2.1rem; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.ownership-grid::before { position: absolute; top: 0; right: 0; left: 0; height: 2px; border-radius: 2px; background: linear-gradient(90deg, #cfe1ec 0%, var(--sky) 52%, var(--primary) 100%); content: ""; }
.ownership-step { position: relative; display: grid; min-height: 15rem; padding: 1.6rem 1.5rem 1.4rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); grid-template-rows: auto auto 1fr auto; box-shadow: var(--shadow-sm); }
.ownership-node { position: absolute; top: -2.55rem; left: 1.5rem; width: .85rem; height: .85rem; border: 2px solid var(--white); border-radius: 50%; background: #9dc4da; box-shadow: 0 0 0 3px rgba(0,105,180,.1); }
.ownership-step:nth-child(2) .ownership-node { background: var(--sky); }
.ownership-step:nth-child(3) .ownership-node { background: var(--primary); }
.ownership-index { color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.ownership-step h3 { margin: .7rem 0 .6rem; font-size: var(--text-card-title); font-weight: 800; }
.ownership-step p { margin: 0; color: var(--muted); font-size: var(--text-ui); line-height: 1.7; }
.ownership-hold { margin-top: 1.3rem; padding-top: .85rem; border-top: 1px solid var(--border); color: var(--slate-soft); font-size: var(--text-label); font-weight: 800; letter-spacing: .03em; }

/* Products: hero portfolio index */
.product-index { width: min(100%, 440px); justify-self: end; }
.product-index-label { margin: 0 0 1.1rem; color: var(--slate-soft); font-size: var(--text-label); font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.product-index-card { display: grid; padding: 1.35rem 1.4rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: rgba(255,255,255,.85); grid-template-columns: 2.75rem 1fr auto; align-items: center; gap: 1rem; box-shadow: var(--shadow-sm); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.product-index-card:hover { transform: translateY(-2px); border-color: rgba(0,105,180,.32); box-shadow: var(--shadow-card); }
.product-index-card:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.product-index-icon { display: grid; width: 2.65rem; height: 2.65rem; border-radius: .75rem; background: var(--grad-brand); color: var(--white); place-items: center; }
.product-index-icon svg { width: 1.25rem; height: 1.25rem; }
.product-index-copy strong { display: block; color: var(--ink); font-size: var(--text-ui); font-weight: 800; }
.product-index-copy small { display: block; margin-top: .25rem; color: var(--muted); font-size: var(--text-label); line-height: 1.5; }
.product-index-card > svg { width: 1rem; height: 1rem; color: var(--primary); transition: transform .2s ease; }
.product-index-card:hover > svg { transform: translateX(3px); }

/* Products: the product block itself */
.product-lead { background: var(--white); }
.product-lead-grid { display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: clamp(2.5rem, 6vw, 5rem); }
.product-tag { display: inline-flex; padding: .4rem .8rem .4rem .55rem; border-radius: var(--radius-pill); background: var(--tint); color: var(--primary); align-items: center; font-size: var(--text-label); font-weight: 800; letter-spacing: .04em; gap: .5rem; text-transform: uppercase; }
.product-tag svg { width: 1rem; height: 1rem; }
.product-lead-copy h1 { max-width: 17ch; margin: 1.05rem 0 .95rem; font-size: var(--text-hero); font-weight: 800; line-height: 1.12; letter-spacing: -.045em; }
.product-lead-copy > p { max-width: 58ch; margin: 0; color: var(--muted); font-size: var(--text-lead); line-height: 1.68; }

/* Privileged Access Management */
.products-page .page-hero { background: radial-gradient(circle at 82% 18%, rgba(15,159,135,.15), transparent 24rem), linear-gradient(135deg, #fff, #f3fafe 62%, #edf9f7); }
.products-page .page-section-head { padding-top: 1.35rem; border-top: 1px solid var(--border); align-items: start; }
.products-page .page-section-head .page-kicker { padding-top: .35rem; }
.products-page .page-section-head.stacked { padding-top: 0; border-top: 0; }

/* PAM hero: access pathway */
.pam-hero-visual { width: min(100%, 440px); justify-self: end; }
.access-window { overflow: hidden; border: 1px solid rgba(0,105,180,.18); border-radius: 1.2rem; background: rgba(255,255,255,.9); box-shadow: var(--shadow-pop); }
.access-window-head { display: flex; min-height: 3.5rem; padding: 0 1rem; border-bottom: 1px solid var(--border); align-items: center; justify-content: space-between; gap: 1rem; }
.access-window-head span { color: var(--slate-soft); font-size: var(--text-label); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.access-window-head b { padding: .35rem .65rem; border-radius: 999px; background: #e8f8f4; color: #076a5c; font-size: var(--text-micro); font-weight: 800; letter-spacing: .04em; }
.access-path { display: grid; padding: 1.7rem 1.6rem; grid-template-columns: 1fr; align-content: center; gap: 0; background-image: linear-gradient(rgba(0,105,180,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(0,105,180,.045) 1px, transparent 1px); background-size: 38px 38px; }
.access-node { display: grid; min-height: 4.4rem; padding: .8rem 1rem; border: 1px solid rgba(0,105,180,.18); border-radius: 1rem; background: var(--white); grid-template-columns: 2.7rem 1fr; align-items: center; gap: .8rem; }
.access-node.policy { border-color: rgba(0,105,180,.34); background: var(--tint); box-shadow: 0 10px 26px -20px rgba(6,58,104,.6); }
.access-node > span { display: grid; width: 2.5rem; height: 2.5rem; border: 1px solid #c9e2ef; border-radius: 50%; background: var(--white); color: var(--primary); place-items: center; }
.access-node strong, .access-node small { display: block; }
.access-node strong { color: var(--ink); font-size: var(--text-ui); font-weight: 800; }
.access-node small { margin-top: .2rem; color: var(--muted-on-tint); font-size: var(--text-label); }
.access-connector { display: grid; height: 2.6rem; justify-content: center; color: var(--sky); font-size: var(--text-micro); font-weight: 800; letter-spacing: .09em; text-align: center; text-transform: uppercase; }
.access-connector::before { width: 1px; height: 1.35rem; margin-inline: auto; background: var(--sky); content: ""; }
.access-window-foot { display: flex; margin: 0; padding: .85rem 1rem; border-top: 1px solid var(--border); flex-wrap: wrap; justify-content: space-between; gap: .4rem .8rem; background: var(--soft); list-style: none; }
.access-window-foot li { position: relative; padding-left: .95rem; color: var(--slate-soft); font-size: var(--text-micro); font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.access-window-foot li::before { position: absolute; top: .38em; left: 0; width: .38rem; height: .38rem; border-radius: 50%; background: var(--teal); content: ""; }

/* PAM: standing vs brokered access comparison */
.risk-intro { background: var(--white); }
.access-compare { display: grid; margin-bottom: clamp(2.6rem, 5vw, 4rem); grid-template-columns: repeat(2, 1fr); gap: 1.1rem; }
.compare-panel { display: grid; margin: 0; padding: 1.5rem 1.6rem 1.6rem; border: 1px solid var(--border); border-radius: var(--radius-md); grid-template-rows: auto auto 1fr; gap: 1.1rem; }
.compare-panel.is-open { background: linear-gradient(160deg, #fffaf2, #fdfcfa 70%); }
.compare-panel.is-controlled { border-color: rgba(0,105,180,.24); background: linear-gradient(160deg, #f2f9fe, #f7fdfc 70%); }
.compare-panel figcaption { display: grid; gap: .55rem; }
.compare-tag { justify-self: start; padding: .32rem .6rem; border-radius: var(--radius-pill); background: rgba(15,23,42,.06); color: var(--slate-soft); font-size: var(--text-micro); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.compare-panel.is-open .compare-tag { background: #fbeed8; color: #8a5a06; }
.compare-panel.is-controlled .compare-tag { background: #dcf0fb; color: #045288; }
.compare-panel figcaption strong { color: var(--ink); font-size: var(--text-card-title); font-weight: 800; letter-spacing: -.025em; }
.compare-figure { width: 100%; height: auto; font-family: var(--font); }
.compare-figure text { stroke: none; }
.compare-figure rect { stroke-width: 1; }
.compare-panel p { margin: 0; align-self: end; color: var(--muted); font-size: var(--text-ui); line-height: 1.7; }

/* PAM: signals */
.signal-block h3 { margin: 0 0 1.3rem; color: var(--ink); font-size: var(--text-card-title); font-weight: 800; }
.signal-grid { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; list-style: none; }
.signal-grid li { display: grid; padding: 1.35rem 1.4rem; background: var(--white); grid-template-columns: 1.9rem 1fr; gap: .85rem; }
.signal-mark { display: grid; width: 1.7rem; height: 1.7rem; border-radius: .5rem; background: #fbeed8; color: #a76b08; place-items: center; }
.signal-mark svg { width: .95rem; height: .95rem; }
.signal-grid strong { display: block; color: var(--ink); font-size: var(--text-ui); font-weight: 800; line-height: 1.4; }
.signal-grid p { margin: .35rem 0 0; color: var(--muted); font-size: var(--text-label-lg); line-height: 1.6; }

/* PAM: framework rail */
.pam-framework { background: #062c4a; color: var(--white); }
.pam-framework .page-section-head { border-top-color: rgba(255,255,255,.16); }
.pam-framework .page-section-head h2 { color: var(--white); }
.pam-framework .page-section-head p { color: #c2d6e2; }
.pam-framework .page-kicker { color: var(--accent-aqua); }
.framework-track { position: relative; display: grid; padding-top: 2.2rem; grid-template-columns: repeat(5, 1fr); gap: 1px; }
.framework-track::before { position: absolute; top: 0; right: 0; left: 0; height: 2px; border-radius: 2px; background: linear-gradient(90deg, rgba(114,216,218,.35) 0%, var(--accent-aqua) 55%, #9ef0dd 100%); content: ""; }
.framework-step { position: relative; padding: 0 1.3rem 0 0; }
.framework-step + .framework-step { padding-left: 1.3rem; border-left: 1px solid rgba(255,255,255,.14); }
.framework-node { position: absolute; top: -2.6rem; left: 0; width: .8rem; height: .8rem; border: 2px solid #062c4a; border-radius: 50%; background: var(--accent-aqua); }
.framework-step + .framework-step .framework-node { left: 1.3rem; }
.framework-track h3 { margin: .55rem 0 .6rem; color: var(--white); font-size: var(--text-subtitle); font-weight: 800; }
.framework-track p { margin: 0; color: #b5cbd8; font-size: var(--text-label-lg); line-height: 1.65; }
.framework-out { margin-top: 1rem !important; padding-top: .85rem; border-top: 1px solid rgba(255,255,255,.14); color: #dbeaf2 !important; }
.framework-out span { display: block; margin-bottom: .3rem; color: var(--accent-aqua); font-size: var(--text-micro); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

/* PAM: use cases */
.use-case-section { background: var(--soft); }
.use-case-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.use-case-card { display: grid; padding: 1.5rem 1.5rem 1.4rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); grid-template-rows: auto auto 1fr auto; box-shadow: var(--shadow-sm); }
.use-case-icon { display: grid; width: 2.6rem; height: 2.6rem; border-radius: .75rem; background: var(--tint); color: var(--primary); place-items: center; }
.use-case-grid h3 { margin: 1.05rem 0 .5rem; font-size: var(--text-subtitle); font-weight: 800; letter-spacing: -.025em; }
.use-case-grid p { margin: 0; color: var(--muted); font-size: var(--text-label-lg); line-height: 1.65; }
.use-case-change { margin-top: 1.2rem !important; padding-top: .85rem; border-top: 1px solid var(--border); color: var(--slate-soft) !important; font-weight: 700; }
.use-case-change span { display: block; margin-bottom: .3rem; color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

/* PAM: engagement pathway */
.engagement-section { background: var(--white); }
.engagement-layout { display: grid; grid-template-columns: 1.1fr .72fr; align-items: start; gap: clamp(2.5rem, 6vw, 5.5rem); }
.engagement-steps { margin: 0; padding: 0; border-top: 1px solid var(--border); list-style: none; counter-reset: none; }
.engagement-steps li { display: grid; padding: 1.25rem 0; border-bottom: 1px solid var(--border); grid-template-columns: 1fr; align-items: start; gap: 1rem; }
.engagement-steps strong { display: block; color: var(--ink); font-size: var(--text-body-small); font-weight: 800; letter-spacing: -.02em; }
.engagement-steps p { margin: .38rem 0 0; max-width: 56ch; color: var(--muted); font-size: var(--text-label-lg); line-height: 1.65; }
.bring-panel { position: sticky; top: calc(var(--header-height) + 1.5rem); display: grid; padding: 1.8rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--grad-soft); gap: 1.35rem; }
.engagement-main { min-width: 0; }
.bring-block { min-width: 0; }
.bring-panel h3 { margin: 0 0 1.1rem; font-size: var(--text-card-title); font-weight: 800; }
.bring-panel ul { display: grid; margin: 0; padding: 0; gap: .8rem; list-style: none; }
.bring-panel li { position: relative; padding-left: 1.25rem; color: var(--slate-soft); font-size: var(--text-label-lg); font-weight: 700; line-height: 1.55; }
.bring-panel li::before { position: absolute; top: .55em; left: 0; width: .42rem; height: .42rem; border-radius: 50%; background: var(--teal); content: ""; }
.bring-note { margin: 0; padding-top: 1.25rem; border-top: 1px solid rgba(0,105,180,.18); color: var(--muted); font-size: var(--text-label-lg); line-height: 1.65; }
.bring-cta { justify-content: center; width: 100%; }

/* Industries */
.industries-page .page-section-head { padding-top: 1.35rem; border-top: 1px solid var(--border); align-items: start; }
.industries-page .page-section-head .page-kicker { padding-top: .35rem; }

/* Industries hero: operating characteristics */
.industries-hero-aside { width: min(100%, 430px); justify-self: end; }
.context-label { margin: 0 0 1.1rem; color: var(--muted); font-size: var(--text-label); font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.context-list { display: grid; margin: 0; padding: 0; gap: .7rem; list-style: none; }
.context-list li { display: grid; padding: 1.1rem 1.2rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: rgba(255,255,255,.78); grid-template-columns: 2.5rem 1fr; align-items: center; gap: .95rem; box-shadow: var(--shadow-sm); }
.context-icon { display: grid; width: 2.4rem; height: 2.4rem; border-radius: .7rem; background: var(--tint); color: var(--primary); place-items: center; }
.context-icon svg { width: 1.15rem; height: 1.15rem; }
.context-list strong { display: block; margin-top: .2rem; color: var(--ink); font-size: var(--text-ui); font-weight: 800; }
.context-list small { display: block; margin-top: .18rem; color: var(--muted); font-size: var(--text-label); line-height: 1.45; }

/* Industries: sector directory */
.industry-directory { background: var(--white); }
.sector-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.sector-card { display: grid; padding: clamp(1.5rem, 2.6vw, 2rem); border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); grid-template-rows: auto auto 1fr auto; box-shadow: var(--shadow-sm); }
.sector-card-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.sector-card-head > span:first-child { color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.sector-card-icon { display: grid; width: 2.4rem; height: 2.4rem; border-radius: .7rem; background: var(--tint); color: var(--primary); place-items: center; }
.sector-card-icon svg { width: 1.15rem; height: 1.15rem; }
.sector-card h3 { max-width: 24ch; margin: 1.15rem 0 1.3rem; font-size: var(--text-subheading); line-height: 1.18; letter-spacing: -.03em; }
.sector-label { margin: 0 0 .7rem; color: var(--slate-soft); font-size: var(--text-micro); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.priority-list { display: grid; margin: 0 0 1.4rem; padding: 0; grid-template-columns: repeat(2, 1fr); gap: .5rem 1.1rem; list-style: none; }
.priority-list li { position: relative; padding-left: 1.05rem; color: var(--muted); font-size: var(--text-label-lg); line-height: 1.5; }
.priority-list li::before { position: absolute; top: .52em; left: 0; width: .34rem; height: .34rem; border-radius: 50%; background: var(--teal); content: ""; }
.sector-card-body { min-width: 0; }
.sector-card-foot { padding-top: 1.25rem; border-top: 1px solid var(--border); }
.pathway-tags { display: flex; margin: 0; padding: 0; flex-wrap: wrap; gap: .45rem; list-style: none; }
.pathway-tags a { display: inline-block; padding: .38rem .7rem; border: 1px solid var(--border); border-radius: var(--radius-pill); background: var(--soft); color: var(--slate-soft); font-size: var(--text-label); font-weight: 700; line-height: 1.3; transition: background .18s ease, border-color .18s ease, color .18s ease; }
.pathway-tags a:hover { border-color: rgba(0,105,180,.35); background: var(--tint); color: var(--primary); }
.pathway-tags a:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }

/* Industries: cross-industry routes */
.cross-use-cases { background: linear-gradient(170deg, #f2f9fd 0%, #f8fcff 48%, #f1fbf8 100%); }
.route-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.route-card { position: relative; overflow: hidden; display: grid; min-height: 12rem; padding: 1.5rem 1.5rem 1.35rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); grid-template-rows: auto 1fr auto; gap: 1.05rem; box-shadow: var(--shadow-sm); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.route-card::before { position: absolute; top: 0; right: 0; left: 0; height: 3px; background: var(--grad-text); transform: scaleX(0); transform-origin: left center; transition: transform .26s ease; content: ""; }
.route-card:hover { transform: translateY(-3px); border-color: rgba(0,105,180,.32); box-shadow: var(--shadow-card); }
.route-card:hover::before, .route-card:focus-visible::before { transform: scaleX(1); }
.route-card:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.route-top { display: flex; align-items: center; justify-content: flex-end; }
.route-icon { display: grid; width: 2.35rem; height: 2.35rem; border-radius: .7rem; background: var(--tint); color: var(--primary); place-items: center; transition: background .2s ease, color .2s ease; }
.route-icon svg { width: 1.15rem; height: 1.15rem; }
.route-card:hover .route-icon { background: var(--grad-brand); color: var(--white); }
.route-card strong { align-self: start; max-width: 22ch; color: var(--ink); font-size: var(--text-subtitle); font-weight: 800; line-height: 1.3; letter-spacing: -.02em; }
.route-dest { display: flex; padding-top: .95rem; border-top: 1px solid var(--border); align-items: center; justify-content: space-between; color: var(--muted); font-size: var(--text-label); font-weight: 700; line-height: 1.35; gap: .75rem; transition: color .2s ease; }
.route-dest svg { flex: 0 0 auto; width: .95rem; height: .95rem; transition: transform .2s ease; }
.route-card:hover .route-dest { color: var(--primary); }
.route-card:hover .route-dest svg { transform: translateX(3px); }

/* Partners & proof */
.partners-page .page-section-head { padding-top: 1.35rem; border-top: 1px solid var(--border); align-items: start; }
.partners-page .page-section-head .page-kicker { padding-top: .35rem; }

/* Partners hero: index of the evidence on this page */
.proof-index { width: min(100%, 440px); justify-self: end; }
.proof-index-label { margin: 0 0 1.1rem; color: var(--muted); font-size: var(--text-label); font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.proof-index-list { display: grid; gap: .7rem; }
.proof-index-card { display: grid; padding: 1.1rem 1.2rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: rgba(255,255,255,.82); grid-template-columns: 2.5rem 1fr auto; align-items: center; gap: .95rem; box-shadow: var(--shadow-sm); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.proof-index-card:hover { transform: translateY(-2px); border-color: rgba(0,105,180,.32); box-shadow: var(--shadow-card); }
.proof-index-card:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.proof-index-icon { display: grid; width: 2.4rem; height: 2.4rem; border-radius: .7rem; background: var(--tint); color: var(--primary); place-items: center; transition: background .2s ease, color .2s ease; }
.proof-index-icon svg { width: 1.15rem; height: 1.15rem; }
.proof-index-card:hover .proof-index-icon { background: var(--grad-brand); color: var(--white); }
.proof-index-copy strong { display: block; color: var(--ink); font-size: var(--text-ui); font-weight: 800; }
.proof-index-copy small { display: block; margin-top: .2rem; color: var(--muted); font-size: var(--text-label); line-height: 1.45; }
.proof-index-card > svg { width: 1rem; height: 1rem; color: var(--primary); transition: transform .2s ease; }
.proof-index-card:hover > svg { transform: translateX(3px); }

/* Shared: pre-publication callout */
.publication-note { display: grid; margin-top: clamp(1.6rem, 3vw, 2.2rem); padding: 1.1rem 1.3rem; border: 1px solid #efd9ab; border-left: 3px solid var(--amber); border-radius: var(--radius-sm); background: #fffaf1; gap: .5rem; }
.publication-note-label { display: flex; align-items: center; color: #8a5a06; font-size: var(--text-micro); font-weight: 800; letter-spacing: .1em; gap: .45rem; text-transform: uppercase; }
.publication-note-label svg { width: .95rem; height: .95rem; }
.publication-note p { margin: 0; max-width: 92ch; color: #6f5322; font-size: var(--text-label-lg); line-height: 1.65; }

/* Partners: vendor ecosystem grouped by domain */
.partner-proof { background: var(--white); }
.vendor-block { display: grid; gap: 1rem; }
.vendor-group { display: grid; padding: 1.4rem 1.5rem 1.5rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); box-shadow: var(--shadow-sm); }
.domain-label { display: flex; margin: 0 0 1.25rem; padding-bottom: .9rem; border-bottom: 1px solid var(--border); align-items: center; color: var(--ink); font-size: var(--text-ui); font-weight: 800; letter-spacing: -.01em; gap: .65rem; }
.domain-icon { display: grid; width: 2rem; height: 2rem; border-radius: .55rem; background: var(--tint); color: var(--primary); place-items: center; }
.domain-icon svg { width: 1rem; height: 1rem; }
.vendor-row { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--radius-sm); overflow: hidden; list-style: none; }
.vendor-logo { display: grid; min-height: 6.5rem; padding: 1.1rem; background: var(--soft); place-items: center; }
.vendor-logo img { width: auto; max-width: 9rem; max-height: 2.1rem; object-fit: contain; }
/* optical balance: square glyph marks need more height than wide wordmarks to read at the same weight */
.vendor-logo.is-glyph img { max-height: 2.75rem; max-width: 2.75rem; }
.vendor-logo.is-standard img { max-height: 2.15rem; max-width: 8.5rem; }
.vendor-logo.is-wide img { max-height: 1.6rem; max-width: 9.5rem; }

/* Partners: professional certifications */
.credentials-proof { background: var(--soft); }
.credential-groups { display: grid; gap: 1rem; }
.credential-card { padding: 1.4rem 1.5rem 1.5rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); box-shadow: var(--shadow-sm); }
.credential-badges { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--radius-sm); overflow: hidden; list-style: none; }
.credential-badges li { display: grid; min-height: 7.2rem; padding: .85rem; background: var(--soft); place-items: center; }
.credential-badges img { width: auto; max-width: 5.4rem; max-height: 3.4rem; object-fit: contain; }

/* Partners: corporate marks with verification status */
.corporate-proof-page { background: var(--white); }
.mark-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.mark-card { display: grid; padding: 1.4rem 1.5rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); grid-template-columns: 7.5rem 1fr; align-items: start; gap: 1.3rem; box-shadow: var(--shadow-sm); }
.mark-logo { display: grid; min-height: 4.6rem; padding: .6rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--soft); place-items: center; }
.mark-logo img { width: auto; max-width: 100%; max-height: 3.4rem; object-fit: contain; }
.mark-meta strong { display: block; color: var(--ink); font-size: var(--text-ui); font-weight: 800; }
.mark-meta p { margin: .35rem 0 .8rem; color: var(--muted); font-size: var(--text-label-lg); line-height: 1.6; }
.mark-status { display: inline-flex; padding: .35rem .65rem .35rem .55rem; border-radius: var(--radius-pill); align-items: flex-start; font-size: var(--text-label); font-weight: 700; line-height: 1.4; gap: .4rem; }
.mark-status svg { flex: 0 0 auto; width: .9rem; height: .9rem; margin-top: .1rem; }
.mark-status.is-pending { background: #fbeed8; color: #7d5205; }
.mark-status.is-blocked { background: #fbdcdc; color: #8c2a2a; }

/* Partners: evidence checklist */
.evidence-reserve { background: var(--grad-soft); }
.evidence-reserve-inner { display: grid; grid-template-columns: .82fr 1.18fr; align-items: start; gap: clamp(2.5rem, 6vw, 5.5rem); }
.evidence-reserve h2 { max-width: 16ch; margin: 1rem 0; }
.evidence-reserve p { max-width: 52ch; color: var(--muted); font-size: var(--text-body-small); line-height: 1.75; }
.evidence-checklist { display: grid; margin: 0; padding: 1.5rem 1.6rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: rgba(255,255,255,.72); list-style: none; }
.evidence-checklist li { display: grid; padding: 1rem 0; grid-template-columns: 1fr; align-items: start; gap: 1rem; }
.evidence-checklist li + li { border-top: 1px solid var(--border); }
.evidence-checklist strong { display: block; color: var(--ink); font-size: var(--text-body-small); font-weight: 800; letter-spacing: -.02em; }
.evidence-checklist p { margin: .3rem 0 0; max-width: 54ch; color: var(--muted); font-size: var(--text-label-lg); line-height: 1.6; }

/* Contact */
.contact-page-main { background: var(--soft); }
.contact-page .page-section-head { padding-top: 1.35rem; border-top: 1px solid var(--border); align-items: start; }
.contact-page .page-section-head .page-kicker { padding-top: .35rem; }
.contact-hero { padding: clamp(3rem, 5vw, 5rem) 0 2.2rem; background: radial-gradient(circle at 85% 0%, rgba(16,169,207,.12), transparent 26rem), var(--soft); }
.contact-hero-grid { display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: clamp(2.5rem, 6vw, 5.5rem); }
.contact-hero h1 { max-width: 19ch; margin: 1rem 0 .9rem; font-size: var(--text-hero); font-weight: 800; line-height: 1.12; letter-spacing: -.045em; }
.contact-hero p { max-width: 58ch; margin: 0; color: var(--muted); font-size: var(--text-lead); line-height: 1.68; }
.conversation-routes { display: grid; }
.contact-hero .route-choice-label { margin: 0 0 1.1rem; color: var(--slate-soft); font-size: var(--text-label); font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.route-choice-list { display: grid; gap: .7rem; }
.route-choice { display: grid; padding: 1.1rem 1.2rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--white); grid-template-columns: 2.5rem 1fr auto; align-items: center; gap: .95rem; box-shadow: var(--shadow-sm); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.route-choice:hover { transform: translateY(-2px); border-color: rgba(0,105,180,.32); box-shadow: var(--shadow-card); }
.route-choice:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.route-choice-icon { display: grid; width: 2.4rem; height: 2.4rem; border-radius: .7rem; background: var(--tint); color: var(--primary); place-items: center; transition: background .2s ease, color .2s ease; }
.route-choice-icon svg { width: 1.15rem; height: 1.15rem; }
.route-choice:hover .route-choice-icon { background: var(--grad-brand); color: var(--white); }
.route-choice-copy strong { display: block; color: var(--ink); font-size: var(--text-ui); font-weight: 800; }
.route-choice-copy small { display: block; margin-top: .2rem; color: var(--muted); font-size: var(--text-label); line-height: 1.45; }
.route-choice-arrow { width: 1rem; height: 1rem; color: var(--primary); transition: transform .2s ease; }
.route-choice:hover .route-choice-arrow { transform: translateX(3px); }
.contact-workspace { padding: 2.2rem 0 var(--section-y); }
.contact-workspace-grid { display: grid; grid-template-columns: 1.12fr .72fr; align-items: start; gap: 1.4rem; }
.contact-form-card { padding: clamp(1.5rem, 3.5vw, 3rem); border: 1px solid var(--border); border-radius: 1.1rem; background: var(--white); box-shadow: var(--shadow-card); }
.contact-form-head { display: flex; margin-bottom: 1.6rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--border); align-items: flex-start; justify-content: space-between; gap: 1.2rem; }
.contact-form-head h2 { max-width: 18ch; margin: .35rem 0 0; font-size: var(--text-subheading); }
.contact-form-head span:last-child { padding: .35rem .65rem; border: 1px solid var(--border); border-radius: 999px; color: var(--muted); font-size: var(--text-micro); font-weight: 800; white-space: nowrap; }
.contact-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.contact-form-grid label { display: grid; gap: .45rem; color: var(--ink); font-size: var(--text-label-lg); font-weight: 800; }
.contact-form-grid .field-wide { grid-column: 1 / -1; }
.contact-form-grid input, .contact-form-grid select, .contact-form-grid textarea { width: 100%; min-height: 3.2rem; padding: .75rem .9rem; border: 1px solid var(--border); border-radius: .75rem; background: var(--soft); color: var(--ink); font-size: var(--text-body-small); outline: none; }
.contact-form-grid textarea { min-height: 7rem; resize: vertical; }
.contact-form-grid input:focus, .contact-form-grid select:focus, .contact-form-grid textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(0,105,180,.12); }
.contact-form-submit { display: flex; margin-top: 1.2rem; align-items: center; gap: 1rem; }
.contact-form-submit .button { flex: 1; }
.contact-form-submit small { max-width: 30ch; color: var(--muted); font-size: var(--text-micro); line-height: 1.5; }
.contact-form-status { margin: .8rem 0 0; color: var(--teal); font-size: var(--text-label-lg); font-weight: 700; }
.contact-side { position: sticky; top: calc(var(--header-height) + 1.5rem); display: grid; gap: 1.4rem; }
.contact-panel { padding: 1.5rem; border: 1px solid var(--border); border-radius: 1rem; background: var(--white); }
.contact-panel h2 { margin: 0 0 1.1rem; font-size: var(--text-body); letter-spacing: -.025em; }
.direct-contact-list { display: grid; gap: .7rem; }
.direct-contact-list a { display: grid; min-height: 4.1rem; padding: .7rem; border-radius: .75rem; background: #f6f9fb; grid-template-columns: 2.3rem 1fr; align-items: center; gap: .7rem; }
.direct-contact-list span { display: grid; width: 2.1rem; height: 2.1rem; border-radius: .6rem; background: var(--white); color: var(--primary); place-items: center; }
.direct-contact-list small, .direct-contact-list strong { display: block; }
.direct-contact-list small { color: var(--muted); font-size: var(--text-micro); text-transform: uppercase; }
.direct-contact-list strong { color: var(--ink); font-size: var(--text-label-lg); }
.address-panel address { margin: 0; color: var(--muted); font-size: var(--text-label-lg); font-style: normal; line-height: 1.75; }
.address-panel address strong { display: block; margin-bottom: .35rem; color: var(--ink); font-size: .88rem; }
.next-steps { background: var(--white); }
.next-step-rail { position: relative; display: grid; padding-top: 2.1rem; grid-template-columns: repeat(4, 1fr); gap: 1px; }
.next-step-rail::before { position: absolute; top: 0; right: 0; left: 0; height: 2px; border-radius: 2px; background: linear-gradient(90deg, #cfe1ec 0%, var(--sky) 52%, var(--primary) 100%); content: ""; }
.next-step { position: relative; padding: 0 1.4rem 0 0; }
.next-step + .next-step { padding-left: 1.4rem; border-left: 1px solid var(--border); }
.next-step-node { position: absolute; top: -2.5rem; left: 0; width: .8rem; height: .8rem; border: 2px solid var(--white); border-radius: 50%; background: #9dc4da; box-shadow: 0 0 0 3px rgba(0,105,180,.1); }
.next-step + .next-step .next-step-node { left: 1.4rem; }
.next-step:nth-child(3) .next-step-node { background: var(--sky); }
.next-step:nth-child(4) .next-step-node { background: var(--primary); }
.next-step h3 { margin: .55rem 0 .55rem; font-size: var(--text-subtitle); font-weight: 800; }
.next-step p { margin: 0; color: var(--muted); font-size: var(--text-label-lg); line-height: 1.65; }

@media (max-width: 1024px) {
  .page-hero-grid { min-height: 0; grid-template-columns: 1fr .72fr; gap: 3rem; }
  .page-section-head { grid-template-columns: .55fr 1.2fr; }
  .page-section-head > p { grid-column: 2; }
  .practice-row { grid-template-columns: 4rem 1fr 1.05fr; }
  .practice-list::before { left: 1.15rem; }
  .need-router { gap: .85rem; }
  .need-card { min-height: 11.5rem; padding: 1.3rem; }
  .framework-track { grid-template-columns: repeat(3, 1fr); row-gap: 2.4rem; }
  .framework-step:nth-child(4) { padding-left: 0; border-left: 0; }
  .framework-step:nth-child(4) .framework-node { left: 0; }
  .use-case-grid { grid-template-columns: repeat(2, 1fr); }
  .access-compare { gap: .85rem; }
  .compare-panel { padding: 1.25rem 1.3rem 1.4rem; }
  .signal-grid { grid-template-columns: repeat(2, 1fr); }
  .vendor-row { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 900px) {
  .page-hero-grid, .engagement-layout, .evidence-reserve-inner, .contact-hero-grid, .contact-workspace-grid { grid-template-columns: 1fr; }
  .bring-panel { position: static; }
  .access-compare { grid-template-columns: 1fr; }
  .framework-track { grid-template-columns: repeat(2, 1fr); }
  .framework-step:nth-child(odd) { padding-left: 0; border-left: 0; }
  .framework-step:nth-child(odd) .framework-node { left: 0; }
  .page-hero-grid { padding-block: 3.5rem 4rem; }
  .solutions-hero-aside, .pam-hero-visual, .industries-hero-aside, .proof-index, .product-index { width: min(92%, 500px); margin-inline: auto; justify-self: center; }
  .product-lead-grid { grid-template-columns: 1fr; }
  .page-section-head { grid-template-columns: 1fr 1fr; }
  .page-section-head .page-kicker { grid-column: 1 / -1; }
  .page-section-head > p { grid-column: auto; }
  .practice-row { grid-template-columns: 3.5rem 1fr; }
  .practice-row .capability-panel { grid-column: 2; }
  .practice-list::before { left: 1.15rem; }
  .need-router { grid-template-columns: repeat(2, 1fr); }
  .ownership-grid { grid-template-columns: 1fr; padding-top: 0; gap: .85rem; }
  .ownership-grid::before { top: 0; right: auto; bottom: 0; left: .5rem; width: 2px; height: auto; background: linear-gradient(180deg, #cfe1ec 0%, var(--sky) 52%, var(--primary) 100%); }
  .ownership-step { min-height: 0; margin-left: 1.9rem; }
  .ownership-node { top: 1.85rem; left: -2.32rem; }
  .ownership-axis { display: none; }
  .route-grid { grid-template-columns: repeat(2, 1fr); }
  .priority-list { grid-template-columns: 1fr; }
  .mark-card { grid-template-columns: 6.5rem 1fr; gap: 1rem; }
  .mark-grid { grid-template-columns: 1fr; }
  .contact-hero-grid { align-items: start; }
  .next-step-rail { grid-template-columns: repeat(2, 1fr); row-gap: 2.2rem; }
  .next-step:nth-child(3) { padding-left: 0; border-left: 0; }
  .next-step:nth-child(3) .next-step-node { left: 0; }
}

@media (max-width: 640px) {
  .page-hero-grid { padding-block: 3rem 3.5rem; gap: 2.8rem; }
  .page-hero-copy h1, .contact-hero h1 { max-width: 16ch; font-size: clamp(2.15rem, 9.2vw, 2.65rem); }
  .page-hero-copy > p, .contact-hero p { font-size: var(--text-body-small); line-height: 1.7; }
  .page-section-head { display: block; margin-bottom: 2rem; }
  .page-section-head h2 { max-width: 19ch; margin: .8rem 0 .9rem; font-size: clamp(1.85rem, 7.8vw, 2.25rem); }
  .page-section-head.center h2 { margin-inline: auto; }
  .page-closing-inner { grid-template-columns: 1fr; gap: 1.6rem; }
  .page-closing .button { width: 100%; }
  .solutions-hero-aside, .pam-hero-visual, .industries-hero-aside, .proof-index, .product-index { width: calc(100% - .75rem); margin-left: 0; }
  .solutions-hero-aside figcaption { right: -.75rem; }
  .sector-grid { grid-template-columns: 1fr; }
  .industries-hero-aside { width: min(92%, 500px); }
  .need-router { grid-template-columns: 1fr; gap: .75rem; }
  .need-card { min-height: 0; padding: 1.15rem 1.2rem 1.05rem; grid-template-rows: auto auto auto; gap: .7rem; }
  .need-card strong { max-width: none; }
  .need-dest { padding-top: .8rem; }
  .route-grid { grid-template-columns: 1fr; }
  .route-card { min-height: 0; padding: 1.15rem 1.2rem 1.05rem; gap: .7rem; }
  .route-card strong { max-width: none; }
  .practice-row { padding-block: 2.3rem; grid-template-columns: 1fr; gap: 1.2rem; }
  .practice-row .capability-panel { grid-column: auto; padding: 1.2rem 1.15rem 1.25rem; }
  .practice-list::before { display: none; }
  .practice-meta { display: flex; align-items: center; gap: .85rem; }
  .capability-list { grid-template-columns: 1fr; }
  .capability-feature { grid-template-columns: auto 1fr; row-gap: .5rem; }
  .capability-feature-arrow { display: none; }
  .framework-track { grid-template-columns: 1fr; padding-top: 0; row-gap: 0; }
  .framework-track::before { top: .55rem; right: auto; bottom: .55rem; left: .35rem; width: 2px; height: auto; background: linear-gradient(180deg, rgba(114,216,218,.35) 0%, var(--accent-aqua) 55%, #9ef0dd 100%); }
  .framework-step, .framework-step + .framework-step { padding: 1.35rem 0 1.35rem 1.9rem; border-left: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
  .framework-step:last-child { border-bottom: 0; }
  .framework-node, .framework-step + .framework-step .framework-node { top: 1.85rem; left: 0; }
  .use-case-grid { grid-template-columns: 1fr; }
  .use-case-card { grid-template-rows: auto auto auto auto; }
  .signal-grid { grid-template-columns: 1fr; }
  .compare-panel { padding: 1.2rem 1.15rem 1.3rem; }
  .sector-card { padding: 1.3rem 1.25rem; }
  .sector-card h3 { margin: 1rem 0 1.1rem; }
  .vendor-row { grid-template-columns: repeat(2, 1fr); }
  .vendor-logo { min-height: 5.6rem; }
  .credential-badges li { min-height: 6.2rem; }
  .vendor-group, .credential-card { padding: 1.15rem 1.2rem 1.25rem; }
  .mark-card { grid-template-columns: 1fr; gap: .95rem; }
  .mark-logo { justify-self: start; width: 8rem; }
  .evidence-checklist { padding: 1.1rem 1.2rem; }
  .contact-hero { padding-top: 3rem; }
  .contact-workspace { padding-top: 1rem; }
  .contact-form-head { display: grid; }
  .contact-form-head span:last-child { width: max-content; }
  .contact-form-grid { grid-template-columns: 1fr; }
  .contact-form-grid .field-wide { grid-column: auto; }
  .contact-form-submit { align-items: stretch; flex-direction: column; }
  .next-step-rail { grid-template-columns: 1fr; padding-top: 0; }
  .next-step-rail::before { top: .5rem; right: auto; bottom: .5rem; left: .35rem; width: 2px; height: auto; background: linear-gradient(180deg, #cfe1ec 0%, var(--sky) 52%, var(--primary) 100%); }
  .next-step, .next-step + .next-step { padding: 1.3rem 0 1.3rem 1.9rem; border-left: 0; border-bottom: 1px solid var(--border); }
  .next-step:last-child { border-bottom: 0; }
  .next-step-node, .next-step + .next-step .next-step-node { top: 1.8rem; left: 0; }
  .contact-side { position: static; }
  .route-choice { padding: 1rem 1.05rem; }
}

/* Full-site refinement pass: richer section structure after client review */
.hero-orb { display: none; }

.about-proof-strip {
  padding: clamp(2.8rem, 5vw, 4.4rem) 0;
  border-block: 1px solid var(--border);
  background: linear-gradient(135deg, #f6fbfe 0%, #fff 48%, #edf9fb 100%);
}

.about-proof-grid {
  display: grid;
  grid-template-columns: .74fr .95fr .78fr;
  align-items: stretch;
  gap: 1.1rem;
}

.about-proof-grid figure {
  /* Let the desktop grid track define the media width. A fixed aspect ratio
     combined with row stretching made the figure wider than its column and
     pushed the image underneath the copy card. */
  width: 100%;
  min-width: 0;
  aspect-ratio: auto;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--deepest);
  box-shadow: var(--shadow-card);
}

.about-proof-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.about-proof-copy,
.about-proof-list {
  padding: 1.6rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: rgba(255,255,255,.86);
}

.about-proof-copy h2 {
  max-width: 19ch;
  margin: .75rem 0 .8rem;
  font-size: clamp(1.55rem, 2vw, 2rem);
}

.about-proof-copy p {
  margin: 0;
  color: var(--muted);
  font-size: var(--text-body-small);
  line-height: 1.75;
}

.about-proof-list {
  display: grid;
  margin: 0;
  padding-block: 1.25rem;
  list-style: none;
}

.about-proof-list li {
  padding: 1rem 0;
}

.about-proof-list li + li {
  border-top: 1px solid var(--border);
}

.about-proof-list strong,
.about-proof-list span {
  display: block;
}

.about-proof-list strong {
  color: var(--ink);
  font-size: var(--text-ui);
  font-weight: 800;
}

.about-proof-list span {
  margin-top: .28rem;
  color: var(--muted);
  font-size: var(--text-label-lg);
  line-height: 1.6;
}

.practice-row {
  grid-template-columns: 5rem minmax(180px, .62fr) .82fr 1.14fr;
  align-items: stretch;
}

.practice-media {
  position: relative;
  min-height: 15rem;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--deepest);
  box-shadow: var(--shadow-card);
}

.practice-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.practice-media::after {
  position: absolute;
  inset: 40% 0 0;
  background: linear-gradient(180deg, transparent, rgba(5, 28, 48, .82));
  content: "";
}

.practice-media figcaption {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  z-index: 1;
  color: #d9eef7;
  font-size: var(--text-label);
  font-weight: 750;
  line-height: 1.45;
}

.practice-copy {
  align-self: center;
}

.product-scope-strip {
  padding: clamp(2.8rem, 5vw, 4.5rem) 0;
  border-block: 1px solid rgba(0,105,180,.16);
  background: linear-gradient(135deg, #062a48 0%, #074d78 55%, #0a657f 100%);
  color: var(--white);
}

.product-scope-grid {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
}

.product-scope-media {
  /* The parent grid is align-items:center, so this figure sizes to content and
     min-height alone leaves its height indefinite — `height:100%` on the image
     then resolves to auto and the photo stops short, exposing the panel
     background below it. aspect-ratio gives a definite height to resolve
     against, and stays responsive where a fixed height would not. */
  aspect-ratio: 4 / 3;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--radius-md);
  background: #08263f;
  box-shadow: 0 22px 54px -32px rgba(0,0,0,.55);
}

.product-scope-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-scope-copy .page-kicker,
.product-scope-copy h2 {
  color: var(--white);
}

.product-scope-copy .page-kicker {
  color: #8ee3f2;
}

.product-scope-copy h2 {
  max-width: 23ch;
  margin: .85rem 0 .75rem;
  font-size: clamp(1.8rem, 2.45vw, 2.55rem);
}

.product-scope-copy > p {
  max-width: 62ch;
  margin: 0;
  color: #c5ddea;
  font-size: var(--text-body-small);
  line-height: 1.75;
}

.product-scope-points {
  display: grid;
  margin-top: 1.5rem;
  grid-template-columns: repeat(3, 1fr);
  gap: .75rem;
}

.product-scope-points article {
  padding: 1rem;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: var(--radius-sm);
  background: rgba(255,255,255,.08);
}

.product-scope-points span {
  display: grid;
  width: 2rem;
  height: 2rem;
  margin-bottom: .85rem;
  border-radius: .6rem;
  background: rgba(255,255,255,.12);
  color: #7adcf0;
  place-items: center;
}

.product-scope-points strong,
.product-scope-points small {
  display: block;
}

.product-scope-points strong {
  color: var(--white);
  font-size: var(--text-ui);
  font-weight: 800;
}

.product-scope-points small {
  margin-top: .2rem;
  color: #b8d2df;
  font-size: var(--text-label);
  line-height: 1.5;
}

.sector-card[style*="--sector-image"] {
  position: relative;
  overflow: hidden;
  padding-top: 10.8rem;
}

.sector-card[style*="--sector-image"]::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 9rem;
  background: linear-gradient(180deg, rgba(6,38,63,.08), rgba(6,38,63,.42)), var(--sector-image) center / cover;
  content: "";
}

.sector-card[style*="--sector-image"] .sector-card-head {
  position: relative;
  z-index: 1;
}

.proof-summary-band {
  padding: clamp(2rem, 4vw, 3.2rem) 0;
  border-bottom: 1px solid var(--border);
  background: var(--white);
}

.proof-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--border);
}

.proof-summary-grid article {
  display: grid;
  min-height: 11rem;
  padding: 1.35rem;
  background: linear-gradient(135deg, #fff, #f6fbfe);
  grid-template-rows: auto auto 1fr;
}

.proof-summary-grid span {
  display: grid;
  width: 2.35rem;
  height: 2.35rem;
  margin-bottom: 1rem;
  border-radius: .7rem;
  background: var(--tint);
  color: var(--primary);
  place-items: center;
}

.proof-summary-grid strong {
  color: var(--ink);
  font-size: var(--text-ui);
  font-weight: 800;
}

.proof-summary-grid p {
  margin: .35rem 0 0;
  color: var(--muted);
  font-size: var(--text-label-lg);
  line-height: 1.6;
}

.contact-visual-panel {
  /* Same indefinite-height trap as .product-scope-media: this sits inside
     .contact-side, which does not stretch it. */
  position: relative;
  aspect-ratio: 4 / 3;
  margin: 0;
  overflow: hidden;
  border-radius: 1rem;
  background: var(--deepest);
  box-shadow: var(--shadow-card);
}

.contact-visual-panel img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.contact-visual-panel::after {
  position: absolute;
  inset: 32% 0 0;
  background: linear-gradient(180deg, transparent, rgba(6, 38, 63, .86));
  content: "";
}

.contact-visual-panel figcaption {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  z-index: 1;
  color: var(--white);
}

.contact-visual-panel span,
.event-critical-copy .page-kicker {
  color: #8ee3f2;
}

.contact-visual-panel span {
  display: block;
  font-size: var(--text-micro);
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.contact-visual-panel strong {
  display: block;
  margin-top: .35rem;
  max-width: 28ch;
  font-size: var(--text-ui);
  line-height: 1.45;
}

.event-critical-band {
  padding: clamp(2.5rem, 5vw, 4.5rem) 0;
  background: var(--deepest);
  color: var(--white);
}

.event-critical-grid {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  align-items: center;
  gap: clamp(2rem, 5vw, 5rem);
}

.event-critical-copy h2 {
  max-width: 18ch;
  margin: .8rem 0 .75rem;
  color: var(--white);
  font-size: clamp(1.85rem, 2.6vw, 2.7rem);
}

.event-critical-copy p {
  max-width: 54ch;
  margin: 0;
  color: #b8d2df;
  font-size: var(--text-body-small);
  line-height: 1.75;
}

.event-critical-list {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(3, 1fr);
  gap: .85rem;
  list-style: none;
}

.event-critical-list li {
  padding: 1.1rem;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--radius-sm);
  background: rgba(255,255,255,.07);
}

.event-critical-list span {
  display: grid;
  width: 2.2rem;
  height: 2.2rem;
  margin-bottom: .9rem;
  border-radius: .65rem;
  background: rgba(255,255,255,.12);
  color: #7adcf0;
  place-items: center;
}

.event-critical-list strong,
.event-critical-list small {
  display: block;
}

.event-critical-list strong {
  color: var(--white);
  font-size: var(--text-ui);
  font-weight: 800;
}

.event-critical-list small {
  margin-top: .25rem;
  color: #bad0dc;
  font-size: var(--text-label);
  line-height: 1.5;
}

@media (max-width: 1024px) {
  .practice-row {
    grid-template-columns: 4rem minmax(180px, .8fr) 1fr;
  }

  .practice-media {
    grid-column: 2;
  }

  .practice-copy {
    grid-column: 3;
  }

  .practice-row .capability-panel {
    grid-column: 2 / -1;
  }
}

@media (max-width: 900px) {
  .about-proof-grid,
  .product-scope-grid,
  .event-critical-grid {
    grid-template-columns: 1fr;
  }

  .about-proof-grid figure,
  .product-scope-media {
    aspect-ratio: 16 / 9;
  }

  .proof-summary-grid,
  .product-scope-points,
  .event-critical-list {
    grid-template-columns: 1fr;
  }

  .practice-row {
    grid-template-columns: 3.5rem 1fr;
  }

  .practice-media,
  .practice-copy,
  .practice-row .capability-panel {
    grid-column: 2;
  }
}

@media (max-width: 640px) {
  .about-proof-strip,
  .proof-summary-band,
  .product-scope-strip,
  .event-critical-band {
    padding-block: 2.3rem;
  }

  .about-proof-grid figure,
  .product-scope-media,
  .contact-visual-panel {
    aspect-ratio: 16 / 9;
  }

  .about-proof-copy,
  .about-proof-list,
  .proof-summary-grid article {
    padding: 1.15rem;
  }

  .practice-row {
    grid-template-columns: 1fr;
  }

  .practice-media,
  .practice-copy,
  .practice-row .capability-panel {
    grid-column: auto;
  }

  .practice-media {
    min-height: 13rem;
  }

  .sector-card[style*="--sector-image"] {
    padding-top: 9.8rem;
  }

  .sector-card[style*="--sector-image"]::before {
    height: 8.25rem;
  }

  .product-scope-copy h2,
  .event-critical-copy h2 {
    font-size: clamp(1.75rem, 7.5vw, 2.2rem);
  }
}

/* ============================================================
   Client review pass 2 — brand lanes, open credential marks and
   a light graphic layer so flat sections stop reading as pale.
   ============================================================ */

/* Partners: each domain group scrolls, so new vendors can simply be appended
   to the lane without the row having to be rebalanced. */
.vendor-block { grid-template-columns: 1fr; }
.vendor-group { padding: 1.3rem 0 1.4rem; overflow: hidden; }
.vendor-group .domain-label { margin-inline: clamp(1.2rem, 2vw, 1.5rem); }
.vendor-flow { padding-block: 0; mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); }
.vendor-flow-lane { border: 0; }
/* Two classes deep so this beats the shared `.partner-flow .partner-matrix li`
   geometry set earlier in the sheet. */
.vendor-flow .vendor-flow-lane li { min-height: 5.6rem; padding: 1rem 1.25rem; border-right: 1px solid var(--border); background: transparent; }
.vendor-flow-lane img { width: auto; height: auto; max-width: 9rem; max-height: 2.1rem; opacity: .82; }
.vendor-flow-lane li:hover img { opacity: 1; }
/* Optical sizing: square glyph marks need more height than wide wordmarks
   to read at the same visual weight. */
.vendor-flow-lane .is-glyph img { max-width: 2.9rem; max-height: 2.9rem; }
.vendor-flow-lane .is-standard img { max-width: 8.5rem; max-height: 2.2rem; }
.vendor-flow-lane .is-wide img { max-width: 9.5rem; max-height: 1.7rem; }

/* Certifications: the client asked for bigger marks on transparent ground
   rather than small logos boxed into grey cells. */
/* Flex rather than an auto-fill grid: each group holds 10 marks, so a grid
   leaves the last row hard against the left edge with a wide dead gap beside
   it. Centring balances the orphan row and keeps full rows optically even. */
.partners-page .credential-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .5rem;
  border: 0;
  border-radius: 0;
  background: none;
  overflow: visible;
}
.partners-page .credential-badges li {
  flex: 0 1 8.5rem;
  min-height: 9.6rem;
  padding: .9rem;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.partners-page .credential-badges li:hover {
  transform: translateY(-2px);
  border-color: rgba(0,105,180,.16);
  background: rgba(255,255,255,.72);
}
.partners-page .credential-badges img {
  max-width: 100%;
  max-height: 7.2rem;
  mix-blend-mode: multiply;
}
.partners-page .credential-card { background: rgba(255,255,255,.7); }
.partners-page .mark-logo { border-color: transparent; background: transparent; }
.partners-page .mark-logo img { max-height: 4.2rem; mix-blend-mode: multiply; }
.partners-page .mark-card { grid-template-columns: 9rem 1fr; }

/* Light graphic layer: a soft brand wash, one aqua bloom and a faint
   engineering grid. Kept under 6% alpha so text contrast is untouched. */
.partner-proof,
.corporate-proof-page,
.risk-intro,
.use-case-section,
.engagement-section,
.industry-directory,
.delivery-models,
.about-lifecycle,
.about-values,
.about-method,
.next-steps,
.cross-use-cases {
  /* No overflow clipping here: .bring-panel and .contact-side rely on
     position: sticky, which a scroll container on an ancestor would break. */
  position: relative;
  isolation: isolate;
  /* The wash tints the ground under body copy. --muted (#64748b) only clears
     4.5:1 on pure white by a hair (4.76) and drops to 3.59 on the strongest
     point of this wash, so muted text is stepped down to --slate-soft
     (#526173), which holds 4.78 there and 6.33 on white. */
  --muted: #526173;
  --muted-on-tint: #526173;
}

.partner-proof::before,
.corporate-proof-page::before,
.risk-intro::before,
.use-case-section::before,
.engagement-section::before,
.industry-directory::before,
.delivery-models::before,
.about-lifecycle::before,
.about-values::before,
.about-method::before,
.next-steps::before,
.cross-use-cases::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    radial-gradient(38rem 28rem at 88% -10%, rgba(16,169,207,.10), transparent 70%),
    radial-gradient(32rem 24rem at -6% 108%, rgba(0,105,180,.085), transparent 70%),
    linear-gradient(180deg, rgba(0,105,180,.05) 1px, transparent 1px) 0 0 / 100% 44px,
    linear-gradient(90deg, rgba(0,105,180,.05) 1px, transparent 1px) 0 0 / 44px 100%;
  content: "";
  pointer-events: none;
}

/* The grid should fade out rather than run under the copy edge-to-edge. */
.partner-proof::after,
.corporate-proof-page::after,
.risk-intro::after,
.use-case-section::after,
.engagement-section::after,
.industry-directory::after,
.delivery-models::after,
.about-lifecycle::after,
.about-values::after,
.about-method::after,
.next-steps::after,
.cross-use-cases::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: radial-gradient(58% 46% at 50% 50%, rgba(255,255,255,.94), rgba(255,255,255,0) 78%);
  content: "";
  pointer-events: none;
}

.partner-proof > .container,
.corporate-proof-page > .container,
.risk-intro > .container,
.use-case-section > .container,
.engagement-section > .container,
.industry-directory > .container,
.delivery-models > .container,
.about-lifecycle > .container,
.about-values > .container,
.about-method > .container,
.next-steps > .container,
.cross-use-cases > .container {
  position: relative;
  z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
  .vendor-flow.is-ready .partner-matrix { animation: none; }
}

@media (max-width: 760px) {
  .partners-page .credential-badges li { flex-basis: 6.6rem; }
  .partners-page .credential-badges li { min-height: 7.4rem; }
  .partners-page .credential-badges img { max-height: 5.4rem; }
  .partners-page .mark-card { grid-template-columns: 1fr; }
}

/* Industries: cross-industry routes carry the same image treatment as the
   solutions need-router, so the two entry points read as one system. */
.route-card.image-route {
  position: relative;
  min-height: 14.5rem;
  padding: 1.35rem 1.4rem 1.25rem;
  border: 0;
  overflow: hidden;
  isolation: isolate;
}
.route-card.image-route::before {
  position: absolute;
  z-index: -2;
  inset: 0;
  /* .route-card::before is the 3px hover accent bar. On an absolutely
     positioned box an inherited `height` beats `inset`'s top/bottom pair, so
     without this reset the photo layer renders 3px tall and the card shows a
     bare gradient. */
  height: auto;
  background: var(--route-image) center / cover no-repeat;
  transform: scale(1);
  transform-origin: center;
  transition: transform .45s ease;
  content: "";
}
.route-card.image-route::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  height: auto;
  /* Light over the top third so the photograph reads, then dark under the
     title and destination. Title sits at roughly 50-70% of card height, where
     this holds ~0.68 alpha — white clears 6.8:1 on the brightest photo. */
  background: linear-gradient(180deg, rgba(3,27,46,.12) 0%, rgba(3,27,46,.50) 34%, rgba(3,27,46,.94) 74%);
  transform: none;
  transition: none;
  content: "";
}
.route-card.image-route:hover { border-color: transparent; }
.route-card.image-route:hover::before { transform: scale(1.04); }
.route-card.image-route .route-icon {
  border: 1px solid rgba(255,255,255,.24);
  background: rgba(5,52,84,.66);
  color: #fff;
  backdrop-filter: blur(8px);
}
.route-card.image-route:hover .route-icon { background: rgba(5,52,84,.9); color: #fff; }
.route-card.image-route strong { align-self: end; color: #fff; text-shadow: 0 1px 14px rgba(0,0,0,.28); }
.route-card.image-route .route-dest { border-top-color: rgba(255,255,255,.22); color: #cbe1e9; }
.route-card.image-route:hover .route-dest { color: #fff; }

/* Products: PAM use cases get a topic image band. The card keeps a light
   body because each one carries two lines of explanatory copy. */
.use-case-card.image-case {
  position: relative;
  overflow: hidden;
  padding-top: 10.2rem;
}
.use-case-card.image-case::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 8.4rem;
  background: linear-gradient(180deg, rgba(6,38,63,.06), rgba(6,38,63,.46)), var(--case-image) center / cover no-repeat;
  content: "";
}
.use-case-card.image-case .use-case-icon {
  position: relative;
  z-index: 1;
  margin-top: -2.7rem;
  border: 1px solid rgba(255,255,255,.75);
  background: var(--white);
  box-shadow: var(--shadow-sm);
}
.use-case-card.image-case h3 { margin-top: .85rem; }

@media (max-width: 760px) {
  .route-card.image-route { min-height: 12.5rem; }
  .use-case-card.image-case { padding-top: 9.2rem; }
  .use-case-card.image-case::before { height: 7.6rem; }
}

/* Icons on photographic cards sit at the top of the scrim, where it is only
   18% opaque. A white icon on a bright photo region needs the chip to carry
   it: at rgba(5,52,84,.82) the mark holds well clear of the 3:1 minimum. */
.route-card.image-route .route-icon,
.need-card.image-need .need-icon {
  background: rgba(5,52,84,.82);
}


/* ============================================================
   Solution tiles — four across.
   The 2-up card could not work: at ~580px wide a full-bleed image is either a
   4:1 letterbox or ~330px tall, and the copy ran to 83ch. Narrowing to four
   columns gives the photo a real 4:3 frame (~282x211) and drops the card to a
   single scannable line. The paragraph is gone; the capability list that used
   to sit in chips now *is* that line, so no fact was lost.
   ============================================================ */
.solution-grid { grid-template-columns: repeat(4, 1fr); gap: .9rem; }

.solution-card.solution-tile {
  grid-template-rows: auto auto 1fr auto;
  border-top-width: 3px;
}
.solution-card.solution-tile .solution-photo {
  height: auto;
  aspect-ratio: 4 / 3;
}
.solution-card.solution-tile h3 {
  margin: .95rem 0 .5rem;
  font-size: var(--text-subtitle);
  line-height: 1.25;
  letter-spacing: -.02em;
}
.solution-card.solution-tile > p {
  margin: 0;
  color: var(--slate-soft);
  font-size: var(--text-ui);
  font-weight: 600;
  line-height: 1.7;
}
.solution-card.solution-tile > a {
  margin-top: 1.05rem;
  align-self: end;
}

/* At two columns the card is ~450px wide, where a 4:3 frame would stand 338px
   tall above a title and one line. The wider card takes a wider crop. */
@media (max-width: 1120px) {
  .solution-grid { grid-template-columns: repeat(2, 1fr); }
  .solution-card.solution-tile .solution-photo { aspect-ratio: 16 / 9; }
}

@media (max-width: 560px) {
  .solution-grid { grid-template-columns: 1fr; }
}

/* These lists carry an icon marker instead of the 01/02/03 numerals they used
   to show — the numbering was decorative and told the reader nothing. The
   marker keeps each list's original accent colour, which the icon inherits
   through the global `svg { stroke: currentColor }`. */
.integration-points li > span,
.pam-control-list li > span,
.process-grid li > span {
  display: grid;
  justify-items: center;
  line-height: 1;
}

.integration-points li > span { color: #63d6c1; }
.pam-control-list li > span { color: #0b7f6c; }
.process-grid li > span { color: var(--primary); }

.integration-points li > span svg,
.pam-control-list li > span svg,
.process-grid li > span svg {
  box-sizing: content-box;
  width: 1.05rem;
  height: 1.05rem;
  padding: .45rem;
  border-radius: .6rem;
}

.integration-points li > span svg {
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.09);
}

.pam-control-list li > span svg,
.process-grid li > span svg {
  border: 1px solid rgba(0,105,180,.14);
  background: var(--tint);
}

/* the marker column has to hold a ~2rem chip */
.pam-control-list li { grid-template-columns: 2.4rem 1fr; }

/* ============================================================
   Industries: sector cards
   The six cards used to show generic ICT photography that matched no sector,
   and the same six files appeared again on the route cards further down the
   same page. They now carry purpose-drawn sector graphics (SVG, ~1.5KB each),
   so the band is finished artwork rather than a stock photo behind a scrim.
   ============================================================ */
.sector-card.is-graphic[style*="--sector-image"] {
  padding-top: 11.4rem;
}

/* Artwork, not a photo: no darkening overlay, and the band matches the 4:1
   aspect the SVGs are drawn to so background-size: cover cannot crop them. */
.sector-card.is-graphic[style*="--sector-image"]::before {
  height: 9.4rem;
  background: var(--sector-image) center / cover no-repeat;
}

.sector-card.is-graphic .sector-card-head {
  padding-bottom: .2rem;
}

.sector-card.is-graphic .sector-card-head > span:first-child {
  color: var(--primary);
}

.sector-card.is-graphic h3 {
  margin: .55rem 0 1.1rem;
}

/* Priorities lost their "Operating priorities" caption, so they need to read as
   a distinct band from the linked pathways underneath. */
.sector-card.is-graphic .priority-list {
  margin-bottom: 1.3rem;
}

@media (max-width: 900px) {
  .sector-card.is-graphic[style*="--sector-image"] { padding-top: 10rem; }
  .sector-card.is-graphic[style*="--sector-image"]::before { height: 8rem; }
}

/* ============================================================
   Products: engagement pathway + portfolio index
   ============================================================ */

/* The six steps lost their 01-06 numerals and were left as six identical
   bold-plus-paragraph blocks separated by hairlines — no anchor for the eye,
   and no signal that they run in order. A connector rail with a marker per
   step carries the sequence that the numerals used to. */
.engagement-steps {
  position: relative;
}

.engagement-steps::before {
  position: absolute;
  top: 2.6rem;
  bottom: 2.6rem;
  left: 1.3rem;
  width: 2px;
  border-radius: 2px;
  background: linear-gradient(180deg, #cfe1ec, var(--sky) 55%, var(--primary));
  content: "";
}

.engagement-steps li {
  grid-template-columns: 2.6rem 1fr;
  gap: 1.15rem;
}

.step-marker {
  position: relative;
  z-index: 1;
  display: grid;
  width: 2.6rem;
  height: 2.6rem;
  border: 1px solid rgba(0,105,180,.18);
  border-radius: 50%;
  /* opaque and wider than the 2px rail, so the line reads as passing behind
     each marker. No outer ring: this section carries the tinted wash, where a
     white halo would show against the ground. */
  background: var(--white);
  color: var(--primary);
  place-items: center;
}

.step-marker svg {
  width: 1.1rem;
  height: 1.1rem;
}

/* Two products is a thin column beside a full-height hero. Giving the cards a
   panel makes the sparseness read as a deliberate index rather than a gap —
   and it already has room for the products the client plans to add. */
.product-index-list {
  display: grid;
  padding: .8rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: rgba(255,255,255,.55);
  gap: .7rem;
}

.product-index-list .product-index-card {
  padding: 1.5rem 1.4rem;
  grid-template-columns: 3.1rem 1fr auto;
}

.product-index-list .product-index-icon {
  width: 3rem;
  height: 3rem;
}

.product-index-list .product-index-icon svg {
  width: 1.4rem;
  height: 1.4rem;
}

.product-index-list .product-index-copy strong {
  font-size: var(--text-body-small);
}

@media (max-width: 900px) {
  .engagement-steps::before { left: 1.1rem; }
  .engagement-steps li { grid-template-columns: 2.2rem 1fr; gap: .9rem; }
  .step-marker { width: 2.2rem; height: 2.2rem; }
  .step-marker svg { width: .95rem; height: .95rem; }
}

/* ============================================================
   Primary navigation: Solutions and Products carry child pages
   Event Internet sits under Solutions, PAM Services under Products. The group
   opens on hover and on :focus-within, so the child links are reachable by
   tabbing without needing a disclosure button. JS only adds Escape-to-close.
   ============================================================ */
.nav-group {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.nav-caret {
  width: .7rem;
  height: .7rem;
  margin-left: .3rem;
  transition: transform .2s ease;
}

.nav-group:hover .nav-caret,
.nav-group:focus-within .nav-caret {
  transform: rotate(180deg);
}

.nav-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 60;
  display: grid;
  width: max-content;
  min-width: 11rem;
  margin-top: .55rem;
  padding: .45rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
  box-shadow: var(--shadow-pop);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, -.35rem);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
}

.nav-group:hover .nav-menu,
.nav-group:focus-within .nav-menu {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

/* Escape returns focus to the parent link, which would otherwise re-open the
   menu through :focus-within. */
.nav-group.is-dismissed .nav-menu {
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, -.35rem);
}

/* a hover bridge across the gap, so the menu does not close between the two */
.nav-menu::before {
  position: absolute;
  right: 0;
  bottom: 100%;
  left: 0;
  height: .55rem;
  content: "";
}

.nav-menu a {
  padding: .6rem .8rem;
  border-radius: var(--radius-sm);
  color: var(--slate-soft);
  font-size: var(--text-ui);
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

.nav-menu a:hover,
.nav-menu a:focus-visible {
  background: var(--tint);
  color: var(--primary);
}

.nav-menu a[aria-current="page"] {
  background: var(--tint);
  color: var(--primary);
}

/* child pages in the drawer and the footer */
.mobile-menu nav a.mobile-sub {
  padding-left: 2.1rem;
  font-size: var(--text-ui);
  opacity: .88;
}

.mobile-menu nav a.mobile-sub::before {
  position: absolute;
  top: 50%;
  left: 1.05rem;
  width: .5rem;
  height: 1px;
  background: currentColor;
  opacity: .5;
  content: "";
}

.footer-nav a.footer-sub {
  padding-left: .9rem;
  opacity: .85;
}

/* Products landing: the portfolio grows one card at a time, so the grid must
   look deliberate at two entries and at ten. */
.product-catalogue { background: var(--white); }
.product-catalogue-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(19rem, 100%), 1fr));
  gap: 1rem;
}

.product-catalogue-grid > *,
.contact-workspace-grid > *,
.contact-form-grid > *,
.contact-side > * {
  min-width: 0;
}

.contact-form-grid input,
.contact-form-grid select,
.contact-form-grid textarea {
  width: 100%;
  min-width: 0;
}

.direct-contact-list strong {
  overflow-wrap: anywhere;
}

/* Footer capability navigation: keep every destination on one clean axis.
   Child pages use quieter type instead of an awkward hanging indent. */
.footer-nav {
  display: grid;
  align-content: start;
}

.footer-nav a {
  position: relative;
  min-height: 2.4rem;
  padding: .38rem 0;
  border-bottom: 1px solid rgba(255,255,255,.075);
  align-items: center;
  justify-content: flex-start;
  color: #b2cad5;
  font-size: .78rem;
  line-height: 1.4;
}

.footer-nav a:last-child {
  border-bottom: 0;
}

.footer-nav a.footer-sub {
  padding-left: 0;
  color: #7899a8;
  font-size: .72rem;
  opacity: 1;
}

.footer-nav a:hover,
.footer-nav a.footer-sub:hover {
  color: #78d6e8;
}

@media (max-width: 640px) {
  .footer-nav a {
    min-height: 2.75rem;
  }
}

.product-catalogue-card {
  display: grid;
  padding: clamp(1.6rem, 2.6vw, 2.1rem);
  border: 1px solid var(--border);
  border-top: 3px solid var(--primary);
  border-radius: var(--radius-md);
  background: var(--white);
  grid-template-rows: auto auto auto 1fr auto;
  box-shadow: var(--shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

a.product-catalogue-card:hover {
  transform: translateY(-3px);
  border-color: rgba(0,105,180,.32);
  box-shadow: var(--shadow-card);
}

a.product-catalogue-card:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

.product-catalogue-icon {
  display: grid;
  width: 3rem;
  height: 3rem;
  border-radius: .8rem;
  background: var(--grad-brand);
  color: var(--white);
  place-items: center;
}

.product-catalogue-icon svg { width: 1.4rem; height: 1.4rem; }

.product-catalogue-card h3 {
  margin: 1.1rem 0 .55rem;
  font-size: var(--text-card-title);
  font-weight: 800;
  letter-spacing: -.02em;
}

.product-catalogue-card > p {
  margin: 0;
  color: var(--muted);
  font-size: var(--text-body-small);
  line-height: 1.7;
}

.product-catalogue-tags {
  display: flex;
  margin: 1.1rem 0 0;
  padding: 0;
  flex-wrap: wrap;
  gap: .4rem;
  list-style: none;
}

.product-catalogue-tags li {
  padding: .32rem .6rem;
  border-radius: var(--radius-pill);
  background: var(--tint);
  color: var(--primary);
  font-size: var(--text-label);
  font-weight: 700;
}

.product-catalogue-go {
  display: inline-flex;
  margin-top: 1.4rem;
  align-items: center;
  align-self: end;
  color: var(--primary);
  font-size: var(--text-ui);
  font-weight: 800;
  gap: .45rem;
}

.product-catalogue-go svg { width: .9rem; height: .9rem; transition: transform .18s ease; }
a.product-catalogue-card:hover .product-catalogue-go svg { transform: translateX(3px); }

/* the "more to come" slot is not a link, so it must not read as one */
.product-catalogue-card.is-placeholder {
  border-top-color: var(--border);
  background: var(--soft);
}

.product-catalogue-card.is-placeholder .product-catalogue-icon {
  background: var(--tint);
  color: var(--primary);
}

.product-catalogue-go.is-muted { color: var(--slate-soft); }

/* ------------------------------------------------------------
   Nav dropdown corrections
   ------------------------------------------------------------ */

/* The caret was landing on its own line under the label, which also pushed the
   active underline in between the two. Cause: the global `img, svg { display:
   block }` reset makes the inline caret a block box inside a normal-flow <a>. */
.desktop-nav a {
  display: inline-flex;
  align-items: center;
}

.nav-caret {
  flex: 0 0 auto;
}

/* .desktop-nav a matches the dropdown items too, so they were inheriting the
   top-level link padding and the sliding underline. Cancel both. */
.nav-menu a {
  display: flex;
  padding: .6rem .8rem;
  align-items: center;
}

.nav-menu a::after {
  display: none;
}

/* Two active-state conventions are in play: most pages mark the anchor
   (.desktop-nav a.active), event-internet.html marks the group
   (.nav-group.is-active). Both are supported so neither page regresses. */
.desktop-nav .nav-group.is-active > a,
.desktop-nav .nav-group > a.active {
  color: var(--primary);
}

.desktop-nav .nav-group.is-active > a::after,
.desktop-nav .nav-group > a.active::after {
  transform: scaleX(1);
}

/* ------------------------------------------------------------
   Full-site readability pass
   Keep explanatory copy short, grouped and visually subordinate to the
   decision a visitor is making in each section.
   ------------------------------------------------------------ */

.page-section-head > p,
.section-head > p {
  max-width: 58ch;
}

.practice-row {
  padding-block: clamp(2.25rem, 4vw, 3.25rem);
}

.practice-copy p {
  max-width: 46ch;
}

.capability-panel {
  padding: 1.2rem 1.3rem 1.3rem;
}

.capability-panel-head {
  margin-bottom: .9rem;
}

.capability-list {
  gap: .55rem 1.1rem;
}

.signal-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.signal-grid li {
  padding: 1.15rem;
}

.pam-framework .page-section-head {
  margin-bottom: 2.1rem;
}

.framework-track {
  padding-top: 1.8rem;
}

.framework-step {
  min-height: 9rem;
}

.use-case-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.use-case-card {
  grid-template-rows: auto auto 1fr;
}

.use-case-card.image-case {
  padding: 8.9rem 1.25rem 1.25rem;
}

.use-case-card.image-case::before {
  height: 7.2rem;
}

.engagement-steps li {
  padding-block: 1rem;
}

.sector-card.is-graphic[style*="--sector-image"] {
  padding-bottom: 1.5rem;
}

.priority-list,
.sector-card.is-graphic .priority-list {
  margin-bottom: 1.05rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
}

.priority-list li {
  padding: .62rem .7rem .62rem 1.5rem;
  border-radius: .65rem;
  background: var(--soft);
  color: var(--slate-soft);
}

.priority-list li::before {
  top: 1.05rem;
  left: .75rem;
}

.event-positioning-cards {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.event-positioning-cards article {
  min-height: 10.5rem;
  padding: 1.2rem;
}

.event-positioning-cards strong {
  margin-top: 2rem;
}

.event-service-copy li {
  padding-block: .85rem;
}

.event-service-grid > * {
  min-width: 0;
}

.event-service-copy .pill {
  max-width: 100%;
  white-space: normal;
}

.evidence-checklist li {
  padding-block: 1rem;
}

@media (max-width: 1100px) {
  .signal-grid,
  .use-case-grid,
  .event-positioning-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .priority-list,
  .sector-card.is-graphic .priority-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .signal-grid,
  .use-case-grid,
  .event-positioning-cards {
    grid-template-columns: 1fr;
  }

  .event-positioning-cards article {
    min-height: 0;
  }

  .event-positioning-cards strong {
    margin-top: 1rem;
  }

  .use-case-card.image-case {
    padding-top: 8.5rem;
  }

  .event-service-media,
  .event-service-copy {
    width: 100%;
  }

  .page-section-head > p,
  .section-head > p,
  .practice-copy p {
    max-width: none;
  }
}

/* Final cascade guard: legacy page-specific rules above include fixed 10–13px
   labels. These shared overrides keep the approved reading scale consistent
   across every existing and newly generated page. */
.topbar-inner { font-size: var(--text-label); }
.support-status { font-size: var(--text-micro); }
.desktop-nav a,
.header-demo { font-size: var(--text-ui); }
.desktop-nav > a,
.desktop-nav > .nav-group > a { padding-inline: .72rem; }
.solution-card li,
.pam-control-list small,
.integration-points small,
.direct-contact strong,
.event-proof-rail span,
.event-audience-grid p,
.event-delivery-grid p { font-size: var(--text-label-lg); }
.solution-photo span,
.event-delivery-grid span,
.event-hero-points li { font-size: var(--text-micro); }
.industry-card.image-card strong { font-size: var(--text-ui); }
.industry-card.image-card small { font-size: var(--text-label); }
.about-practices strong { font-size: var(--text-body); }
.about-practices small { font-size: var(--text-ui); line-height: 1.55; }
.about-practices a { min-height: 7.4rem; }
.footer-nav a { font-size: var(--text-ui); }
.footer-nav a.footer-sub { font-size: var(--text-label-lg); }
.footer-contact-link strong { font-size: var(--text-ui); }
.footer-headquarters span,
.footer-hubs li { font-size: var(--text-label-lg); }

@media (max-width: 640px) {
  .topbar-contact a { font-size: var(--text-label); }
  .about-practices a { min-height: auto; padding-block: 1.2rem; }
  .about-practices strong { font-size: var(--text-body); }
  .about-practices small { font-size: var(--text-ui); }
}

.service-directory { background: linear-gradient(135deg, #f7fbfd, #edf8fc); }
.service-directory-groups { display: grid; gap: 1rem; }
.service-directory-group {
  display: grid;
  padding: clamp(1.3rem, 2.5vw, 2rem);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--white);
  grid-template-columns: minmax(12rem, .36fr) 1fr;
  gap: clamp(1.5rem, 4vw, 4rem);
  box-shadow: var(--shadow-sm);
}
.service-directory-group > div > span {
  color: var(--primary);
  font-size: var(--text-micro);
  font-weight: 800;
  letter-spacing: .12em;
}
.service-directory-group h3 { max-width: 14ch; margin: .75rem 0 0; font-size: var(--text-subheading); }
.service-directory-group nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.service-directory-group a {
  display: grid;
  min-width: 0;
  min-height: 7rem;
  padding: 1.1rem;
  border: 1px solid var(--border);
  border-radius: .8rem;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto 1fr;
  gap: .35rem .8rem;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.service-directory-group a:hover { border-color: rgba(0,105,180,.3); background: var(--tint); transform: translateY(-2px); }
.service-directory-group strong { color: var(--ink); font-size: var(--text-ui); line-height: 1.4; }
.service-directory-group small { color: var(--muted); font-size: var(--text-label-lg); line-height: 1.5; }
.service-directory-group a > svg { width: 1rem; height: 1rem; grid-row: 1 / -1; grid-column: 2; align-self: center; color: var(--primary); }

@media (max-width: 900px) {
  .service-directory-group { grid-template-columns: 1fr; }
  .service-directory-group h3 { max-width: none; }
}

@media (max-width: 640px) {
  .service-directory-group nav { grid-template-columns: 1fr; }
  .service-directory-group a { min-height: 0; }
}

/* Keep the wide Solutions menu inside the viewport at desktop breakpoints.
   It is anchored to the Solutions item, but shifts left as one panel. */
.nav-menu.nav-mega {
  left: 50%;
  width: min(58rem, calc(100vw - 2rem));
  transform: translate(-45%, -.35rem);
}
.nav-group:hover .nav-menu.nav-mega,
.nav-group:focus-within .nav-menu.nav-mega { transform: translate(-45%, 0); }
.nav-group.is-dismissed .nav-menu.nav-mega { transform: translate(-45%, -.35rem); }
.header-demo { white-space: nowrap; }

/* Explicitly override the prototype image height attribute so the shared hero
   follows its responsive 4:5 frame instead of rendering at the source file's
   1086px intrinsic height. Wix Studio will use the same proportional frame. */
.service-hero-media img { height: auto; }

/* Preserve a readable desktop navigation without allowing the final link and
   consultation CTA to collide on 1280px-class laptops. */
.desktop-nav a,
.header-demo { font-size: clamp(.82rem, calc(.65rem + .2vw), var(--text-ui)); }
.desktop-nav > a,
.desktop-nav > .nav-group > a { padding-inline: .5rem; }

@media (max-width: 1120px) {
  /* Current markup uses text-only drawer links, so reserve the full row for
     the label instead of an empty icon column that forces word wrapping. */
  .mobile-menu nav a { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  :root { --text-body-small: 1rem; }
}

/* ============================================================
   IT Support & Maintenance — bespoke editorial page
   This page intentionally does not use the generic service-page template.
   Its visual rhythm follows the finished About, Solutions and Event pages.
   ============================================================ */
.it-support-page h1 em,
.it-support-page h2 em { color: var(--primary); font-style: normal; }
.it-support-page .page-kicker { color: var(--primary); }

.its-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(3.2rem, 5vw, 4.8rem) 0 clamp(3rem, 4.5vw, 4.4rem);
  background:
    radial-gradient(38rem 25rem at 92% 8%, rgba(16,169,207,.14), transparent 66%),
    linear-gradient(145deg, #fff 0%, #f5fbfe 62%, #eef9fc 100%);
}
.its-hero::after { position: absolute; right: -9rem; bottom: -15rem; width: 34rem; height: 34rem; border: 1px solid rgba(16,169,207,.1); border-radius: 50%; content: ""; }
.its-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: .88fr 1.12fr; align-items: center; gap: clamp(3rem, 5.5vw, 6rem); }
.its-hero-grid > * { min-width: 0; }
.its-breadcrumb { display: inline-flex; margin-bottom: 1.15rem; align-items: center; gap: .45rem; color: var(--muted); font-size: var(--text-label-lg); font-weight: 700; }
.its-breadcrumb span { color: var(--primary); font-size: 1rem; }
.its-hero-copy .pill svg { width: 1rem; height: 1rem; flex: 0 0 auto; }
.its-hero-copy h1 { max-width: 12.5ch; margin: 1.1rem 0 1rem; font-size: clamp(2.4rem, 3.4vw, 3.25rem); line-height: 1.08; letter-spacing: -.05em; }
.its-hero-copy > p { max-width: 55ch; margin: 0; color: var(--muted); font-size: var(--text-lead); line-height: 1.72; }
.its-hero-copy .hero-actions { align-items: center; }
.its-hero-media { position: relative; margin: 0; min-height: 0; }
.its-hero-media::before { position: absolute; inset: -.8rem .8rem .8rem -.8rem; z-index: -1; border: 1px solid rgba(0,105,180,.17); border-radius: 1.6rem 1.6rem 4.5rem 1.6rem; content: ""; }
.its-hero-media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10.5; border-radius: 1.25rem 1.25rem 4rem 1.25rem; object-fit: cover; object-position: center 42%; box-shadow: 0 28px 65px -35px rgba(6,58,104,.45); }
.its-hero-media figcaption { position: absolute; right: -1.25rem; bottom: 1.5rem; width: min(76%, 360px); padding: 1rem 1.15rem; border: 1px solid rgba(0,105,180,.14); border-radius: .9rem; background: rgba(255,255,255,.95); box-shadow: var(--shadow-pop); backdrop-filter: blur(14px); }
.its-hero-media figcaption span,
.its-support-media figcaption span,
.its-maintenance-media figcaption span { display: block; color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.its-hero-media figcaption strong,
.its-support-media figcaption strong,
.its-maintenance-media figcaption strong { display: block; margin-top: .35rem; color: var(--ink); font-size: var(--text-body-small); line-height: 1.5; }

.its-proof-rail { border-block: 1px solid var(--border); background: var(--white); }
.its-proof-rail > .container { display: grid; grid-template-columns: repeat(4, 1fr); }
.its-proof-rail article { min-width: 0; min-height: 8.8rem; padding: 1.55rem clamp(1rem, 2vw, 1.7rem); border-right: 1px solid var(--border); }
.its-proof-rail article:first-child { padding-left: 0; }
.its-proof-rail article:last-child { padding-right: 0; border-right: 0; }
.its-proof-rail article > span { color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .1em; }
.its-proof-rail strong { display: block; margin: .6rem 0 .35rem; color: var(--ink); font-size: var(--text-ui); line-height: 1.4; }
.its-proof-rail small { display: block; color: var(--muted); font-size: var(--text-label-lg); line-height: 1.58; }

.its-case-grid { display: grid; grid-template-columns: .82fr 1.18fr; align-items: start; gap: clamp(3rem, 7vw, 7rem); }
.its-editorial h2,
.its-section-head h2,
.its-maintenance-copy h2,
.its-outcomes-copy h2,
.its-related-head h2 { max-width: 16ch; margin: .9rem 0 1rem; font-size: var(--text-heading); line-height: 1.1; letter-spacing: -.045em; }
.its-editorial p { max-width: 54ch; margin: .8rem 0 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.75; }
.its-editorial .lead { color: var(--slate-soft); font-size: var(--text-lead); font-weight: 500; }
.its-friction-list { border-top: 1px solid var(--border); }
.its-friction-list article { display: grid; min-height: 8.8rem; padding: 1.45rem 0; border-bottom: 1px solid var(--border); grid-template-columns: 3.1rem 1fr; gap: 1.2rem; }
.its-friction-list article > span { display: grid; width: 2.4rem; height: 2.4rem; border: 1px solid rgba(0,105,180,.18); border-radius: 50%; color: var(--primary); font-size: var(--text-micro); font-weight: 800; place-items: center; }
.its-friction-list strong { color: var(--ink); font-size: var(--text-subtitle); }
.its-friction-list p { max-width: 57ch; margin: .45rem 0 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.68; }

.its-support-model { padding: 0 0 var(--section-y); background: var(--white); }
.its-support-panel { display: grid; overflow: hidden; border-radius: var(--radius-lg); background: #063553; grid-template-columns: 1.08fr .92fr; box-shadow: 0 26px 70px -40px rgba(6,58,104,.5); }
.its-support-media { position: relative; min-height: 38rem; margin: 0; }
.its-support-media::after { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 68%, #063553 100%); content: ""; }
.its-support-media img { width: 100%; height: 100%; object-fit: cover; object-position: 48% center; }
.its-support-media figcaption { position: absolute; z-index: 1; right: 1.5rem; bottom: 1.5rem; width: min(78%, 360px); padding: 1rem 1.15rem; border-radius: .9rem; background: rgba(255,255,255,.95); box-shadow: var(--shadow-pop); }
.its-support-copy { display: flex; padding: clamp(2.2rem, 4vw, 4rem); justify-content: center; flex-direction: column; }
.its-support-copy .page-kicker { color: var(--accent-aqua); }
.its-support-copy h2 { max-width: 13ch; margin: .9rem 0 1rem; color: var(--white); font-size: var(--text-heading); line-height: 1.08; letter-spacing: -.045em; }
.its-support-copy > p { max-width: 48ch; margin: 0; color: #bdd2dd; font-size: var(--text-body-small); line-height: 1.72; }
.its-support-copy ul { margin: 1.6rem 0 0; padding: 0; border-top: 1px solid rgba(255,255,255,.13); list-style: none; }
.its-support-copy li { display: grid; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.13); grid-template-columns: 2.6rem 1fr; align-items: center; gap: .8rem; }
.its-support-copy li > span { display: grid; width: 2.2rem; height: 2.2rem; border: 1px solid rgba(114,216,218,.28); border-radius: .6rem; background: rgba(114,216,218,.08); color: var(--accent-aqua); place-items: center; }
.its-support-copy li svg { width: 1.05rem; height: 1.05rem; }
.its-support-copy li strong { display: block; color: var(--white); font-size: var(--text-ui); }
.its-support-copy li small { display: block; margin-top: .18rem; color: #9fbdcb; font-size: var(--text-label-lg); line-height: 1.52; }

.its-workflow { background: linear-gradient(135deg, #f5fbfe, #edf8fc); }
.its-section-head { display: grid; padding-top: 1.4rem; border-top: 1px solid rgba(0,105,180,.18); grid-template-columns: .28fr .42fr .3fr; gap: clamp(1.5rem, 4vw, 4rem); }
.its-section-head h2 { margin: 0; }
.its-section-head > p { max-width: 48ch; margin: 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.72; }
.its-workflow-grid { position: relative; display: grid; margin: clamp(3rem, 5vw, 4.5rem) 0 0; padding: 0; grid-template-columns: repeat(4, 1fr); list-style: none; }
.its-workflow-grid::before { position: absolute; top: 1.35rem; right: 10%; left: 10%; height: 1px; background: rgba(0,105,180,.22); content: ""; }
.its-workflow-grid li { position: relative; padding: 0 clamp(1rem, 2vw, 1.6rem); }
.its-workflow-grid li:first-child { padding-left: 0; }
.its-workflow-grid li:last-child { padding-right: 0; }
.its-workflow-grid li > span { position: relative; z-index: 1; display: grid; width: 2.7rem; height: 2.7rem; border: 1px solid rgba(0,105,180,.25); border-radius: 50%; background: #f3fafc; color: var(--primary); font-size: var(--text-micro); font-weight: 800; place-items: center; }
.its-workflow-grid strong { display: block; margin-top: 1.2rem; color: var(--ink); font-size: var(--text-ui); }
.its-workflow-grid p { margin: .5rem 0 0; color: var(--muted); font-size: var(--text-label-lg); line-height: 1.65; }

.its-maintenance { background: var(--white); }
.its-maintenance-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(3rem, 7vw, 7rem); }
.its-maintenance-copy h2 { max-width: 14ch; }
.its-maintenance-copy > p { max-width: 50ch; margin: 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.72; }
.its-maintenance-copy ul { margin: 1.5rem 0 0; padding: 0; border-top: 1px solid var(--border); list-style: none; }
.its-maintenance-copy li { display: grid; padding: 1rem 0; border-bottom: 1px solid var(--border); grid-template-columns: 1.7rem 1fr; align-items: start; gap: .6rem; color: var(--muted); font-size: var(--text-body-small); line-height: 1.62; }
.its-maintenance-copy li > svg { width: 1rem; height: 1rem; margin-top: .25rem; color: var(--teal); stroke-width: 2.5; }
.its-maintenance-copy li strong { display: block; margin-bottom: .15rem; color: var(--ink); }
.its-maintenance-media { position: relative; margin: 0; }
.its-maintenance-media::before { position: absolute; inset: .9rem -.9rem -.9rem .9rem; z-index: -1; border-radius: 1.4rem; background: var(--tint-2); content: ""; }
.its-maintenance-media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 1.3rem; object-fit: cover; box-shadow: var(--shadow-pop); }
.its-maintenance-media figcaption { position: absolute; right: 1rem; bottom: 1rem; width: min(78%, 360px); padding: 1rem 1.1rem; border-radius: .85rem; background: rgba(255,255,255,.95); box-shadow: var(--shadow-pop); }

.its-scope { background: #f4f9fc; }
.its-scope-grid { display: grid; margin-top: clamp(2.8rem, 5vw, 4.2rem); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.its-scope-grid article { min-height: 17rem; padding: clamp(1.5rem, 3vw, 2.3rem); border: 1px solid var(--border); border-top: 3px solid var(--primary); border-radius: var(--radius-md); background: var(--white); box-shadow: var(--shadow-sm); }
.its-scope-grid article > span { display: grid; width: 2.8rem; height: 2.8rem; border-radius: .75rem; background: var(--tint); color: var(--primary); place-items: center; }
.its-scope-grid article > span svg { width: 1.25rem; height: 1.25rem; }
.its-scope-grid h3 { max-width: 21ch; margin: 2.3rem 0 .7rem; font-size: var(--text-card-title); }
.its-scope-grid p { max-width: 52ch; margin: 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.7; }
.its-scope-grid small { display: block; margin-top: 1.3rem; color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.its-scope-note { display: grid; margin-top: 1rem; padding: 1.5rem 1.7rem; border: 1px solid rgba(0,105,180,.16); border-radius: var(--radius-md); background: #eaf6fb; grid-template-columns: .3fr .7fr; gap: 2rem; }
.its-scope-note strong { color: var(--deep); font-size: var(--text-ui); }
.its-scope-note p { margin: 0; color: var(--slate-soft); font-size: var(--text-label-lg); line-height: 1.65; }

.its-outcomes { padding: var(--section-y) 0; background: linear-gradient(135deg, #062e4e, #08577a); color: var(--white); }
.its-outcomes-grid { display: grid; grid-template-columns: .8fr 1.2fr; align-items: start; gap: clamp(3rem, 7vw, 7rem); }
.its-outcomes-copy .page-kicker { color: var(--accent-aqua); }
.its-outcomes-copy h2 { color: var(--white); }
.its-outcomes-copy > p { max-width: 48ch; margin: 0 0 1.5rem; color: #bad0dc; font-size: var(--text-body-small); line-height: 1.72; }
.its-outcomes-copy .text-link { color: var(--accent-aqua); }
.its-outcome-list { margin: 0; border-top: 1px solid rgba(255,255,255,.17); }
.its-outcome-list > div { display: grid; padding: 1.55rem 0; border-bottom: 1px solid rgba(255,255,255,.17); grid-template-columns: .42fr .58fr; gap: 2rem; }
.its-outcome-list dt { color: var(--white); font-size: var(--text-subtitle); font-weight: 800; }
.its-outcome-list dd { margin: 0; color: #b5ccd7; font-size: var(--text-body-small); line-height: 1.68; }

.its-related { background: var(--white); }
.its-related-head { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.its-related-head h2 { max-width: 20ch; margin-bottom: 0; }
.its-related-grid { display: grid; margin-top: 2.4rem; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.its-related-grid a { position: relative; display: flex; min-height: 23rem; overflow: hidden; padding: 1.5rem; border-radius: var(--radius-md); justify-content: flex-end; flex-direction: column; isolation: isolate; box-shadow: var(--shadow-card); }
.its-related-grid a::before { position: absolute; inset: 0; z-index: -2; background-image: linear-gradient(180deg, rgba(5,31,50,.08) 15%, rgba(5,31,50,.94) 88%), var(--related-image); background-position: center; background-size: cover; transition: transform .35s ease; content: ""; }
.its-related-grid a:hover::before { transform: scale(1.035); }
.its-related-grid a > span { color: var(--accent-aqua); font-size: var(--text-micro); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.its-related-grid strong { margin-top: .45rem; color: var(--white); font-size: var(--text-card-title); line-height: 1.35; }
.its-related-grid small { margin-top: .55rem; color: #bfd3dd; font-size: var(--text-label-lg); line-height: 1.58; }
.its-related-grid b { display: inline-flex; margin-top: 1rem; align-items: center; gap: .45rem; color: var(--white); font-size: var(--text-label-lg); }
.its-related-grid b svg { width: .9rem; height: .9rem; }

@media (max-width: 1050px) {
  .its-hero-grid { grid-template-columns: .9fr 1.1fr; gap: 2.5rem; }
  .its-proof-rail > .container { grid-template-columns: repeat(2, 1fr); }
  .its-proof-rail article:nth-child(2) { border-right: 0; }
  .its-proof-rail article:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
  .its-proof-rail article:nth-child(3) { padding-left: 0; }
  .its-support-panel { grid-template-columns: 1fr; }
  .its-support-media { min-height: 29rem; }
  .its-support-media::after { background: linear-gradient(180deg, transparent 62%, #063553 100%); }
  .its-support-copy h2 { max-width: 17ch; }
}

@media (max-width: 900px) {
  .its-hero-grid,
  .its-case-grid,
  .its-maintenance-grid,
  .its-outcomes-grid { grid-template-columns: 1fr; }
  .its-hero-copy { max-width: 720px; }
  .its-hero-media { width: min(100%, 720px); }
  .its-case-grid,
  .its-maintenance-grid,
  .its-outcomes-grid { gap: 3rem; }
  .its-section-head { grid-template-columns: 1fr; gap: .7rem; }
  .its-section-head h2 { max-width: 19ch; }
  .its-scope-note { grid-template-columns: 1fr; gap: .5rem; }
  .its-related-grid { grid-template-columns: 1fr 1fr; }
  .its-related-grid a:last-child { grid-column: 1 / -1; min-height: 19rem; }
}

@media (max-width: 700px) {
  .its-workflow-grid { grid-template-columns: 1fr; gap: 0; }
  .its-workflow-grid::before { top: 1.35rem; bottom: 1.35rem; left: 1.32rem; width: 1px; height: auto; }
  .its-workflow-grid li,
  .its-workflow-grid li:first-child,
  .its-workflow-grid li:last-child { display: grid; padding: 0 0 1.7rem; grid-template-columns: 3.7rem 1fr; }
  .its-workflow-grid li:last-child { padding-bottom: 0; }
  .its-workflow-grid li > span { grid-row: 1 / 3; }
  .its-workflow-grid strong { margin-top: .2rem; }
  .its-workflow-grid p { grid-column: 2; }
  .its-scope-grid,
  .its-related-grid { grid-template-columns: 1fr; }
  .its-related-grid a:last-child { grid-column: auto; }
  .its-outcome-list > div { grid-template-columns: 1fr; gap: .5rem; }
}

@media (max-width: 640px) {
  .its-hero { padding: 2rem 0 2.4rem; }
  .its-hero-grid { gap: 1.75rem; }
  .its-hero-copy { max-width: none; text-align: center; }
  .its-breadcrumb { width: max-content; margin-inline: 0 auto; text-align: left; }
  .its-hero-copy .pill { margin-inline: auto; }
  .its-hero-copy h1 {
    max-width: 14ch;
    margin: .9rem auto 1rem;
    font-size: clamp(2.05rem, 8.8vw, 2.4rem);
  }
  .its-hero-copy > p { max-width: 32ch; margin-inline: auto; }
  .its-hero-copy .hero-actions {
    display: grid;
    width: min(100%, 19rem);
    margin-inline: auto;
    align-items: stretch;
  }
  .its-hero-copy .hero-actions .button { width: 100%; }
  .its-hero-copy .hero-actions .text-link { min-height: 2.75rem; justify-content: center; }
  .its-hero-media { width: calc(100% - .5rem); margin-left: 0; }
  .its-hero-media::before { inset: -.55rem .55rem .55rem -.55rem; }
  .its-hero-media img { aspect-ratio: 16 / 10.5; border-radius: 1rem 1rem 2.8rem 1rem; }
  .its-hero-media figcaption { right: -.75rem; bottom: .8rem; width: 92%; }
  .its-proof-rail > .container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .its-proof-rail article,
  .its-proof-rail article:first-child,
  .its-proof-rail article:nth-child(3),
  .its-proof-rail article:last-child { min-height: 11.5rem; padding: 1.15rem .75rem; border-right: 0; border-bottom: 0; }
  .its-proof-rail article:nth-child(odd) { padding-left: 0; border-right: 1px solid var(--border); }
  .its-proof-rail article:nth-child(even) { padding-right: 0; }
  .its-proof-rail article:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
  .its-friction-list article { min-height: 0; grid-template-columns: 2.7rem 1fr; gap: .75rem; }
  .its-support-panel { border-radius: 1rem; }
  .its-support-media { min-height: 21rem; }
  .its-support-media figcaption { right: .8rem; bottom: .8rem; width: calc(100% - 1.6rem); }
  .its-support-copy { padding: 1.7rem 1.25rem; }
  .its-support-copy li { grid-template-columns: 2.4rem 1fr; }
  .its-maintenance-media::before { inset: .55rem -.55rem -.55rem .55rem; }
  .its-maintenance-media img { aspect-ratio: 4 / 3.35; }
  .its-maintenance-media figcaption { right: .7rem; bottom: .7rem; width: calc(100% - 1.4rem); }
  .its-scope-grid article { min-height: 0; padding: 1.4rem; }
  .its-scope-grid h3 { margin-top: 1.4rem; }
  .its-related-head { display: block; }
  .its-related-grid a,
  .its-related-grid a:last-child { min-height: 17rem; }
}

/* IT Support refinement: caption system, service flow and visitor confidence */
.its-breadcrumb {
  display: flex;
  width: max-content;
  margin-bottom: .85rem;
  padding-bottom: .28rem;
  border-bottom: 1px solid rgba(0,105,180,.2);
}

.its-hero-media figcaption,
.its-support-media figcaption,
.its-maintenance-media figcaption {
  right: 1rem;
  bottom: 1rem;
  left: auto;
  width: min(78%, 380px);
  padding: .85rem .9rem .9rem;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: .78rem;
  background: linear-gradient(145deg, rgba(5,42,67,.94), rgba(4,67,95,.9));
  box-shadow: 0 18px 42px -22px rgba(3,25,43,.8);
  backdrop-filter: blur(14px);
}
.its-support-media figcaption { right: auto; left: 1rem; width: min(72%, 360px); }
.its-hero-media figcaption span,
.its-support-media figcaption span,
.its-maintenance-media figcaption span {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  padding: .26rem .48rem;
  align-items: center;
  gap: .38rem;
  border: 1px solid rgba(114,216,218,.24);
  border-radius: 999px;
  background: rgba(114,216,218,.1);
  color: #90e6e8;
  letter-spacing: .075em;
}
.its-hero-media figcaption span::before,
.its-support-media figcaption span::before,
.its-maintenance-media figcaption span::before { width: .34rem; height: .34rem; flex: 0 0 auto; border-radius: 50%; background: var(--accent-aqua); content: ""; }
.its-hero-media figcaption strong,
.its-support-media figcaption strong,
.its-maintenance-media figcaption strong { margin-top: .55rem; color: var(--white); font-size: var(--text-ui); line-height: 1.48; }

.its-workflow-grid { gap: 1rem; }
.its-workflow-grid::before { display: none; }
.its-workflow-grid li,
.its-workflow-grid li:first-child,
.its-workflow-grid li:last-child {
  min-height: 13.5rem;
  padding: 2.5rem 1.3rem 1.35rem;
  border: 1px solid var(--border);
  border-top: 3px solid var(--primary);
  border-radius: var(--radius-md);
  background: rgba(255,255,255,.9);
  box-shadow: var(--shadow-sm);
}
.its-workflow-grid li > span {
  position: absolute;
  top: -1.35rem;
  left: 1.25rem;
  background: var(--white);
  box-shadow: 0 10px 24px -15px rgba(6,58,104,.55);
}
.its-workflow-grid li:not(:last-child)::after {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: -.85rem;
  display: grid;
  width: 1.6rem;
  height: 1.6rem;
  border: 1px solid rgba(0,105,180,.2);
  border-radius: 50%;
  background: #f4fbfd;
  color: var(--primary);
  font-size: .8rem;
  content: "→";
  place-items: center;
}
.its-workflow-grid strong { margin-top: .35rem; font-size: var(--text-subtitle); }
.its-workflow-grid p { font-size: var(--text-body-small); }

.its-confidence { background: var(--white); }
.its-confidence-grid { display: grid; grid-template-columns: .76fr 1.24fr; align-items: start; gap: clamp(3rem, 7vw, 7rem); }
.its-confidence-copy h2 { max-width: 15ch; margin: .9rem 0 1rem; font-size: var(--text-heading); line-height: 1.1; letter-spacing: -.045em; }
.its-confidence-copy > p { max-width: 49ch; margin: 0 0 1.4rem; color: var(--muted); font-size: var(--text-body-small); line-height: 1.72; }
.its-confidence-points { display: grid; border-top: 1px solid var(--border); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.its-confidence-points article { display: grid; min-height: 13rem; padding: 1.5rem; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); grid-template-columns: 2.5rem 1fr; gap: .75rem; }
.its-confidence-points article:nth-child(even) { border-right: 0; }
.its-confidence-points article > span { color: var(--primary); font-size: var(--text-micro); font-weight: 800; letter-spacing: .08em; }
.its-confidence-points strong { display: block; color: var(--ink); font-size: var(--text-ui); line-height: 1.4; }
.its-confidence-points p { margin: .5rem 0 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.65; }

.its-related-head {
  display: grid;
  padding-top: 1.35rem;
  border-top: 1px solid rgba(0,105,180,.18);
  grid-template-columns: .32fr .68fr;
  align-items: start;
  gap: clamp(1.5rem, 4vw, 4rem);
}
.its-related-head h2 { max-width: 18ch; margin: 0; }
.its-related-head p { max-width: 58ch; margin: .85rem 0 0; color: var(--muted); font-size: var(--text-body-small); line-height: 1.7; }
.its-related-grid a > span {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  padding: .28rem .48rem;
  border: 1px solid rgba(114,216,218,.25);
  border-radius: 999px;
  background: rgba(8,66,91,.68);
  color: #8ee3e6;
  letter-spacing: .075em;
  backdrop-filter: blur(10px);
}

@media (max-width: 900px) {
  .its-workflow-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.7rem 1rem; }
  .its-workflow-grid li:not(:last-child)::after { display: none; }
  .its-confidence-grid { grid-template-columns: 1fr; gap: 3rem; }
  .its-related-head { grid-template-columns: 1fr; gap: .7rem; }
  .its-related-head h2 { max-width: 20ch; }
}

@media (max-width: 700px) {
  .its-workflow-grid { grid-template-columns: 1fr; gap: 1.65rem; }
  .its-workflow-grid li,
  .its-workflow-grid li:first-child,
  .its-workflow-grid li:last-child { display: block; min-height: 0; padding: 2.2rem 1.1rem 1.25rem; }
  .its-workflow-grid li > span { top: -1.2rem; left: 1rem; }
  .its-workflow-grid strong { margin-top: .2rem; }
  .its-workflow-grid p { margin-top: .45rem; }
  .its-confidence-points { grid-template-columns: 1fr; }
  .its-confidence-points article,
  .its-confidence-points article:nth-child(even) { min-height: 0; padding: 1.25rem 0; border-right: 0; }
}

@media (max-width: 640px) {
  .its-breadcrumb { margin-bottom: .75rem; }
  .its-hero-media figcaption,
  .its-support-media figcaption,
  .its-maintenance-media figcaption { right: .7rem; bottom: .7rem; left: .7rem; width: auto; padding: .75rem .8rem .8rem; }
  .its-hero-media figcaption strong,
  .its-support-media figcaption strong,
  .its-maintenance-media figcaption strong { font-size: var(--text-body-small); }
}

/* ============================================================
   Compact labels and image annotations — site-wide
   Keep pills as quiet navigational metadata, never headline elements.
   ============================================================ */
.pill {
  gap: .34rem;
  padding: .27rem .56rem;
  font-size: clamp(.625rem, .56rem + .08vw, .7rem);
  letter-spacing: .07em;
  line-height: 1.1;
}
.pill i { width: .32rem; height: .32rem; box-shadow: 0 0 0 3px rgba(15,159,135,.1); }
.pill svg { width: .78rem; height: .78rem; flex: 0 0 auto; }
.event-service-copy .pill {
  display: inline-flex;
  font-size: clamp(.625rem, .56rem + .08vw, .7rem);
  line-height: 1.1;
}

.hero-media figcaption,
.approach-media figcaption,
.service-hero-media figcaption,
.event-service-media figcaption,
.about-hero-media figcaption,
.solutions-hero-aside figcaption,
.contact-visual-panel figcaption {
  padding: .72rem .82rem;
}
.hero-media figcaption span,
.approach-media figcaption span,
.service-hero-media figcaption span,
.event-service-media figcaption span,
.about-hero-media figcaption span,
.solutions-hero-aside figcaption span,
.contact-visual-panel figcaption span {
  font-size: .625rem;
  letter-spacing: .065em;
}
.hero-media figcaption strong,
.approach-media figcaption strong,
.service-hero-media figcaption strong,
.event-service-media figcaption strong,
.about-hero-media figcaption strong,
.solutions-hero-aside figcaption strong,
.contact-visual-panel figcaption strong {
  margin-top: .28rem;
  font-size: clamp(.72rem, .67rem + .08vw, .8rem);
  line-height: 1.42;
}
.practice-media figcaption {
  font-size: clamp(.72rem, .67rem + .08vw, .8rem);
  line-height: 1.42;
}

.its-hero-media figcaption,
.its-support-media figcaption,
.its-maintenance-media figcaption {
  right: .75rem;
  bottom: .75rem;
  width: min(68%, 335px);
  padding: .65rem .72rem .7rem;
  border-radius: .68rem;
}
.its-support-media figcaption { right: auto; left: .75rem; width: min(66%, 330px); }
.its-hero-media figcaption span,
.its-support-media figcaption span,
.its-maintenance-media figcaption span {
  padding: .18rem .37rem;
  font-size: .6rem;
  letter-spacing: .06em;
}
.its-hero-media figcaption span::before,
.its-support-media figcaption span::before,
.its-maintenance-media figcaption span::before { width: .27rem; height: .27rem; }
.its-hero-media figcaption strong,
.its-support-media figcaption strong,
.its-maintenance-media figcaption strong {
  margin-top: .38rem;
  font-size: clamp(.72rem, .68rem + .08vw, .8rem);
  line-height: 1.42;
}
.its-related-grid a > span {
  padding: .2rem .38rem;
  font-size: .6rem;
  letter-spacing: .06em;
}

@media (max-width: 640px) {
  .pill {
    padding: .25rem .5rem;
    gap: .3rem;
    font-size: .625rem;
    letter-spacing: .055em;
  }
  .pill svg { width: .72rem; height: .72rem; }
  .its-hero-media figcaption,
  .its-support-media figcaption,
  .its-maintenance-media figcaption {
    right: .55rem;
    bottom: .55rem;
    left: .55rem;
    width: auto;
    padding: .6rem .66rem .65rem;
  }
  .its-hero-media figcaption strong,
  .its-support-media figcaption strong,
  .its-maintenance-media figcaption strong { font-size: .75rem; }

  /* Keep both primary contact routes visible in the compact mobile utility bar. */
  .topbar-contact {
    gap: .45rem;
    justify-content: space-between;
  }
  .topbar-contact a,
  .topbar-contact a:last-child {
    display: inline-flex;
    min-width: 0;
    font-size: .65rem;
    white-space: nowrap;
  }
  .topbar-contact a svg {
    width: .68rem;
    height: .68rem;
    flex: 0 0 auto;
  }
}

/* Compact CTA scale — restrained visually while preserving useful tap targets. */
.button {
  min-height: 2.75rem;
  padding: .62rem .95rem;
  gap: .45rem;
  font-size: clamp(.78rem, .74rem + .08vw, .875rem);
}
.button svg { width: .88rem; height: .88rem; }
.button-large {
  min-height: 2.95rem;
  padding-inline: 1.15rem;
}
.header-demo {
  min-height: 2.55rem;
  padding-inline: .9rem;
}

@media (max-width: 640px) {
  .button {
    min-height: 2.75rem;
    padding: .6rem .9rem;
    font-size: .8rem;
  }
  .button-large {
    min-height: 2.85rem;
    padding-inline: 1rem;
  }
}

/* ============================================================
   Mobile hero composition
   Centre stacked marketing introductions; keep navigation and
   task-led heroes aligned to their own reading pattern.
   ============================================================ */
@media (max-width: 640px) {
  .hero-copy,
  .inner-hero-copy,
  .page-hero-copy,
  .service-hero-copy,
  .product-lead-copy {
    max-width: none;
    text-align: center;
  }

  .hero-copy > .pill,
  .inner-hero-copy > .pill,
  .page-hero-copy > .pill,
  .service-hero-copy > .pill,
  .product-lead-copy > .product-tag {
    width: max-content;
    max-width: 100%;
    margin-inline: auto;
  }

  .hero-copy h1,
  .inner-hero-copy h1,
  .page-hero-copy h1,
  .service-hero-copy h1,
  .product-lead-copy h1 {
    max-width: 15ch;
    margin: .9rem auto 1rem;
    font-size: clamp(2.05rem, 8.8vw, 2.4rem);
  }

  .hero-copy > p,
  .inner-hero-copy > p,
  .page-hero-copy > p,
  .service-hero-copy > p,
  .product-lead-copy > p {
    max-width: 34ch;
    margin-inline: auto;
  }

  .hero-copy .hero-actions,
  .inner-hero-copy .hero-actions,
  .page-hero-copy .hero-actions,
  .service-hero-copy .hero-actions,
  .product-lead-copy .hero-actions {
    width: min(100%, 19rem);
    margin-inline: auto;
    align-items: stretch;
  }

  .hero-copy .hero-actions .button,
  .inner-hero-copy .hero-actions .button,
  .page-hero-copy .hero-actions .button,
  .service-hero-copy .hero-actions .button,
  .product-lead-copy .hero-actions .button {
    width: 100%;
  }

  /* Back navigation remains an orientation cue, not centred metadata. */
  .service-breadcrumb,
  .its-breadcrumb {
    display: flex;
    width: max-content;
    margin-inline: 0 auto;
    text-align: left;
  }

  /* The image-overlay event hero stays left-led, but its actions use
     the same compact width and tap-target scale as the rest of the site. */
  .event-page-hero .hero-actions {
    width: min(100%, 19rem);
  }

  /* The surrounding mobile sections already explain these images.
     Removing the overlays protects the photograph and reading flow. */
  .its-hero-media figcaption,
  .its-support-media figcaption,
  .its-maintenance-media figcaption {
    display: none;
  }
}

/* ============================================================
   Premium shared service template
   One Wix-ready structure; page-specific content supplies the story.
   ============================================================ */
.service-detail-page .service-hero-grid {
  min-height: 610px;
  padding-block: clamp(4.2rem, 5.5vw, 5.5rem);
}
.service-detail-page .service-hero-copy h1 {
  max-width: 14ch;
  font-size: clamp(2.55rem, 3.2vw, 3.35rem);
}
.service-detail-page .service-hero-copy h1 em {
  background: var(--grad-text);
  background-clip: text;
  color: transparent;
  font-style: normal;
}
.service-detail-page .service-hero-media img {
  aspect-ratio: 4 / 4.65;
  object-position: var(--service-image-position, center);
}

.service-signal-rail {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--white);
}
.service-signal-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.service-signal-grid article {
  min-width: 0;
  min-height: 8.6rem;
  padding: 1.4rem clamp(1rem, 2vw, 1.65rem);
  border-right: 1px solid var(--border);
}
.service-signal-grid article:first-child { padding-left: 0; }
.service-signal-grid article:last-child { padding-right: 0; border-right: 0; }
.service-signal-grid span {
  display: block;
  color: var(--primary);
  font-size: var(--text-micro);
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.service-signal-grid strong {
  display: block;
  max-width: 21ch;
  margin-top: .7rem;
  color: var(--ink);
  font-size: var(--text-ui);
  line-height: 1.5;
}

.service-detail-page .service-overview {
  padding-block: clamp(4.5rem, 6.5vw, 6.5rem);
}
.service-detail-page .service-overview h2 {
  font-size: var(--text-heading);
  line-height: 1.1;
  letter-spacing: -.045em;
}

.service-section-head {
  display: grid;
  margin-bottom: clamp(2rem, 4vw, 3.2rem);
  padding-top: 1.25rem;
  border-top: 1px solid rgba(0,105,180,.2);
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: end;
  gap: clamp(2rem, 6vw, 6rem);
}
.service-section-head h2 {
  max-width: 20ch;
  margin: .8rem 0 0;
  font-size: var(--text-heading);
  line-height: 1.1;
  letter-spacing: -.045em;
}
.service-section-head > p {
  max-width: 58ch;
  margin: 0;
  color: var(--slate-soft);
  font-size: var(--text-body-small);
  line-height: 1.75;
}

.service-detail-page .service-outcome-grid { gap: 1rem; }
.service-detail-page .service-outcome-grid article {
  min-height: 14rem;
  padding: clamp(1.35rem, 2.2vw, 1.8rem);
  box-shadow: 0 18px 38px -32px rgba(6,58,104,.6);
}
.service-detail-page .service-outcome-grid article > span {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 50%;
}
.service-detail-page .service-outcome-grid h3 { margin: 1.15rem 0 .55rem; }

.service-story {
  position: relative;
  overflow: hidden;
  background: linear-gradient(125deg, #052d4d 0%, #063f62 58%, #07557a 100%);
  color: var(--white);
}
.service-story::after {
  position: absolute;
  right: -12rem;
  bottom: -18rem;
  width: 38rem;
  height: 38rem;
  border: 1px solid rgba(114,216,218,.16);
  border-radius: 50%;
  content: "";
}
.service-story-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
}
.service-story-media {
  position: relative;
  min-width: 0;
  margin: 0;
}
.service-story-media::before {
  position: absolute;
  inset: -.75rem .75rem .75rem -.75rem;
  z-index: -1;
  border: 1px solid rgba(114,216,218,.3);
  border-radius: 1.4rem 1.4rem 4rem 1.4rem;
  content: "";
}
.service-story-media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3.15;
  border-radius: 1.15rem 1.15rem 3.6rem 1.15rem;
  object-fit: cover;
  box-shadow: 0 30px 70px -36px rgba(0,0,0,.7);
}
.service-story-copy .page-kicker { color: #83e2e8; }
.service-story-copy h2 {
  max-width: 17ch;
  margin: .85rem 0 1rem;
  color: var(--white);
  font-size: var(--text-heading);
  line-height: 1.08;
  letter-spacing: -.045em;
}
.service-story-copy > p {
  max-width: 56ch;
  margin: 0;
  color: #c6dae4;
  font-size: var(--text-body-small);
  line-height: 1.78;
}
.service-story-points { margin-top: 1.5rem; }
.service-story-points ul {
  display: grid;
  margin: 0;
  padding: 0;
  gap: 0;
  list-style: none;
}
.service-story-points li {
  display: grid;
  padding: .8rem 0;
  border-top: 1px solid rgba(255,255,255,.14);
  grid-template-columns: 1.25rem 1fr;
  align-items: start;
  gap: .7rem;
  color: #e1eef3;
  font-size: var(--text-body-small);
  line-height: 1.55;
}
.service-story-points svg {
  width: 1rem;
  height: 1rem;
  margin-top: .2rem;
  color: #72d8da;
  stroke-width: 2.4;
}

.service-detail-page .service-capability-grid { gap: 1rem; }
.service-detail-page .service-capability-grid article {
  min-height: 13.5rem;
  padding: clamp(1.3rem, 2vw, 1.7rem);
  border-top-width: 2px;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.service-detail-page .service-capability-grid article:hover {
  border-color: rgba(0,105,180,.28);
  box-shadow: var(--shadow-card);
  transform: translateY(-3px);
}
.service-detail-page .service-capability-grid h3 { margin: 1.55rem 0 .55rem; }

.service-detail-page .service-approach-head {
  margin-bottom: 2.6rem;
  align-items: start;
}
.service-detail-page .service-approach-head h2 {
  font-size: var(--text-heading);
  line-height: 1.08;
  letter-spacing: -.045em;
}
.service-detail-page .service-scope-panel h2 { margin-bottom: 1.25rem; }
.service-detail-page .service-related-grid a {
  background: linear-gradient(145deg, #fff, #f7fbfe);
}

@media (max-width: 900px) {
  .service-signal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-signal-grid article,
  .service-signal-grid article:first-child,
  .service-signal-grid article:last-child { padding: 1.25rem; border-right: 0; border-bottom: 1px solid var(--border); }
  .service-signal-grid article:nth-child(odd) { padding-left: 0; border-right: 1px solid var(--border); }
  .service-signal-grid article:nth-child(even) { padding-right: 0; }
  .service-signal-grid article:nth-last-child(-n+2) { border-bottom: 0; }
  .service-story-grid { grid-template-columns: 1fr; gap: 3.25rem; }
  .service-story-media { width: min(88%, 680px); margin-inline: auto; }
}

@media (max-width: 640px) {
  .service-detail-page .service-hero-grid {
    min-height: 0;
    padding-block: 2.5rem 3.4rem;
    gap: 2.1rem;
  }
  .service-detail-page .service-hero-copy h1 {
    max-width: 15ch;
    font-size: clamp(2rem, 8.7vw, 2.35rem);
  }
  .service-detail-page .service-hero-media {
    width: calc(100% - .5rem);
    margin-inline: 0 auto;
  }
  .service-detail-page .service-hero-media img {
    aspect-ratio: 16 / 10.7;
    border-radius: 1rem 1rem 2.8rem 1rem;
  }
  .service-detail-page .service-hero-media figcaption { display: none; }

  .service-signal-grid article,
  .service-signal-grid article:first-child,
  .service-signal-grid article:last-child {
    min-height: 8rem;
    padding: 1rem .75rem;
  }
  .service-signal-grid article:nth-child(odd) { padding-left: 0; }
  .service-signal-grid article:nth-child(even) { padding-right: 0; }
  .service-signal-grid strong { margin-top: .5rem; font-size: .78rem; line-height: 1.45; }

  .service-detail-page .service-overview { padding-block: 3.8rem; }
  .service-detail-page .service-overview-grid { gap: 1.25rem; }
  .service-detail-page .service-overview h2,
  .service-section-head h2,
  .service-story-copy h2,
  .service-detail-page .service-approach-head h2 {
    font-size: clamp(1.85rem, 7.5vw, 2.15rem);
  }
  .service-section-head {
    grid-template-columns: 1fr;
    gap: .8rem;
  }
  .service-section-head > p { font-size: .9rem; }

  .service-detail-page .service-outcome-grid article { min-height: 0; padding: 1.25rem; }
  .service-story-grid { gap: 2.25rem; }
  .service-story-media {
    width: calc(100% - .5rem);
    min-height: 0;
    height: auto;
    margin-inline: 0 auto;
  }
  .service-story-media::before { inset: -.5rem .5rem .5rem -.5rem; }
  .service-detail-page .service-story-media img {
    display: block;
    height: auto;
    max-height: none;
    aspect-ratio: 16 / 10.5;
    border-radius: 1rem 1rem 2.7rem 1rem;
    object-fit: cover;
  }
  .service-story-copy > p { font-size: .9rem; }
  .service-story-points li { font-size: .84rem; }

  .service-detail-page .service-capability-grid article { min-height: 0; padding: 1.25rem; }
  .service-detail-page .service-capability-grid h3 { margin-top: 1.2rem; }
.service-detail-page .service-approach-head { margin-bottom: 2.2rem; }
}

/* ============================================================
   Unified hero image caption
   Mirrors the homepage: a compact white information panel attached to the
   lower-right image edge. Only hero figures are included; editorial image
   captions retain the treatment designed for their surrounding section.
   ============================================================ */
.hero-media > figcaption,
.about-hero-media > figcaption,
.solutions-hero-aside > figcaption,
.service-hero-media > figcaption,
.its-hero-media > figcaption {
  right: 0;
  bottom: 0;
  left: auto;
  width: min(84%, 360px);
  padding: .72rem .82rem;
  border: 1px solid var(--border);
  border-radius: 1rem 0 1rem 0;
  background: rgba(255,255,255,.96);
  color: var(--ink);
  box-shadow: var(--shadow-pop);
  backdrop-filter: none;
}

.hero-media > figcaption span,
.about-hero-media > figcaption span,
.solutions-hero-aside > figcaption span,
.service-hero-media > figcaption span,
.its-hero-media > figcaption span {
  display: block;
  padding: 0;
  background: none;
  color: var(--primary);
  font-size: .625rem;
  font-weight: 800;
  letter-spacing: .065em;
  line-height: 1.25;
  text-transform: uppercase;
}

.its-hero-media > figcaption span::before { display: none; }

.hero-media > figcaption strong,
.about-hero-media > figcaption strong,
.solutions-hero-aside > figcaption strong,
.service-hero-media > figcaption strong,
.its-hero-media > figcaption strong {
  display: block;
  margin-top: .28rem;
  color: var(--ink);
  font-size: clamp(.72rem, .67rem + .08vw, .8rem);
  line-height: 1.42;
}

/* ============================================================
   Solutions capability mega menu
   A compact, Wix-ready global navigation panel with clear practice groups,
   service context and one orientation route. The mobile drawer remains the
   simpler interaction below the desktop breakpoint.
   ============================================================ */
.nav-menu.nav-mega {
  left: var(--mega-left, 0);
  display: grid;
  width: min(67rem, calc(100vw - 2rem));
  min-width: 0;
  margin-top: .65rem;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(0,105,180,.18);
  border-radius: 1.15rem;
  background: var(--white);
  grid-template-columns: 1fr;
  gap: 0;
  box-shadow: 0 32px 78px -28px rgba(5,38,63,.42), 0 8px 24px -18px rgba(5,38,63,.26);
  transform: translateY(-.45rem);
}

.nav-group:hover .nav-menu.nav-mega,
.nav-group:focus-within .nav-menu.nav-mega { transform: translateY(0); }
.nav-group.is-dismissed .nav-menu.nav-mega { transform: translateY(-.45rem); }

.nav-mega-intro {
  display: flex;
  min-width: 0;
  padding: .9rem 1rem;
  background:
    radial-gradient(16rem 8rem at 88% 30%, rgba(114,216,218,.2), transparent 72%),
    linear-gradient(118deg, #062e50 0%, #06466d 64%, #09677f 100%);
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.nav-mega-intro-copy { display: grid; min-width: 0; gap: .23rem; }
.nav-mega-intro-copy small {
  color: #82dce7;
  font-size: .59rem;
  font-weight: 800;
  letter-spacing: .11em;
  line-height: 1.2;
  text-transform: uppercase;
}
.nav-mega-intro-copy strong {
  color: var(--white);
  font-size: .96rem;
  font-weight: 750;
  letter-spacing: -.02em;
  line-height: 1.35;
}

.nav-menu.nav-mega .nav-mega-overview,
.nav-menu.nav-mega .nav-mega-contact {
  display: inline-flex;
  width: max-content;
  padding: .55rem .7rem;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: .58rem;
  background: rgba(255,255,255,.09);
  color: var(--white);
  align-items: center;
  justify-content: center;
  gap: .55rem;
  font-size: .7rem;
  font-weight: 750;
  white-space: nowrap;
}
.nav-menu.nav-mega .nav-mega-overview svg,
.nav-menu.nav-mega .nav-mega-contact svg { width: .82rem; height: .82rem; transition: transform .18s ease; }
.nav-menu.nav-mega .nav-mega-overview:hover,
.nav-menu.nav-mega .nav-mega-overview:focus-visible { background: rgba(255,255,255,.17); color: var(--white); }
.nav-menu.nav-mega .nav-mega-overview:hover svg,
.nav-menu.nav-mega .nav-mega-overview:focus-visible svg,
.nav-menu.nav-mega .nav-mega-contact:hover svg,
.nav-menu.nav-mega .nav-mega-contact:focus-visible svg { transform: translateX(2px); }

.nav-mega-grid {
  display: grid;
  min-width: 0;
  padding: .8rem;
  background: #f4f9fc;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .7rem;
}

.nav-menu.nav-mega .nav-menu-group {
  --mega-accent: var(--primary);
  position: relative;
  display: grid;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: .86rem;
  background: var(--white);
  align-content: start;
  gap: 0;
  box-shadow: 0 10px 24px -24px rgba(5,38,63,.65);
}
.nav-menu.nav-mega .nav-menu-group::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: var(--mega-accent);
  content: "";
}
.nav-menu.nav-mega .nav-menu-group-infrastructure { --mega-accent: var(--teal); }
.nav-menu.nav-mega .nav-menu-group-security { --mega-accent: var(--sky); }

.nav-menu.nav-mega .nav-menu-group > .nav-mega-group-head {
  display: grid;
  min-width: 0;
  padding: .85rem .8rem .72rem;
  color: inherit;
  grid-template-columns: 2rem 1fr;
  align-items: center;
  gap: .62rem;
  letter-spacing: normal;
  text-transform: none;
}
.nav-mega-group-icon {
  display: grid;
  width: 2rem;
  height: 2rem;
  border: 1px solid color-mix(in srgb, var(--mega-accent) 24%, white);
  border-radius: .58rem;
  background: color-mix(in srgb, var(--mega-accent) 9%, white);
  color: var(--mega-accent);
  place-items: center;
}
.nav-mega-group-icon svg { width: .94rem; height: .94rem; }
.nav-mega-group-head strong {
  color: var(--ink);
  font-size: .86rem;
  font-weight: 800;
  letter-spacing: -.012em;
  line-height: 1.3;
}

.nav-menu.nav-mega .nav-menu-group > .nav-mega-links {
  display: grid;
  min-width: 0;
  padding: 0 .55rem .55rem;
  color: inherit;
  gap: .08rem;
  letter-spacing: normal;
  text-transform: none;
}
.nav-menu.nav-mega .nav-mega-links > a {
  display: grid;
  min-width: 0;
  min-height: 3.05rem;
  padding: .58rem .55rem;
  border: 1px solid transparent;
  border-radius: .58rem;
  background: transparent;
  color: var(--slate-soft);
  grid-template-columns: 1.72rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .62rem;
  line-height: 1.25;
  transition: border-color .18s ease, background .18s ease, color .18s ease;
}
.nav-mega-link-icon {
  display: grid;
  width: 1.72rem;
  height: 1.72rem;
  border: 1px solid color-mix(in srgb, var(--mega-accent) 18%, white);
  border-radius: .5rem;
  background: color-mix(in srgb, var(--mega-accent) 7%, white);
  color: var(--mega-accent);
  place-items: center;
}
.nav-mega-link-icon svg { width: .78rem; height: .78rem; }
.nav-mega-links > a strong {
  color: var(--ink);
  font-size: .82rem;
  font-weight: 750;
  letter-spacing: -.012em;
  line-height: 1.38;
}
.nav-mega-links > a > svg {
  width: .75rem;
  height: .75rem;
  color: var(--mega-accent);
  opacity: .55;
  transition: opacity .18s ease, transform .18s ease;
}
.nav-menu.nav-mega .nav-mega-links > a:hover,
.nav-menu.nav-mega .nav-mega-links > a:focus-visible,
.nav-menu.nav-mega .nav-mega-links > a[aria-current="page"] {
  border-color: color-mix(in srgb, var(--mega-accent) 20%, white);
  background: color-mix(in srgb, var(--mega-accent) 7%, white);
  color: var(--mega-accent);
}
.nav-mega-links > a:hover > svg,
.nav-mega-links > a:focus-visible > svg,
.nav-mega-links > a[aria-current="page"] > svg { opacity: 1; transform: translateX(2px); }

.nav-mega-foot {
  display: flex;
  min-width: 0;
  padding: .7rem .85rem;
  border-top: 1px solid var(--border);
  background: var(--white);
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.nav-mega-guidance { display: flex; min-width: 0; align-items: center; gap: .62rem; }
.nav-mega-guidance-icon {
  display: grid;
  width: 1.9rem;
  height: 1.9rem;
  flex: 0 0 auto;
  border-radius: .55rem;
  background: var(--tint-2);
  color: var(--primary);
  place-items: center;
}
.nav-mega-guidance-icon svg { width: .9rem; height: .9rem; }
.nav-mega-guidance strong { color: var(--ink); font-size: .72rem; font-weight: 750; line-height: 1.4; }
.nav-menu.nav-mega .nav-mega-contact {
  flex: 0 0 auto;
  border-color: transparent;
  background: var(--primary);
  box-shadow: 0 10px 22px -16px rgba(0,105,180,.72);
}
.nav-menu.nav-mega .nav-mega-contact:hover,
.nav-menu.nav-mega .nav-mega-contact:focus-visible { background: var(--primary-hover); color: var(--white); }
