/* ===== Dian Indah Abadi — Footer ===== */
.dian-footer { background: #42594a; color: #dfe6da; font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-size: .9rem; }
.dian-footer a { color: inherit; text-decoration: none; transition: color .2s, opacity .2s; }
.dian-footer a:hover { color: #fff; }
.dian-footer-inner { padding: 0 clamp(20px, 5.4vw, 90px) 22px; }

/* consultation band */
.dian-footer-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 36px 0 44px; padding: 26px 32px; border-radius: 22px; background: #f6f1e7; color: #2b2d2a; }
.dian-footer-cta strong { display: block; margin-bottom: 4px; font-size: clamp(1.05rem, 1.7vw, 1.4rem); font-weight: 800; letter-spacing: -.02em; }
.dian-footer-cta span { color: #565b50; font-size: .9rem; line-height: 1.45; }
.dian-footer .dian-footer-cta-btn { flex: none; display: inline-flex; align-items: center; gap: 10px; padding: 14px 24px; border-radius: 999px; background: #42594a; color: #fff; font-weight: 700; white-space: nowrap; }
.dian-footer .dian-footer-cta-btn:hover { background: #2f4736; color: #fff; }

/* columns */
.dian-footer-grid { display: grid; grid-template-columns: 1.45fr 1fr 1.15fr 1.2fr 1.5fr; gap: 36px clamp(18px, 2.4vw, 34px); padding-bottom: 30px; }
.dian-footer-col { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-width: 0; }
.dian-footer-col h4 { margin: 0 0 8px; font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #fff; }
.dian-footer-col > a { font-size: .88rem; line-height: 1.4; opacity: .9; }
.dian-footer-col > a:hover { opacity: 1; }
.dian-footer-col > a em { font-style: normal; opacity: .7; }

.dian-footer-brand { display: flex; flex-direction: column; color: #fff !important; }
.dian-footer-brand strong { font-size: clamp(1.1rem, 1.7vw, 1.45rem); font-weight: 700; letter-spacing: .02em; line-height: 1.15; }
.dian-footer-brand span { font-size: .85rem; opacity: .9; }
.dian-footer-about p { margin: 4px 0 0; max-width: 32ch; font-size: .86rem; line-height: 1.6; color: #c9d4c4; }
.dian-footer-social { display: flex; gap: 10px; margin-top: 8px; }
.dian-footer .dian-footer-social a { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid rgba(255, 255, 255, .28); border-radius: 50%; }
.dian-footer .dian-footer-social a:hover { background: #f6f1e7; border-color: #f6f1e7; color: #42594a; }

.dian-footer-contact { gap: 12px; }
.dian-footer-contact a, .dian-footer-contact p { display: flex; gap: 12px; align-items: flex-start; margin: 0; font-size: .88rem; line-height: 1.5; opacity: .92; }
.dian-footer-contact svg { flex: none; margin-top: 2px; color: #b9c5b3; }
.dian-footer-contact small { display: block; margin-top: 2px; font-size: .76rem; color: #b9c5b3; }
.dian-footer-contact span { overflow-wrap: break-word; min-width: 0; }

/* trust badges */
.dian-footer-badges { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 22px 0; border-top: 1px solid rgba(255, 255, 255, .18); list-style: none; }
.dian-footer-badges li { padding: 7px 16px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 999px; font-size: .78rem; font-weight: 600; letter-spacing: .02em; color: #e8eee4; }

.dian-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .18); font-size: .78rem; color: #b9c5b3; }
.dian-footer-legal i { margin: 0 12px; font-style: normal; }

@media (max-width: 1400px) and (min-width: 1101px) {
  .dian-footer-grid { grid-template-columns: 1.35fr .8fr 1.05fr 1.05fr 1.65fr; }
  .dian-footer-contact a, .dian-footer-contact p { font-size: .84rem; }
}
@media (max-width: 1100px) {
  .dian-footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dian-footer-about { grid-column: 1 / -1; }
  .dian-footer-about p { max-width: 60ch; }
}
@media (max-width: 800px) {
  .dian-footer-cta { flex-direction: column; align-items: flex-start; padding: 24px 22px; }
  .dian-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 20px; }
  .dian-footer-contact { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .dian-footer-grid { grid-template-columns: minmax(0, 1fr); }
  .dian-footer-brand strong { font-size: 1.25rem; }
  .dian-footer .dian-footer-cta-btn { width: 100%; justify-content: space-between; }
  .dian-footer-badges li { font-size: .74rem; padding: 6px 12px; }
}
