/* BRAND COLOR */
:root { --brand:#0b4f92; }

/* NAVBAR */
.site-nav{background-color:var(--brand)}
.site-nav .navbar-nav .nav-link,
.site-nav .navbar-brand{color:#fff!important}
@media (min-width:992px){
  .site-nav .dropdown:hover>.dropdown-menu{display:block;margin-top:0}
}
.navbar .dropdown-menu{border-radius:.5rem}
.navbar .dropdown-item{padding:.5rem 1rem}

/* HERO / BANNERS */
.home-hero{max-height:520px;object-fit:cover}
.hero{position:relative;overflow:hidden}
.hero-img{width:100%;height:520px;object-fit:cover}
.hero-overlay{
  position:absolute;inset:0;display:flex;align-items:center;
  background:linear-gradient(90deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.15) 60%,rgba(0,0,0,0) 100%)
}

/* KEYNOTES */
.keynote-photo{
  width: 100%;
  aspect-ratio: 1 / 1;       /* portrait; try 3/4 or 1/1 if you prefer */
  object-fit: cover;
  object-position: 50% 25%;   /* tweak vertical focus (0% top … 100% bottom) */
  border-radius: .75rem;
  display: block;
}

/* TABLES */
.table-program thead th{background:#f3f6fb;border-bottom:1px solid #dbe3f0}
.table-program td,.table-program th{vertical-align:middle}
.table-topics thead th{background:#f8f9fb;border-bottom:1px solid #e6e9ef}
.table-topics td{padding:.9rem 0}
.table-topics ol{line-height:1.5}

/* Light badge */
.bg-brand-subtle{background-color:rgba(13,110,253,.08)} /* ex-bg-primary-subtle */

/* Cards */
.card .card-title{margin-bottom:.35rem}

/* CAROUSEL */
.carousel .carousel-item img{max-height:400px;object-fit:cover}

/* SPONSORS BAR */
.sponsors-strip{background:#f8fafc;border-top:1px solid #eef2f7}
.sponsor-img{
  height:148px;width:auto;object-fit:contain;
  filter:grayscale(10%);opacity:.95;
  transition:transform .15s ease,filter .15s ease,opacity .15s ease
}
.sponsor-img:hover{filter:none;opacity:1;transform:translateY(-2px)}
.sponsor-img.small{height:128px}
.sponsor-img.large{height:160px}
.sponsor-img.ufz{height:138px}

/* FOOTER */
.site-footer{background-color:var(--brand);color:#fff}
.site-footer h5,.site-footer h6{margin-bottom:.75rem}
.footer-link{display:block;color:#fff;text-decoration:none;padding:2px 0;transition:color .2s,opacity .2s}
.footer-link:hover,.footer-link:focus{color:#cfe5ff;text-decoration:underline}
.footer-link:focus-visible{outline:2px solid #fff;outline-offset:2px}
.footer-hr{border-color:rgba(255,255,255,.2)}

/* ALERT */
.alert-success{background:#e9f7ef;border-color:#cfe9da;color:#145a32}

/* CLICKABLE TILES */
.tile-link{display:block;text-decoration:none}
.tile-card{position:relative;overflow:hidden;border-radius:.75rem;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.tile-card img{width:100%;height:320px;object-fit:cover;display:block;transition:transform .35s}
.tile-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.55) 0%,rgba(0,0,0,.05) 60%,rgba(0,0,0,0) 100%);
  display:flex;align-items:flex-end;justify-content:space-between;padding:16px 16px 18px
}
.tile-title{color:#fff;font-weight:700;line-height:1.2;font-size:1.15rem;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.tile-sub{font-weight:600}
.tile-arrow{color:#fff;font-size:1.4rem;transform:translateX(0);transition:transform .2s,opacity .2s;opacity:.95}
.tile-card:hover img{transform:scale(1.05)}
.tile-card:hover .tile-arrow{transform:translateX(6px)}

/* PHONE ≤576 AND TABLET 577–991 */
@media (max-width:576px){
  .home-hero{max-height:300px}
  .keynote-photo{height:220px}
  .carousel .carousel-item img{max-height:260px}
  .sponsor-img{height:94px}
  .sponsor-img.small{height:64px}
  .sponsor-img.large{height:98px}
  .sponsor-img.ufz{height:82px}
  .site-footer .row>[class*="col-"]{padding-right:.5rem;padding-left:.5rem}
  .hero-img{height:320px}
  .hero-overlay{position:static;background:var(--brand);padding:1rem 1rem 1.25rem}
  .hero-title{font-size:1.6rem;line-height:1.2;margin-bottom:.5rem}
  .hero-subtitle{font-size:1rem;margin-bottom:.5rem}
  .hero-btn{padding:.5rem .9rem;font-size:1rem}
  .cta-group{gap:.6rem}
}
@media (min-width:577px) and (max-width:991px){
  .hero-img{height:420px}
  .hero-title{font-size:2rem}
  .hero-subtitle{font-size:1.1rem}
}
/* Slightly tighter list-group in quick facts */
.list-group-item { padding-top:.55rem; padding-bottom:.55rem; }

.card-img-top {
  height: 260px;       /* default maybe 160px */
  object-fit: cover;   /* crop nicely */
}
@media (min-width: 992px) {
  .card-img-top { height: 320px; }
}

/* Stepper: pill chips with numbers */
#stepper .nav-link {
  border-radius: 999px;
  padding: .4rem .9rem;
  font-weight: 500;
}
#stepper .nav-link.active {
  box-shadow: 0 0 0 .15rem rgba(13,110,253,.15);
}

/* Section headings spacing */
.step h2 { display:flex; align-items:center; gap:.5rem; }
.step h2::before {
  content: attr(data-step-label);
  display:inline-grid; place-items:center;
  width: 1.6rem; height: 1.6rem;
  font-size:.9rem; font-weight:600;
  border-radius:999px;
  background:#0d6efd; color:#fff;
}

/* Step fade-in (no JS libs) */
.step { opacity:1; transition: opacity .18s ease; }
.step.d-none { display:none; opacity:0; }

/* Card cleanup */
#reg-form.card { border-radius: .75rem; }
#reg-form .card-body { padding: 1.25rem; }
@media (min-width: 992px){
  #reg-form .card-body { padding: 1.5rem; }
}

/* Buttons spacing */
.next-step, .prev-step { min-width: 7rem; }

/* Tighten tables a bit on large screens */
@media (min-width: 992px){
  .table-sm td, .table-sm th { padding-top:.55rem; padding-bottom:.55rem; }
}

