/* ===========================================================================
 * JIIR ylapalkki + mobiilisahtel.
 *
 * Litteä linkkirivi, ei megavalikkoa. Kaytetaan sivun omia CSS-muuttujia
 * (--primary, --surface, --border, --text, --text-muted, --maxw, --sans,
 * --display), joten ylapalkki nayttaa samalta joka sivulla riippumatta siita,
 * kumpaa tyylitiedostoa sivu muuten kayttaa.
 * ======================================================================== */

.jhdr {
  position: sticky; top: 0; z-index: 90;
  background: var(--surface);
  border-bottom: 1px solid transparent;
  transition: border-color .22s ease, box-shadow .22s ease;
}
.jhdr.is-stuck {
  border-bottom-color: var(--border);
  box-shadow: 0 8px 24px -22px rgba(15, 23, 42, .8);
}
/* Oma leveys, EI var(--maxw): juridiset sivut asettavat --maxw:n arvoon 780px
   omaa leipatekstiaan varten, ja silloin ylapalkki kutistui niilla sivuilla
   eri levyiseksi kuin muualla. Yhteinen ylapalkki nayttaa samalta joka sivulla. */
.jhdr__bar {
  max-width: 1180px; margin: 0 auto; padding: 0 24px;
  display: flex; align-items: center; gap: 14px; height: 72px;
}

/* ---------- Logo ---------- */
.jhdr__brand { display: inline-flex; align-items: center; text-decoration: none; margin-right: 22px; }
.jhdr__logo {
  font-family: var(--display); font-weight: 800; font-size: 1.85rem; line-height: 1;
  letter-spacing: -.04em; color: var(--primary);
}
.jhdr__slogan {
  font-size: .72rem; font-weight: 600; letter-spacing: -.01em;
  color: var(--primary); opacity: .85; line-height: 1.1;
}
.jhdr__brand:hover .jhdr__logo { color: var(--primary-dark); }

/* ---------- Linkkirivi ---------- */
.jhdr__nav { display: flex; align-items: center; gap: 4px; }
.jhdr__nav a {
  position: relative;
  padding: 10px 14px; border-radius: var(--r-sm);
  font-size: .95rem; font-weight: 600; color: var(--text-muted); text-decoration: none;
  transition: color .18s ease;
}
.jhdr__nav a:hover { color: var(--text); }
.jhdr__nav a[aria-current] { color: var(--primary); }
/* Alleviivaus istuu palkin alareunassa, ei linkin alla: nain se osuu samalle
   viivalle kuin palkin oma reuna, kuten maketissa. */
.jhdr__nav a[aria-current]::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: -26px;
  height: 3px; background: var(--primary); border-radius: 2px 2px 0 0;
}

.jhdr__right { display: flex; align-items: center; gap: 8px; margin-left: auto; }

/* ---------- Kieli ---------- */
.jhdr__lang { position: relative; }
.jhdr__langBtn {
  font: inherit; font-size: .88rem; font-weight: 600; cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 10px;
  background: none; border: 0; border-radius: var(--r-sm); color: var(--text-muted);
  transition: color .18s ease, background .18s ease;
}
.jhdr__langBtn:hover { color: var(--text); background: var(--surface-alt); }
/* Maapallon tilalla nykyisen kielen lippu — Noto Color Emoji piirtaa sen. */
.jhdr__flag { font-size: 15px; line-height: 1; }
.jhdr__chev { width: 13px; height: 13px; opacity: .6; transition: transform .18s ease; }
.jhdr__lang.is-open .jhdr__chev { transform: rotate(180deg); }

.jhdr__langMenu {
  position: absolute; right: 0; top: calc(100% + 8px); z-index: 95; min-width: 186px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r); box-shadow: var(--shadow-md, 0 10px 30px -12px rgba(15, 23, 42, .18)); padding: 6px;
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.jhdr__lang.is-open .jhdr__langMenu { opacity: 1; visibility: visible; transform: none; }
.jhdr__langMenu button {
  display: flex; align-items: center; gap: 10px; width: 100%; text-align: left;
  font: inherit; font-size: .9rem; cursor: pointer;
  background: none; border: 0; border-radius: var(--r-sm); padding: 9px 11px; color: var(--text);
}
.jhdr__langMenu button:hover { background: var(--surface-alt); }
.jhdr__langMenu button.is-current { color: var(--primary); font-weight: 700; }

/* ---------- Teemapainike ---------- */
.jhdr__icon {
  display: inline-grid; place-items: center; cursor: pointer;
  width: 38px; height: 38px; padding: 0;
  background: none; border: 0; border-radius: var(--r-sm); color: var(--text-muted);
  transition: color .18s ease, background .18s ease;
}
.jhdr__icon:hover { color: var(--text); background: var(--surface-alt); }
.jhdr__icon svg { width: 18px; height: 18px; }
.jhdr__sun { display: none; }
:root[data-theme="dark"] .jhdr__moon { display: none; }
:root[data-theme="dark"] .jhdr__sun { display: block; }

/* ---------- Painikkeet ---------- */
/* [hidden] PEAB olema siin. `.jhdr__ghost` seab display'd, mis lööb üle
   brauseri oma `[hidden] { display: none }` reegli — ilma selleta jäi
   "Kirjaudu" sisse logitud kasutajale päisesse nime kõrvale seisma, sest
   header.js paneb küll `login.hidden = true`, aga CSS ei kuula. Sama lugu on
   sahtli nupuga (`#jdrwLogin` kannab sama klassi). */
.jhdr__ghost[hidden], .jhdr__cta[hidden] { display: none; }
.jhdr__ghost, .jhdr__cta {
  display: inline-flex; align-items: center; justify-content: center;
  font-size: .92rem; font-weight: 700; text-decoration: none; white-space: nowrap;
  padding: 10px 18px; border-radius: var(--r-sm);
  transition: background .18s ease, border-color .18s ease, color .18s ease, transform .12s ease;
}
.jhdr__ghost { background: var(--surface); color: var(--text); border: 1px solid var(--border); }
.jhdr__ghost:hover { border-color: var(--primary); color: var(--primary); }

/* Kirjautunut kayttaja: kuva + nimi "Kirjaudu"-linkin tilalla. */
/* [hidden] ENNE display'd — muidu ei mõju. Atribuut annab `display: none`
   brauseri oma stiililehest, aga see kaotab igale author-reeglile, mis
   display'd seab. Ilma selle reata seisis välja logituna päises tühi
   ääristatud silt. */
.jhdr__me[hidden] { display: none; }
.jhdr__me {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 5px 12px 5px 5px; border-radius: var(--pill);
  font-size: .92rem; font-weight: 600; color: var(--text);
  text-decoration: none; white-space: nowrap;
  border: 1px solid var(--border); background: var(--surface);
  transition: border-color var(--t) var(--ease), background var(--t) var(--ease);
}
.jhdr__me:hover { border-color: var(--primary); background: var(--surface-alt); }
.jhdr__meImg {
  width: 28px; height: 28px; border-radius: 50%; object-fit: cover; flex: none;
  background: var(--surface-alt);
}
/* Kirjautunut, mutta nimi ei ole viela valimuistissa (ei ole kaynyt
   kumppanisivulla). Sama ympyra, ihmisen kuva kirjaimen tilalla. */
.jhdr__meImg--icon {
  display: grid; place-items: center;
  background: var(--surface-alt); color: var(--text-muted);
}
.jhdr__meImg--icon svg { width: 17px; height: 17px; }

/* Pildita konto: eesnime esitäht ringis — sama mõõt, et päis ei hüppaks. */
.jhdr__meImg--txt {
  display: grid; place-items: center;
  background: var(--primary); color: var(--on-primary);
  font-size: .82rem; font-weight: 800;
}
.jhdr__meName { overflow: hidden; text-overflow: ellipsis; max-width: 12ch; }
.jhdr__cta { background: var(--primary); color: #fff; border: 1px solid var(--primary); }
.jhdr__cta:hover { background: var(--primary-dark); border-color: var(--primary-dark); }
.jhdr__ghost:active, .jhdr__cta:active { transform: translateY(1px); }

.jhdr__burger {
  display: none; cursor: pointer; background: none; border: 0;
  width: 38px; height: 38px; border-radius: var(--r-sm); color: var(--text);
  align-items: center; justify-content: center;
}
.jhdr__burger:hover { background: var(--surface-alt); }
.jhdr__burger svg { width: 22px; height: 22px; }

/* ---------- Mobiilisahtel ---------- */
.jhdr__scrim {
  position: fixed; inset: 0; z-index: 80; background: rgba(8, 11, 18, .42);
  opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s;
}
.jhdr__scrim.is-on { opacity: 1; visibility: visible; }

.jdrw {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 100;
  width: min(380px, 90vw); display: flex; flex-direction: column;
  background: var(--surface); border-left: 1px solid var(--border);
  box-shadow: -24px 0 60px -30px rgba(15, 23, 42, .6);
  transform: translateX(102%); visibility: hidden;
  transition: transform .3s cubic-bezier(.22, 1, .36, 1), visibility .3s;
}
.jdrw.is-on { transform: none; visibility: visible; }
.jdrw__head {
  display: flex; align-items: center; gap: 8px; flex: none;
  padding: 14px 16px; border-bottom: 1px solid var(--border);
}
.jdrw__head .jhdr__brand { margin-right: auto; }
.jdrw__body { flex: 1; overflow-y: auto; padding: 14px 12px; overscroll-behavior: contain; }
.jdrw__main a {
  display: block; padding: 13px 14px; border-radius: var(--r-sm);
  font-family: var(--display); font-weight: 700; font-size: 1.08rem;
  color: var(--text); text-decoration: none;
}
.jdrw__main a:hover, .jdrw__main a[aria-current] { background: var(--surface-alt); color: var(--primary); }
.jdrw__sub {
  font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--text-faint, #8A93A3); margin: 18px 0 4px; padding: 0 14px;
}
.jdrw__more a {
  display: block; padding: 10px 14px; border-radius: var(--r-sm);
  font-size: .95rem; color: var(--text-muted); text-decoration: none;
}
.jdrw__more a:hover, .jdrw__more a[aria-current] { background: var(--surface-alt); color: var(--text); }

.jdrw__foot {
  flex: none; padding: 14px 16px calc(14px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--border); display: grid; gap: 8px;
}
.jdrw__btn { width: 100%; padding: 13px 18px; }
.jdrw__langs { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 6px; }
.jdrw__langs button {
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
  padding: 7px 12px; border-radius: var(--r-sm); font: inherit; font-size: .84rem; font-weight: 600;
  background: var(--surface-alt); border: 1px solid transparent; color: var(--text-muted);
}
.jdrw__langs button.is-current { background: var(--primary-light); border-color: var(--primary); color: var(--primary-dark); }

body.jiir-lock { overflow: hidden; }

/* ---------- Kapea naytto ---------- */
@media (max-width: 1080px) {
  .jhdr__ghost { display: none; }   /* linkki on sahtelissa */
}
@media (max-width: 940px) {
  /* Kapealla naytolla vain kuva: nimi veisi puolet ylapalkista. */
  .jhdr__me { padding: 4px; }
  .jhdr__meName { display: none; }
  .jhdr__nav, .jhdr__cta, .jhdr__lang, .jhdr__bar > .jhdr__right > .jhdr__icon { display: none; }
  .jhdr__burger { display: inline-flex; }
  .jhdr__bar { height: 66px; }
}
@media (min-width: 941px) { .jdrw { display: none; } }
@media (max-width: 420px) {
  .jhdr__logo { font-size: 1.55rem; }
  .jhdr__slogan { font-size: .66rem; }
}
