/* =====================================================================
   TOID THEME | FULL CSS v5.0.0 | CSS-FIRST CMS HANDOFF
   Complete replacement stylesheet. Read GROK-IMPLEMENTATION-v5.txt.
   Essential layout uses CMS HTML/CSS; JavaScript is for interactions only.
   Uses CMS structural selectors, not event-specific module or field IDs.
   Logo/photo sources are read from CMS markup or explicit configuration.
   ===================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap');

/* 01. DESIGN TOKENS ---------------------------------------------------- */
:root {
  --toid-theme-version: "5.0.0";
  --toid-navy: #1a2a3a;
  --toid-ink: #172b3b;
  --toid-muted: #596b79;
  --toid-yellow: #f2c400;
  --toid-yellow-soft: #fbf3c8;
  --toid-bg: #f8f7f3;
  --toid-paper: #f4f1e9;
  --toid-white: #fff;
  --toid-border: #dfe4e6;
  --toid-max: 1320px;
  --toid-header-max: 1640px;
  --toid-gutter: clamp(20px, 3.2vw, 48px);
  --toid-section-space: clamp(40px, 4.2vw, 64px);
  --toid-header-h: 84px;
  --toid-radius: 20px;
  --toid-input-radius: 9px;
  --toid-shadow: 0 12px 32px rgba(26, 42, 58, .065);
  --toid-focus: 0 0 0 4px rgba(230, 194, 0, .25);
  --font-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-sans: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;
  /* CMS may set these variables in page/template markup. No event URL here. */
  --toid-venue-photo: none;
  --toid-title-photo: var(--toid-venue-photo);
}


/* Compact inline icon assets, shared by all forms and components. */
:root {
  --toid-select-chevron: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27m5%209%207%207%207-7%27%2F%3E%3C%2Fsvg%3E");
  --toid-arrow-right: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%231a2a3a%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2012h18m-7-7%207%207-7%207%27%2F%3E%3C%2Fsvg%3E");
  --toid-search-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2710%27%20cy%3D%2710%27%20r%3D%276%27%2F%3E%3Cpath%20d%3D%27m15%2015%206%206%27%2F%3E%3C%2Fsvg%3E");
}
[data-toid-icon='user'] { --toid-field-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%277%27%20r%3D%273%27%2F%3E%3Cpath%20d%3D%27M5%2021v-2a7%207%200%200%201%2014%200v2Z%27%2F%3E%3C%2Fsvg%3E"); }
[data-toid-icon='email'] { --toid-field-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%275%27%20width%3D%2718%27%20height%3D%2714%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27m3%206%209%207%209-7%27%2F%3E%3C%2Fsvg%3E"); }
[data-toid-icon='phone'] { --toid-field-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M7%203H4a1%201%200%200%200-1%201c0%209.4%207.6%2017%2017%2017a1%201%200%200%200%201-1v-3l-5-2-2%202a15%2015%200%200%201-7-7l2-2Z%27%2F%3E%3C%2Fsvg%3E"); }
[data-toid-icon='globe'] { --toid-field-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%279%27%2F%3E%3Cellipse%20cx%3D%2712%27%20cy%3D%2712%27%20rx%3D%274%27%20ry%3D%279%27%2F%3E%3Cpath%20d%3D%27M3%2012h18M5%206h14M5%2018h14%27%2F%3E%3C%2Fsvg%3E"); }
[data-toid-icon='building'] { --toid-field-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%2021V5l8-3%208%203v16M2%2021h20M9%2021v-4h6v4M8%207h1m6%200h1M8%2011h1m6%200h1%27%2F%3E%3C%2Fsvg%3E"); }
[data-toid-icon='briefcase'] { --toid-field-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%277%27%20width%3D%2718%27%20height%3D%2714%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27M8%207V3h8v4M3%2012h18M10%2010v4h4v-4%27%2F%3E%3C%2Fsvg%3E"); }
[data-toid-icon='id'] { --toid-field-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%272%27%20y%3D%275%27%20width%3D%2720%27%20height%3D%2714%27%20rx%3D%272%27%2F%3E%3Ccircle%20cx%3D%277%27%20cy%3D%2710%27%20r%3D%271.5%27%2F%3E%3Cpath%20d%3D%27M4%2016a3%203%200%200%201%206%200M13%2010h6M13%2014h5%27%2F%3E%3C%2Fsvg%3E"); }
[data-toid-icon='passport'] { --toid-field-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%275%27%20y%3D%273%27%20width%3D%2715%27%20height%3D%2719%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27M3%2018V2h12%27%2F%3E%3Ccircle%20cx%3D%2712.5%27%20cy%3D%2711%27%20r%3D%274%27%2F%3E%3Cpath%20d%3D%27M8.5%2011h8M12.5%207v8M10%2018h5%27%2F%3E%3C%2Fsvg%3E"); }
[data-toid-icon='diet'] { --toid-field-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%202v7a3%203%200%200%200%206%200V2M8%202v20M19%202v20M19%202c-4%203-5%208%200%209%27%2F%3E%3C%2Fsvg%3E"); }
[data-toid-icon='access'] { --toid-field-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2710%27%20cy%3D%274%27%20r%3D%272%27%2F%3E%3Cpath%20d%3D%27M10%207v7h6l3%207%203-1M10%2010h6M7%2011a6%206%200%201%200%208%209%27%2F%3E%3C%2Fsvg%3E"); }
[data-toid-icon='lock'] { --toid-field-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%274%27%20y%3D%2710%27%20width%3D%2716%27%20height%3D%2711%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27M7%2010V7a5%205%200%200%201%2010%200v3M12%2014v3%27%2F%3E%3C%2Fsvg%3E"); }
[data-toid-icon='calendar'] { --toid-field-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23637993%27%20stroke-width%3D%271.6%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%275%27%20width%3D%2718%27%20height%3D%2716%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27M7%202v6M17%202v6M3%2011h18M7%2015h3M14%2015h3%27%2F%3E%3C%2Fsvg%3E"); }

/* 02. PAGE SHELL AND BASIC TYPOGRAPHY ---------------------------------- */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--toid-header-offset, var(--toid-header-h)) + 20px); }
body {
  margin: 0;
  padding: 0;
  background: var(--toid-bg);
  color: var(--toid-ink);
  font: 400 16px/1.65 var(--font-sans);
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
}
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
img { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
a { color: var(--toid-navy); text-decoration: none; text-underline-offset: 4px; }
a:hover { color: #796600; text-decoration: underline; }
a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid #a68b00;
  outline-offset: 4px;
}
::selection { background: var(--toid-yellow-soft); color: var(--toid-navy); }
:where(h1, h2, h3, h4, h5, h6) { font-family: var(--font-serif); color: var(--toid-navy); }
:where(h1, h2, h3, h4) { line-height: 1.15; font-weight: 600; }
p { margin: 0 0 1em; }
.container-mobile {
  width: 100% !important;
  max-width: none !important;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent;
  overflow:visible !important;
  position:relative !important; transform:none !important;
}
.background-container:has(> .region-background.empty) { display:none !important; }
/* A sticky header needs no spacer for the template's former fixed header. */
.head-padding { display: none !important; }
#fContent { flex: 1 0 auto; width: 100%; max-width: none; margin: 0; padding: 0; background: var(--toid-bg); }
#fContent > .container {
  width: 100%;
  max-width: var(--toid-max);
  margin: 0 auto;
  padding:28px var(--toid-gutter) 44px;
}
#fContent > .container > .row { --bs-gutter-x: 28px; }
#fMatter { min-width: 0; }
@media (max-width: 767.98px) { #fContent > .container { padding-top: 28px; padding-bottom: 36px; } }
#f-messages:empty { display: none; }
/* Full bleed only for the home page, not every CMS page/form/sidebar. */
body:is(.is-home, .home, .path-home-) #fContent > .container {
  max-width: none !important;
  padding: 0 !important;
}
body:is(.is-home, .home, .path-home-) #fContent > .container > .row {
  --bs-gutter-x: 0;
  margin: 0;
}
body:is(.is-home, .home, .path-home-) #fMatter {
  width: 100%; max-width: none; flex: 0 0 100%; margin: 0; padding: 0;
}
body:is(.is-home, .home, .path-home-) #fMatter > .fRegion > .fModule { margin: 0; }
:where(.toid-section, .toid-feature-strip, .toid-band-yellow, .toid-band-photo,
       .toid-reg-band, .toid-action-cards, .toid-sponsors) > .container,
.toid-hero-inner {
  width: 100%;
  max-width: var(--toid-max);
  margin-inline: auto;
  padding-inline: var(--toid-gutter);
}

/* 03. HEADER: REAL LOGO BESIDE THE EXISTING HEADING --------------------- */
.fHeader {
  position:sticky !important;
  inset:0 auto auto !important; transform:none !important;
  flex:0 0 auto; order:-10; align-self:stretch;
  opacity:1 !important; visibility:visible !important;
  top:0 !important;
  z-index: 1000;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  border: 0 !important;
  border-bottom: 2px solid var(--toid-yellow) !important;
  box-shadow: 0 4px 20px rgba(26, 42, 58, .045);
  overflow: visible !important;
}
.fHeader .fheaderToptwo:has(.region-headertop.empty) { display: none !important; }
.fHeader .navbar-header {
  position: static !important;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 0;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}
.fHeader .navbar-header > .wrap {
  width: 100%; max-width: var(--toid-header-max);
  margin: 0 auto; padding: 0 var(--toid-gutter); overflow: visible;
}
.fHeader .region-header {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 24px;
  min-height: var(--toid-header-h);
  width: 100%;
  padding: 12px 0;
}
.fHeader .region-header > .fModule {
  float: none !important; width: auto !important;
  min-width: 0; margin: 0 !important; padding: 0 !important;
  border: 0 !important; background: transparent !important; box-shadow: none !important;
}
.fHeader .fModuleContent { margin: 0 !important; padding: 0 !important; }
.fHeader .region-header > .fModule:has(.toid-brand) { flex: 0 0 auto; }
.fHeader .region-header > .fModule:has(.toid-brand) > .fModuleTitle,
.fHeader .toid-main-nav > .fModuleTitle { display: none !important; }
.fHeader .toid-brand-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 22px !important;
  width: 100%; min-width: 0;
}
.fHeader .toid-brand {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  align-content: center;
  column-gap: 12px; row-gap: 4px;
  min-width: 0;
  margin: 0 !important; padding: 0 !important;
  background: transparent !important; border: 0 !important;
  color: var(--toid-navy) !important;
  text-decoration: none !important;
}
.fHeader .toid-brand.toid-brand--with-logo {
  grid-template-columns: 66px minmax(0, 1fr);
}
.fHeader .toid-brand > .toid-header-logo {
  grid-column: 1; grid-row: 1 / 3;
  display: block !important;
  width: 66px !important; height: 66px !important;
  min-width: 0; max-width: none !important; max-height: none !important;
  margin: 0 !important; padding: 0 !important;
  border: 0 !important; border-radius: 0;
  object-fit: contain; object-position: center;
}
.fHeader .toid-brand > strong {
  align-self: end; margin: 0; padding: 0;
  color: var(--toid-navy);
  font:700 28px/1.1 var(--font-serif);
  letter-spacing: -.025em; white-space: nowrap;
}
.fHeader .toid-brand > span:not(.toid-header-logo) {
  align-self: start; margin: 0; padding: 0;
  color: var(--toid-muted);
  font: 500 12px/1.4 var(--font-sans);
  white-space: nowrap;
}
.fHeader .toid-brand--with-logo > :is(strong, span) { grid-column: 2; }
.toid-lang { display: flex; flex: 0 0 auto; align-items: center; gap: 3px; }
.toid-lang a {
  display: inline-flex; align-items: center; justify-content: center;
  min-width:36px; min-height:34px; padding:6px 9px;
  border:1px solid #dce3e8; border-radius:999px;
  color: var(--toid-muted);
  font: 600 12px/1 var(--font-sans); text-decoration: none !important;
}
.toid-lang a.is-active { background:var(--toid-navy); color:#fff; }
.toid-lang a:hover { background: #eef1f2; color: var(--toid-navy); }

/* 04. MAIN NAVIGATION: INDEPENDENT OF FOOTER AND REGISTRATION STEPS ----- */
.fHeader .toid-main-nav { position: static !important; flex: 1 1 auto; }
.fHeader .toid-main-nav > .fModuleContent { position: static !important; }
.fHeader .toid-main-nav .navbar-toggle-container { display: none !important; }
.fHeader .toid-main-nav nav {
  position: static; width: 100%; margin: 0; padding: 0;
  background: transparent; border: 0;
}
.fHeader .toid-main-nav .fMenu {
  display: flex !important; flex-wrap: nowrap; align-items: center;
  justify-content: flex-end; gap: 2px;
  width: 100%; margin: 0 !important; padding: 0 !important; list-style: none !important;
}
.fHeader .toid-main-nav .fMenu > li {
  position: relative; display: block; flex: 0 0 auto;
  margin: 0 !important; padding: 0 !important;
  border: 0 !important; list-style: none !important;
}
.fHeader .toid-main-nav .fMenu > li::before { content: none !important; }
.fHeader .toid-main-nav .fMenu > li > a {
  position: relative; display: flex; align-items: center; justify-content: center;
  min-height: 44px; margin: 0; padding: 10px 9px;
  border: 0; border-radius: 9px; background: transparent;
  color: var(--toid-navy); font: 600 14px/1.3 var(--font-sans);
  white-space: nowrap; text-decoration: none !important;
  transition: background .18s ease, color .18s ease;
}
.fHeader .toid-main-nav .menu-item-text { font: inherit; }
.fHeader .toid-main-nav .menu-item-icon:empty { display: none; }
.fHeader .toid-main-nav .fMenu > li > a:hover { background: #f2f4f3; }
.fHeader .toid-main-nav .fMenu > li:is(.selected,.active,.current):not(.toid-nav-register) > a { background:transparent; border-radius:0; box-shadow:inset 0 -2px var(--toid-yellow); }
.fHeader .toid-main-nav .fMenu > li.toid-nav-register > a {
  margin-left: 10px; padding: 13px 20px;
  border-radius: 999px; background: var(--toid-yellow);
  color: var(--toid-navy); font-weight: 700;
}
.fHeader .toid-main-nav .fMenu > li.toid-nav-register > a:hover { background: #f0cd18; }
.fHeader .toid-main-nav .fMenu > li > ul {
  display: none; position: absolute; inset: 100% auto auto 0;
  z-index: 10; width: 230px; margin: 0; padding: 10px;
  border: 1px solid var(--toid-border); border-radius: 14px;
  background: #fff; box-shadow: var(--toid-shadow); list-style: none;
}
.fHeader .toid-main-nav .fMenu > li:last-child > ul { right: 0; left: auto; }
.fHeader .toid-main-nav .fMenu > li:is(:hover, :focus-within) > ul { display: block; }
.fHeader .toid-main-nav .fMenu > li > ul li { list-style: none; margin: 0; padding: 0; }
.fHeader .toid-main-nav .fMenu > li > ul a {
  display: block; padding: 10px 12px; border-radius: 8px;
  color: var(--toid-navy); font: 500 15px/1.4 var(--font-sans);
}
.fHeader .toid-main-nav .fMenu > li > ul a:hover { background: var(--toid-yellow-soft); text-decoration: none; }
@media (min-width: 1400px) {
  .fHeader .toid-main-nav nav,
  .fHeader .toid-main-nav nav.collapse,
  .fHeader .toid-main-nav nav.collapsing {
    display: block !important; height: auto !important;
    overflow: visible !important; visibility: visible !important;
  }
}

/* 05. RESPONSIVE HAMBURGER; CSS AND JS SHARE THE 1400PX BREAKPOINT ------- */
@media (max-width: 1399.98px) {
  :root { --toid-header-h: 86px; }
  .fHeader .region-header { gap: 20px; }
  .fHeader .region-header > .fModule:has(.toid-brand) { flex: 1 1 auto; }
  .fHeader .toid-main-nav { flex: 0 0 48px; }
  .fHeader .toid-main-nav .navbar-toggle-container {
    display: flex !important; align-items: center; justify-content: flex-end;
    margin: 0 !important; padding: 0 !important;
  }
  .fHeader .toid-main-nav .navbar-toggle {
    float: none !important; position: relative; display: flex !important;
    flex-direction: column; align-items: center; justify-content: center; gap: 5px;
    width: 48px; height: 48px; margin: 0 !important; padding: 12px;
    border: 1px solid var(--toid-border); border-radius: 13px;
    background: #fff; cursor: pointer; text-decoration: none !important;
  }
  .fHeader .toid-main-nav .navbar-toggle:hover { background: var(--toid-yellow-soft); }
  .fHeader .toid-main-nav .icon-bar {
    display: block; width: 22px; height: 2px; margin: 0 !important;
    border-radius: 2px; background: var(--toid-navy);
    transition: transform .2s ease, opacity .2s ease;
  }
  .fHeader .toid-main-nav .navbar-toggle[aria-expanded='true'] .icon-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .fHeader .toid-main-nav .navbar-toggle[aria-expanded='true'] .icon-bar:nth-child(2) { opacity: 0; }
  .fHeader .toid-main-nav .navbar-toggle[aria-expanded='true'] .icon-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .fHeader .toid-main-nav nav {
    position: absolute; top: 100%;
    left: calc(-1 * var(--toid-gutter)); right: calc(-1 * var(--toid-gutter));
    z-index: 20; width: auto;
    max-height: calc(100vh - var(--toid-header-offset, var(--toid-header-h)) - 12px);
    max-height: calc(100dvh - var(--toid-header-offset, var(--toid-header-h)) - 12px);
    margin: 0; padding: 0;
    overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
    background: #fff; border: 0; border-top: 1px solid #eef0ef;
    border-bottom: 2px solid var(--toid-yellow);
    border-radius: 0 0 18px 18px; box-shadow: 0 18px 30px rgba(26, 42, 58, .14);
  }
  /* Override the CMS d-sm-block / d-md-block utility classes. */
  .fHeader .toid-main-nav nav:not(.show):not(.in):not(.collapsing) { display: none !important; }
  .fHeader .toid-main-nav nav:is(.show, .in) { display: block !important; height: auto !important; }
  .fHeader .toid-main-nav nav.collapsing { display: block !important; overflow: hidden; transition: height .2s ease; }
  .fHeader .toid-main-nav .fMenu {
    flex-direction: column; align-items: stretch; gap: 3px;
    padding: 16px var(--toid-gutter) 22px !important;
  }
  .fHeader .toid-main-nav .fMenu > li { width: 100%; }
  .fHeader .toid-main-nav .fMenu > li > a {
    justify-content: flex-start; min-height: 48px; padding: 12px 16px;
    font-size: 16px; white-space: normal;
  }
  .fHeader .toid-main-nav .fMenu > li.toid-nav-register > a {
    justify-content: center; margin: 10px 0 0; padding: 14px 20px;
  }
  .fHeader .toid-main-nav .fMenu > li > ul {
    position: static; display: block; width: 100%; padding: 0 0 8px 16px;
    border: 0; border-radius: 0; box-shadow: none;
  }
}
@media (max-width: 575.98px) {
  :root { --toid-header-h: 100px; --toid-gutter: 20px; }
  .fHeader .region-header { gap: 12px; padding-block: 10px; }
  .fHeader .toid-brand-wrap { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 5px !important; }
  .fHeader .toid-brand.toid-brand--with-logo { grid-template-columns: 46px minmax(0, 1fr); column-gap: 10px; }
  .fHeader .toid-brand > .toid-header-logo { width: 46px !important; height: 46px !important; }
  .fHeader .toid-brand > strong { font-size: 25px; }
  .fHeader .toid-brand > span:not(.toid-header-logo) { font-size: 10.5px; }
  .fHeader .toid-lang { margin: 0 0 0 56px; gap: 4px; }
  .fHeader .toid-lang a { min-width: 28px; min-height: 24px; padding: 4px 6px; font-size:10px; border-radius:999px; }
  .fHeader .toid-main-nav { flex-basis: 44px; }
  .fHeader .toid-main-nav .navbar-toggle { width: 44px; height: 44px; border-radius: 12px; }
}
@media (max-width: 359.98px) {
  :root { --toid-gutter: 16px; }
  .fHeader .toid-brand > strong { font-size: 23px; }
  .fHeader .toid-brand > span:not(.toid-header-logo) { font-size: 10px; }
}
/* Legacy overlay support, only where those existing elements are present. */
.toid-nav-toggle {
  display: inline-flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 5px; width: 44px; height: 44px;
  padding: 10px; border: 1px solid var(--toid-border); border-radius: 12px;
  background: #fff; cursor: pointer;
}
.toid-nav-toggle span { display: block; width: 22px; height: 2px; background: var(--toid-navy); }
.toid-nav-overlay {
  position: fixed; inset: 0; z-index: 1200; padding: 24px;
  background: var(--toid-navy); color: #fff;
  overflow-y: auto; visibility: hidden; pointer-events: none;
  transform: translateX(100%); transition: transform .25s ease, visibility .25s;
}
.toid-nav-overlay.is-open { visibility: visible; pointer-events: auto; transform: none; }
.toid-nav-overlay .toid-nav-close { float: right; min-width: 44px; min-height: 44px; border: 0; background: transparent; color: #fff; font-size: 30px; cursor: pointer; }
.toid-nav-overlay nav { clear: both; display: flex; flex-direction: column; gap: 8px; padding-top: 24px; }
.toid-nav-overlay nav a { display: block; padding: 12px 0; border-bottom: 1px solid #43515e; color: #fff; font: 600 26px/1.2 var(--font-serif); }
.toid-nav-overlay a:hover { color: var(--toid-yellow); }

/* Logos are REAL CMS image elements; no CSS-generated remote-image URL. */
.fHeader .toid-brand:has(> img),
.fHeader .toid-brand:has(> picture),
.fHeader .toid-brand:has(> .toid-brand-media) { grid-template-columns:60px minmax(0,1fr); }
.fHeader .toid-brand > :is(img,picture,.toid-brand-media) {
  grid-column:1 !important; grid-row:1 / 3; align-self:center;
  display:block; width:60px !important; height:60px !important;
  margin:0 !important; padding:0 !important; min-width:0; max-width:none;
  border:0; background:transparent; object-fit:contain;
}
.fHeader .toid-brand > :is(picture,.toid-brand-media) > img {
  display:block; width:100% !important; height:100% !important; max-width:none !important;
  margin:0 !important; padding:0 !important; object-fit:contain !important;
}
.fHeader .toid-brand:has(img) > :is(strong,span:not(.toid-brand-media),.toid-brand-copy) { grid-column:2; }
.fHeader .toid-brand > .toid-brand-copy { grid-row:1 / 3; align-self:center; white-space:normal; }
.fHeader .toid-brand-copy > strong { display:block; color:var(--toid-navy); font:700 27px/1.12 var(--font-serif); }
.fHeader .toid-brand-copy > :is(span,small) { display:block; margin-top:5px; color:var(--toid-muted); font:500 12px/1.4 var(--font-sans); }
.fHeader .toid-brand img[data-toid-logo='round'] { border-radius:50%; object-fit:contain !important; }
/* Explicit wordmark mode preserves full artwork. Do not infer a crop. */
.fHeader .toid-brand[data-toid-logo-kind='wordmark'],
.fHeader .toid-brand[data-toid-logo-mode='wordmark'] { grid-template-columns:minmax(120px,190px) minmax(0,1fr); }
.fHeader .toid-brand[data-toid-logo-kind='wordmark'] > .toid-brand-media,
.fHeader .toid-brand[data-toid-logo-mode='wordmark'] > img { width:190px !important; height:60px !important; }
@media (max-width:575.98px) {
  .fHeader .toid-brand:has(img) { grid-template-columns:46px minmax(0,1fr); }
  .fHeader .toid-brand > :is(img,picture,.toid-brand-media) { width:46px !important; height:46px !important; }
  .fHeader .toid-brand-copy > strong { font-size:23px; }
  .fHeader .toid-brand-copy > :is(span,small) { font-size:11px; }
  .fHeader .toid-brand[data-toid-logo-kind='wordmark'] { grid-template-columns:minmax(0,1fr); }
  .fHeader .toid-brand[data-toid-logo-kind='wordmark'] > .toid-brand-media { grid-column:1 !important; grid-row:1; }
  .fHeader .toid-brand[data-toid-logo-kind='wordmark'] > :is(strong,span:not(.toid-brand-media),.toid-brand-copy) { grid-column:1; grid-row:auto; }
}

/* 06. INTERNAL PAGE TITLE: RESET LEGACY POSITIONING AND CLIPPING ------- */
#fContent > .fPageTitle {
  position: relative !important;
  display: flex; align-items: center;
  isolation: isolate;
  width: 100% !important; max-width: none !important;
  height: auto !important; min-height:112px;
  margin:0 !important; padding:24px 0 !important;
  inset: auto !important; transform: none !important;
  overflow: hidden;
  background-color: var(--toid-navy);
  background-image:linear-gradient(90deg,rgba(17,34,50,.94),rgba(17,34,50,.70)),var(--toid-title-photo);
  background-position: center; background-size: cover;
  border: 0; border-bottom: 3px solid var(--toid-yellow); color: #fff;
}
#fContent > .fPageTitle::before,
#fContent > .fPageTitle::after { content: none !important; }
#fContent > .fPageTitle > .container {
  position: relative !important; display: block;
  width: 100% !important; max-width: var(--toid-max) !important;
  margin: 0 auto !important; padding: 0 var(--toid-gutter) !important;
  inset: auto !important; transform: none !important;
}
#fContent .fPageTitle :is(h1, h2, #heading) {
  position: relative !important; display: block !important; float: none !important;
  inset: auto !important; transform: none !important;
  width: auto !important; max-width: 100% !important; height: auto !important;
  margin: 0 !important; padding: 0 !important;
  border: 0 !important; background: none !important;
  color: #fff !important;
  font: 600 clamp(32px, 3.1vw, 44px)/1.16 var(--font-serif) !important;
  font-variant-numeric: lining-nums;
  text-indent: 0 !important; text-align: left !important;
  letter-spacing: -.02em; white-space: normal !important;
  overflow: visible !important; overflow-wrap: anywhere;
  clip:auto !important; clip-path:none !important; opacity:1 !important; visibility:visible !important;
}
#fContent .fPageTitle :is(h1, h2, #heading)::before,
#fContent .fPageTitle :is(h1, h2, #heading)::after { content: none !important; }
.fPageTitle .breadcrumb { margin: 16px 0 0; padding: 0; background: transparent; }
.fPageTitle .breadcrumb, .fPageTitle .breadcrumb a { color: #e1e7ec; }
body:is(.is-home, .home, .path-home-) #fContent > .fPageTitle { display: none !important; }
.toid-inner-banner, .toid-page-banner { width: 100%; margin: 0; overflow: hidden; }
.toid-inner-banner img, .toid-page-banner img { display: block; width: 100%; height: auto; }

@media (max-width:575.98px) {
  #fContent > .fPageTitle { min-height:86px; padding:18px 0 !important; }
  #fContent .fPageTitle :is(h1,h2,#heading) { font-size:32px !important; }
}

/* 07. HOME BANNER / NATIVE PHOTO GALLERY / bxSlider --------------------- */
.toid-hero-widget, .toid-banner-gallery {
  position: relative;
  width: 100%;
  max-width: none;
  min-height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: var(--toid-navy);
  border-bottom: 3px solid var(--toid-yellow);
}
.toid-hero-widget > .fModuleTitle { display: none; }
.toid-hero-widget .fModuleContent { width: 100%; margin: 0; padding: 0; }
.toid-hero-widget :is(ul.fGalleryImages, ul.fGalleryList),
ul.toid-hero-gallery {
  margin: 0;
  padding: 0;
  min-height: 0;
  list-style: none;
  background: transparent;
  border: 0;
}
.toid-hero-widget .bx-viewport > ul { display: block !important; max-width: none !important; }
.toid-hero-widget .fGalleryItem { margin: 0; padding: 0; list-style: none; }
.toid-hero-widget .fGalleryItem::before { content: none; }
.toid-hero-widget .fGalleryImage { display: block; width: 100%; margin: 0; padding: 0; line-height: 0; }
.toid-hero-widget .fGalleryImage > img {
  display: block;
  width: 100% !important;
  max-width: 100%;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0;
  border: 0;
  border-radius: 0;
  object-fit: contain;
}
/* First image is the safe static fallback until the existing slider wraps
   the list. Crucially, slider track widths, floats and transforms are NOT
   overridden. The full original image remains visible at every width. */
.toid-hero-widget .fModuleContent > ul.fGalleryImages > li:not(:first-child) { display: none; }
.toid-hero-widget .bx-wrapper, .toid-banner-gallery .bx-wrapper {
  position: relative;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: var(--toid-navy);
}
.toid-hero-widget .bx-viewport, .toid-banner-gallery .bx-viewport {
  left: 0 !important;
  width: 100% !important;
  margin: 0;
  padding: 0;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent;
}
.toid-hero-widget .bx-controls-direction a {
  position: absolute;
  top: 50%;
  z-index: 25;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  margin-top: -23px;
  border: 1px solid rgba(255, 255, 255, .65);
  border-radius: 50%;
  background: rgba(26, 42, 58, .72);
  color: #fff;
  font-size: 0;
  text-indent: 0;
  text-decoration: none !important;
}
.toid-hero-widget .bx-controls-direction a:hover { background: var(--toid-navy); }
.toid-hero-widget .bx-controls-direction a::before {
  content: '';
  width: 10px;
  height: 10px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
}
.toid-hero-widget .bx-prev { left: max(16px, calc((100% - var(--toid-max)) / 2)); }
.toid-hero-widget .bx-next { right: max(16px, calc((100% - var(--toid-max)) / 2)); }
.toid-hero-widget .bx-prev::before { transform: translateX(2px) rotate(-135deg); }
.toid-hero-widget .bx-next::before { transform: translateX(-2px) rotate(45deg); }
.toid-hero-widget .bx-pager {
  position: absolute;
  z-index: 25;
  bottom: 14px;
  left: 50%;
  display: flex;
  gap: 1px;
  width: auto;
  padding: 2px 7px;
  border-radius: 999px;
  background: rgba(26, 42, 58, .5);
  transform: translateX(-50%);
}
.toid-hero-widget .bx-pager-item { display: block; }
.toid-hero-widget .bx-pager-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  background: transparent;
  font-size: 0;
  text-indent: 0;
}
.toid-hero-widget .bx-pager-link::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #fff; }
.toid-hero-widget .bx-pager-link.active::before { width: 20px; border-radius: 10px; background: var(--toid-yellow); }
.toid-hero-widget .bx-controls-auto { position: absolute; right: 16px; bottom: 16px; z-index: 26; }
.toid-hero-widget .bx-controls-auto a { display: inline-block; padding: 6px 12px; color: #fff; background: var(--toid-navy); border-radius: 8px; }
/* Custom hero markup, when used instead of the gallery. */
.toid-hero {
  position: relative; display: flex; align-items: flex-end;
  min-height: clamp(380px, 43vw, 700px); background: var(--toid-navy) center/cover no-repeat; color: #fff;
}
.toid-hero > img, .toid-hero .toid-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.toid-hero .toid-hero-bg img { width: 100%; height: 100%; object-fit: cover; }
.toid-hero-inner { position: relative; z-index: 1; padding-block: 60px; }
.toid-hero h1 { max-width: 18ch; margin: 0 0 16px; color: #fff; font-size: clamp(38px, 5vw, 72px); }
.toid-hero .toid-sub { max-width: 52ch; font-size: clamp(18px, 2vw, 23px); }
.toid-hero-actions, .toid-meta { display: flex; flex-wrap: wrap; gap: 12px; }
.toid-meta { margin-bottom: 24px; }
.toid-chip { padding: 8px 15px; border: 1px solid rgba(255, 255, 255, .4); border-radius: 999px; background: rgba(26, 42, 58, .55); }
.toid-kicker { display: inline-block; margin-bottom: 16px; padding: 7px 13px; background: var(--toid-yellow); color: var(--toid-navy); font-weight: 700; }
@media (max-width: 575.98px) {
  .toid-hero-widget .bx-controls-direction a { width: 34px; height: 34px; margin-top: -17px; }
  .toid-hero-widget .bx-prev { left: 10px; }
  .toid-hero-widget .bx-next { right: 10px; }
  .toid-hero-widget .bx-pager { bottom: 8px; padding: 0 5px; }
  .toid-hero-widget .bx-pager-link { width: 26px; height: 26px; }
}

/* 08. SECTION HEADINGS, GRIDS AND SHARED CARDS ------------------------- */
.toid-section { padding-block: var(--toid-section-space); }
.toid-band-white { background: var(--toid-white); }
.toid-band-cream { background: var(--toid-paper); }
.toid-band-yellow { padding-block: var(--toid-section-space); background: var(--toid-yellow); }
.toid-section-title, .toid-section h2 {
  margin: 0 0 18px;
  font: 600 clamp(32px, 3.5vw, 48px)/1.08 var(--font-serif);
  letter-spacing: -.025em;
  color: var(--toid-navy);
}
.toid-lead, .toid-section .lead { max-width: 65ch; margin: 0 0 24px; font-size: clamp(17px, 1.5vw, 19px); color: var(--toid-muted); }
.toid-muted { color: var(--toid-muted); }
.toid-eyebrow, .toid-card-kicker { display: block; margin-bottom: 14px; color: #74631a; font: 700 12px/1.4 var(--font-sans); letter-spacing: .13em; text-transform: uppercase; }
.toid-ornament { width: 42px; height: 3px; margin-bottom: 20px; border-radius: 2px; background: var(--toid-yellow); }
.toid-band-yellow .toid-ornament { background: var(--toid-navy); }
#fContent .fModuleTitle { margin: 0 0 22px; padding: 0; }
#fContent .fModuleTitle h3 { margin: 0; font: 600 clamp(30px, 3.1vw, 42px)/1.15 var(--font-serif); color: var(--toid-navy); }
body:is(.is-home, .home, .path-home-) #fMatter > .fRegion > .fModule > .fModuleTitle {
  max-width: var(--toid-max); margin: 0 auto; padding: 42px var(--toid-gutter) 0;
}
/* These modules already contain their own semantic h2, so no duplicate title. */
.toid-about-widget > .fModuleTitle, .toid-discover-widget > .fModuleTitle { display: none; }
.toid-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
.toid-grid > * { min-width: 0; }
.toid-card { grid-column: 1 / -1; padding: 28px; border: 1px solid var(--toid-border); border-radius: var(--toid-radius); background: #fff; }
.toid-card h3 { margin: 0 0 12px; font-size: 28px; }
.toid-card p { margin-bottom: 16px; color: var(--toid-muted); }
.toid-card ul { margin: 0; padding-left: 20px; }
.toid-card li { margin-bottom: 7px; }
.toid-grid-4 { grid-template-columns: minmax(0, 1fr); }
.toid-grid.toid-grid-4 > * { grid-column: auto; }
.toid-icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin-bottom: 18px; color: var(--toid-navy); }
.toid-icon svg { display: block; width: 36px; height: 36px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
@media (min-width: 640px) { .toid-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 768px) {
  .toid-grid > .span-3 { grid-column: span 3; }
  .toid-grid > .span-4 { grid-column: span 4; }
  .toid-grid > .span-6 { grid-column: span 6; }
  .toid-grid > .span-8 { grid-column: span 8; }
}
@media (min-width: 1100px) { .toid-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* 09. CONGRESS AT A GLANCE: FIVE ITEMS IN YOUR SOURCE ------------------- */
.toid-icon-strip-widget { background: #fff; border-bottom: 1px solid var(--toid-border); }
.toid-feature-strip { padding-block: 28px 44px; }
.toid-feature-strip .toid-grid { gap: 0; }
.toid-feature-item { padding: 24px; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.toid-feature-item h3 { margin-bottom: 9px; font-size: 25px; }
.toid-feature-item p { margin: 0; font-size: 15px; line-height: 1.55; }
/* Replace the five inconsistent decorative Unicode symbols with line icons.
   The original spans are aria-hidden in the supplied HTML. */
.toid-feature-item .toid-icon { border-radius: 14px; background: var(--toid-yellow-soft); font-size: 0; }
.toid-feature-item .toid-icon::before {
  content: ''; display: block; width: 28px; height: 28px; background: currentColor;
  -webkit-mask: var(--toid-feature-icon) center/contain no-repeat;
  mask: var(--toid-feature-icon) center/contain no-repeat;
}
.toid-feature-item:nth-child(1) { --toid-feature-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M9 8h6M9 12h6M9 16h4'/%3E%3C/svg%3E"); }
.toid-feature-item:nth-child(2) { --toid-feature-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Cpath d='M3 21v-2a6 6 0 0 1 12 0v2M16 5a3 3 0 0 1 0 6M18 15a5 5 0 0 1 3 4v2'/%3E%3C/svg%3E"); }
.toid-feature-item:nth-child(3) { --toid-feature-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.toid-feature-item:nth-child(4) { --toid-feature-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='15' height='12' rx='3'/%3E%3Cpath d='m5 15-1 4 6-4M17 8h2a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3h-1l-1 2-4-2M6 7h7M6 11h4'/%3E%3C/svg%3E"); }
.toid-feature-item:nth-child(5) { --toid-feature-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V8l4-5h10l4 5v13M2 21h20M3 8h18M8 21v-8h8v8M8 3v5M16 3v5'/%3E%3C/svg%3E"); }
@media (min-width: 1100px) {
  .toid-feature-strip .toid-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .toid-feature-item { padding-inline: 22px; }
  .toid-feature-item:first-child { padding-left: 0; }
  .toid-feature-item:last-child { padding-right: 0; }
  .toid-feature-item + .toid-feature-item { border-left: 1px solid var(--toid-border); }
}
@media (min-width: 640px) and (max-width: 1099.98px) {
  .toid-feature-item { border-bottom: 1px solid var(--toid-border); }
  .toid-feature-item:last-child { grid-column: 1 / -1; border-bottom: 0; }
}
@media (max-width: 639.98px) {
  .toid-feature-item { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 0 18px; padding: 22px 0; }
  .toid-feature-item + .toid-feature-item { border-top: 1px solid var(--toid-border); }
  .toid-feature-item .toid-icon { grid-row: 1 / 3; margin: 0; }
  .toid-feature-item h3, .toid-feature-item p { grid-column: 2; }
}

/* 10. ABOUT: TWO COLUMNS, NOT A FOUR-COLUMN CARD GRID ------------------- */
.toid-about .toid-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); align-items: center; gap: clamp(30px, 5vw, 72px); }
.toid-about .toid-grid > .toid-card { grid-column: auto; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.toid-about .toid-grid > .toid-card:first-child { overflow: hidden; border-radius: 24px; }
.toid-about .toid-card > img {
  display: block;
  width: 100% !important;
  height: clamp(300px, 34vw, 440px) !important;
  min-height: 0 !important;
  object-fit: cover;
}
.toid-about .toid-lead { color: var(--toid-ink); }
.toid-about .toid-btn { margin-top: 10px; }
@media (max-width: 767.98px) { .toid-about .toid-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; } }

/* 11. HIGHLIGHTS AND ORIGINAL TAP / KEYBOARD FLIP BEHAVIOUR ------------ */
/* Without JavaScript (and with reduced motion), all details stay visible. */
.toid-highlights .toid-lead { color: #344453; }
.toid-flip-card {
  min-width: 0; margin: 0; padding: 0;
  border: 1px solid rgba(26, 42, 58, .1); border-radius: var(--toid-radius);
  background: #fff; box-shadow: none;
}
.toid-flip-inner { position: relative; display: flex; flex-direction: column; height: 100%; min-height: 0; }
.toid-flip-face { position: static; min-height: 0; padding: 28px 24px 0; border: 0; border-radius: 0; background: transparent; }
.toid-flip-front h3 { margin: 0 0 14px; font-size: 29px; }
.toid-flip-front p, .toid-flip-hint, .toid-flip-back > h3 { display: none; }
.toid-flip-back { display: flex; flex: 1; flex-direction: column; padding: 0 24px 26px; }
.toid-flip-back p { margin: 0 0 24px; font-size: 16px; color: var(--toid-muted); }
.toid-flip-back .toid-btn { align-self: flex-start; margin-top: auto; }
.toid-flip-card:focus-visible { outline: 3px solid var(--toid-navy); outline-offset: 4px; }
/* JS opts in only when both faces exist. Grid sizing avoids text clipping. */
.toid-flip-card.toid-can-flip { perspective: 1200px; border: 0; background: transparent; }
.toid-can-flip .toid-flip-inner {
  display: grid; grid-template-columns: minmax(0, 1fr);
  min-height: 280px; transform-style: preserve-3d;
  transition: transform .5s ease;
}
.toid-can-flip.is-flipped .toid-flip-inner { transform: rotateY(180deg); }
.toid-can-flip .toid-flip-face {
  grid-area: 1 / 1; display: flex; flex-direction: column;
  width: 100%; padding: 28px 24px;
  border: 1px solid var(--toid-border); border-radius: var(--toid-radius);
  background: #fff; backface-visibility: hidden; -webkit-backface-visibility: hidden;
}
.toid-can-flip .toid-flip-front { transform: rotateY(0deg); }
.toid-can-flip .toid-flip-back { transform: rotateY(180deg); }
.toid-can-flip .toid-flip-front p { display: block; color: var(--toid-muted); }
.toid-can-flip .toid-flip-back > h3 { display: block; margin: 0 0 14px; font-size: 27px; }
.toid-can-flip .toid-flip-hint { display: block; margin-top: auto; color: var(--toid-muted); font-size: 13px; }
.toid-action-cards { padding-block: var(--toid-section-space); background: var(--toid-paper); }
.toid-action-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.toid-action-grid > * { min-width: 0; grid-column: auto; }
.toid-action-card { display: flex; flex-direction: column; }
.toid-action-card > .toid-btn { align-self: flex-start; margin-top: auto; }
@media (max-width: 767.98px) { .toid-action-grid { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) {
  .toid-can-flip .toid-flip-inner { display: flex; min-height: 0; transform: none !important; transition: none !important; }
  .toid-can-flip .toid-flip-face { transform: none !important; backface-visibility: visible; }
}

/* 12. PHOTO BAND AND VENUE -------------------------------------------- */
.toid-band-photo {
  position: relative; isolation: isolate;
  display: flex; align-items: center;
  min-height:300px; padding-block:var(--toid-section-space);
  background-color: var(--toid-navy);
  background-size: cover; background-position: center;
  color: #fff;
}
/* Repair the literal invalid image token found in your current HTML only. */
.toid-band-photo.toid-use-venue-background,
.toid-venue-visual.toid-use-venue-background { background-image: var(--toid-venue-photo) !important; }
.toid-band-photo::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(17, 34, 50, .96), rgba(17, 34, 50, .72) 56%, rgba(17, 34, 50, .35)); }
.toid-band-photo .toid-section-title { max-width: 20ch; color: #fff; font-size: clamp(38px, 4.5vw, 60px); }
.toid-band-photo .toid-lead { max-width: 60ch; color: rgba(255, 255, 255, .87); }
.toid-venue-block { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(28px, 5vw, 70px); }
.toid-venue-block > * { min-width: 0; }
.toid-venue-visual { min-height:320px; background-color: var(--toid-paper); background-position: center; background-size: cover; border-radius: 24px; }
.toid-venue .toid-btn { margin-top: 10px; }
@media (max-width: 767.98px) {
  .toid-venue-block { grid-template-columns: minmax(0, 1fr); }
  .toid-venue-visual { min-height: 300px; }
}

/* 13. REGISTRATION BAND ------------------------------------------------ */
.toid-reg-band { padding-block:var(--toid-section-space); background:var(--toid-paper); color:var(--toid-navy); border-top:1px solid #e9e4d9; border-bottom:1px solid #e9e4d9; }
.toid-reg-band .toid-section-title { color:var(--toid-navy); }
.toid-reg-band .toid-lead { max-width:68ch; color:var(--toid-muted); }
.toid-early-bird { display: inline-block; margin-bottom: 20px; padding: 7px 12px; border-radius: 7px; background: var(--toid-yellow); color: var(--toid-navy); font: 700 12px/1.4 var(--font-sans); letter-spacing: .06em; text-transform: uppercase; }
.toid-reg-cats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 32px 0; }
.toid-reg-cat { min-width:0; padding:24px; border:1px solid #e0d9c7; border-bottom:2px solid #dab745; border-radius:10px; background:#fff; box-shadow:0 4px 12px rgba(26,42,58,.035); }
.toid-reg-cat strong { display:block; margin-bottom:14px; color:var(--toid-navy); font: 600 27px/1.15 var(--font-serif); }
.toid-reg-cat span { display:block; color:var(--toid-navy); font-size: 18px; font-weight: 600; }
@media (max-width: 991.98px) { .toid-reg-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 399.98px) { .toid-reg-cats { grid-template-columns: minmax(0, 1fr); } }

/* 14. DISCOVER: EDITORIAL COPY WITH THREE EXISTING IMAGES ---------------- */
.toid-discover { background:var(--toid-paper); border-top:1px solid #e9e4d9; }
.toid-discover .toid-grid { grid-template-columns: 1.25fr repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 20px; }
.toid-discover .toid-card { grid-column: auto; min-width: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.toid-discover .toid-card:first-child { align-self: center; padding-right: 20px; }
.toid-discover .toid-card:has(> img) { overflow: hidden; border-radius: 18px; }
.toid-discover .toid-card > img { display: block; width: 100% !important; height: 300px !important; object-fit: cover; }
.toid-discover .toid-section-title { font-size: clamp(32px, 3vw, 42px); }
@media (max-width: 991.98px) {
  .toid-discover .toid-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .toid-discover .toid-card:first-child { grid-column: 1 / -1; padding: 0 0 10px; }
  .toid-discover .toid-card > img { height: 240px !important; }
}
@media (max-width: 575.98px) {
  .toid-discover .toid-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .toid-discover .toid-card:last-child { grid-column: 1 / -1; }
  .toid-discover .toid-card > img { height: 190px !important; }
}

/* Alternating published bands. CMS can choose tones explicitly when adding
   sections; headings and controls adapt together, not just the background. */
.toid-about { background:#fff; }
.toid-highlights { background:var(--toid-paper); }
.toid-venue { background:#fff; }
[data-toid-tone='white'] { background-color:#fff; color:var(--toid-navy); }
[data-toid-tone='cream'] { background-color:var(--toid-paper); color:var(--toid-navy); }
[data-toid-tone='navy'] { background-color:var(--toid-navy); color:#fff; }
[data-toid-tone='white'] :is(.toid-section-title,.toid-lead),
[data-toid-tone='cream'] :is(.toid-section-title,.toid-lead) { color:var(--toid-navy); }
[data-toid-tone='navy'] .toid-section-title { color:#fff; }
[data-toid-tone='navy'] .toid-lead { color:#d1dce5; }
[data-toid-tone='navy'] .toid-btn-outline { border-color:#d1dce5; color:#fff; }
/* Visual images should be uploaded through CMS image fields. No fabricated
   replacement URLs for missing venue photography are embedded here. */
.toid-venue-visual > img { display:block; width:100%; height:100%; min-height:280px; object-fit:cover; border-radius:inherit; }

/* 15. NATIVE FACULTY / SUPPORTER / STANDARD GALLERIES -------------------- */
.toid-speakers-gallery, .toid-speaker-gallery, .toid-supporters, .toid-sponsor-gallery {
  padding-block: 0 48px;
  background: #fff;
}
body:is(.is-home, .home, .path-home-) :is(.toid-speakers-gallery, .toid-speaker-gallery, .toid-supporters, .toid-sponsor-gallery) > .fModuleContent {
  width: 100%; max-width: var(--toid-max); margin: 0 auto; padding: 28px var(--toid-gutter) 0;
}
/* Current source has these two empty gallery modules. No invented people/logos. */
.toid-speakers-gallery:not(:has(img, .fGalleryItem, .toid-speakers-grid, [data-toid-speakers-source])),
.toid-supporters:not(:has(img, .fGalleryItem)) { display: none; }
:is(.toid-supporters, .toid-sponsor-gallery) .fModuleContent > ul.fGalleryImages,
.toid-sponsors-row {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 28px 48px; margin: 0; padding: 12px 0; list-style: none;
}
:is(.toid-supporters, .toid-sponsor-gallery) .fGalleryItem { display: flex; align-items: center; justify-content: center; list-style: none; }
:is(.toid-supporters, .toid-sponsor-gallery, .toid-sponsors-row) img { display: block; width: auto; height: 62px; max-width: 170px; object-fit: contain; filter: none; }
/* Only uninitialised/static standard galleries get a grid, never slider tracks. */
#fContent .f-module-gallery-list:not(.toid-hero-widget):not(.toid-speakers-gallery):not(.toid-speaker-gallery):not(.toid-supporters):not(.toid-sponsor-gallery) > .fModuleContent > ul.fGalleryImages {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none;
}

/* 16. BUTTONS: COLOURS FOLLOW THEIR PURPOSE ---------------------------- */
.toid-btn, #fContent .btn, #fContent .fButton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  max-width: 100%;
  min-height: 46px;
  padding: 11px 22px;
  border: 1px solid transparent;
  border-radius: 999px;
  font: 600 16px/1.3 var(--font-sans);
  white-space: normal;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.toid-btn-primary, #fContent .btn-primary, #fContent .fButton-primary,
#fContent :is(input[type='submit'],button[type='submit']):not(:where(.btn-secondary,.btn-danger,.btn-success,.btn-link)) {
  min-height: 48px;
  padding: 12px 24px;
  border: 1px solid var(--toid-yellow);
  border-radius: 999px;
  background: var(--toid-yellow);
  color: var(--toid-navy);
  font-weight: 700;
  line-height: 1.3;
  cursor: pointer;
}
.toid-btn-primary:hover, #fContent .btn-primary:hover { background: #f0cd18; border-color: #f0cd18; color: var(--toid-navy); }
.toid-btn-secondary, .toid-btn-outline, .toid-btn-on-yellow,
#fContent .btn-secondary, #fContent .btn-default, #fContent .btn-outline-secondary {
  border-color: var(--toid-navy); background: transparent; color: var(--toid-navy);
}
.toid-btn-secondary:hover, .toid-btn-outline:hover, .toid-btn-on-yellow:hover,
#fContent .btn-secondary:hover, #fContent .btn-default:hover, #fContent .btn-outline-secondary:hover {
  background: var(--toid-navy); border-color: var(--toid-navy); color: #fff;
}
.toid-btn-ghost { color: #fff; background: transparent; border-color: rgba(255, 255, 255, .7); }
.toid-btn-ghost:hover { color: var(--toid-navy); background: #fff; border-color: #fff; }
#fContent .btn-danger { background: #a72f35; border-color: #a72f35; color: #fff; }
#fContent .btn-success { background: #226345; border-color: #226345; color: #fff; }
#fContent .btn-link { color: var(--toid-navy); background: transparent; }
#fContent .btn-sm { min-height: 36px; padding: 7px 14px; font-size: 14px; }
:is(.toid-btn, .btn, .fButton, button, input[type='submit']):disabled,
:is(.toid-btn, .btn, .fButton)[aria-disabled='true'] { opacity: .5; cursor: not-allowed; }

/* 17. FORMS: CSS-FIRST, WITH EXPLICIT PAGE-LEVEL LAYOUT HOOKS ---------- */
/* One card. No fields are created, reordered, hidden by their label, or
   submitted by this stylesheet. All original CMS control names remain. */
#fContent form.fForm,
#fContent form:is(#user-register, #user-login, #user-update-details),
#fContent .toid-form-card {
  width:100% !important; max-width:var(--toid-form-max,1180px); min-width:0;
  height:auto; float:none !important; overflow:visible;
  margin:0 auto 24px !important; padding:clamp(22px,2.7vw,36px) !important;
  border:1px solid #e2e6e9 !important; border-radius:14px !important;
  background:#fff !important; box-shadow:0 5px 20px rgba(26,42,58,.035) !important;
}
#fContent .toid-form-card form,
#fContent form.toid-embedded-form {
  width:100% !important; max-width:none !important; margin:0 !important;
  padding:0 !important; border:0 !important; border-radius:0 !important;
  background:transparent !important; box-shadow:none !important;
}
#fContent .toid-form-card > :is(.fModuleContent,.f-module-content) {
  margin:0 !important; padding:0 !important; border:0 !important;
  background:transparent !important; box-shadow:none !important;
}
#fContent :is(.toid-form-intro,.toid-profile-intro) { margin:0 0 28px; padding:0; }
#fContent :is(.toid-form-intro,.toid-profile-intro) h2,
#fContent .toid-form-card > .fModuleTitle h3 {
  margin:0 0 8px; font:700 clamp(28px,2.8vw,38px)/1.15 var(--font-serif); color:var(--toid-navy);
}
#fContent :is(.toid-form-intro,.toid-profile-intro) p { margin:0; max-width:72ch; color:var(--toid-muted); font:400 16px/1.55 var(--font-sans); }
#fContent .toid-form-card > .fModuleTitle { margin:0 0 26px !important; padding:0 !important; }
#fContent form.fForm :is(.form-item,.form-group) {
  position:relative; min-width:0; max-width:100%; height:auto; margin:0 0 22px;
  padding:0; float:none !important; clear:none !important; overflow:visible;
}
#fContent form.fForm :is(.form-item,.form-group) > label,
#fContent form.fForm :is(.control-label,.col-form-label,.form-label),
#fContent .toid-field-label {
  display:block; position:static !important; float:none !important; clear:none !important;
  width:auto !important; max-width:100% !important; height:auto !important;
  margin:0 0 8px !important; padding:0 !important; inset:auto !important;
  color:var(--toid-navy); font:500 15px/1.45 var(--font-sans) !important;
  text-align:left !important; white-space:normal; overflow-wrap:break-word;
}
#fContent label :is(.required,.text-danger,.toid-required-star) { color:#b72738; font-weight:700; }
#fContent :is(input:not([type]),input[type='text'],input[type='email'],input[type='password'],input[type='tel'],input[type='number'],input[type='url'],input[type='search'],input[type='date'],input[type='datetime-local'],input[type='time'],input[type='file'],select,textarea,.form-control):not(:where([type='hidden'],[type='checkbox'],[type='radio'],[type='submit'],[type='button'],[type='reset'],.select2-hidden-accessible)) {
  display:block; width:100% !important; max-width:100% !important; min-width:0;
  float:none !important; min-height:46px; margin:0 !important; padding:11px 14px;
  border:1px solid #ccd6df !important; border-radius:var(--toid-input-radius) !important;
  background-color:#fff !important; color:var(--toid-navy);
  font:400 16px/1.4 var(--font-sans) !important; box-shadow:none;
  transition:border-color .18s ease,box-shadow .18s ease;
}
#fContent :is(input,select,textarea)::placeholder { color:#79899c; opacity:1; }
#fContent :is(input,select,textarea):not([type='hidden']):focus-visible {
  border-color:#a88917 !important; outline:2px solid transparent; outline-offset:2px;
  box-shadow:0 0 0 3px rgba(230,194,0,.2) !important;
}
#fContent select:not([multiple]):not([size]),#fContent select[size='1'] {
  height:46px; padding-right:40px; appearance:none; -webkit-appearance:none;
  background-image:var(--toid-select-chevron); background-position:right 14px center;
  background-size:14px; background-repeat:no-repeat;
}
#fContent select[multiple],#fContent select[size]:not([size='1']) { min-height:140px; height:auto; background-image:none; }
#fContent :is(textarea,textarea.form-control) { min-height:142px; height:auto; padding:13px 14px; resize:vertical; border-radius:10px !important; }
#fContent input[type='file'] { padding:7px; }
#fContent input[type='file']::file-selector-button { margin-right:12px; padding:7px 12px; border:0; border-radius:6px; background:#eef2f5; color:var(--toid-navy); cursor:pointer; }
#fContent :is(input,select,textarea):disabled { background-color:#edf1f4 !important; color:#697585; cursor:not-allowed; }
#fContent :is(input,textarea)[readonly] { background-color:#f5f7f8 !important; }
#fContent .has-error :is(input,select,textarea),
#fContent :is(input,select,textarea).is-invalid,
#fContent :is(input,select,textarea)[aria-invalid='true'] { border-color:#b33240 !important; }
#fContent :is(input,select,textarea).is-invalid:focus-visible,
#fContent :is(input,select,textarea)[aria-invalid='true']:focus-visible,
#fContent .has-error :is(input,select,textarea):focus-visible { border-color:#b33240 !important; box-shadow:0 0 0 3px rgba(179,50,64,.15) !important; }
#fContent :is(.invalid-feedback,.validation-error,.form-error) { color:#b33240; font:400 13px/1.5 var(--font-sans); }
#fContent fieldset { min-width:0; max-width:100%; }
#fContent fieldset + fieldset { margin-top:28px; }
#fContent legend { float:none; width:100%; margin:0 0 20px; padding:0 0 12px; border-bottom:1px solid var(--toid-border); color:var(--toid-navy); font:600 27px/1.2 var(--font-serif); }

/* Native hint offsets were still reserving the old 25% label column.
   Reset ALL hint placement, including .hint used by the CMS. */
#fContent form.fForm :is(.hint,.help-block,.form-text,.form-hint,.description,.field-description,.form-description,.help),
#fContent .toid-control :is(.hint,.help-block,.form-text,.form-hint,.description) {
  display:block; position:static !important; inset:auto !important; transform:none !important;
  float:none !important; clear:none !important; width:auto !important; max-width:100% !important;
  margin:6px 0 0 !important; padding:0 !important; text-indent:0 !important;
  text-align:left !important; color:var(--toid-muted); font:400 13px/1.5 var(--font-sans);
}
#fContent .toid-control { position:relative; min-width:0; max-width:100%; width:100%; margin:0 !important; padding:0 !important; float:none !important; }
#fContent .toid-field-help { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:4px 16px; margin:6px 0 0; padding:0; }
#fContent .toid-field-help :is(.hint,.form-text,.form-hint) { flex:1 1 230px; margin:0 !important; }
#fContent form.fForm .toid-word-count { position:static !important; display:block; float:none !important; clear:none; width:auto !important; margin:6px 0 0 !important; padding:0 !important; color:var(--toid-muted); font:500 12px/1.5 var(--font-sans); text-align:right; }
#fContent .toid-field-help .toid-word-count { flex:0 0 auto; margin:0 0 0 auto !important; }
#fContent form.fForm .toid-word-count.is-over-limit { color:#b33240; }

/* Icons are optional decoration on the SAME input, never new fake fields. */
#fContent :is(input,select)[data-toid-icon]:not([type='hidden']):not([type='checkbox']):not([type='radio']) {
  padding-left:44px; background-image:var(--toid-field-icon);
  background-position:left 14px center; background-size:19px; background-repeat:no-repeat;
}
#fContent select[data-toid-icon]:not([multiple]):not([size]),#fContent select[data-toid-icon][size='1'] {
  background-image:var(--toid-field-icon),var(--toid-select-chevron);
  background-position:left 14px center,right 14px center; background-size:19px,14px;
}
#fContent .input-group { display:flex; flex-wrap:nowrap; min-width:0; max-width:100%; }
#fContent .input-group > :is(.form-control,input) { width:1% !important; flex:1 1 auto; }
#fContent .input-group > select { width:auto !important; flex:0 0 88px; }
#fContent :is(.input-group-text,.input-group-addon) { display:flex; align-items:center; padding:10px 13px; border:1px solid #ccd6df; border-radius:9px; background:#f5f6f8; color:var(--toid-muted); }
#fContent .input-group > :first-child:not(:last-child) { border-top-right-radius:0 !important; border-bottom-right-radius:0 !important; }
#fContent .input-group > :last-child:not(:first-child) { border-top-left-radius:0 !important; border-bottom-left-radius:0 !important; }
#fContent :is(.intl-tel-input,.iti) { width:100%; max-width:100%; min-width:0; }
#fContent :is(.intl-tel-input,.iti) input { padding-left:54px; background-image:none; }
#fContent :is(.intl-tel-input.separate-dial-code,.iti--separate-dial-code) input { padding-left:105px; }
#fContent :is(.intl-tel-input .country-list,.iti__country-list) { max-width:min(340px,85vw); border-radius:9px; box-shadow:var(--toid-shadow); }
#fContent .select2-container { width:100%; max-width:100%; min-width:0; }
#fContent .select2-container .select2-selection--single { min-height:46px; border:1px solid #ccd6df; border-radius:9px; }
#fContent .select2-selection--single .select2-selection__rendered { padding:8px 14px; line-height:28px; color:var(--toid-navy); }
#fContent .select2-selection--single .select2-selection__arrow { top:10px; right:8px; }
#fContent .select2-selection--multiple { min-height:46px; border:1px solid #ccd6df; border-radius:9px; padding:5px 8px; }

/* Legacy direct-child profile form: the existing module already has
   .toid-form-grid. Works before ANY JavaScript classes are added. */
#fContent .toid-form-grid form.fForm:not(:has(> .row)):not(:has(> .toid-form-columns)),
#fContent form.toid-field-grid:not(:has(> .row)),
#fContent form[data-toid-field-layout]:not(:has(> .row)):not(:has(> .toid-form-columns)),
#fContent .toid-fields-grid,#fContent .toid-form-2col > .toid-form-fields {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start;
  gap:20px clamp(24px,3vw,40px);
}
#fContent :is(.toid-form-grid form.fForm,form.toid-field-grid,form[data-toid-field-layout],.toid-fields-grid,.toid-form-fields) > :is(.form-item,.form-group) {
  width:auto !important; min-width:0; margin:0 !important;
}
#fContent :is(.toid-form-grid form.fForm,form.toid-field-grid,form[data-toid-field-layout],.toid-fields-grid,.toid-form-fields) > :is(.form-item-type-buttons,.form-actions,.submit-row,.toid-full-width,.toid-field-full,.toid-choice-field,fieldset,.row,.alert),
#fContent :is(.toid-form-grid form.fForm,.toid-fields-grid) > .form-item:has(textarea) { grid-column:1 / -1; }
/* v4-generated placements remain compatible until CMS ownership is enabled. */
#fContent .toid-field-layout:not([data-toid-owner='cms']) > [data-toid-column='left'] { grid-column:1; grid-row:var(--toid-field-row,auto); }
#fContent .toid-field-layout:not([data-toid-owner='cms']) > [data-toid-column='right'] { grid-column:2; grid-row:var(--toid-field-row,auto); }
#fContent .toid-field-layout:not([data-toid-owner='cms']) > [data-toid-column='full'] { grid-column:1 / -1; grid-row:var(--toid-field-row,auto); }

/* Preferred CMS structure follows the reference's left column, then right
   column. The DOM/tab order remains the displayed reading order. */
#fContent form.fForm.toid-form-profile:has(> .toid-form-columns) { display:block !important; }
#fContent .toid-form-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:28px 40px; }
#fContent .toid-form-column { min-width:0; }
#fContent .toid-form-column > .form-item:last-child { margin-bottom:0; }
@media (min-width:1100px) {
  #fContent .toid-form-grid form.fForm > .form-item:not(.form-item-type-buttons):not(.toid-full-width):not(.toid-choice-field):not(:has(textarea)),
  #fContent .toid-form-column > .form-item:not(.form-item-type-buttons),
  #fContent .toid-field-layout > .toid-field-row,
  #fContent .toid-field-horizontal {
    display:grid; grid-template-columns:minmax(120px,29%) minmax(0,1fr);
    align-items:center; gap:6px 16px;
  }
  #fContent :is(.toid-form-grid form.fForm > .form-item,.toid-form-column > .form-item,.toid-field-row,.toid-field-horizontal) > label {
    grid-column:1; grid-row:1; margin:0 !important;
  }
  #fContent :is(.toid-form-grid form.fForm > .form-item,.toid-form-column > .form-item,.toid-field-row,.toid-field-horizontal) > :not(label):not([type='hidden']):not(.select2-hidden-accessible) { grid-column:2; min-width:0; }
  #fContent :is(.toid-form-grid form.fForm > .form-item,.toid-field-row,.toid-field-horizontal) > :is(.hint,.help-block,.form-text,.form-hint,.description,.toid-word-count,.validation-error,.invalid-feedback) { grid-column:2; }
  #fContent .toid-form-grid form.fForm > .form-item:has(textarea) > * { grid-column:1 / -1; }
}
/* Action containers MUST NOT inherit the former 25% label offset. */
#fContent form.fForm :is(.form-actions,.submit-row,.toid-form-actions,.form-item-type-buttons,.buttons) {
  position:static !important; inset:auto !important; transform:none !important;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end;
  gap:12px; float:none !important; clear:both !important; width:100% !important;
  grid-column:1 / -1; margin:26px 0 0 !important; padding:0 !important;
  border:0 !important; background:transparent !important; box-shadow:none !important;
}
#fContent form.fForm :is(.form-actions,.form-item-type-buttons,.buttons) > :is(.controls,.form-input,.form-item-controls,div) {
  display:flex; flex:1 1 auto; flex-wrap:wrap; justify-content:flex-end; gap:12px;
  width:auto !important; max-width:100%; margin:0 !important; padding:0 !important; float:none !important;
}
#fContent form.fForm :is(input[type='submit'],button[type='submit'],input[type='reset'],.form-actions .btn,.form-item-type-buttons .btn) {
  position:static !important; float:none !important; margin:0 !important;
  width:auto; min-width:140px; max-width:100%; min-height:48px; padding:12px 24px;
  border:1px solid var(--toid-yellow); border-radius:10px; background:var(--toid-yellow); color:var(--toid-navy);
  font:700 16px/1.4 var(--font-sans); white-space:normal; cursor:pointer;
}
#fContent form.fForm :is(input[type='submit'],button[type='submit']):hover { background-color:#f8d43b; }
#fContent form.fForm :is(input[type='reset'],.btn-secondary,.btn-default,.btn-outline-secondary) { border-color:#bac6cf; background:#fff; color:var(--toid-navy); }
#fContent form.fForm .btn-danger { border-color:#a72f35; background:#a72f35; color:#fff; }
#fContent form.fForm .btn-success { border-color:#226345; background:#226345; color:#fff; }
#fContent form.fForm .btn-link { min-width:0; border-color:transparent; background:transparent; color:var(--toid-navy); }
#fContent form.fForm input[type='submit'].toid-continue-arrow { padding-right:54px; background-image:var(--toid-arrow-right); background-size:20px; background-repeat:no-repeat; background-position:right 20px center; }
#fContent .toid-form-actions .toid-back-link { margin-right:auto !important; }

/* Login is a compact, self-contained card, not a full-page-wide form. */
#fContent .toid-login-card,#fContent .f-module-user-login,
#fContent form.fForm.toid-form-login,#fContent form#user-login,
body.toid-page-login #fContent .toid-form-card { max-width:560px !important; margin-inline:auto !important; }
#fContent .toid-login-card form.fForm { max-width:none !important; display:block !important; }
#fContent .toid-form-login .form-item { display:block; }
#fContent :is(.toid-login-card,.toid-form-login) .toid-auth-links { margin:4px 0 22px !important; padding:0 !important; text-align:right; font-size:14px; }
#fContent :is(.toid-login-card,.toid-form-login) .form-item-type-buttons input[type='submit'],
#fContent :is(.toid-login-card,.toid-form-login) .form-item-type-buttons button[type='submit'] { width:100%; }
/* Abstracts use a readable single-column body. Only explicitly grouped short
   fields use two columns; counters stay inside their own .toid-control. */
#fContent form.fForm.toid-form-abstract { display:block !important; }
#fContent form.toid-form-abstract > .form-item { display:block; margin-bottom:24px; }
#fContent form.toid-form-abstract > .form-item > label { margin-bottom:8px !important; }
#fContent form.toid-form-abstract textarea { min-height:190px; }
#fContent form.toid-form-abstract .toid-fields-grid { margin-bottom:24px; }
#fContent form.toid-form-abstract .form-item-type-buttons { display:flex; }

/* Native radio and checkbox controls. Hidden/conditional fields are NEVER
   forced visible; custom switches may opt out with .toid-native-widget. */
#fContent input:is([type='radio'],[type='checkbox']):not(.toid-native-widget) {
  position:static; inset:auto; transform:none; display:inline-block;
  float:none !important; flex:0 0 20px; width:20px !important; height:20px !important;
  min-width:20px !important; min-height:20px !important; max-width:20px; max-height:20px;
  margin:0 !important; padding:0 !important; vertical-align:middle;
  appearance:auto; -webkit-appearance:auto; accent-color:var(--toid-navy);
  box-shadow:none; background-image:none; cursor:pointer;
}
#fContent input:is([type='radio'],[type='checkbox']):focus-visible { outline:2px solid #a88917; outline-offset:4px; }
#fContent input:is([type='radio'],[type='checkbox']):disabled { opacity:.55; cursor:not-allowed; }
#fContent .toid-options { display:grid; gap:10px; justify-items:start; margin:0; padding:0; }
/* Bare native label fallback allows inline links to remain within prose. */
#fContent form.fForm label:has(> input:is([type='radio'],[type='checkbox'])):not(.toid-choice-option):not(.toid-choice-label) {
  position:relative !important; display:block; width:auto !important; min-height:28px;
  margin:0 0 8px !important; padding:2px 0 2px 32px !important; line-height:1.5;
}
#fContent form.fForm label:not(.toid-choice-label):not(.toid-choice-option) > input:is([type='radio'],[type='checkbox']) { position:absolute; left:0; top:4px; }
#fContent .toid-choice-label,#fContent form.fForm label.toid-choice-label {
  display:flex; align-items:flex-start; gap:12px; min-width:0; min-height:28px;
  width:auto !important; float:none !important; margin:0 !important; padding:0 !important;
  font:400 16px/1.5 var(--font-sans) !important; white-space:normal; cursor:pointer;
}
#fContent .toid-choice-label > input { margin-top:2px !important; }
#fContent .toid-choice-copy { display:block; flex:1 1 auto; min-width:0; overflow-wrap:break-word; }
#fContent .toid-choice-copy :is(a,span) { display:inline; }
#fContent .form-check { display:flex; align-items:flex-start; gap:12px; min-height:28px; padding:0; margin:0 0 10px; }
#fContent .form-check > input { margin-top:2px !important; }
#fContent .form-check > label { margin:0 !important; padding:0 !important; width:auto !important; font-weight:400; }
#fContent .toid-choice-list { display:grid; gap:12px; margin:0 0 24px; padding:0; border:0; min-width:0; }
#fContent .toid-choice-option,#fContent form.fForm label.toid-choice-option {
  display:grid; grid-template-columns:20px minmax(0,1fr) max-content; align-items:center;
  gap:8px 14px; min-width:0; width:100% !important; min-height:64px;
  margin:0 !important; padding:16px 18px !important; border:1px solid #dbe2e7; border-radius:10px;
  background:#fff; color:var(--toid-navy); font:400 16px/1.5 var(--font-sans); cursor:pointer;
}
#fContent .toid-choice-option > input { position:static; grid-column:1; grid-row:1; margin:0 !important; }
#fContent .toid-choice-option > :is(.toid-choice-copy,label) { grid-column:2; grid-row:1; margin:0 !important; padding:0 !important; width:auto !important; }
#fContent .toid-choice-option > label:has(input) { grid-column:1 / 3; }
#fContent .toid-choice-option .toid-choice-price { grid-column:3; grid-row:1; padding:0; margin:0 0 0 auto; float:none !important; font-weight:600; white-space:nowrap; text-align:right; font-variant-numeric:tabular-nums; }
#fContent .toid-choice-option:has(input:checked) { border-color:#bfa127; background:#fffbee; }
#fContent .toid-choice-option:has(input:focus-visible) { outline:2px solid #a88917; outline-offset:2px; }
#fContent .toid-choice-option:has(input:disabled) { color:#6a7885; background:#f5f7f8; }
#fContent .toid-choice-table-row > td { vertical-align:middle; padding-block:14px; }
#fContent .toid-choice-table-row > td:is(.amount,.price,.toid-choice-price) { width:1%; white-space:nowrap; text-align:right; }
#fContent .toid-choice-table-row > td:has(input):not(:has(label)) { width:40px; }
@media (max-width:1099.98px) {
  #fContent :is(.toid-field-row,.toid-field-horizontal) > label { margin-bottom:8px !important; }
}
@media (max-width:767.98px) {
  #fContent form.fForm,#fContent .toid-form-card { padding:22px 18px !important; }
  #fContent .toid-form-card form,#fContent form.toid-embedded-form { padding:0 !important; }
  #fContent .toid-form-grid form.fForm:not(:has(> .row)),#fContent form.toid-field-grid,
  #fContent form[data-toid-field-layout],#fContent .toid-form-columns,#fContent .toid-fields-grid,
  #fContent .toid-form-2col > .toid-form-fields { grid-template-columns:minmax(0,1fr); gap:20px; }
  #fContent .toid-field-layout > [data-toid-column] { grid-column:1 !important; grid-row:auto !important; }
  #fContent .toid-form-column > .form-item:last-child { margin-bottom:0; }
  #fContent form.toid-form-abstract textarea { min-height:175px; }
}
@media (max-width:479.98px) {
  #fContent form.fForm .form-item-type-buttons :is(input[type='submit'],button[type='submit'],.btn),
  #fContent .toid-form-actions > :is(button,.btn) { width:100% !important; min-width:0; }
  #fContent .toid-choice-option,#fContent form.fForm label.toid-choice-option { grid-template-columns:20px minmax(0,1fr); padding:14px !important; align-items:start; }
  #fContent .toid-choice-option .toid-choice-price { grid-column:2; grid-row:2; justify-self:start; margin:0; text-align:left; font-size:15px; }
  #fContent .toid-choice-option > input { margin-top:2px !important; }
}
/* Keep native visibility rules even when a field carries a layout hook. */
#fContent form :is([hidden],.d-none,.hidden,.form-item-type-hidden,input[type='hidden']),
#fContent .toid-choice-option[hidden],#fContent .toid-choice-label[hidden] { display:none !important; }


/* 18. TABLES, ALERTS, TABS, DASHBOARDS AND CONTENT ----------------------- */
.toid-prose { max-width: 800px; margin-inline: auto; }
.toid-prose h2 { margin: 34px 0 16px; font-size: 36px; }
.toid-prose h3 { margin: 28px 0 14px; font-size: 29px; }
.toid-prose :is(ul, ol) { padding-left: 24px; }
.toid-prose li { margin-bottom: 8px; }
.toid-note { margin-block: 22px; padding: 18px 22px; border-left: 4px solid var(--toid-yellow); border-radius: 0 12px 12px 0; background: var(--toid-yellow-soft); }
#fContent :is(.table-responsive, .toid-table-wrap) { width: 100%; max-width: 100%; overflow-x: auto; border: 1px solid var(--toid-border); border-radius: 16px; background: #fff; -webkit-overflow-scrolling: touch; }
#fContent :is(table.table, table.toid-table) { width: 100%; margin: 0; border-collapse: collapse; color: var(--toid-ink); }
#fContent :is(.table, .toid-table) :is(th, td) { padding: 15px 18px; border-bottom: 1px solid var(--toid-border); vertical-align: top; line-height: 1.5; }
#fContent :is(.table, .toid-table) thead th { background: var(--toid-navy); color: #fff; font-weight: 600; white-space: nowrap; }
#fContent :is(.table, .toid-table) tbody tr:last-child td { border-bottom: 0; }
#fContent :is(.table, .toid-table) tbody tr:nth-child(even) { background: #f8f9f8; }
#fContent .toid-table-wrap > .toid-table { min-width: 600px; }
#fContent .alert { margin-bottom: 24px; padding: 18px 22px; border: 1px solid #d7e1e7; border-left-width: 4px; border-radius: 12px; line-height: 1.55; }
#fContent .alert-info { background: #edf4f8; border-color: #c6dbe7; color: #214b63; }
#fContent .alert-success { background: #eff7f1; border-color: #bfddc8; color: #245d38; }
#fContent .alert-warning { background: #fff8df; border-color: #ebd78c; color: #735c13; }
#fContent .alert-danger { background: #fbf0ef; border-color: #e7c5c2; color: #923b35; }
#fContent .nav-tabs { gap: 6px; border-bottom: 1px solid var(--toid-border); }
#fContent .nav-tabs .nav-link { padding: 12px 20px; border-radius: 12px 12px 0 0; color: var(--toid-muted); font-weight: 600; }
#fContent .nav-tabs .nav-link.active { border-color: var(--toid-border) var(--toid-border) #fff; background: #fff; color: var(--toid-navy); }
#fContent .nav-pills .nav-link { border-radius: 10px; color: var(--toid-navy); }
#fContent .nav-pills .nav-link.active { background: var(--toid-navy); color: #fff; }
#fContent .pagination { flex-wrap: wrap; gap: 6px; }
#fContent .page-link { display: flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; border: 1px solid var(--toid-border); border-radius: 10px; color: var(--toid-navy); }
#fContent .page-item.active .page-link { border-color: var(--toid-navy); background: var(--toid-navy); color: #fff; }
#fContent .page-item.disabled .page-link { background: #f2f4f5; color: #76838e; }
#fContent .accordion-item { border: 1px solid var(--toid-border); }
#fContent .accordion-button { padding: 20px; color: var(--toid-navy); font: 600 17px/1.4 var(--font-sans); }
#fContent .accordion-button:not(.collapsed) { background: var(--toid-yellow-soft); color: var(--toid-navy); }
#fContent .accordion-button:focus { box-shadow: var(--toid-focus); }
/* Native in-page menus remain ordinary menus, not registration runners. */
#fMatter .f-module-pages-menu:not(.toid-reg-runner) .fMenu { list-style: none; margin: 0 0 24px; padding: 0; }
#fMatter .f-module-pages-menu:not(.toid-reg-runner) .fMenu > li > a { display: block; padding: 11px 16px; border-radius: 10px; }
#fMatter .f-module-pages-menu:not(.toid-reg-runner) .fMenu > li.selected > a { background: var(--toid-yellow-soft); font-weight: 600; }
/* Restrained modal styling; does not change Bootstrap open/close behavior. */
.modal-content { border: 1px solid var(--toid-border); border-radius: 20px; box-shadow: 0 24px 70px rgba(26, 42, 58, .2); }
.modal-header, .modal-footer { padding: 20px 24px; border-color: var(--toid-border); }
.modal-body { padding: 24px; }
.modal-title { font: 600 28px/1.2 var(--font-serif); }

/* DASHBOARD: explicit CMS menu classes; no fabricated status/count cards. */
#fContent .toid-dashboard-intro { margin:0 0 26px; }
#fContent .toid-dashboard-intro h2 { margin:0 0 8px; font:600 34px/1.2 var(--font-serif); }
#fContent .toid-dashboard-intro p { max-width:78ch; margin:0; color:var(--toid-muted); }
#fContent :is(.toid-dashboard-menu,.fDashboardMenu,.dashboard-menu) .fMenu,
#fContent ul.fDashboardMenu,#fContent .toid-dashboard-grid,
body.toid-page-dashboard #fMatter .f-module-pages-menu:not(.toid-steps-module) ul.fMenu {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px;
  margin:0; padding:0; width:100%; list-style:none;
}
#fContent :is(.toid-dashboard-menu,.fDashboardMenu,.dashboard-menu) li,
#fContent .toid-dashboard-grid > li { min-width:0; margin:0; padding:0; float:none; list-style:none; }
#fContent .toid-dashboard-menu li::before { content:none; }
#fContent :is(.toid-dashboard-menu,.fDashboardMenu,.dashboard-menu) li > a,
#fContent .toid-dashboard-card,
body.toid-page-dashboard #fMatter .f-module-pages-menu:not(.toid-steps-module) .fMenu > li > a {
  position:relative; display:flex; align-items:center; gap:14px; min-height:100px; height:100%;
  padding:22px 48px 22px 22px; border:1px solid #dce3e8; border-radius:12px;
  background:#fff; color:var(--toid-navy); font:600 17px/1.4 var(--font-sans);
  text-decoration:none; box-shadow:0 4px 14px rgba(26,42,58,.025);
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
#fContent :is(.toid-dashboard-menu,.fDashboardMenu,.dashboard-menu) li > a::after,
#fContent .toid-dashboard-card::after {
  content:''; position:absolute; right:22px; top:calc(50% - 4px); width:8px; height:8px;
  border-top:1.6px solid #6c7d8c; border-right:1.6px solid #6c7d8c; transform:rotate(45deg);
}
#fContent :is(.toid-dashboard-menu,.fDashboardMenu,.dashboard-menu) a:hover,
#fContent .toid-dashboard-card:hover { border-color:#c8ae49; background:#fffdf4; box-shadow:0 6px 18px rgba(26,42,58,.05); }
#fContent .toid-dashboard-menu .menu-item-icon:empty { display:none; }
#fContent .toid-dashboard-menu .menu-item-icon:not(:empty) { flex:0 0 36px; color:#9d7b1e; font-size:25px; }
#fContent .toid-dashboard-menu .menu-item-icon svg { width:30px; height:30px; }
#fContent .toid-dashboard-card-body { min-width:0; }
#fContent .toid-dashboard-card-body small { display:block; margin-top:6px; color:var(--toid-muted); font:400 13px/1.5 var(--font-sans); }
#fContent .toid-dashboard-panel { margin-top:24px; padding:26px; border:1px solid #dce3e8; border-radius:12px; background:#fff; }
@media (max-width:991.98px) {
  #fContent :is(.toid-dashboard-menu,.fDashboardMenu,.dashboard-menu) .fMenu,#fContent ul.fDashboardMenu,#fContent .toid-dashboard-grid,
  body.toid-page-dashboard #fMatter .f-module-pages-menu:not(.toid-steps-module) ul.fMenu { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:575.98px) {
  #fContent :is(.toid-dashboard-menu,.fDashboardMenu,.dashboard-menu) .fMenu,#fContent ul.fDashboardMenu,#fContent .toid-dashboard-grid,
  body.toid-page-dashboard #fMatter .f-module-pages-menu:not(.toid-steps-module) ul.fMenu { grid-template-columns:minmax(0,1fr); gap:12px; }
  #fContent .toid-dashboard-menu .fMenu > li > a { min-height:80px; padding-block:18px; }
}

/* Breadcrumbs are separate from registration progress, never numbered circles. */
#fContent :is(.breadcrumb,.toid-breadcrumbs) { display:flex; flex-wrap:wrap; align-items:center; gap:6px 0; margin:0 0 20px; padding:0; border:0; list-style:none; font:400 13px/1.5 var(--font-sans); background:transparent; }
#fContent :is(.breadcrumb,.toid-breadcrumbs) li { display:inline-flex; align-items:center; margin:0; padding:0; }
#fContent :is(.breadcrumb,.toid-breadcrumbs) li + li::before { content:''; display:inline-block; width:6px; height:6px; margin:0 12px; border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg); opacity:.65; }
#fContent .fPageTitle .breadcrumb { margin:10px 0 0; color:#dce5ed; }
#fContent .fPageTitle .breadcrumb a { color:#dce5ed; }

/* 19. NATIVE REGISTRATION TIMELINE ------------------------------------- */
#fContent #fMatterPre:has(nav[data-toid-registration-steps]),
#fContent #fMatterPre:has(nav[aria-label='Registration Timeline']),
#fContent #fMatterPre:has(.toid-registration-timeline) { margin: 0 0 30px; }
.toid-steps-module,
.toid-steps-module > .fModuleContent { margin: 0 !important; padding: 0 !important; border: 0; background: transparent; box-shadow: none; }
.toid-steps-module > .fModuleTitle { display: none; }
:is(nav[data-toid-registration-steps], nav[aria-label='Registration Timeline'], .toid-reg-runner nav, nav.toid-registration-timeline) {
  display: block; width: 100%; max-width: 700px;
  margin: 0 auto !important; padding: 0 !important;
  border: 0 !important; background: transparent !important;
}
:is(nav[data-toid-registration-steps], nav[aria-label='Registration Timeline'], .toid-reg-runner nav, nav.toid-registration-timeline) > ul.fMenu,
ul.toid-reg-runner, ol.toid-reg-runner, ul.registration-steps, ol.registration-steps {
  display: flex !important;
  align-items: flex-start; justify-content: center; flex-wrap: nowrap; gap: 0;
  width: 100%; max-width: 700px; margin: 0 auto !important; padding: 0 !important;
  list-style: none !important; counter-reset: toid-step;
  border: 0 !important; background: transparent !important;
}
:is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) .fMenu > li,
:is(ul.toid-reg-runner, ol.toid-reg-runner, ul.registration-steps, ol.registration-steps) > li {
  position: relative; display: block; flex: 1 1 0; float: none !important;
  width: auto !important; min-width: 0;
  margin: 0 !important; padding: 0 6px !important;
  border: 0 !important; background: transparent !important; list-style: none !important;
  text-align: center; counter-increment: toid-step;
}
:is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) .fMenu > li::before { content: none !important; }
:is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) .fMenu > li > a,
:is(.toid-reg-runner, .registration-steps) > li > a {
  position: relative; display: flex !important; flex-direction: column;
  align-items: center; justify-content: flex-start; gap: 10px;
  margin: 0 !important; padding: 0 !important; min-width: 0;
  border: 0 !important; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important;
  color: var(--toid-muted); font: 600 15px/1.4 var(--font-sans);
  white-space: normal !important; text-decoration: none !important;
}
:is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) .menu-item-text { font: inherit; }
:is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) .menu-item-icon { display: none !important; }
:is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) .fMenu > li > a::before,
:is(.toid-reg-runner, .registration-steps) > li > a::before {
  content: counter(toid-step);
  position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: center;
  width: 42px; height: 42px;
  border: 1px solid #c5cfd7; border-radius: 50%;
  background: var(--toid-bg); color: var(--toid-muted);
  font: 700 16px/1 var(--font-sans);
}
:is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) .fMenu > li:not(:last-child)::after,
:is(.toid-reg-runner, .registration-steps) > li:not(:last-child)::after {
  content: ''; position: absolute; z-index: 0;
  top: 21px; left: calc(50% + 27px); right: calc(-50% + 27px);
  height: 1px; background: #c5cfd7; pointer-events: none;
}
:is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) .fMenu > li:is(.selected, .active, .current) > a,
:is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) a[aria-current='step'],
:is(.toid-reg-runner, .registration-steps) > li:is(.selected, .active, .current) > a { color: var(--toid-navy); font-weight: 700; }
:is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) .fMenu > li:is(.selected, .active, .current, .done, .completed) > a::before,
:is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) a[aria-current='step']::before,
:is(.toid-reg-runner, .registration-steps) > li:is(.selected, .active, .current, .done, .completed) > a::before {
  background: var(--toid-navy); border-color: var(--toid-navy); color: #fff;
}
@media (max-width: 479.98px) {
  :is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) .fMenu > li > a { gap: 8px; font-size: 12px; }
  :is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) .fMenu > li > a::before { width: 36px; height: 36px; font-size: 14px; }
  :is(nav[data-toid-registration-steps],nav[aria-label='Registration Timeline'],.toid-reg-runner nav,nav.toid-registration-timeline) .fMenu > li:not(:last-child)::after { top: 18px; left: calc(50% + 23px); right: calc(-50% + 23px); }
  #fContent #fMatterPre:has(nav[data-toid-registration-steps]) { margin-bottom: 24px; }
}

/* 20. FOOTER: BRAND / LINKS / CONTACT / SOCIAL-ARTWORK ----------------- */
/* Native markup is styled before JS. Grok should render the four semantic
   columns in the CMS; do not populate missing contact details in CSS/JS. */
#fFooter {
  position:relative !important; inset:auto !important; transform:none !important;
  float:none !important; flex:0 0 auto; order:10;
  width:100% !important; max-width:none !important; height:auto !important; min-height:0 !important;
  margin:auto 0 0 !important; padding:36px 0 22px !important;
  border:0 !important; border-top:2px solid var(--toid-yellow) !important;
  background:#162c3b !important; color:#d3dde5; overflow:visible;
}
#fFooter::before,#fFooter::after { content:none !important; }
#fFooter > .container { width:100% !important; max-width:var(--toid-max) !important; margin:0 auto !important; padding:0 var(--toid-gutter) !important; }
#fFooter .region-footer {
  display:grid !important; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  align-items:start; gap:30px 36px; width:100%; margin:0 !important; padding:0 !important;
}
#fFooter .region-footer.toid-footer-layout,
#fFooter .region-footer[data-toid-columns='4'] { grid-template-columns:minmax(0,1.45fr) minmax(0,.75fr) minmax(0,1.05fr) minmax(0,1fr); }
#fFooter .region-footer[data-toid-columns='3'] { grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr) minmax(0,1fr); }
#fFooter .region-footer[data-toid-columns='1'] { grid-template-columns:minmax(0,1fr); }
#fFooter .region-footer > * {
  position:relative; float:none !important; width:auto !important; max-width:100%; min-width:0;
  min-height:0 !important; margin:0 !important; padding:0 !important;
  border:0 !important; background:transparent !important; box-shadow:none !important;
}
/* These selectors work on the supplied raw footer without generated classes. */
#fFooter .region-footer > :is(.toid-footer-brand-module,.fModule:has(.toid-footer-brand)) { order:-4; }
#fFooter .region-footer > :is(.toid-footer-links-module,.f-module-pages-menu) { order:-3; }
#fFooter .region-footer > :is(.toid-footer-contact,.toid-footer-contact-module,[data-toid-footer='contact']) { order:-2; }
#fFooter .region-footer > :is(.toid-footer-social,.toid-footer-social-module,[data-toid-footer='social']) { order:-1; }
#fFooter .fModule:has(.toid-footer-brand) > .fModuleTitle { display:none !important; }
#fFooter .fModuleContent { margin:0 !important; padding:0 !important; background:transparent !important; }
#fFooter .fModuleContent .container { width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; }
#fFooter .toid-footer-grid { display:block; margin:0; padding:0; }
#fFooter .toid-footer-brand { display:grid; grid-template-columns:64px minmax(0,1fr); align-items:center; gap:14px 12px; margin:0; padding:0; }
/* An unclassified/wide logo is NOT squeezed or cropped into a fake emblem. */
#fFooter img.toid-footer-logo { display:block; grid-column:1 / -1; width:min(100%,300px) !important; height:auto !important; max-height:88px !important; margin:0 !important; padding:6px !important; border:0 !important; border-radius:5px; background:#fff; object-fit:contain !important; object-position:left center; }
#fFooter .toid-footer-brand h4 { grid-column:1 / -1; margin:0 !important; color:#fff !important; font:600 23px/1.2 var(--font-serif); }
#fFooter .toid-footer-brand p { grid-column:1 / -1; margin:0 !important; padding:0; color:#d3dde5; font:400 14px/1.7 var(--font-sans); overflow-wrap:break-word; }
#fFooter .toid-footer-brand:has(.toid-footer-logo[data-toid-logo='round']) > h4,
#fFooter .toid-footer-brand:has(.toid-footer-logo.toid-logo-round) > h4,
#fFooter .toid-footer-brand:has(.toid-footer-logo-frame) > h4 { grid-column:2; grid-row:1; }
#fFooter img.toid-footer-logo[data-toid-logo='round'],#fFooter img.toid-footer-logo.toid-logo-round {
  grid-column:1; grid-row:1; width:64px !important; height:64px !important;
  max-height:none !important; padding:2px !important; border-radius:50%; background:#fff; object-position:center;
}
#fFooter .toid-footer-logo-frame { grid-column:1; grid-row:1; width:64px; height:64px; overflow:hidden; border-radius:50%; background:#fff; }
#fFooter .toid-footer-logo-frame > img { width:100% !important; height:100% !important; padding:0 !important; object-fit:contain !important; }
#fFooter :is(.fModuleTitle,.toid-footer-column > h3,.toid-footer-social-content > h3) { margin:0 0 13px !important; padding:0 !important; }
#fFooter .region-footer > :is(section,nav,div) > h3,
#fFooter :is(.fModuleTitle h3,.toid-footer-column > h3,.toid-footer-social-content > h3) { margin:0 0 13px; padding:0; color:#fff !important; font:600 16px/1.4 var(--font-sans); text-transform:none; letter-spacing:0; }
#fFooter .fModuleTitle h3::before { content:none !important; }
#fFooter :is(ul.fMenu,.toid-footer-links) { display:block !important; margin:0 !important; padding:0 !important; list-style:none !important; }
#fFooter :is(.fMenu li,.toid-footer-links li) { display:block; float:none !important; margin:0 !important; padding:0 !important; border:0; list-style:none !important; }
#fFooter .fMenu li::before { content:none !important; }
#fFooter a { color:#e1e8ed !important; text-decoration:none; overflow-wrap:anywhere; }
#fFooter a:hover { color:var(--toid-yellow) !important; text-decoration:underline; }
#fFooter .fMenu a { display:inline-flex; align-items:center; min-height:28px; margin:0; padding:3px 0 !important; background:transparent !important; border:0 !important; font:400 14px/1.45 var(--font-sans); }
#fFooter .fMenu .menu-item-text { font:inherit; }
#fFooter .fMenu .menu-item-icon:empty { display:none; }
#fFooter .toid-footer-contact-list { display:grid; gap:12px; margin:0; padding:0; list-style:none; }
#fFooter .toid-footer-contact-list li { display:grid; grid-template-columns:18px minmax(0,1fr); gap:9px; align-items:start; margin:0; padding:0; font:400 14px/1.6 var(--font-sans); }
#fFooter .toid-footer-contact-list svg { width:17px; height:17px; margin-top:3px; fill:none; stroke:currentColor; stroke-width:1.7; }
#fFooter :is(.toid-footer-contact,.toid-footer-social) p { font:400 14px/1.6 var(--font-sans); }
#fFooter .toid-footer-social-links { display:flex; flex-wrap:wrap; gap:9px; }
#fFooter .toid-footer-social-links a { display:flex; align-items:center; justify-content:center; width:38px; height:38px; padding:9px; border:1px solid #657685; border-radius:50%; }
#fFooter .toid-footer-social-links svg { width:18px; height:18px; fill:none; stroke:currentColor; }
#fFooter .toid-footer-line-art { display:block; grid-column:1 / -1; width:100% !important; max-width:320px !important; height:auto !important; min-height:0 !important; max-height:110px !important; margin:16px 0 0 !important; padding:0 !important; background:transparent !important; border:0 !important; border-radius:0 !important; object-fit:contain; object-position:left bottom; opacity:.8; }
#fFooter .toid-footer-tagline { margin:14px 0 0; color:#f2f4f5; text-align:right; white-space:pre-line; font:italic 500 22px/1.3 var(--font-serif); }
#fFooter .toid-footer-tagline::after { content:''; display:block; width:36px; height:2px; margin:12px 0 0 auto; background:var(--toid-yellow); }
#fFooter .toid-footer-bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 24px; margin:24px 0 0; padding:16px 0 0; border-top:1px solid #3a4e5e; }
#fFooter .toid-footer-bottom :is(p,.toid-copy,.copyright) { margin:0; padding:0; border:0; color:#c7d2dc; font:400 12px/1.5 var(--font-sans); }
#fFooter .toid-footer-legal { display:flex; flex-wrap:wrap; gap:8px 18px; font:400 12px/1.5 var(--font-sans); }
@media (max-width:991.98px) {
  #fFooter .region-footer,#fFooter .region-footer.toid-footer-layout,#fFooter .region-footer[data-toid-columns] { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
  #fFooter .region-footer[data-toid-columns='1'] { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:575.98px) {
  #fFooter { padding:30px 0 20px !important; }
  #fFooter .region-footer,#fFooter .region-footer.toid-footer-layout,#fFooter .region-footer[data-toid-columns] { grid-template-columns:minmax(0,1fr); gap:24px; }
  #fFooter .region-footer > :is(.toid-footer-links-module,.f-module-pages-menu) { padding-top:20px !important; border-top:1px solid #3a4e5e !important; }
  #fFooter ul.fMenu,#fFooter .toid-footer-links { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 16px; }
  #fFooter .fMenu a { min-height:38px; }
  #fFooter .toid-footer-line-art { max-width:290px !important; }
  #fFooter .toid-footer-bottom { flex-direction:column; align-items:flex-start; }
}


/* 21. SPEAKERS / FACULTY: CIRCULAR PORTRAITS, SEARCH, BIOGRAPHIES -------- */
.toid-speakers { padding-block: var(--toid-section-space); background: #fff; }
.toid-speakers > .container { width: 100%; max-width: var(--toid-max); margin: auto; padding-inline: var(--toid-gutter); }
.toid-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 26px; }
.toid-section-heading h2 { margin: 0; color: var(--toid-navy); font: 600 clamp(30px,3.2vw,42px)/1.15 var(--font-serif); }
.toid-section-heading p { margin: 7px 0 0; color: var(--toid-muted); }
.toid-speakers-grid,
:is(.toid-speakers-gallery,.toid-speaker-gallery) .fModuleContent > ul.fGalleryImages {
  display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 30px 24px;
  list-style: none; margin: 0; padding: 0; align-items: start;
}
.toid-speaker-card,.toid-speaker-ph,
:is(.toid-speakers-gallery,.toid-speaker-gallery) .fGalleryItem { min-width: 0; padding: 0; margin: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; text-align: center; list-style: none; }
.toid-speaker-photo,
:is(.toid-speakers-gallery,.toid-speaker-gallery) .fGalleryImage > img {
  display: block; width: 132px; height: 132px; max-width: 100%;
  margin: 0 auto 16px; border: 3px solid #f2f1ed; border-radius: 50%; outline: none;
  background: #f2f3f4; object-fit: cover; object-position: center top;
}
.toid-speaker-photo.toid-speaker-initials { display: flex; align-items: center; justify-content: center; color: #52687c; font: 600 35px/1 var(--font-serif); }
.toid-speaker-open { display: block; width: 100%; margin: 0; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; font: inherit; }
.toid-speaker-open .toid-speaker-photo { transition: box-shadow .18s ease; }
.toid-speaker-open:hover .toid-speaker-photo { box-shadow: 0 0 0 3px #efda79; }
.toid-speaker-card h3,.toid-speaker-name,.toid-speaker-ph h4,
:is(.toid-speakers-gallery,.toid-speaker-gallery) :is(.fGalleryTitle,.fGalleryImageTitle) { margin: 0 0 6px; font: 700 14px/1.4 var(--font-sans); color: var(--toid-navy); }
.toid-speaker-name { display: block; }
.toid-speaker-card p { margin: 0; color: #657386; font: 400 13px/1.5 var(--font-sans); }
.toid-speaker-card .toid-speaker-country { margin-top: 3px; }
.toid-speaker-directory .toid-speakers-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 38px 28px; }
.toid-component-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: 14px; margin-bottom: 24px; }
.toid-component-toolbar label { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; color: #52647a; font: 600 13px/1.4 var(--font-sans); }
.toid-component-toolbar label:has(input[type='search']) { flex: 1 1 260px; }
.toid-component-toolbar label:has(select) { flex: 0 1 190px; }
.toid-component-toolbar :is(input,select) { width: 100%; min-width: 0; height: 44px; padding: 10px 13px; border: 1px solid #ced8e3; border-radius: 9px; background: #fff; color: var(--toid-navy); font: 400 16px/1.4 var(--font-sans); }
.toid-component-toolbar input[type='search'] { padding-left: 39px !important; background-image: var(--toid-search-icon); background-size: 18px; background-repeat: no-repeat; background-position: 12px center; }
.toid-component-toolbar .toid-component-count { flex: 0 0 auto; align-self: center; margin: 0; color: var(--toid-muted); font: 400 14px/1.4 var(--font-sans); }
.toid-empty-state { padding: 30px 22px; border: 1px dashed #cdd7df; border-radius: 12px; background: #fafbfc; color: #53657a; font: 400 16px/1.6 var(--font-sans); text-align: center; }
.toid-empty-state p { margin: 0; }
.toid-component-hidden,[data-toid-filter-hidden] { display: none !important; }
@media (max-width: 1099.98px) {
  .toid-speakers-grid,:is(.toid-speakers-gallery,.toid-speaker-gallery) .fModuleContent > ul.fGalleryImages { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .toid-speaker-directory .toid-speakers-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 575.98px) {
  .toid-speakers-grid,.toid-speaker-directory .toid-speakers-grid,:is(.toid-speakers-gallery,.toid-speaker-gallery) .fModuleContent > ul.fGalleryImages { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 16px; }
  .toid-speaker-photo { width: 112px; height: 112px; }
  .toid-section-heading { align-items: start; flex-direction: column; }
  .toid-component-toolbar label:has(select) { flex: 1 1 125px; }
}

/* Namespaced native dialogs do not interfere with Bootstrap CMS modals. */
dialog.toid-dialog {
  width: min(780px,calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 40px);
  margin: auto; padding: 0; border: 1px solid #dfe4e8; border-radius: 16px;
  background: #fff; color: var(--toid-navy); box-shadow: 0 24px 80px rgba(8,25,38,.24);
  overflow: auto; overscroll-behavior: contain;
}
dialog.toid-dialog:not([open]) { display: none; }
dialog.toid-dialog::backdrop { background: rgba(10,26,40,.68); }
.toid-dialog-header { position: relative; padding: 28px 72px 22px 28px; border-bottom: 1px solid #e5e9ed; }
.toid-dialog-header h2 { margin: 0; font: 600 34px/1.15 var(--font-serif); }
.toid-dialog-close { position: absolute; top: 18px; right: 18px; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 10px; border: 1px solid #dbe1e6; border-radius: 50%; background: #fff; color: var(--toid-navy); cursor: pointer; }
.toid-dialog-close svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.toid-dialog-body { padding: 28px; font: 400 16px/1.7 var(--font-sans); }
.toid-dialog-profile { display: grid; grid-template-columns: 112px minmax(0,1fr); gap: 22px; align-items: center; margin-bottom: 24px; }
.toid-dialog-profile .toid-speaker-photo { width: 112px; height: 112px; margin: 0; }
.toid-dialog-profile p { margin: 0; color: #596c80; }
.toid-dialog-body > p:last-child { margin-bottom: 0; }
body.toid-dialog-open { overflow: hidden; }
.toid-dialog-fallback-backdrop { position: fixed; z-index: 2999; inset: 0; background: rgba(10,26,40,.68); }
dialog.toid-dialog.toid-dialog-fallback { position: fixed; inset: 50% auto auto 50%; z-index: 3000; display: block; transform: translate(-50%,-50%); margin: 0; }
@media (max-width: 575.98px) { .toid-dialog-header { padding: 24px 65px 20px 22px; } .toid-dialog-header h2 { font-size: 29px; } .toid-dialog-body { padding: 22px; } .toid-dialog-profile { grid-template-columns: 82px minmax(0,1fr); gap: 16px; } .toid-dialog-profile .toid-speaker-photo { width: 82px; height: 82px; } }

/* 22. AGENDA DISPLAY: DAY FILTERS, ROOMS, TRACKS, TALKS AND CHAIRS -------- */
.toid-agenda { width: 100%; min-width: 0; color: var(--toid-navy); }
.toid-agenda .toid-section-heading { margin-bottom: 20px; }
.toid-agenda-days { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; padding: 0; }
.toid-agenda-day { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 20px; border: 1px solid #ccd6df; border-radius: 999px; background: #fff; color: #50647a; font: 600 15px/1.35 var(--font-sans); cursor: pointer; }
.toid-agenda-day[aria-pressed='true'] { border-color: var(--toid-navy); background: var(--toid-navy); color: #fff; }
.toid-agenda-day:hover:not([aria-pressed='true']) { background: #fbf5db; border-color: #dac96f; }
.toid-agenda-note { margin: -8px 0 20px; color: #6b7b8d; font: 400 13px/1.45 var(--font-sans); }
.toid-agenda-results { display: grid; gap: 14px; }
.toid-agenda-session { min-width: 0; overflow: hidden; border: 1px solid #dfe5ea; border-radius: 12px; background: #fff; box-shadow: 0 3px 12px rgba(26,42,58,.025); }
.toid-agenda-session > summary { display: grid; grid-template-columns: 126px minmax(0,1fr) 22px; align-items: center; column-gap: 22px; padding: 22px; cursor: pointer; list-style: none; color: var(--toid-navy); }
.toid-agenda-session > summary::-webkit-details-marker { display: none; }
.toid-agenda-session > summary::marker { content: ''; }
.toid-agenda-session > summary:focus-visible { outline: 3px solid #b29829; outline-offset: -4px; border-radius: 12px; }
.toid-agenda-time { display: flex; flex-direction: column; gap: 4px; align-self: stretch; justify-content: center; padding-right: 16px; border-right: 1px solid #e0e6eb; color: #23425d; font: 700 17px/1.4 var(--font-sans); font-variant-numeric: tabular-nums; }
.toid-agenda-date { display: block; font: 500 12px/1.5 var(--font-sans); color: #6b7c8d; }
.toid-agenda-summary { min-width: 0; }
.toid-agenda-summary h3 { margin: 0 0 10px; color: var(--toid-navy); font: 600 23px/1.25 var(--font-serif); overflow-wrap: anywhere; }
.toid-agenda-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; color: #566d83; font: 400 13px/1.4 var(--font-sans); }
.toid-agenda-meta span { display: inline-flex; align-items: center; gap: 5px; }
.toid-agenda-room svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.toid-agenda-track { padding: 3px 9px; border-radius: 5px; background: #f7f2dd; color: #685c28; }
.toid-agenda-chevron { width: 18px; height: 18px; color: #687d90; fill: none; stroke: currentColor; stroke-width: 1.8; transition: transform .18s ease; }
.toid-agenda-session[open] > summary { background: #fafbfc; }
.toid-agenda-session[open] .toid-agenda-chevron { transform: rotate(180deg); }
.toid-agenda-details { margin: 0 22px 24px 170px; padding-top: 22px; border-top: 1px solid #e2e8ed; color: #465d72; font: 400 15px/1.6 var(--font-sans); }
.toid-agenda-details > p { margin-bottom: 13px; }
.toid-agenda-chairs strong,.toid-agenda-speakers strong { color: var(--toid-navy); }
.toid-agenda-details .toid-speaker-inline { display: inline; padding: 0; border: 0; background: transparent; color: #284f73; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.toid-agenda-talks { display: block; margin: 20px 0 0; padding: 0; list-style: none; border-top: 1px solid #e3e8ee; }
.toid-agenda-talk { display: grid; grid-template-columns: 90px minmax(0,1fr); gap: 12px; padding: 16px 0; border-bottom: 1px solid #e3e8ee; }
.toid-agenda-talk:last-child { border-bottom: 0; padding-bottom: 0; }
.toid-agenda-talk time { color: #5d748a; font-weight: 600; font-variant-numeric: tabular-nums; }
.toid-agenda-talk h4 { margin: 0 0 5px; color: var(--toid-navy); font: 600 16px/1.45 var(--font-sans); }
.toid-agenda-talk p { margin: 0; color: #698096; font-size: 14px; }
.toid-agenda-empty { margin-top: 16px; }
#fContent .toid-utility-button,.toid-utility-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; max-width: 100%; padding: 10px 16px; border: 1px solid #c8d3dd; border-radius: 9px; background: #fff; color: #24425e; font: 600 14px/1.4 var(--font-sans); cursor: pointer; }
.toid-utility-button:hover { background: #f5f7f9; }
.toid-utility-button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.toid-agenda-reset { flex: 0 0 auto; }
@media (max-width: 767.98px) {
  .toid-agenda-session > summary { grid-template-columns: 100px minmax(0,1fr) 18px; column-gap: 16px; padding: 18px; }
  .toid-agenda-summary h3 { font-size: 21px; }
  .toid-agenda-time { font-size: 15px; padding-right: 12px; }
  .toid-agenda-details { margin: 0 18px 20px; padding-top: 18px; }
}
@media (max-width: 479.98px) {
  .toid-agenda-session > summary { grid-template-columns: minmax(0,1fr) 20px; gap: 12px; padding: 18px; }
  .toid-agenda-time { grid-column: 1; grid-row: 1; flex-direction: row; flex-wrap: wrap; justify-content: flex-start; align-items: center; column-gap: 10px; border: 0; padding: 0; }
  .toid-agenda-summary { grid-column: 1; grid-row: 2; }
  .toid-agenda-chevron { grid-column: 2; grid-row: 1 / 3; }
  .toid-agenda-days { gap: 7px; }
  .toid-agenda-day { padding: 9px 13px; font-size: 14px; }
  .toid-agenda-talk { grid-template-columns: 70px minmax(0,1fr); gap: 10px; }
}

/* 23. COMMON CMS MODULES / EXHIBITORS / ABSTRACTS / DOWNLOADS ----------- */
.toid-exhibitors-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,230px),1fr)); gap: 22px; }
.toid-exhibitor-card { min-width: 0; padding: 24px; border: 1px solid var(--toid-border); border-radius: 12px; background: #fff; }
.toid-exhibitor-card img { display: block; width: 100%; height: 90px; margin: 0 auto 18px; object-fit: contain; }
.toid-exhibitor-card h3 { margin: 0 0 8px; font-size: 26px; }
.toid-exhibitor-card p { font-size: 15px; color: var(--toid-muted); }
.toid-booth-number { display: inline-block; padding: 4px 10px; border-radius: 5px; background: #fbf3d5; color: #635525; font-size: 13px; }
.toid-download-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.toid-download-list a { display: flex; justify-content: space-between; align-items: center; gap: 15px; min-height: 56px; padding: 16px 20px; border: 1px solid var(--toid-border); border-radius: 10px; background: #fff; font-weight: 600; }
.toid-abstract-card { padding: 24px; border: 1px solid var(--toid-border); border-radius: 12px; background: #fff; }
.toid-abstract-card h3 { margin-top: 0; font-size: 28px; }
.toid-abstract-meta { display: flex; flex-wrap: wrap; gap: 7px 18px; margin-bottom: 18px; color: var(--toid-muted); font-size: 14px; }
.toid-abstract-body { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.75; }
.toid-faq details { padding: 18px 0; border-bottom: 1px solid var(--toid-border); }
.toid-faq summary { color: var(--toid-navy); font-weight: 600; cursor: pointer; }
.toid-faq details p { margin: 14px 0 0; color: var(--toid-muted); }
.toid-word-count { display: block; margin-top: 7px; color: var(--toid-muted); font-size: 13px; text-align: right; }
/* Optional styling only. Word limits, ticket pricing, abstract submission,
   room capacity and payments remain the CMS's responsibility. */
@media (prefers-reduced-motion: reduce) {
  .toid-agenda-chevron,.toid-speaker-photo { transition: none !important; }
}
@media print {
  .toid-component-toolbar,.toid-agenda-days,.toid-agenda-print,.toid-dialog { display: none !important; }
  .toid-agenda-session { break-inside: avoid; box-shadow: none; }
  .toid-agenda-session > summary { background: #fff !important; }
  .toid-agenda-details { display: block; }
  .toid-agenda-chevron { display: none; }
  .toid-speakers-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}


/* CMS layout opt-out: existing bespoke forms may retain their native layout. */
#fContent form.fForm[data-toid-layout="native"]:not(.toid-form-profile) { display:block; }

.toid-agenda-details .toid-speaker-inline:disabled { opacity: 1; cursor: text; text-decoration: none; color: inherit; }
/* 24. BACK TO TOP, REDUCED MOTION AND PRINT ---------------------------- */
#nav-up {
  position: fixed;
  right: 20px;
  bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  z-index: 990;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--toid-border);
  border-radius: 50%;
  background: #fff;
  color: var(--toid-navy);
  box-shadow: 0 5px 16px rgba(26, 42, 58, .12);
  animation: none !important;
  cursor: pointer;
}
#nav-up #btn-vibrate { display: none; animation: none !important; }
#nav-up::before { content: ''; display: block; width: 10px; height: 10px; margin: 5px auto 0; border-top: 2px solid currentColor; border-left: 2px solid currentColor; transform: rotate(45deg); }
#nav-up:hover { background: var(--toid-yellow); border-color: var(--toid-yellow); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .toid-btn, .toid-card, .toid-flip-inner, .fHeader .icon-bar,
  .fHeader .toid-main-nav nav.collapsing, .toid-nav-overlay { transition: none !important; animation: none !important; }
}
@media print {
  .fHeader, #fFooter, #nav-up, .head-padding, .toid-hero-widget .bx-controls { display: none !important; }
  body, #fContent { background: #fff !important; color: #000; }
  #fContent > .container { max-width: none; padding: 0; }
  #fContent > .fPageTitle { min-height: 0; padding: 0 0 20px !important; background: none; border: 0; }
  #fContent .fPageTitle :is(h1, h2, #heading) { color: #000 !important; font-size: 30px !important; }
  .toid-card, .toid-flip-card, .toid-reg-cat { break-inside: avoid; }
}

/* Never turn conditional hidden content back on through layout styling. */
#fContent form :is([hidden],.d-none,.hidden,input[type='hidden'],.form-item-type-hidden),
#fFooter .region-footer > [hidden],.fHeader .toid-brand [hidden] { display:none !important; }
