/* Classic light green reference layout */
body {
  font-weight: 400;
}

.brand .brand-copy strong,
.section-heading h2,
.feature-card h3,
.date-panel h2,
.date-panel h3,
.visual-panel h3,
.topic-card strong,
.site-footer h2 {
  font-weight: 600;
}

.brand .brand-copy small,
.banner-detail,
.overview-intro > p:last-child,
.conference-stats span,
.gallery-item figcaption {
  font-weight: 400;
}

.header-action,
.primary-nav > a,
.nav-group > button,
.button {
  font-weight: 500;
}

.eyebrow,
.countdown-grid span,
.event-strip span,
.card-number,
.timeline time,
.visual-orbit span,
.topic-card span,
.sponsor-row span {
  font-weight: 500;
}

.banner-title,
.hero h1.banner-title {
  font-weight: 600;
}

.banner-kicker,
.banner-theme,
.countdown-panel > p,
.visual-label,
.signal-card,
.orb-core {
  font-weight: 600;
}

@media (min-width: 1121px) {
  .hero.ai-hero {
    min-height: 740px;
    margin-bottom: 155px;
    overflow: visible;
  }

  .hero-carousel-stage {
    height: 624px;
    aspect-ratio: auto;
  }

  .hero-slide--intro .hero-inner {
    min-height: 624px;
  }

  .hero-countdown-wrap {
    position: absolute;
    left: 50%;
    bottom: -155px;
    width: min(820px, calc(100vw - 48px));
    margin: 0;
    padding-bottom: 0;
    transform: translateX(-50%);
  }
}

/* Mobile hero: prioritize the conference message over decorative artwork. */
@media (max-width: 760px) {
  .hero.ai-hero {
    padding-top: 70px;
  }

  .hero-carousel-stage {
    height: 520px;
    margin-bottom: 64px;
    background: var(--ku-green-deep);
  }

  .hero-slide--intro .hero-inner {
    z-index: 3;
    min-height: 100%;
    padding: 0;
  }

  .hero-slide--intro .hero-ai-visual {
    position: absolute;
    inset: 0;
    min-height: 0;
    display: grid;
    margin: 0;
    place-items: end center;
    padding-bottom: 14px;
    pointer-events: none;
  }

  .hero-slide--intro .hero-ai-visual::before {
    display: none;
  }

  .hero-slide--intro .visual-label,
  .hero-slide--intro .signal-card {
    display: block;
    width: clamp(116px, 34vw, 132px);
    padding: 6px 8px;
    font-size: clamp(0.43rem, 1.9vw, 0.5rem);
    line-height: 1.28;
    letter-spacing: 0.055em;
    border-radius: 8px;
  }

  .hero-slide--intro .visual-label span,
  .hero-slide--intro .signal-card span {
    margin-right: 4px;
    white-space: nowrap;
  }

  .hero-slide--intro .label-right {
    top: auto;
    right: 14px;
    bottom: 164px;
  }

  .hero-slide--intro .card-one {
    left: 14px;
    bottom: 105px;
  }

  .hero-slide--intro .card-two {
    right: 14px;
    bottom: 57px;
  }

  .hero-slide--intro .card-three {
    left: clamp(72px, 26vw, 100px);
    bottom: 7px;
  }

  .hero-slide--intro .ai-orb {
    width: clamp(160px, 46vw, 190px);
    opacity: 0.92;
  }

  .hero-slide--banner img {
    object-fit: cover;
    object-position: center;
  }

  .hero-slide--banner::after {
    background: linear-gradient(
      180deg,
      rgba(0, 54, 53, 0.34) 0%,
      rgba(0, 54, 53, 0.68) 58%,
      rgba(0, 54, 53, 0.86) 100%
    );
  }

  .banner-copy {
    top: 32px;
    right: 16px;
    left: 16px;
    width: auto;
    transform: none;
  }

  .banner-kicker {
    font-size: 0.75rem;
    line-height: 1.35;
  }

  .banner-title,
  .hero h1.banner-title {
    margin-top: 18px;
    font-size: clamp(1.8rem, 8.5vw, 2.15rem);
    line-height: 1.16;
  }

  .banner-title > span,
  .banner-title > strong {
    max-width: 100%;
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .banner-theme {
    margin-top: 20px;
    padding: 8px 10px;
    font-size: 0.75rem;
    line-height: 1.4;
  }

  .banner-detail {
    margin-top: 12px;
    font-size: 0.78rem;
    line-height: 1.45;
  }

  .hero-carousel-controls {
    bottom: -58px;
  }

  .hero-countdown-wrap {
    padding-bottom: 32px;
  }
}
