:root {
  /* Primary brand anchor — buttons, links, headers, active UI */
  --igf-blue: #0f70b7;
  --igf-blue-dark: #0e67ab;
  --igf-blue-muted: #0179e4;
  --igf-blue-soft: #e9f4fe;
  --igf-blue-surface: #d8ecfb;
  --igf-blue-surface-2: #edf6fe;

  /* ISH 2027 gradient palette (hero, sections, KV, decorative blues) */
  --igf-blue-g1: #0b5bd7;
  --igf-blue-g2: #0178e4;
  --igf-blue-g3: #0152c9;
  --igf-blue-g4: #0179e4;
  --igf-blue-g5: #1d9aed;

  --igf-yellow: #fcc300;
  --igf-yellow-dark: #e0ae00;
  --igf-text: #1a2430;
  --igf-text-muted: #5a6b7d;
  --igf-border: #c5dff2;
  --igf-shadow: 0 10px 36px rgba(1, 120, 228, 0.08);
  --igf-shadow-hover: 0 16px 40px rgba(11, 91, 215, 0.12);
  --igf-radius-lg: 16px;
  --igf-radius-md: 12px;
  --igf-shell-shine: radial-gradient(circle at 30% 22%, rgba(255, 255, 255, 0.38) 0%, transparent 42%);
  --igf-shell-blue: linear-gradient(155deg, var(--igf-blue-g5) 0%, var(--igf-blue-g2) 28%, var(--igf-blue) 52%, var(--igf-blue-g1) 78%, var(--igf-blue-g3) 100%);
  --igf-gradient-brand: linear-gradient(155deg, var(--igf-blue-g5) 0%, var(--igf-blue-g2) 24%, var(--igf-blue) 48%, var(--igf-blue-g1) 72%, var(--igf-blue-g3) 100%);
  --igf-gradient-section: linear-gradient(152deg, var(--igf-blue-g3) 0%, var(--igf-blue) 32%, var(--igf-blue-g2) 58%, var(--igf-blue-g5) 100%);
  --igf-gradient-section-alt: linear-gradient(152deg, var(--igf-blue-g1) 0%, var(--igf-blue) 38%, var(--igf-blue-g4) 72%, var(--igf-blue-g5) 100%);
  --igf-gradient-kv: linear-gradient(150deg, #cfe8fb 0%, #b4daf8 38%, #e2f2fd 100%);
  --igf-gradient-soft-surface: linear-gradient(188deg, #e8f4fd 0%, #f0f8fe 48%, #fbfdff 100%);
  --igf-gradient-materials: linear-gradient(198deg, #bfe3fa 0%, #d4effc 30%, #edf6fe 62%, #feffff 100%);
  /* Shared vertical title accent (H2 / section-heading) */
  --igf-title-accent-w: 5px;
  --igf-title-accent-h: 1.12em;
  --igf-title-accent-top: 0.12em;
  --igf-title-accent-radius: 3px;
  /* Premium inner / CMS editorial rhythm */
  --igf-cms-card-p-sm: 1.25rem;
  --igf-cms-card-p-md: 1.5rem;
  --igf-cms-card-p-lg: 2rem;
  --igf-cms-section-gap: clamp(2rem, 4.5vw, 3.25rem);
  --igf-cms-h2-content-gap: clamp(0.9rem, 2vw, 1.35rem);
  --igf-cms-card-gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

body {
  font-family: "Lato", "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--igf-text);
  background: #f4f7fb;
  line-height: 1.58;
  overflow-x: hidden;
}

body.has-hero-image .hero-main {
  background: var(--hero-bg-image) center/cover no-repeat;
}

body.no-hero-image .hero-main {
  background: var(--igf-blue);
}

.hero-main {
  color: #fff;
  min-height: 64vh;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  box-shadow: 0 14px 44px rgba(4, 22, 40, 0.16);
}

.hero-main__veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(98deg, rgba(1, 82, 201, 0.72) 0%, rgba(11, 91, 215, 0.46) 36%, rgba(15, 112, 183, 0.22) 68%, rgba(29, 154, 237, 0.14) 100%),
    radial-gradient(ellipse 75% 55% at 14% 82%, rgba(252, 195, 0, 0.14), transparent 52%);
}

/* Final hero artwork: avoid stacking a heavy second overlay on top of baked-in art direction */
.hero-main--bg-photo .hero-main__veil {
  background: linear-gradient(100deg, rgba(1, 82, 201, 0.38) 0%, rgba(11, 91, 215, 0.16) 38%, transparent 68%);
}

.hero-main__content {
  position: relative;
  z-index: 1;
  padding-bottom: 3.25rem !important;
}

@media (min-width: 992px) {
  .hero-main__content {
    padding-top: 3.5rem !important;
    padding-bottom: 4rem !important;
  }
}

.hero-kicker {
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.74rem;
  opacity: 0.95;
  margin-bottom: 0.95rem !important;
}

.hero-brand {
  margin-bottom: 1.35rem;
  max-width: min(340px, 88vw);
}

.hero-brand__logo {
  display: block;
  width: auto;
  max-width: 100%;
  height: clamp(56px, 10vw, 86px);
  object-fit: contain;
  filter: drop-shadow(0 4px 22px rgba(0, 0, 0, 0.35));
}

.hero-brand--fallback .hero-brand__logo {
  display: none;
}

.hero-brand__fallback {
  display: none;
  font-weight: 800;
  letter-spacing: 0.28em;
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  color: #fff;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.35);
}

.hero-brand--fallback .hero-brand__fallback {
  display: block;
}

.hero-title {
  font-size: clamp(2.35rem, 5.4vw, 3.95rem);
  font-weight: 800;
  line-height: 1.05;
  margin-bottom: 1.35rem;
  letter-spacing: -0.02em;
  text-shadow: 0 2px 28px rgba(0, 0, 0, 0.25);
}

.hero-main--bg-photo .hero-title {
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45), 0 1px 0 rgba(0, 0, 0, 0.2);
}

.hero-subtitle {
  font-size: clamp(1.12rem, 2.6vw, 1.48rem);
  font-weight: 450;
  margin-bottom: 1.55rem;
  max-width: 40rem;
  line-height: 1.48;
  opacity: 0.96;
}

.hero-subtitle--theme {
  font-size: clamp(1.08rem, 2.55vw, 1.42rem);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--igf-yellow);
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.35);
  max-width: 48rem;
  margin-bottom: 1.95rem;
  opacity: 1;
}

.hero-meta--facts {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.85rem;
  margin-bottom: 2.1rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.94);
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.32);
}

@media (min-width: 768px) {
  .hero-meta--facts {
    font-size: 1.14rem;
    gap: 0.55rem 1rem;
  }
}

.hero-meta__fact {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0;
  margin: 0;
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  backdrop-filter: none;
}

.hero-meta__ic {
  display: inline-flex;
  color: rgba(255, 230, 150, 0.98);
  font-size: 1.12rem;
  opacity: 0.98;
}

@media (min-width: 768px) {
  .hero-meta__ic {
    font-size: 1.2rem;
  }
}

.hero-meta__text {
  letter-spacing: 0.02em;
}

.hero-meta__sep {
  display: inline-block;
  width: 1px;
  height: 1.2rem;
  margin: 0 0.2rem;
  background: rgba(255, 255, 255, 0.32);
}

@media (max-width: 575px) {
  .hero-meta__sep {
    display: none;
  }

  .hero-meta__fact {
    flex: 1 1 100%;
  }
}

.hero-actions {
  row-gap: 1rem;
  column-gap: 1.05rem !important;
}

.btn-hero {
  padding: 0.88rem 1.55rem;
  font-weight: 650;
  border-radius: 999px;
  font-size: 1.02rem;
  letter-spacing: 0.01em;
}

.btn-hero--primary {
  padding-inline: 1.85rem;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.22);
}

.btn-hero--ghost {
  backdrop-filter: blur(8px);
}

.hero-main--blend::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 72px;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff);
  opacity: 0.45;
}

.hero-main--bg-photo.hero-main--blend::after {
  height: 56px;
  opacity: 0.18;
}

.hero-main--inner-page {
  min-height: 0;
  display: flex;
  align-items: flex-end;
  box-shadow: 0 8px 28px rgba(4, 22, 40, 0.1);
}

.hero-main--inner-page .hero-main__content {
  padding-top: 1.25rem !important;
  padding-bottom: 1.35rem !important;
}

@media (min-width: 992px) {
  .hero-main--inner-page .hero-main__content {
    padding-top: 1.45rem !important;
    padding-bottom: 1.55rem !important;
  }
}

.hero-title--inner {
  font-size: clamp(1.65rem, 3.2vw, 2.65rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.022em;
  margin-bottom: 0.65rem;
  text-shadow: 0 1px 16px rgba(0, 0, 0, 0.22);
}

.hero-main--bg-photo .hero-title--inner {
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.38), 0 1px 0 rgba(0, 0, 0, 0.15);
}

/* Inner pages: theme line under conference title (readable, not tiny all-caps). */
.hero-subtitle--inner-theme {
  font-size: clamp(1rem, 1.85vw, 1.22rem);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.02em;
  text-transform: none;
  color: rgba(252, 195, 0, 0.98);
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.28);
  max-width: 46rem;
  margin-bottom: 0.85rem;
  opacity: 1;
}

.hero-main--inner-page .hero-meta--facts {
  margin-bottom: 0;
  font-size: clamp(0.86rem, 1.2vw, 0.98rem);
  font-weight: 600;
  gap: 0.35rem 0.65rem;
}

.hero-main--inner-page .hero-meta__ic {
  font-size: 1rem;
}

.hero-kicker--inner {
  letter-spacing: 0.14em;
  font-size: 0.68rem;
  text-transform: uppercase;
  opacity: 0.9;
  margin-bottom: 0.45rem !important;
}

.hero-main--inner-page.hero-main--blend::after {
  height: 40px;
  opacity: 0.32;
}

.hero-main--inner-page.hero-main--bg-photo.hero-main--blend::after {
  height: 36px;
  opacity: 0.14;
}

.brand-logo {
  height: 38px;
  width: auto;
  object-fit: contain;
}

.btn-igf-primary {
  background: var(--igf-yellow);
  color: #0b2440;
  border: 1px solid var(--igf-yellow);
  font-weight: 600;
}

.btn-igf-primary:hover {
  background: var(--igf-yellow-dark);
  color: #0b2440;
  border-color: var(--igf-yellow-dark);
}

.btn-igf-outline {
  border: 1px solid rgba(255, 255, 255, 0.55);
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

.btn-igf-outline:hover {
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
}

/* ——— Inner pages ——— */
.section-wrap {
  padding: 3rem 0;
}

/* Light editorial surface under the shared inner hero (Home unchanged). */
main.inner-page-main.inner-page-surface {
  background:
    radial-gradient(ellipse 120% 80% at 50% 0%, rgba(29, 154, 237, 0.06), transparent 55%),
    linear-gradient(180deg, #f3f8fc 0%, #fafcfe 42%, #f4f8fb 100%);
}

.ds-inner-page {
  --ds-content-max: min(100%, 70rem);
}

.inner-page-section-lead {
  max-width: none;
}

/* Inner hero title: do not inherit .section-heading 48rem cap — match full .container like Venue */
header.inner-page-section-lead.section-heading {
  max-width: none;
}

.inner-page-section-lead .section-heading__title {
  font-size: clamp(1.55rem, 2.85vw, 2.1rem);
  font-weight: 800;
}

/* ——— Editorial inner templates (visa, meeting point, tours, organization) ——— */
.editorial-page {
  font-size: 1.02rem;
  line-height: 1.75;
  color: #24303d;
}

/*
 * Packaged editorial lives in .editorial-island (not .history-legacy-root) so History-only
 * rules that strip adjacent column padding / card chrome never flatten visa / tours grids.
 */
.editorial-island {
  max-width: none;
}

.editorial-island .row {
  --bs-gutter-x: 1.5rem;
}

.editorial-island .row > [class*="col-"] {
  padding-left: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
  padding-right: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
}

.editorial-island .editorial-page {
  max-width: none;
}

.editorial-island .editorial-page a:not(.btn):not(.editorial-resource-tile) {
  color: var(--igf-blue-dark);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(15, 112, 183, 0.35);
}

.editorial-island .editorial-page a:not(.btn):not(.editorial-resource-tile):hover {
  color: var(--igf-blue);
  border-bottom-color: rgba(15, 112, 183, 0.65);
}

.editorial-island .card-soft,
.editorial-island .editorial-info-card.card-soft,
.editorial-island .editorial-visual-card.card-soft,
.editorial-island .tour-card.card-soft {
  background: #fff !important;
  border: 1px solid var(--igf-border) !important;
  box-shadow: var(--igf-shadow) !important;
  border-radius: var(--igf-radius-md) !important;
}

/* Curated editorial inner routes: align rhythm / chrome with Venue & Travel (premium CMS). */
.venue-travel-page.inner-page-main.premium-inner-page .editorial-island .editorial-section {
  position: relative;
}

.venue-travel-page.inner-page-main.premium-inner-page .editorial-island .editorial-info-card__title,
.venue-travel-page.inner-page-main.premium-inner-page .editorial-island .tour-card__title {
  color: #0b2440;
}

.venue-travel-page.inner-page-main.premium-inner-page .editorial-island .editorial-map-embed,
.venue-travel-page.inner-page-main.premium-inner-page .editorial-island .editorial-map-embed iframe {
  border: 1px solid rgba(15, 112, 183, 0.12);
}

.venue-travel-page.inner-page-main.premium-inner-page .editorial-island .editorial-resource-tile {
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.venue-travel-page.inner-page-main.premium-inner-page .editorial-island .editorial-resource-tile:hover {
  transform: translateY(-2px);
  border-color: rgba(15, 112, 183, 0.35) !important;
  box-shadow: 0 14px 34px rgba(15, 42, 61, 0.12) !important;
}

.editorial-info-card__summary {
  font-size: 0.95rem;
  color: #3a4a58;
  line-height: 1.65;
}

.editorial-prose.lead,
.editorial-lead {
  font-size: 1.08rem;
  line-height: 1.72;
}

/* Section titles (same rhythm as Venue .section-heading--venue-block + yellow bar) */
.editorial-h2 {
  font-size: clamp(1.12rem, 1.9vw, 1.4rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.18;
  margin: 0 0 1rem;
  padding-left: 1.1rem;
  position: relative;
  color: var(--igf-text);
}

.editorial-h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: var(--igf-title-accent-top);
  width: var(--igf-title-accent-w);
  height: var(--igf-title-accent-h);
  background: var(--igf-yellow);
  border-radius: var(--igf-title-accent-radius);
}

.editorial-h2.editorial-h2--no-accent,
.editorial-h2.editorial-h2--in-card {
  padding-left: 0;
}

.editorial-h2.editorial-h2--no-accent::before,
.editorial-h2.editorial-h2--in-card::before {
  display: none;
}

.editorial-h2.editorial-h2--in-card {
  font-size: clamp(1.18rem, 2vw, 1.45rem);
  margin-bottom: 0.85rem;
}

/* In-card / block titles — match Venue .venue-travel-block__title */
.editorial-h3 {
  font-size: clamp(1.05rem, 1.55vw, 1.22rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 0.75rem;
  color: #0b2440;
}

.editorial-h3--in-card {
  margin-bottom: 0.5rem;
}

.editorial-eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.55);
  margin-bottom: 0;
}

.editorial-prose--compact {
  font-size: 0.98rem;
  line-height: 1.72;
}

.editorial-walk-block {
  padding: clamp(1.1rem, 2vw, 1.5rem);
}

.editorial-hotel-note .editorial-info-card__icon {
  margin-bottom: 0.35rem;
}

.editorial-visual-card {
  padding: clamp(1.25rem, 2.2vw, 1.75rem);
}

.editorial-visual-card__icon {
  font-size: 2.75rem;
  color: var(--igf-blue);
  opacity: 0.9;
}

.editorial-info-card {
  padding: clamp(1.25rem, 2.2vw, 1.75rem);
}

.editorial-info-card__icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  margin-bottom: 0.65rem;
  color: #0b2440;
  background: linear-gradient(145deg, rgba(255, 213, 79, 0.38) 0%, rgba(255, 255, 255, 0.95) 100%);
  border: 1px solid rgba(11, 36, 64, 0.08);
}

.editorial-info-card__title {
  font-size: clamp(1.05rem, 1.55vw, 1.22rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 0.5rem;
  color: #0b2440;
}

.editorial-list {
  padding-left: 1.15rem;
  margin: 0;
}

.editorial-list--plain {
  list-style: none;
  padding-left: 0;
}

.editorial-list--plain li {
  padding: 0.28rem 0;
  border-bottom: 1px solid rgba(15, 112, 183, 0.08);
}

.editorial-list--plain li:last-child {
  border-bottom: 0;
}

.editorial-list--committee li {
  margin-bottom: 0.55rem;
  line-height: 1.68;
  font-weight: 400;
  color: #33404c;
}

.editorial-list--committee strong {
  font-weight: 700;
  color: #0b2440;
}

.editorial-notice {
  padding: 1rem 1.15rem;
  border-left: 4px solid var(--igf-yellow);
  background: linear-gradient(120deg, rgba(252, 195, 0, 0.12) 0%, rgba(255, 255, 255, 0.75) 55%);
}

.editorial-notice__icon {
  color: #a67c00;
  font-size: 1.35rem;
  margin-top: 0.1rem;
}

.editorial-notice__title {
  font-weight: 700;
  font-size: 0.95rem;
  margin: 0;
}

.editorial-resource-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  padding: clamp(1.1rem, 2vw, 1.35rem) clamp(1.15rem, 2.2vw, 1.45rem);
  text-decoration: none;
  color: inherit;
  height: 100%;
  min-height: 7.25rem;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
  border: 1px solid rgba(15, 112, 183, 0.14);
}

.editorial-resource-tile:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(11, 91, 215, 0.1);
  border-color: rgba(15, 112, 183, 0.28);
  color: inherit;
}

.editorial-resource-tile .bi {
  font-size: 1.25rem;
  color: var(--igf-blue);
}

.editorial-resource-tile__label {
  font-weight: 600;
  font-size: 0.95rem;
}

.editorial-resource-tile__hint {
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.45;
  color: #5a6b7d;
  margin-top: auto;
}

/* ——— Visa information — EU / Non-EU participant cards ——— */
:is(.editorial-page--visa, .igf-papers-suite) .visa-callout {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem 1rem;
  width: 100%;
  border-radius: 0.75rem;
}

:is(.editorial-page--visa, .igf-papers-suite) .visa-callout__icon {
  flex-shrink: 0;
  font-size: 1.2rem;
  line-height: 1;
  margin-top: 0.12rem;
}

:is(.editorial-page--visa, .igf-papers-suite) .visa-callout__body {
  flex: 1 1 0;
  min-width: 0;
  max-width: none;
}

:is(.editorial-page--visa, .igf-papers-suite) .visa-callout__eyebrow {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.55);
  margin: 0 0 0.45rem;
}

:is(.editorial-page--visa, .igf-papers-suite) .visa-callout__text {
  display: block;
  width: 100%;
  max-width: none;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #33404c;
  margin-bottom: 0.55rem;
}

:is(.editorial-page--visa, .igf-papers-suite) .visa-callout__text:last-child {
  margin-bottom: 0;
}

:is(.editorial-page--visa, .igf-papers-suite) .visa-callout__text strong {
  color: #0b2440;
  font-weight: 700;
}

:is(.editorial-page--visa, .igf-papers-suite) .visa-callout--info {
  padding: clamp(1.2rem, 2.3vw, 1.55rem) clamp(1.15rem, 2.2vw, 1.5rem);
  background: linear-gradient(
    128deg,
    rgba(240, 247, 255, 0.98) 0%,
    rgba(232, 244, 255, 0.92) 48%,
    rgba(247, 251, 255, 0.98) 100%
  );
  border: 1px solid rgba(15, 112, 183, 0.14);
  box-shadow: 0 6px 22px rgba(15, 112, 183, 0.05);
}

:is(.editorial-page--visa, .igf-papers-suite) .visa-callout--info .visa-callout__icon {
  color: var(--igf-blue);
}

:is(.editorial-page--visa, .igf-papers-suite) .visa-callout--info .visa-callout__text {
  color: #33404c;
}

:is(.editorial-page--visa, .igf-papers-suite) .visa-callout--important {
  padding: 0.75rem 1.1rem;
  background: linear-gradient(
    120deg,
    rgba(255, 248, 220, 0.95) 0%,
    rgba(255, 252, 235, 0.98) 55%,
    rgba(255, 255, 255, 0.9) 100%
  );
  border: 1px solid rgba(166, 124, 0, 0.16);
  box-shadow: 0 4px 16px rgba(166, 124, 0, 0.06);
}

:is(.editorial-page--visa, .igf-papers-suite) .visa-callout--important .visa-callout__icon {
  color: #9a7b12;
}

:is(.editorial-page--visa, .igf-papers-suite) .visa-callout--important .visa-callout__text {
  color: #3d4638;
  margin-bottom: 0;
}

:is(.editorial-page--visa, .igf-papers-suite) .visa-callout--important .visa-callout__text strong {
  color: #6b5410;
}

.editorial-page--visa .visa-participant-card {
  display: flex;
  flex-direction: column;
  padding: clamp(1.15rem, 2vw, 1.4rem);
  gap: 0;
}

.editorial-page--visa .visa-participant-card__title {
  font-size: clamp(1.08rem, 1.7vw, 1.22rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0b2440;
  margin: 0 0 0.5rem;
}

.editorial-page--visa .visa-participant-card__intro {
  font-size: 0.94rem;
  line-height: 1.58;
  color: #3a4a58;
  margin-bottom: 1rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(15, 112, 183, 0.1);
}

.editorial-page--visa .visa-participant-card--eu {
  border-top: 3px solid rgba(29, 154, 237, 0.35) !important;
}

.editorial-page--visa .visa-participant-card--non-eu {
  border-top: 3px solid rgba(252, 195, 0, 0.85) !important;
  background: linear-gradient(180deg, #fff 0%, rgba(255, 252, 245, 0.65) 100%) !important;
}

.editorial-page--visa .visa-participant-micro {
  padding: 0.65rem 0;
  border-bottom: 1px solid rgba(15, 112, 183, 0.07);
}

.editorial-page--visa .visa-participant-micro:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.editorial-page--visa .visa-participant-micro__label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.62);
  margin: 0 0 0.4rem;
}

.editorial-page--visa .visa-participant-micro__label .bi {
  font-size: 0.95rem;
  color: var(--igf-blue);
}

.editorial-page--visa .visa-participant-micro__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.editorial-page--visa .visa-participant-micro__list li {
  position: relative;
  padding: 0.15rem 0 0.15rem 0.95rem;
  font-size: 0.93rem;
  line-height: 1.52;
  color: #33404c;
}

.editorial-page--visa .visa-participant-micro__list li::before {
  content: "–";
  position: absolute;
  left: 0;
  color: var(--igf-blue);
  font-weight: 700;
}

.editorial-page--visa .visa-participant-micro__text {
  font-size: 0.93rem;
  line-height: 1.55;
  color: #33404c;
}

.editorial-page--visa .visa-links-intro {
  font-size: 0.95rem;
  line-height: 1.55;
  color: #5a6b7d;
  margin: -0.15rem 0 1.15rem;
  max-width: 36rem;
}

.editorial-page--visa .visa-resource-card {
  min-height: 9.25rem;
  padding: 1.2rem 1.15rem 1.05rem;
  gap: 0.35rem;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.editorial-page--visa .visa-resource-card__icon {
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 0.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.2rem;
  background: linear-gradient(145deg, rgba(29, 154, 237, 0.1) 0%, rgba(255, 255, 255, 0.98) 100%);
  border: 1px solid rgba(15, 112, 183, 0.1);
}

.editorial-page--visa .visa-resource-card__icon .bi {
  font-size: 1.25rem;
  color: var(--igf-blue);
}

.editorial-page--visa .visa-resource-card .editorial-resource-tile__label {
  font-size: 0.98rem;
  font-weight: 700;
  color: #0b2440;
}

.editorial-page--visa .visa-resource-card .editorial-resource-tile__hint {
  font-size: 0.82rem;
  line-height: 1.45;
  margin-top: 0;
}

.editorial-page--visa .visa-resource-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-top: auto;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--igf-blue);
}

.venue-travel-page--premium .editorial-island .editorial-page--visa .visa-resource-card:hover {
  transform: translateY(-2px);
  border-color: rgba(15, 112, 183, 0.28) !important;
  box-shadow: 0 12px 28px rgba(11, 36, 64, 0.08) !important;
}

.venue-travel-page--premium .editorial-island .editorial-page--visa .visa-resource-card:hover .visa-resource-card__cta {
  gap: 0.42rem;
}

.editorial-contact-card.editorial-info-card {
  padding: clamp(1.25rem, 2.2vw, 1.75rem);
}

.editorial-contact-card:not(.editorial-info-card) {
  padding: 1.25rem 1.35rem;
}

.editorial-contact-card .editorial-info-card__icon {
  margin-bottom: 0.6rem;
}

.editorial-intro-block {
  padding: clamp(1.35rem, 2.4vw, 1.85rem);
}

.editorial-page--organization .org-layout__row-one {
  margin-bottom: 0;
}

.editorial-page--organization .org-section {
  margin-bottom: 1.15rem;
}

.editorial-page--organization .org-layout__col > .org-section:last-child {
  margin-bottom: 0;
}

.editorial-page--organization .org-section--isc {
  margin-bottom: 0;
}

.editorial-page--organization .org-block.card-soft {
  padding: clamp(1.1rem, 2.2vw, 1.45rem);
}

.editorial-page--organization .org-section-head {
  margin-bottom: 0.75rem;
}

.editorial-page--organization .org-section-head__inner {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
}

.editorial-page--organization .org-section-head__ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  height: 2.15rem;
  flex-shrink: 0;
  border-radius: 0.6rem;
  font-size: 1.05rem;
  color: #0b2440;
  background: linear-gradient(145deg, rgba(252, 195, 0, 0.32) 0%, rgba(255, 255, 255, 0.95) 100%);
  border: 1px solid rgba(11, 36, 64, 0.08);
}

.editorial-page--organization .org-section-head__label {
  line-height: 1.2;
}

.editorial-page--organization .org-general__prose {
  font-size: 0.98rem;
  line-height: 1.68;
  color: #2c3a47;
}

.editorial-page--organization .org-general__prose :last-child {
  margin-bottom: 0;
}

.editorial-page--organization .org-person-stack {
  display: grid;
  gap: 0.55rem;
}

.editorial-page--organization .org-person-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.55rem 0.85rem;
}

@media (min-width: 992px) {
  .editorial-page--organization .org-person-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.6rem 1rem;
  }
}

.editorial-page--organization .org-person-box {
  border: 1px solid rgba(201, 216, 232, 0.95);
  background: #fafbfc;
  border-radius: 0.65rem;
  padding: 0.62rem 0.8rem;
  height: 100%;
}

.editorial-page--organization .org-person-box__name {
  margin: 0;
  font-size: 0.94rem;
  font-weight: 700;
  color: #0b2440;
  line-height: 1.3;
}

.editorial-page--organization .org-person-box__role,
.editorial-page--organization .org-person-box__affiliation {
  font-size: 0.82rem;
  line-height: 1.45;
  color: #4e6072;
}

.editorial-page--organization .org-isc-shell {
  padding: clamp(1rem, 2vw, 1.35rem);
}

.editorial-page--organization .org-empty-note {
  font-size: 0.92rem;
}

.editorial-compact-panel {
  padding: clamp(1rem, 2vw, 1.35rem);
}

.editorial-committee-shell {
  padding: clamp(1.15rem, 2.2vw, 1.65rem);
}

.editorial-committee-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem 2rem;
}

@media (min-width: 768px) {
  .editorial-committee-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.editorial-map-embed iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.editorial-map-empty {
  min-height: 240px;
  background: rgba(29, 154, 237, 0.04);
}

/* Tours showcase */
.tour-card {
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tour-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(11, 91, 215, 0.12);
}

.tour-card__media {
  height: 11rem;
  background-size: cover;
  background-position: center;
  transition: transform 0.35s ease;
  background-color: var(--igf-blue-g1);
  background-image:
    repeating-linear-gradient(
      125deg,
      rgba(255, 255, 255, 0.03) 0 1px,
      transparent 1px 9px
    ),
    radial-gradient(ellipse 100% 80% at 20% 0%, rgba(29, 154, 237, 0.28), transparent 55%),
    var(--igf-gradient-brand);
}

.tour-card:hover .tour-card__media {
  transform: scale(1.03);
}

.tour-card__media--zywiec {
  background-image: linear-gradient(135deg, rgba(11, 91, 215, 0.42), rgba(1, 82, 201, 0.48)),
    repeating-linear-gradient(
      125deg,
      rgba(255, 255, 255, 0.04) 0 1px,
      transparent 1px 8px
    ),
    url("/assets/site/conf-data/ish2025/images/gory.jpg");
}

.tour-card__media--wieliczka {
  background-image: linear-gradient(135deg, rgba(11, 91, 215, 0.42), rgba(1, 82, 201, 0.48)),
    repeating-linear-gradient(
      125deg,
      rgba(255, 255, 255, 0.04) 0 1px,
      transparent 1px 8px
    ),
    url("/assets/site/conf-data/ish2025/images/radocza1.jpg");
}

.tour-card__media--krakow {
  background-image: linear-gradient(135deg, rgba(11, 91, 215, 0.42), rgba(1, 82, 201, 0.48)),
    repeating-linear-gradient(
      125deg,
      rgba(255, 255, 255, 0.04) 0 1px,
      transparent 1px 8px
    ),
    url("/assets/site/conf-data/ish2025/images/1.jpg");
}

.tour-card__body {
  padding: clamp(1.1rem, 2vw, 1.35rem) clamp(1.15rem, 2.2vw, 1.45rem) clamp(1.15rem, 2.2vw, 1.4rem);
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 0;
}

.tour-card__title {
  font-size: clamp(1.02rem, 1.5vw, 1.08rem);
  font-weight: 700;
  letter-spacing: -0.015em;
  margin-bottom: 0.45rem;
  color: #0b2440;
  text-transform: none;
}

.tour-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.75rem;
  font-size: 0.8rem;
  color: #4b5c6f;
  margin-bottom: 0.6rem;
  line-height: 1.4;
}

.tour-card__meta-line {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  white-space: nowrap;
}

.tour-card__meta-line .bi {
  font-size: 0.95em;
  opacity: 0.88;
  flex-shrink: 0;
}

.tour-card__badge {
  display: inline-block;
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.68);
  background: rgba(29, 154, 237, 0.06);
  padding: 0.1rem 0.4rem;
  border-radius: 6px;
  border: 1px solid rgba(15, 112, 183, 0.1);
}

.tour-card__excerpt {
  color: #3a4a58;
  flex: 1;
  min-height: 0;
  margin-bottom: 0.75rem;
}

/* Inner pages use the same Bootstrap .container as the homepage (no extra max-width). */

.inner-page-main .section-heading:not(.section-heading--split) {
  max-width: none;
}

/* Generic inner pages: typography aligned with History / Key dates */
.premium-inner-page .legacy-content {
  font-size: 1.02rem;
  line-height: 1.75;
  color: #24303d;
}

.premium-inner-page .legacy-content .container .row,
.premium-inner-page .legacy-content .row {
  --bs-gutter-x: 1.5rem;
}

.premium-inner-page .legacy-content img.img-responsive,
.premium-inner-page .legacy-content img.img-fluid {
  max-width: 100%;
  height: auto;
}

.premium-inner-page .legacy-content .section-title,
.premium-inner-page .legacy-content .section-title-wrapper .section-title {
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0f2a3d;
}

.premium-inner-page .legacy-content hr {
  border-color: rgba(15, 112, 183, 0.2);
  opacity: 1;
}

/* Legacy HTML often opens with its own .container; avoid double horizontal gutter vs outer .legacy-content. */
.premium-inner-page .history-legacy-root > .container:first-child {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}

/* Comfortable measure for text-heavy migrated pages (not History — tables need full width). */
.premium-inner-page .history-legacy-root.ds-content-prose-narrow {
  max-width: 46rem;
  margin-inline: auto;
  overflow-x: auto;
}

.premium-inner-page .history-legacy-root.ds-content-prose-narrow .section-title-wrapper {
  text-align: left;
}

.premium-inner-page .history-legacy-root.ds-content-prose-narrow p,
.premium-inner-page .history-legacy-root.ds-content-prose-narrow li {
  text-align: left;
}

.downloads-page--premium .resource-card-row {
  margin-top: 0.5rem;
}

.downloads-page--premium .legacy-content--downloads-intro {
  padding: 0;
}

.legacy-content > .container {
  padding-left: 0;
  padding-right: 0;
}

.venue-cms-missing-panel {
  max-width: 42rem;
}

/* ——— Venue & Travel — premium CMS layout ——— */
.venue-travel-page.inner-page-main {
  position: relative;
  overflow-x: clip;
}

.section-heading--venue-block {
  max-width: none;
}

.section-heading--venue-block .section-heading__title {
  font-size: clamp(1.12rem, 1.9vw, 1.4rem);
  font-weight: 700;
  letter-spacing: -0.02em;
}

.venue-page--premium {
  position: relative;
}

.venue-prose {
  line-height: 1.78;
  color: #24303d;
}

.venue-prose p:last-child {
  margin-bottom: 0;
}

.venue-slab {
  position: relative;
  margin-bottom: clamp(1.35rem, 3.2vw, 2.25rem);
}

.venue-slab--overview-editorial {
  margin-bottom: clamp(1rem, 2.5vw, 1.65rem);
}

.venue-slab--overview-invitation {
  margin-bottom: clamp(1rem, 2.4vw, 1.6rem);
}

.venue-slab--overview-invitation + .venue-slab--showcase-tight {
  margin-top: clamp(0.35rem, 1.2vw, 0.65rem);
}

.venue-overview-invitation.invitation-split--sync {
  align-items: stretch;
}

.venue-overview-panel .section-heading--venue-block {
  margin-bottom: 1rem;
}

@media (min-width: 992px) {
  .venue-overview-panel .section-heading--venue-block {
    margin-bottom: 1.15rem;
  }
}

.venue-overview-prose {
  max-width: 38rem;
}

/* Venue intro: equal-height columns; image column fills to match text card */
.venue-overview-split {
  display: grid;
  gap: clamp(1rem, 2.5vw, 1.5rem);
}

.venue-overview-split--paired {
  grid-template-columns: 1fr;
}

@media (min-width: 992px) {
  .venue-overview-split--paired {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }
}

.venue-overview-split__text,
.venue-overview-split__media {
  min-width: 0;
  min-height: 0;
}

.venue-overview-split__media {
  display: flex;
  flex-direction: column;
  min-height: min(280px, 58vw);
}

@media (min-width: 992px) {
  .venue-overview-split__media {
    min-height: 0;
    height: 100%;
  }
}

/* Stretches to full height of __media (matched to text column via grid) */
.venue-overview-media-fill {
  position: relative;
  flex: 1 1 0;
  width: 100%;
  min-height: 100%;
  height: 100%;
  align-self: stretch;
}

.venue-overview-featured {
  position: absolute;
  inset: 0;
  margin: 0;
  width: 100%;
  height: 100%;
}

.venue-overview-featured__frame {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: var(--igf-radius-lg);
  overflow: hidden;
  background: linear-gradient(145deg, #e8eef4 0%, #dce6ef 100%);
  box-shadow: 0 14px 36px rgba(15, 35, 55, 0.1);
}

.venue-overview-featured__img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  min-height: 100%;
  object-fit: cover !important;
  object-position: center;
}

.invitation-collage--venue-only {
  max-width: 520px;
  margin-inline: auto;
}

@media (min-width: 992px) {
  .venue-overview-invitation.invitation-split--sync .invitation-collage--venue-only {
    max-width: none;
    margin-inline: 0;
  }
}

.venue-slab--showcase-tight {
  margin-top: 0;
  margin-bottom: clamp(1.15rem, 2.8vw, 1.85rem);
}

.venue-slab:last-child {
  margin-bottom: 0;
}

.venue-slab__inner {
  position: relative;
  z-index: 1;
}

.venue-slab__inner--flush {
  padding-left: 0;
  padding-right: 0;
}

/* Overview — Invitation-style split + optional subtle depth */
.venue-slab--overview::before {
  content: "";
  position: absolute;
  inset: -0.25rem -0.35rem 0;
  pointer-events: none;
  z-index: 0;
  border-radius: var(--igf-radius-lg);
  opacity: 0.22;
  background:
    radial-gradient(ellipse 90% 60% at 10% 0%, rgba(29, 154, 237, 0.045), transparent 55%),
    radial-gradient(ellipse 70% 50% at 96% 100%, rgba(255, 193, 7, 0.035), transparent 52%);
}

.venue-overview-panel {
  position: relative;
  z-index: 1;
}

.venue-prose--lead {
  font-size: clamp(1.05rem, 1.45vw, 1.14rem);
  line-height: 1.88;
  color: #24303d;
}

.venue-prose--lead p {
  margin-bottom: 1.15rem;
}

.venue-prose--lead p:last-child {
  margin-bottom: 0;
}

.venue-prose--shuttle {
  font-size: 1.02rem;
  line-height: 1.82;
  color: #2c3a47;
}

.venue-prose--shuttle p {
  margin-bottom: 1rem;
}

.venue-prose--shuttle p:last-child {
  margin-bottom: 0;
}

.venue-prose--detail {
  max-width: none;
  font-size: 1.06rem;
  line-height: 1.86;
}

.venue-prose--travel-lead {
  max-width: 44rem;
  font-size: 1.02rem;
  line-height: 1.78;
}

.venue-travel-intro {
  max-width: 46rem;
}

.venue-prose--card {
  font-size: 0.98rem;
  line-height: 1.72;
  color: #33404c;
  text-align: left;
}

.venue-prose--card p {
  margin-bottom: 0.55rem;
}

.venue-prose--card p:last-child {
  margin-bottom: 0;
}

.venue-prose--address {
  font-size: 1.04rem;
  line-height: 1.78;
}

.venue-callout {
  border-radius: calc(var(--igf-radius-md) - 2px);
  padding: 1rem 1.1rem 1.05rem 1.15rem;
  border: 1px solid rgba(15, 112, 183, 0.14);
  background: linear-gradient(120deg, rgba(29, 154, 237, 0.06) 0%, rgba(255, 255, 255, 0.65) 55%);
  box-shadow: inset 3px 0 0 0 var(--igf-yellow);
}

.venue-callout--transport {
  box-shadow: inset 3px 0 0 0 rgba(15, 112, 183, 0.55);
  background: linear-gradient(120deg, rgba(29, 154, 237, 0.05) 0%, rgba(255, 255, 255, 0.72) 50%);
}

.venue-callout__label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.72);
  margin-bottom: 0.45rem;
}

.venue-prose--callout {
  font-size: 0.95rem;
  line-height: 1.74;
}

/* Showcase slider */
.venue-showcase {
  position: relative;
  overflow: hidden;
  border-radius: calc(var(--igf-radius-md) + 6px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.55) inset,
    0 18px 44px rgba(11, 91, 215, 0.14);
}

.venue-showcase__viewport {
  position: relative;
  overflow: hidden;
  border-radius: inherit;
}

.venue-showcase__gradient {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(11, 91, 215, 0.1) 0%, transparent 36%, transparent 68%, rgba(11, 91, 215, 0.22) 100%);
  mix-blend-mode: multiply;
  opacity: 0.45;
}

.venue-gallery__track {
  display: flex;
  transition: transform 0.5s cubic-bezier(0.33, 1, 0.68, 1);
}

.venue-gallery__slide {
  flex: 0 0 100%;
  margin: 0;
  position: relative;
}

.venue-gallery__media {
  position: relative;
  display: block;
  overflow: hidden;
}

.venue-gallery__img {
  display: block;
  width: 100%;
  aspect-ratio: 2.35 / 1;
  object-fit: cover;
  transform: scale(1.01);
  transition: transform 6s ease-out;
}

@media (max-width: 767.98px) {
  .venue-gallery__img {
    aspect-ratio: 4 / 3;
  }
}

.venue-gallery__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 0.75rem 1.15rem 1rem;
  margin: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(11, 91, 215, 0.48) 40%, rgba(1, 82, 201, 0.78) 100%);
  color: #f5f9fd;
  font-size: 0.84rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.35;
}

.venue-gallery__caption-text {
  display: inline-block;
  max-width: 42rem;
}

.venue-showcase__toolbar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.55rem 0.75rem 0.7rem;
  background: linear-gradient(180deg, #f7fafd 0%, #eef3f9 100%);
  border-top: 1px solid rgba(15, 112, 183, 0.1);
}

.venue-showcase__nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 50%;
  border: 1px solid rgba(15, 112, 183, 0.16);
  background: #fff;
  color: #0b2440;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(11, 91, 215, 0.06);
  transition: background 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}

.venue-showcase__nav:hover {
  background: #eef5fc;
  border-color: rgba(15, 112, 183, 0.35);
  transform: translateY(-1px);
}

.venue-showcase__dots {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  min-height: 1.5rem;
}

.venue-showcase__dot,
.venue-gallery__dot {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  border: none;
  padding: 0;
  cursor: pointer;
  background: rgba(11, 36, 64, 0.22);
  transition: background 0.2s ease, transform 0.2s ease;
}

.venue-showcase__dot.is-active,
.venue-gallery__dot.is-active {
  background: var(--igf-blue);
  transform: scale(1.15);
}

.venue-showcase--empty {
  padding: 2.25rem 1.5rem;
  text-align: center;
}

.venue-hotel-card {
  padding: clamp(2.15rem, 3vw, 2.65rem) !important;
}

.venue-hotel-card .venue-prose--detail {
  max-width: 38rem;
  line-height: 1.88;
}

.venue-details-copy {
  padding: 0;
}

.venue-video-embed {
  position: relative;
  align-self: stretch;
  min-width: 0;
  border-radius: var(--igf-radius-md);
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(11, 91, 215, 0.08);
  background: transparent;
}

.venue-video-embed--bare {
  box-shadow: none;
  background: transparent;
  overflow: visible;
  border-radius: 0;
}

.venue-video-embed--bare > .ratio {
  box-shadow: 0 6px 20px rgba(11, 91, 215, 0.07);
  border-radius: var(--igf-radius-md);
  overflow: hidden;
}

.venue-video-embed .venue-embed--elevated {
  box-shadow: none;
}

.venue-embed--elevated {
  --bs-aspect-ratio: 56.25%;
}

.venue-video-placeholder {
  min-height: 10rem;
}

.venue-travel-composed {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2vw, 1.35rem);
}

.venue-travel-airport.card-soft,
.venue-travel-station.card-soft,
.venue-travel-by-car.card-soft {
  padding: clamp(1.25rem, 2.2vw, 1.85rem);
  text-align: left;
}

.venue-travel-by-car.card-soft {
  padding: clamp(1rem, 1.8vw, 1.35rem);
}

.venue-travel-block__title {
  font-size: clamp(1.05rem, 1.55vw, 1.22rem);
  font-weight: 700;
  margin: 0 0 0.75rem;
  text-align: left;
  letter-spacing: -0.02em;
  color: #0b2440;
}

.venue-travel-block__title-inner {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}

.venue-travel-block__title-inner .bi {
  font-size: 1.05em;
  color: var(--igf-blue);
  opacity: 0.9;
}

.venue-travel-subhead--icon {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  letter-spacing: 0.06em;
}

.venue-travel-subhead--icon .bi {
  font-size: 1.05rem;
  color: var(--igf-blue);
}

.venue-travel-airport.card-soft {
  padding: clamp(1.15rem, 2vw, 1.55rem) clamp(1.2rem, 2.1vw, 1.65rem);
}

.venue-travel-airport__cols {
  row-gap: 1rem !important;
}

.venue-travel-by-car .venue-travel-block__title {
  margin-bottom: 0.55rem;
}

.venue-travel-subhead {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.58);
  margin-bottom: 0.5rem;
  text-align: left;
}

.venue-prose--travel-block {
  text-align: left;
  font-size: 1rem;
  line-height: 1.78;
}

.venue-prose--travel-block p {
  margin-bottom: 0.65rem;
}

.venue-prose--compact {
  font-size: 0.95rem;
  line-height: 1.72;
}

.venue-media-shell {
  padding: 0;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.venue-media-shell__placeholder {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 10rem;
  padding: 1rem;
  border-radius: var(--igf-radius-md);
  background: linear-gradient(145deg, rgba(29, 154, 237, 0.04), rgba(255, 255, 255, 0.55));
}

.venue-embed--rounded {
  border-radius: var(--igf-radius-md);
  overflow: hidden;
}

.venue-embed iframe,
.venue-map-embed iframe {
  width: 100% !important;
  height: 100% !important;
  border: 0;
}

/* Travel info cards */
.venue-slab--travel {
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.venue-slab--travel::after {
  display: none;
}

.venue-travel-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
}

@media (min-width: 768px) {
  .venue-travel-grid--editorial {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.1rem;
  }
}

.venue-info-card--compact {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 1rem 1.1rem 1.1rem;
  align-self: start;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.92) inset,
    0 8px 22px rgba(11, 91, 215, 0.06);
}

.venue-info-card--compact .venue-info-card__icon {
  width: 2.4rem;
  height: 2.4rem;
  font-size: 1.2rem;
  border-radius: 11px;
}

.venue-info-card--compact .venue-info-card__body {
  width: 100%;
}

.venue-info-card {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.2rem 1.25rem 1.25rem 1.2rem;
  border-radius: var(--igf-radius-md);
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(15, 112, 183, 0.14);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 10px 28px rgba(11, 91, 215, 0.08);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.venue-info-card:hover:not(.venue-info-card--compact) {
  border-color: rgba(15, 112, 183, 0.28);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 14px 32px rgba(11, 91, 215, 0.11);
  transform: translateY(-2px);
}

.venue-info-card--compact:hover {
  border-color: rgba(15, 112, 183, 0.24);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 10px 26px rgba(11, 91, 215, 0.09);
  transform: translateY(-1px);
}

.venue-info-card__icon {
  flex-shrink: 0;
  width: 2.65rem;
  height: 2.65rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  font-size: 1.35rem;
  color: #0b2440;
  background: linear-gradient(145deg, rgba(255, 213, 79, 0.35) 0%, rgba(255, 255, 255, 0.9) 100%);
  border: 1px solid rgba(11, 36, 64, 0.08);
}

.venue-info-card__title {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 0.55rem;
  color: var(--igf-text);
  letter-spacing: -0.015em;
}

.venue-travel-empty {
  position: relative;
  z-index: 1;
  padding: 1.5rem 1.25rem;
  text-align: center;
}

/* Location */
.venue-slab--location {
  padding-bottom: 0.25rem;
}

.venue-location-card {
  padding: clamp(1.2rem, 2.4vw, 1.65rem);
  height: 100%;
}

.venue-location-card__eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.55);
  margin-bottom: 0.85rem;
}

.venue-map-frame {
  position: relative;
  border-radius: var(--igf-radius-md);
  overflow: hidden;
  min-height: clamp(220px, 42vw, 380px);
  background: rgba(29, 154, 237, 0.06);
  border: 1px solid rgba(15, 112, 183, 0.12);
}

.venue-location-split--balanced .venue-location-card--map .venue-map-frame {
  min-height: clamp(280px, 52vw, 440px);
}

.venue-location-split--balanced .venue-location-card--address {
  padding: clamp(0.95rem, 1.8vw, 1.25rem);
}

.venue-map-embed {
  position: absolute;
  inset: 0;
}

.venue-map-embed iframe {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
}

.venue-location-unified {
  border: 1px solid rgba(15, 112, 183, 0.14);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 10px 28px rgba(11, 91, 215, 0.08);
}

.venue-location-unified__aside {
  padding: clamp(1rem, 2vw, 1.35rem) clamp(1.1rem, 2.2vw, 1.5rem);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 250, 255, 0.96) 100%);
}

.venue-location-unified__aside--rich {
  padding: clamp(1.25rem, 2.4vw, 1.75rem) clamp(1.25rem, 2.5vw, 1.85rem);
}

@media (min-width: 992px) {
  .venue-location-unified__aside {
    border-right: 1px solid rgba(15, 112, 183, 0.12);
  }
}

.venue-location-unified__label {
  letter-spacing: 0.1em;
}

.venue-prose--location-aside {
  font-size: clamp(1.02rem, 1.2vw, 1.1rem);
  line-height: 1.78;
  color: #24303d;
}

.venue-prose--location-aside .venue-location-hotel {
  font-size: clamp(1.14rem, 1.55vw, 1.3rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #1a2836;
  line-height: 1.35;
}

.venue-prose--location-aside p {
  margin-bottom: 0.85rem;
}

.venue-prose--location-aside p:last-child {
  margin-bottom: 0;
}

.venue-prose--location-aside a {
  font-weight: 600;
}

.venue-location-unified__map {
  min-height: clamp(260px, 48vw, 460px);
}

.venue-map-frame--unified {
  min-height: 100%;
  border-radius: 0;
  border: 0;
  margin: 0;
}

@media (min-width: 992px) {
  .venue-map-frame--unified {
    min-height: clamp(300px, 50vw, 480px);
  }
}

.section-title {
  display: block;
  font-weight: 800;
  font-size: clamp(1.55rem, 2.85vw, 2.1rem);
  margin: 0 0 1.25rem;
  position: relative;
  padding-left: 1.1rem;
  line-height: 1.18;
  letter-spacing: -0.025em;
  color: var(--igf-text);
}

.section-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.12em;
  width: 5px;
  height: 1.15em;
  background: var(--igf-yellow);
  border-radius: 3px;
}

.card-soft {
  background: #fff;
  border: 1px solid var(--igf-border);
  box-shadow: var(--igf-shadow);
  border-radius: var(--igf-radius-md);
}

.legacy-content img:not(.venue-overview-featured__img):not(.venue-gallery__img) {
  max-width: 100%;
  height: auto;
}

/* Venue intro: .legacy-content img must not reset height (breaks object-fit cover) */
.legacy-content .venue-overview-featured__img,
.venue-travel-page .venue-overview-featured__img {
  max-width: none !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100%;
  object-fit: cover !important;
  object-position: center;
}

.legacy-content table {
  width: 100% !important;
}

/*
 * History: .history-legacy-root wraps CMS HTML (index.php).
 * Level-2 headings: “Past editions” (first div in sidebar) + map title (first direct strong).
 */
.history-legacy-root {
  --history-subheading-size: clamp(1.02rem, 1.55vw, 1.22rem);
  --history-subheading-weight: 700;
  --history-subheading-color: #1a2430;
  --history-subheading-track: 0.06em;
}

.history-legacy-root .section-title-wrapper {
  margin-bottom: 0.5rem;
}

.history-legacy-root .cos_tam {
  line-height: 1.78;
  letter-spacing: 0.01em;
  color: #24303d;
  max-width: 52rem;
}

.history-legacy-root .cos_tam + div[style*="text-align: justify"] {
  margin-top: 0.85rem;
}

/* Past editions column: no outer “dashboard” card — sits on page like main prose */
.history-legacy-root .row > div[class*="col-sm-6"] + div[class*="col-sm-6"],
.history-legacy-root .row > div[class*="col-md-6"] + div[class*="col-md-6"],
.history-legacy-root .row > div[class*="col-lg-6"] + div[class*="col-lg-6"] {
  margin-top: 0.35rem;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

@media (min-width: 768px) {
  .history-legacy-root .row > div[class*="col-sm-6"] + div[class*="col-sm-6"],
  .history-legacy-root .row > div[class*="col-md-6"] + div[class*="col-md-6"],
  .history-legacy-root .row > div[class*="col-lg-6"] + div[class*="col-lg-6"] {
    margin-top: 0;
  }

  /* More air between History body and Past editions (inner two-col row only) */
  .history-legacy-root .col-xs-12 > .row,
  .history-legacy-root .col-12 > .row {
    --bs-gutter-x: 3rem;
  }
}

/* Level-2: Past editions label + map title (same system, smaller than .section-title) */
.history-legacy-root .row > div[class*="col-sm-6"] + div[class*="col-sm-6"] > div[style*="text-align: center"]:first-child,
.history-legacy-root .row > div[class*="col-md-6"] + div[class*="col-md-6"] > div[style*="text-align: center"]:first-child,
.history-legacy-root .row > div[class*="col-lg-6"] + div[class*="col-lg-6"] > div[style*="text-align: center"]:first-child,
.history-legacy-root .col-xs-12:not([class*="col-sm-6"]):not([class*="col-md-6"]):not([class*="col-lg-6"]) > div[style*="text-align: center"] > strong:first-of-type,
.history-legacy-root .col-12:not([class*="col-sm-"]):not([class*="col-md-"]):not([class*="col-lg-"]) > div[style*="text-align: center"] > strong:first-of-type,
.history-legacy-root .history-locations-block > div[style*="text-align: center"] > .history-locations-block__title {
  text-align: left !important;
  font-weight: var(--history-subheading-weight);
  font-size: var(--history-subheading-size);
  line-height: 1.28;
  letter-spacing: var(--history-subheading-track);
  text-transform: uppercase;
  color: var(--history-subheading-color) !important;
  margin: 0 0 0.7rem;
  padding-left: 0.85rem;
  position: relative;
}

.history-legacy-root .row > div[class*="col-sm-6"] + div[class*="col-sm-6"] > div[style*="text-align: center"]:first-child::before,
.history-legacy-root .row > div[class*="col-md-6"] + div[class*="col-md-6"] > div[style*="text-align: center"]:first-child::before,
.history-legacy-root .row > div[class*="col-lg-6"] + div[class*="col-lg-6"] > div[style*="text-align: center"]:first-child::before,
.history-legacy-root .col-xs-12:not([class*="col-sm-6"]):not([class*="col-md-6"]):not([class*="col-lg-6"]) > div[style*="text-align: center"] > strong:first-of-type::before,
.history-legacy-root .col-12:not([class*="col-sm-"]):not([class*="col-md-"]):not([class*="col-lg-"]) > div[style*="text-align: center"] > strong:first-of-type::before,
.history-legacy-root .history-locations-block > div[style*="text-align: center"] > .history-locations-block__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.18em;
  width: 4px;
  height: 1.05em;
  background: var(--igf-yellow);
  border-radius: 2px;
}

/* Past editions — two-column grid, equal tiles */
.history-past-editions {
  margin: 0;
}

.history-past-editions__heading {
  text-align: left;
  font-weight: var(--history-subheading-weight, 700);
  font-size: var(--history-subheading-size, clamp(1.02rem, 1.55vw, 1.22rem));
  line-height: 1.28;
  letter-spacing: var(--history-subheading-track, 0.06em);
  text-transform: uppercase;
  color: var(--history-subheading-color, #1a2430);
  margin: 0 0 0.85rem;
  padding-left: 0.85rem;
  position: relative;
}

.history-past-editions__heading::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.18em;
  width: 4px;
  height: 1.05em;
  background: var(--igf-yellow);
  border-radius: 2px;
}

.history-past-editions__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 0.7rem;
}

.history-past-edition-tile {
  display: grid;
  grid-template-columns: 3.35rem minmax(0, 1fr);
  align-items: center;
  column-gap: 0.55rem;
  box-sizing: border-box;
  min-height: 5.85rem;
  padding: 0.55rem 0.65rem 0.55rem 0.7rem;
  background: #fff;
  border: 1px solid rgba(201, 216, 232, 0.72);
  border-radius: 10px;
  box-shadow: 0 1px 6px rgba(11, 91, 215, 0.05);
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

a.history-past-edition-tile:hover {
  border-color: rgba(15, 112, 183, 0.28);
  box-shadow: 0 6px 18px rgba(11, 91, 215, 0.1);
  transform: translateY(-1px);
}

.history-past-edition-tile__year {
  font-weight: 700;
  font-size: 0.96rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  color: var(--igf-blue-dark);
  line-height: 1.15;
  white-space: nowrap;
}

.history-past-edition-tile__media {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
  width: 100%;
  min-height: 4.35rem;
  height: 4.35rem;
  overflow: hidden;
}

.history-past-edition-tile__img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: left center;
}

@media (max-width: 575px) {
  .history-past-editions__grid {
    grid-template-columns: 1fr;
  }
}

/* Legacy table fallback (imported HTML only) */
.history-legacy-root table.CKTableStyle01 {
  width: 100% !important;
  max-width: none;
  margin: 0;
  border: none;
  border-collapse: separate;
  border-spacing: 0 0.42rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 0.55rem;
}

.history-legacy-root table.CKTableStyle01 tbody {
  display: contents;
}

.history-legacy-root table.CKTableStyle01 tbody tr {
  display: grid;
  grid-template-columns: 3.35rem minmax(0, 1fr);
  align-items: center;
  column-gap: 0.55rem;
  min-height: 5.85rem;
  padding: 0.55rem 0.65rem 0.55rem 0.7rem;
  background: #fff;
  border: 1px solid rgba(201, 216, 232, 0.72);
  border-radius: 10px;
  box-shadow: 0 1px 6px rgba(11, 91, 215, 0.05);
}

.history-legacy-root table.CKTableStyle01 td:nth-child(2) {
  display: none;
}

.history-legacy-root table.CKTableStyle01 td {
  padding: 0;
  border: none;
  vertical-align: middle;
}

.history-locations-block {
  margin-top: 2rem;
  width: 100%;
}

.history-locations-block__title {
  display: block;
  text-align: left;
  font-weight: var(--history-subheading-weight, 700);
  font-size: var(--history-subheading-size, clamp(1.02rem, 1.55vw, 1.22rem));
  letter-spacing: var(--history-subheading-track, 0.06em);
  text-transform: uppercase;
  color: var(--history-subheading-color, #1a2430);
  margin: 0 0 1rem;
  padding-left: 0.85rem;
  position: relative;
}

.history-locations-block__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.18em;
  width: 4px;
  height: 1.05em;
  background: var(--igf-yellow);
  border-radius: 2px;
}

.history-locations-block__map-wrap {
  text-align: center;
  margin-top: 0.85rem;
  padding: 1.35rem clamp(1rem, 3vw, 2rem);
  background: #fff;
  border: 1px solid rgba(201, 216, 232, 0.78);
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(11, 91, 215, 0.07);
}

.history-locations-block__map {
  max-width: min(1000px, 100%);
  width: 100%;
  height: auto;
  display: inline-block;
  vertical-align: middle;
}

/* Legacy History HTML: map image without .history-locations-block__map-wrap */
.history-legacy-root .history-locations-block > div[style*="text-align: center"] > img,
.history-legacy-root .col-xs-12.history-locations-block > div[style*="text-align: center"] > img.img-responsive {
  display: block;
  box-sizing: border-box;
  margin: 0.85rem auto 0;
  padding: 1.35rem clamp(1rem, 3vw, 2rem);
  background: #fff;
  border: 1px solid rgba(201, 216, 232, 0.78);
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(11, 91, 215, 0.07);
  max-width: min(1000px, 100%);
  width: 100%;
  height: auto;
}

.history-legacy-root table.CKTableStyle01 td:first-child {
  font-weight: 700;
  font-size: 0.96rem;
  font-variant-numeric: tabular-nums;
  color: var(--igf-blue-dark);
  white-space: nowrap;
}

.history-legacy-root table.CKTableStyle01 td:nth-child(3) {
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: 4.35rem;
  height: 4.35rem;
}

.history-legacy-root table.CKTableStyle01 img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: left center;
}

@media (max-width: 575px) {
  .history-legacy-root table.CKTableStyle01 {
    grid-template-columns: 1fr;
  }
}

/* Flatten wrapper divs between stacked tables */
.history-legacy-root .row > div[class*="col-sm-6"] + div[class*="col-sm-6"] > div:not(:first-child),
.history-legacy-root .row > div[class*="col-md-6"] + div[class*="col-md-6"] > div:not(:first-child),
.history-legacy-root .row > div[class*="col-lg-6"] + div[class*="col-lg-6"] > div:not(:first-child) {
  margin: 0;
  padding: 0;
}

/* Map: title outside the card — wrapper is flat; card only on <center> (image block) */
.history-legacy-root .col-xs-12:not([class*="col-sm-6"]):not([class*="col-md-6"]):not([class*="col-lg-6"]) > div[style*="text-align: center"],
.history-legacy-root .col-12:not([class*="col-sm-"]):not([class*="col-md-"]):not([class*="col-lg-"]) > div[style*="text-align: center"] {
  margin-top: 1.75rem;
  margin-bottom: 0.5rem;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  text-align: left !important;
}

.history-legacy-root .col-xs-12:not([class*="col-sm-6"]):not([class*="col-md-6"]):not([class*="col-lg-6"]) > div[style*="text-align: center"] > center,
.history-legacy-root .col-12:not([class*="col-sm-"]):not([class*="col-md-"]):not([class*="col-lg-"]) > div[style*="text-align: center"] > center {
  display: block;
  margin-top: 0;
  padding: 1.35rem 1.25rem 1.5rem;
  background: #fff;
  border: 1px solid rgba(201, 216, 232, 0.75);
  border-radius: calc(var(--igf-radius-lg) + 2px);
  box-shadow: 0 10px 36px rgba(11, 91, 215, 0.055);
  text-align: center;
}

.history-legacy-root .col-xs-12:not([class*="col-sm-6"]):not([class*="col-md-6"]):not([class*="col-lg-6"]) > div[style*="text-align: center"] center strong,
.history-legacy-root .col-12:not([class*="col-sm-"]):not([class*="col-md-"]):not([class*="col-lg-"]) > div[style*="text-align: center"] center strong {
  display: block;
  margin: 0;
  font-weight: normal;
}

.history-legacy-root img[src*="MapaNaWWW"] {
  width: 100% !important;
  height: auto !important;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
  display: block;
}

/* ——— Key dates — blue + ivory rows (no outer list wrapper) ——— */
.key-dates-milestones-wrap {
  max-width: min(64rem, 96vw);
  margin-inline: auto;
}

.key-dates-milestones {
  padding: 0;
}

.key-dates-milestone {
  margin-bottom: clamp(1.05rem, 2.6vw, 1.45rem);
}

.key-dates-milestone:last-child {
  margin-bottom: 0;
}

.key-dates-milestone__card {
  display: grid;
  grid-template-columns: minmax(11.25rem, 32%) minmax(0, 1fr);
  align-items: stretch;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(15, 112, 183, 0.22);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.78) inset,
    0 8px 28px rgba(11, 91, 215, 0.085),
    0 2px 8px rgba(29, 154, 237, 0.065);
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

.key-dates-milestone__card:hover {
  transform: translateY(-2px);
  border-color: rgba(15, 112, 183, 0.32);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.92) inset,
    0 12px 34px rgba(15, 112, 183, 0.11),
    0 4px 12px rgba(11, 91, 215, 0.06);
}

.key-dates-milestone__card:focus-within {
  outline: 2px solid rgba(15, 112, 183, 0.48);
  outline-offset: 3px;
}

/* Brand blue column — hero-aligned gradient */
.key-dates-milestone__date-panel {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.35rem;
  padding: clamp(1.1rem, 2.4vw, 1.45rem) clamp(1rem, 2.2vw, 1.25rem);
  background: linear-gradient(90deg, var(--igf-blue-g3) 0%, var(--igf-blue) 52%, var(--igf-blue-g5) 100%);
  color: #fff;
}

.key-dates-milestone__date-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.22;
  background: radial-gradient(120% 80% at 20% 20%, rgba(255, 255, 255, 0.35), transparent 55%);
}

.key-dates-milestone__date-panel > * {
  position: relative;
  z-index: 1;
}

.key-dates-milestone__body-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.35rem;
  padding: clamp(1.1rem, 2.4vw, 1.45rem) clamp(1.15rem, 2.6vw, 1.65rem);
  background: linear-gradient(180deg, #ffffff 0%, #f7fbff 55%, #f2f8fc 100%);
  border-left: 3px solid rgba(15, 112, 183, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

.key-dates-milestone__date-primary {
  font-size: clamp(1.08rem, 2.1vw, 1.38rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.035em;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
  color: #fff;
  text-shadow: 0 1px 12px rgba(0, 20, 40, 0.22);
  margin: 0;
}

.key-dates-milestone__extended {
  display: flex;
  flex-direction: column;
  gap: 0.42rem;
}

.key-dates-milestone__extended-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}

.key-dates-milestone__date-orig {
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.42);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(255, 255, 255, 0.28);
}

.key-dates-milestone__extended-tag {
  display: inline-flex;
  align-items: center;
  font-size: 0.5rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  padding: 0.1rem 0.34rem;
  border-radius: 4px;
  color: #3d3300;
  background: rgba(252, 195, 0, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
}

.key-dates-milestone__title {
  font-size: clamp(1.05rem, 1.75vw, 1.22rem);
  font-weight: 600;
  line-height: 1.48;
  letter-spacing: -0.018em;
  margin: 0;
  color: var(--igf-text);
}

.key-dates-milestone__note {
  margin-top: 0.15rem;
  font-size: 0.92rem;
  line-height: 1.58;
  font-weight: 400;
  color: var(--igf-text-muted);
}

.key-dates-page__empty {
  max-width: 40rem;
  font-size: 0.98rem;
}

@media (max-width: 767.98px) {
  .key-dates-milestone__card {
    grid-template-columns: 1fr;
  }

  .key-dates-milestone__date-panel {
    border-radius: 14px 14px 0 0;
    padding-bottom: 1rem;
  }

  .key-dates-milestone__body-panel {
    border-left: none;
    border-top: 3px solid rgba(15, 112, 183, 0.28);
    border-radius: 0 0 14px 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .key-dates-milestone__card {
    transition: none;
  }

  .key-dates-milestone__card:hover {
    transform: none;
  }
}

/* ——— Homepage sections ——— */
.home-section {
  position: relative;
  border-top: 1px solid rgba(210, 222, 235, 0.34);
}

.home-section--tight-hero {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
  background: #fff;
}

.invitation-section-inner {
  padding-top: 2.5rem !important;
  padding-bottom: 3.25rem !important;
}

@media (min-width: 992px) {
  .invitation-section-inner {
    padding-top: 3.25rem !important;
    padding-bottom: 3.75rem !important;
  }
}

.home-section--invitation {
  background: #fff;
  overflow-x: clip;
}

.home-section--invitation::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.35;
  background-image: radial-gradient(rgba(29, 154, 237, 0.04) 1px, transparent 1px);
  background-size: 22px 22px;
  mask-image: linear-gradient(to bottom, transparent 0%, #000 12%, #000 88%, transparent 100%);
}

/* Invitation — desktop: right image stack matches left column height (three equal bands, object-fit cover) */
.invitation-split--sync {
  position: relative;
}

@media (min-width: 992px) {
  .invitation-split--sync {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 3rem;
  }

  .invitation-split__row {
    flex: 1 1 0;
    min-width: 0;
    margin-bottom: 0;
  }

  .invitation-split__collage.invitation-collage--sync {
    flex: 1 1 0;
    min-width: 0;
    min-height: 0;
    align-self: stretch;
    display: flex !important;
    flex-direction: column;
    gap: 1rem !important;
  }

  .invitation-collage--sync .invitation-collage__tile {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
  }

  .invitation-collage--sync .invitation-collage__media {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    overflow: hidden;
  }

  .invitation-collage--sync .invitation-collage__img {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .invitation-collage--sync .invitation-collage__cap {
    flex: 0 0 auto;
  }
}

@media (max-width: 991.98px) {
  .invitation-split__collage.invitation-collage--sync {
    margin-top: 0.25rem;
  }

  .invitation-collage--sync .invitation-collage__media {
    aspect-ratio: 16 / 10;
    max-height: min(220px, 52vw);
  }

  .invitation-collage--sync.invitation-collage--tiles-2 .invitation-collage__media {
    max-height: min(280px, 58vw);
  }
}

/* Important Dates + School Chairs — shared editorial blue depth (Important Dates = colour base) */
.home-section--dates.home-section--depth,
.home-section--chairs.home-section--depth {
  background-color: var(--igf-blue-g1);
  background-image: var(--igf-gradient-section-alt);
  border-top-color: rgba(255, 255, 255, 0.12);
  color: rgba(248, 252, 255, 0.98);
  isolation: isolate;
  overflow: hidden;
}

.home-section--dates.home-section--depth::before,
.home-section--chairs.home-section--depth::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 1;
  background: linear-gradient(
    180deg,
    rgba(1, 82, 201, 0.18) 0%,
    transparent 42%,
    transparent 58%,
    rgba(11, 91, 215, 0.14) 100%
  );
}

/* Important Dates — lewy: większy motyw, pełna wysokość, przyklejony do lewej krawędzi sekcji (= strony); prawy bez zmian */
.home-section--dates.home-section--depth::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.28;
  background-image: url("../site/home-importantdates-bg.png");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}

/* School Chairs — lewy ripple: wyraźnie niższa opacity linii; bez globalnego przyciemniania całej warstwy */
.home-section--chairs.home-section--depth::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.28;
  background-image: url("../site/home-schoolchairs-bg.png");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}

.home-section--dates > .container,
.home-section--dates .section-heading,
.home-section--dates .dates-section-inner,
.home-section--dates .dates-timeline,
.home-section--dates .dates-section__cta,
.home-section--dates .home-empty-panel {
  position: relative;
  z-index: 1;
}

.home-section--chairs > .container,
.home-section--chairs .section-heading,
.home-section--chairs .chairs-section-inner,
.home-section--chairs .people-row,
.home-section--chairs .home-empty-panel,
.home-section--chairs .person-card {
  position: relative;
  z-index: 1;
}

.home-section--dates .section-heading--on-dark .section-heading__title,
.home-section--chairs .section-heading--on-dark .section-heading__title {
  text-shadow: 0 1px 16px rgba(0, 0, 0, 0.28);
}

.home-section--news.home-section--paper {
  background: #fff;
}

.home-section--news.home-section--paper.home-section--news-hub {
  background: linear-gradient(180deg, #fffdfb 0%, #ffffff 45%, #faf8f5 100%);
  border-top-color: rgba(42, 36, 28, 0.08);
}

.home-section--news.home-section--paper::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.22;
  background-image: radial-gradient(rgba(29, 154, 237, 0.04) 1px, transparent 1px);
  background-size: 22px 22px;
}

.home-section--news-hub::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(1, 120, 228, 0.24), rgba(252, 195, 0, 0.35), rgba(1, 120, 228, 0.24), transparent);
  opacity: 0.55;
}

.news-hub__head .section-heading__kicker {
  padding-left: 1.1rem;
}

.home-section--chairs .home-empty-panel {
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(255, 255, 255, 0.22);
  color: rgba(240, 248, 255, 0.92);
}

.home-section--chairs .home-empty-panel .text-muted {
  color: rgba(210, 225, 238, 0.82) !important;
}

.home-section--chairs .person-card.person-card--chair {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.55);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.65) inset,
    0 8px 22px rgba(4, 36, 62, 0.12),
    0 1px 6px rgba(4, 36, 62, 0.06);
}

.home-section--chairs .person-card.person-card--chair:hover {
  border-color: rgba(255, 255, 255, 0.75);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.82) inset,
    0 10px 26px rgba(4, 36, 62, 0.14),
    0 2px 8px rgba(4, 36, 62, 0.07);
}

/* Chair cards sit on light panels — names must stay dark (section sets light text on children) */
.home-section--chairs .person-card.person-card--chair .person-card__name {
  color: var(--igf-text);
}

.home-section--chairs .person-card.person-card--chair .person-card__affiliation {
  color: var(--igf-text-muted);
}

.home-section--keynotes.home-section--depth-soft {
  background: var(--igf-gradient-soft-surface);
  box-shadow: 0 22px 48px -36px rgba(11, 91, 215, 0.14);
}

.home-section--keynotes.home-section--depth-soft::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 1;
  background:
    radial-gradient(ellipse 85% 55% at 72% 0%, rgba(29, 154, 237, 0.07), transparent 52%),
    radial-gradient(ellipse 70% 50% at 8% 100%, rgba(1, 120, 228, 0.06), transparent 55%);
}

.home-section--keynotes .keynotes-section-inner,
.home-section--keynotes > .container,
.home-section--keynotes .section-heading,
.home-section--keynotes .home-empty-panel,
.home-section--keynotes .person-card,
.home-section--keynotes .row {
  position: relative;
  z-index: 1;
}

.home-section--keynotes + .home-section--sponsor-wall {
  border-top-color: rgba(160, 188, 212, 0.55);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    0 -18px 48px -28px rgba(15, 112, 183, 0.12);
}

.home-section--materials.home-section--deck:not(.home-section--resources) {
  position: relative;
  background: linear-gradient(180deg, #f4f8fc 0%, #fff 42%, #eef4fb 100%);
  border-top: 1px solid rgba(15, 112, 183, 0.14);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

.home-section--materials.home-section--deck:not(.home-section--resources)::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.22;
  background: linear-gradient(125deg, transparent 42%, rgba(29, 154, 237, 0.04) 68%, transparent 100%);
}

.home-section--materials.home-section--deck:not(.home-section--resources)::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(15, 112, 183, 0.18), transparent);
  pointer-events: none;
}

.home-section--materials.home-section--deck.home-section--resources {
  position: relative;
  background: var(--igf-gradient-materials);
  border-top: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.home-section--materials.home-section--deck.home-section--resources::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.3;
  background-image:
    radial-gradient(rgba(29, 154, 237, 0.055) 1px, transparent 1px),
    linear-gradient(112deg, transparent 28%, rgba(255, 255, 255, 0.22) 50%, transparent 72%);
  background-size: 19px 19px, auto;
  mask-image: linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%);
}

.home-section--materials.home-section--deck.home-section--resources::after {
  content: none;
}

.home-section--news {
  border-top-color: rgba(42, 36, 28, 0.09);
}

.home-section--chairs {
  border-top-color: rgba(255, 255, 255, 0.28);
}

.home-section--keynotes {
  border-top-color: rgba(180, 200, 218, 0.45);
  isolation: isolate;
}

.home-section--sponsor-wall {
  background: linear-gradient(180deg, #fbfdff 0%, #f7fafc 50%, #f4f8fb 100%);
  border-top: 1px solid rgba(190, 210, 228, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.88);
}

.home-section--sponsor-wall::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.2;
  background-image: radial-gradient(rgba(29, 154, 237, 0.028) 1px, transparent 1px);
  background-size: 26px 26px;
}

.home-section--sponsor-wall::after {
  content: none;
}

.home-section--sponsors:not(.home-section--sponsor-wall),
.home-section--sponsors-supporters:not(.home-section--sponsor-wall) {
  background: #fff;
}

.home-section--sponsors,
.home-section--partners,
.home-section--sponsors-supporters {
  border-top-color: rgba(210, 222, 235, 0.45);
}

.home-section--after-sponsor-ecosystem {
  border-top: none !important;
  box-shadow: none;
}

.home-section--after-sponsor-ecosystem .sponsor-section-inner {
  padding-top: 1.75rem !important;
}

.sponsor-ecosystem__inner .sponsor-ecosystem__grid:last-of-type {
  margin-bottom: 0;
}

.home-section--sponsors-supporters.home-section--sponsor-wall {
  background: linear-gradient(180deg, #fbfdff 0%, #f7fafc 50%, #f4f8fb 100%);
  border-top: none;
  box-shadow: none;
}

.section-heading--ecosystem-sub .section-heading__title {
  font-size: clamp(1.22rem, 2.2vw, 1.45rem);
  font-weight: 700;
  color: rgba(26, 36, 48, 0.72);
}

.section-heading--ecosystem-sub .section-heading__title::before {
  opacity: 0.65;
  height: 0.95em;
  top: 0.18em;
}

.home-section--materials {
  border-top-color: rgba(210, 222, 235, 0.55);
}

.home-section--institutions {
  background-color: #fff;
  background-image: none;
  border-top-color: rgba(218, 226, 234, 0.65);
}

.site-institutions {
  background: #fff;
  border-top: 1px solid rgba(218, 226, 234, 0.75);
}

.site-institutions__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem 1.5rem;
  align-items: start;
  justify-items: center;
}

.site-institutions__col {
  width: 100%;
  max-width: 28rem;
}

.site-institutions__label {
  letter-spacing: 0.08em;
  font-size: 0.72rem;
  text-align: center;
  margin-bottom: 0.85rem !important;
}

.site-institutions__logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.85rem 1.25rem;
  min-height: 3.5rem;
}

.site-institutions__col--multi .site-institutions__logos {
  gap: 1rem 1.5rem;
}

.site-institutions__logo-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 1 auto;
  max-width: min(100%, 14rem);
  line-height: 0;
}

.site-institutions__col--auspices .site-institutions__logo-link {
  flex: 1 1 7.5rem;
  max-width: min(48%, 13.5rem);
}

.site-institutions__logo {
  max-height: 4.5rem;
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

@media (min-width: 992px) {
  .site-institutions__grid {
    grid-template-columns: var(--site-inst-grid, 1fr);
    gap: 2rem 2.5rem;
    justify-items: stretch;
  }

  .site-institutions__col {
    max-width: none;
  }

  .site-institutions__col .site-institutions__logos {
    justify-content: center;
  }

  .site-institutions__col--auspices .site-institutions__logos {
    justify-content: center;
  }

  .site-institutions__col--auspices .site-institutions__logo-link {
    max-width: min(46%, 15rem);
  }

  .site-institutions__logo {
    max-height: 4.75rem;
  }
}

.section-heading {
  max-width: 48rem;
}

.section-heading__title {
  font-weight: 800;
  font-size: clamp(1.55rem, 2.85vw, 2.1rem);
  margin: 0;
  position: relative;
  padding-left: 1.1rem;
  line-height: 1.18;
  letter-spacing: -0.025em;
  color: var(--igf-text);
}

.section-heading--on-dark .section-heading__title {
  color: #f2f7fc;
  text-shadow: 0 1px 20px rgba(0, 0, 0, 0.35);
}

.section-heading__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: var(--igf-title-accent-top);
  width: var(--igf-title-accent-w);
  height: var(--igf-title-accent-h);
  background: var(--igf-yellow);
  border-radius: var(--igf-title-accent-radius);
}

.section-heading__lead {
  font-size: 0.98rem;
  color: #4b5c6f;
  margin-top: 0.55rem;
  padding-left: 1.1rem;
  line-height: 1.62;
}

.section-heading__kicker {
  font-size: 0.95rem;
  color: #5a6b7d;
  font-weight: 500;
  line-height: 1.55;
  max-width: 40rem;
}

.section-heading--split {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  max-width: none;
}

.section-heading--split .section-heading__title {
  margin-bottom: 0;
}

.section-heading--on-dark .section-heading__lead {
  color: rgba(214, 226, 238, 0.82);
}

/* Invitation */
.invitation-panel {
  background: #fff;
  border: 1px solid var(--igf-border);
  border-radius: var(--igf-radius-lg);
  box-shadow: var(--igf-shadow);
  padding: 2rem 1.65rem 1.85rem;
}

@media (min-width: 768px) {
  .invitation-panel {
    padding: 2.15rem 2.1rem 2rem;
  }
}

.invitation-panel__title {
  font-size: 1.28rem;
  font-weight: 700;
  margin-bottom: 1.1rem;
  letter-spacing: -0.01em;
  color: var(--igf-blue);
}

.invitation-prose {
  font-size: 1.02rem;
  color: #3d4d5f;
  line-height: 1.72;
}

.invitation-prose__p {
  margin-bottom: 1.05rem;
  line-height: 1.78;
}

.invitation-signoff {
  font-size: 0.95rem;
  color: var(--igf-text-muted);
  margin-top: 0.25rem;
}

.invitation-cta-row {
  gap: 0.65rem !important;
}

.invitation-social {
  margin-top: 1.75rem !important;
  padding-top: 1.35rem !important;
}

.invitation-social__label {
  letter-spacing: 0.06em;
  margin-bottom: 0.65rem !important;
}

.invitation-social__links {
  justify-content: flex-start;
}

/* Invitation — vertical editorial stack (3 tiles) */
.invitation-collage {
  width: 100%;
  max-width: 100%;
  min-height: 0;
  min-width: 0;
}

.invitation-collage__tile {
  position: relative;
  margin: 0;
  width: 100%;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  border-radius: calc(var(--igf-radius-md) + 4px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.55);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.55) inset,
    0 14px 36px rgba(11, 91, 215, 0.12);
  background: #fff;
}

.invitation-collage__media {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  background: linear-gradient(145deg, #dceefb 0%, #c6e0f8 100%);
}

.invitation-collage__open {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
  text-align: inherit;
}

.invitation-collage__open:focus-visible {
  outline: 2px solid var(--igf-blue);
  outline-offset: 2px;
}

.invitation-collage__zoom {
  position: absolute;
  right: 0.65rem;
  bottom: 0.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--igf-blue-dark);
  font-size: 1.05rem;
  box-shadow: 0 4px 14px rgba(11, 91, 215, 0.18);
  opacity: 0;
  transform: scale(0.92);
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: none;
}

.invitation-collage__tile:hover .invitation-collage__zoom,
.invitation-collage__open:focus-visible .invitation-collage__zoom {
  opacity: 1;
  transform: scale(1);
}

.invitation-collage__tile--fallback .invitation-collage__open {
  cursor: default;
  pointer-events: none;
}

.invitation-collage__tile--fallback .invitation-collage__zoom {
  display: none;
}

.igf-image-lightbox-modal .modal-body {
  background: #050a12;
}

.igf-image-lightbox-modal .igf-photo-gallery-modal__img {
  max-height: min(82vh, 960px);
}

.invitation-collage__img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.invitation-collage__tile:hover .invitation-collage__img {
  transform: scale(1.03);
}

.invitation-collage__tile--1 .invitation-collage__img {
  object-position: 50% 38%;
}

.invitation-collage__tile--2 .invitation-collage__img {
  object-position: 50% 48%;
}

.invitation-collage__tile--3 .invitation-collage__img {
  object-position: 50% 55%;
}

.invitation-collage__cap {
  display: block;
  flex: 0 0 auto;
  margin: 0;
  padding: 0.55rem 0.75rem 0.65rem;
  text-align: center;
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--igf-text-muted, #5c6d7e);
  background: #fff;
  border-top: 1px solid rgba(201, 216, 232, 0.72);
  line-height: 1.35;
}

.invitation-collage__tile--fallback .invitation-collage__media {
  background:
    radial-gradient(ellipse 80% 70% at 30% 30%, rgba(255, 255, 255, 0.45), transparent 55%),
    linear-gradient(155deg, #c4e0f9 0%, #7ec5eb 45%, #e8f4fd 100%);
}

.invitation-collage__tile--fallback .invitation-collage__img {
  display: none;
}

.invitation-collage__tile--fallback .invitation-collage__media::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.35;
  background-image: radial-gradient(rgba(255, 255, 255, 0.35) 1px, transparent 1px);
  background-size: 14px 14px;
}

@media (max-width: 575.98px) {
  .invitation-cta-row .btn-cta {
    flex: 1 1 100%;
    width: 100%;
  }
}

.btn-cta {
  font-weight: 600;
  font-size: 0.92rem;
  padding: 0.62rem 1.25rem;
  border-radius: 999px;
  letter-spacing: 0.01em;
  border: 2px solid transparent;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.25;
}

.btn-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(11, 91, 215, 0.14);
}

.btn-cta--primary {
  background: var(--igf-yellow);
  color: #0b2440;
  border-color: var(--igf-yellow);
}

.btn-cta--primary:hover {
  background: var(--igf-yellow-dark);
  border-color: var(--igf-yellow-dark);
  color: #061c34;
}

.btn-cta--secondary {
  background: var(--igf-blue);
  color: #fff;
  border-color: var(--igf-blue);
}

.btn-cta--secondary:hover {
  background: #0e67ab;
  border-color: #0e67ab;
  color: #fff;
}

.btn-cta--outline {
  background: #fff;
  color: var(--igf-blue);
  border-color: var(--igf-blue);
}

.btn-cta--outline:hover {
  background: var(--igf-blue-soft);
  color: var(--igf-blue);
}

.btn-cta--outline-blue {
  background: #fff;
  color: var(--igf-blue);
  border-color: rgba(1, 120, 228, 0.35);
}

.btn-cta--outline-blue:hover {
  background: #fff;
  border-color: var(--igf-blue);
  color: var(--igf-blue);
  box-shadow: var(--igf-shadow-hover);
}

.btn-cta--outline-on-dark {
  background: transparent;
  color: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.38);
}

.btn-cta--outline-on-dark:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(252, 195, 0, 0.55);
  color: #fff;
}

.btn-cta--sm {
  font-size: 0.82rem;
  padding: 0.45rem 0.95rem;
  border-radius: 999px;
}

.conference-visual {
  border-radius: var(--igf-radius-lg);
  overflow: hidden;
  border: 1px solid var(--igf-border);
  box-shadow: var(--igf-shadow);
  min-height: 240px;
  background: var(--igf-blue-soft);
}

.conference-visual__img {
  width: 100%;
  height: 100%;
  min-height: 260px;
  object-fit: cover;
  display: block;
}

.conference-visual__placeholder {
  min-height: 280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 2rem;
  background: linear-gradient(145deg, #e8f4fd 0%, #d8ecfb 50%, #edf6fe 100%);
  color: var(--igf-blue-dark);
  text-align: center;
}

.conference-visual__placeholder-kicker {
  font-weight: 800;
  font-size: 2rem;
  letter-spacing: 0.12em;
  color: var(--igf-blue);
}

.conference-visual__placeholder-text {
  font-size: 0.9rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.85;
}

.conference-visual--kv {
  position: relative;
  min-height: 300px;
  border: 1px solid rgba(255, 255, 255, 0.55);
  box-shadow:
    0 16px 48px rgba(11, 91, 215, 0.14),
    0 0 0 1px rgba(29, 154, 237, 0.06) inset;
  background: var(--igf-gradient-kv);
}

.conference-visual--kv .conference-visual__img {
  min-height: 300px;
}

.conference-visual__kv-art {
  position: relative;
  min-height: 300px;
  overflow: hidden;
}

.conference-visual__kv-gradient {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 85% 65% at 18% 22%, rgba(255, 255, 255, 0.55), transparent 55%),
    radial-gradient(ellipse 70% 55% at 88% 78%, rgba(29, 154, 237, 0.26), transparent 52%),
    linear-gradient(165deg, rgba(11, 91, 215, 0.1) 0%, transparent 45%);
}

.conference-visual__kv-waves {
  position: absolute;
  left: -6%;
  right: -6%;
  bottom: -10%;
  width: 112%;
  height: 78%;
  opacity: 0.95;
  animation: conference-kv-waves 20s ease-in-out infinite alternate;
}

@keyframes conference-kv-waves {
  from {
    transform: translate3d(-2%, 0, 0);
  }

  to {
    transform: translate3d(2%, -1.5%, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .conference-visual__kv-waves {
    animation: none;
  }
}

.conference-visual__kv-grid {
  position: absolute;
  inset: 0;
  opacity: 0.22;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.07) 1px, transparent 1px);
  background-size: 26px 26px;
  mask-image: radial-gradient(ellipse 85% 75% at 50% 45%, #000 20%, transparent 75%);
}

.conference-visual__kv-mark {
  position: absolute;
  left: 8%;
  bottom: 11%;
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.conference-visual__kv-ish {
  font-weight: 800;
  font-size: clamp(2rem, 4.2vw, 2.85rem);
  letter-spacing: 0.22em;
  color: rgba(255, 255, 255, 0.94);
  text-shadow: 0 2px 24px rgba(1, 82, 201, 0.45);
}

.conference-visual__kv-line {
  width: 52px;
  height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--igf-yellow), rgba(252, 195, 0, 0.35));
  box-shadow: none;
}

.btn-social {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  color: var(--igf-blue);
  border: 2px solid var(--igf-border);
  background: #fff;
  padding: 0;
}

.btn-social:hover {
  color: #fff;
  background: var(--igf-blue);
  border-color: var(--igf-blue);
}

/* Important dates — compact horizontal timeline (balanced dates, editorial rhythm) */
.dates-section-inner {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

.dates-section-inner .section-heading {
  margin-bottom: 1.35rem !important;
}

.dates-section-inner .section-heading__title {
  font-size: clamp(1.28rem, 2.1vw, 1.58rem);
  line-height: 1.2;
}

.dates-timeline--horizontal {
  max-width: 64rem;
  margin-inline: auto;
  padding-inline: clamp(0.1rem, 1.2vw, 0.5rem);
}

.dates-timeline__grid {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.dates-timeline__row--dates,
.dates-timeline__row--axis,
.dates-timeline__row--meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: clamp(1rem, 3.5vw, 2.35rem);
}

.dates-timeline__cell--dates {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-width: 0;
  padding-inline: 0.25rem;
}

.dates-timeline__milestone-dates {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.65rem;
}

/* All milestone dates: same size & weight (single + extended current) */
.dates-timeline__date-current {
  display: block;
  font-size: clamp(1.12rem, 1.65vw, 1.32rem);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
}

.dates-timeline__date-stack--extended {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.32rem;
  width: 100%;
}

.dates-timeline__extended-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.4rem 0.5rem;
}

.dates-timeline__date-past {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.38);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(255, 255, 255, 0.24);
}

.dates-timeline__extended-badge {
  display: inline-block;
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  padding: 0.14rem 0.42rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(0, 18, 40, 0.16);
  line-height: 1;
}

.dates-timeline__row--axis {
  position: relative;
  align-items: center;
  min-height: 1.85rem;
  margin-top: 0.5rem;
  margin-bottom: 0.65rem;
}

.dates-timeline__line {
  grid-column: 1 / -1;
  grid-row: 1;
  align-self: center;
  z-index: 0;
  height: 2px;
  margin: 0 7%;
  border-radius: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.14) 12%,
    rgba(255, 255, 255, 0.32) 50%,
    rgba(255, 255, 255, 0.14) 88%,
    transparent 100%
  );
  pointer-events: none;
}

.dates-timeline__cell--axis {
  grid-row: 1;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}

.dates-timeline__row--axis > .dates-timeline__cell--axis:nth-child(2) {
  grid-column: 1;
}

.dates-timeline__row--axis > .dates-timeline__cell--axis:nth-child(3) {
  grid-column: 2;
}

.dates-timeline__row--axis > .dates-timeline__cell--axis:nth-child(4) {
  grid-column: 3;
}

.dates-timeline__dot {
  display: block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.95), rgba(230, 242, 255, 0.88));
  border: 2px solid rgba(15, 112, 183, 0.38);
  box-shadow:
    0 0 0 3px rgba(29, 154, 237, 0.34),
    0 0 10px rgba(11, 91, 215, 0.12);
}

.dates-timeline__cell--meta {
  min-width: 0;
  padding-inline: 0.25rem;
}

.dates-timeline__milestone {
  text-align: center;
  max-width: 18rem;
  margin-inline: auto;
  padding: 0;
  border-radius: 0;
  background: none;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.dates-timeline__milestone-title {
  font-size: clamp(0.92rem, 1.15vw, 1.02rem);
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.32;
  color: rgba(255, 255, 255, 0.94);
  margin: 0 0 0.28rem;
}

.dates-timeline__milestone-note {
  font-size: 0.8rem;
  line-height: 1.48;
  color: rgba(218, 234, 248, 0.68);
}

.dates-section__cta {
  margin-top: 1.65rem !important;
  padding-top: 0.25rem !important;
  text-align: center;
}

.btn-cta--dates-secondary {
  font-weight: 700;
  font-size: 0.74rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.65rem 1.65rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.07);
  color: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.44);
  box-shadow: none;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;
}

.btn-cta--dates-secondary:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.58);
  color: #fff;
  box-shadow: none;
  transform: translateY(-0.5px);
}

.dates-section__cta .btn-cta--dates-secondary {
  min-width: min(100%, 15.5rem);
}

@media (max-width: 767.98px) {
  .dates-timeline--horizontal {
    margin-inline: -0.35rem;
  }

  .dates-timeline__grid {
    overflow-x: auto;
    overflow-y: visible;
    padding-bottom: 0.25rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
  }

  .dates-timeline__row--dates,
  .dates-timeline__row--axis,
  .dates-timeline__row--meta {
    min-width: 30rem;
  }

  .dates-timeline__row--dates,
  .dates-timeline__row--axis,
  .dates-timeline__row--meta {
    column-gap: 1.1rem;
  }
}

/* News */
.news-section-inner {
  padding-top: 3.25rem !important;
  padding-bottom: 3.85rem !important;
}

.chairs-section-inner {
  position: relative;
  z-index: 1;
  padding-top: 3.35rem !important;
  padding-bottom: 3.55rem !important;
}

.keynotes-section-inner {
  padding-top: 3.35rem !important;
  padding-bottom: 3.85rem !important;
}

.news-card-row {
  --bs-gutter-y: 1.5rem;
}

.news-card {
  background: #fff;
  border-radius: var(--igf-radius-lg);
  border: 1px solid var(--igf-border);
  box-shadow: var(--igf-shadow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.news-card:hover {
  box-shadow: var(--igf-shadow-hover);
  border-color: rgba(15, 112, 183, 0.2);
}

.news-card__media {
  aspect-ratio: 16 / 9;
  background: var(--igf-blue-soft);
  overflow: hidden;
}

.news-card__media-link {
  text-decoration: none;
  color: inherit;
}

.news-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.news-card__body {
  padding: 1.5rem 1.45rem 1.55rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.news-card__meta {
  color: var(--igf-text-muted);
  margin-bottom: 0.65rem;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
}

.news-card__category {
  color: var(--igf-blue);
}

.news-card__dot {
  margin: 0 0.25rem;
}

.news-card__title {
  font-size: 1.18rem;
  font-weight: 800;
  margin: 0 0 0.65rem;
  line-height: 1.32;
  color: var(--igf-text);
  letter-spacing: -0.015em;
}

.news-card__excerpt {
  font-size: 0.94rem;
  color: var(--igf-text-muted);
  line-height: 1.6;
}

.news-card--editorial {
  border-radius: calc(var(--igf-radius-lg) + 2px);
  border: 1px solid rgba(201, 216, 232, 0.75);
  border-left: 3px solid var(--igf-yellow);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 6px 26px rgba(11, 91, 215, 0.05);
}

.news-card__title-link {
  color: inherit;
  text-decoration: none;
}

.news-card__title-link:hover {
  color: var(--igf-blue);
}

.news-card__title-text {
  display: inline-block;
  color: inherit;
}

.news-card--editorial:hover {
  border-color: rgba(15, 112, 183, 0.22);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 1) inset,
    0 12px 36px rgba(11, 91, 215, 0.09);
}

.news-card--editorial:hover .news-card__title-link {
  color: var(--igf-blue);
}

@media (min-width: 576px) {
  .news-card--editorial {
    flex-direction: row;
    align-items: stretch;
  }

  .news-card--editorial .news-card__media {
    flex: 0 0 40%;
    max-width: 280px;
    aspect-ratio: 16 / 10;
  }

  .news-card--editorial .news-card__body {
    padding: 1.45rem 1.5rem 1.4rem;
  }
}

.news-card__read-more {
  display: inline-block;
  align-self: flex-start;
  margin-top: auto;
  padding-top: 0.75rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--igf-blue);
}

.news-card--editorial:hover .news-card__read-more {
  color: var(--igf-blue-dark);
}

.news-archive-wrap {
  background: linear-gradient(180deg, #fafdff 0%, #fff 40%, #f6f9fc 100%);
}

.news-archive-back {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--igf-blue-dark);
  text-decoration: none;
}

.news-archive-back:hover {
  color: var(--igf-blue);
  text-decoration: underline;
}

.news-article-full__title {
  font-size: clamp(1.65rem, 3.2vw, 2.35rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--igf-text);
}

.news-article-full__hero {
  border-radius: var(--igf-radius-lg);
  overflow: hidden;
  border: 1px solid var(--igf-border);
  box-shadow: var(--igf-shadow);
}

.news-article-full__hero-img {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(520px, 70vh);
  object-fit: cover;
}

.news-article-full__body {
  font-size: 1.02rem;
  line-height: 1.72;
  color: var(--igf-text);
}

.news-article-full__body img {
  max-width: 100%;
  height: auto;
}

.home-empty-panel {
  border-radius: var(--igf-radius-lg);
  border: 1px dashed var(--igf-border);
  background: #fff;
  padding: 2rem 1.5rem;
  text-align: center;
}

.programme-overview-page .prog-overview--placeholder {
  width: 100%;
}

.programme-overview-page .prog-overview--placeholder .home-empty-panel {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}

.premium-inner-page .home-empty-panel--inner-page {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  padding: 2.25rem 2rem;
  text-align: center;
}

.premium-inner-page .home-empty-panel--inner-page p {
  font-size: 1.05rem;
  line-height: 1.72;
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
}

.premium-inner-page .home-empty-panel--inner-page a {
  font-weight: 600;
  color: var(--igf-blue);
  text-decoration: none;
}

.premium-inner-page .home-empty-panel--inner-page a:hover {
  text-decoration: underline;
}

/* Conference materials (resource grid) */
.materials-section-inner {
  padding-top: 3.85rem !important;
  padding-bottom: 4.1rem !important;
}

.materials-section-inner .section-heading {
  margin-bottom: 1.75rem !important;
}

.resource-card-row {
  --bs-gutter-y: 1.5rem;
}

.resource-card {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  border: 1px solid rgba(201, 216, 232, 0.75);
  border-radius: calc(var(--igf-radius-lg) + 2px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 6px 26px rgba(11, 91, 215, 0.05);
  overflow: hidden;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.resource-card:hover {
  transform: translateY(-3px);
  border-color: rgba(15, 112, 183, 0.22);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 14px 38px rgba(11, 91, 215, 0.1);
}

.resource-card--showcase .resource-card__preview {
  position: relative;
  flex: 0 0 40%;
  max-width: 210px;
  min-width: 150px;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.4rem 1.15rem 1.35rem;
  background:
    linear-gradient(90deg, rgba(1, 82, 201, 0.96) 0%, rgba(15, 112, 183, 0.9) 100%);
  color: #fff;
  overflow: hidden;
}

.resource-card__preview.resource-card__preview--with-cover {
  background-image:
    linear-gradient(90deg, rgba(1, 82, 201, 0.86) 0%, rgba(15, 112, 183, 0.78) 100%),
    var(--resource-cover-image);
  background-size: cover;
  background-position: center;
}

.resource-card__preview-shine {
  position: absolute;
  inset: -45% -25%;
  background: linear-gradient(125deg, transparent 46%, rgba(255, 255, 255, 0.02) 50%, transparent 54%);
  transform: rotate(14deg);
  pointer-events: none;
  z-index: 0;
}

.resource-card__preview-icon {
  position: relative;
  z-index: 1;
  font-size: 2.4rem;
  opacity: 1;
  margin-bottom: auto;
  padding-top: 0.15rem;
  filter: drop-shadow(0 1px 4px rgba(0, 24, 48, 0.18));
}

.resource-card__ext-pill {
  position: relative;
  z-index: 1;
  align-self: flex-start;
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  padding: 0.3rem 0.58rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(6px);
}

.resource-card--showcase .resource-card__body {
  flex: 1;
  padding: 1.55rem 1.45rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-width: 0;
}

.resource-card--showcase .resource-card__title {
  font-size: 1.14rem;
  font-weight: 800;
  margin: 0;
  line-height: 1.28;
  letter-spacing: -0.02em;
  color: var(--igf-text);
}

.resource-card__blurb {
  font-size: 0.93rem;
  color: var(--igf-text-muted);
  line-height: 1.6;
  margin: 0;
}

.resource-card__actions {
  margin-top: auto;
  padding-top: 0.5rem;
}

@media (max-width: 767px) {
  .resource-card--showcase .resource-card__preview {
    flex: 0 0 38%;
    max-width: 180px;
    min-width: 132px;
    padding: 1.15rem 0.95rem 1.1rem;
  }

  .resource-card__preview-icon {
    font-size: 2rem;
  }
}

@media (max-width: 575px) {
  .resource-card--showcase {
    flex-direction: column;
  }

  .resource-card--showcase .resource-card__preview {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto;
    align-items: center;
    column-gap: 1.1rem;
    row-gap: 0;
    max-width: none;
    width: 100%;
    min-width: 0;
    min-height: 0;
    aspect-ratio: 16 / 9;
    padding: 1rem 1.2rem;
  }

  .resource-card__preview-shine {
    grid-column: 1 / -1;
    grid-row: 1 / -1;
  }

  .resource-card__preview-icon {
    grid-column: 1;
    grid-row: 1;
    margin-bottom: 0;
    padding-top: 0;
    font-size: 2.2rem;
    justify-self: start;
  }

  .resource-card__ext-pill {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    justify-self: start;
  }
}

.legacy-content--materials-legacy img {
  border-radius: var(--igf-radius-md);
  box-shadow: var(--igf-shadow);
  max-width: 100%;
  height: auto;
}

/* People cards */
.person-card {
  opacity: 1;
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  border-radius: calc(var(--igf-radius-lg) + 2px);
  border: 1px solid rgba(201, 216, 232, 0.8);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 6px 24px rgba(11, 91, 215, 0.05);
  padding: 1.95rem 1.35rem 1.65rem;
  display: flex;
  flex-direction: column;
  transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}

.person-card:hover {
  opacity: 1;
  transform: translateY(-2px);
  border-color: rgba(15, 112, 183, 0.2);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 14px 36px rgba(11, 91, 215, 0.09);
}

.person-card--chair,
.person-card--keynote {
  align-items: center;
}

.person-card__avatar-wrap {
  margin-bottom: 1rem;
}

.person-card__avatar {
  width: 148px;
  height: 148px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  box-shadow: 0 0 0 4px #fff, 0 0 0 7px var(--igf-yellow), 0 14px 32px rgba(15, 112, 183, 0.18);
  transition: box-shadow 0.32s cubic-bezier(0.22, 1, 0.36, 1), transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.person-card:hover .person-card__avatar {
  opacity: 1;
  transform: scale(1.015);
  box-shadow: 0 0 0 4px #fff, 0 0 0 7px var(--igf-blue), 0 14px 32px rgba(15, 112, 183, 0.2);
}

.person-card__avatar--photo {
  object-fit: cover;
  border: none;
  opacity: 1;
}

.person-card__avatar--initials {
  background:
    var(--igf-shell-shine),
    var(--igf-shell-blue);
  color: #fff;
  font-weight: 800;
  font-size: 2.1rem;
  letter-spacing: 0.02em;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    inset 0 -18px 36px rgba(1, 82, 201, 0.38),
    0 0 0 4px #fff,
    0 0 0 7px var(--igf-yellow),
    0 16px 36px rgba(15, 112, 183, 0.22);
}

.person-card:hover .person-card__avatar--initials {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    inset 0 -18px 36px rgba(1, 82, 201, 0.38),
    0 0 0 4px #fff,
    0 0 0 7px var(--igf-blue),
    0 16px 36px rgba(15, 112, 183, 0.22);
}

.person-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.person-card__role {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  background: var(--igf-blue-soft);
  color: var(--igf-blue);
  margin-bottom: 0.45rem;
}

.person-card__name {
  font-size: 1.08rem;
  font-weight: 800;
  margin: 0 0 0.35rem;
  line-height: 1.3;
  letter-spacing: -0.02em;
}

.person-card__affiliation {
  font-size: 0.9rem;
  color: var(--igf-text-muted);
  line-height: 1.52;
  max-width: 26rem;
}

.home-section--keynotes .person-card:hover {
  transform: translateY(-1px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 10px 28px rgba(11, 91, 215, 0.07);
}

.home-section--keynotes .person-card:hover .person-card__avatar {
  transform: scale(1.008);
}

.people-row {
  --bs-gutter-x: 1.35rem;
  --bs-gutter-y: 1.45rem;
}

/* Sponsor logo wall */
.sponsor-section-inner {
  padding-top: 3.15rem !important;
  padding-bottom: 3.35rem !important;
}

.sponsor-grid--premium {
  gap: 1.65rem;
}

.sponsor-grid--premium .sponsor-grid__cell {
  min-height: 120px;
  min-width: 0;
  padding: 1.35rem 1.15rem;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(251, 253, 255, 0.92) 100%);
  border: 1px solid rgba(201, 216, 232, 0.65);
  transition: border-color 0.25s ease;
}

.sponsor-grid--premium .sponsor-grid__cell:hover {
  transform: none;
  box-shadow: none;
  border-color: rgba(201, 216, 232, 0.75);
}

.sponsor-grid--premium .sponsor-grid__cell:hover .sponsor-grid__logo {
  transform: scale(1.028);
  filter: none;
}

.sponsor-grid--premium .sponsor-grid__logo {
  display: block;
  max-width: min(100%, 220px);
  width: auto;
  height: auto;
  max-height: 72px;
  object-fit: contain;
  transition: transform 0.35s ease;
}

@media (min-width: 768px) {
  .sponsor-grid--premium .sponsor-grid__logo {
    max-height: 80px;
  }
}

.sponsor-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  width: 100%;
  max-width: 100%;
}

.sponsor-grid img {
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

@media (min-width: 576px) {
  .sponsor-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 992px) {
  .sponsor-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.sponsor-grid__cell {
  background: #fbfdff;
  border: 1px solid var(--igf-border);
  border-radius: var(--igf-radius-md);
  min-height: 104px;
  min-width: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 0.85rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.sponsor-grid__cell:hover {
  border-color: var(--igf-blue);
  box-shadow: 0 8px 24px rgba(15, 112, 183, 0.1);
}

.sponsor-grid__cell.is-empty {
  opacity: 0.35;
}

.sponsor-grid__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  text-decoration: none;
}

.sponsor-grid__logo {
  max-width: 100%;
  max-height: 64px;
  width: auto;
  height: auto;
  object-fit: contain;
  transition: transform 0.25s ease, filter 0.25s ease;
}

.sponsor-grid__placeholder {
  text-align: center;
  padding: 0.5rem;
}

.legacy-content--sponsors .section-title,
.legacy-content--sponsors .section-title-wrapper .section-title {
  display: block;
  font-weight: 800;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--igf-blue-dark);
  margin: 2rem 0 1rem;
  padding-left: 1rem;
  position: relative;
}

.legacy-content--sponsors .section-title:first-child,
.legacy-content--sponsors > .section-title:first-of-type {
  margin-top: 0;
}

.legacy-content--sponsors .section-title::before,
.legacy-content--sponsors span.section-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.1em;
  width: 5px;
  height: 1.1em;
  background: var(--igf-yellow);
  border-radius: 3px;
}

.legacy-content--sponsors .sponsors {
  width: 100%;
}

.legacy-content--sponsors .sponsors__row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}

.legacy-content--sponsors .sponsors__cell {
  flex: 1 1 140px;
  max-width: 220px;
  text-align: center;
}

.legacy-content--sponsors .sponsors__cell img {
  max-height: 72px;
  width: auto;
  margin: 0 auto;
}

.legacy-content--institutions img {
  max-height: 80px;
  width: auto;
}

.reveal {
  opacity: 1;
  transform: none;
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Footer — same .container as page; narrow brand rail + wide single-row sitemap */
.site-footer {
  position: relative;
  background: linear-gradient(180deg, #182636 0%, #121820 100%);
  color: rgba(218, 228, 240, 0.76);
  border-top: 3px solid var(--igf-yellow);
  margin-top: 0;
  overflow: hidden;
}

.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(165deg, rgba(11, 91, 215, 0.14) 0%, transparent 42%, rgba(1, 82, 201, 0.1) 100%),
    radial-gradient(ellipse 90% 60% at 100% 0%, rgba(29, 154, 237, 0.08), transparent 55%);
}

.site-footer__upper {
  position: relative;
  z-index: 1;
  padding: 2.65rem 0 3.15rem;
}

.site-footer__rail {
  max-width: 20rem;
  padding-right: clamp(0.5rem, 2vw, 1.25rem);
}

.site-footer__brand-link {
  display: inline-block;
  margin-bottom: 0.85rem;
  opacity: 0.92;
  transition: opacity 0.2s ease;
}

.site-footer__brand-link:hover {
  opacity: 1;
}

.site-footer__brand-logo {
  display: block;
  max-height: 48px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
  filter: brightness(1.05);
}

.site-footer__brand-name {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: -0.012em;
  color: rgba(248, 252, 255, 0.94);
  margin: 0 0 0.3rem;
  line-height: 1.45;
}

.site-footer__brand-line {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  color: rgba(188, 204, 222, 0.62);
  margin: 0 0 1rem;
  line-height: 1.55;
  max-width: 20rem;
}

.site-footer__copy {
  font-size: 0.68rem;
  color: rgba(176, 192, 210, 0.68);
  margin: 0;
  line-height: 1.65;
}

.site-footer__mail {
  margin-top: 0.85rem;
}

.site-footer__link {
  color: rgba(228, 236, 248, 0.82);
  text-decoration: none;
  font-size: 0.68rem;
  line-height: 1.6;
  transition: color 0.2s ease;
}

.site-footer__link:hover {
  color: var(--igf-yellow);
  text-decoration: underline;
}

.site-footer__link--mail {
  font-weight: 500;
  color: rgba(255, 255, 255, 0.88);
  word-break: break-word;
}

.site-footer__social {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-top: 1.1rem;
}

.site-footer__legal {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.site-footer__legal li {
  margin-bottom: 0.38rem;
  line-height: 1.6;
}

.site-footer__legal .site-footer__link {
  font-size: 0.64rem;
  color: rgba(200, 214, 230, 0.7);
}

.site-footer__map {
  min-width: 0;
}

.site-footer__sitemap--strip {
  width: 100%;
}

.site-footer__sitemap-strip {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(0.5rem, 1.2vw, 1.1rem);
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0.15rem 0 0.35rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
  -webkit-overflow-scrolling: touch;
}

.site-footer__sitemap-strip::-webkit-scrollbar {
  height: 4px;
}

.site-footer__sitemap-strip::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
  border-radius: 999px;
}

.site-footer__sitemap-col {
  flex: 1 1 0;
  min-width: 4.75rem;
  padding-right: 0.15rem;
}

.site-footer__sitemap-parent {
  display: block;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(236, 244, 252, 0.9);
  text-decoration: none;
  line-height: 1.55;
  margin-bottom: 0.45rem;
  transition: color 0.18s ease;
}

.site-footer__sitemap-parent:hover {
  color: var(--igf-yellow);
}

.site-footer__sitemap-sub {
  padding-top: 0.1rem;
}

.site-footer__sitemap-sub li {
  margin-bottom: 0.28rem;
  line-height: 1.62;
}

.site-footer__sitemap-child {
  font-size: 0.625rem;
  font-weight: 500;
  color: rgba(188, 204, 220, 0.74);
  text-decoration: none;
  transition: color 0.18s ease;
}

.site-footer__sitemap-child:hover {
  color: rgba(252, 211, 90, 0.95);
}

.site-footer__icon {
  color: rgba(228, 236, 248, 0.8);
  font-size: 1.25rem;
  text-decoration: none;
  transition: color 0.2s ease, transform 0.2s ease;
}

.site-footer__icon:hover {
  color: var(--igf-yellow);
  transform: translateY(-1px);
}

@media (min-width: 1200px) {
  .site-footer__sitemap-col {
    min-width: 0;
  }
}

/* ——— Programme overview (weekly table + legacy time grid) & detailed agenda ——— */
.prog-overview__kicker {
  letter-spacing: 0.12em;
}

.prog-overview__updated {
  letter-spacing: 0.02em;
}

.prog-overview__footnotes {
  max-width: 42rem;
}

.prog-overview__footnotes p:last-child {
  margin-bottom: 0;
}

/* Programme overview — premium Word-style grid */
.prog-word-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  background: #fff;
  border: 1px solid rgba(15, 112, 183, 0.1);
  border-radius: 0.65rem;
  box-shadow: 0 14px 44px rgba(11, 91, 215, 0.07);
}

.prog-word-table {
  --prog-unit-h: 1.45rem;
  --prog-accent-w: 4px;
  --prog-time-bg: #e8f0f7;
  --prog-time-fg: #0a3d6b;
  --prog-border: rgba(15, 112, 183, 0.14);
  --prog-text: #1e3348;
  width: 100%;
  min-width: 60rem;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  margin: 0;
}

.prog-word-table__col-time {
  width: 3.55rem;
}

.prog-word-table__col-act {
  width: auto;
}

.prog-overview--hide-times .prog-word-table {
  min-width: 48rem;
}

.prog-overview--hide-times .prog-word-table__col-act--full {
  width: 20%;
}

.prog-overview--hide-times .prog-word-table__act {
  width: auto;
}

.prog-word-table thead th {
  background: linear-gradient(180deg, #1a66ad 0%, #0f5a9e 100%);
  color: #fff;
  font-weight: 800;
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: center;
  padding: 0.72rem 0.4rem;
  border: none;
  border-right: 1px solid rgba(255, 255, 255, 0.14);
  vertical-align: middle;
}

.prog-word-table thead th:last-child {
  border-right: none;
}

.prog-word-table tbody td {
  border: 1px solid var(--prog-border);
  vertical-align: middle;
  text-align: center;
  padding: 0.34rem 0.48rem;
  line-height: 1.35;
  color: var(--prog-text);
  font-size: 0.83rem;
}

.prog-word-table__row--body {
  height: var(--prog-unit-h);
}

/* Padding row at bottom of 9-unit days — keeps rowspan math, no visible white gap */
.prog-word-table__row--grid-spacer {
  height: 0 !important;
  line-height: 0;
  visibility: collapse;
}

.prog-word-table__row--eve {
  height: var(--prog-unit-h);
}

/* Time + EVENING — narrow, grid lines between each row */
.prog-word-table__time,
.prog-word-table__time--eve-label {
  width: 3.55rem;
  min-width: 3.55rem;
  max-width: 3.55rem;
  padding: 0.18rem 0.12rem;
  background: var(--prog-time-bg);
  color: var(--prog-time-fg);
  border-top: 1px solid var(--prog-border);
  border-bottom: 1px solid var(--prog-border);
}

.prog-word-table__time-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.04rem;
  width: 100%;
  height: 100%;
  min-height: 0;
  margin: 0 auto;
}

.prog-word-table__time-from,
.prog-word-table__time-to {
  display: block;
  font-weight: 800;
  font-size: 0.74rem;
  line-height: 1.12;
  letter-spacing: 0.02em;
  color: var(--prog-time-fg);
  white-space: nowrap;
}

.prog-word-table__time-sep {
  display: block;
  font-weight: 700;
  font-size: 0.68rem;
  line-height: 1;
  color: #4a7a9e;
}

.prog-word-table__time-stack--single .prog-word-table__time-from {
  font-size: 0.76rem;
}

/* EVENING label — horizontal, compact, same column style as hours */
.prog-word-table__time-stack--evening .prog-word-table__time-evening {
  display: block;
  font-weight: 800;
  font-size: 0.58rem;
  line-height: 1.15;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--prog-time-fg);
  writing-mode: horizontal-tb;
  transform: none;
  white-space: normal;
  text-align: center;
  max-width: 100%;
  padding: 0 0.05rem;
}

.prog-word-table__label {
  font-weight: 600;
  font-size: 0.83rem;
  line-height: 1.35;
  margin: 0;
  word-break: break-word;
  hyphens: auto;
}

/* Activity cells — unified left accent bar */
.prog-word-table__row--body .prog-word-table__act[class*="prog-word-table__act--kind-"],
.prog-word-table__row--eve .prog-word-table__act[class*="prog-word-table__act--kind-"]:not(.prog-word-table__act--eve-empty) {
  padding: 0.32rem 0.5rem 0.32rem 0.55rem;
  font-weight: 600;
  box-shadow: inset var(--prog-accent-w) 0 0 0 var(--prog-accent, rgba(30, 51, 72, 0.22));
}

/* A) Meals — warm sand / cream family (distinct from ceremony amber) */
.prog-word-table__act--kind-breakfast {
  --prog-accent: #d4bc6a;
  background: #fff4c2;
  color: #4a442e;
}

.prog-word-table__act--kind-lunch {
  --prog-accent: #c9b07a;
  background: #f8edd4;
  color: #4a442e;
}

.prog-word-table__act--kind-dinner {
  --prog-accent: #c9a06a;
  background: #fbe9d6;
  color: #453828;
}

/* B) Sessions */
.prog-word-table__act--kind-sessions {
  --prog-accent: #7aa8d4;
  background: #ddeafb;
  color: #1a3d5c;
}

/* C) Logistics */
.prog-word-table__act--kind-logistics {
  --prog-accent: #5eb8b0;
  background: #d6f0f3;
  color: #1a4a46;
}

/* D) Study trip */
.prog-word-table__act--kind-study-trip {
  --prog-accent: #7fb889;
  background: #dff3e0;
  color: #2a4a38;
}

/* E) Opening / Closing — soft amber / champagne (not meal beige) */
.prog-word-table__act--kind-ceremony {
  --prog-accent: #d9a84a;
  background: #ffe3b3;
  color: #5c4520;
}

/* F) Poster */
.prog-word-table__act--kind-poster {
  --prog-accent: #b892d4;
  background: #f3e0f7;
  color: #3f3650;
}

/* G) Registration */
.prog-word-table__act--kind-registration {
  --prog-accent: #a8b0ba;
  background: #f2f3f5;
  color: #3a4550;
}

/* H) Workshops */
.prog-word-table__act--kind-workshop {
  --prog-accent: #9f84d4;
  background: #e6ddf7;
  color: #3d2f5c;
}

.prog-word-table__act--kind-default {
  --prog-accent: #9aacbc;
  background: #f9fbfd;
  color: var(--prog-text);
}

/* Evening row */
.prog-word-table__row--eve .prog-word-table__act--kind-dinner {
  --prog-accent: #c9a06a;
  background: #f5e0cc;
  color: #453828;
}

.prog-word-table__row--eve .prog-word-table__act--kind-eve-muted,
.prog-word-table__act--eve-empty.prog-word-table__act--kind-eve-muted {
  background: #e9ecef;
  color: #a8b2bc;
  box-shadow: none;
}

.prog-word-table__row--eve .prog-word-table__label {
  font-size: 0.84rem;
  font-weight: 700;
}

.prog-word-table__empty {
  display: block;
  min-height: 0.3rem;
}

/* Subtle top edge before evening block */
.prog-word-table tbody tr.prog-word-table__row--eve:first-of-type td {
  border-top: 1px solid rgba(15, 112, 183, 0.2);
}

.prog-word-table thead tr:first-child th:first-child {
  border-top-left-radius: 0.6rem;
}

.prog-word-table thead tr:first-child th:last-child {
  border-top-right-radius: 0.6rem;
}

.prog-word-table tbody tr:last-child td:first-child {
  border-bottom-left-radius: 0.6rem;
}

.prog-word-table tbody tr:last-child td:last-child {
  border-bottom-right-radius: 0.6rem;
}

@media (max-width: 767px) {
  .prog-word-table {
    min-width: 54rem;
  }

  .prog-word-table__col-time,
  .prog-word-table__time,
  .prog-word-table__time--eve-label {
    width: 3.25rem;
    min-width: 3.25rem;
    max-width: 3.25rem;
  }

  .prog-word-table__time-from,
  .prog-word-table__time-to {
    font-size: 0.7rem;
  }

  .prog-word-table__time-stack--evening .prog-word-table__time-evening {
    font-size: 0.54rem;
  }

  .prog-word-table__label {
    font-size: 0.78rem;
  }
}

/* Programme overview — five-column week grid (legacy) */
.prog-week-grid {
  background: #fff;
  border: 1px solid rgba(15, 112, 183, 0.16);
  border-radius: var(--igf-radius-md);
  box-shadow: 0 10px 32px rgba(11, 91, 215, 0.07);
  overflow: hidden;
}

.prog-week-grid__header {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  background: linear-gradient(180deg, #1d6eb8 0%, #0f5a9e 100%);
}

.prog-week-grid__day-head {
  text-align: center;
  font-weight: 800;
  font-size: 0.92rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #fff;
  padding: 0.72rem 0.4rem;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.prog-week-grid__day-head:last-child {
  border-right: none;
}

.prog-week-grid__columns {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  min-height: 34rem;
}

.prog-week-col {
  border-right: 1px solid rgba(15, 112, 183, 0.18);
  min-width: 0;
}

.prog-week-col:last-child {
  border-right: none;
}

.prog-week-col__stack {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 34rem;
}

.prog-week-block {
  border-bottom: 1px solid rgba(15, 112, 183, 0.16);
  box-sizing: border-box;
}

.prog-week-block:last-child {
  border-bottom: none;
}

.prog-week-block--grow {
  flex: var(--block-weight, 1) 1 0;
  min-height: 5rem;
}

.prog-week-block--compact {
  flex: 0 0 auto;
}

.prog-week-block--evening {
  flex: 0 0 2.85rem;
  min-height: 2.85rem;
  max-height: 2.85rem;
  margin-top: auto;
}

.prog-week-block__layout {
  display: grid;
  grid-template-columns: 3.35rem minmax(0, 1fr);
  align-items: stretch;
  height: 100%;
}

.prog-week-block--compact .prog-week-block__layout {
  height: auto;
  min-height: 2.05rem;
}

.prog-week-block--evening .prog-week-block__layout {
  height: 100%;
  min-height: 2.85rem;
}

.prog-week-block__time {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.2rem 0.12rem;
  background: rgba(11, 91, 215, 0.1);
  border-right: 1px solid rgba(15, 112, 183, 0.14);
}

.prog-week-block__time span {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-weight: 700;
  font-size: 0.7rem;
  line-height: 1.05;
  letter-spacing: 0.01em;
  color: #0f4f86;
  white-space: nowrap;
  max-height: 100%;
}

.prog-week-block--compact .prog-week-block__time span {
  font-size: 0.66rem;
}

.prog-week-block__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0.35rem 0.5rem;
  background: #f8fbfe;
  color: #1a2f42;
}

.prog-week-block--compact .prog-week-block__content {
  padding: 0.28rem 0.45rem;
  min-height: 2.05rem;
}

.prog-week-block__title {
  font-weight: 700;
  font-size: 0.92rem;
  line-height: 1.25;
  text-align: center;
  color: #1a2f42;
}

.prog-week-block--grow .prog-week-block__content {
  min-height: 0;
  height: 100%;
}

.prog-week-block__items {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  margin: 0;
}

.prog-week-block__items li {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: 700;
  font-size: 0.84rem;
  line-height: 1.2;
  color: #24303d;
  padding: 0.28rem 0.25rem;
  border-bottom: 1px solid rgba(15, 112, 183, 0.14);
  min-height: 1.75rem;
}

.prog-week-block__items li:last-child {
  border-bottom: none;
}

.prog-week-block--workshop .prog-week-block__content {
  background: linear-gradient(135deg, #e9f3fc 0%, #dcecff 100%);
}

.prog-week-block--workshop .prog-week-block__time {
  background: rgba(15, 112, 183, 0.16);
}

.prog-week-block--transport .prog-week-block__content {
  background: #f3faf8;
  border-left: 3px solid rgba(26, 138, 122, 0.35);
}

.prog-week-block--transport .prog-week-block__time {
  background: rgba(11, 91, 215, 0.1);
}

.prog-week-block--transport .prog-week-block__time span {
  color: #0f4f86;
}

.prog-week-block--transport + .prog-week-block--transport {
  border-top: 2px solid rgba(15, 112, 183, 0.2);
}

.prog-week-block--sessions .prog-week-block__content {
  background: linear-gradient(180deg, #f4f9fd 0%, #eaf2fa 100%);
}

.prog-week-block--evening .prog-week-block__time {
  background: #2f4d68;
  border-right-color: rgba(255, 255, 255, 0.12);
}

.prog-week-block--evening .prog-week-block__time span {
  color: #f5f9fd;
}

.prog-week-block--evening .prog-week-block__content {
  background: #eef3f8;
  color: #1a2f42;
}

.prog-week-block--evening .prog-week-block__title {
  color: #1a2f42;
  font-size: 0.95rem;
}

.prog-week-block--evening .prog-week-block__content--empty {
  background: #e8edf2;
}

.prog-week-block--evening .prog-week-block__title {
  padding: 0 0.15rem;
}

@media (max-width: 991px) {
  .prog-week-grid {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .prog-week-grid__header,
  .prog-week-grid__columns {
    min-width: 48rem;
  }
}

@media (max-width: 767px) {
  .prog-week-grid__header,
  .prog-week-grid__columns {
    min-width: 42rem;
  }

  .prog-week-block__layout {
    grid-template-columns: 2.55rem minmax(0, 1fr);
  }

  .prog-week-block__time span {
    font-size: 0.68rem;
  }
}

.prog-board-shell.prog-timegrid-shell,
.prog-timegrid-shell {
  background: #fff;
  border: 1px solid rgba(15, 112, 183, 0.14);
  border-radius: var(--igf-radius-md);
  box-shadow: 0 10px 32px rgba(11, 91, 215, 0.07);
  padding: 0.35rem 0.45rem 0.55rem;
}

.prog-timegrid-shell__scroll.prog-board-shell__scroll,
.prog-timegrid-shell__scroll {
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(15, 112, 183, 0.35) rgba(29, 154, 237, 0.06);
  padding-bottom: 0.2rem;
}

.prog-timegrid-shell__scroll::-webkit-scrollbar {
  height: 8px;
}

.prog-timegrid-shell__scroll::-webkit-scrollbar-track {
  background: rgba(29, 154, 237, 0.06);
  border-radius: 999px;
}

.prog-timegrid-shell__scroll::-webkit-scrollbar-thumb {
  background: rgba(15, 112, 183, 0.28);
  border-radius: 999px;
}

.prog-timegrid {
  --tg-cols: 3.25rem repeat(var(--prog-day-cols, 6), minmax(7.25rem, 1fr));
  min-width: min(100%, calc(3.25rem + 6.75rem * var(--prog-day-cols, 6)));
  display: flex;
  flex-direction: column;
}

.prog-timegrid__head,
.prog-timegrid__body {
  display: grid;
  grid-template-columns: var(--tg-cols);
  align-items: stretch;
}

.prog-timegrid__head {
  position: sticky;
  top: 0;
  z-index: 24;
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  box-shadow: 0 1px 0 rgba(15, 112, 183, 0.12), 0 8px 18px rgba(11, 91, 215, 0.06);
  border-radius: calc(var(--igf-radius-md) - 3px) calc(var(--igf-radius-md) - 3px) 0 0;
}

.prog-timegrid__corner {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.25rem;
  border-right: 1px solid rgba(15, 112, 183, 0.12);
  border-bottom: 1px solid rgba(15, 112, 183, 0.12);
  background: rgba(246, 249, 252, 0.95);
}

.prog-timegrid__corner-label {
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.45);
}

.prog-timegrid__th {
  text-align: center;
  padding: 0.55rem 0.35rem 0.6rem;
  background: linear-gradient(90deg, var(--igf-blue-g3) 0%, var(--igf-blue) 52%, var(--igf-blue-g5) 100%);
  color: #fff;
  border-right: 1px solid rgba(255, 255, 255, 0.14);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.12rem;
}

.prog-timegrid__th:last-child {
  border-right: 0;
}

.prog-timegrid__th-week {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.95;
}

.prog-timegrid__th-date {
  font-size: clamp(0.82rem, 1vw, 0.95rem);
  font-weight: 700;
  letter-spacing: -0.02em;
}

.prog-timegrid__body {
  position: relative;
  border: 1px solid rgba(15, 112, 183, 0.12);
  border-top: 0;
  border-radius: 0 0 calc(var(--igf-radius-md) - 4px) calc(var(--igf-radius-md) - 4px);
  background: #fff;
}

.prog-timegrid__rail {
  position: sticky;
  left: 0;
  z-index: 12;
  border-right: 1px solid rgba(15, 112, 183, 0.14);
  background: linear-gradient(180deg, #fafcfe 0%, #f4f8fb 100%);
}

.prog-timegrid__tick {
  position: absolute;
  left: 0;
  right: 0;
  box-sizing: border-box;
  border-top: 1px solid rgba(15, 112, 183, 0.1);
  padding: 0.2rem 0.25rem 0;
}

.prog-timegrid__tick-label {
  font-size: 0.7rem;
  font-weight: 800;
  color: #0f2a3d;
  letter-spacing: 0.02em;
  line-height: 1.1;
}

.prog-timegrid__track {
  position: relative;
  border-right: 1px solid rgba(15, 112, 183, 0.1);
  min-width: 0;
  background: #fff;
}

.prog-timegrid__track:last-child {
  border-right: 0;
}

.prog-timegrid__bands {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.prog-timegrid__hour {
  position: absolute;
  left: 0;
  right: 0;
  box-sizing: border-box;
  border-bottom: 1px solid rgba(29, 154, 237, 0.06);
  background: rgba(255, 255, 255, 0.001);
}

.prog-timegrid__hour--alt {
  background: rgba(15, 112, 183, 0.035);
}

.prog-timegrid__events {
  position: absolute;
  inset: 0;
  z-index: 2;
}

.prog-timegrid-event {
  position: absolute;
  left: 0.28rem;
  right: 0.28rem;
  box-sizing: border-box;
  border: 1px solid rgba(15, 112, 183, 0.14);
  border-radius: 6px;
  padding: 0.35rem 0.4rem 0.4rem;
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0;
  overflow: hidden;
  color: #0b2440;
  background: #fff;
  box-shadow: 0 1px 2px rgba(11, 91, 215, 0.04);
  transition: box-shadow 0.15s ease, border-color 0.15s ease, transform 0.12s ease;
}

.prog-timegrid-event:hover {
  z-index: 6;
  border-color: rgba(15, 112, 183, 0.35);
  box-shadow: 0 6px 16px rgba(11, 91, 215, 0.1);
  transform: translateY(-1px);
}

.prog-timegrid-event--optional {
  border-style: dashed;
  border-color: rgba(15, 112, 183, 0.35);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(248, 251, 255, 0.95));
}

.prog-timegrid-event--rail {
  padding-left: 0.25rem;
}

.prog-timegrid-event__rail {
  flex: 0 0 1.85rem;
  margin: -0.35rem 0.35rem -0.4rem -0.4rem;
  padding: 0.3rem 0.15rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 0.55rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.15;
  color: var(--igf-blue-dark);
  background: linear-gradient(180deg, rgba(15, 112, 183, 0.1), rgba(15, 112, 183, 0.02));
  border-right: 1px solid rgba(15, 112, 183, 0.08);
  border-radius: 5px 0 0 5px;
}

.prog-timegrid-event__main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.prog-timegrid-event__time {
  font-size: 0.68rem;
  font-weight: 800;
  color: #0f2a3d;
  margin-bottom: 0.12rem;
  letter-spacing: 0.02em;
  line-height: 1.2;
}

.prog-timegrid-event__type {
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.5);
  margin-bottom: 0.15rem;
}

.prog-timegrid-event__room {
  font-size: 0.58rem;
  font-weight: 600;
  color: rgba(11, 36, 64, 0.62);
  margin-bottom: 0.12rem;
}

.prog-timegrid-event__title {
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.28;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.prog-timegrid-event__sub {
  font-size: 0.66rem;
  color: var(--igf-text-muted);
  margin-top: 0.12rem;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.prog-timegrid-event__body {
  font-size: 0.64rem;
  color: var(--igf-text-muted);
  margin-top: 0.15rem;
  line-height: 1.35;
  display: none;
}

.prog-timegrid-event--lecture,
.prog-timegrid-event--keynote {
  background: linear-gradient(135deg, rgba(232, 242, 251, 0.92), #fff);
  box-shadow: inset 3px 0 0 var(--igf-blue), 0 1px 2px rgba(11, 91, 215, 0.04);
}

.prog-timegrid-event--keynote {
  box-shadow: inset 3px 0 0 #0152C9, 0 1px 2px rgba(11, 91, 215, 0.05);
}

.prog-timegrid-event--workshop,
.prog-timegrid-event--session {
  background: #fff;
  box-shadow: inset 3px 0 0 rgba(26, 143, 212, 0.85), 0 1px 2px rgba(11, 91, 215, 0.04);
}

.prog-timegrid-event--break {
  background: linear-gradient(135deg, rgba(255, 248, 224, 0.82), #fffdf8);
  box-shadow: inset 3px 0 0 rgba(224, 174, 0, 0.75), 0 1px 2px rgba(11, 91, 215, 0.04);
}

.prog-timegrid-event--dinner,
.prog-timegrid-event--networking {
  background: linear-gradient(135deg, rgba(11, 36, 64, 0.06), #fff);
  box-shadow: inset 3px 0 0 #0b2440, 0 1px 2px rgba(11, 91, 215, 0.04);
}

.prog-timegrid-event--transport {
  background: linear-gradient(135deg, rgba(90, 107, 125, 0.08), #fff);
  box-shadow: inset 3px 0 0 rgba(90, 107, 125, 0.55), 0 1px 2px rgba(11, 91, 215, 0.04);
}

.prog-timegrid-event--poster,
.prog-timegrid-event--tour,
.prog-timegrid-event--optional {
  background: linear-gradient(135deg, rgba(29, 154, 237, 0.07), #fff);
  box-shadow: inset 3px 0 0 rgba(29, 154, 237, 0.5), 0 1px 2px rgba(11, 91, 215, 0.04);
}

.prog-timegrid-event--alert .prog-timegrid-event__title {
  color: #b02a37;
}

/* Timeline variant (mobile / optional) */
.prog-timegrid-event--timeline {
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  height: auto;
  min-height: 4.5rem;
  width: 100%;
}

.prog-timegrid-event--timeline .prog-timegrid-event__body {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.prog-timeline {
  padding: 0.5rem 0.65rem 0.75rem;
}

.prog-timeline__row {
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  gap: 0.65rem;
  align-items: stretch;
  padding: 0.35rem 0;
  border-bottom: 1px solid rgba(15, 112, 183, 0.08);
}

.prog-timeline__row:last-child {
  border-bottom: 0;
}

.prog-timeline__rail {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  gap: 0.15rem;
  padding-top: 0.2rem;
}

.prog-timeline__start {
  font-size: 0.78rem;
  font-weight: 800;
  color: #0f2a3d;
  font-variant-numeric: tabular-nums;
}

.prog-timeline__dur {
  font-size: 0.62rem;
  font-weight: 600;
  color: rgba(11, 36, 64, 0.45);
}

.prog-timeline__slot {
  min-width: 0;
}

.prog-board-mobile {
  padding: 0.15rem 0 0;
}

.prog-board-mobile__item {
  border: 0;
  background: transparent;
}

.prog-board-mobile__item .accordion-button {
  background: linear-gradient(180deg, var(--igf-blue-surface-2) 0%, var(--igf-blue-surface) 100%);
  color: #0b2440;
  font-weight: 700;
  padding: 0.65rem 1rem;
  box-shadow: none;
}

.prog-board-mobile__item .accordion-button:not(.collapsed) {
  background: linear-gradient(90deg, var(--igf-blue-g3) 0%, var(--igf-blue) 52%, var(--igf-blue-g5) 100%);
  color: #fff;
}

.prog-board-mobile__btn-week {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.9;
}

.prog-board-mobile__btn-date {
  display: block;
  font-size: 0.95rem;
}

.prog-board-mobile__item .accordion-body {
  background: #fff;
  border: 1px solid rgba(15, 112, 183, 0.12);
  border-top: 0;
}

@media (max-width: 1199px) {
  .prog-timegrid {
    --tg-cols: 3rem repeat(var(--prog-day-cols, 6), minmax(6.25rem, 1fr));
  }

  .prog-timegrid__th {
    padding: 0.45rem 0.28rem 0.5rem;
  }

  .prog-timegrid-event {
    padding: 0.3rem 0.32rem 0.35rem;
  }

  .prog-timegrid-event__title {
    font-size: 0.72rem;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .prog-timegrid__tick-label {
    font-size: 0.64rem;
  }
}

/* Detailed programme — day tabs + agenda */
.prog-det-tabs-wrap {
  position: sticky;
  top: 0;
  z-index: 30;
  padding-top: 0.25rem;
  padding-bottom: 0.5rem;
  margin-bottom: 0.25rem;
  background: linear-gradient(180deg, #f4f7fb 0%, #f4f7fb 72%, rgba(244, 247, 251, 0) 100%);
}

.prog-det-tabs {
  overflow-x: auto;
  flex-wrap: nowrap;
  gap: 0.4rem;
  padding-bottom: 0.15rem;
  border-bottom: 1px solid rgba(15, 112, 183, 0.12) !important;
}

.prog-det-tabs .nav-link {
  border-radius: 999px;
  border: 1px solid rgba(15, 112, 183, 0.2);
  color: #33404c;
  font-weight: 600;
  font-size: 0.84rem;
  padding: 0.45rem 0.95rem;
  white-space: nowrap;
  background: #fff;
}

.prog-det-tabs .nav-link:hover {
  border-color: rgba(15, 112, 183, 0.35);
  color: var(--igf-blue-dark);
}

.prog-det-tabs .nav-link.active {
  background: var(--igf-blue);
  color: #fff;
  border-color: var(--igf-blue);
}

.prog-det-tab-content {
  padding-top: 0.5rem;
}

.prog-det-day-title {
  margin-bottom: 1.25rem;
  padding-bottom: 0.35rem;
  border-bottom: 2px solid rgba(15, 112, 183, 0.15);
}

.prog-det-day-agenda {
  max-width: 52rem;
}

.prog-agenda-session {
  margin-bottom: 2rem;
  padding: 0 0 0.25rem;
  border-left: 4px solid var(--igf-blue);
  padding-left: clamp(0.85rem, 2vw, 1.15rem);
}

.prog-agenda-session__head {
  margin-bottom: 0.85rem;
}

.prog-agenda-session__title {
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  font-weight: 700;
  color: #0b2440;
  margin: 0 0 0.35rem;
  letter-spacing: -0.02em;
}

.prog-agenda-session__time {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--igf-blue-dark);
  margin: 0 0 0.25rem;
}

.prog-agenda-session__chair,
.prog-agenda-session__place {
  font-size: 0.84rem;
  color: var(--igf-text-muted);
  margin: 0;
}

.prog-agenda-session__chair {
  font-style: italic;
}

.prog-agenda-session__empty {
  padding-left: 0.15rem;
}

.prog-agenda-session__list > .prog-agenda-row:last-child {
  border-bottom: 0;
}

.prog-agenda-row {
  display: grid;
  grid-template-columns: 5.75rem minmax(0, 1fr);
  gap: 0.85rem 1rem;
  align-items: start;
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(15, 112, 183, 0.1);
}

.prog-agenda-row--compact {
  padding: 0.55rem 0;
  background: linear-gradient(90deg, rgba(255, 248, 224, 0.35), transparent 55%);
  border-radius: 0 8px 8px 0;
  margin-left: -0.15rem;
  padding-left: 0.15rem;
  padding-right: 0.35rem;
}

.prog-agenda-row--break.prog-agenda-row--compact,
.prog-agenda-row--coffee.prog-agenda-row--compact,
.prog-agenda-row--lunch.prog-agenda-row--compact {
  background: linear-gradient(90deg, rgba(255, 248, 224, 0.45), transparent 60%);
}

.prog-agenda-row--transport.prog-agenda-row--compact {
  background: linear-gradient(90deg, rgba(90, 107, 125, 0.08), transparent 55%);
}

.prog-agenda-row--dinner.prog-agenda-row--compact,
.prog-agenda-row--networking.prog-agenda-row--compact {
  background: linear-gradient(90deg, rgba(11, 36, 64, 0.06), transparent 55%);
}

.prog-agenda-row__time {
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.35;
  color: var(--igf-blue-dark);
  text-align: right;
  padding-top: 0.15rem;
  font-variant-numeric: tabular-nums;
}

.prog-agenda-row__body {
  min-width: 0;
}

.prog-agenda-row__type {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.55);
  margin-bottom: 0.2rem;
}

.prog-agenda-row__title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #0b2440;
  line-height: 1.38;
  margin-bottom: 0.25rem;
}

.prog-agenda-row__speaker {
  font-size: 0.86rem;
  line-height: 1.45;
  color: var(--igf-text);
}

.prog-agenda-row__name {
  font-weight: 700;
}

.prog-agenda-row__aff {
  color: var(--igf-text-muted);
  margin-left: 0.25rem;
}

.prog-agenda-row__meta {
  font-size: 0.8rem;
  color: var(--igf-text-muted);
  margin-top: 0.2rem;
}

.prog-agenda-row__abstract {
  font-size: 0.84rem;
  margin-top: 0.45rem;
  color: var(--igf-text-muted);
}

.prog-agenda-row__link {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  margin-top: 0.45rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--igf-blue-dark);
  text-decoration: none;
  border-bottom: 1px solid rgba(15, 112, 183, 0.35);
  width: fit-content;
}

.prog-agenda-row__link:hover {
  color: var(--igf-blue);
  border-bottom-color: rgba(15, 112, 183, 0.65);
}

.prog-agenda-row__link .bi {
  font-size: 0.9rem;
  opacity: 0.85;
}

.workshop-card__media img {
  display: block;
}

.study-trip-gallery__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
  gap: 0.75rem;
}

.study-trip-gallery__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

.study-trip-gallery__link {
  display: block;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.study-trip-gallery__link:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(11, 91, 215, 0.12);
}

/* Invited lectures (inner page) — match homepage keynote photo treatment */
.invited-lecturers-stack {
  display: flex;
  flex-direction: column;
  gap: clamp(2.25rem, 4vw, 3.5rem);
}

.invited-lecturer {
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  border: 1px solid rgba(201, 216, 232, 0.85);
  border-radius: calc(var(--igf-radius-lg) + 2px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 8px 28px rgba(11, 91, 215, 0.05);
  padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1.25rem, 2.5vw, 2rem);
}

.invited-lecturer--stripe {
  background: linear-gradient(180deg, #f6f9fc 0%, #fff 100%);
}

.invited-lecturer__photo-col {
  text-align: center;
}

@media (min-width: 768px) {
  .invited-lecturer__photo-col {
    text-align: left;
  }
}

.invited-lecturer__photo-ring {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.invited-lecturer__badge {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--igf-blue-dark);
  background: rgba(15, 112, 183, 0.1);
  border: 1px solid rgba(15, 112, 183, 0.2);
  border-radius: 999px;
  padding: 0.2rem 0.55rem;
  margin-bottom: 0.5rem;
}

.invited-lecturer__name {
  font-size: clamp(1.35rem, 2.2vw, 1.65rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #0b2440;
  margin: 0 0 0.35rem;
  line-height: 1.2;
}

.invited-lecturer__affiliation {
  font-size: 0.95rem;
  color: var(--igf-text-muted);
  margin: 0 0 1rem;
  max-width: 40rem;
}

.invited-lecturer__lecture-title {
  position: relative;
  font-size: 1.02rem;
  font-style: italic;
  font-weight: 600;
  color: var(--igf-blue-dark);
  margin: 0 0 1.1rem;
  padding: 0.55rem 0 0.55rem 0.85rem;
  max-width: 42rem;
  line-height: 1.45;
  border-left: 3px solid var(--igf-yellow);
  background: linear-gradient(90deg, rgba(252, 195, 0, 0.12), transparent 88%);
  border-radius: 0 8px 8px 0;
}

.invited-lecturer__lecture-mark {
  display: none;
}

.invited-lecturer__bio {
  max-width: 42rem;
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--igf-text);
}

.invited-lecturer__bio p {
  margin-bottom: 0.85rem;
}

.invited-lecturer__bio p:last-child {
  margin-bottom: 0;
}

.invited-lecturer__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  margin-top: 1.25rem;
}

.invited-lecturer__action {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--igf-blue-dark);
  border: 1px solid rgba(15, 112, 183, 0.28);
  border-radius: 999px;
  padding: 0.38rem 0.85rem;
  background: #fff;
  transition: border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.invited-lecturer__action:hover {
  color: #fff;
  background: var(--igf-blue);
  border-color: var(--igf-blue);
  box-shadow: 0 6px 18px rgba(15, 112, 183, 0.2);
}

.invited-lecturer__action .bi {
  font-size: 0.95rem;
}

/* CMS: snapshot “reference_main” blocks — tame nested containers & legacy titles */
.editorial-section--legacy-shell .venue-prose.editorial-prose > .container {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
  margin-left: auto;
  margin-right: auto;
}

.editorial-section--legacy-shell .section-title-wrapper {
  margin-bottom: 1rem;
}

.editorial-section--legacy-shell .section-title {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: clamp(1.05rem, 1.6vw, 1.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0b2440;
  padding-left: 0.65rem;
  border-left: 4px solid var(--igf-yellow);
}

.editorial-section--legacy-shell .fullwidth-section {
  margin-left: calc(-1 * var(--bs-gutter-x, 0.75rem));
  margin-right: calc(-1 * var(--bs-gutter-x, 0.75rem));
  padding-left: var(--bs-gutter-x, 0.75rem);
  padding-right: var(--bs-gutter-x, 0.75rem);
  border-radius: var(--igf-radius-md);
}

.editorial-section--legacy-shell table {
  max-width: 100%;
}

.editorial-section--legacy-shell .btn {
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* === Premium CMS inner pages: guidelines, study trip, workshops, special session === */

.editorial-section--legacy-shell.editorial-section--igf-premium .section-title {
  border-left: 0;
  padding-left: 0;
  font-weight: 700;
  font-size: clamp(1.05rem, 1.55vw, 1.22rem);
}

.editorial-section--igf-premium .venue-prose.editorial-prose > .container {
  padding-left: 0;
  padding-right: 0;
  max-width: none;
}

.editorial-section--igf-premium .fullwidth-section {
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  background: transparent !important;
}

.venue-travel-page.inner-page-main.premium-inner-page .editorial-section--igf-premium {
  margin-bottom: clamp(1.85rem, 3.2vw, 2.85rem);
}

/* CMS premium body: full width of parent .container (same rhythm as Venue / Meeting point) */
.igf-cms-content-shell {
  width: 100%;
  max-width: none;
}

.igf-cms-content-max {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.editorial-section--igf-premium .card-soft,
.editorial-page--workshops .card-soft {
  padding: var(--igf-cms-card-p-sm) !important;
  border-radius: var(--igf-radius-md) !important;
  border: 1px solid rgba(201, 216, 232, 0.95) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.75) inset, 0 10px 28px rgba(15, 42, 61, 0.045) !important;
}

@media (min-width: 768px) {
  .editorial-section--igf-premium .card-soft,
  .editorial-page--workshops .card-soft {
    padding: var(--igf-cms-card-p-md) !important;
  }
}

@media (min-width: 1200px) {
  .editorial-section--igf-premium .card-soft,
  .editorial-page--workshops .card-soft {
    padding: var(--igf-cms-card-p-lg) !important;
  }
}

.igf-cms-premium > * + * {
  margin-top: var(--igf-cms-section-gap);
}

.igf-cms-premium > .igf-intro-card + .editorial-h2,
.igf-cms-premium > .editorial-h2 + *,
.igf-cms-premium > h2.editorial-h2 + * {
  margin-top: var(--igf-cms-h2-content-gap);
}

.igf-cms-h2 {
  margin-bottom: 0;
}

.igf-cms-h2--flush {
  margin-top: 0 !important;
}

.igf-cms-row {
  --bs-gutter-x: var(--igf-cms-card-gap);
  --bs-gutter-y: var(--igf-cms-card-gap);
}

.igf-cms-prose {
  font-size: 1rem;
  line-height: 1.78;
  color: #24303d;
}

.igf-cms-body-muted {
  font-size: 0.95rem;
  line-height: 1.72;
  color: #4b5c6f;
}

.igf-cms-eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.55);
}

.igf-cms-narrow {
  max-width: none;
}

/* Intro strip */
.igf-intro-card--lead,
.igf-workshops-intro {
  display: flex;
  align-items: center;
  min-height: 4.5rem;
  border-left: 4px solid rgba(252, 195, 0, 0.9);
  padding-block: clamp(1.1rem, 2.2vw, 1.45rem);
}

.igf-intro-card--lead .editorial-lead,
.igf-workshops-intro .editorial-prose {
  margin-bottom: 0;
}

/* Duration */
.igf-duration-card__head {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}

.igf-duration-card__icon {
  font-size: 2rem;
  color: var(--igf-blue);
  line-height: 1;
  padding-top: 0.15rem;
}

.igf-duration-card__time {
  font-weight: 800;
  font-size: clamp(1.12rem, 2vw, 1.35rem);
  letter-spacing: -0.02em;
  color: #0b2440;
  margin-bottom: 0.65rem;
}

/* Oral block */
.igf-oral-block__row {
  row-gap: clamp(1.35rem, 2.8vw, 2rem);
}

.igf-oral-block__cell {
  height: 100%;
  padding-bottom: 0.25rem;
}

.igf-oral-block__cell--span {
  padding-top: clamp(1rem, 2vw, 1.35rem);
  border-top: 1px solid rgba(15, 112, 183, 0.12);
  margin-top: 0.25rem;
}

/* Code block */
.igf-code-box {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 0.92rem;
  background: linear-gradient(165deg, #1a2a38 0%, #13212e 55%, #0f1922 100%);
  color: #e8f1f8;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--igf-radius-md);
  padding: clamp(1.15rem, 2.2vw, 1.45rem) clamp(1.25rem, 2.4vw, 1.65rem);
  box-shadow: 0 12px 32px rgba(6, 24, 40, 0.18);
}

.igf-code-box code {
  display: block;
  margin-top: 0.15rem;
  font-size: 1.06rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  word-break: break-word;
  color: #fff;
}

.igf-code-box__example {
  display: block;
  margin-top: 0.85rem;
  font-size: 0.84rem;
  font-weight: 500;
  color: rgba(214, 226, 238, 0.82);
  letter-spacing: 0.02em;
}

/* Guidelines: participant upload workflow (replaces legacy Dropbox) */
.igf-upload-workflow {
  padding: clamp(1.1rem, 2.3vw, 1.45rem) clamp(1.15rem, 2.4vw, 1.55rem) !important;
}

.igf-upload-workflow__steps {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: igf-up;
}

.igf-upload-workflow__steps li {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding: 0.55rem 0;
  border-bottom: 1px solid rgba(15, 112, 183, 0.1);
}

.igf-upload-workflow__steps li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.igf-upload-workflow__n {
  flex: 0 0 auto;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 0.45rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(145deg, var(--igf-blue) 0%, #0a5a8f 100%);
  box-shadow: 0 2px 8px rgba(15, 112, 183, 0.25);
}

.igf-upload-workflow__txt {
  flex: 1;
  min-width: 0;
  font-size: 0.95rem;
  line-height: 1.58;
  color: #2f3d4a;
}

.igf-oral-block__cell--uploads {
  padding-top: clamp(1rem, 2vw, 1.35rem);
}

/* Poster trio */
.igf-poster-card {
  padding: clamp(1.15rem, 2.3vw, 1.45rem) clamp(1.1rem, 2.2vw, 1.35rem) !important;
  border-radius: 1rem !important;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.igf-poster-card__body {
  font-size: 0.98rem;
  line-height: 1.78;
  color: #2f3d4a;
}

/* Alerts */
.igf-alert-premium {
  padding: 0;
  border-radius: var(--igf-radius-md) !important;
}

.igf-alert-premium__inner {
  display: flex;
  gap: 1.15rem;
  align-items: flex-start;
  padding: clamp(1.15rem, 2.4vw, 1.55rem) clamp(1.25rem, 2.6vw, 1.85rem);
}

.igf-alert-premium__icon {
  font-size: 1.65rem;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 0.12rem;
  opacity: 0.95;
}

.igf-alert-premium__text {
  font-size: 0.95rem;
  line-height: 1.72;
}

/* Event card (poster schedule) */
.igf-event-card {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: clamp(1rem, 2.5vw, 1.5rem);
  padding: clamp(1.3rem, 2.7vw, 1.85rem) clamp(1.35rem, 2.8vw, 2rem) !important;
  border: 1px solid rgba(201, 216, 232, 0.85);
  box-shadow: 0 8px 24px rgba(15, 42, 61, 0.06);
}

.igf-event-card__badge {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 5rem;
  padding: 0.7rem 0.9rem;
  border-radius: var(--igf-radius-md);
  background: linear-gradient(165deg, rgba(252, 195, 0, 0.95), rgba(235, 175, 0, 0.88));
  color: #0b2440;
  text-align: center;
  box-shadow: 0 6px 16px rgba(15, 42, 61, 0.1);
}

.igf-event-card__badge-day {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.82;
}

.igf-event-card__badge-date {
  font-size: 1.42rem;
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1.05;
}

.igf-event-card__body {
  flex: 1 1 12rem;
  min-width: 0;
}

.igf-event-card__eyebrow {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.48);
  margin-bottom: 0.4rem;
}

.igf-event-card__title {
  font-size: clamp(1.14rem, 1.95vw, 1.38rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0b2440;
  margin: 0 0 0.55rem;
}

.igf-event-card__meta {
  margin: 0;
  font-size: 0.94rem;
  line-height: 1.68;
  color: #3a4a58;
}

.igf-event-card__when {
  display: block;
  font-weight: 800;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #0b2440;
  margin-bottom: 0.35rem;
}

.igf-event-card__meta .igf-event-card__time.text-secondary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.25rem;
  font-weight: 600;
  color: #4a5d6f !important;
  margin-top: 0.15rem;
}

/* Study trip meta */
.igf-trip-meta,
.igf-trip-about {
  padding-block: clamp(1.2rem, 2.4vw, 1.65rem) !important;
}

.igf-meta-dl > div {
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(15, 112, 183, 0.1);
}

.igf-meta-dl dt {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.48);
  margin-bottom: 0.35rem;
}

.igf-meta-dl dd {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 600;
  line-height: 1.5;
  color: #0b2440;
}

/* Video */
.igf-study-video-wrap {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: clamp(0.5rem, 1.5vw, 1.25rem) 0 clamp(0.25rem, 1vw, 0.75rem);
}

.igf-study-video-wrap .venue-video-embed--bare > .ratio {
  box-shadow: 0 16px 44px rgba(11, 91, 215, 0.12);
}

/* Gallery empty */
.study-trip-gallery__empty-shell {
  min-height: clamp(14rem, 32vw, 18rem);
  display: flex;
  align-items: center;
  justify-content: center;
  border-style: dashed !important;
  border-color: rgba(15, 112, 183, 0.28) !important;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(243, 248, 252, 0.88)) !important;
}

.study-trip-gallery__empty-inner {
  text-align: center;
  padding: clamp(1.5rem, 3vw, 2.5rem) 1.5rem;
  max-width: 22rem;
}

.study-trip-gallery__empty-icon {
  font-size: clamp(2.75rem, 5vw, 3.5rem);
  color: rgba(15, 112, 183, 0.35);
  margin-bottom: 1rem;
  line-height: 1;
}

.study-trip-gallery__empty-title {
  font-weight: 800;
  font-size: 1.05rem;
  color: #0b2440;
}

.study-trip-gallery__empty-copy {
  font-size: 0.95rem;
  line-height: 1.65;
  color: rgba(74, 90, 105, 0.88);
}

/* Workshops meta + nav */
.igf-workshop-meta-card .igf-details-list {
  font-size: 0.95rem;
  line-height: 1.65;
}

.igf-details-list li {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}

.igf-details-list li + li {
  margin-top: 0.65rem;
}

.igf-details-list .bi {
  flex-shrink: 0;
  margin-top: 0.2rem;
  font-size: 1.05rem;
  color: var(--igf-blue);
}

.igf-nav-event-card {
  padding: clamp(1.25rem, 2.4vw, 1.65rem) !important;
  border-radius: var(--igf-radius-md) !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
  gap: 0.35rem;
}

.igf-nav-event-card:hover {
  border-color: rgba(15, 112, 183, 0.38) !important;
  box-shadow: 0 14px 36px rgba(15, 42, 61, 0.1);
  transform: translateY(-2px);
}

.igf-nav-event-card__badge {
  align-self: flex-start;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  background: rgba(15, 112, 183, 0.1);
  color: var(--igf-blue-dark);
}

.igf-nav-event-card__label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.48);
}

.igf-nav-event-card__title {
  font-size: clamp(1.02rem, 1.65vw, 1.18rem);
  font-weight: 800;
  color: #0b2440;
  line-height: 1.3;
}

.igf-nav-event-card__time {
  font-size: 0.88rem;
  color: #4b5c6f;
  line-height: 1.55;
}

.igf-nav-event-card__time .bi {
  margin-right: 0.4rem;
  vertical-align: -0.05em;
}

.igf-nav-event-card__cta {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--igf-blue);
}

/* Workshop detail */
.igf-workshop-list > .igf-workshop-detail-card + .igf-workshop-detail-card {
  margin-top: var(--igf-cms-section-gap);
}

.workshop-card__inner {
  padding: clamp(0.15rem, 0.6vw, 0.35rem);
}

@media (min-width: 992px) {
  .workshop-card__aside {
    max-width: 22rem;
  }
}

.workshop-card__main > .editorial-h2--in-card {
  margin-bottom: clamp(1rem, 2vw, 1.35rem);
}

.workshop-card__block {
  margin-top: clamp(1.25rem, 2.5vw, 1.85rem);
  padding-top: clamp(1rem, 2vw, 1.35rem);
  border-top: 1px solid rgba(15, 112, 183, 0.1);
}

.workshop-card__block:first-of-type {
  margin-top: 0.35rem;
  padding-top: 0;
  border-top: 0;
}

.workshop-card__prose {
  font-size: 0.98rem;
  line-height: 1.78;
  color: #2f3d4a;
}

.workshop-card__prose p {
  margin-bottom: 0.85rem;
}

.workshop-card__prose p:last-child {
  margin-bottom: 0;
}

.igf-checklist-lines .igf-checkitem {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  margin-bottom: 0.65rem;
  line-height: 1.72;
}

.igf-checklist-lines .igf-checkitem .bi {
  font-size: 1.05rem;
  color: var(--igf-blue);
  margin-top: 0.18rem;
}

.igf-agenda-list {
  counter-reset: igf-agenda;
  padding-left: 0;
  list-style: none;
  margin: 0;
}

.igf-agenda-list > li {
  counter-increment: igf-agenda;
  position: relative;
  padding-left: 2.35rem;
  margin-bottom: 0.55rem;
  line-height: 1.75;
}

.igf-agenda-list > li::before {
  content: counter(igf-agenda);
  position: absolute;
  left: 0;
  top: 0.1rem;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 112, 183, 0.1);
  color: var(--igf-blue-dark);
}

.igf-agenda-list ol {
  list-style: none;
  padding-left: 0.5rem;
  margin: 0.5rem 0 0;
  counter-reset: igf-agenda-sub;
}

.igf-agenda-list ol > li {
  counter-increment: igf-agenda-sub;
  padding-left: 2rem;
  margin-bottom: 0.4rem;
}

.igf-agenda-list ol > li::before {
  content: counter(igf-agenda-sub, lower-alpha);
  width: 1.35rem;
  height: 1.35rem;
  font-size: 0.72rem;
  top: 0.2rem;
  background: rgba(29, 154, 237, 0.06);
}

/* Special session */
.igf-special-intro {
  padding: clamp(1.75rem, 3.2vw, 2.65rem) clamp(1.75rem, 3.5vw, 2.75rem) !important;
}

.igf-special-dual .igf-checklist li {
  align-items: flex-start;
  gap: 0.65rem;
  margin-bottom: 0.55rem;
  line-height: 1.75;
}

.igf-special-dual .igf-checklist li .bi {
  margin-top: 0.2rem;
}

.igf-special-dual .igf-checklist li span {
  flex: 1;
  min-width: 0;
}

.igf-key-dates-strip--premium {
  padding: clamp(1.35rem, 2.8vw, 2rem) clamp(1.5rem, 3vw, 2.5rem) !important;
  border-radius: var(--igf-radius-lg) !important;
}

.igf-key-dates-strip__value {
  font-size: clamp(1.85rem, 3.5vw, 2.45rem);
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1.05;
  color: #0b2440;
}

.igf-key-dates-strip__unit {
  font-weight: 700;
  font-size: 0.55em;
  margin-left: 0.15em;
}

.igf-key-dates-strip__year {
  font-weight: 800;
  font-size: 0.5em;
  margin-left: 0.15em;
  opacity: 0.85;
}

.igf-key-dates-strip__sub {
  font-size: 1.05rem;
  font-weight: 600;
  color: #3a4a58;
  margin-top: 0.35rem;
}

.igf-key-dates-strip__divider {
  width: 1px;
  align-self: stretch;
  min-height: 3.5rem;
  background: linear-gradient(180deg, transparent, rgba(15, 112, 183, 0.18), transparent);
}

.igf-guidelines-card .igf-ordered-card-list {
  padding-left: 1.35rem;
  margin-top: 0.5rem;
}

.igf-guidelines-card .igf-ordered-card-list li {
  margin-bottom: 0.75rem;
  padding-left: 0.15rem;
}

.igf-abstract-grid .igf-abstract-card {
  gap: 0.75rem;
}

.igf-download-btn {
  min-height: 2.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  font-weight: 700;
  font-size: 0.82rem;
}

/* Workshops page: single CMS strip + list — avoid double section margins */
.editorial-page--workshops > .editorial-section--igf-premium {
  margin-bottom: 0 !important;
}

/* Papers & registration suite */
.igf-papers-suite-root .editorial-island {
  max-width: 100%;
}

.igf-papers-suite__head .badge {
  font-size: 0.7rem;
}

.igf-papers-process-card {
  position: relative;
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  border-radius: var(--igf-radius-md);
  border: 1px solid rgba(15, 42, 61, 0.08);
  box-shadow: 0 10px 28px rgba(15, 42, 61, 0.06);
  background: linear-gradient(165deg, #fff, #f7fbff);
  min-height: 100%;
}

.igf-papers-process-card__num {
  position: absolute;
  top: 0.85rem;
  right: 1rem;
  font-size: 1.75rem;
  font-weight: 900;
  color: rgba(15, 112, 183, 0.12);
  line-height: 1;
}

.igf-papers-process-card__icon {
  font-size: 1.65rem;
  color: #0f70b7;
  margin-bottom: 0.65rem;
}

.igf-papers-process-card__title {
  letter-spacing: -0.02em;
}

.igf-papers-process-card__body {
  font-size: 0.92rem;
  line-height: 1.65;
}

.igf-papers-pricing-headcell {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #5c6b78;
  padding: 0.5rem 0.75rem;
  border-radius: var(--igf-radius-md);
  background: rgba(15, 112, 183, 0.08);
}

.igf-papers-price-row {
  padding: clamp(1rem, 2.2vw, 1.35rem);
  border-radius: var(--igf-radius-md);
  border: 1px solid rgba(15, 42, 61, 0.08);
  box-shadow: 0 8px 22px rgba(15, 42, 61, 0.05);
}

.igf-papers-price-row--highlight {
  border-color: rgba(15, 112, 183, 0.35);
  background: linear-gradient(120deg, rgba(29, 154, 237, 0.06), rgba(255, 255, 255, 0.98));
}

.igf-papers-price-pill__eyebrow {
  display: block;
  margin-bottom: 0.15rem;
}

.igf-papers-price-pill__val {
  font-size: 1.25rem;
  font-weight: 800;
  color: #0b2440;
}

.igf-papers-price-pill__sub {
  display: block;
  margin-top: 0.15rem;
}

.igf-papers-side-note {
  padding: clamp(1rem, 2vw, 1.35rem);
}

.igf-papers-cta-hero {
  padding: clamp(1.35rem, 2.8vw, 1.85rem);
  border-radius: var(--igf-radius-md);
  border: 1px solid rgba(15, 42, 61, 0.08);
  box-shadow: 0 14px 34px rgba(15, 42, 61, 0.08);
  background: linear-gradient(155deg, #ffffff, #f3f9ff);
}

.igf-papers-cta-hero__icon {
  font-size: 2rem;
  color: #0f70b7;
  margin-bottom: 0.75rem;
}

.igf-papers-closed-panel {
  border-style: dashed !important;
  padding: clamp(1.25rem, 2.5vw, 1.65rem);
}

.igf-papers-closed-panel__ic {
  font-size: 1.75rem;
  color: #6c757d;
}

.igf-papers-award-card {
  padding: clamp(1.25rem, 2.6vw, 1.75rem);
}

.igf-papers-award-card__visual img {
  max-height: 120px;
  width: auto;
}

.igf-papers-award-card__visual--icon {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 112, 183, 0.1);
  font-size: 2rem;
  color: #0f70b7;
}

.igf-papers-grant-card__logo img {
  max-height: 52px;
  width: auto;
}

.igf-papers-topic-card {
  padding: 0.85rem 1rem;
  border-radius: var(--igf-radius-md);
}

.igf-papers-topic-card__ic {
  color: #0f70b7;
  font-size: 1.25rem;
  line-height: 1;
}

.igf-papers-deadline-card {
  padding: clamp(1.15rem, 2.4vw, 1.5rem) clamp(1.2rem, 2.5vw, 1.55rem);
  border-radius: var(--igf-radius-lg);
  border: 1px solid rgba(201, 216, 232, 0.95);
  display: flex;
  flex-direction: column;
}

.igf-papers-deadline-card__date {
  margin-top: 0.125rem;
  letter-spacing: -0.02em;
}

.igf-papers-deadline-card__ic {
  font-size: 1.35rem;
  line-height: 1;
  margin-top: 0.08rem;
}

.igf-papers-deadline-card__note :last-child {
  margin-bottom: 0;
}

.igf-papers-guide-card {
  padding: clamp(1.25rem, 2.5vw, 1.7rem);
  min-height: 100%;
  border-radius: var(--igf-radius-lg);
}

.igf-papers-guide-card__body {
  line-height: 1.72;
}

.igf-papers-guide-card__body ul,
.igf-papers-guide-card__body ol {
  padding-left: 1.15rem;
  margin-bottom: 0.75rem;
}

.igf-papers-guide-card__body li {
  margin-bottom: 0.45rem;
}

.igf-papers-download-btn {
  border-radius: var(--igf-radius-md) !important;
  padding: 0.85rem 1.1rem !important;
}

/* Springer equal-height grid (Call for papers CMS block) */
.igf-springer-showcase.row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem 1rem;
  --igf-springer-h: 198px;
  margin-left: 0;
  margin-right: 0;
}

@media (min-width: 768px) {
  .igf-springer-showcase.row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    --igf-springer-h: 208px;
  }
}

@media (min-width: 992px) {
  .igf-springer-showcase.row {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    --igf-springer-h: 196px;
  }
}

.igf-springer-showcase.row > .col {
  width: 100%;
  max-width: none;
  padding: 0;
  display: flex;
}

.igf-springer-showcase .igf-springer-tile {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  min-height: var(--igf-springer-h, 198px);
  padding: 0.65rem;
  border-radius: var(--igf-radius-md);
  background: linear-gradient(180deg, #fff 0%, #f3f7fb 100%);
  border: 1px solid rgba(201, 216, 232, 0.85);
  overflow: hidden;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.igf-springer-showcase .igf-springer-tile img {
  width: 100%;
  height: 100%;
  max-height: calc(var(--igf-springer-h, 198px) - 1.35rem);
  object-fit: contain;
}

.igf-springer-showcase .igf-springer-tile:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(15, 42, 61, 0.1);
  border-color: rgba(15, 112, 183, 0.35);
}

.igf-papers-late-banner {
  border-radius: var(--igf-radius-lg);
  background: linear-gradient(180deg, #f5f9fc 0%, #fff 100%);
}

.igf-papers-late-banner__inner {
  padding: clamp(1.15rem, 2.4vw, 1.45rem) 1rem;
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
}

.igf-papers-participant-preview .row {
  --bs-gutter-x: 1rem;
  --bs-gutter-y: 1rem;
}

.igf-participant-nav .list-group-item {
  border-left: 0;
  border-right: 0;
}

.igf-participant-nav .list-group-item:first-child {
  border-top: 0;
}

.igf-participant-widget {
  padding: 1rem 1.1rem;
}

.igf-papers-prose-card {
  padding: clamp(1rem, 2.2vw, 1.35rem);
}

/* --- Registration details (premium internal flow) --- */
.igf-reg-conference__info {
  padding: clamp(1.1rem, 2.2vw, 1.45rem) clamp(1.15rem, 2.4vw, 1.55rem);
}

.igf-reg-conference-points {
  display: grid;
  gap: 0.65rem;
  font-size: 0.96rem;
  line-height: 1.58;
  color: var(--igf-text-muted, #4a5d6f);
}

.igf-reg-conference-points li {
  position: relative;
  padding-left: 1.1rem;
}

.igf-reg-conference-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: var(--igf-yellow, #fcc300);
}

.igf-reg-conference__copy :last-child {
  margin-bottom: 0;
}

.igf-reg-availability-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(1.15rem, 2.4vw, 1.5rem);
  border: 1px solid rgba(15, 112, 183, 0.22);
  background: linear-gradient(165deg, #f8fbff 0%, #e8f3fc 48%, #fff 100%);
  box-shadow: 0 8px 24px rgba(15, 112, 183, 0.08);
}

.igf-reg-availability-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.65rem;
  height: 2.65rem;
  margin-bottom: 0.85rem;
  border-radius: 0.85rem;
  font-size: 1.35rem;
  color: var(--igf-blue);
  background: rgba(15, 112, 183, 0.12);
}

.igf-reg-availability-card__icon--open {
  color: #198754;
  background: rgba(25, 135, 84, 0.12);
}

.igf-reg-availability-card__icon--closed {
  color: #b58100;
  background: rgba(255, 193, 7, 0.16);
}

.igf-reg-availability-card__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--igf-blue-dark);
}

.igf-reg-availability-card__date {
  margin: 0 0 0.85rem;
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: #0b1f33;
}

.igf-reg-availability-card__tz {
  font-size: 0.82rem;
  font-weight: 500;
  color: #6b7c8d;
}

.igf-reg-availability-card__lead {
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--igf-text);
}

.igf-reg-availability-card__hint {
  line-height: 1.55;
}

.igf-reg-fee-iahr {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1rem 0.85rem;
  border: 1px solid rgba(201, 216, 232, 0.95);
  background: linear-gradient(180deg, #fff 0%, #f7fafc 100%);
}

.igf-reg-fee-iahr__body {
  font-size: 0.82rem;
  line-height: 1.45;
  color: #5a6b7d;
}

.igf-reg-fee-iahr__body img {
  display: block;
  max-width: 4.25rem;
  width: 100%;
  height: auto;
  margin: 0 auto 0.65rem;
  border-radius: 0.4rem;
}

.igf-reg-fee-iahr__body a {
  display: block;
}

.igf-reg-fee-iahr__body p {
  margin-bottom: 0;
}

.igf-reg-fee-compare {
  padding: 0;
  overflow: hidden;
  border-radius: var(--igf-radius-lg);
  border: 1px solid rgba(201, 216, 232, 0.95);
}

.igf-reg-fee-table {
  --igf-fee-early: #fffbeb;
  --igf-fee-early-strong: #fff3c4;
  --igf-fee-regular: #edf5fb;
  --igf-fee-regular-strong: #d9ebf8;
  --igf-fee-cat-header: #f8f9fb;
  --igf-fee-cat-student: #f3f4f6;
  --igf-fee-col-divider: rgba(15, 112, 183, 0.24);
  --bs-table-bg: transparent;
  --bs-table-color: var(--igf-text);
  --bs-table-border-color: rgba(201, 216, 232, 0.85);
  margin-bottom: 0;
}

.igf-reg-fee-table thead th {
  vertical-align: bottom;
  padding: 1.15rem 1.2rem 1.05rem;
  border-bottom-width: 2px;
}

.igf-reg-fee-table__th-category {
  width: 34%;
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #4a5d6f;
  background: var(--igf-fee-cat-header) !important;
  border-right: 2px solid var(--igf-fee-col-divider) !important;
}

.igf-reg-fee-table__th {
  text-align: center;
}

.igf-reg-fee-table__th--early {
  background: var(--igf-fee-early) !important;
  border-bottom-color: rgba(180, 155, 60, 0.22) !important;
}

.igf-reg-fee-table__th--regular {
  background: var(--igf-fee-regular) !important;
  border-bottom-color: rgba(15, 112, 183, 0.18) !important;
  border-left: 2px solid var(--igf-fee-col-divider) !important;
}

.igf-reg-fee-table__badge {
  display: inline-block;
  padding: 0.4rem 1rem;
  border-radius: 999px;
  font-size: clamp(0.88rem, 1.45vw, 1rem);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1.15;
}

.igf-reg-fee-table__badge--early {
  color: #3d3200;
  background: rgba(252, 195, 0, 0.32);
  border: 1px solid rgba(224, 174, 0, 0.55);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65) inset;
}

.igf-reg-fee-table__badge--regular {
  color: var(--igf-blue-dark);
  background: rgba(15, 112, 183, 0.12);
  border: 1px solid rgba(15, 112, 183, 0.32);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7) inset;
}

.igf-reg-fee-table__tier-date {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  width: 100%;
  margin-top: 0.55rem;
  font-size: clamp(0.94rem, 1.4vw, 1.05rem);
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.01em;
  color: #0b1f33;
  line-height: 1.35;
}

.igf-reg-fee-table__tier-date-ic {
  font-size: 1.05em;
  color: #5a6b7d;
  flex-shrink: 0;
}

.igf-reg-fee-table tbody th,
.igf-reg-fee-table tbody td {
  padding: 0.9rem 1.1rem;
  vertical-align: middle;
}

.igf-reg-fee-table tbody .igf-reg-fee-table__label {
  background: #fff;
  border-right: 2px solid var(--igf-fee-col-divider);
}

.igf-reg-fee-table__label {
  font-size: 0.86rem;
  font-weight: 600;
  color: #1a2430;
  line-height: 1.38;
}

.igf-reg-fee-table__cell {
  text-align: center;
}

.igf-reg-fee-table__cell--early {
  background: var(--igf-fee-early);
}

.igf-reg-fee-table__cell--regular {
  background: var(--igf-fee-regular);
  border-left: 2px solid var(--igf-fee-col-divider);
}

.igf-reg-fee-table__price {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
}

.igf-reg-fee-table__eur {
  font-size: 1.08rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0b1f33;
  line-height: 1.12;
}

.igf-reg-fee-table__pln {
  font-size: 0.8rem;
  font-weight: 600;
  color: #5a6b7d;
  letter-spacing: 0.01em;
}

.igf-reg-fee-table__row--highlight .igf-reg-fee-table__label {
  background: var(--igf-fee-cat-student) !important;
  color: #1a2430;
  font-weight: 600;
}

.igf-reg-fee-table__row--highlight .igf-reg-fee-table__cell--early {
  background: var(--igf-fee-early-strong);
}

.igf-reg-fee-table__row--highlight .igf-reg-fee-table__cell--regular {
  background: var(--igf-fee-regular-strong);
  border-left: 2px solid var(--igf-fee-col-divider);
}

.igf-reg-addon-card--compact {
  padding: 0.8rem 0.95rem;
  border-radius: 0.85rem;
  border: 1px solid rgba(201, 216, 232, 0.95) !important;
  background: #fff;
}

.igf-reg-policy-single__btn {
  padding: 0.85rem 1rem;
  gap: 0.65rem;
  font-size: 0.95rem;
  box-shadow: none;
}

.igf-reg-policy-single__btn:not(.collapsed) {
  background: linear-gradient(180deg, var(--igf-blue-soft) 0%, #fff 100%);
  color: var(--igf-text);
}

.igf-reg-policy-single__ic {
  width: 2rem;
  height: 2rem;
  border-radius: 0.65rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 112, 183, 0.1);
  color: var(--igf-blue);
  font-size: 1rem;
}

.igf-reg-policy-single__body {
  padding: 0.85rem 1rem 1rem;
  border-top: 1px solid rgba(201, 216, 232, 0.75);
}

.igf-reg-status-pending,
.igf-reg-status-open,
.igf-reg-status-closed {
  border-radius: var(--igf-radius-lg);
  background: linear-gradient(180deg, #fff 0%, var(--igf-blue-surface-2) 100%);
}

.igf-reg-status-pending {
  padding: clamp(1.1rem, 2.2vw, 1.45rem) clamp(1.15rem, 2.4vw, 1.6rem) !important;
}

.igf-reg-status-pending__ic {
  font-size: 1.65rem;
  line-height: 1;
  opacity: 0.92;
}

.igf-reg-status-pending__ic,
.igf-reg-status-open__ic {
  flex-shrink: 0;
}

.igf-reg-status-pending__copy :last-child {
  margin-bottom: 0;
}

.igf-reg-cta-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  padding: 0.5rem 1.1rem 0.5rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(15, 112, 183, 0.28);
  background: linear-gradient(180deg, #f5f9fd 0%, #e8f4fd 100%);
  color: #0b3d5c;
  font-weight: 600;
  font-size: clamp(0.82rem, 1.35vw, 0.92rem);
  line-height: 1.35;
  letter-spacing: 0.01em;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.85) inset,
    0 4px 14px rgba(15, 112, 183, 0.12);
  overflow: hidden;
}

.igf-reg-cta-pill__glow {
  position: absolute;
  inset: -40%;
  background: radial-gradient(circle at 30% 35%, rgba(15, 112, 183, 0.14) 0%, transparent 55%);
  pointer-events: none;
}

.igf-reg-cta-pill__inner {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.igf-reg-cta-pill__ic {
  font-size: 1.05rem;
  color: var(--igf-blue);
  opacity: 0.9;
}

.igf-reg-cta-pill__lbl {
  text-align: left;
}

.igf-reg-cta-pill__hint {
  max-width: 22rem;
}

@media (max-width: 991.98px) {
  .igf-reg-cta-pill {
    width: 100%;
    justify-content: flex-start;
  }

  .igf-reg-cta-pill__hint {
    max-width: none;
    text-align: left !important;
  }
}

.igf-reg-onboarding .igf-reg-timeline {
  padding-top: 0.25rem;
}

.igf-reg-timeline__track {
  position: absolute;
  left: 1.25rem;
  right: 1.25rem;
  top: 2.5rem;
  height: 2px;
  background: linear-gradient(90deg, rgba(15, 112, 183, 0), rgba(15, 112, 183, 0.22) 8%, rgba(15, 112, 183, 0.22) 92%, rgba(15, 112, 183, 0));
  pointer-events: none;
}

.igf-reg-timeline-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: 1.05rem;
  padding: 1.1rem 1.15rem 1.2rem;
  border: 1px solid rgba(201, 216, 232, 0.95);
  box-shadow: 0 6px 20px rgba(15, 42, 61, 0.06);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.igf-reg-timeline-card:hover {
  border-color: rgba(15, 112, 183, 0.38);
  box-shadow: 0 10px 28px rgba(15, 112, 183, 0.1);
  transform: translateY(-2px);
}

.igf-reg-timeline-card__rail {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.55rem;
}

.igf-reg-timeline-card__dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--igf-blue);
  box-shadow: 0 0 0 3px rgba(15, 112, 183, 0.14);
}

.igf-reg-timeline-card__step {
  display: inline-flex;
  align-items: center;
  min-height: 1.35rem;
  padding: 0.12rem 0.5rem 0.1rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #0b4a7a;
  background: rgba(15, 112, 183, 0.1);
  border: 1px solid rgba(15, 112, 183, 0.12);
}

.igf-reg-timeline-card__icon {
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 0.8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  color: var(--igf-blue);
  background: rgba(15, 112, 183, 0.1);
  margin-bottom: 0.55rem;
}

.igf-reg-timeline-card__title {
  margin-bottom: 0.35rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.igf-reg-timeline-card__body {
  font-size: 0.92rem;
  line-height: 1.62;
}

.igf-reg-timeline-card__body :last-child {
  margin-bottom: 0;
}

.igf-reg-pricing-wrap .igf-reg-pricing-kicker {
  background: rgba(15, 112, 183, 0.1);
  color: var(--igf-blue-dark);
  font-weight: 700;
  padding: 0.4rem 0.8rem;
}

.igf-reg-zone {
  border-radius: 1.05rem;
  padding: clamp(1.2rem, 2.8vw, 1.65rem) clamp(1.15rem, 2.6vw, 1.55rem);
  border: 1px solid rgba(201, 216, 232, 0.9);
  background: #fff;
}

.igf-reg-zone--early {
  border-color: rgba(15, 112, 183, 0.38);
  background: linear-gradient(165deg, #f7fbff 0%, #e8f3fc 55%, #f2f7fb 100%);
  box-shadow: 0 8px 26px rgba(29, 154, 237, 0.07);
}

.igf-reg-zone--regular {
  background: linear-gradient(180deg, #fdfdfd 0%, #f1f3f6 100%);
  border-color: rgba(26, 36, 48, 0.1);
  box-shadow: 0 4px 18px rgba(15, 42, 61, 0.04);
}

.igf-reg-zone__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.55rem 1rem;
  margin-bottom: 1.15rem;
}

.igf-reg-zone__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.26rem 0.62rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #fff;
  background: linear-gradient(145deg, #2a93d4 0%, var(--igf-blue) 55%, #0a5a8f 100%);
  box-shadow: 0 4px 12px rgba(15, 112, 183, 0.22);
}

.igf-reg-zone__badge--neutral {
  background: linear-gradient(145deg, #7a8a9a 0%, #5c6b78 100%);
  box-shadow: 0 4px 12px rgba(26, 36, 48, 0.1);
}

.igf-reg-zone__subtitle {
  letter-spacing: 0.06em;
  font-size: 0.72rem !important;
}

.igf-reg-cat-grid {
  --bs-gutter-y: 1rem;
}

.igf-reg-cat-card {
  border-radius: 1rem;
  padding: 1.15rem 1.2rem 1.2rem;
  border: 1px solid rgba(201, 216, 232, 0.95);
  background: #fff;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.igf-reg-cat-card:hover {
  border-color: rgba(15, 112, 183, 0.32);
  box-shadow: 0 10px 26px rgba(15, 42, 61, 0.08);
  transform: translateY(-2px);
}

.igf-reg-cat-card--accent {
  border-color: rgba(15, 112, 183, 0.45);
  background: linear-gradient(165deg, #fff 0%, rgba(232, 242, 251, 0.95) 100%);
}

.igf-reg-cat-card__label {
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #4a5d6f;
  margin-bottom: 0.75rem;
  line-height: 1.35;
}

.igf-reg-cat-card__prices {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.igf-reg-cat-card__eur {
  font-size: clamp(1.42rem, 2.5vw, 1.85rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #0b1f33;
  line-height: 1.08;
}

.igf-reg-cat-card__pln {
  font-size: 0.98rem;
  font-weight: 600;
  color: #5a6b7d;
}

.igf-reg-includes {
  border-radius: var(--igf-radius-lg);
  padding: clamp(1.1rem, 2.3vw, 1.4rem);
  background: linear-gradient(120deg, rgba(29, 154, 237, 0.07) 0%, rgba(252, 195, 0, 0.1) 100%);
  border: 1px solid rgba(15, 112, 183, 0.2);
}

.igf-reg-includes__body :last-child {
  margin-bottom: 0;
}

.igf-reg-addons__title {
  letter-spacing: 0.05em;
}

.igf-reg-addon-card--mini {
  padding: 1.1rem 1.15rem 1.15rem;
  border-radius: 1rem;
  border: 1px solid rgba(201, 216, 232, 0.95) !important;
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.igf-reg-addon-card__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75rem;
}

.igf-reg-addon-card__title {
  font-weight: 700;
  font-size: 0.95rem;
  color: #1a2430;
  line-height: 1.35;
}

.igf-reg-addon-card__price {
  flex-shrink: 0;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--igf-blue-dark);
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  background: rgba(15, 112, 183, 0.1);
  border: 1px solid rgba(15, 112, 183, 0.15);
}

.igf-reg-addon-card__note {
  margin-top: auto;
  line-height: 1.55;
}

.igf-reg-addon-card--mini:hover {
  border-color: rgba(15, 112, 183, 0.28) !important;
  box-shadow: 0 8px 22px rgba(15, 42, 61, 0.07);
  transform: translateY(-2px);
}

.igf-reg-aside {
  border-radius: var(--igf-radius-lg);
}

.igf-reg-policy-acc__item {
  background: #fff;
}

.igf-reg-policy-acc__btn {
  border-radius: var(--igf-radius-md) var(--igf-radius-md) 0 0;
  padding: 1rem 1.1rem;
  gap: 0.65rem;
  font-size: 1rem;
  box-shadow: none;
}

.igf-reg-policy-acc__btn:not(.collapsed) {
  background: linear-gradient(180deg, var(--igf-blue-soft) 0%, #fff 100%);
  color: var(--igf-text);
}

.igf-reg-policy-acc__ic {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 112, 183, 0.1);
  color: var(--igf-blue);
  font-size: 1.15rem;
}

.igf-reg-policy-acc__body {
  padding: 1rem 1.15rem 1.15rem;
  border-top: 1px solid rgba(201, 216, 232, 0.75);
}

.igf-reg-policy-acc__body :last-child {
  margin-bottom: 0;
}

@media (max-width: 767.98px) {
  .igf-reg-timeline__track {
    display: none;
  }
}

/* ——— Contact page (CMS) ——— */
.igf-contact-page {
  --igf-contact-gap: clamp(1rem, 2vw, 1.35rem);
}

.igf-contact-intro {
  font-size: clamp(1rem, 1.2vw, 1.06rem);
  line-height: 1.72;
  color: rgba(11, 36, 64, 0.88);
  max-width: 46rem;
}

/* 2×2 matrix: narrow left (38%) / wide right (62%), equal row heights */
.igf-contact-matrix {
  display: grid;
  gap: var(--igf-contact-gap);
}

@media (min-width: 992px) {
  .igf-contact-matrix {
    grid-template-columns: minmax(0, 3.8fr) minmax(0, 6.2fr);
    grid-template-rows: auto auto;
    grid-template-areas:
      "secretariat address"
      "chairs map";
    align-items: stretch;
  }
}

.igf-contact-matrix__cell {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}

.igf-contact-matrix__cell > .igf-contact-card,
.igf-contact-matrix__cell > .igf-contact-map-card {
  flex: 1 1 auto;
  width: 100%;
  min-height: 100%;
}

@media (min-width: 992px) {
  .igf-contact-matrix__cell--secretariat {
    grid-area: secretariat;
  }

  .igf-contact-matrix__cell--address {
    grid-area: address;
  }

  .igf-contact-matrix__cell--chairs {
    grid-area: chairs;
  }

  .igf-contact-matrix__cell--map {
    grid-area: map;
  }
}

@media (max-width: 991.98px) {
  .igf-contact-matrix {
    grid-template-columns: 1fr;
    grid-template-areas:
      "secretariat"
      "address"
      "chairs"
      "map";
  }

  .igf-contact-matrix__cell--secretariat {
    grid-area: secretariat;
  }

  .igf-contact-matrix__cell--address {
    grid-area: address;
  }

  .igf-contact-matrix__cell--chairs {
    grid-area: chairs;
  }

  .igf-contact-matrix__cell--map {
    grid-area: map;
  }
}

.igf-contact-card {
  border-radius: calc(var(--igf-radius-lg) + 4px);
  padding: clamp(0.85rem, 1.6vw, 1.1rem) clamp(0.9rem, 1.5vw, 1.15rem);
  border: 1px solid rgba(201, 216, 232, 0.92);
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 12px 32px rgba(11, 91, 215, 0.07);
  transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.igf-contact-card:hover {
  border-color: rgba(15, 112, 183, 0.22);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 16px 40px rgba(11, 91, 215, 0.1);
}

.igf-contact-card--grid {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: clamp(0.8rem, 1.45vw, 1rem) clamp(0.85rem, 1.4vw, 1.05rem);
}

.igf-contact-card--grid .igf-contact-card__head {
  margin-bottom: 0.45rem;
  padding-bottom: 0.4rem;
}

.igf-contact-card--grid .igf-contact-card__people {
  gap: 0.65rem;
}

.igf-contact-card--grid .igf-contact-person + .igf-contact-person {
  padding-top: 0.65rem;
}

.igf-contact-card__head {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin-bottom: 0.5rem;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid rgba(15, 112, 183, 0.1);
}

.igf-contact-card__icon {
  flex: 0 0 2.35rem;
  height: 2.35rem;
  border-radius: 0.7rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 112, 183, 0.1);
  color: var(--igf-blue);
  font-size: 1.05rem;
}

.igf-contact-card__title {
  font-size: clamp(1.02rem, 1.45vw, 1.16rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0b2440;
  margin: 0;
  line-height: 1.28;
}

.igf-contact-card__subtitle {
  font-size: 0.84rem;
  color: var(--igf-text-muted);
  margin-top: 0.15rem;
  line-height: 1.4;
}

.igf-contact-card__body {
  font-size: clamp(0.94rem, 1.05vw, 1rem);
  line-height: 1.68;
  color: rgba(11, 36, 64, 0.9);
}

.igf-contact-card__body p {
  margin-bottom: 0.45rem;
}

.igf-contact-card__body p:last-child {
  margin-bottom: 0;
}

.igf-contact-card__people {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.igf-contact-person + .igf-contact-person {
  padding-top: 0.6rem;
  border-top: 1px solid rgba(15, 112, 183, 0.08);
}

.igf-contact-person__head {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.4rem;
}

.igf-contact-person__avatar {
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 999px;
  background: rgba(11, 36, 64, 0.06);
  color: rgba(11, 36, 64, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.igf-contact-person__name {
  font-weight: 800;
  font-size: clamp(0.98rem, 1.1vw, 1.05rem);
  color: #0b2440;
  line-height: 1.3;
}

.igf-contact-person__role {
  font-size: 0.8rem;
  color: var(--igf-text-muted);
  margin-top: 0.05rem;
}

.igf-contact-person__line {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.9rem;
  margin-bottom: 0.28rem;
}

.igf-contact-person__line:last-child {
  margin-bottom: 0;
}

.igf-contact-person__ic {
  color: var(--igf-blue);
  opacity: 0.88;
  flex-shrink: 0;
}

.igf-contact-person__link {
  color: var(--igf-blue);
  text-decoration: none;
  font-weight: 600;
  border-bottom: 1px solid rgba(15, 112, 183, 0.22);
  transition: border-color 0.15s ease, color 0.15s ease;
}

.igf-contact-person__link:hover {
  color: #0a5bb8;
  border-bottom-color: rgba(15, 112, 183, 0.5);
}

/* Large map — primary right-column element */
.igf-contact-map-card {
  border-radius: calc(var(--igf-radius-lg) + 6px);
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(201, 216, 232, 0.95);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 18px 44px rgba(11, 91, 215, 0.1);
}

.igf-contact-map-card__head {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: clamp(0.85rem, 1.6vw, 1rem) clamp(1rem, 1.8vw, 1.15rem) clamp(0.7rem, 1.2vw, 0.85rem);
  background: linear-gradient(180deg, #f2f7fb 0%, #fff 100%);
  border-bottom: 1px solid rgba(15, 112, 183, 0.1);
}

.igf-contact-map-card__ic {
  color: var(--igf-blue);
  font-size: 1.2rem;
  margin-top: 0.1rem;
}

.igf-contact-map-card__title {
  font-size: clamp(1.02rem, 1.4vw, 1.14rem);
  font-weight: 800;
  margin: 0;
  color: #0b2440;
  letter-spacing: -0.02em;
}

.igf-contact-map-card__subtitle {
  font-size: 0.82rem;
  color: var(--igf-text-muted);
  margin-top: 0.12rem;
  line-height: 1.4;
}

.igf-contact-map-card__frame {
  position: relative;
  width: 100%;
  min-height: clamp(220px, 42vw, 320px);
  background: linear-gradient(145deg, #e5edf4 0%, #d8e4ee 100%);
}

.igf-contact-map-card--matrix-fill {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 100%;
}

.igf-contact-map-card--matrix-fill .igf-contact-map-card__head {
  padding: 0.65rem 0.95rem 0.5rem;
  flex-shrink: 0;
}

.igf-contact-map-card--matrix-fill .igf-contact-map-card__frame {
  flex: 1 1 auto;
  min-height: clamp(240px, 30vw, 420px);
  aspect-ratio: unset;
}

@media (min-width: 992px) {
  .igf-contact-matrix__cell--map .igf-contact-map-card--matrix-fill .igf-contact-map-card__frame {
    min-height: 0;
    height: auto;
  }
}

.igf-contact-map-card__frame iframe,
.igf-contact-map-iframe {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-width: none !important;
  border: 0 !important;
}

.igf-contact-map-card--empty {
  min-height: 12rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Partner strip — subtle footer bridge */
.igf-contact-partners {
  margin-top: clamp(2rem, 4vw, 2.75rem);
  padding-top: clamp(1.25rem, 2.5vw, 1.75rem);
  border-top: 1px solid rgba(15, 112, 183, 0.1);
  text-align: center;
}

.igf-contact-partners__heading {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(11, 36, 64, 0.42);
  margin: 0 0 0.75rem;
}

.igf-contact-partners__body {
  display: flex;
  justify-content: center;
  align-items: center;
}

.igf-contact-partners__body img,
.igf-contact-partners__logo {
  max-height: 3.75rem;
  width: auto;
  height: auto;
  opacity: 0.92;
  transition: opacity 0.2s ease;
}

.igf-contact-partners__body a:hover img,
.igf-contact-partners__body a:hover .igf-contact-partners__logo {
  opacity: 1;
}

/* ——— Photo gallery (CMS) ——— */
.igf-photo-gallery {
  padding-top: 0.25rem;
  padding-bottom: 1.5rem;
}

.igf-photo-gallery__album-title {
  color: #0b2440;
  border-left: 3px solid var(--igf-blue);
  padding-left: 0.65rem;
}

.igf-photo-gallery__row {
  margin-bottom: 0.25rem;
}

.igf-photo-gallery__tile {
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  border-radius: calc(var(--igf-radius-md) + 2px);
}

.igf-photo-gallery__thumb {
  position: relative;
  display: block;
  border-radius: calc(var(--igf-radius-md) + 2px);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  box-shadow: 0 4px 14px rgba(11, 91, 215, 0.08);
  border: 1px solid rgba(15, 112, 183, 0.12);
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.2s ease;
}

.igf-photo-gallery__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.001);
  transition: transform 0.35s ease;
}

.igf-photo-gallery__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(6, 20, 40, 0) 40%, rgba(6, 20, 40, 0.42) 100%);
  opacity: 0;
  transition: opacity 0.22s ease;
}

.igf-photo-gallery__zoom {
  position: absolute;
  right: 0.55rem;
  bottom: 0.55rem;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #0b2440;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.22s ease, transform 0.22s ease;
  box-shadow: 0 4px 12px rgba(11, 91, 215, 0.12);
}

.igf-photo-gallery__tile:hover .igf-photo-gallery__thumb,
.igf-photo-gallery__tile:focus-visible .igf-photo-gallery__thumb {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(11, 91, 215, 0.14);
  border-color: rgba(15, 112, 183, 0.35);
}

.igf-photo-gallery__tile:hover .igf-photo-gallery__img,
.igf-photo-gallery__tile:focus-visible .igf-photo-gallery__img {
  transform: scale(1.04);
}

.igf-photo-gallery__tile:hover .igf-photo-gallery__overlay,
.igf-photo-gallery__tile:focus-visible .igf-photo-gallery__overlay,
.igf-photo-gallery__tile:hover .igf-photo-gallery__zoom,
.igf-photo-gallery__tile:focus-visible .igf-photo-gallery__zoom {
  opacity: 1;
  transform: translateY(0);
}

.igf-photo-gallery__featured-badge {
  position: absolute;
  top: 0.45rem;
  left: 0.45rem;
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.95);
  color: #c9a227;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  box-shadow: 0 2px 8px rgba(11, 91, 215, 0.12);
}

.igf-photo-gallery__caption {
  display: block;
  margin-top: 0.45rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: rgba(11, 36, 64, 0.65);
  line-height: 1.35;
}

.igf-photo-gallery--empty .igf-photo-gallery__empty-icon {
  font-size: 2.25rem;
  color: rgba(15, 112, 183, 0.35);
}

.igf-photo-gallery-modal .modal-content {
  background: #050a12;
  border: 0;
  border-radius: 0;
}

.igf-photo-gallery-modal .modal-header {
  padding: 0.5rem 0.75rem;
}

.igf-photo-gallery-modal__body {
  min-height: 50vh;
}

.igf-photo-gallery-modal__figure {
  padding: 0 0.75rem 1rem;
}

.igf-photo-gallery-modal__img {
  max-height: min(78vh, 900px);
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

.igf-photo-gallery-modal__ctrl {
  width: 3rem;
  opacity: 0.85;
}

@media (min-width: 768px) {
  .igf-photo-gallery-modal__ctrl {
    width: 4rem;
  }
}
