.language-selector { margin: 0; flex-shrink: 0; }
.language-selector .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.language-selector select:focus-visible { outline: 3px solid #00869a; outline-offset: 3px; }
@media (max-width: 1100px) {
  .site-header { flex-wrap: wrap; height: auto; min-height: 66px; gap: 14px; padding-top: 12px; padding-bottom: 12px; }
  .site-header nav { flex: 1; }
}

/* Keep the shared header in document flow when its controls need several rows. */
@media (max-width: 800px) {
  body .site-header,
  body[class] .site-header {
    position: relative;
    inset: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    width: 100%;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: 12px 16px;
    gap: 8px 12px;
    border-radius: 0;
    border-bottom: 1px solid #e3edf2;
    background: #fff;
  }
  body .site-header .official-logo,
  body[class] .site-header .official-logo { display: block; width: 140px; max-width: 100%; grid-column: 1; grid-row: 1; }
  body .site-header .official-logo img { display: block; width: 100%; height: auto; }
  body .site-header .account,
  body[class] .site-header .account {
    display: contents;
    flex: 1 1 100%;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: 0;
    order: 1;
  }
  body .site-header .account > .button,
  body[class] .site-header .account > .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    order: 1;
    min-height: 44px;
    padding: 10px 12px;
    font-size: 14px;
    line-height: 1.2;
    border-radius: 10px;
  }
  body .site-header .language-selector { min-width: 0; grid-column: 2; grid-row: 1; justify-self: end; }
  body .site-header .language-selector label { min-width: 0; flex-direction: row; }
  body .site-header .language-selector label > span[aria-hidden] { display: none; }
  body .site-header .language-selector select {
    width: 100%;
    max-width: 160px !important;
    min-height: 44px;
    font-size: 16px !important;
    text-overflow: ellipsis;
  }
  body .site-header nav,
  body[class] .site-header nav {
    display: flex;
    grid-column: 1 / -1;
    flex: 1 1 100%;
    flex-wrap: wrap;
    order: 2;
    gap: 8px 18px;
    width: 100%;
    font-size: 13px;
  }
  body .site-header nav { justify-content: space-between; }
  body .site-header nav a { display: inline-flex; align-items: center; min-height: 44px; }
  body[class] .warm-hero { height: auto; min-height: 0; }
  body[class] .warm-hero-content { position: relative; inset: auto; width: 100%; padding: 42px 5% 36px; }
  body[class] .warm-hero h1 { font-size: clamp(30px, 8vw, 44px); letter-spacing: -1px; }
  body[class] .warm-hero-content > p { font-size: 17px; margin: 18px 0 26px; }
  body[class] .warm-hero .energy-question { white-space: normal; }
  body[class] .warm-hero .search-row {
    width: 100%;
    max-width: 560px;
    min-width: 0;
    min-height: 0;
    gap: 12px;
    padding: 12px;
    border-radius: 20px;
  }
  body[class] .warm-hero .searchbar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: auto;
    align-content: start;
    align-items: stretch;
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: 0;
    gap: 10px;
  }
  body[class] .warm-hero .searchbar label {
    height: 48px;
    min-width: 0;
    padding: 8px;
    margin: 0;
    gap: 6px;
    border: 0;
    border-radius: 10px;
    background: #f4f9fb;
  }
  body[class] .warm-hero .searchbar select { width: 100%; min-width: 0; font-size: 16px; }
  body[class] .warm-hero .searchbar label svg { width: 20px; height: 20px; flex-shrink: 0; }
  body[class] .warm-hero .searchbar > .button {
    min-width: 0;
    min-height: 48px;
    height: auto;
    margin: 0;
    padding: 8px;
    gap: 6px;
    border-radius: 10px;
    font-size: 14px;
    white-space: normal;
  }
  body[class] .warm-hero .searchbar > .button svg { width: 20px; height: 20px; flex-shrink: 0; }
  body[class] .warm-hero .daynight { margin-inline: auto; }
  body[class] .warm-hero .daynight button { min-height: 44px; }
}

@media (max-width: 360px) {
  body .site-header .language-selector { flex-basis: 100%; }
  body .site-header .account > .button { flex: 1; }
  body[class] .warm-hero .searchbar > .button { grid-column: 1 / -1; }
  body[class] .warm-hero .searchbar label:first-child { grid-column: 1 / -1; }
}
