/* ── ICFS2 Theme — Core CSS ── */

/* Fonts */
:root {
  --font-sans: 'Plus Jakarta Sans', ui-sans-serif, system-ui, sans-serif;
  --font-display: 'Syne', ui-sans-serif, system-ui, sans-serif;

  /* Fire palette */
  --fire-50:  #fff8f1;
  --fire-100: #feecdc;
  --fire-300: #fbbf6e;
  --fire-400: #f99a2b;
  --fire-500: #f77c0a;
  --fire-600: #e05e05;
  --fire-700: #b94204;

  /* Brand / crimson */
  --brand-50:  #fff1f1;
  --brand-100: #ffe1e1;
  --brand-200: #ffc7c7;
  --brand-600: #e51111;
  --brand-700: #c10a0a;
  --brand-800: #9f0d0d;

  /* Coal / charcoal */
  --coal-50:  #f4f4f5;
  --coal-100: #e4e4e7;
  --coal-200: #d1d1d6;
  --coal-300: #a8a8b3;
  --coal-400: #71717f;
  --coal-500: #52525e;
  --coal-600: #3f3f49;
  --coal-700: #2d2d35;
  --coal-800: #1e1e24;
  --coal-900: #111116;
}

/* Base */
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-sans);
  background: #fff;
  color: var(--coal-800);
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4,h5,h6 {
  font-family: var(--font-display);
}

/* Layout container */
.icfs2-container {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}
@media (min-width: 640px)  { .icfs2-container { padding-left: 1.5rem; padding-right: 1.5rem; } }
@media (min-width: 1024px) { .icfs2-container { padding-left: 2rem;   padding-right: 2rem; } }

/* ── Buttons ── */
.btn-fire {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .625rem 1.25rem;
  font-size: .875rem;
  font-weight: 600;
  color: #fff;
  border-radius: .5rem;
  border: none;
  cursor: pointer;
  background: linear-gradient(135deg, #c10a0a 0%, #e05e05 100%);
  box-shadow: 0 1px 2px rgba(0,0,0,.1);
  transition: all .2s;
  text-decoration: none;
}
.btn-fire:hover {
  background: linear-gradient(135deg, #9f0d0d 0%, #b94204 100%);
  box-shadow: 0 4px 12px rgba(193,10,10,.3);
  transform: translateY(-1px);
  color: #fff;
}
.btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .625rem 1.25rem;
  font-size: .875rem;
  font-weight: 600;
  color: var(--coal-700);
  background: #fff;
  border: 1px solid var(--coal-200);
  border-radius: .5rem;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(0,0,0,.05);
  transition: all .2s;
  text-decoration: none;
}
.btn-secondary:hover {
  border-color: var(--coal-300);
  background: var(--coal-50);
  box-shadow: 0 4px 8px rgba(0,0,0,.08);
  transform: translateY(-1px);
  color: var(--coal-900);
}
.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .625rem 1.25rem;
  font-size: .875rem;
  font-weight: 600;
  color: #fff;
  background: transparent;
  border: 2px solid rgba(255,255,255,.3);
  border-radius: .5rem;
  cursor: pointer;
  transition: all .2s;
  text-decoration: none;
  backdrop-filter: blur(4px);
}
.btn-outline:hover {
  border-color: rgba(255,255,255,.6);
  background: rgba(255,255,255,.1);
  color: #fff;
}

/* ── Utility bar (top strip) ── */
.icfs2-utility-bar {
  background: var(--coal-900);
  display: none;
}
@media (min-width: 768px) { .icfs2-utility-bar { display: block; } }
.icfs2-utility-bar .inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: .5rem;
  padding-bottom: .5rem;
  font-size: .75rem;
  color: var(--coal-400);
}
.icfs2-utility-bar .pulse-dot {
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--fire-500);
  animation: pulse-dot 2s ease-in-out infinite;
  margin-right: .5rem;
}
@keyframes pulse-dot { 0%,100%{opacity:1} 50%{opacity:.4} }
.icfs2-utility-bar a { color: var(--coal-400); text-decoration: none; transition: color .2s; }
.icfs2-utility-bar a:hover { color: #fff; }
.icfs2-utility-bar .submissions-link { color: var(--fire-400); font-weight: 600; }
.icfs2-utility-bar .submissions-link:hover { color: var(--fire-300); }

/* ── Site Header ── */
.icfs2-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #fff;
  border-bottom: 1px solid var(--coal-100);
  transition: box-shadow .3s, background .3s;
}
.icfs2-header.scrolled {
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(12px);
  box-shadow: 0 8px 32px rgba(17,17,22,.1);
  border-bottom-color: transparent;
}
.icfs2-header .inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  height: 68px;
}
/* Logo */
.icfs2-logo { display: flex; align-items: center; gap: .75rem; text-decoration: none; flex-shrink: 0; }
.icfs2-logo img { width: 40px; height: 40px; border-radius: .75rem; object-fit: cover; transition: transform .3s; }
.icfs2-logo:hover img { transform: scale(1.1); }
.icfs2-logo .logo-text { display: none; }
@media (min-width: 640px) { .icfs2-logo .logo-text { display: block; } }
.icfs2-logo .logo-title { font-size: .875rem; font-weight: 700; color: var(--coal-900); line-height: 1.2; letter-spacing: -.02em; }
.icfs2-logo .logo-date  { font-size: .6875rem; color: var(--coal-400); line-height: 1.2; font-weight: 500; }

/* Desktop nav */
.icfs2-nav { display: none; align-items: center; gap: .125rem; }
@media (min-width: 1280px) { .icfs2-nav { display: flex; } }
.icfs2-nav a {
  position: relative;
  padding: .5rem .75rem;
  font-size: .8125rem;
  font-weight: 600;
  color: var(--coal-600);
  text-decoration: none;
  border-radius: .5rem;
  transition: color .2s, background .2s;
}
.icfs2-nav a::after {
  content: '';
  position: absolute;
  bottom: 4px; left: .75rem; right: .75rem;
  height: 2px;
  border-radius: 9999px;
  background: var(--brand-600);
  transform: scaleX(0);
  transition: transform .2s;
}
.icfs2-nav a:hover { color: var(--coal-900); background: var(--coal-50); }
.icfs2-nav a:hover::after { transform: scaleX(1); }
.icfs2-nav a.current-menu-item { color: var(--coal-900); }
.icfs2-nav a.current-menu-item::after { transform: scaleX(1); }

/* Header actions */
.icfs2-header-actions { display: flex; align-items: center; gap: .625rem; }
.icfs2-mobile-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
  border: 1px solid var(--coal-200);
  border-radius: .5rem;
  background: transparent;
  color: var(--coal-600);
  cursor: pointer;
  transition: background .2s;
}
.icfs2-mobile-toggle:hover { background: var(--coal-50); }
@media (min-width: 1280px) { .icfs2-mobile-toggle { display: none; } }

/* Mobile drawer */
.icfs2-drawer-overlay {
  position: fixed; inset: 0; z-index: 100;
  background: rgba(0,0,0,.5);
  opacity: 0; pointer-events: none;
  transition: opacity .3s;
}
.icfs2-drawer-overlay.open { opacity: 1; pointer-events: all; }
.icfs2-drawer {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: 280px; z-index: 101;
  background: #fff;
  transform: translateX(100%);
  transition: transform .3s;
  overflow-y: auto;
  padding: 1.5rem;
}
.icfs2-drawer.open { transform: translateX(0); }
.icfs2-drawer-close {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  border: 1px solid var(--coal-200); border-radius: .5rem;
  background: transparent; cursor: pointer; margin-left: auto; margin-bottom: 1.5rem;
}
.icfs2-drawer nav a {
  display: block;
  padding: .625rem .75rem;
  font-size: .9375rem;
  font-weight: 600;
  color: var(--coal-700);
  text-decoration: none;
  border-radius: .5rem;
  transition: background .2s, color .2s;
}
.icfs2-drawer nav a:hover { background: var(--coal-50); color: var(--coal-900); }

/* ── Section label pill ── */
.section-pill {
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  padding: .25rem .75rem;
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--brand-700);
  background: var(--brand-50);
  border: 1px solid var(--brand-200);
  border-radius: 9999px;
}
.section-pill .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--fire-500); }
.section-pill.light { color: rgba(255,255,255,.8); background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.2); }
.section-pill.light .dot { background: var(--fire-400); }

/* ── Section heading ── */
.section-heading { }
.section-heading h2 {
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--coal-900);
  margin: .5rem 0 0;
}
@media (min-width: 640px) { .section-heading h2 { font-size: 2rem; } }
.section-heading p {
  margin-top: .75rem;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--coal-500);
  max-width: 42rem;
}
.section-heading.light h2 { color: #fff; }
.section-heading.light p  { color: rgba(255,255,255,.7); }
.section-heading.centered { text-align: center; }
.section-heading.centered p { margin-left: auto; margin-right: auto; }

/* ── Page Hero (inner pages) ── */
.icfs2-page-hero {
  position: relative;
  overflow: hidden;
  padding: 3.5rem 0;
  background: linear-gradient(135deg, #111116 0%, #1e1e24 60%, #2a1208 100%);
}
.icfs2-page-hero .fire-glow {
  position: absolute; bottom: -2.5rem; left: 0;
  width: 20rem; height: 10rem;
  border-radius: 50%;
  background: radial-gradient(circle, #c10a0a, transparent);
  opacity: .2;
  filter: blur(40px);
  pointer-events: none;
}
.icfs2-page-hero .grid-overlay {
  position: absolute; inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.15) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,.15) 1px, transparent 1px);
  background-size: 32px 32px;
  opacity: .04;
  pointer-events: none;
}
.icfs2-page-hero .breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  padding: .25rem .75rem;
  font-size: .6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: rgba(255,255,255,.6);
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 9999px;
  margin-bottom: .75rem;
}
.icfs2-page-hero .breadcrumb .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--fire-500); }
.icfs2-page-hero h1 {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 1rem;
}
@media (min-width: 640px)  { .icfs2-page-hero h1 { font-size: 2.5rem; } }
@media (min-width: 1024px) { .icfs2-page-hero h1 { font-size: 3rem; } }
.icfs2-page-hero .subtitle {
  font-size: 1rem;
  color: rgba(255,255,255,.6);
  line-height: 1.7;
  max-width: 42rem;
  margin: 0;
}

/* ── Gradient text ── */
.text-gradient-fire {
  background: linear-gradient(135deg, #f83030 0%, #f97316 60%, #fbbf6e 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Stats bar ── */
.icfs2-stats-bar {
  border-top: 1px solid var(--coal-100);
  border-bottom: 1px solid var(--coal-100);
  background: #fff;
}
.icfs2-stats-bar .grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
@media (min-width: 1024px) { .icfs2-stats-bar .grid { grid-template-columns: repeat(4,1fr); } }
.icfs2-stats-bar .stat-cell {
  padding: 1.25rem 1.5rem;
  text-align: center;
  border-right: 1px solid var(--coal-100);
}
.icfs2-stats-bar .stat-cell:last-child { border-right: none; }
.icfs2-stats-bar .stat-label {
  font-size: .6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--coal-400);
}
.icfs2-stats-bar .stat-value {
  margin-top: .25rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--coal-900);
}

/* ── Stat card (welcome section) ── */
.icfs2-stat-card {
  position: relative;
  overflow: hidden;
  border-radius: 1rem;
  border: 1px solid var(--coal-100);
  background: #fff;
  padding: 1.25rem;
  transition: all .3s;
}
.icfs2-stat-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.08); border-color: var(--brand-200); }
.icfs2-stat-card.accent { border-color: var(--brand-200); background: linear-gradient(135deg, var(--brand-50), var(--fire-50)); }
.icfs2-stat-card .icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: .75rem;
  background: var(--coal-50); color: var(--coal-600);
  margin-bottom: 1rem;
  transition: background .3s, color .3s;
}
.icfs2-stat-card.accent .icon { background: var(--brand-100); color: var(--brand-700); }
.icfs2-stat-card:hover .icon { background: var(--brand-50); color: var(--brand-700); }
.icfs2-stat-card .s-label { font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--coal-400); }
.icfs2-stat-card .s-value { margin-top: .25rem; font-size: .875rem; font-weight: 700; color: var(--coal-900); line-height: 1.3; }
.icfs2-stat-card .s-sub   { margin-top: .125rem; font-size: .75rem; color: var(--coal-400); }

/* ── Track card ── */
.icfs2-track-card {
  border-radius: 1rem;
  border: 1px solid var(--coal-100);
  background: #fff;
  padding: 1.5rem;
  transition: all .3s;
}
.icfs2-track-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.08); border-color: var(--brand-200); }
.icfs2-track-card .track-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: .625rem;
  font-size: .875rem; font-weight: 700; color: #fff;
  background: linear-gradient(135deg, #c10a0a, #e05e05);
  margin-bottom: 1rem;
}
.icfs2-track-card h3 { font-family: var(--font-display); font-size: 1rem; font-weight: 700; color: var(--coal-900); margin: 0 0 .5rem; }
.icfs2-track-card p  { font-size: .875rem; color: var(--coal-500); line-height: 1.6; margin: 0; }

/* ── Committee card ── */
.icfs2-committee-card {
  border-radius: .75rem;
  border: 1px solid var(--coal-100);
  background: #fff;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.05);
  transition: all .2s;
  display: flex;
  flex-direction: column;
}
.icfs2-committee-card:hover { border-color: var(--brand-200); box-shadow: 0 8px 24px rgba(0,0,0,.1); transform: translateY(-3px); }
.icfs2-committee-card .avatar-wrap {
  width: 100%; aspect-ratio: 4/3; overflow: hidden;
  background: linear-gradient(135deg, #1a0505, #3a0c0c);
  position: relative;
}
.icfs2-committee-card .avatar-wrap::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(17,0,0,.45) 0%, transparent 55%);
}
.icfs2-committee-card .avatar-img {
  width: 100%; height: 100%; object-fit: cover; object-position: center top;
  display: block;
}
.icfs2-committee-card .avatar {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 100%;
  font-size: 2rem; font-weight: 700; color: rgba(255,255,255,.25);
  font-family: var(--font-display);
}
.icfs2-committee-card .info { padding: 1.1rem 1.25rem 1.25rem; }
.icfs2-committee-card .name { font-size: .9375rem; font-weight: 700; color: var(--coal-900); line-height: 1.3; margin: 0; }
.icfs2-committee-card .role { font-size: .75rem; font-weight: 600; color: var(--brand-700); margin-top: .2rem; }
.icfs2-committee-card .affil { font-size: .75rem; color: var(--coal-500); margin-top: .3rem; line-height: 1.4; }
.icfs2-committee-card .country {
  display: inline-flex; align-items: center; gap: .25rem;
  margin-top: .5rem; padding: .15rem .55rem;
  font-size: .625rem; font-weight: 600; color: var(--coal-500);
  background: var(--coal-50); border-radius: 9999px;
}

/* ── Announcement card ── */
.icfs2-announcement-card {
  border-radius: 1rem;
  border: 1px solid var(--coal-100);
  background: #fff;
  overflow: hidden;
  transition: all .3s;
  text-decoration: none;
  display: block;
}
.icfs2-announcement-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.08); border-color: var(--brand-200); }
.icfs2-announcement-card .card-img { width: 100%; height: 180px; object-fit: cover; }
.icfs2-announcement-card .card-body { padding: 1.25rem; }
.icfs2-announcement-card .card-tag {
  display: inline-block; padding: .125rem .625rem;
  font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  color: var(--brand-700); background: var(--brand-50); border-radius: 9999px;
  margin-bottom: .625rem;
}
.icfs2-announcement-card h3 { font-family: var(--font-display); font-size: 1rem; font-weight: 700; color: var(--coal-900); margin: 0 0 .5rem; line-height: 1.4; }
.icfs2-announcement-card .excerpt { font-size: .875rem; color: var(--coal-500); line-height: 1.6; margin: 0 0 .75rem; }
.icfs2-announcement-card .card-date { font-size: .75rem; color: var(--coal-400); }

/* ── CTA section (dark) ── */
.icfs2-cta-section {
  position: relative;
  overflow: hidden;
  padding: 5rem 0;
  background: linear-gradient(135deg, #111116 0%, #1e1e24 40%, #2d1a0a 100%);
}
.icfs2-cta-section .orb1 {
  position: absolute; top: 50%; left: 25%;
  width: 16rem; height: 16rem; border-radius: 50%;
  background: radial-gradient(circle, #c10a0a, transparent);
  opacity: .2; filter: blur(40px);
  transform: translateY(-50%); pointer-events: none;
}
.icfs2-cta-section .orb2 {
  position: absolute; top: 50%; right: 25%;
  width: 12rem; height: 12rem; border-radius: 50%;
  background: radial-gradient(circle, #e05e05, transparent);
  opacity: .15; filter: blur(40px);
  transform: translateY(-50%); pointer-events: none;
}
.icfs2-cta-section .grid-overlay {
  position: absolute; inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.1) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,.1) 1px, transparent 1px);
  background-size: 40px 40px; opacity: .05; pointer-events: none;
}
.icfs2-cta-section .inner { position: relative; text-align: center; }
.icfs2-cta-section .badge {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .375rem 1rem;
  font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em;
  color: rgba(255,255,255,.7);
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15);
  border-radius: 9999px; margin-bottom: 1rem;
}
.icfs2-cta-section h2 { font-family: var(--font-display); font-size: 2rem; font-weight: 700; color: #fff; margin: 0 0 1rem; }
@media (min-width: 640px) { .icfs2-cta-section h2 { font-size: 2.5rem; } }
.icfs2-cta-section p { font-size: 1rem; color: rgba(255,255,255,.6); line-height: 1.7; max-width: 42rem; margin: 0 auto 2rem; }
.icfs2-cta-section .actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem; }

/* ── Footer ── */
.icfs2-footer {
  position: relative;
  overflow: hidden;
  background: linear-gradient(160deg, #111116 0%, #1e1e24 50%, #0f0f12 100%);
}
.icfs2-footer .top-glow {
  position: absolute; top: 0; left: 50%;
  transform: translateX(-50%);
  height: 1px; width: 75%;
  background: linear-gradient(90deg, transparent, rgba(193,10,10,.6), rgba(224,94,5,.4), transparent);
}
.icfs2-footer .top-orb {
  position: absolute; top: -5rem; left: 50%;
  transform: translateX(-50%);
  width: 24rem; height: 10rem; border-radius: 50%;
  background: radial-gradient(circle, #c10a0a 0%, transparent 70%);
  opacity: .2; filter: blur(40px); pointer-events: none;
}
.icfs2-footer .footer-inner { position: relative; padding: 3.5rem 0; }
.icfs2-footer .footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}
@media (min-width: 768px) {
  .icfs2-footer .footer-grid { grid-template-columns: 4fr 4fr 4fr; }
}
.icfs2-footer .brand-col {}
.icfs2-footer .brand-logo { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.icfs2-footer .brand-logo img { width: 44px; height: 44px; border-radius: .75rem; object-fit: cover; flex-shrink: 0; }
.icfs2-footer .brand-logo .title { font-size: .875rem; font-weight: 700; color: #fff; line-height: 1.2; }
.icfs2-footer .brand-logo .date  { font-size: .6875rem; color: var(--coal-500); line-height: 1.2; margin-top: .125rem; }
.icfs2-footer .brand-desc { font-size: .875rem; color: var(--coal-400); line-height: 1.7; }
.icfs2-footer .brand-email {
  display: inline-flex; align-items: center; gap: .5rem;
  margin-top: 1rem; font-size: .875rem; font-weight: 600;
  color: var(--fire-400); text-decoration: none; transition: color .2s;
}
.icfs2-footer .brand-email:hover { color: var(--fire-300); }
.icfs2-footer .col-title {
  font-size: .75rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .1em; color: var(--coal-500); margin-bottom: 1.25rem;
}
.icfs2-footer .quick-links { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem 1rem; list-style: none; margin: 0; padding: 0; }
.icfs2-footer .quick-links a {
  display: flex; align-items: center; gap: .375rem;
  font-size: .875rem; color: var(--coal-400); text-decoration: none; transition: color .2s;
}
.icfs2-footer .quick-links a .line {
  display: inline-block; height: 1px; width: .75rem;
  background: #b94204; transition: width .2s, background .2s;
}
.icfs2-footer .quick-links a:hover { color: #fff; }
.icfs2-footer .quick-links a:hover .line { width: 1rem; background: var(--fire-500); }
.icfs2-footer .secretary-box {
  margin-top: 1.25rem; padding: 1rem;
  border-radius: .75rem; border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
}
.icfs2-footer .secretary-box .sec-label { font-size: .75rem; font-weight: 600; color: var(--coal-400); margin-bottom: .25rem; }
.icfs2-footer .secretary-box .sec-name  { font-size: .875rem; font-weight: 600; color: #fff; }
.icfs2-footer .secretary-box .sec-dept  { font-size: .75rem; color: var(--coal-500); margin-top: .125rem; }
.icfs2-footer .secretary-box a { font-size: .75rem; color: var(--fire-400); text-decoration: none; margin-top: .5rem; display: inline-block; }
.icfs2-footer .footer-bottom {
  margin-top: 3rem; padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,.08);
  display: flex; flex-direction: column; align-items: center; gap: .75rem;
}
@media (min-width: 640px) { .icfs2-footer .footer-bottom { flex-direction: row; justify-content: space-between; } }
.icfs2-footer .footer-bottom p { font-size: .75rem; color: var(--coal-600); margin: 0; }
.icfs2-footer .footer-bottom .badge {
  display: flex; align-items: center; gap: .375rem;
  font-size: .75rem; color: var(--coal-600);
}
.icfs2-footer .footer-bottom .badge .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--fire-600); }

/* ── Hero section ── */
.icfs2-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 88vh;
  overflow: hidden;
}
.icfs2-hero .bg-base {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a0e 0%, #111116 45%, #1e0a04 100%);
}
.icfs2-hero .grid-overlay {
  position: absolute; inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.15) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,.15) 1px, transparent 1px);
  background-size: 48px 48px; opacity: .06; pointer-events: none;
}
.icfs2-hero .orb-right {
  position: absolute; top: 33%; right: 0;
  width: 500px; height: 500px; border-radius: 50%;
  background: radial-gradient(circle, #c10a0a 0%, #e05e05 50%, transparent 70%);
  opacity: .2; filter: blur(60px);
  transform: translate(33%, -50%); pointer-events: none;
}
.icfs2-hero .orb-bottom {
  position: absolute; bottom: 0; left: 25%;
  width: 256px; height: 256px; border-radius: 50%;
  background: radial-gradient(circle, #e05e05, transparent);
  opacity: .15; filter: blur(40px); pointer-events: none;
}
.icfs2-hero .hero-inner { position: relative; padding: 6rem 0; }
@media (min-width: 1024px) { .icfs2-hero .hero-inner { padding: 8rem 0; } }
.icfs2-hero .hero-content { max-width: 48rem; }
.icfs2-hero .live-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .375rem 1rem; margin-bottom: 1.5rem;
  font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em;
  color: var(--fire-400);
  background: rgba(247,124,10,.1); border: 1px solid rgba(247,124,10,.3);
  border-radius: 9999px;
}
.icfs2-hero .live-badge .pulse { width: 6px; height: 6px; border-radius: 50%; background: var(--fire-500); animation: pulse-dot 2s ease-in-out infinite; }
.icfs2-hero h1 {
  font-family: var(--font-display);
  font-size: 2.5rem; font-weight: 700; color: #fff; line-height: 1.15; margin: 0;
}
@media (min-width: 640px)  { .icfs2-hero h1 { font-size: 3rem; } }
@media (min-width: 1024px) { .icfs2-hero h1 { font-size: 3.75rem; } }
.icfs2-hero .short-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  margin-top: 1rem; margin-right: 1rem;
  padding: .375rem .75rem;
  border: 1px solid rgba(255,255,255,.1); border-radius: .5rem;
  background: rgba(255,255,255,.05);
}
.icfs2-hero .short-badge .conf-code { font-family: var(--font-display); font-size: 1.125rem; font-weight: 700; color: var(--fire-400); }
.icfs2-hero .short-badge .sep { color: rgba(255,255,255,.4); }
.icfs2-hero .short-badge .conf-year { font-size: .875rem; font-weight: 600; color: rgba(255,255,255,.7); }
.icfs2-hero .theme-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  margin-top: 1rem;
  padding: .375rem .75rem;
  border: 1px solid rgba(247,124,10,.2); border-radius: .5rem;
  background: rgba(247,124,10,.05);
  font-size: 1.125rem; font-weight: 500; color: rgba(255,255,255,.8);
}
.icfs2-hero .tagline { margin-top: .75rem; font-size: .875rem; color: rgba(251,191,110,.8); font-style: italic; }
.icfs2-hero .hero-desc { margin-top: 1.5rem; font-size: 1rem; line-height: 1.7; color: rgba(255,255,255,.6); max-width: 42rem; }
.icfs2-hero .meta { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; margin-top: 1.5rem; font-size: .875rem; }
.icfs2-hero .meta-item { display: flex; align-items: center; gap: .5rem; color: rgba(255,255,255,.7); }
.icfs2-hero .meta-item svg { color: var(--fire-500); flex-shrink: 0; }
.icfs2-hero .hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.icfs2-hero .organizer-note { margin-top: 2rem; font-size: .75rem; color: rgba(255,255,255,.3); }

/* ── Submission phases (dark cards) ── */
.icfs2-phase-card {
  border-radius: .75rem;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.05);
  padding: 1.25rem;
  backdrop-filter: blur(4px);
}
.icfs2-phase-card .phase-label { font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.4); }
.icfs2-phase-card .phase-title { margin-top: .25rem; font-weight: 700; color: #fff; }
.icfs2-phase-card .phase-desc  { margin-top: .25rem; font-size: .875rem; color: rgba(255,255,255,.5); }
.icfs2-phase-card .phase-deadline { margin-top: .5rem; font-size: .875rem; font-weight: 700; color: var(--fire-400); }

/* ── Date timeline ── */
.icfs2-timeline { display: flex; flex-direction: column; gap: .75rem; }
.icfs2-timeline-item { display: flex; align-items: flex-start; gap: .75rem; }
.icfs2-timeline-item .tl-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--fire-500); flex-shrink: 0; margin-top: .375rem;
}
.icfs2-timeline-item.passed .tl-dot { background: var(--coal-300); }
.icfs2-timeline-item .tl-title { font-size: .875rem; font-weight: 600; color: var(--coal-900); }
.icfs2-timeline-item.passed .tl-title { color: var(--coal-400); text-decoration: line-through; }
.icfs2-timeline-item .tl-date  { font-size: .75rem; color: var(--coal-400); margin-top: .125rem; }
.icfs2-timeline-item .tl-badge {
  display: inline-block; padding: .125rem .5rem;
  font-size: .625rem; font-weight: 700; text-transform: uppercase;
  color: var(--fire-700); background: var(--fire-50); border-radius: 9999px; margin-top: .25rem;
}

/* ── Forms ── */
.icfs2-form-label { display: block; font-size: .875rem; font-weight: 600; color: var(--coal-700); margin-bottom: .25rem; }
.icfs2-form-input, .icfs2-form-textarea {
  display: block; width: 100%;
  padding: .625rem .875rem;
  font-size: .875rem; color: var(--coal-900);
  background: #fff; border: 1px solid var(--coal-200);
  border-radius: .5rem; box-shadow: 0 1px 2px rgba(0,0,0,.04);
  transition: border-color .2s, box-shadow .2s;
  font-family: var(--font-sans);
}
.icfs2-form-input:focus, .icfs2-form-textarea:focus {
  outline: none;
  border-color: var(--brand-500);
  box-shadow: 0 0 0 3px rgba(193,10,10,.1);
}
.icfs2-form-input::placeholder, .icfs2-form-textarea::placeholder { color: var(--coal-400); }
.icfs2-form-error { margin-top: .25rem; font-size: .75rem; color: var(--brand-600); }
.icfs2-form-success {
  padding: 1rem; border-radius: .75rem;
  border: 1px solid #a7f3d0; background: #ecfdf5;
  font-size: .875rem; font-weight: 500; color: #065f46;
  margin-bottom: 1.5rem;
}

/* ── Sidebar card ── */
.icfs2-sidebar-card {
  border-radius: 1rem; border: 1px solid var(--coal-100);
  background: var(--coal-50); padding: 1.5rem;
}
.icfs2-sidebar-card.fire-bg {
  border-color: var(--brand-100);
  background: linear-gradient(135deg, #fff1f1 0%, #fff8f1 100%);
}
.icfs2-sidebar-card h3 { font-family: var(--font-display); font-weight: 700; color: var(--coal-900); margin: 0 0 .5rem; }
.icfs2-sidebar-card p  { font-size: .875rem; color: var(--coal-500); margin: 0 0 1rem; line-height: 1.6; }

/* ── Venue map placeholder ── */
.icfs2-venue-placeholder {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 1rem; min-height: 220px;
  border-radius: 1rem; border: 1px solid var(--coal-100);
  background: var(--coal-50); padding: 2rem;
}
.icfs2-venue-placeholder .map-icon {
  display: flex; align-items: center; justify-content: center;
  width: 64px; height: 64px; border-radius: 1rem;
  background: linear-gradient(135deg, #c10a0a 0%, #e05e05 100%);
}
.icfs2-venue-placeholder .venue-name { font-weight: 700; color: var(--coal-900); text-align: center; }
.icfs2-venue-placeholder .venue-addr { font-size: .875rem; color: var(--coal-500); text-align: center; margin-top: .25rem; }
.icfs2-venue-placeholder a { font-size: .875rem; font-weight: 600; color: var(--brand-600); text-decoration: none; margin-top: .75rem; }
.icfs2-venue-placeholder a:hover { color: var(--brand-700); }

/* ── Registration table ── */
.icfs2-reg-table { width: 100%; border-radius: .75rem; overflow: hidden; border: 1px solid var(--coal-100); }
.icfs2-reg-table thead tr { background: var(--coal-50); border-bottom: 1px solid var(--coal-100); }
.icfs2-reg-table th { padding: .75rem 1.25rem; text-align: left; font-size: .875rem; font-weight: 700; color: var(--coal-700); }
.icfs2-reg-table td { padding: .75rem 1.25rem; font-size: .875rem; color: var(--coal-600); border-bottom: 1px solid var(--coal-50); }
.icfs2-reg-table td:first-child { font-weight: 600; color: var(--coal-900); }
.icfs2-reg-table tr:last-child td { border-bottom: none; }

/* ── Numbered step ── */
.icfs2-step { display: flex; align-items: flex-start; gap: .75rem; }
.icfs2-step .step-num {
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0;
  font-size: .75rem; font-weight: 700; color: #fff;
  background: linear-gradient(135deg, #c10a0a, #e05e05);
}
.icfs2-step p { font-size: .875rem; color: var(--coal-500); line-height: 1.6; margin: 0; padding-top: .25rem; }

/* ── Bullet list ── */
.icfs2-bullet-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .625rem; }
.icfs2-bullet-list li { display: flex; align-items: flex-start; gap: .625rem; font-size: .875rem; color: var(--coal-500); line-height: 1.6; }
.icfs2-bullet-list li .bullet { width: 6px; height: 6px; border-radius: 50%; background: var(--fire-500); flex-shrink: 0; margin-top: .5rem; }

/* ── Programme session ── */
.icfs2-session {
  display: flex; gap: 1rem;
  border-radius: .75rem; border: 1px solid var(--coal-100);
  background: #fff; padding: 1rem;
  transition: border-color .2s;
}
.icfs2-session:hover { border-color: var(--coal-200); }
.icfs2-session .time { width: 5rem; flex-shrink: 0; font-size: .75rem; font-weight: 600; color: var(--coal-400); font-variant-numeric: tabular-nums; padding-top: .125rem; }
.icfs2-session .session-badge { display: inline-block; padding: .125rem .5rem; border-radius: .375rem; font-size: .75rem; font-weight: 700; text-transform: capitalize; }
.icfs2-session .session-title { font-size: .875rem; font-weight: 600; color: var(--coal-900); }
.icfs2-session .session-speaker { font-size: .75rem; color: var(--coal-500); margin-top: .25rem; }
.icfs2-session .session-location { font-size: .75rem; color: var(--coal-400); margin-top: .25rem; }

/* ── Responsive helpers ── */
.icfs2-grid-2 { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px) { .icfs2-grid-2 { grid-template-columns: 1fr 1fr; } }
.icfs2-grid-4 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (min-width: 1024px) { .icfs2-grid-4 { grid-template-columns: repeat(4,1fr); } }
.icfs2-grid-3 { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px) { .icfs2-grid-3 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .icfs2-grid-3 { grid-template-columns: repeat(3,1fr); } }
.icfs2-two-col { display: grid; grid-template-columns: 1fr; gap: 3rem; }
@media (min-width: 1024px) { .icfs2-two-col { grid-template-columns: 1fr 1fr; align-items: center; } }
.icfs2-content-sidebar { display: grid; grid-template-columns: 1fr; gap: 3rem; }
@media (min-width: 1024px) { .icfs2-content-sidebar { grid-template-columns: 2fr 1fr; } }

/* ── Parent theme overrides / resets ── */
body { margin: 0 !important; padding: 0 !important; }
/* Kill WP block layout spacing on body children that breaks full-width */
:where(.wp-site-blocks) > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.wp-site-blocks { padding: 0 !important; margin: 0 !important; }

/* Ensure our sections go full width */
.icfs2-hero,
.icfs2-stats-bar,
.icfs2-cta-section,
.icfs2-footer,
.icfs2-page-hero {
  width: 100%;
  box-sizing: border-box;
}

/* Fix WP adding margin-block to headings inside our templates */
.icfs2-hero h1,
.icfs2-page-hero h1,
.icfs2-cta-section h2,
.section-heading h2 {
  margin-block-start: 0;
  margin-block-end: 0;
}

/* Pagination links from the_posts_pagination */
.nav-links { display: flex; gap: .375rem; flex-wrap: wrap; }
.nav-links a, .nav-links span {
  display: inline-flex; align-items: center; justify-content: center;
  padding: .5rem .875rem;
  font-size: .875rem; font-weight: 600;
  border-radius: .5rem;
  text-decoration: none;
  transition: all .2s;
}
.nav-links a { color: var(--coal-600); background: #fff; border: 1px solid var(--coal-200); }
.nav-links a:hover { background: var(--coal-50); color: var(--coal-900); }
.nav-links .current {
  color: #fff;
  background: linear-gradient(135deg, #c10a0a, #e05e05);
  border: none;
}

/* Admin bar offset for sticky header */
.admin-bar .icfs2-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .icfs2-header { top: 46px; } }
