/* Shared responsive and accessibility corrections; preserve existing design. */
[hidden] { display: none !important; }
main, article, .row-main-text, .row-left, .service-row-item { min-width: 0; }
main p, main li, main dd, .contact-info { overflow-wrap: break-word; }
img, video { max-width: 100%; }
input, select, textarea { max-width: 100%; }
.btn-service-syarat, .faq-question, .filter-chip-btn, .custom-modal-close-new,
.drawer-close, .a11y-btn, .map-load-button { min-height: 44px; }
.custom-modal-close-new, #drawerCloseBtn { min-width: 44px; }
.service-row-item { scroll-margin-top: 7rem; }
.quality-table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.quality-table-scroll:focus-visible { outline: 3px solid #0055a4; outline-offset: 3px; }
.table-scroll-hint { margin: .5rem 0; color: var(--text-muted, #475569); font-size: .85rem; }
.content-update-note { max-width: 980px; margin: .7rem auto 1.25rem; padding: .6rem 1rem;
  color: var(--text-muted, #475569); font-size: .82rem; line-height: 1.6; text-align: center; }
.content-update-note time { white-space: nowrap; }
.faq-service-link { display: inline-flex; align-items: center; min-height: 44px;
  margin-top: .4rem; font-weight: 650; text-underline-offset: .18em; }
.map-iframe-wrapper { position: relative; }
.map-load-prompt { height: 100%; padding: 1.5rem; display: flex; flex-direction: column;
  justify-content: center; align-items: center; gap: .8rem; text-align: center;
  background: var(--bg-card, #f1f5f9); color: var(--text-main, #0f172a); }
.map-load-prompt > i { color: #0055a4; font-size: 2rem; }
.map-load-prompt p { max-width: 32rem; margin: 0; font-size: .9rem; line-height: 1.6; }
.map-load-button { padding: .75rem 1.25rem; border: 0; border-radius: .75rem;
  background: #0055a4; color: #fff; font: inherit; font-weight: 650; cursor: pointer; }
.connection-status { position: fixed; bottom: 1rem; left: 50%; transform: translateX(-50%);
  z-index: 9999; width: max-content; max-width: calc(100% - 2rem); padding: .8rem 1rem;
  border: 1px solid #cbd5e1; border-radius: .75rem; background: #fff; color: #0f172a;
  box-shadow: 0 4px 18px #0002; font-size: .88rem; text-align: center; }
.phone-feature-title { font-family: 'Outfit', sans-serif; font-weight: 700; }
@media (max-width: 640px) {
  .hero-top-status-badge { max-width: 100%; align-items: flex-start; }
  .hero-top-status-badge .status-indicator-dot { flex: 0 0 auto; margin-top: .4em; }
  .top-status-text { min-width: 0; white-space: normal; line-height: 1.5; }
  .btn-service-syarat { white-space: normal; line-height: 1.4; }
  .custom-modal-content-new { max-width: calc(100vw - 1rem); max-height: calc(100dvh - 1rem); overflow-y: auto; }
  .custom-modal-content-new h2 { overflow-wrap: break-word; }
  .content-update-note { text-align: left; padding-inline: 1rem; }
  .contact-item, .contact-info, .waktu-search-wrap { min-width: 0; }
  .map-iframe-wrapper { height: 340px !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .scroll-reveal, .phone-floating-container, .ticker-track { animation: none !important; transition: none !important; }
}
@media print {
  .connection-status, .map-load-prompt, .table-scroll-hint { display: none !important; }
  .quality-table-scroll { overflow: visible; }
}
