@font-face {
  font-family: "Source-Serif-Pro";
  font-style: bold;
  src: url("../fonts/source-serif-pro/SourceSerifPro-Bold.ttf");
}

@font-face {
  font-family: "Lato";
  font-style: normal;
  src: url("../fonts/Lato/Lato-Regular.ttf");
}

:root {
  --bg-body: #f5f5f5;
  --bg-body-dark: #eaecf0;
  --color-border: #e1e1e1;
  --bg-white: #ffffff;
  --link-active: #d6ac6e;
  --water-mater: #10ae4f;
  --water-mater-light: #fcdb58;
  --water-mater-warning: #ffa000;
  --water-mater-danger: #e03d3d;
  --water-mater-extreem: #34005c;
  --water-mater-blue: #5197d8;
  --water-mater-brown: #d6ac6e;
  --rain-cloud: #f5f5f5;
  --rain-light: #88caf9;
  --rain-medium: #fad493;
  --rain-heavy: #f7b57b;
  --rain-very-heavy: #f59896;
  --rain-ekstream: #a999b5;
  --bg-hover: #a3d4f7;
  --blue-btn: #0094ff;
  --ews-normal: #2338f1;
  --ews-siaga: #25ea13;
  --ews-waspada: #f9fe0d;
  --ews-awas: #f6a611;
  --ews-bahaya: #d31515;
  --water-normal: #0169cd;
  --bg-status-water: #f6ecde;
  --device-on: #ecfdf3;
  --device-off: #fef3f2;
  --bg-device-on: #d1fadf;
  --bg-device-off: #fee4e2;
  --number-on: #039855;
  --number-off: #f04438;
}

.hero {
  height: 100vh;
  background-image: url(../img/hero_image.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  margin-top: 0;
}

.hero .hero-title {
  font-family: Source-Serif-Pro;
  font-size: 40px;
}

.hero .hero-description {
  font-family: Lato;
  font-size: 16px;
}

.hero .container-card {
  bottom: -81px;
}

#cardDashboard,
#cardEWS,
#cardWaterBalance {
  cursor: pointer;
}

.hero .container-card {
  gap: 32px;
}

.hero .card-nav-hero {
  border-radius: 12px;
}

.hero .cards {
  width: 402.67px;
  height: 163px;
  padding: 24px;
  background-color: var(--bg-white);
}

.hero .cards img {
  width: 70px;
  height: 70px;
}

.hero .cards a {
  color: var(--link-active);
  font-family: Lato;
  font-size: 24px;
}

.about-section {
  background-color: var(--bg-body);
  padding-top: 130px;
  padding-bottom: 102.5px;
}

.about-section .info-text-container {
  padding-top: 61.5px;
}

.about-section h2.information-title {
  color: var(--link-active);
  font-family: Source-Serif-Pro;
}

.about-section .list-informasi {
  font-family: Lato;
  font-size: 20px;
}

.about-section .info-text-container img {
  width: 32px;
  height: 32px;
}

.about-section .map-about img {
  width: 591px;
  height: 415.66px;
}

.about-section .bg-gradient-map {
  background: linear-gradient(
    282.05deg,
    var(--link-active) -60.27%,
    rgba(214, 172, 110, 0) 77.2%
  );
  /* width: 121%; */
  width: calc(100% + 110px);
  height: 253px;
  position: absolute;
  bottom: 0px;
  z-index: -1;
}

.overview-device-section {
  background-color: var(--bg-body);
  padding-top: 100px;
  padding-bottom: 68px;
}

.overview-device-heading {
  color: var(--link-active);
  font-family: Source-Serif-Pro;
  font-size: 36px;
}
.overview-device-section .device-decription {
  font-family: Lato;
  font-size: 20px;
  margin-bottom: 50px;
}

/* .overview-device-section .container-cards-device {
  gap: 32px;
} */

.overview-device-section .card-device {
  background-color: var(--bg-white);
  height: 138px;
  margin-bottom: 12px;
  /* width: 402px; */
  padding: 18px;
  gap: 14px;
  border-radius: 12px !important;
}

.overview-device-section .card-device:hover {
  box-shadow: 0px 16px 32px -8px #0c0c0d66;
}

.overview-device-section .count-device {
  background-color: #fdf2df;
  color: var(--link-active);
  padding: 15px 21.5px;
  font-family: Lato;
  font-weight: 700;
  font-size: 40px;
}

.wadahtotal {
  width: 89.41px;
}

.overview-device-section .device-name {
  font-family: Lato;
  font-size: 24px;
}

.overview-device-section .container-total {
  gap: 12px;
}

.overview-device-section .count-on {
  background-color: var(--device-on);
  max-width: 116px;
  height: 36px;
  padding-left: 12px;
  padding-right: 17px;
  padding-top: 6px;
  padding-bottom: 6px;
}

.overview-device-section .total-on {
  background-color: var(--bg-device-on);
  padding: 2.5px 7px;
  font-size: 16px;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  color: var(--number-on);
  margin-left: 16px;
}

.overview-device-section .count-off {
  background-color: var(--device-off);
  max-width: 116px;
  height: 36px;
  padding-left: 12px;
  padding-right: 15px;
}

.overview-device-section .total-off {
  background-color: var(--bg-device-off);
  padding: 2.5px 7px;
  font-size: 16px;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  color: var(--number-off);
  margin-left: 16px;
}

.update-informasi {
  padding-bottom: 100px;
}

.update-informasi h2.update-informasi-title {
  color: var(--link-active);
  font-family: Source-Serif-Pro;
  font-size: 36px;
  padding-top: 100px;
  margin-bottom: 50px;
}

.update-informasi .update-informasi-row {
  gap: 54px;
}

.status-normal {
  background-color: var(--water-normal);
  color: var(--bg-white);
}

.status-standby {
  background-color: var(--water-normal);
  color: var(--bg-white);
}

.status-surplus {
  background-color: var(--water-mater);
  color: var(--bg-white);
}

.update-informasi .parent-accordion-container {
  width: 590px;
  gap: 17px;
}

.badge-meter-normal {
  background-color: var(--ews-normal);
  color: white;
}
.badge-meter-siaga {
  background-color: var(--ews-siaga);
  color: white;
}
.badge-meter-waspada {
  background-color: var(--ews-waspada);
  color: white;
}
.badge-meter-awas {
  background-color: var(--ews-awas);
  color: white;
}
.badge-meter-bahaya {
  background-color: var(--ews-bahaya);
  color: white;
}
.badge-meter-surplus {
  background-color: var(--ews-siaga);
  color: white;
}
.badge-meter-defisit {
  background-color: var(--ews-bahaya);
  color: white;
}

button.parent-accordion {
  font-weight: 500;
}

/* .parent-accordion-container .accordion-item {
  border: 1px solid #333;
} */

.parent-accordion-container .accordion-item:not(.accordion-item-collapse) {
  border: 1px solid var(--bg-white);
  margin-bottom: 5px;
  border-radius: 8px;
}

.update-informasi .status-water {
  height: 34px;
  padding: 6px 16px;
  font-family: Lato;
  font-size: 14px;
  text-transform: capitalize;
}

.update-informasi .sub-accordion-container {
  padding: 4px 8px 8px 8px;
  background-color: var(--bg-body);
  gap: 4px;
  display: flex;
  flex-direction: column;
}

.update-informasi .sub-accordion-container h2 {
  height: 40px;
}

.accordion-button:focus {
  box-shadow: none;
}

.update-informasi .sub-accordion-button {
  background-color: var(--link-active);
  margin-bottom: 4px;
  padding-top: 8px;
  padding-bottom: 8px;
  font-weight: 500;
}

.accordion-button.parent-accordion:not(.collapsed) {
  background-color: var(--bg-white);
}

.accordion-button.sub-accordion-button:not(.collapsed)::after {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M6 9L12 15L18 9" stroke="%23101828" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M6 9L12 15L18 9" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>');
  width: 24px;
  height: 24px;
  background-size: cover;
  color: #fff;
}

.accordion-button.sub-accordion-button::after {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M6 9L12 15L18 9" stroke="%23101828" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M6 9L12 15L18 9" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>');
  width: 24px;
  height: 24px;
  background-size: cover;
  color: #fff;
}

.accordion-button.parent-accordion:not(.collapsed)::after {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><rect width="24" height="24" rx="12" fill="%23FFF0D6"/><path d="M5 12H19" stroke="%23D6AC6E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>');
  width: 24px;
  height: 24px;
  background-size: 24px;
}

.accordion-button.parent-accordion::after {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><rect width="24" height="24" rx="12" fill="%23FFF0D6"/><path d="M12 5V19M5 12H19" stroke="%23D6AC6E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>');
  width: 24px;
  height: 24px;
  background-size: 24px;
}

.accordion-button:not(.collapsed) {
  box-shadow: none;
}

.update-informasi .container-status {
  background-color: var(--bg-status-water);
  height: 36px;
  padding-top: 1px;
  padding-bottom: 1px;
  padding-right: 1px;
  border-radius: 6px;
}

.update-informasi .container-status .wilayah {
  font-weight: 500;
}

.update-informasi #map {
  height: 635px;
  width: 635px;
}

footer {
  background-image: url(../img/Union.png);
  /* height: 405px; */
  background-repeat: no-repeat;
  background-position: top;
  background-size: cover;
  padding-top: 131px;
}

footer .balai-wilayah {
  font-size: 20px;
  font-family: Lato;
}

footer .logo-footer-pupr {
  margin-bottom: 16px;
}

footer .pupr-name {
  font-size: 14px;
  font-family: Lato;
  margin-bottom: 16px;
}

footer .list-menu-footer {
  font-family: Lato;
  list-style: none;
  font-size: 14px;
}

footer .parent-list-menu .list-menu-footer:nth-child(3),
footer .parent-list-menu .list-menu-footer:nth-child(2) {
  margin-bottom: 16px;
}

footer .menu-title-footer {
  font-family: Lato;
  font-size: 20px;
  margin-bottom: 20px;
}

footer .navigasi-footer {
  font-family: Lato;
}

footer .menu-title-footer a {
  font-family: Lato;
}

footer .alamat-footer-title {
  font-family: Lato;
  font-size: 20px;
  margin-bottom: 20px;
}

footer .alamat-footer {
  font-family: Lato;
  font-size: 14px;
}

footer .copyright hr.garis-copyright {
  height: 0.1px;
}

/* footer .copyright {
  padding-top: 32px;
} */

.footer-atas {
  padding-bottom: 22px;
}

/* footer .container-menu-footer {
} */

/* footer .container-alamat {
  width: auto;
} */

footer .copyright p {
  padding-top: 24px;
  padding-bottom: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

@media screen and (max-width: 1400px) {
  .overview-device-section .card-device .count-device {
    font-size: 35px;
  }

  .overview-device-section .card-device .device-name {
    font-size: 20px;
  }

  .overview-device-section .container-total {
    gap: 10px;
  }

  .overview-device-section .count-on {
    max-width: 116px;
    height: 36px;
    padding-left: 10px;
    padding-right: 14px;
    padding-top: 6px;
    padding-bottom: 6px;
  }

  .overview-device-section .total-on {
    padding: 2.5px 7px;
    border-radius: 8px;
    margin-left: 12px;
  }

  .overview-device-section .count-off {
    max-width: 116px;
    height: 36px;
    padding-left: 10px;
    padding-right: 13px;
  }

  .overview-device-section .total-off {
    padding: 2.5px 7px;
    border-radius: 8px;
    margin-left: 12px;
  }

  footer .container-menu-footer {
    align-items: center;
  }
}

/* Mobile Responsive - Starting from 320px */
@media screen and (min-width: 320px) and (max-width: 767px) {
  /* Navbar */
  .navbar {
    padding: 0.5rem 0 !important;
  }

  .navbar .container-fluid {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .navbar-brand {
    margin-right: 0.5rem;
  }

  .navbar-brand img {
    height: 50px !important;
  }

  .navbar-toggler {
    border: 1px solid rgba(0, 0, 0, 0.1);
    padding: 0.25rem 0.5rem;
  }

  .navbar-collapse {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
  }

  .navbar .nav-item {
    margin-bottom: 0.5rem;
  }

  .navbar .nav-item .nav-link {
    font-size: 14px;
    padding: 0.5rem 0.75rem;
  }

  .navbar .nav-item.ms-3 {
    margin-left: 0 !important;
    margin-top: 0.5rem;
  }

  .navbar .nav-item.ms-3 .btn {
    font-size: 12px;
    padding: 3px 8px;
    width: 100%;
    justify-content: center;
  }

  /* Hero Section */
  .hero {
    height: auto;
    min-height: 60vh;
    padding: 100px 1rem 120px;
    margin-top: 70px !important;
  }

  .hero .hero-title {
    font-size: 24px !important;
    width: 100% !important;
    margin-bottom: 1rem !important;
    line-height: 1.3;
  }

  .hero .hero-description {
    font-size: 14px !important;
    width: 100% !important;
    line-height: 1.5;
  }

  .hero .hero-description br {
    display: none;
  }

  .hero .container-card {
    position: relative !important;
    bottom: auto !important;
    flex-direction: column;
    gap: 16px !important;
    margin-top: 2rem;
    padding: 0 1rem;
    width: 100%;
  }

  .hero .cards {
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
    min-height: 120px;
    padding: 16px !important;
  }

  .hero .cards img {
    width: 50px !important;
    height: 50px !important;
  }

  .hero .cards a {
    font-size: 16px !important;
    margin-top: 0.75rem !important;
  }

  /* About Section */
  .about-section {
    padding-top: 60px !important;
    padding-bottom: 40px !important;
  }

  .about-section .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .about-section .info-text-container {
    padding-top: 0 !important;
    margin-bottom: 2rem;
  }

  .about-section h2.information-title {
    font-size: 24px !important;
    margin-bottom: 1.5rem !important;
  }

  .about-section .list-informasi {
    font-size: 14px !important;
  }

  .about-section .info-text-container img {
    width: 24px !important;
    height: 24px !important;
  }

  .about-section .d-flex.gap-3 {
    gap: 0.75rem !important;
  }

  .about-section .map-about {
    margin-top: 1rem;
  }

  .about-section .map-about img {
    width: 100% !important;
    height: auto !important;
    max-width: 100%;
  }

  .about-section .bg-gradient-map {
    width: 100% !important;
    height: 150px !important;
  }

  /* Device Section */
  .overview-device-section {
    padding-top: 50px !important;
    padding-bottom: 40px !important;
  }

  .overview-device-section .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .overview-device-heading {
    font-size: 24px !important;
  }

  .overview-device-section .device-decription {
    font-size: 14px !important;
    margin-bottom: 2rem !important;
  }

  .overview-device-section .cards-alat-terinstalasi {
    gap: 1rem !important;
  }

  .overview-device-section .kolom-device {
    margin-bottom: 1rem;
  }

  .overview-device-section .card-device {
    height: auto !important;
    min-height: 120px;
    padding: 14px !important;
    margin-bottom: 0;
    width: 100%;
  }

  .overview-device-section .count-device {
    font-size: 28px !important;
    padding: 10px 16px !important;
  }

  .wadahtotal {
    width: 70px !important;
  }

  .overview-device-section .device-name {
    font-size: 16px !important;
  }

  .overview-device-section .count-on,
  .overview-device-section .count-off {
    max-width: 90px !important;
    height: 32px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    font-size: 12px;
  }

  .overview-device-section .total-on,
  .overview-device-section .total-off {
    width: 20px !important;
    height: 20px !important;
    font-size: 12px !important;
    margin-left: 8px !important;
  }

  /* Update Informasi Section */
  .update-informasi {
    padding-bottom: 50px !important;
  }

  .update-informasi .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .update-informasi h2.update-informasi-title {
    font-size: 24px !important;
    padding-top: 50px !important;
    margin-bottom: 2rem !important;
  }

  .update-informasi .update-informasi-row {
    flex-direction: column !important;
    gap: 1.5rem !important;
  }

  .update-informasi .list-accordions {
    width: 100%;
  }

  .update-informasi .parent-accordion-container {
    width: 100% !important;
    gap: 12px !important;
  }

  .update-informasi #map {
    height: 300px !important;
    width: 100% !important;
    margin-top: 1rem;
  }

  .update-informasi .status-water {
    font-size: 12px !important;
    padding: 4px 12px !important;
    height: auto !important;
  }

  .update-informasi .container-status {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  .update-informasi .wilayah {
    font-size: 12px !important;
  }

  /* Footer */
  footer {
    padding-top: 60px !important;
  }

  .footer-atas {
    flex-direction: column !important;
    gap: 2rem;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  footer .col-lg-4 {
    width: 100% !important;
    margin-bottom: 1.5rem;
  }

  footer .logo-footer-pupr {
    width: 45px !important;
    height: 45px !important;
    margin-bottom: 12px !important;
  }

  footer .balai-wilayah {
    font-size: 16px !important;
  }

  footer .pupr-name {
    font-size: 12px !important;
  }

  footer .menu-title-footer {
    font-size: 18px !important;
  }

  footer .list-menu-footer {
    font-size: 12px !important;
  }

  footer .alamat-footer-title {
    font-size: 18px !important;
  }

  footer .alamat-footer {
    font-size: 12px !important;
  }

  footer .container-alamat {
    justify-content: flex-start !important;
  }
}

  /* Tablet Responsive - Starting from 768px */
@media screen and (min-width: 768px) and (max-width: 1023px) {
  /* Navbar - Keep hamburger menu for tablet */
  .navbar {
    padding: 0.5rem 0 !important;
  }

  .navbar .container-fluid {
    padding-left: 2rem !important;
    padding-right: 2rem !important;
  }

  .navbar-brand {
    margin-right: 0.5rem;
  }

  .navbar-brand img {
    height: 60px !important;
  }

  .navbar-toggler {
    border: 1px solid rgba(0, 0, 0, 0.1);
    padding: 0.25rem 0.5rem;
  }

  .navbar-collapse {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
  }

  .navbar .nav-item {
    margin-bottom: 0.5rem;
  }

  .navbar .nav-item .nav-link {
    font-size: 15px;
    padding: 0.5rem 0.75rem;
  }

  .navbar .nav-item.ms-3 {
    margin-left: 0 !important;
    margin-top: 0.5rem;
  }

  .navbar .nav-item.ms-3 .btn {
    font-size: 13px;
    padding: 4px 10px;
    width: 100%;
    justify-content: center;
  }

  /* Hero Section */
  .hero {
    height: auto;
    min-height: 70vh;
    padding: 120px 2rem 140px;
    margin-top: 80px !important;
  }

  .hero .hero-title {
    font-size: 32px !important;
    width: 90% !important;
  }

  .hero .hero-description {
    font-size: 15px !important;
    width: 90% !important;
  }

  .hero .container-card {
    flex-wrap: wrap;
    gap: 20px !important;
    padding: 0 2rem;
  }

  .hero .cards {
    width: calc(50% - 10px) !important;
    max-width: 300px;
    height: 140px !important;
    padding: 20px !important;
  }

  .hero .cards img {
    width: 60px !important;
    height: 60px !important;
  }

  .hero .cards a {
    font-size: 18px !important;
  }

  /* About Section */
  .about-section {
    padding-top: 100px !important;
    padding-bottom: 60px !important;
  }

  .about-section .container {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .about-section h2.information-title {
    font-size: 28px !important;
  }

  .about-section .list-informasi {
    font-size: 16px !important;
  }

  .about-section .info-text-container img {
    width: 28px !important;
    height: 28px !important;
  }

  .about-section .map-about img {
    width: 100% !important;
    height: auto !important;
    max-width: 100%;
  }

  .about-section .bg-gradient-map {
    width: calc(100% + 60px) !important;
    height: 200px !important;
  }

  /* Device Section */
  .overview-device-section .container {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .overview-device-heading {
    font-size: 28px !important;
  }

  .overview-device-section .device-decription {
    font-size: 16px !important;
  }

  .overview-device-section .card-device {
    height: 130px !important;
  }

  .overview-device-section .count-device {
    font-size: 32px !important;
  }

  .overview-device-section .device-name {
    font-size: 18px !important;
  }

  /* Update Informasi Section */
  .update-informasi .container {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .update-informasi h2.update-informasi-title {
    font-size: 28px !important;
    padding-top: 70px !important;
  }

  .update-informasi .update-informasi-row {
    gap: 2rem !important;
  }

  .update-informasi .parent-accordion-container {
    width: 100% !important;
    max-width: 500px;
  }

  .update-informasi #map {
    height: 450px !important;
    width: 100% !important;
    max-width: 500px;
  }

  /* Footer */
  footer .container-fluid {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .footer-atas {
    padding-left: 2rem !important;
    padding-right: 2rem !important;
  }
}

@media screen and (min-width: 4815px) {
  .hero-title {
    font-size: 80px !important;
  }

  .hero-description {
    font-size: 32px !important;
  }

  #cardDashboard a,
  #cardEWS a,
  #cardWaterBalance a {
    font-size: 48px !important;
  }

  #cardDashboard,
  #cardEWS,
  #cardWaterBalance {
    width: 805px;
    height: 336px;
    padding: 48px;
  }

  #cardDashboard img,
  #cardEWS img,
  #cardWaterBalance img {
    width: 140px;
    height: 140px;
  }

  .information-title {
    font-size: 72px !important;
  }

  .list-informasi {
    font-size: 40px !important;
  }

  .about-section .info-text-container img {
    width: 64px;
    height: 64px;
  }
  .about-section .container {
    max-width: 2640px;
  }

  .about-section .map-about img {
    width: 1182px !important;
    height: 830.66px !important;
  }

  .about-section .bg-gradient-map {
    height: 50% !important;
  }

  .overview-device-heading {
    font-size: 72px;
  }

  .overview-device-section .container {
    max-width: 2450px;
  }

  .device-decription {
    font-size: 40px !important;
  }

  .container-total {
    font-size: 18px;
  }

  .total-on,
  .total-off {
    font-size: 18px !important;
  }

  .cards-alat-terinstalasi {
    zoom: 2;
  }

  .update-informasi {
    zoom: 2;
  }

  footer {
    zoom: 2;
  }
}
