/* V122.3: prevent automatic intra-word hyphens and improve footer brand fit. */
/* ZSEl Nr 2 / V122.1 / unified site footer, compact utilities, readable articles */
.zse1221-contact,.zse1221-footer,.zse1221-contact *,.zse1221-footer *{box-sizing:border-box}
.zse1221-wrap{width:min(1200px,calc(100% - 40px));margin:0 auto}
.zse1221-contact{background:#0a2949;color:#fff;font:inherit;padding:30px 0}
.zse1221-contacts{display:grid;grid-template-columns:1.1fr .8fr 1fr 1fr;gap:25px;align-items:start}
.zse1221-contact-item{display:flex;gap:12px;min-width:0;align-items:flex-start}
.zse1221-contact-symbol{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:13px;background:rgba(255,255,255,.08);color:#fff;font-size:18px}
.zse1221-contact-info{min-width:0}
.zse1221-contact-info strong{display:block;color:#fff;font-size:17px;line-height:1.3;font-weight:800;margin:2px 0 9px}
.zse1221-contact-info a,.zse1221-contact-info span{display:block;color:#cbd9e7;font-size:12px;line-height:1.7;overflow-wrap:anywhere;text-decoration:none}
.zse1221-contact-info a:hover{text-decoration:underline;color:#fff}
.zse1221-footer{display:block;background:#06192d!important;color:#fff!important;font:inherit;padding:25px 0 18px!important}
.zse1221-foot-main{display:flex;gap:36px;align-items:flex-start;justify-content:space-between}
.zse1221-foot-brand{display:flex;flex:0 0 340px;gap:13px;align-items:center;color:#fff!important;text-decoration:none!important}
.zse1221-foot-brand img{display:block;width:58px;height:58px;flex:0 0 58px;object-fit:contain;border-radius:50%;background:#fff}
.zse1221-foot-brand strong{display:block;color:#eef6fc;font-size:13px;white-space:nowrap;line-height:1.35;font-weight:800}
.zse1221-foot-brand small{display:block;font-size:12px;color:#a9bdcc;margin-top:3px}
.zse1221-foot-links{display:flex;flex:1;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:9px 16px;line-height:1.5}
.zse1221-foot-links a,.zse1221-foot-tools a{color:#bed0de!important;text-decoration:none!important;font-size:12px;font-weight:500}
.zse1221-foot-links a:hover,.zse1221-foot-tools a:hover{text-decoration:underline!important;color:#fff!important}
.zse1221-foot-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:19px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12)}
.zse1221-foot-bottom small{color:#8fa7ba;font-size:11px}
.zse1221-foot-tools{display:flex;flex-wrap:wrap;align-items:center;gap:7px 17px}
.zse1221-foot-tools a{font-weight:750;font-size:12px}
.zse1221-foot-tools a:focus-visible,.zse1221-foot-links a:focus-visible{outline:2px solid #f2d872;outline-offset:3px;border-radius:2px}
/* Compact utility strip: a light secondary row instead of a large box below the logo. */
.zse121-tools{background:#fff!important;border-bottom:1px solid #edf1f5!important}
.zse121-tools__inner{min-height:42px!important;padding:4px 0!important;gap:10px!important}
.zse121-tools__mail{padding:5px 8px!important;background:transparent!important;border-color:transparent!important}
.zse121-tools__form{height:31px!important;flex-basis:290px!important}
.zse121-tools__form input{padding:5px 10px!important}
.zse121-tools__form button{font-size:12px!important}
.z122-tools{background:#fff!important;border-color:#edf1f5!important}
.z122-tools>.z122-wrap{min-height:42px!important;padding-top:4px!important;padding-bottom:4px!important}
.z122-tools input,.z122-tools button{padding-top:5px!important;padding-bottom:5px!important}
/* Large news headings must not crowd out photos or the article text. */
body .news-detail-main .feature-copy h1{font-size:clamp(30px,3.0vw,43px)!important;line-height:1.12!important;letter-spacing:-.035em!important;overflow-wrap:break-word!important;word-break:normal!important;hyphens:none!important;-webkit-hyphens:none!important}
body .news-detail-main .feature-copy h1.zse1221-long-title{font-size:clamp(27px,2.55vw,36px)!important;line-height:1.16!important}
body .news-detail-main .feature-copy h1.zse1221-verylong-title{font-size:clamp(25px,2.15vw,32px)!important;line-height:1.18!important}
body .news-detail-main .feature-copy{padding:42px 38px!important}
@media(max-width:980px){.zse1221-contacts{grid-template-columns:repeat(2,minmax(0,1fr))}.zse1221-foot-main{flex-direction:column;gap:20px}.zse1221-foot-brand{flex:0 1 auto}.zse1221-foot-links{justify-content:flex-start}}
@media(max-width:620px){.zse1221-wrap{width:calc(100% - 30px)}.zse1221-contact{padding:25px 0}.zse1221-contacts{grid-template-columns:1fr;gap:18px}.zse1221-contact-info strong{font-size:15px}.zse1221-footer{padding:25px 0 18px!important}.zse1221-foot-bottom{flex-direction:column;align-items:flex-start}.zse1221-foot-brand strong{font-size:12px;white-space:normal}.zse1221-foot-brand img{width:52px;height:52px;flex-basis:52px}body .news-detail-main .feature-copy{padding:30px 22px!important}body .news-detail-main .feature-copy h1{font-size:clamp(28px,7vw,38px)!important}body .news-detail-main .feature-copy h1.zse1221-long-title{font-size:clamp(26px,6vw,34px)!important}body .news-detail-main .feature-copy h1.zse1221-verylong-title{font-size:clamp(24px,5.4vw,30px)!important}}
/* New CMS project cards inherit the existing projects grid styles. */
.project-overview-grid .zse1221-project-media{display:grid;place-items:center;background:linear-gradient(135deg,#0b2b4b,#175b7f);min-height:220px;color:#fff;font-size:48px}
.project-overview-grid .overview-card img{min-width:0}
.project-overview-grid .overview-card .overview-body h2{overflow-wrap:break-word}

.z1221-project-card .overview-mark{font-size:9px;letter-spacing:0}

/* V122.2: keep the approved header and footer usable on narrow desktops */
@media (min-width:981px) and (max-width:1260px){.zse1221-foot-brand{flex-basis:330px}.zse1221-foot-main{gap:24px}.zse1221-foot-links{gap:8px 12px}}
@media (max-width:520px){.zse121-tools__inner{flex-wrap:wrap!important}.zse121-tools__form{flex:1 1 100%!important;order:3!important}.zse121-tools__mail,.zse121-tools__map{flex:0 1 auto!important}}


/* V122.4: headings for general-education teacher groups only. */
/* Subject labels stand out from teachers' names; does not change CMS-managed content. */
.section.soft .directory .directory-group > h4 {
  display: block;
  background: #eaf2fb;
  color: #0b2d50;
  font-size: 15.5px;
  font-weight: 900;
  line-height: 1.35;
  text-transform: none;
  letter-spacing: 0;
  margin: 0 0 11px;
  padding: 11px 14px;
  border-left: 4px solid #e31b2f;
  border-radius: 0 10px 10px 0;
}

/* ZSEl Nr 2 — V122.6: 1400px responsive wide layout */
/* Only the maximum width changes. At smaller viewports the prior responsive widths remain. */
:root { --wrap: 1400px !important; }
/* Shared footer, contact band and mail / search / sitemap utility row */
.zse1221-wrap { width: min(1400px, calc(100% - 40px)); }
.zse121-tools__inner { max-width: 1400px; }
/* New CMS subpages and project/news listings are aligned with the main layout */
.z122-wrap { width: min(1400px, calc(100% - 36px)); }
.z122-dir-wrap { width: min(1400px, calc(100% - 40px)); }
/* News photo/title panels may expand, but long body text retains its existing 820–980px limit. */
.news-detail-wrap, .article-wrap { max-width: 1400px; }
/* Keep phone padding identical to approved V122.5 styles. */
@media (max-width: 760px) {
  .zse1221-wrap { width: calc(100% - 30px); }
  .z122-wrap, .z122-dir-wrap { width: calc(100% - 24px); }
}
/* V122.6 mobile audit: pre-existing 320px overflow in three OKIPT document pages. */
@media (max-width: 480px) {
  .doc-shell { overflow-wrap:anywhere; }
  .doc-shell table { display:table !important; table-layout:fixed !important; width:100% !important; max-width:100%; }
  .doc-shell th, .doc-shell td { overflow-wrap:anywhere !important; word-break:break-word !important; }
}
@media (max-width: 360px) {
  header .head { gap: 8px; }
  header .head > .brand { min-width:0; flex:1 1 auto; }
  header .head > .menu { flex:0 0 auto; margin-left:auto; }
}


/* ZSEl Nr 2 V122.6.1: phone header, anniversary band and safe long links.
   CSS overrides apply after the existing site design; desktop 1400px layout is unchanged. */
@media (max-width:620px) {
  /* Compact, legible brand with no isolated final digit. */
  .header-inner > .brand { min-width:0; flex:1 1 auto; }
  .header-inner > .brand > span { min-width:0; }
  .header-inner > .brand strong {
    white-space:nowrap;
    font-size:clamp(10.6px, 2.90vw, 12.6px) !important;
    letter-spacing:-.32px !important;
    line-height:1.18 !important;
  }
  .header-inner > .brand span span { font-size:12px; }
  .header-inner > .menu-btn { flex:0 0 42px; width:42px; }
  /* Two balanced rows: mail + sitemap, full-width search below. */
  .zse121-tools__inner {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    column-gap:12px !important;
    row-gap:5px !important;
    padding:6px 0 !important;
    min-height:0 !important;
    justify-content:stretch !important;
  }
  .zse121-tools__mail { grid-column:1; grid-row:1; justify-self:start; margin:0; white-space:nowrap; }
  .zse121-tools__map { grid-column:2; grid-row:1; justify-self:end; margin:0 !important; white-space:nowrap; }
  .zse121-tools__form {
    grid-column:1/-1; grid-row:2; order:0 !important;
    flex:none !important; width:100%; min-width:0; margin:0;
  }
  /* Both historical anniversary-markup variants fit in two clean rows. */
  .anniv-bar .container { padding:8px 8px !important; min-height:0 !important; }
  .anniv-bar a {
    display:flex !important; flex-flow:row wrap !important;
    align-items:center !important; justify-content:center !important;
    column-gap:9px !important; row-gap:1px !important;
    width:100%; max-width:100%;
    font-size:12px !important; line-height:1.4 !important;
    text-align:center;
  }
  .anniv-bar .anniv-dot, .anniv-bar a > span:nth-child(2):not(.anniv-call),
  .anniv-bar a > span:nth-child(4) { display:none !important; }
  /* Older news pages: title and date on first row; action on second. */
  .anniv-bar a > strong { flex:0 0 auto; white-space:nowrap; }
  .anniv-bar a > span:nth-child(3) { white-space:nowrap; flex:0 0 auto; }
  .anniv-bar a > span:last-child:not(.anniv-top):not(.anniv-date) {
    flex:0 0 100%; white-space:normal;
  }
  /* Home-page anniversary markup: inner row of title + date. */
  .anniv-bar .anniv-top {
    display:flex !important; flex:0 1 auto; min-width:0;
    flex-wrap:nowrap !important; justify-content:center;
    align-items:center; column-gap:8px !important;
  }
  .anniv-bar .anniv-top strong { white-space:nowrap; }
  .anniv-bar .anniv-date {
    white-space:nowrap !important; flex:0 0 auto; gap:5px !important;
  }
  .anniv-bar .anniv-date::before { margin-right:0 !important; }
  .anniv-bar .anniv-call { flex:0 0 100%; white-space:normal !important; }
  .anniv-bar .anniv-call::before { content:none !important; }
}
@media (max-width:360px) {
  .header-inner > .brand strong { font-size:10.3px !important; letter-spacing:-.4px !important; }
  .header-inner > .brand img { width:38px; height:38px; flex-basis:38px; }
  .anniv-bar a { font-size:11px !important; column-gap:6px !important; }
  .anniv-bar .anniv-top { column-gap:6px !important; }
}
/* Long URL strings must never overflow a mobile article card, regardless of width. */
.news-detail-main .reading-text,
.news-detail-main .reading-text p,
.news-detail-main .feature-lead,
.article-body, .article-content {
  min-width:0; max-width:100%; overflow-wrap:anywhere; word-wrap:break-word;
}
.news-detail-main .reading-text .zse-article-link {
  display:inline-flex; align-items:center; gap:6px;
  max-width:100%; padding:10px 14px;
  border-radius:10px; background:#eff5fb; border:1px solid #cbdceb;
  color:#0b4573; font-weight:800; font-size:.91em;
  line-height:1.4; white-space:normal; text-decoration:none;
  overflow-wrap:anywhere;
}
.news-detail-main .reading-text .zse-article-link:hover,
.news-detail-main .reading-text .zse-article-link:focus-visible {
  background:#e1effa; text-decoration:underline;
}

/* V122.7: same desktop header, active-item underline and jubilee band on school pages.
   Only standard school headers are affected; OKIPT competition menus stay separate. */
header .zse127-school-header{gap:12px;min-width:0}
header .zse127-school-header .brand{min-width:0}
header .zse127-school-header .nav{min-width:0}
header .zse127-school-header .nav > a.active{
  position:relative!important;border-bottom:0!important;color:#e31b2f!important;
}
header .zse127-school-header .nav > a.active::after{
  content:""!important;position:absolute!important;left:0!important;right:0!important;
  bottom:13px!important;height:3px!important;background:#e31b2f!important;
  border-radius:3px!important;border:0!important;display:block!important;
}
header .zse127-headtools{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin-left:0}
header .zse127-headtools > .bip,
header .zse127-headtools > .utility,
header .zse127-headtools > .utility-link{
  display:inline-flex!important;align-items:center;justify-content:center;
  min-height:39px;min-width:43px;padding:8px 11px!important;
  border:1px solid #cbd7e2!important;border-radius:11px!important;
  color:#071d35!important;background:#fff!important;
  font-size:12px!important;font-weight:900!important;text-decoration:none!important;
}
header .zse127-headtools > .zse127-candidate{
  display:inline-flex;align-items:center;justify-content:center;min-height:39px;
  padding:9px 13px!important;border-radius:11px!important;border:0!important;
  background:#e31b2f!important;color:#fff!important;
  font-size:12px!important;font-weight:900!important;line-height:1.2!important;
  white-space:nowrap;text-decoration:none!important;box-shadow:none!important;
}
header .zse127-headtools > a:hover{filter:brightness(.96)}
header .zse127-school-header .nav > .zse127-mobile-only{display:none!important}
.anniv-bar.zse127-anniv{background:linear-gradient(90deg,#7b5a12,#c79b2b 48%,#7b5a12)!important;color:#fff!important}
.anniv-bar.zse127-anniv .container{display:flex!important;align-items:center;justify-content:center;
  min-height:43px!important;padding:6px 10px!important;max-width:1400px;
  text-align:center;gap:0!important}
.anniv-bar.zse127-anniv a{display:flex!important;align-items:center;justify-content:center;
  flex-flow:row wrap!important;gap:5px 13px!important;max-width:100%;line-height:1.35!important;
  color:#fff!important;text-decoration:none!important;font-size:13px!important;font-weight:850!important}
.anniv-bar.zse127-anniv a:hover{text-decoration:underline!important}
.anniv-bar.zse127-anniv .anniv-top{display:inline-flex!important;align-items:center;
  justify-content:center;flex-wrap:wrap!important;gap:6px 10px!important;min-width:0}
.anniv-bar.zse127-anniv .anniv-top strong{white-space:nowrap;font-weight:900!important}
.anniv-bar.zse127-anniv .anniv-date{display:inline-flex!important;align-items:center;
  gap:8px;margin:0!important;padding:5px 10px!important;white-space:nowrap;
  color:#fff!important;background:rgba(255,255,255,.10)!important;
  border:1px solid rgba(255,255,255,.22)!important;border-radius:999px!important;
  font-size:inherit!important;line-height:1.3!important}
.anniv-bar.zse127-anniv .anniv-date::before{content:"•";opacity:.85}
.anniv-bar.zse127-anniv .anniv-call{display:inline-flex!important;align-items:center;white-space:nowrap}
.anniv-bar.zse127-anniv .anniv-call::before{content:"•";margin-right:12px;opacity:.85}
@media (min-width:1101px) and (max-width:1320px){
  /* Avoid desktop overflow when all nine navigation labels are present. */
  header .zse127-headtools > .zse127-candidate{display:none!important}
}
@media (max-width:1120px){
  header .zse127-school-header .nav.open > a.active::after{display:none!important}
}
@media (max-width:1100px){
  header .zse127-school-header .nav.open > .zse127-mobile-only{
    display:flex!important;min-height:44px;align-items:center;flex:0 0 auto;
    padding:9px 13px;border-radius:10px;white-space:normal;
    font-size:14px;font-weight:850;color:#0b2d50;
  }
  header .zse127-school-header .nav.open > .zse127-mobile-only:hover{background:#f1f5f9}
  header .zse127-headtools{gap:0}
  header .zse127-headtools > .okipt-fast,header .zse127-headtools > .zse127-candidate{display:none!important}
  header .zse127-school-header:has(> .zse-v105-bip) .zse127-headtools > .bip{display:none!important}
  header .zse127-headtools > .bip,header .zse127-headtools > .utility,
  header .zse127-headtools > .utility-link{min-width:44px!important;min-height:44px!important}
}
@media (max-width:620px){
  .anniv-bar.zse127-anniv .container{padding:8px 10px!important;min-height:0!important}
  .anniv-bar.zse127-anniv a{display:flex!important;flex-direction:column!important;
    gap:4px!important;font-size:12px!important}
  .anniv-bar.zse127-anniv .anniv-top{display:flex!important;flex-wrap:wrap!important;
    gap:4px 10px!important}
  .anniv-bar.zse127-anniv .anniv-call{display:block!important;white-space:normal!important}
  .anniv-bar.zse127-anniv .anniv-call::before{content:none!important}
}
@media (max-width:360px){
  .anniv-bar.zse127-anniv a{font-size:11px!important}
  .anniv-bar.zse127-anniv .anniv-top{gap:4px 6px!important}
}

/* V122.7.1 — Projekty: phone-safe title and visible 75th-anniversary strip.
   Only affects the project overview hero below 620px and the V122.7 anniversary bar.
   Desktop 1400px layout, CMS, and other school sections remain unchanged. */
@media (max-width: 620px) {
  .overview-hero .overview-copy {
    width: 100%; max-width: 100%; min-width: 0;
  }
  .overview-hero .overview-copy h1 {
    max-width: 100%;
    font-size: clamp(26px, 7vw, 34px) !important;
    line-height: 1.12 !important;
    letter-spacing: -.035em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    -webkit-hyphens: none !important;
  }
  .overview-hero .overview-copy h1 > span {
    display: block;
    max-width: 100%;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    -webkit-hyphens: none !important;
  }
  .anniv-bar.zse127-anniv {
    display: block !important;
    visibility: visible !important;
    width: 100%;
  }
  .anniv-bar.zse127-anniv > .container {
    display: flex !important;
    min-height: 0 !important;
    padding: 8px 10px !important;
  }
  .anniv-bar.zse127-anniv a {
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
    width: 100%;
    white-space: normal !important;
    text-align: center;
  }
  .anniv-bar.zse127-anniv .anniv-top {
    display: flex !important;
    justify-content: center;
    flex-wrap: wrap !important;
    gap: 3px 9px !important;
  }
  .anniv-bar.zse127-anniv .anniv-call {
    display: block !important;
    white-space: normal !important;
  }
}
