/* KS Dynamics – Products / Product pages (additive, does not change existing layout) */

:root{
  --ks-products-gap: 18px;
}

/* Page wrapper */
.ks-products{
  padding: var(--ks-release-page-top, 120px) 0 64px 0;
}

@media (max-width: 640px){
  .ks-products{
    padding-top: var(--ks-release-page-top-mobile, 96px);
  }
}

.ks-products .ks-products-title{
  margin: 0 0 18px 0;
  text-align: left;
}

/* Product grid */
.ks-products-grid{
  display: grid;
  gap: var(--ks-products-gap);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Card as image block (reuse .ks-card visuals from app.css) */
.ks-product-card{
  display: block;
  text-decoration: none;
  height: 260px;
}

/* Keep cards clean: no text inside by default */
.ks-product-card .ks-card-content{
  padding: 0;
  align-content: stretch;
}

/* Optional subtle overlay and focus ring */
.ks-product-card::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.08) 0%, rgba(0,0,0,.55) 100%);
  opacity: .9;
  pointer-events:none;
}

.ks-product-card:focus-visible{
  outline: 2px solid rgba(255,255,255,.45);
  outline-offset: 4px;
}

/* Meta under card */
.ks-product-meta{
  margin-top: 12px;
  display: grid;
  gap: 8px;
}

.ks-product-name{
  font-size: 16px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.92);
}

.ks-product-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ks-product-price{
  font-size: 14px;
  color: rgba(255,255,255,.70);
  white-space: nowrap;
}

.ks-buy{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.90);
  text-decoration: none;
  font-size: 13px;
  letter-spacing: .10em;
  text-transform: uppercase;
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}

.ks-buy:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.24);
}

.ks-buy:active{
  transform: translateY(0px);
}

.ks-buy[aria-disabled="true"]{
  opacity: .55;
  pointer-events: none;
}

/* Product detail layout */
.ks-product-page{
  padding: 40px 0 70px 0;
}

.ks-product-hero{
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 22px;
  align-items: stretch;
}

.ks-product-media{
  border-radius: var(--ks-radius-lg);
  overflow: hidden;
  min-height: 360px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.10);
}

.ks-product-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
}

.ks-product-panel{
  border-radius: var(--ks-radius-lg);
  background: rgba(255,255,255,.035);
  border: 1px solid rgba(255,255,255,.10);
  padding: 22px;
  display: grid;
  gap: 14px;
}

.ks-product-panel h1{
  margin: 0;
}

.ks-product-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 6px;
}

.ks-action{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.92);
  text-decoration: none;
  font-size: 13px;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.ks-action.primary{
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.22);
}

.ks-action:hover{
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.24);
}

.ks-options{
  display: grid;
  gap: 10px;
  padding-top: 6px;
}

.ks-options-title{
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.68);
}

.ks-option{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
}

.ks-option label{
  display:flex;
  align-items:center;
  gap: 10px;
  cursor:pointer;
  color: rgba(255,255,255,.90);
}

.ks-option input[type="checkbox"]{
  transform: translateY(1px);
}

.ks-option .ks-option-price{
  color: rgba(255,255,255,.70);
  white-space: nowrap;
}

/* License horizontal lists */
.ks-licenses{
  padding: 40px 0 70px 0;
}

.ks-series{
  margin-top: 26px;
  display: grid;
  gap: 10px;
}

.ks-series h2{
  margin: 0;
  font-size: 14px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.78);
}

.ks-hscroll{
  position: relative;
  border-radius: var(--ks-radius-lg);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  overflow: hidden;
}

.ks-hscroll-track{
  display: flex;
  gap: 10px;
  padding: 14px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

.ks-chip{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.10);
  color: rgba(255,255,255,.90);
  text-decoration: none;
  font-size: 13px;
  letter-spacing: .06em;
  white-space: nowrap;
}

.ks-chip:hover{
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.22);
}

.ks-hscroll-arrow{
  position:absolute;
  top: 0;
  bottom: 0;
  width: 44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.72);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity .15s ease;
}

.ks-hscroll-arrow::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}

.ks-hscroll-arrow.left{ left:0; }
.ks-hscroll-arrow.right{ right:0; }

.ks-hscroll-arrow.left::before{
  background: linear-gradient(90deg, rgba(0,0,0,.75), rgba(0,0,0,0));
}
.ks-hscroll-arrow.right::before{
  background: linear-gradient(270deg, rgba(0,0,0,.75), rgba(0,0,0,0));
}

.ks-hscroll-arrow span{
  position: relative;
  font-size: 18px;
  line-height: 1;
}

.ks-hscroll.has-left .ks-hscroll-arrow.left,
.ks-hscroll.has-right .ks-hscroll-arrow.right{
  opacity: 1;
  pointer-events: auto;
}

/* Scrollbar (visible but clean) */
.ks-hscroll-track::-webkit-scrollbar{
  height: 10px;
}
.ks-hscroll-track::-webkit-scrollbar-track{
  background: rgba(255,255,255,.04);
  border-radius: 999px;
}
.ks-hscroll-track::-webkit-scrollbar-thumb{
  background: rgba(255,255,255,.14);
  border-radius: 999px;
}
.ks-hscroll-track::-webkit-scrollbar-thumb:hover{
  background: rgba(255,255,255,.20);
}

/* Responsive */
@media (max-width: 980px){
  .ks-products-grid{
    grid-template-columns: 1fr;
  }
  .ks-product-hero{
    grid-template-columns: 1fr;
  }
  .ks-product-card{
    height: 240px;
  }
}

/* KS Flasher product refresh */
.ks-product-kicker{
  color: rgba(255,255,255,.58);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .26em;
  text-transform: uppercase;
}
.ks-flasher-page{ padding-top: 118px; }
.ks-flasher-hero{ align-items: stretch; }
.ks-flasher-media{ min-height: 460px; }
.ks-flasher-panel p,
.ks-section-band p,
.ks-info-panel p{ color: rgba(255,255,255,.72); line-height: 1.65; margin: 0; }
.ks-flasher-panel h1{ font-size: clamp(42px, 5vw, 72px); line-height: .98; letter-spacing: -.05em; }
.ks-platform-row{ display:flex; flex-wrap:wrap; gap:10px; margin: 4px 0 2px; }
.ks-platform-row span{
  min-height: 34px; display:inline-flex; align-items:center; padding:0 12px;
  border-radius:999px; border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.07); color:rgba(255,255,255,.82);
  font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
}
.ks-info-grid,
.lic-module-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:22px 0; }
.ks-info-panel{
  border-radius: 24px; border:1px solid rgba(255,255,255,.11);
  background: linear-gradient(145deg, rgba(28,32,38,.72), rgba(12,15,19,.82));
  padding:22px; min-height:210px;
}
.ks-info-panel small{ color:rgba(255,255,255,.52); letter-spacing:.22em; text-transform:uppercase; font-weight:800; }
.ks-info-panel h2{ margin:10px 0 10px; font-size:26px; letter-spacing:-.03em; }
.ks-section-band{
  display:grid; grid-template-columns: .95fr 1.05fr; gap:22px; align-items:start;
  margin:22px 0; padding:26px; border-radius:28px;
  border:1px solid rgba(255,255,255,.11); background:rgba(255,255,255,.035);
}
.ks-section-band h2{ margin:8px 0 12px; font-size: clamp(30px, 4vw, 52px); line-height:1; letter-spacing:-.04em; }
.ks-flow-list{ display:grid; gap:10px; }
.ks-flow-list div{
  display:grid; grid-template-columns:58px 1fr; align-items:center; gap:12px;
  min-height:62px; padding:12px 14px; border-radius:18px;
  border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.20);
}
.ks-flow-list b{ color:rgba(255,255,255,.54); letter-spacing:.12em; }
.ks-flow-list span{ color:rgba(255,255,255,.86); font-weight:760; }
.ks-compat-list{ display:grid; gap:10px; }
.ks-compat-list details{
  border-radius:18px; border:1px solid rgba(255,255,255,.11);
  background:rgba(0,0,0,.20); padding:0;
}
.ks-compat-list summary{
  cursor:pointer; list-style:none; padding:16px 18px; font-weight:850; font-size:18px;
}
.ks-compat-list summary::-webkit-details-marker{ display:none; }
.ks-compat-list summary:after{ content:'+'; float:right; color:rgba(255,255,255,.52); }
.ks-compat-list details[open] summary:after{ content:'-'; }
.ks-compat-list p{ padding:0 18px 17px; margin:0; color:rgba(255,255,255,.68); line-height:1.55; }
.lic-page{ min-height:100vh; padding-bottom:70px; }
.lic-hero{ padding:120px 0 30px; }
.lic-kicker{ color:rgba(255,255,255,.58); font-size:12px; letter-spacing:.30em; text-transform:uppercase; font-weight:800; }
.lic-title{ max-width:950px; margin:12px 0 16px; font-size:clamp(42px,7vw,82px); line-height:.98; letter-spacing:-.05em; }
.lic-lead{ max-width:820px; color:rgba(255,255,255,.72); font-size:18px; line-height:1.7; }
.lic-status-row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.lic-status-pill,.lic-badge{
  display:inline-flex; width:fit-content; align-items:center; min-height:34px; padding:0 12px;
  border-radius:999px; border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.07); color:rgba(255,255,255,.80);
  font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
}
.lic-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:28px 0 20px; }
.lic-card{
  min-height:300px; padding:24px; display:flex; flex-direction:column; justify-content:flex-end;
  border-radius:28px; border:1px solid rgba(255,255,255,.12); color:inherit; text-decoration:none;
  background:linear-gradient(145deg, rgba(34,39,46,.92), rgba(15,18,24,.95));
  box-shadow:0 24px 80px rgba(0,0,0,.42); overflow:hidden; position:relative;
}
.lic-card:before{ content:''; position:absolute; inset:0; background:radial-gradient(560px 280px at 15% 0%, rgba(255,255,255,.13), transparent 62%); pointer-events:none; }
.lic-card>*{ position:relative; }
.lic-card small{ color:rgba(255,255,255,.58); letter-spacing:.22em; text-transform:uppercase; font-weight:800; }
.lic-card h2{ margin:10px 0; font-size:32px; line-height:1.04; letter-spacing:-.03em; }
.lic-card p{ margin:0 0 14px; color:rgba(255,255,255,.70); line-height:1.58; }
.lic-bottom-actions{ margin-top:24px; }
.lic-actions{ display:flex; flex-wrap:wrap; gap:10px; }
.lic-btn{
  min-height:42px; padding:0 18px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.09);
  color:rgba(255,255,255,.92); text-decoration:none; font-weight:780;
}
.lic-btn.primary{ background:rgba(255,255,255,.86); color:rgba(0,0,0,.92); }
@media (max-width:980px){
  .ks-info-grid,.lic-module-grid,.lic-grid,.ks-section-band{ grid-template-columns:1fr; }
  .ks-flasher-page,.lic-hero{ padding-top:96px; }
  .ks-flasher-media{ min-height:300px; }
}
