/* ==========================================================================
   Slovak Space Ecosystem — scoped styles (everything lives under .sso-eco)
   ========================================================================== */

.sso-eco{
  --sso-ink:#0d1f36;
  --sso-deep:#071528;
  --sso-accent:#0b4a8f;
  --sso-accent-soft:#e8f0fa;
  --sso-red:#e2231a;
  --sso-line:#e4e9f0;
  --sso-muted:#64748b;
  --sso-bg:#fff;
  --sso-soft:#f5f8fc;
  background:var(--sso-bg);color:var(--sso-ink);
  font-family:inherit;-webkit-font-smoothing:antialiased;
}
.sso-eco *{box-sizing:border-box;}
.sso-eco a{text-decoration:none;color:inherit;}
.sso-eco .sso-wrap{max-width:1240px;margin:0 auto;padding:0 24px;}

/* full-bleed: break out of a boxed page container (JS refines the exact width) */
.sso-eco.is-full{width:auto;max-width:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);}

/* --------------------------------------------------------------- hero ---- */
.sso-eco .sso-hero{
  position:relative;overflow:hidden;color:#fff;
  padding:92px 0 78px;
  background-color:#071528;
  background-image:
    radial-gradient(1100px 620px at 78% -20%,rgba(46,124,214,.55),transparent 62%),
    radial-gradient(760px 480px at 6% 118%,rgba(226,35,26,.20),transparent 66%),
    linear-gradient(165deg,#061323 0%,#0a2140 52%,#0c2c53 100%);
}
/* starfield */
.sso-eco .sso-hero::before{
  content:"";position:absolute;inset:0;opacity:.7;pointer-events:none;
  background-image:
    radial-gradient(1.6px 1.6px at 24px 38px,rgba(255,255,255,.55),transparent),
    radial-gradient(1.2px 1.2px at 148px 96px,rgba(255,255,255,.40),transparent),
    radial-gradient(1.8px 1.8px at 232px 26px,rgba(255,255,255,.30),transparent),
    radial-gradient(1.1px 1.1px at 88px 168px,rgba(255,255,255,.35),transparent),
    radial-gradient(1.4px 1.4px at 300px 140px,rgba(255,255,255,.25),transparent);
  background-size:340px 220px;
}
/* orbit arcs */
.sso-eco .sso-orbit{position:absolute;border:1px solid rgba(255,255,255,.10);border-radius:50%;pointer-events:none;}
.sso-eco .sso-orbit.o1{width:820px;height:820px;right:-220px;top:-320px;}
.sso-eco .sso-orbit.o2{width:1180px;height:1180px;right:-380px;top:-480px;border-color:rgba(255,255,255,.06);}
.sso-eco .sso-hero .sso-wrap{position:relative;z-index:1;}

.sso-eco .sso-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;}
.sso-eco .sso-kicker{
  margin:0 0 18px;font-size:11.5px;letter-spacing:2.4px;text-transform:uppercase;
  font-weight:700;color:rgba(255,255,255,.62);display:flex;align-items:center;gap:12px;
}
.sso-eco .sso-kicker::before{content:"";width:34px;height:1px;background:rgba(255,255,255,.45);}
.sso-eco .sso-hero h1{
  margin:0 0 20px;max-width:15ch;
  font-size:clamp(34px,5.2vw,62px);line-height:1.04;font-weight:800;letter-spacing:-1.4px;color:#fff;
}
.sso-eco .sso-hero h1 em{font-style:normal;color:#8ab8ee;}
.sso-eco .sso-hero-lede{margin:0;max-width:56ch;font-size:clamp(15px,1.25vw,17.5px);line-height:1.65;color:rgba(255,255,255,.74);}

.sso-eco .sso-lang{display:flex;flex:0 0 auto;border:1px solid rgba(255,255,255,.28);border-radius:999px;overflow:hidden;background:rgba(255,255,255,.06);backdrop-filter:blur(4px);}
.sso-eco .sso-lang button{border:0;background:transparent;color:rgba(255,255,255,.72);font:inherit;font-size:12px;font-weight:700;letter-spacing:.8px;padding:8px 15px;cursor:pointer;transition:.18s;}
.sso-eco .sso-lang button:hover{color:#fff;}
.sso-eco .sso-lang button.is-on{background:#fff;color:var(--sso-ink);}

/* stats inside the hero */
.sso-eco .sso-stats{display:flex;flex-wrap:wrap;gap:0;margin:52px 0 0;border-top:1px solid rgba(255,255,255,.14);padding-top:26px;}
.sso-eco .sso-stat{flex:1 1 160px;padding:2px 20px;border-left:1px solid rgba(255,255,255,.12);}
.sso-eco .sso-stat:first-child{border-left:0;padding-left:0;}
.sso-eco .sso-stat strong{display:block;font-size:clamp(26px,2.6vw,34px);line-height:1;font-weight:800;letter-spacing:-1px;color:#fff;}
.sso-eco .sso-stat span{display:block;margin-top:7px;font-size:12px;line-height:1.35;color:rgba(255,255,255,.58);}

/* ------------------------------------------------------------ marquee ---- */
.sso-eco .sso-marquee{position:relative;padding:26px 0;background:var(--sso-soft);border-bottom:1px solid var(--sso-line);overflow:hidden;}
.sso-eco .sso-marquee::before,.sso-eco .sso-marquee::after{content:"";position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none;}
.sso-eco .sso-marquee::before{left:0;background:linear-gradient(90deg,var(--sso-soft),rgba(245,248,252,0));}
.sso-eco .sso-marquee::after{right:0;background:linear-gradient(270deg,var(--sso-soft),rgba(245,248,252,0));}
.sso-eco .sso-track{display:flex;align-items:center;gap:56px;width:max-content;will-change:transform;}
.sso-eco .sso-track+.sso-track{margin-top:20px;}
.sso-eco .sso-track[data-dir="l"]{animation:sso-left 74s linear infinite;}
.sso-eco .sso-track[data-dir="r"]{animation:sso-right 88s linear infinite;}
.sso-eco .sso-marquee:hover .sso-track{animation-play-state:paused;}
@keyframes sso-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes sso-right{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.sso-eco .sso-track a{display:flex;align-items:center;justify-content:center;height:48px;flex:0 0 auto;}
.sso-eco .sso-track img{max-height:42px;max-width:150px;width:auto;object-fit:contain;transition:transform .25s;}
.sso-eco .sso-track a:hover img{transform:scale(1.07);}

/* ---------------------------------------------------------- directory ---- */
.sso-eco .sso-dir{padding:64px 0 72px;}
.sso-eco .sso-dir-head{margin-bottom:26px;}
.sso-eco .sso-eyebrow{margin:0 0 10px;font-size:11.5px;letter-spacing:2.2px;text-transform:uppercase;font-weight:700;color:var(--sso-accent);}
.sso-eco .sso-dir h2{margin:0;font-size:clamp(22px,2.6vw,32px);line-height:1.15;font-weight:800;letter-spacing:-.7px;}

.sso-eco .sso-controls{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin-bottom:14px;}
.sso-eco .sso-tabs{display:flex;flex-wrap:wrap;gap:7px;}
.sso-eco .sso-tabs button{border:1px solid var(--sso-line);background:#fff;color:var(--sso-ink);font:inherit;font-size:13px;font-weight:600;padding:9px 16px;border-radius:999px;cursor:pointer;transition:.16s;}
.sso-eco .sso-tabs button:hover{border-color:var(--sso-accent);color:var(--sso-accent);}
.sso-eco .sso-tabs button.is-on{background:var(--sso-ink);border-color:var(--sso-ink);color:#fff;}
.sso-eco .sso-filters{display:flex;gap:9px;flex-wrap:wrap;}
.sso-eco .sso-filters select,.sso-eco .sso-filters input{font:inherit;font-size:13.5px;color:var(--sso-ink);background:#fff;border:1px solid var(--sso-line);border-radius:10px;padding:10px 14px;min-width:200px;max-width:100%;transition:.16s;}
.sso-eco .sso-filters input:focus,.sso-eco .sso-filters select:focus{outline:none;border-color:var(--sso-accent);box-shadow:0 0 0 3px rgba(11,74,143,.14);}
.sso-eco .sso-count{font-size:12.5px;color:var(--sso-muted);margin-bottom:18px;}

.sso-eco .sso-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(184px,1fr));gap:16px;}
.sso-eco .sso-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--sso-line);border-radius:14px;background:#fff;overflow:hidden;transition:box-shadow .22s,transform .22s,border-color .22s;}
.sso-eco .sso-card:hover{border-color:#cbdbee;box-shadow:0 14px 30px rgba(13,31,54,.11);transform:translateY(-3px);}
.sso-eco .sso-logo{display:flex;align-items:center;justify-content:center;height:92px;padding:16px;background:#fff;border-bottom:1px solid var(--sso-line);}
.sso-eco .sso-logo img{max-height:54px;max-width:136px;width:auto;object-fit:contain;transition:transform .25s;}
.sso-eco .sso-card:hover .sso-logo img{transform:scale(1.05);}
.sso-eco .sso-mono{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;background:var(--sso-accent-soft);color:var(--sso-accent);font-weight:800;font-size:19px;letter-spacing:.5px;}
.sso-eco .sso-meta{padding:13px 15px 15px;display:flex;flex-direction:column;gap:5px;flex:1;}
.sso-eco .sso-name{font-size:13.5px;font-weight:700;line-height:1.3;}
.sso-eco .sso-sub{font-size:11.5px;color:var(--sso-muted);line-height:1.35;}
.sso-eco .sso-tag{margin-top:auto;padding-top:10px;font-size:10.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--sso-accent);font-weight:700;}
.sso-eco .sso-empty{padding:36px 0;color:var(--sso-muted);font-size:14px;}

/* light / white logos get a dark chip so they stay visible */
.sso-eco .sso-logo.is-dark{background:var(--sso-ink);}
.sso-eco .sso-track a.is-dark{background:var(--sso-ink);border-radius:9px;padding:5px 14px;}

/* ---------------------------------------------------------- downloads ---- */
.sso-eco .sso-dl{background:var(--sso-soft);border-top:1px solid var(--sso-line);padding:58px 0 62px;}
.sso-eco .sso-dl h3{margin:0 0 8px;font-size:clamp(20px,2.2vw,27px);font-weight:800;letter-spacing:-.5px;}
.sso-eco .sso-dl-lede{margin:0 0 28px;max-width:60ch;font-size:14.5px;line-height:1.6;color:var(--sso-muted);}
.sso-eco .sso-dl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;max-width:860px;}
.sso-eco .sso-dl-card{display:flex;align-items:center;gap:16px;padding:20px 22px;background:#fff;border:1px solid var(--sso-line);border-radius:14px;transition:box-shadow .22s,transform .22s,border-color .22s;}
.sso-eco .sso-dl-card:hover{border-color:#cbdbee;box-shadow:0 14px 30px rgba(13,31,54,.11);transform:translateY(-3px);}
.sso-eco .sso-dl-ico{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:var(--sso-accent-soft);color:var(--sso-accent);display:flex;align-items:center;justify-content:center;}
.sso-eco .sso-dl-ico svg{width:22px;height:22px;}
.sso-eco .sso-dl-txt{flex:1;min-width:0;}
.sso-eco .sso-dl-title{display:block;font-size:15px;font-weight:700;line-height:1.25;}
.sso-eco .sso-dl-sub{display:block;margin-top:3px;font-size:12px;line-height:1.4;color:var(--sso-muted);}
.sso-eco .sso-dl-meta{display:block;margin-top:7px;font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;font-weight:700;color:var(--sso-accent);}
.sso-eco .sso-dl-arrow{flex:0 0 auto;color:var(--sso-muted);transition:transform .22s,color .22s;}
.sso-eco .sso-dl-card:hover .sso-dl-arrow{color:var(--sso-accent);transform:translateX(3px);}
.sso-eco .sso-note{margin:30px 0 0;font-size:11.5px;line-height:1.55;color:var(--sso-muted);max-width:96ch;}

/* -------------------------------------------------------------- mobile --- */
@media (max-width:820px){
  .sso-eco .sso-hero{padding:64px 0 54px;}
  .sso-eco .sso-stats{margin-top:38px;}
  .sso-eco .sso-stat{flex:1 1 45%;padding:10px 14px;border-left:0;border-top:1px solid rgba(255,255,255,.10);}
  .sso-eco .sso-stat:first-child{padding-left:14px;}
  .sso-eco .sso-dir{padding:44px 0 50px;}
}
@media (max-width:640px){
  .sso-eco .sso-hero-top{flex-direction:column;}
  .sso-eco .sso-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px;}
  .sso-eco .sso-logo{height:80px;}
  .sso-eco .sso-filters select,.sso-eco .sso-filters input{min-width:0;flex:1 1 140px;}
  .sso-eco .sso-orbit{display:none;}
}
@media (prefers-reduced-motion:reduce){.sso-eco .sso-track{animation:none!important;}}
