/* NOVA mobile viewport/header hard fix — v3
   Loaded AFTER all legacy/experience/professional CSS.
   Goal: the header and hero must never create a layout wider than the viewport. */

html,
body {
  max-width: 100%;
}

@media (max-width: 1024px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  .kepala-situs {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
  }

  /* This element has BOTH .wadah and .kepala-dalam.
     Use padding instead of nested calc(width) rules so it cannot become oversized. */
  .kepala-dalam.wadah {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    overflow: visible !important;
  }

  .kepala-dalam .merek {
    min-width: 0 !important;
    max-width: calc(100% - 62px) !important;
    flex: 0 1 auto !important;
    overflow: hidden !important;
  }

  .kepala-dalam .merek-judul {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .kepala-dalam .merek-judul > span {
    max-width: 100% !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
  }

  .kepala-dalam .tombol-menu {
    position: relative !important;
    inset: auto !important;
    right: auto !important;
    left: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    margin: 0 0 0 auto !important;
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 46px !important;
    flex: 0 0 46px !important;
    align-self: center !important;
    justify-self: auto !important;
  }

  .navigasi-ponsel {
    width: auto !important;
    max-width: none !important;
  }

  main,
  .hero,
  .hero .wadah,
  .kisi-hero,
  .salinan-hero,
  .hero-galeri,
  .hero-galeri-jendela,
  .hero-galeri-track,
  .panggung-ponsel {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .kisi-hero {
    width: 100% !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .salinan-hero {
    width: 100% !important;
  }

  .hero-galeri,
  .hero-galeri-jendela {
    width: 100% !important;
  }
}

@media (max-width: 620px) {
  /* On phones every main content container uses padding, not calc(width). */
  main .wadah {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .kepala-dalam.wadah {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .kepala-dalam .merek {
    max-width: calc(100% - 58px) !important;
  }

  .kepala-dalam .merek small {
    display: none !important;
  }

  .kepala-dalam .merek img {
    width: 31px !important;
    height: 25px !important;
    flex: 0 0 auto !important;
  }

  .kepala-dalam .merek-judul > span {
    font-size: 15px !important;
    line-height: 1 !important;
  }

  .kepala-dalam .tombol-menu {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    flex-basis: 44px !important;
  }

  .navigasi-ponsel {
    left: 12px !important;
    right: 12px !important;
  }

  .hero {
    width: 100% !important;
    max-width: 100% !important;
  }

  .hero .wadah {
    overflow: hidden !important;
  }

  .hero-galeri-track img {
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (max-width: 390px) {
  main .wadah,
  .kepala-dalam.wadah {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .kepala-dalam .merek {
    max-width: calc(100% - 56px) !important;
  }
}
