/* =========================
   FishmanLab Core CSS v2
   ========================= */
:root{
  --bg:#0b0f14; --text:#f5f5f5;
  --muted:rgba(245,245,245,0.82); --muted2:rgba(245,245,245,0.68);
  --link:#7fb7ff; --link-hover:#FFD700;
  --max:1120px; --gutter:16px;
  --h1:clamp(2.1rem,3.6vw,2.95rem);
  --h2:clamp(1.65rem,2.7vw,2.2rem);
  --h3:clamp(1.25rem,2.0vw,1.55rem);
  --h4:1.15rem; --p:1rem; --small:0.92rem;
  --lh-tight:1.15; --lh:1.55;
  --r:18px; --shadow:0 18px 40px rgba(0,0,0,0.35);
}

/* =======================================
   IBM Plex Sans (Latin + Cyrillic)
   ======================================= */
@font-face{
  font-family:"IBM Plex Sans";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("../fonts/ibm-plex-sans/IBMPlexSans-Regular.woff2") format("woff2");
}
@font-face{
  font-family:"IBM Plex Sans";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("../fonts/ibm-plex-sans/IBMPlexSans-Medium.woff2") format("woff2");
}
@font-face{
  font-family:"IBM Plex Sans";
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url("../fonts/ibm-plex-sans/IBMPlexSans-SemiBold.woff2") format("woff2");
}
@font-face{
  font-family:"IBM Plex Sans";
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url("../fonts/ibm-plex-sans/IBMPlexSans-Bold.woff2") format("woff2");
}

/* =======================================
   IBM Plex Sans Hebrew
   ======================================= */
@font-face{
  font-family:"IBM Plex Sans Hebrew";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("../fonts/ibm-plex-hebrew/IBMPlexSansHebrew-Regular.woff2") format("woff2");
}
@font-face{
  font-family:"IBM Plex Sans Hebrew";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("../fonts/ibm-plex-hebrew/IBMPlexSansHebrew-Medium.woff2") format("woff2");
}
@font-face{
  font-family:"IBM Plex Sans Hebrew";
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url("../fonts/ibm-plex-hebrew/IBMPlexSansHebrew-SemiBold.woff2") format("woff2");
}
@font-face{
  font-family:"IBM Plex Sans Hebrew";
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url("../fonts/ibm-plex-hebrew/IBMPlexSansHebrew-Bold.woff2") format("woff2");
}

/* =======================================
   Global Typography
   ======================================= */
html{
  font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  font-size:16px;
  text-rendering:optimizeLegibility;
  -webkit-text-size-adjust:100%;
  overflow-x:hidden;
}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  line-height:var(--lh);
  font-size:var(--p);
  overflow-x:hidden;
}

/* Make controls inherit the site font (prevents “system/Times” look on buttons/inputs) */
button, input, select, textarea{
  font: inherit;
  color: inherit;
}

.container{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter); }

h1,h2,h3,h4,h5,h6{ color:inherit; margin:0 0 10px 0; line-height:var(--lh-tight); letter-spacing:0.2px; }
h1{ font-size:var(--h1); font-weight:700; letter-spacing:0.02em; }
h2{ font-size:var(--h2); font-weight:700; }
h3{ font-size:var(--h3); font-weight:700; }
h4{ font-size:var(--h4); font-weight:700; }

p{ margin:0 0 12px 0; color:var(--muted); }
small{ font-size:var(--small); color:var(--muted2); }

/* Language-specific font choice */
html:lang(he),
html[lang^="he"],
html:lang(yi),
html[lang^="yi"]{
  font-family:"IBM Plex Sans Hebrew","IBM Plex Sans",Arial,"Segoe UI",system-ui,sans-serif;
}
html:lang(ru),
html[lang^="ru"],
html:lang(uk),
html[lang^="uk"]{
  font-family:"IBM Plex Sans",Arial,"Segoe UI",system-ui,sans-serif;
}

/* Links: not color-only */
a{ color:var(--link); text-decoration:underline; text-underline-offset:3px; }
a:hover{ color:var(--link-hover); }
a:focus-visible{ outline:3px solid var(--link-hover); outline-offset:3px; }

button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid var(--link-hover); outline-offset:3px;
}
@media (forced-colors: active){
  a:focus-visible,
  button:focus-visible,
  input:focus-visible,
  select:focus-visible,
  textarea:focus-visible{
    outline: 2px solid CanvasText;
    outline-offset: 3px;
  }
}

/* ===== Premium skip link (FishmanLab accessibility) ===== */
.skip-link{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
}
/* visible only when keyboard user tabs */
.skip-link:focus,
.skip-link:focus-visible{
  position:fixed;
  top:14px;
  left:14px;
  width:auto;
  height:auto;
  padding:14px 20px;
  background:#111;
  color:#FFD700;
  font-weight:600;
  font-size:16px;
  border:3px solid #FFD700;
  border-radius:8px;
  box-shadow:0 6px 20px rgba(0,0,0,0.35);
  z-index:99999;
  clip:auto;
}

/* Sections */
.section{ position:relative; padding:62px 0; }
.section--bg{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.section--bg::before{ content:""; position:absolute; inset:0; background:rgba(0,0,0,0.62); pointer-events:none; }
.section--bg>*{ position:relative; }

/* Cards */
.card{
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:var(--r);
  box-shadow:var(--shadow);
  padding:20px;
}

/* Grid */
.grid{ display:grid; gap:14px; }
@media (min-width:780px){
  .grid--2{ grid-template-columns:1fr 1fr; }
  .grid--3{ grid-template-columns:1fr 1fr 1fr; }
}

.text-center{ text-align:center; }
.mt-8{ margin-top:8px; } .mt-16{ margin-top:16px; } .mt-24{ margin-top:24px; }
.mb-0{ margin-bottom:0; }

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

@media (prefers-reduced-motion:reduce){
  *{ scroll-behavior:auto!important; animation-duration:0.01ms!important; animation-iteration-count:1!important; transition-duration:0.01ms!important; }
}

/* Utilities */
.u-mt-14{ margin-top:14px; }