:root { --kem-navy:#002b58; --kem-blue:#0261da; --kem-yellow:#ffd400; --kem-ink:#17324d; --kem-bg:#f4f7fb; --kem-container:1220px; }
body.kem-final-active { color:var(--kem-ink); }
body.kem-final-active :where(.kem-final-scope) { font-family:Bahnschrift,"DIN Alternate","Arial Narrow",sans-serif; }
body.kem-final-active :where(.kem-final-container) { width:min(var(--kem-container),calc(100% - 48px)); margin-inline:auto; }
body.kem-final-active :where(img) { max-width:100%; height:auto; }
body.kem-final-active :where(.kem-final-table-scroll) { max-width:100%; overflow-x:auto; }
body.kem-final-active :where(.kem-final-table-scroll table) { min-width:680px; }

body.kem-final-family-service-hub .kem-service-hub-page { background:linear-gradient(180deg,#eef5ff 0,#fff 420px); }
body.kem-final-family-service-hub .kem-service-hub-page > * { width:min(var(--kem-container),calc(100% - 48px)); margin-inline:auto; }
body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-content { max-width:1180px; padding:48px 0 76px; }
body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-hero { position:relative; padding:48px; border-radius:26px; background:linear-gradient(135deg,#003667 0,#005bac 72%,#0879d9 100%); color:#fff; box-shadow:0 24px 60px rgba(0,43,88,.2); overflow:hidden; }
body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-hero::after { content:""; position:absolute; right:-100px; top:-140px; width:360px; height:360px; border-radius:50%; border:70px solid rgba(255,216,0,.12); pointer-events:none; }
body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-hero :where(h1,a) { color:#fff; }
body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-hero h1 { max-width:900px; margin-top:0; font-size:clamp(38px,5vw,64px); line-height:1.04; }
body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-hero p { max-width:920px; font-size:18px; line-height:1.72; }
body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:28px; }
body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-card { min-width:0; padding:32px; border:1px solid #dbe6f3; border-radius:22px; background:#fff; box-shadow:0 14px 36px rgba(0,43,88,.08); }
body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-card--wide { grid-column:1/-1; }
body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-card > h2 { margin:0 0 22px; color:var(--kem-navy); font-size:clamp(26px,3vw,38px); line-height:1.12; }
body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-card h3 { margin:22px 0 6px; padding-top:18px; border-top:1px solid #e3ebf4; }
body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-card :where(p,li) { line-height:1.68; }
body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-card a { text-underline-offset:3px; }

body.kem-final-family-service-detail .kem-service-detail-page .kem-v3-seo { display:block !important; }
body.kem-final-family-service-detail .kem-service-detail-page .kem-service-detail-seo { width:min(var(--kem-container),calc(100% - 48px)); margin:48px auto 80px; }
body.kem-final-family-service-detail .kem-service-detail-page .kem-service-detail-intro { padding:32px; border:1px solid #dbe6f3; border-radius:20px; background:#fff; box-shadow:0 14px 40px rgba(0,43,88,.08); }
body.kem-final-family-service-detail .kem-service-detail-page .kem-service-detail-accordion { margin-top:14px; border:1px solid #d5e2f0; border-radius:16px; background:#fff; overflow:hidden; }
body.kem-final-family-service-detail .kem-service-detail-page .kem-service-detail-accordion > summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 26px; cursor:pointer; list-style:none; background:#f7faff; }
body.kem-final-family-service-detail .kem-service-detail-page .kem-service-detail-accordion > summary::-webkit-details-marker { display:none; }
body.kem-final-family-service-detail .kem-service-detail-page .kem-service-detail-accordion > summary::after { content:"+"; color:var(--kem-blue); font-size:28px; line-height:1; }
body.kem-final-family-service-detail .kem-service-detail-page .kem-service-detail-accordion[open] > summary::after { content:"−"; }
body.kem-final-family-service-detail .kem-service-detail-page .kem-service-detail-accordion h2 { margin:0; font-size:clamp(20px,2.2vw,28px); color:var(--kem-navy); }
body.kem-final-family-service-detail .kem-service-detail-page .kem-service-detail-panel { padding:26px; border-top:1px solid #e2eaf3; }

body.kem-final-family-article-detail .kem-article-page { background:var(--kem-bg); padding-bottom:80px; }
body.kem-final-family-article-detail .kem-article-page > .uk-section { background:transparent !important; }
body.kem-final-family-article-detail .kem-article-page > .kem-article-hero-section { padding-block:54px 30px; background:linear-gradient(135deg,#eaf3ff 0,#f7fbff 68%,#fff6bf 100%) !important; }
body.kem-final-family-article-detail .kem-article-page > .kem-article-hero-section .uk-container { max-width:1180px !important; }
body.kem-final-family-article-detail .kem-article-page > .kem-article-body-section { width:min(1180px,calc(100% - 48px)); margin:0 auto; padding:44px 0 64px; }
body.kem-final-family-article-detail .kem-article-page > .kem-article-body-section > .uk-container { max-width:1180px !important; padding:0; }
body.kem-final-family-article-detail .kem-article-page > .kem-article-body-section .uk-container-small { max-width:940px !important; }
body.kem-final-family-article-detail .kem-article-page > .kem-article-body-section .uk-grid { align-items:start; gap:36px; }
body.kem-final-family-article-detail .kem-article-page > .kem-article-body-section [class*="uk-width-2-3"] { flex:1 1 820px; width:auto; }
body.kem-final-family-article-detail .kem-article-page > .kem-article-body-section [class*="uk-width-1-3"] { flex:0 0 280px; width:280px; position:sticky; top:24px; padding:22px; border:1px solid #dbe6f3; border-radius:18px; background:#fff; box-shadow:0 12px 32px rgba(0,43,88,.08); }
body.kem-final-family-article-detail .kem-article-page :where(h1,h2,h3) { color:var(--kem-navy); }
body.kem-final-family-article-detail .kem-article-page h1 { max-width:900px; font-size:clamp(38px,5vw,64px); line-height:1.04; }
body.kem-final-family-article-detail .kem-article-page h2 { margin-top:48px; font-size:clamp(26px,3vw,36px); line-height:1.15; }
body.kem-final-family-article-detail .kem-article-page h3 { margin-top:32px; font-size:clamp(21px,2.3vw,27px); }
body.kem-final-family-article-detail .kem-article-page :where(p,li) { font-size:18px; line-height:1.72; }
body.kem-final-family-article-detail .kem-article-page table { display:block; max-width:100%; overflow-x:auto; }
body.kem-final-family-article-detail .kem-article-page > .kem-article-related-section { width:min(1180px,calc(100% - 48px)); margin:0 auto; padding:54px; border-radius:24px; background:var(--kem-navy) !important; color:#fff; overflow:hidden; }
body.kem-final-family-article-detail .kem-article-page > .kem-article-related-section :where(h2,h3,a) { color:#fff; }
body.kem-final-family-article-detail .kem-article-page .kem-related-title { max-width:none; margin:0 0 32px; font-size:clamp(34px,5vw,58px) !important; line-height:1; letter-spacing:-.03em; }
body.kem-final-family-article-detail .kem-article-page > .kem-article-related-section .uk-heading-xlarge { color:#fff !important; font-size:clamp(34px,5vw,58px) !important; line-height:1 !important; }
body.kem-final-family-article-detail .kem-article-page > .kem-article-related-section :where(.uk-heading-2xlarge,.uk-heading-large) { left:auto !important; margin:0 0 32px !important; color:#fff !important; font-size:clamp(34px,5vw,58px) !important; line-height:1 !important; letter-spacing:-.03em; text-transform:none; }
body.kem-final-family-article-detail .kem-article-page .kem-article-residue { display:none !important; }

body.kem-final-family-article-archive #tm-main { background:linear-gradient(180deg,#eff6ff 0,#fff 520px); }
body.kem-final-family-article-archive .kem-article-catalog { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; width:min(var(--kem-container),calc(100% - 48px)); margin-inline:auto; padding:28px 0 80px; }
body.kem-final-family-article-archive .kem-article-catalog > p { grid-column:1/-1; margin:0; }
body.kem-final-family-article-archive .kem-catalog-group { min-width:0; padding:28px; border:1px solid #dbe6f3; border-radius:20px; background:#fff; box-shadow:0 12px 36px rgba(0,43,88,.08); }
body.kem-final-family-article-archive .kem-catalog-group h2 { margin:0 0 18px; font-size:clamp(24px,2.5vw,34px); line-height:1.15; }
body.kem-final-family-article-archive .kem-catalog-group ul { display:grid; gap:10px; margin:0; padding-left:20px; }
body.kem-final-family-article-archive .kem-catalog-group li { padding-left:4px; line-height:1.45; }

@media (max-width:1023px) {
  body.kem-final-family-homepage .kem-home-page .uk-tab { display:flex; flex-wrap:wrap; max-width:100%; margin-left:0 !important; }
  body.kem-final-family-homepage .kem-home-page .uk-tab > * { flex:1 1 140px; min-width:0; max-width:100%; padding-left:0 !important; }
  body.kem-final-family-homepage .kem-home-page .uk-tab a { width:auto !important; min-width:0 !important; max-width:100%; box-sizing:border-box; overflow-wrap:anywhere; }
  body.kem-final-family-homepage .kem-home-page .uk-grid { max-width:100%; margin-left:0 !important; }
  body.kem-final-family-homepage .kem-home-page .uk-grid > * { max-width:100%; padding-left:0 !important; }
  body.kem-final-family-homepage .kem-home-page :where(.kem-rev-slide,.kem-track) { max-width:100%; }
  body.kem-final-family-homepage .kem-home-page .kem-partners { left:auto; right:auto; width:100%; margin-inline:0; padding:40px 16px 48px; }
  body.kem-final-family-homepage .kem-home-page .kem-partners .uk-card-default { width:auto; max-width:100%; margin-inline:0; padding:28px 16px; box-sizing:border-box; }
  body.kem-final-family-homepage .kem-home-page .kem-partners :where(.kem-p-lead,.t1,.t2,.kem-p-grid) { width:100%; max-width:100%; }
  body.kem-final-family-homepage .kem-home-page .kem-partners .kem-p-grid { gap:24px 12px; }
  body.kem-final-family-homepage .kem-home-page .kem-partners .kem-p-grid img { max-width:120px; }
  body.kem-final-active :where(.kem-final-container),
  body.kem-final-family-service-hub .kem-service-hub-page > *,
  body.kem-final-family-service-detail .kem-service-detail-page .kem-service-detail-seo,
  body.kem-final-family-article-archive .kem-article-catalog { width:min(100% - 32px,var(--kem-container)); }
  body.kem-final-family-service-detail .kem-service-detail-page .kem-service-detail-intro,
  body.kem-final-family-service-detail .kem-service-detail-page .kem-service-detail-panel { padding:20px; }
  body.kem-final-family-service-detail .kem-service-detail-page .kem-service-detail-accordion > summary { padding:18px 20px; }
  body.kem-final-family-article-detail .kem-article-page > .uk-section:first-child { width:calc(100% - 24px); border-radius:16px; }
  body.kem-final-family-article-detail .kem-article-page > .kem-article-body-section { width:calc(100% - 32px); padding-top:28px; }
  body.kem-final-family-article-detail .kem-article-page .uk-grid { max-width:100%; margin-left:0 !important; }
  body.kem-final-family-article-detail .kem-article-page .uk-grid > * { max-width:100%; padding-left:0 !important; }
  body.kem-final-family-article-detail .kem-article-page > .kem-article-body-section [class*="uk-width-1-3"] { position:static; width:100%; flex-basis:auto; }
  body.kem-final-family-article-detail .kem-article-page > .kem-article-related-section { width:calc(100% - 24px); padding:28px 20px; }
  body.kem-final-family-article-detail .kem-article-page :where(p,li) { font-size:16px; line-height:1.65; }
  body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-content { padding:24px 0 52px; }
  body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-hero { padding:28px 22px; border-radius:20px; }
  body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-hero p { font-size:16px; }
  body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-grid { grid-template-columns:1fr; gap:16px; }
  body.kem-final-family-service-hub .kem-service-hub-page .kem-service-hub-card { grid-column:auto; padding:24px 20px; border-radius:18px; }
  body.kem-final-family-article-archive .kem-article-catalog { grid-template-columns:1fr; gap:16px; padding-bottom:52px; }
  body.kem-final-family-article-archive .kem-catalog-group { padding:22px 18px; }
}

/* Contain UIkit's negative grid and pseudo-element geometry at the document
   edge. Data tables retain their dedicated .kem-final-table-scroll wrapper. */
html:has(body.kem-final-active),
body.kem-final-active { overflow-x:clip; }

@media (max-width:1199px) {
  body.kem-final-family-homepage .kem-home-page .uk-tab { display:flex; flex-wrap:wrap; max-width:100%; margin-left:0 !important; }
  body.kem-final-family-homepage .kem-home-page .uk-tab > * { flex:1 1 180px; min-width:0; max-width:100%; padding-left:0 !important; }
  body.kem-final-family-homepage .kem-home-page .uk-tab a { width:auto !important; min-width:0 !important; max-width:100%; box-sizing:border-box; overflow-wrap:anywhere; }
}

@media (max-width:379px) {
  body.kem-final-active .kem-right { width:187px !important; max-width:187px !important; flex:0 0 187px !important; }
  body.kem-final-family-about .kem-about-page .kem-it { transform:translateX(-13px); }
}

/* Shared legacy header: its desktop logo + phone + burger contract is 508px
   wide. Keep the canonical nodes, but fit them to a genuine mobile viewport. */
@media (max-width:600px) {
  body.kem-final-active .kem-hd .kem-in { width:100%; max-width:100%; padding-inline:14px; gap:10px; box-sizing:border-box; }
  body.kem-final-active .kem-hd .kem-logo { min-width:0; max-width:calc(100% - 54px); }
  body.kem-final-active .kem-hd .kem-logo img { width:auto; height:42px; max-width:100%; object-fit:contain; }
  body.kem-final-active .kem-hd .kem-right { width:44px !important; max-width:44px !important; flex:0 0 44px !important; margin-left:auto; gap:0; }
  body.kem-final-active .kem-hd .kem-phone,
  body.kem-final-active .kem-hd .kem-soc { display:none !important; }
}

/* UIkit may relocate the tab list outside the renderer's content wrapper at
   runtime. Family scoping remains route-safe while covering that live DOM. */
@media (max-width:1023px) {
  body.kem-final-family-homepage .uk-tab { display:flex; flex-wrap:wrap; max-width:100%; margin-left:0 !important; }
  body.kem-final-family-homepage .uk-tab > * { flex:1 1 140px; min-width:0; max-width:100%; padding-left:0 !important; }
  body.kem-final-family-homepage .uk-tab a { width:auto !important; min-width:0 !important; max-width:100%; box-sizing:border-box; overflow-wrap:anywhere; }
}
