/* Home: banner acara memakai tipografi dan warna APINDO yang sudah ada. */
.home-page .header { background: var(--paper); border-bottom: 1px solid var(--line); }
.upcoming {
  margin-top: 76px;
  padding: clamp(3rem, 5vw, 6rem) var(--pad) clamp(3rem, 5vw, 5rem);
  min-height: min(820px, calc(100svh - 76px));
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(2rem, 5vw, 6rem);
  align-items: center;
  background: var(--ink);
  color: var(--paper);
}
.upcoming__eyebrow { margin: 0 0 2rem; font-size: 0.8rem; color: var(--blue-light); }
.upcoming__eyebrow > span { padding: 0 0.5rem; }
.upcoming h1 {
  max-width: 13ch;
  margin: 0;
  font-size: clamp(2.7rem, 4.8vw, 5rem);
  line-height: 0.98;
  font-weight: 600;
  letter-spacing: -0.05em;
}
.upcoming__dot { color: var(--blue-light); }
.upcoming__theme { margin: 1.3rem 0; font: italic 400 clamp(1.8rem, 2.7vw, 2.8rem)/1.1 var(--f-serif); color: var(--blue-light); }
.upcoming__intro { max-width: 51ch; margin: 0; color: #c1ccd7; font-size: clamp(0.95rem, 1.15vw, 1.08rem); line-height: 1.65; }
.upcoming__details { display: grid; grid-template-columns: 1.2fr 1fr 0.8fr; gap: 1.2rem; margin: 2rem 0; padding-top: 1.3rem; border-top: 1px solid var(--line-inv); }
.upcoming__details dt { font-size: 0.73rem; color: #a2b7ca; margin-bottom: 0.4rem; }
.upcoming__details dd { margin: 0; font-size: 0.87rem; line-height: 1.45; }
.upcoming__details dd > span[data-banner-time] { display: block; font-size: 0.8rem; color: #a2b7ca; margin-top: 0.25rem; }
.upcoming__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.upcoming__actions .btn { background: var(--paper); color: var(--ink); --h: 3.3rem; font-size: 0.95rem; padding: 0 1.45rem; }
.upcoming__actions .btn:hover { color: var(--white); }
.upcoming__actions .btn > span { display: flex; gap: 1.5rem; align-items: center; }
.upcoming__agenda { font-size: 0.85rem; padding: 0.6rem 0; border-bottom: 1px solid #667d93; }
.upcoming__agenda span { padding-left: 0.7rem; }
.upcoming__visual { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; align-self: center; }
.upcoming__speaker { margin: 0; min-width: 0; }
.upcoming__speaker--next { padding-top: 4.5rem; }
.upcoming__portrait { overflow: hidden; background: #173d5c; border-radius: 160px 160px 0 0; aspect-ratio: 0.65; }
.upcoming__speaker--next .upcoming__portrait { background: #245574; }
.upcoming__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; }
.upcoming__speaker:first-child .upcoming__portrait img { object-position: left bottom; }
.upcoming__speaker figcaption { margin-top: 1rem; line-height: 1.4; }
.upcoming__speaker figcaption strong { display: block; font-size: clamp(0.9rem, 1.2vw, 1.15rem); font-weight: 600; }
.upcoming__speaker figcaption > span { display: block; color: #a2b7ca; font-size: 0.75rem; margin-top: 0.2rem; }
.upcoming__note { grid-column: 1 / -1; margin: 0.5rem 0 0; text-align: right; font-size: 0.8rem; color: #a2b7ca; }
.upcoming__note em { font-size: 1.3rem; color: var(--blue-light); }
.home-news { padding-bottom: 0; }
.home-news__head { border-top: 1px solid var(--line); padding-top: 1.25rem; display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.home-news h2 { margin: 1.2rem 0 0; font-size: clamp(2.6rem, 5vw, 4.2rem); letter-spacing: -0.045em; line-height: 1; font-weight: 500; }
.home-news__empty { max-width: 52ch; color: var(--muted); margin: 2rem 0 0; }
.home-news__empty a { color: var(--blue-deep); text-decoration: underline; text-underline-offset: 3px; }
.home-section-link { display: inline-block; border-bottom: 1px solid var(--ink); padding-bottom: 0.4rem; font-size: 0.9rem; }
.home-section-link > span { margin-left: 1.2rem; }
.articles > .home-section-link { margin-top: 2rem; }
.home-news__item { border-bottom: 1px solid var(--line); padding: 1.5rem 0; }
.home-news__item h3 { font-size: clamp(1.5rem, 3vw, 2.5rem); line-height: 1.1; margin: 0.5rem 0; }
.has-upcoming-banner .proto-tag { left: auto; right: 1rem; }
@media (max-width: 1100px) {
  .home-page .nav { gap: 0; }
  .home-page .nav a { font-size: 0.85rem; padding: 0.5rem 0.6rem; }
  .upcoming { gap: 2rem; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); }
  .upcoming__details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .upcoming__details > div:last-child { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .upcoming { margin-top: 72px; grid-template-columns: 1fr; padding-top: 2.5rem; gap: 2.5rem; }
  .upcoming h1 { font-size: clamp(2.5rem, 9vw, 4rem); max-width: 15ch; }
  .upcoming__eyebrow { margin-bottom: 1.5rem; font-size: 0.72rem; }
  .upcoming__eyebrow > span { padding: 0 0.15rem; }
  .upcoming__intro { max-width: 100%; }
  .upcoming__visual { max-width: 560px; width: 100%; gap: 1rem; }
  .upcoming__portrait { aspect-ratio: 0.82; }
  .upcoming__speaker--next { padding-top: 2rem; }
  .upcoming__note { display: none; }
  .home-news__head { align-items: start; flex-direction: column; gap: 1.5rem; }
}
@media (max-width: 380px) {
  .upcoming__actions { align-items: start; flex-direction: column; }
  .upcoming__actions .btn { padding: 0 1.1rem; font-size: 0.85rem; }
}
