/* INDOSAINSTECH RESPONSIVE V1 */
/* CSS tambahan untuk seluruh halaman publik */

*, *::before, *::after {
  box-sizing: border-box;
}

main img,
main video,
main iframe {
  max-width: 100%;
}

main img {
  height: auto;
}

main [class*="grid"] > * {
  min-width: 0;
}

/* TABLET DAN LAYAR MENENGAH */

@media (max-width: 1024px) {

  .container {
    width: calc(100% - 40px) !important;
    max-width: 100% !important;
    margin-inline: auto !important;
  }

  .hero-grid,
  .hero-featured-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 26px !important;
  }

  .hero-featured-grid {
    min-height: 0 !important;
    padding-block: 35px !important;
  }

  .hero-content,
  .hero-featured-copy,
  .hero-featured-visual {
    min-width: 0 !important;
  }

  .hero-featured-copy h1 {
    font-size: clamp(30px, 5vw, 48px) !important;
    overflow-wrap: anywhere;
  }

  .hero-featured-visual img {
    display: block;
    width: 100% !important;
    height: auto !important;
    max-height: 440px !important;
    object-fit: contain !important;
  }

  .hero-visual img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }

}

/* NAVIGASI MOBILE DAN TABLET */

@media (max-width: 960px) {

  #site-header {
    position: sticky !important;
    top: 0;
    z-index: 100;
    overflow: visible !important;
  }

  #site-header .nav-shell {
    position: relative !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    min-height: 68px;
  }

  #site-header .brand {
    min-width: 0 !important;
    max-width: calc(100% - 110px);
  }

  #site-header .brand img {
    display: block;
    max-width: 100%;
    height: auto;
  }

  #menu-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 44px;
    min-height: 44px;
    flex-shrink: 0;
    cursor: pointer;
  }

  #main-nav {
    display: none !important;
    position: static !important;
    order: 99 !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    inset: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 12px !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 3px !important;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 12px 28px rgba(9,35,75,.10);
  }

  #main-nav.is-open,
  #main-nav.open,
  #main-nav.show,
  #site-header .nav-shell:has(
    #menu-toggle[aria-expanded="true"]
  ) #main-nav {
    display: flex !important;
  }

  #main-nav a {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 44px;
    padding: 10px 14px !important;
    margin: 0 !important;
    white-space: normal !important;
  }

  .grid-3,
  .card-grid,
  .cards-grid,
  .features-grid,
  .news-grid,
  .program-grid,
  .journal-grid,
  .values-grid {
    grid-template-columns: repeat(
      2, minmax(0, 1fr)
    ) !important;
  }

}

/* SMARTPHONE */

@media (max-width: 700px) {

  .container {
    width: calc(100% - 32px) !important;
  }

  .section {
    padding-block: 45px !important;
  }

  .hero,
  .hero.hero-featured {
    min-height: 0 !important;
  }

  .hero-grid,
  .hero-featured-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    padding-block: 28px !important;
    gap: 20px !important;
  }

  .hero-content h1,
  .hero-featured-copy h1 {
    font-size: clamp(27px, 7.4vw, 40px) !important;
    line-height: 1.17 !important;
    overflow-wrap: anywhere;
  }

  .hero-content p,
  .hero-featured-copy p {
    font-size: 15px !important;
    line-height: 1.65 !important;
  }

  .hero-featured-visual {
    width: 100% !important;
    padding: 6px !important;
  }

  .hero-featured-visual img {
    display: block;
    width: 100% !important;
    height: auto !important;
    max-height: 380px !important;
    object-fit: contain !important;
  }

  .hero-actions,
  .hero-featured-actions,
  .hero-featured-controls,
  .section-end {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
  }

  .hero-featured-controls button {
    min-height: 40px;
  }

  .grid-2,
  .grid-3,
  .card-grid,
  .cards-grid,
  .features-grid,
  .news-grid,
  .program-grid,
  .journal-grid,
  .values-grid,
  .stats-grid,
  .about-grid,
  .about,
  .form-grid,
  .form-row,
  .footer-main {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .news-card,
  .journal-card,
  .program-card,
  .card {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere;
  }

  .news-thumb,
  .news-hero-img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto;
    object-fit: cover;
  }

  .section-heading h2 {
    font-size: clamp(24px, 6vw, 34px) !important;
    overflow-wrap: anywhere;
  }

  .footer-main,
  .footer-bottom {
    flex-wrap: wrap !important;
    gap: 15px !important;
  }

  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea {
    max-width: 100%;
  }

  form button,
  form .btn {
    max-width: 100%;
  }

  .prose {
    overflow-wrap: anywhere;
  }

  table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

}

/* SMARTPHONE KECIL */

@media (max-width: 420px) {

  .container {
    width: calc(100% - 28px) !important;
  }

  #site-header .brand {
    max-width: calc(100% - 76px);
  }

  .hero-content h1,
  .hero-featured-copy h1 {
    font-size: clamp(26px, 8vw, 34px) !important;
  }

  .hero-featured-visual img {
    max-height: 290px !important;
  }

  .hero-actions .btn,
  .hero-featured-actions .btn {
    justify-content: center;
  }

}

/* AKSESIBILITAS */

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }
}



/* INDOSAINSTECH MOBILE HEADER FIX V3 */

@media (max-width: 600px) {

  /* Header putih tetap membungkus seluruh navigasi */

  #site-header,
  #site-header.site-header {
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
    background: #ffffff !important;
    overflow: visible !important;
    z-index: 100 !important;
  }

  #site-header .nav-shell {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-auto-rows: auto !important;
    align-items: center !important;
    justify-content: space-between !important;
    column-gap: 8px !important;
    row-gap: 0 !important;
    width: calc(100% - 28px) !important;
    max-width: 100% !important;
    min-height: 68px !important;
    height: auto !important;
    margin-inline: auto !important;
    padding: 8px 0 !important;
  }

  /* Logo */

  #site-header .brand {
    grid-column: 1 !important;
    grid-row: 1 !important;
    display: flex !important;
    position: static !important;
    align-items: center !important;
    justify-self: start !important;
    width: auto !important;
    max-width: 100% !important;
    height: 54px !important;
    max-height: 54px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  #site-header .brand img {
    display: block !important;
    position: static !important;
    width: auto !important;
    max-width: 90px !important;
    height: 52px !important;
    max-height: 52px !important;
    min-height: 0 !important;
    object-fit: contain !important;
    margin: 0 !important;
    transform: none !important;
  }

  #site-header .brand > span {
    display: none !important;
  }

  /* Grup tombol di kanan logo */

  #site-header .nav-shell > :has(#menu-toggle) {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: flex !important;
    position: static !important;
    align-items: center !important;
    justify-content: flex-end !important;
    justify-self: end !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  /* Hubungi Kami dibuat ringkas */

  #site-header .nav-shell > :has(#menu-toggle) .btn {
    width: auto !important;
    min-width: 0 !important;
    min-height: 36px !important;
    padding: 8px 10px !important;
    margin: 0 !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }

  #site-header .nav-shell > :has(#menu-toggle) .btn svg {
    display: none !important;
  }

  /* Hamburger */

  #menu-toggle {
    display: inline-flex !important;
    position: static !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 8px !important;
    margin: 0 !important;
    flex: 0 0 42px !important;
    transform: none !important;
  }

  /* Dropdown menu ditempatkan di bawah navbar */

  #main-nav {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    position: static !important;
  }

  /* Judul berita hero diperkecil */

  #hero-featured-title,
  .hero-featured-copy h1,
  .hero-content h1 {
    font-size: clamp(22px, 6vw, 27px) !important;
    line-height: 1.25 !important;
    letter-spacing: -0.02em !important;
    margin: 12px 0 14px !important;
    max-width: 100% !important;
    overflow-wrap: break-word !important;
  }

  /* Deskripsi berita */

  #hero-featured-summary,
  .hero-featured-copy p,
  .hero-content p {
    font-size: 14px !important;
    line-height: 1.65 !important;
  }

  .hero-featured-grid,
  .hero-grid {
    padding-block: 26px !important;
    gap: 20px !important;
  }

  .hero-featured-actions .btn,
  .hero-actions .btn {
    font-size: 13px !important;
    padding: 11px 17px !important;
    min-height: 42px !important;
  }
}


/* INDOSAINSTECH MOBILE NAV FIX V4 */
@media (max-width: 960px) {
  #site-header #main-nav.is-open {
    display: flex !important;
    flex-direction: column !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    position: static !important;
    transform: none !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    width: 100% !important;
    padding: 12px !important;
    background: #ffffff !important;
    z-index: 110 !important;
  }
}

/* Judul hero untuk HP kecil */
@media (max-width: 600px) {
  main#main .hero h1,
  main#main .hero h2,
  #hero-featured-title,
  .hero-featured-copy h1 {
    font-size: clamp(21px, 6.2vw, 27px) !important;
    line-height: 1.25 !important;
    letter-spacing: -0.02em !important;
    overflow-wrap: break-word !important;
  }
}
