
/* --- releases/release-candidate/pages-v580-home-speed-seo/site/assets/css/kmu-ux-v456.css --- */
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin: 1rem auto 0;
}

.hero-actions .btn,
.hero-actions .btn:visited,
.hero-actions .btn:hover,
.hero-actions .btn:focus-visible {
  text-decoration: none !important;
  background-image: none !important;
}

.hero-actions .btn {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.contact-note {
  margin: 0.5rem 0 1rem;
  color: #475569;
}

@media (max-width: 640px) {
  .hero-actions .btn {
    width: 100%;
    max-width: 340px;
  }
}

body > header {
  padding-top: clamp(2.25rem, 5vw, 4rem);
  padding-bottom: clamp(1.75rem, 4vw, 3rem);
}

body > header h1 {
  margin: 0 0 0.75rem;
  font-size: clamp(2.25rem, 4.2vw, 3.25rem);
  line-height: 1.08;
  letter-spacing: 0;
}

body > header p {
  max-width: 78ch;
  margin-left: auto;
  margin-right: auto;
}

body > header p + p {
  margin-top: 0.65rem;
}

body > footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1.25rem 1rem 1.5rem;
}

body > footer .partner-badges {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0;
}

body > footer .partner-badges a {
  min-height: 32px;
  max-width: min(100%, 34rem);
  white-space: nowrap;
}

body > footer .legal-note,
body > footer .copyright-line,
body > footer > p {
  margin: 0;
}

body > footer .security-practice {
  width: min(100%, 58rem);
  margin: 0.15rem 0 0;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  color: #334155;
}

body > footer .security-practice > span {
  display: inline;
  margin: 0 0.35rem 0 0;
}

body > footer .security-practice > span:not(:last-child)::after {
  content: "·";
  margin-left: 0.45rem;
  color: #64748b;
}

body > footer .security-practice .links {
  display: inline;
  white-space: nowrap;
}

.security-footer {
  margin: 0 !important;
  padding: 0.55rem 1rem 0.65rem !important;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  background: rgba(248, 250, 252, 0.72) !important;
  color: #334155;
}

.security-footer .security-practice {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 0.25rem 0.6rem !important;
  margin: 0 auto !important;
  max-width: 68rem;
  line-height: 1.28 !important;
}

.security-footer .security-practice > span {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
}

.security-footer .security-practice > span:not(:last-child)::after {
  content: "·" !important;
  margin-left: 0.6rem !important;
  color: #64748b;
}

.security-footer .security-practice .links {
  display: inline-flex !important;
  gap: 0.45rem !important;
  white-space: nowrap !important;
}

@media (max-width: 760px) {
  body > footer .partner-badges a,
  body > footer .security-practice .links,
  .security-footer .security-practice .links {
    white-space: normal;
  }

  body > footer .security-practice > span {
    display: block;
    margin: 0.2rem 0;
  }

  body > footer .security-practice > span:not(:last-child)::after {
    content: none;
  }

  .security-footer .security-practice {
    display: block !important;
  }

  .security-footer .security-practice > span {
    display: block !important;
    margin: 0.2rem 0 !important;
  }

  .security-footer .security-practice > span:not(:last-child)::after {
    content: none !important;
  }
}

/* --- releases/release-candidate/pages-v580-home-speed-seo/site/assets/css/lang-switcher.css --- */
.lang-switcher.segmented{--seg-bg:#fff;--seg-br:12px;--seg-border:1px solid rgba(0,0,0,.12);--seg-shadow:0 1px 2px rgba(0,0,0,.06);--seg-gap:2px;--seg-pad:4px;--seg-font:clamp(0.9rem,2.2vw,1rem);--seg-height:42px;position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--seg-gap);background:var(--seg-bg);border:var(--seg-border);border-radius:var(--seg-br);padding:var(--seg-pad);box-shadow:var(--seg-shadow);width:min(280px,90vw);user-select:none;-webkit-user-select:none;}.lang-switcher.segmented a{position:relative;display:grid;place-items:center;height:var(--seg-height);border-radius:calc(var(--seg-br) - var(--seg-pad));text-decoration:none;font-weight:600;font-size:var(--seg-font);color:#0f172a;z-index:1;}.lang-switcher.segmented::before{content:"";position:absolute;inset:var(--seg-pad);width:calc((100% - (var(--seg-gap) * 2) - var(--seg-pad)*2) / 3);height:calc(100% - var(--seg-pad)*2);border-radius:calc(var(--seg-br) - var(--seg-pad));background:rgba(15,23,42,.06);transition:transform 220ms ease;z-index:0;}.lang-switcher.segmented[data-active="de"]::before{transform:translateX(0%);}.lang-switcher.segmented[data-active="en"]::before{transform:translateX(100%);}.lang-switcher.segmented[data-active="fr"]::before{transform:translateX(200%);}.lang-switcher.segmented a[aria-selected="true"]{color:#0b61d8;}.lang-switcher.segmented a:focus-visible{outline:2px solid #0b61d8;outline-offset:2px;}.lang-switcher.segmented{margin:.5rem auto 1rem;}@media (prefers-color-scheme:dark){.lang-switcher.segmented{--seg-bg:rgba(255,255,255,.06);--seg-border:1px solid rgba(255,255,255,.16);--seg-shadow:none;}.lang-switcher.segmented a{color:#e5e7eb;}.lang-switcher.segmented::before{background:rgba(255,255,255,.12);}.lang-switcher.segmented a[aria-selected="true"]{color:#93c5fd;}}@media (max-width:640px){.lang-switcher.segmented{--seg-height:40px;--seg-font:clamp(0.9rem,3.2vw,1rem);width:min(300px,92vw);}}.page-vcv .lang-switcher.segmented{position:fixed;bottom:1rem;right:1rem;margin:0;z-index:30;}@media (max-width:640px){.page-vcv .lang-switcher.segmented{--seg-height:48px;--seg-font:clamp(1rem,4vw,1.1rem);width:min(320px,94vw);bottom:.75rem;right:.75rem;}}\n .lang-switcher.segmented a{box-shadow:none !important;transition:background .2s ease,box-shadow .2s ease;}.lang-switcher.segmented a.active{box-shadow:0 8px 24px rgba(0,0,0,.12) !important;}.lang-switcher.segmented a{background:transparent !important;box-shadow:none !important;transition:background .2s ease,box-shadow .2s ease,color .2s ease;}.lang-switcher.segmented a.active{background:#eef0f3 !important;box-shadow:0 8px 24px rgba(0,0,0,.12) !important;}.lang-switcher.segmented a:not(.active){color:#111 !important;}.lang-switcher.segmented{display:inline-flex !important;gap:12px !important;padding:6px !important;background:#fff !important;border:2px solid #ECEFF1 !important;border-radius:16px !important;box-shadow:0 8px 24px rgba(0,0,0,.08) !important;overflow:hidden;}.lang-switcher.segmented a{display:inline-flex !important;align-items:center !important;justify-content:center !important;min-width:72px !important;padding:10px 18px !important;border-radius:12px !important;font-weight:700 !important;text-decoration:none !important;color:#111 !important;background:transparent !important;box-shadow:none !important;transition:background .2s ease,box-shadow .2s ease,color .2s ease;}.lang-switcher.segmented a.active{background:#EEF0F3 !important;box-shadow:0 8px 24px rgba(0,0,0,.14) !important;color:#0A58CA !important;}.lang-switcher.segmented::before,.lang-switcher.segmented::after{content:none !important;}


/* Shared placement used by every page-level language switcher. */
.lang-switcher.segmented { box-sizing: border-box; }
.lang-switcher.segmented a { box-sizing: border-box; flex: 1 1 0; min-width: 0 !important; }
/* Only Privacy deliberately keeps its switcher visible while the long legal text scrolls. */
.privacy-page .lang-switcher.segmented.fixed { position: fixed; top: 1rem; left: 1rem; z-index: 1000; margin: 0; }

.lang-switcher.segmented .li-icon, .lang-switcher.segmented .li-icon svg { width: 16px; height: 16px; }

/* --- releases/release-candidate/pages-v580-home-speed-seo/site/assets/css/site-shell.css --- */
/* Shared page shell based on the main page layout.
   Scope is limited to pages that explicitly use .site-shell-page. */
:root {
  --site-shell-max: 1200px;
  --site-shell-gutter: 1rem;
  --site-shell-radius: 12px;
  --site-shell-surface: rgba(255,255,255,.85);
  --site-shell-shadow: 0 8px 24px rgba(0,0,0,.10);
  --site-shell-text: #1f2937;
  --site-shell-muted: #334155;
}

body.site-shell-page {
  margin: 0;
  padding: 0;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--site-shell-text);
}

/* Home CTA buttons use the same readable scale as Blog, Lab and Outdoor. */
body:not(.site-shell-page) .hero-actions .btn {
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 700;
}

body.site-shell-page:not(.security-warnings-page) > header:not(.agents-hero):not(.site-header) {
  padding: clamp(2.25rem, 5vw, 4rem) var(--site-shell-gutter)
           clamp(1.75rem, 4vw, 3rem);
  text-align: center;
  background: rgba(245,245,220,.90);
  border-bottom: 1px solid rgba(0,0,0,.05);
  backdrop-filter: blur(8px);
}

body.site-shell-page:not(.security-warnings-page) > header:not(.agents-hero):not(.site-header) h1 {
  max-width: 24ch;
  margin: 0 auto .75rem;
  font-family: inherit;
  font-size: clamp(2.25rem, 4.2vw, 3.25rem);
  line-height: 1.08;
  letter-spacing: 0;
  color: var(--site-shell-text);
}

body.site-shell-page:not(.security-warnings-page) > header:not(.agents-hero):not(.site-header) p {
  max-width: 78ch;
  margin: 0 auto;
  font-family: inherit;
  font-size: 1.1rem;
  line-height: 1.6;
  color: var(--site-shell-muted);
}

body.site-shell-page:not(.security-warnings-page) > header:not(.agents-hero):not(.site-header) p + p {
  margin-top: .65rem;
}

/* Security Warnings keeps its metadata and controls, but uses the same shell
   geometry and typography as the other site pages. */
body.site-shell-page.security-warnings-page > header {
  padding: clamp(2.25rem, 5vw, 4rem) var(--site-shell-gutter)
           clamp(1.75rem, 4vw, 3rem);
  text-align: center;
  background: rgba(245,245,220,.90);
  border-bottom: 1px solid rgba(0,0,0,.05);
  backdrop-filter: blur(8px);
}

body.site-shell-page.security-warnings-page > header .sw-header {
  padding: 0;
  background: transparent;
  border: 0;
}

body.site-shell-page.security-warnings-page > header .sw-wrap {
  width: 100%;
  max-width: var(--site-shell-max);
  padding: 0;
}

body.site-shell-page.security-warnings-page > header .sw-topline {
  max-width: var(--site-shell-max);
  margin: 0 auto .75rem;
  justify-content: center;
}

body.site-shell-page.security-warnings-page > header .sw-home {
  display: none;
}

body.site-shell-page.security-warnings-page > header h1 {
  max-width: 24ch;
  margin: 0 auto .75rem;
  font-family: inherit;
  font-size: clamp(2.25rem, 4.2vw, 3.25rem);
  line-height: 1.08;
  letter-spacing: 0;
  color: var(--site-shell-text);
}

body.site-shell-page.security-warnings-page > header .sw-lead {
  max-width: 78ch;
  margin: 0 auto;
  font-family: inherit;
  font-size: 1.1rem;
  line-height: 1.6;
  color: var(--site-shell-muted);
}

body.site-shell-page.security-warnings-page > header .sw-actions {
  justify-content: center;
  margin-top: 1rem;
}

body.site-shell-page main.container,
body.site-shell-page main.main,
body.site-shell-page main#main,
body.site-shell-page .wrap,
body.site-shell-page main.lab-container,
body.site-shell-page main.sw-detail-shell {
  width: calc(100% - 2rem);
  max-width: var(--site-shell-max);
  margin: 2rem auto;
  padding: 2.5rem;
  background: var(--site-shell-surface);
  border-radius: var(--site-shell-radius);
  box-shadow: var(--site-shell-shadow);
  overflow-x: clip;
}

body.site-shell-page.security-warnings-page main#main {
  width: calc(100% - 2rem);
  max-width: var(--site-shell-max);
  margin: 2rem auto;
  padding: 2.5rem;
  background: var(--site-shell-surface);
  border-radius: var(--site-shell-radius);
  box-shadow: var(--site-shell-shadow);
  overflow-x: clip;
}

/* Lab index previously removed its sheet globally. Restore the same shell here. */
body.site-shell-page.lab-list-page main#main {
  width: calc(100% - 2rem) !important;
  max-width: var(--site-shell-max) !important;
  margin: 2rem auto !important;
  padding: 2.5rem !important;
  background: var(--site-shell-surface) !important;
  border-radius: var(--site-shell-radius) !important;
  box-shadow: var(--site-shell-shadow) !important;
}

/* Embedded tools stay inside the same sheet width. Their internal layout is unchanged. */
body.site-shell-page .ai-frame-wrap,
body.site-shell-page .embed-shell,
body.site-shell-page .app-shell {
  max-width: 100% !important;
}

body.site-shell-page .notes-block {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
  font-family: inherit;
}

body.site-shell-page main img,
body.site-shell-page main iframe,
body.site-shell-page .wrap img,
body.site-shell-page .wrap iframe {
  max-width: 100%;
}

@media (max-width: 768px) {
  :root {
    --site-shell-gutter: 1rem;
    --site-shell-radius: 12px;
  }

  body.site-shell-page {
    padding: 1rem;
  }

  body.site-shell-page:not(.security-warnings-page) > header:not(.agents-hero):not(.site-header) {
    padding-top: 2rem;
    padding-bottom: 1.75rem;
  }

  body.site-shell-page:not(.security-warnings-page) > header:not(.agents-hero):not(.site-header) h1 {
    max-width: 100%;
    font-size: clamp(1.8rem, 8.5vw, 2.35rem);
    line-height: 1.18;
    overflow-wrap: anywhere;
  }

  body.site-shell-page:not(.security-warnings-page) > header:not(.agents-hero):not(.site-header) p {
    font-size: 1rem;
    line-height: 1.55;
  }

  body.site-shell-page.security-warnings-page > header {
    padding-top: 2rem;
    padding-bottom: 1.75rem;
  }

  body.site-shell-page.security-warnings-page > header .sw-topline {
    margin-bottom: .65rem;
  }

  body.site-shell-page.security-warnings-page > header h1 {
    max-width: 100%;
    font-size: clamp(1.5rem, 7vw, 2.35rem);
    line-height: 1.18;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    text-wrap: balance;
  }

  body.site-shell-page.security-warnings-page > header .sw-lead {
    font-size: 1rem;
    line-height: 1.55;
  }

  body.site-shell-page main.container,
  body.site-shell-page main.main,
  body.site-shell-page main#main,
  body.site-shell-page .wrap,
  body.site-shell-page main.lab-container,
  body.site-shell-page main.sw-detail-shell,
  body.site-shell-page.lab-list-page main#main {
    width: 95% !important;
    max-width: 95% !important;
    margin: 1rem auto !important;
    padding: 1rem !important;
  }

  body.site-shell-page.security-warnings-page main#main {
    width: 95% !important;
    max-width: 95% !important;
    margin: 1rem auto !important;
    padding: 1rem !important;
  }
}

@media (max-width: 420px) {
  body.site-shell-page:not(.security-warnings-page) > header:not(.agents-hero):not(.site-header) {
    padding-left: .75rem;
    padding-right: .75rem;
  }

  body.site-shell-page main.container,
  body.site-shell-page main.main,
  body.site-shell-page main#main,
  body.site-shell-page .wrap,
  body.site-shell-page main.lab-container,
  body.site-shell-page main.sw-detail-shell,
  body.site-shell-page.lab-list-page main#main {
    padding: .875rem !important;
  }

  body.site-shell-page.security-warnings-page > header {
    padding-left: .75rem;
    padding-right: .75rem;
  }

  body.site-shell-page.security-warnings-page main#main {
    padding: .875rem !important;
  }
}

/* Privacy uses the shared shell geometry, but its fixed language switcher
   requires an explicit sheet position and heading clearance. This selector
   intentionally comes last and is more specific than the generic mobile
   main.container rules above. */
body.site-shell-page.privacy-page > main#main {
  width: calc(100% - 2rem) !important;
  max-width: 1200px !important;
  margin: 82px auto !important;
  padding: 2.5rem !important;
  box-sizing: border-box !important;
}

@media (max-width: 768px) {
  body.site-shell-page.privacy-page > main#main {
    width: 95% !important;
    max-width: 95% !important;
    margin: 96px auto !important;
    /* The outer margin clears the fixed language switcher. Keep the sheet's
       inner top padding equal to the shared mobile shell. */
    padding: 1rem !important;
  }
}

@media (max-width: 420px) {
  body.site-shell-page.privacy-page > main#main {
    padding: .875rem !important;
  }
}
