/* 110KMPS / Purpose.Singularity. — corporate pages and navigation layer. */
:root { --kmps-v3-glow: #c5ff79; }
.site-header { position:sticky; top:0; z-index:1000; }
.site-header__inner { min-height:78px; }
.site-brand__wordmark { white-space:nowrap; }
.site-nav__menu { font-size:.75rem; gap:0 clamp(.32rem,.9vw,1.1rem); }
.site-nav__menu > li > a { white-space:nowrap; }
@media (min-width:60rem) {
  .site-nav__menu .sub-menu { background:rgba(13,21,28,.98); backdrop-filter:blur(24px); border:1px solid rgba(197,255,121,.16); border-radius:8px; min-width:230px; box-shadow:0 28px 70px rgba(0,0,0,.55); }
  .site-nav__menu >li.menu-item-has-children:hover::after {content:""; position:absolute; height:18px; top:100%; left:0; right:0;}
  .site-nav__menu .sub-menu a { color:#E2E7E7; font-size:.82rem; font-weight:630; padding:.95rem 1.05rem; }
  .site-nav__menu .sub-menu a::before {content:"↗"; color:var(--kmps-v3-glow); display:inline-block; margin-right:.75rem; font-size:.9rem;}
  .site-nav__menu .sub-menu a:hover {background:#24302B; color:#fff;}
}
.kmps-hero .hero__title { max-width:12ch; font-size:clamp(4.1rem,6.5vw,7.9rem); }
.kmps-hero .hero__content {align-items:flex-start;}
.kmps-hero .hero__eyebrow {margin-bottom:clamp(1.8rem,4vw,3.5rem);}
.hero__statement {text-wrap:pretty;}
.site-footer__tagline { font-size:clamp(1rem,1.3vw,1.45rem); line-height:1.2; margin:1rem 0 .9rem; color:var(--kmps-v3-glow); font-weight:740; letter-spacing:-.02em; }
/* Editorial company page headers, original geometry inspired by motion not third-party shapes. */
.page-hero { position:relative; overflow:hidden; isolation:isolate; background:radial-gradient(ellipse 65% 95% at 99% 6%,rgba(159,222,142,.075),transparent 72%),linear-gradient(145deg,#101820,#090D12 70%); border-bottom:1px solid rgba(255,255,255,.07); }
.page-hero:before {content:""; position:absolute; width:clamp(400px,57vw,1050px); height:clamp(400px,57vw,1050px); border:1px solid rgba(197,255,121,.08); box-shadow:0 0 0 85px rgba(197,255,121,.015),0 0 0 170px rgba(197,255,121,.012); border-radius:50%; right:-24%; top:-74%; pointer-events:none; z-index:-1;}
.page-hero__inner {position:relative; min-height:clamp(300px,35vw,525px); padding-block:clamp(5rem,10vw,10rem) clamp(3rem,7vw,7rem); display:flex; flex-direction:column; justify-content:center;}
.page-hero .eyebrow {display:flex; gap:1rem; align-items:center; color:var(--kmps-v3-glow); font-weight:780; letter-spacing:.17em; font-size:.7rem; text-transform:uppercase;}
.page-hero .eyebrow::before {content:""; display:inline-block; width:30px; height:1px; background:currentColor;}
.page-hero__title {max-width:15ch; color:#F5F8F4; font-size:clamp(3.6rem,8vw,8.7rem); font-weight:840; line-height:.94; letter-spacing:-.075em; margin:.55em 0 .18em; text-wrap:balance;}
.page-hero__lead { max-width:55ch; color:#AFC0BC; font-size:clamp(1.05rem,1.65vw,1.45rem); line-height:1.55; margin-top:1.2rem; }
.page-body--flush {padding:0;}
/* Gutenberg content remains editable, but inherits a premium editorial system. */
.page-body--flush .entry-content {color:#F0F4F1;}
.page-body--flush .mc-section {padding-block:clamp(4.5rem,8vw,8rem);}
.page-body--flush .mc-section.is-surface {background:#151D26;}
.page-body--flush .mc-lead--xl {font-size:clamp(1.75rem,3.25vw,3.5rem); line-height:1.17; letter-spacing:-.045em; font-weight:670;}
.page-body--flush .mc-section-title {font-size:clamp(2.4rem,4.5vw,5rem); line-height:1.08; letter-spacing:-.06em;}
.page-body--flush .mc-muted {color:#B4C1C3;}
.page-body--flush .mc-item {border-top-color:rgba(197,255,121,.32);}
.page-body--flush .mc-item h3 {color:#F4F9F4;}
/* Advertising visual CTA. */
.page-hero--advertising {background:radial-gradient(ellipse 60% 100% at 87% 16%,rgba(247,181,91,.08),transparent 75%),#0C1218;}
.kmps-action-section {background:var(--kmps-v3-glow); color:#111B13; padding-block:clamp(4rem,8vw,8rem);}
.kmps-action-layout {display:grid; grid-template-columns:minmax(0,1.2fr) minmax(230px,.6fr); gap:4rem; align-items:center;}
.kmps-mini-label {margin:0 0 2rem; font-size:.68rem; font-weight:830; letter-spacing:.2em; text-transform:uppercase; color:var(--kmps-v3-glow);}
.kmps-action-section .kmps-mini-label {color:#263E23;}
.kmps-action-section h2 {max-width:12ch; font-size:clamp(3rem,5.5vw,6.1rem); line-height:.99; font-weight:830; letter-spacing:-.07em; margin:0 0 1.25rem;}
.kmps-action-section p:not(.kmps-mini-label) {max-width:50ch; line-height:1.7;}
.kmps-action-controls {display:flex; justify-content:flex-end;}
.kmps-primary-link {display:inline-flex; gap:2rem; justify-content:space-between; align-items:center; min-height:56px; padding:1rem 1.4rem; background:#121B1B; border:1px solid #121B1B; color:#fff; font-size:.84rem; font-weight:780; border-radius:3px; text-decoration:none; text-align:left;}
.kmps-primary-link:hover {background:#253433; border-color:#253433; color:var(--kmps-v3-glow);}
.kmps-primary-link span {font-size:1.4rem;}
/* Careers: a clearly separated employer-brand section and genuine openings. */
.page-hero--careers {background:radial-gradient(ellipse 55% 85% at 90% 11%,rgba(150,186,242,.12),transparent 75%),#0C1218;}
.kmps-careers-jobs {padding-block:clamp(5rem,9vw,9rem); background:#080E13; color:#F6F8F5;}
.kmps-roles-intro {display:grid; grid-template-columns:1fr .6fr; gap:2rem; align-items:end; margin-bottom:3rem;}
.kmps-roles-intro h2 {max-width:15ch; font-size:clamp(2.9rem,5vw,5.7rem); line-height:.98; font-weight:820; letter-spacing:-.065em;}
.kmps-roles-intro>p {color:#9DADB3; line-height:1.7; max-width:43ch;}
.kmps-role-groups {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; margin-top:3rem;}
.kmps-role-group {background:#151D26; border:1px solid #2D3940; border-radius:8px; padding:clamp(1.5rem,2.5vw,2.8rem);}
.kmps-role-group__head {display:flex; gap:1rem; align-items:center; border-bottom:1px solid #3B464B; padding-bottom:1.4rem;}
.kmps-role-group__head>span {color:var(--kmps-v3-glow); font-size:.76rem; font-weight:800; letter-spacing:.1em;}
.kmps-role-group__head h3 {font-size:clamp(1.3rem,1.8vw,2rem); font-weight:700; letter-spacing:-.035em;}
.kmps-role-item {display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.5rem 0; border-bottom:1px solid #354147;}
.kmps-role-item__title {color:#fff; font-weight:730; font-size:1.15rem;}
.kmps-role-item__meta {margin-top:.3rem; font-size:.82rem; color:#9BA9B0;}
.kmps-role-item>a {display:inline-flex; white-space:nowrap; gap:.6rem; color:var(--kmps-v3-glow); font-weight:750; text-decoration:none;}
.kmps-role-group__empty {padding:1.75rem 0 0; font-size:.98rem; color:#A2B1B5;}
.kmps-no-roles {display:flex; gap:1.35rem; align-items:flex-start; padding:clamp(1.5rem,3vw,3rem); border:1px solid #344149; background:linear-gradient(110deg,#172229,#101920); border-radius:8px; margin:2rem 0 1.5rem;}
.kmps-no-roles strong {font-size:clamp(1.15rem,2vw,1.6rem); font-weight:710;}
.kmps-no-roles p {margin-top:.45rem; color:#A3B2B4; line-height:1.65;}
.kmps-status-indicator {flex:none; width:10px; height:10px; margin-top:9px; border:2px solid var(--kmps-v3-glow); border-radius:50%;}
.kmps-linkedin-cta {margin-top:1.5rem; background:var(--kmps-v3-glow); border-color:var(--kmps-v3-glow); color:#07110B;}
.kmps-linkedin-cta:hover {color:#07110B; background:#e1ffbc; border-color:#e1ffbc;}
.kmps-admin-help {padding:1rem; margin-top:1rem; border-left:2px solid var(--kmps-v3-glow); font-size:.85rem; color:#C9DBCE;}
/* Contact: no generic form; purposeful contact channels from verified admin addresses. */
.page-hero--contact {background:radial-gradient(ellipse 60% 90% at 85% 0%,rgba(197,255,121,.11),transparent 73%),#0B1016;}
.kmps-contact-intro {padding-block:clamp(2rem,4vw,4rem); background:#0F161C; border-bottom:1px solid #28323A;}
.kmps-contact-intro .entry-content {max-width:1500px;}
.kmps-contact-opening {font-size:clamp(1.25rem,2.15vw,2.25rem); line-height:1.4; max-width:48ch; color:#D9E4DF; letter-spacing:-.035em;}
.kmps-contact-panel {background:#0F161C; color:#F8FAF8; padding-block:clamp(3rem,6vw,7rem) clamp(5rem,9vw,9rem);}
.kmps-contact-layout {display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); align-items:start; gap:clamp(3rem,6vw,8rem);}
.kmps-contact-aside {position:relative; min-height:500px;}
.kmps-contact-aside h2 {font-size:clamp(3rem,5.2vw,5.8rem); max-width:12ch; line-height:.96; letter-spacing:-.067em; font-weight:810;}
.kmps-contact-aside>p:not(.kmps-mini-label) {color:#9EADB2; max-width:34ch; line-height:1.7; margin-top:2rem;}
.kmps-contact-radar {position:relative; overflow:hidden; width:270px; height:270px; margin-top:2.7rem; border:1px solid rgba(197,255,121,.18); border-radius:50%; display:flex; flex-direction:column; justify-content:center; align-items:center; background:radial-gradient(circle,rgba(197,255,121,.05),transparent 72%);}
.kmps-contact-radar::before {content:""; position:absolute; inset:18%; border-radius:50%; border:1px dashed rgba(197,255,121,.3);}
.kmps-contact-radar::after {content:"";position:absolute;width:1px;height:130%;background:rgba(197,255,121,.2);transform:rotate(25deg);}
.kmps-contact-radar span:first-child {font-size:4.6rem; font-weight:840; letter-spacing:-.085em; color:var(--kmps-v3-glow); line-height:1;}
.kmps-contact-radar span:last-child {color:#AFC1B6; font-size:.6rem; letter-spacing:.18em; font-weight:760;}
.kmps-contact-options {display:flex; flex-direction:column; gap:1rem;}
.kmps-contact-card {display:flex; flex-direction:column; gap:.65rem; text-decoration:none; border:1px solid #344047; border-radius:7px; padding:clamp(1.5rem,2.9vw,3rem); background:#172128; transition:transform .25s ease,border-color .25s ease,background .25s ease; color:#fff;}
a.kmps-contact-card:hover {transform:translateX(5px); background:#20302B; border-color:rgba(197,255,121,.6); color:white;}
.kmps-contact-card__num {font-size:.66rem; letter-spacing:.17em; color:var(--kmps-v3-glow); font-weight:820;}
.kmps-contact-card__title {display:flex; gap:1rem; align-items:center; justify-content:space-between; font-size:clamp(1.35rem,2vw,2.4rem); font-weight:730; line-height:1.16; letter-spacing:-.045em; color:#fff;}
.kmps-contact-card__title span {font-size:1.8rem; color:var(--kmps-v3-glow);}
.kmps-contact-card__desc {font-size:.94rem; max-width:49ch; color:#9BAEB0; line-height:1.6;}
.kmps-contact-card__email {margin-top:.7rem; color:var(--kmps-v3-glow); font-weight:740; font-size:.92rem; overflow-wrap:anywhere;}
.kmps-contact-bottom {display:flex; gap:1rem 1.5rem; flex-wrap:wrap; border-top:1px solid #354149; padding-top:1.4rem; margin-top:1rem; color:#B9C5C3; font-size:.86rem;}
.kmps-contact-bottom a {color:var(--kmps-v3-glow);}
/* Brand profile storytelling, native WP Gutenberg body. */
.brand-single .page-hero {border-bottom:none; background:linear-gradient(145deg,#101A20,#0C1217);}
.brand-single .page-hero::before {opacity:.9;}
.brand-single .page-hero__inner {min-height:clamp(360px,42vw,600px);}
.brand-single .page-hero__title {font-size:clamp(4rem,11vw,12rem); max-width:15ch;}
.brand-single .page-hero__lead {max-width:42ch;}
.brand-body {padding-block:clamp(4rem,7vw,8rem); display:grid; grid-template-columns:minmax(190px,.38fr) minmax(0,1fr); gap:clamp(2.5rem,6vw,7rem);}
.brand-facts {position:sticky; top:6rem;}
.brand-facts dt {font-size:.7rem; color:var(--kmps-v3-glow); font-weight:780; letter-spacing:.14em; text-transform:uppercase;}
.brand-facts dd {color:#E8EEEB; overflow-wrap:anywhere;}
.brand-body__main .entry-content {color:#E3EAE5; font-size:clamp(1.075rem,1.55vw,1.35rem); line-height:1.75;}
.brand-body__main .entry-content>p:first-child {font-size:clamp(1.5rem,2.8vw,2.8rem); line-height:1.3; font-weight:570; letter-spacing:-.04em; color:#fff;}
.brand-body__visit .button {background:var(--kmps-v3-glow); border-color:var(--kmps-v3-glow); color:#111A13;}
.brand-body__visit .button:hover {background:#e1ffbc;}
/* News as product release notes, not a generic news publisher. */
body.blog .page-hero__lead {max-width:53ch;}
.news-grid {gap:clamp(1rem,2vw,2rem);}
body.blog .page-body {padding-block:clamp(3rem,6vw,7rem);}
/* WCAG-level clear focus rings. */
:where(.site-nav,.kmps-careers-jobs,.kmps-contact-panel,.kmps-action-section) :focus-visible {outline:2px solid var(--kmps-v3-glow); outline-offset:4px;}
@media (max-width:75rem) {
  .site-nav__menu {gap:0; font-size:.72rem;}
  .site-nav__menu>li>a {padding-inline:.5rem;}
}
@media (max-width:59.99rem) {
  .site-header__inner {min-height:72px;}
  .site-nav__menu {font-size:clamp(1.7rem,6vw,2.5rem);}
  .site-nav__menu .sub-menu {font-size:.95rem;}
  .site-nav__menu .sub-menu a::before {content:"↳"; margin-right:.7rem; color:var(--kmps-v3-glow);}
  .kmps-roles-intro,.kmps-contact-layout {grid-template-columns:1fr;}
  .kmps-contact-aside {min-height:auto;}
  .kmps-contact-radar {position:absolute; right:0; bottom:-1rem; width:170px; height:170px; opacity:.43; pointer-events:none;}
  .kmps-contact-radar span:first-child {font-size:3rem;}
}
@media (max-width:42rem) {
  .page-hero__inner {min-height:280px; padding-block:4.4rem 3.3rem;}
  .page-hero__title {font-size:clamp(3.2rem,13.2vw,5.2rem); overflow-wrap:break-word;}
  .kmps-hero .hero__title {font-size:clamp(3.35rem,13.5vw,5.15rem); overflow-wrap:normal;}
  .kmps-role-groups,.kmps-action-layout {grid-template-columns:1fr; gap:1.2rem;}
  .kmps-action-controls {justify-content:flex-start;}
  .kmps-contact-radar {display:none;}
  .kmps-contact-aside h2 {font-size:clamp(2.9rem,12vw,4rem);}
  .brand-body {grid-template-columns:1fr; gap:2.2rem;}
  .brand-facts {position:static;}
  .kmps-careers-jobs {padding-block:4rem;}
  .kmps-contact-panel {padding-top:2rem;}
  .kmps-contact-card {padding:1.6rem;}
  .kmps-role-item {align-items:flex-start;}
}
@media (prefers-reduced-motion:reduce) { .kmps-contact-card {transition:none;} a.kmps-contact-card:hover {transform:none;} }
/* Overrides for the predecessor's legacy mobile tab-bar styling. That bar is
   no longer rendered; restore the actual accessible header/menu controls. */
.page-hero {padding-block:0;}
.page-hero__inner {align-items:flex-start; text-align:left; gap:1rem;}
.page-hero--contact .page-hero__inner {align-items:flex-start; text-align:left;}
.page-hero--contact .eyebrow {margin-inline:0; color:var(--kmps-v3-glow); background:transparent; border:0; padding:0; text-shadow:none;}
.page-hero--contact .page-hero__title {font-size:clamp(3.6rem,8vw,8.7rem);}
@media (max-width:59.99rem) {
  body {padding-block-end:0;}
  .site-header,.site-header.is-scrolled {position:sticky; inset-block-start:var(--wp-admin--admin-bar--height,0px);}
  .site-header__inner {justify-content:space-between; flex-wrap:nowrap;}
  .site-brand {width:auto;justify-content:flex-start;text-align:left;}
  .site-brand__wordmark {font-size:clamp(1.45rem,4.7vw,1.85rem);margin:0;}
  .js .nav-toggle {display:inline-flex!important; flex:none;}
  .js .site-nav {display:none!important;}
  .js .site-nav.is-open {display:flex!important;}
  .page-hero--contact .page-hero__inner {align-items:flex-start;text-align:left;}
  .page-hero--contact .eyebrow {margin-inline:0;}
  .page-hero--contact .page-hero__lead {margin-inline:0;max-width:55ch;}
  .page-hero--contact .page-hero__title {font-size:clamp(3.2rem,13.2vw,5.2rem);}
}
/* The older theme's .home-specific typography has higher specificity than the
   generic skin and was oversized at phone widths. */
.home .brands__title {font-size:clamp(3rem,5.8vw,6.75rem);}
@media (max-width:42rem) {
  .home .brands__title {font-size:clamp(2.55rem,10.8vw,3.45rem); line-height:.98; max-width:100%;}
}
/* backdrop-filter creates a fixed-position containing block in Chromium/WebKit.
   Without disabling it here, the full-screen mobile menu is constrained to
   the sticky header and bleeds over the hero instead of covering the viewport. */
@media (max-width:59.99rem) {
  .site-header,.site-header.is-scrolled {backdrop-filter:none; -webkit-backdrop-filter:none;}
  .js .site-nav.is-open {position:fixed; inset:calc(var(--header-height) + var(--wp-admin--admin-bar--height,0px)) 0 0; z-index:9999; width:100%; min-height:calc(100dvh - var(--header-height)); background:#0D1218; overflow-y:auto;}
}
/* Legacy 3D hero caption was absolutely positioned. The v3 signal stage uses
   normal flow; this prevents text from overlapping its control-strip footer. */
.kmps-hero .hero__visual-caption {position:static; inset:auto; margin-top:1rem;}
