/*
Theme Name: KS SOFTS — Mother Site
Theme URI: https://kssofts.com/
Author: KS SOFTS
Author URI: https://kssofts.com/
Description: Futuristic black-and-white corporate mother-site theme for KS SOFTS and its product ecosystem.
Version: 1.2.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: ks-softs
*/

:root {
  --ks-black: #050505;
  --ks-black-2: #0b0c0e;
  --ks-ink: #101114;
  --ks-white: #ffffff;
  --ks-soft: #f2f4f7;
  --ks-line: rgba(255,255,255,.14);
  --ks-line-dark: rgba(0,0,0,.12);
  --ks-muted: #aeb4bf;
  --ks-muted-dark: #5c6570;
  --ks-max: 1380px;
  --ks-radius: 28px;
  --ks-shadow: 0 26px 70px rgba(0,0,0,.28);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ks-black);
  color: var(--ks-white);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
body.admin-bar .ks-header { top: 32px; }
@media (max-width: 782px){ body.admin-bar .ks-header { top: 46px; } }

a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
button, input, textarea { font: inherit; }
::selection { background: #fff; color: #000; }

.ks-site { min-height: 100vh; background: #050505; }
.ks-shell { width: min(calc(100% - 48px), var(--ks-max)); margin: 0 auto; }

.ks-header {
  position: fixed;
  z-index: 1000;
  top: 0; left: 0; right: 0;
  border-bottom: 1px solid rgba(255,255,255,.09);
  background: rgba(5,5,5,.72);
  backdrop-filter: blur(20px) saturate(125%);
}
.ks-header-inner { height: 78px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.ks-brand { display:flex; align-items:center; gap:14px; min-width: 190px; }
.ks-brand img { width: 132px; height: 48px; object-fit: contain; object-position: left center; }
.ks-brand-mark { font-weight:800; letter-spacing:.18em; font-size:.72rem; }
.ks-nav { display:flex; align-items:center; justify-content:center; gap:32px; color:#d8dde5; font-size:.9rem; }
.ks-nav a { opacity:.82; transition: .2s ease; }
.ks-nav a:hover { opacity:1; color:#fff; }
.ks-header-actions { display:flex; align-items:center; gap:12px; }
.ks-nav-cta, .ks-button {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:48px; padding:0 20px; border:1px solid rgba(255,255,255,.24);
  border-radius:999px; font-weight:700; font-size:.9rem; transition:.22s ease;
}
.ks-nav-cta { background:#fff; color:#050505; border-color:#fff; min-height:42px; padding:0 17px; }
.ks-nav-cta:hover, .ks-button.is-primary:hover { transform:translateY(-1px); box-shadow:0 12px 30px rgba(255,255,255,.14); }
.ks-menu-toggle { display:none; width:44px; height:44px; border-radius:50%; border:1px solid var(--ks-line); background:#0b0c0e; color:#fff; }

.ks-hero { position:relative; min-height: 100svh; display:flex; align-items:center; padding:130px 0 78px; overflow:hidden; isolation:isolate; }
#ks-stars { position:absolute; inset:0; width:100%; height:100%; z-index:-4; opacity:.82; }
.ks-hero::before {
  content:""; position:absolute; z-index:-3; inset:-20% -15% auto; height:80%;
  background: radial-gradient(ellipse at 50% 15%, rgba(255,255,255,.15), rgba(255,255,255,.045) 24%, transparent 62%);
  filter: blur(10px);
}
.ks-orbit { position:absolute; z-index:-2; width:70vw; height:70vw; max-width:1000px; max-height:1000px; border:1px solid rgba(255,255,255,.08); border-radius:50%; right:-25vw; top:2vh; }
.ks-orbit::before, .ks-orbit::after { content:""; position:absolute; inset:12%; border:1px solid rgba(255,255,255,.06); border-radius:50%; }
.ks-orbit::after { inset:27%; }
.ks-hero-grid { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr); align-items:end; gap:72px; }
.ks-eyebrow { display:inline-flex; align-items:center; gap:10px; color:#d5d9df; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; font-weight:700; }
.ks-eyebrow::before { content:""; width:30px; height:1px; background:#fff; opacity:.65; }
.ks-hero h1 { margin:28px 0 24px; font-size:clamp(4.2rem, 9.5vw, 9.9rem); line-height:.83; letter-spacing:-.075em; font-weight:760; max-width:1050px; }
.ks-hero h1 .outline { color:transparent; -webkit-text-stroke: 1px rgba(255,255,255,.75); text-stroke:1px rgba(255,255,255,.75); }
.ks-hero-copy { max-width:760px; color:#b7bdc7; font-size:clamp(1.05rem,1.6vw,1.28rem); line-height:1.65; }
.ks-hero-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:38px; }
.ks-button.is-primary { background:#fff; color:#050505; border-color:#fff; }
.ks-button.is-ghost:hover { background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.5); }
.ks-hero-side { padding:0 0 14px; }
.ks-signal-card { border-top:1px solid rgba(255,255,255,.4); padding-top:18px; }
.ks-signal-label { display:flex; justify-content:space-between; align-items:center; color:#aeb4bf; font-size:.75rem; text-transform:uppercase; letter-spacing:.14em; }
.ks-signal-label span:last-child { color:#fff; }
.ks-signal-bars { display:grid; grid-template-columns:repeat(10,1fr); align-items:end; height:90px; gap:7px; margin:22px 0; }
.ks-signal-bars i { display:block; background:linear-gradient(to top,#777,#fff); border-radius:999px; opacity:.92; animation:ksPulse 2.6s ease-in-out infinite; }
.ks-signal-bars i:nth-child(2n){ animation-delay:-.5s; }.ks-signal-bars i:nth-child(3n){animation-delay:-1s;}
@keyframes ksPulse { 0%,100%{transform:scaleY(.7);opacity:.42} 50%{transform:scaleY(1);opacity:1} }
.ks-signal-meta { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.ks-signal-meta strong { display:block; font-size:1.7rem; letter-spacing:-.04em; }
.ks-signal-meta span { color:#7f8792; font-size:.78rem; }

.ks-strip { border-top:1px solid var(--ks-line); border-bottom:1px solid var(--ks-line); background:#08090b; }
.ks-strip-inner { min-height:74px; display:grid; grid-template-columns:repeat(4,1fr); align-items:center; gap:18px; color:#9ca3ad; font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; }
.ks-strip-inner span { display:flex; align-items:center; gap:9px; }
.ks-strip-inner span::before { content:""; width:6px; height:6px; border-radius:50%; background:#fff; opacity:.9; box-shadow:0 0 16px rgba(255,255,255,.8); }

.ks-section { padding:120px 0; position:relative; }
.ks-section.is-light { background:#f4f5f7; color:#0a0b0d; }
.ks-section-head { display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; align-items:end; margin-bottom:58px; }
.ks-kicker { color:#878f9a; font-size:.75rem; letter-spacing:.18em; text-transform:uppercase; font-weight:750; }
.ks-section h2 { margin:0; font-size:clamp(2.8rem,5vw,5.5rem); line-height:.96; letter-spacing:-.055em; max-width:900px; }
.ks-section-intro { color:#9299a4; font-size:1.08rem; line-height:1.75; max-width:690px; margin-left:auto; }
.is-light .ks-section-intro { color:#5d6672; }

.ks-products { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.ks-product { position:relative; display:flex; flex-direction:column; min-height:590px; overflow:hidden; border:1px solid var(--ks-line); border-radius:var(--ks-radius); background:linear-gradient(145deg,#101216,#060708 70%); box-shadow:var(--ks-shadow); }
.ks-product::after { content:""; position:absolute; inset:auto -15% -35% 25%; height:70%; background:radial-gradient(circle,rgba(255,255,255,.13),transparent 62%); pointer-events:none; }
.ks-product-top { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:26px 28px; border-bottom:1px solid rgba(255,255,255,.1); position:relative; z-index:2; }
.ks-product-logo { width:58px; height:58px; border-radius:16px; background:#fff; padding:8px; object-fit:contain; }
.ks-product-mark { display:grid; place-items:center; padding:0; color:#08090b; font-size:1.35rem; font-weight:800; letter-spacing:-.06em; }
.ks-live { display:inline-flex; align-items:center; gap:8px; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:#dce2e8; }
.ks-live::before { content:""; width:7px; height:7px; border-radius:50%; background:#fff; box-shadow:0 0 12px rgba(255,255,255,.8); }
.ks-product-body { position:relative; z-index:2; padding:48px 34px 36px; flex:1; display:flex; flex-direction:column; }
.ks-product-num { font-size:.72rem; letter-spacing:.18em; color:#7c8490; text-transform:uppercase; }
.ks-product h3 { margin:25px 0 18px; font-size:clamp(2.4rem,4vw,4.6rem); letter-spacing:-.055em; }
.ks-product p { color:#aeb5bf; line-height:1.7; max-width:540px; font-size:1rem; }
.ks-product-link { margin-top:auto; display:inline-flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid rgba(255,255,255,.15); padding-top:20px; font-weight:700; }
.ks-product-link span:last-child { width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.25); display:grid; place-items:center; transition:.2s ease; }
.ks-product:hover .ks-product-link span:last-child { background:#fff; color:#000; transform:translate(3px,-3px); }

.ks-capabilities { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--ks-line-dark); border-left:1px solid var(--ks-line-dark); }
.ks-capability { min-height:260px; padding:30px; border-right:1px solid var(--ks-line-dark); border-bottom:1px solid var(--ks-line-dark); display:flex; flex-direction:column; justify-content:space-between; transition:.25s ease; }
.ks-capability:hover { background:#fff; box-shadow:0 20px 50px rgba(0,0,0,.08); transform:translateY(-3px); position:relative; z-index:2; }
.ks-capability small { color:#87909b; font-size:.67rem; letter-spacing:.16em; text-transform:uppercase; }
.ks-capability h3 { margin:20px 0 10px; font-size:1.5rem; letter-spacing:-.03em; }
.ks-capability p { color:#69727d; line-height:1.6; font-size:.93rem; }
.ks-capability .glyph { font-size:1.8rem; font-weight:300; }

.ks-manifesto { min-height:780px; display:grid; place-items:center; text-align:center; overflow:hidden; }
.ks-manifesto::before { content:""; position:absolute; width:900px; height:900px; border:1px solid rgba(255,255,255,.08); border-radius:50%; }
.ks-manifesto::after { content:""; position:absolute; width:580px; height:580px; border:1px solid rgba(255,255,255,.08); border-radius:50%; }
.ks-manifesto-content { position:relative; z-index:2; max-width:1100px; }
.ks-manifesto h2 { font-size:clamp(3.5rem,7.4vw,8rem); margin:18px auto 28px; }
.ks-manifesto p { max-width:720px; margin:0 auto; color:#aeb5c0; line-height:1.75; font-size:1.08rem; }

.ks-company-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:80px; align-items:start; }
.ks-company-statement { font-size:clamp(2rem,3.3vw,3.7rem); line-height:1.08; letter-spacing:-.045em; margin:0; }
.ks-company-copy { color:#a9b0bb; line-height:1.8; font-size:1rem; }
.ks-metrics { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(255,255,255,.12); margin-top:34px; }
.ks-metric { background:#08090a; padding:24px; min-height:130px; }
.ks-metric strong { display:block; font-size:2.2rem; letter-spacing:-.05em; }
.ks-metric span { color:#777f8a; font-size:.75rem; text-transform:uppercase; letter-spacing:.12em; }

.ks-contact-panel { border:1px solid var(--ks-line); border-radius:32px; padding:70px; display:grid; grid-template-columns:1.3fr .7fr; gap:60px; align-items:end; background:linear-gradient(130deg,#0d0f12,#050505); overflow:hidden; position:relative; }
.ks-contact-panel::after { content:"KS"; position:absolute; right:-3%; bottom:-24%; font-weight:900; font-size:22rem; color:rgba(255,255,255,.025); letter-spacing:-.12em; pointer-events:none; }
.ks-contact-panel h2 { font-size:clamp(3rem,6vw,6.5rem); max-width:850px; position:relative; z-index:1; }
.ks-contact-panel p { color:#9da5af; line-height:1.7; position:relative; z-index:1; }
.ks-contact-actions { display:flex; flex-direction:column; gap:12px; position:relative; z-index:1; }
.ks-contact-actions .ks-button { width:100%; }

.ks-footer { border-top:1px solid var(--ks-line); padding:58px 0 30px; background:#030303; }
.ks-footer-grid { display:grid; grid-template-columns:1.4fr repeat(3,.6fr); gap:50px; }
.ks-footer-logo { width:142px; margin-bottom:20px; }
.ks-footer p { color:#767e89; line-height:1.65; max-width:430px; font-size:.9rem; }
.ks-footer h4 { margin:0 0 18px; font-size:.72rem; text-transform:uppercase; letter-spacing:.15em; color:#747c87; }
.ks-footer a { display:block; color:#d3d7dd; margin:10px 0; font-size:.9rem; }
.ks-footer-bottom { border-top:1px solid rgba(255,255,255,.08); margin-top:48px; padding-top:24px; display:flex; justify-content:space-between; gap:20px; color:#636b75; font-size:.78rem; }

.ks-page { padding:150px 0 90px; min-height:70vh; }
.ks-page h1 { font-size:clamp(3rem,6vw,6rem); letter-spacing:-.05em; }
.ks-page-content { color:#b8bec7; line-height:1.8; max-width:820px; }

@media (max-width: 1050px){
  .ks-nav { display:none; position:absolute; top:79px; left:24px; right:24px; padding:22px; flex-direction:column; align-items:flex-start; background:#0a0b0d; border:1px solid var(--ks-line); border-radius:20px; }
  .ks-nav.is-open { display:flex; }
  .ks-menu-toggle { display:grid; place-items:center; }
  .ks-header-actions .ks-nav-cta { display:none; }
  .ks-hero-grid, .ks-section-head, .ks-company-grid, .ks-contact-panel { grid-template-columns:1fr; }
  .ks-hero-side { max-width:570px; }
  .ks-products { grid-template-columns:1fr; }
  .ks-capabilities { grid-template-columns:repeat(2,1fr); }
  .ks-footer-grid { grid-template-columns:1.2fr repeat(2,.8fr); }
}
@media (max-width: 700px){
  .ks-shell { width:min(calc(100% - 28px), var(--ks-max)); }
  .ks-header-inner { height:68px; }
  .ks-brand img { width:108px; height:40px; }
  .ks-nav { top:69px; left:14px; right:14px; }
  .ks-hero { min-height:auto; padding:125px 0 70px; }
  .ks-hero h1 { font-size:clamp(3.65rem,17vw,6rem); }
  .ks-strip-inner { grid-template-columns:repeat(2,1fr); padding:18px 0; }
  .ks-section { padding:88px 0; }
  .ks-section-head { gap:26px; }
  .ks-product { min-height:520px; }
  .ks-product-body { padding:36px 24px 28px; }
  .ks-capabilities { grid-template-columns:1fr; }
  .ks-contact-panel { padding:34px 24px; }
  .ks-footer-grid { grid-template-columns:1fr 1fr; }
  .ks-footer-grid > :first-child { grid-column:1/-1; }
  .ks-footer-bottom { flex-direction:column; }
}

/* v1.1.0 — Unified Communications / serious-idea intake */
.ks-serious-grid,.ks-contact-page-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(460px,1.2fr);gap:50px;align-items:start}.ks-serious-copy{position:sticky;top:120px}.ks-serious-copy h2,.ks-contact-page-hero h1{font-size:clamp(3rem,6vw,6rem);line-height:.94;letter-spacing:-.06em;margin:18px 0 22px}.ks-serious-copy p,.ks-contact-page-hero p,.ks-contact-info p{color:var(--ks-muted);font-size:1.05rem;line-height:1.75}.ks-contact-page-hero{padding-top:150px}.ks-contact-page-hero p{max-width:780px}.ks-contact-info{padding:32px;border-top:1px solid var(--ks-line);border-bottom:1px solid var(--ks-line)}.ks-route-list{display:grid;gap:10px;margin-top:24px}.ks-route-list span{padding:12px 0;border-top:1px solid var(--ks-line);font-size:.9rem;color:#d9dde4}
.ks-comm-form{display:grid;gap:17px;background:#090a0c;border:1px solid rgba(255,255,255,.17);border-radius:28px;padding:30px;color:#fff;box-shadow:0 28px 80px rgba(0,0,0,.35)}.ks-comm-head span{display:block;font-size:.68rem;font-weight:900;letter-spacing:.18em;color:#aeb4bf}.ks-comm-head h2{font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.05em;margin:7px 0 10px}.ks-comm-head p{margin:0;color:var(--ks-muted)}.ks-comm-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ks-comm-form label>span{display:block;margin-bottom:7px;font-size:.76rem;font-weight:800;letter-spacing:.03em}.ks-comm-form label small{color:#7f8792;font-weight:500}.ks-comm-form input,.ks-comm-form select,.ks-comm-form textarea{width:100%;border:1px solid rgba(255,255,255,.17);border-radius:12px;background:#050506;color:#fff;padding:14px;font:inherit}.ks-comm-form input:focus,.ks-comm-form select:focus,.ks-comm-form textarea:focus{outline:2px solid rgba(255,255,255,.25);border-color:#fff}.ks-comm-form textarea{resize:vertical}.ks-comm-submit{min-height:52px;border-radius:12px;border:1px solid #fff;background:#fff;color:#050505;font:inherit;font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px}.ks-comm-submit:hover{background:#dfe3e8}.ks-comm-privacy{margin:0;color:#858c96;font-size:.72rem}.ks-comm-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.ks-comm-notice{padding:12px 14px;border-radius:11px;margin-bottom:15px;background:#1b1b1b;border:1px solid #444;color:#d9dde4}.ks-comm-notice.is-good{border-color:#407657;color:#b8efd0}.ks-comm-notice.is-bad{border-color:#82454b;color:#ffc3c9}
@media(max-width:960px){.ks-serious-grid,.ks-contact-page-grid,.ks-comm-grid{grid-template-columns:1fr}.ks-serious-copy{position:static}.ks-contact-page-hero{padding-top:110px}}
