/* KOKIO mobile signal system - touch-first decorative interaction layer. */
.km-mobile-signal,.km-scroll-signal,.km-embedded-status{display:none}

@media(max-width:767px){
  :root{--kms-red:#EC1E24;--kms-hot:#FF4A4F;--kms-deep:#8F1117;--kms-cream:#FFF4CB;--kms-bg:#050507;--kms-panel:#0a080a;--kms-panel2:#10090c;--kms-line:#35272b;--kms-muted:#8f8588;--kms-ease:cubic-bezier(.2,.72,.22,1)}

  /* Site-wide progress signal. Deliberately lives outside content width. */
  .km-scroll-signal{position:fixed;display:block;left:max(5px,env(safe-area-inset-left,0px));top:94px;bottom:max(18px,env(safe-area-inset-bottom,0px));width:8px;z-index:6500;pointer-events:none;opacity:.86}
  .km-scroll-signal-track{position:absolute;left:3px;top:0;bottom:0;width:2px;border-radius:99px;background:linear-gradient(180deg,#2a1c20,#181316);box-shadow:inset 0 0 0 1px rgba(255,244,203,.02)}
  .km-scroll-signal-fill{position:absolute;left:3px;top:0;width:2px;height:100%;border-radius:99px;transform:scaleY(0);transform-origin:top center;background:linear-gradient(180deg,var(--kms-deep) 0%,var(--kms-red) 52%,var(--kms-hot) 82%,var(--kms-cream) 100%);box-shadow:0 0 9px rgba(236,30,36,.55),0 0 18px rgba(255,74,79,.16);will-change:transform}
  .km-scroll-signal-node{position:absolute;left:4px;width:7px;height:7px;border:1px solid #4b3439;border-radius:50%;background:#090708;transform:translate(-50%,-50%);box-shadow:0 0 0 3px rgba(0,0,0,.18);transition:background .24s ease,border-color .24s ease,box-shadow .24s ease,transform .24s var(--kms-ease)}
  .km-scroll-signal-node.is-complete{background:var(--kms-deep);border-color:var(--kms-red)}
  .km-scroll-signal-node.is-active{background:var(--kms-hot);border-color:var(--kms-cream);transform:translate(-50%,-50%) scale(1.28);box-shadow:0 0 0 4px rgba(236,30,36,.08),0 0 14px rgba(236,30,36,.55)}
  .km-scroll-signal-head{position:absolute;left:4px;top:0;width:8px;height:8px;border:1px solid var(--kms-cream);border-radius:50%;background:var(--kms-red);transform:translate(-50%,-50%);box-shadow:0 0 0 4px rgba(236,30,36,.08),0 0 14px rgba(236,30,36,.5);will-change:top}

  /* Shared mobile signal panel. */
  .km-mobile-signal{position:relative;display:block;width:100%;max-width:100%;min-width:0;overflow:hidden;padding:14px;border:1px solid var(--kms-line);background:radial-gradient(circle at 50% 48%,rgba(236,30,36,.09),transparent 34%),linear-gradient(145deg,#070608 0%,#0b080a 100%);box-shadow:0 18px 44px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,244,203,.02);isolation:isolate}
  .km-mobile-signal:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:30px 30px;mask-image:linear-gradient(135deg,#000 0%,transparent 94%)}
  .km-signal-meta,.km-signal-stage,.km-signal-readout,.km-contact-routes{position:relative;z-index:2}
  .km-signal-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;color:#756b6e;font-size:7px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
  .km-signal-live{display:inline-flex;align-items:center;gap:7px;color:#9b8f92}.km-signal-live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--kms-hot);box-shadow:0 0 10px rgba(236,30,36,.58);animation:kms-live 1.9s ease-in-out infinite}

  /* Home signal core - grid based, never absolute outside its own panel. */
  body.page-id-15 .kokio-hero-visual{display:flex!important;align-items:stretch!important;height:auto!important;min-height:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible!important}
  body.page-id-15 .kokio-hero-visual:before,body.page-id-15 .kokio-hero-visual:after{display:none!important}
  .km-home-signal{min-height:282px;padding:15px}
  .km-home-signal .km-signal-stage{display:grid;grid-template-columns:minmax(0,1fr) 94px minmax(0,1fr);grid-template-rows:48px 96px 48px;gap:8px;width:100%;max-width:100%;min-width:0;align-items:center;justify-items:stretch;padding:2px 0 4px;isolation:isolate}
  .km-home-signal .km-signal-stage:before,.km-home-signal .km-signal-stage:after{content:"";position:absolute;z-index:-1;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(236,30,36,.18),rgba(255,244,203,.08),rgba(236,30,36,.18),transparent)}
  .km-home-signal .km-signal-stage:before{left:8%;right:8%;top:50%;height:1px}.km-home-signal .km-signal-stage:after{top:8%;bottom:8%;left:50%;width:1px;background:linear-gradient(180deg,transparent,rgba(236,30,36,.18),rgba(255,244,203,.08),rgba(236,30,36,.18),transparent)}
  .km-signal-core{grid-column:2;grid-row:2;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:94px;height:94px;border:1px solid rgba(255,74,79,.66);border-radius:50%;background:radial-gradient(circle,#1b0d10 0%,#090608 70%);box-shadow:0 0 0 8px rgba(236,30,36,.045),0 0 34px rgba(236,30,36,.2);color:#fff;font-size:16px;font-weight:900;letter-spacing:.08em;text-align:center;transition:border-color .24s,box-shadow .24s,transform .24s var(--kms-ease)}
  .km-signal-core:after{content:"CONNECTED";display:block;margin-top:6px;color:#7e7074;font-size:5.5px;letter-spacing:.15em}
  .km-signal-core.is-pulsing{border-color:var(--kms-cream);box-shadow:0 0 0 9px rgba(236,30,36,.05),0 0 42px rgba(236,30,36,.36);transform:scale(1.035)}
  .km-signal-node{display:flex;align-items:center;justify-content:center;width:100%;max-width:100%;min-width:0;height:44px;padding:0 7px;border:1px solid #39282c;background:rgba(7,6,8,.94);color:#9d9194;font:inherit;font-size:7px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;cursor:pointer;touch-action:manipulation;transition:background .22s,border-color .22s,color .22s,box-shadow .22s,transform .22s var(--kms-ease)}
  .km-signal-node[data-signal="digital"]{grid-column:2;grid-row:1}.km-signal-node[data-signal="operations"]{grid-column:1;grid-row:2}.km-signal-node[data-signal="commerce"]{grid-column:3;grid-row:2}.km-signal-node[data-signal="support"]{grid-column:2;grid-row:3}
  .km-signal-node.is-active{background:#180b0e;border-color:var(--kms-hot);color:#fff;box-shadow:0 0 0 3px rgba(236,30,36,.045),0 0 18px rgba(236,30,36,.15)}
  .km-signal-node:active{transform:scale(.97)}
  .km-signal-readout{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;margin-top:12px;padding-top:11px;border-top:1px solid #2b2023}
  .km-signal-readout-label{color:var(--kms-hot);font-size:6.5px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
  .km-signal-readout-copy{min-width:0;color:#a3999c;font-size:9px;font-weight:750;line-height:1.5;letter-spacing:.035em}

  /* Status strip added to existing About + Services mobile system maps. */
  .km-embedded-status{position:relative;z-index:3;grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center;width:100%;min-width:0;margin-top:4px;padding:10px 11px;border:1px solid #302327;background:#080709;color:#8e8386}
  .km-embedded-status-key{display:inline-flex;align-items:center;gap:6px;color:var(--kms-hot);font-size:6px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}.km-embedded-status-key:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--kms-red);box-shadow:0 0 10px rgba(236,30,36,.5)}
  .km-embedded-status-value{min-width:0;color:#a99da0;font-size:8px;font-weight:800;line-height:1.4;letter-spacing:.04em;text-align:right;overflow-wrap:anywhere}
  body.page-id-16 .kokio-about-network-core.is-km-pulse,body.page-id-17 .kokio-services-console-core.is-km-pulse{border-color:var(--kms-cream)!important;box-shadow:0 0 0 8px rgba(236,30,36,.04),0 0 30px rgba(236,30,36,.3)!important}

  /* Contact route controller. */
  .km-contact-signal{margin-top:8px}
  .km-contact-routes{display:grid;grid-template-columns:1fr 1fr;gap:7px;width:100%;min-width:0}
  .km-contact-route{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;min-height:48px;padding:0 11px;border:1px solid #39282c;background:#080709;color:#aaa0a3;font:inherit;font-size:7px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;text-align:left;cursor:pointer;touch-action:manipulation;transition:border-color .22s,background .22s,color .22s,box-shadow .22s,transform .22s var(--kms-ease)}
  .km-contact-route:after{content:"→";flex:0 0 auto;color:var(--kms-cream);font-size:13px;line-height:1}
  .km-contact-route:last-child{grid-column:1/-1}
  .km-contact-route.is-active{border-color:var(--kms-hot);background:#180b0e;color:#fff;box-shadow:0 0 18px rgba(236,30,36,.12)}
  .km-contact-route:active{transform:scale(.985)}

  /* Tap pulse shared by all mobile signal controls. */
  .km-signal-burst{position:absolute;z-index:0;width:14px;height:14px;border:1px solid rgba(255,244,203,.7);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%) scale(.2);opacity:.9;animation:kms-burst .58s var(--kms-ease) forwards}

  @keyframes kms-live{0%,100%{opacity:.55;box-shadow:0 0 7px rgba(236,30,36,.35)}50%{opacity:1;box-shadow:0 0 14px rgba(236,30,36,.72)}}
  @keyframes kms-burst{to{opacity:0;transform:translate(-50%,-50%) scale(8)}}
}

@media(max-width:360px){
  .km-home-signal .km-signal-stage{grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr);grid-template-rows:46px 88px 46px}.km-signal-core{width:84px;height:84px;font-size:14px}.km-signal-node{font-size:6.5px;padding:0 5px}.km-signal-readout{grid-template-columns:1fr;gap:4px}.km-signal-readout-copy{text-align:left}
}

@media(prefers-reduced-motion:reduce){
  .km-signal-live:before{animation:none!important}.km-signal-burst{display:none!important}.km-signal-core,.km-signal-node,.km-contact-route,.km-scroll-signal-node{transition:none!important}
}
