/* EnergoSet — hlavička, off-canvas menu a patička. */

/* ============================================================
   Značka
   ============================================================ */
.brand {
  display: flex;
  align-items: center;
  gap: var(--es-2);
  background: var(--es-white);
  border-radius: var(--es-radius-pill);
  padding: 11px 22px 11px 15px;
  color: var(--es-dark);
  flex: none;
}

.brand:hover {
  color: var(--es-dark);
}

.brand--footer {
  background: transparent;
  padding: 0;
  gap: 11px;
}

.brand__name {
  font-size: 23px;
  font-weight: 600;
  letter-spacing: var(--es-track-logo);
  white-space: nowrap;
}

.brand__name--sm {
  font-size: var(--es-size-h3);
}

.logo-mark rect {
  fill: var(--es-dark);
}

.logo-mark .logo-mark__accent {
  fill: var(--es-teal);
}

/* ============================================================
   Hlavička
   ============================================================ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 60;
  padding: var(--es-3) var(--es-gutter);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--es-3);
}

/* Na mobilu se místo vodorovné navigace zobrazí hamburger. */
.nav-desktop,
.site-header__cta {
  display: none;
}

.nav-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--es-tap);
  height: var(--es-tap);
  flex: none;
  padding: 0;
  background: var(--es-white);
  border: none;
  border-radius: var(--es-radius-pill);
  color: var(--es-dark);
  cursor: pointer;
  transition: box-shadow var(--es-dur-fast) ease;
}

.nav-toggle:hover {
  box-shadow: var(--es-shadow-soft);
}

.nav-toggle__bars {
  display: grid;
  gap: 4px;
  width: 18px;
}

.nav-toggle__bars span {
  display: block;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
}

/* ============================================================
   Off-canvas panel
   ============================================================ */
.nav-scrim {
  position: fixed;
  inset: 0;
  z-index: 70;
  background: rgba(15, 43, 42, .38);
  opacity: 0;
  transition: opacity var(--es-dur-fast) ease;
}

.nav-scrim.is-open {
  opacity: 1;
}

.nav-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 80;
  width: min(340px, 88vw);
  padding: var(--es-5);
  background: var(--es-mint-2);
  box-shadow: -12px 0 40px rgba(15, 43, 42, .18);
  display: flex;
  flex-direction: column;
  gap: var(--es-5);
  overflow-y: auto;
  overscroll-behavior: contain;
  transform: translateX(100%);
  transition: transform .26s var(--es-ease);
}

.nav-panel.is-open {
  transform: none;
}

/* Autorské display: flex výše přebije UA pravidlo [hidden] { display: none },
   takže by zavřený panel zůstal jen odsunutý za okraj — a jeho odkazy by byly
   dostupné tabulátorem na každé stránce. Skript nastavuje hidden až po dojetí
   přechodu, takže tohle animaci nerozbije. */
.nav-panel[hidden],
.nav-scrim[hidden] {
  display: none;
}

.nav-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.nav-panel__title {
  font-size: var(--es-size-label);
  font-weight: 600;
  letter-spacing: var(--es-track-eyebrow);
  text-transform: uppercase;
  color: var(--es-muted);
}

.nav-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--es-tap);
  height: var(--es-tap);
  margin-right: -10px;
  padding: 0;
  background: transparent;
  border: none;
  color: var(--es-dark);
  cursor: pointer;
}

.nav-panel__nav {
  display: grid;
}

.nav-panel__link {
  display: flex;
  align-items: center;
  min-height: var(--es-tap);
  padding: var(--es-3) 0;
  border-bottom: 1px solid var(--es-line);
  color: var(--es-dark);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: var(--es-track-tile);
}

.nav-panel__link:hover,
.nav-panel__link.is-active {
  color: var(--es-teal-ink);
}

.nav-panel__cta {
  justify-self: start;
  width: 100%;
}

.nav-panel__contact {
  display: grid;
  gap: var(--es-2);
  margin-top: auto;
  padding-top: var(--es-5);
  font-size: var(--es-size-small-2);
  font-weight: 500;
}

.nav-panel__contact a {
  color: var(--es-dark);
  min-height: 32px;
  display: flex;
  align-items: center;
}

.nav-panel__contact a:hover {
  color: var(--es-teal-ink);
}

/* zamkne rolování stránky pod otevřeným panelem */
.has-nav-open {
  overflow: hidden;
}

/* ============================================================
   Hlavička od 1280 px — vodorovná navigace, hamburger zmizí

   Práh je 1280, ne 1024: logo, pět položek navigace a tlačítko webináře
   zaberou dohromady přes 1000 px a na 1024 px se CTA nasouvalo na
   „Kontakt“. Do té doby zůstává off-canvas menu, kde je i webinář.
   ============================================================ */
@media (min-width: 1280px) {
  .site-header {
    padding: var(--es-3) var(--es-gutter);
  }

  .nav-toggle {
    display: none;
  }

  .nav-desktop {
    display: flex;
    align-items: center;
    gap: 2px;
    background: var(--es-white);
    border-radius: var(--es-radius-pill);
    padding: 7px;
    flex: 0 1 auto;
    min-width: 0;
  }

  .nav-desktop__link {
    display: inline-flex;
    align-items: center;
    padding: 11px 15px;
    border-radius: var(--es-radius-pill);
    font-size: 15.5px;
    font-weight: 500;
    color: var(--es-body);
    white-space: nowrap;
    transition: background-color var(--es-dur-fast) ease, color var(--es-dur-fast) ease;
  }

  .nav-desktop__link:hover,
  .nav-desktop__link.is-active {
    background: var(--es-mint-2);
    color: var(--es-dark);
  }

  .site-header__cta {
    display: inline-flex;
    white-space: nowrap;
    padding: var(--es-3) 22px;
  }
}

@media (min-width: 1440px) {
  .site-header__inner {
    gap: var(--es-6);
  }
}

/* ============================================================
   Patička
   ============================================================ */
.site-footer {
  position: relative;
  z-index: 1;
  margin-top: clamp(40px, 6vw, 88px);
  padding: clamp(28px, 3.4vw, 48px) var(--es-gutter) var(--es-7);
  color: var(--es-dark);
  border-top: 1px solid var(--es-line);
  background-image:
    radial-gradient(64% 150% at 92% 0%, rgba(36, 168, 146, .16), transparent 66%),
    linear-gradient(180deg, var(--es-mint-2) 0%, var(--es-mint-3) 100%);
  overflow: hidden;
}

.site-footer__inner {
  position: relative;
  display: grid;
  gap: var(--es-4);
}

/* I na mobilu zůstává logo vlevo a kontakt vpravo. Kdyby se všechno
   naskládalo pod sebe, patička by se roztáhla přes půl obrazovky. */
.site-footer__row {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--es-4);
}

.site-footer__contact {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  gap: 0;
}

.site-footer__legal {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--es-1) var(--es-4);
}

.site-footer__label {
  font-size: var(--es-size-body);
  font-weight: 500;
  color: var(--es-muted);
}

/* 38 px místo 44: v patičce jsou odkazy pod sebou a plný dotykový cíl
   ji roztahoval přes půl obrazovky. Pořád je to nad minimem 24 px,
   které vyžaduje WCAG 2.2 na úrovni AA. */
.site-footer__link {
  display: inline-flex;
  align-items: center;
  gap: var(--es-2);
  min-height: 38px;
  font-size: var(--es-size-body);
  font-weight: 500;
  color: var(--es-dark);
}

.site-footer__link:hover {
  color: var(--es-teal-ink);
}

.site-footer__bullet {
  width: 7px;
  height: 7px;
  background: var(--es-teal);
  display: inline-block;
  flex: none;
}

.site-footer__legal {
  border-top: 1px solid var(--es-line);
  padding-top: var(--es-2);
  font-size: var(--es-size-label);
  color: var(--es-muted);
}

.site-footer__legal a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  color: var(--es-muted);
}

.site-footer__legal a:hover {
  color: var(--es-dark);
}

@media (min-width: 768px) {
  .site-footer__row {
    flex-wrap: wrap;
    align-items: center;
    gap: var(--es-7);
  }

  .site-footer__contact {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    text-align: left;
    gap: var(--es-7);
  }

  .site-footer__legal {
    padding-top: var(--es-5);
    gap: 18px;
  }

  .site-footer__inner {
    gap: var(--es-6);
  }
}

/* ============================================================
   Fallback bez JavaScriptu
   ============================================================ */
.noscript-nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--es-3) var(--es-5);
  align-items: center;
  padding: var(--es-3) var(--es-gutter);
  background: var(--es-white);
}

.noscript-nav a {
  display: inline-flex;
  align-items: center;
  min-height: var(--es-tap);
  color: var(--es-dark);
  font-weight: 500;
}

.noscript-nav a:hover {
  color: var(--es-teal-ink);
}
