/* AIFG UN Discovery form – ported from the approved mockup, scoped to .aifg-und */
.aifg-und {
  --und-ink:#111; --und-muted:#626262; --und-cyan:#00a9ce; --und-green:#68bd45;
  --und-magenta:#bd256f; --und-purple:#673b96; --und-max:1200px;
  color:var(--und-ink);
  font-family:"Avenir Next", Avenir, "Avenir Normal", "Segoe UI", Arial, sans-serif;
  font-size:16px; line-height:1.7; text-align:left;
}
.aifg-und *, .aifg-und *::before, .aifg-und *::after { box-sizing:border-box; }
.aifg-und [hidden] { display:none !important; }
.aifg-und a { color:inherit; }
.aifg-und button, .aifg-und input, .aifg-und textarea, .aifg-und select { font:inherit; letter-spacing:normal; text-transform:none; }
.aifg-und h1, .aifg-und h2, .aifg-und h3, .aifg-und h4 { font-family:inherit; color:inherit; text-transform:none; }
.aifg-und .und-wrap { width:min(calc(100% - 48px),var(--und-max)); margin-inline:auto; }
.aifg-und .und-loading { padding:80px 20px; text-align:center; color:#777; }
body.aifg-und-blank { margin:0; background:#f4f4f4; }

/* Password screen */
.aifg-und .und-gate {
  min-height:100vh; padding:38px 20px; display:grid; place-items:center;
  background:
    radial-gradient(circle at 15% 12%,rgba(0,169,206,.32),transparent 28%),
    radial-gradient(circle at 88% 82%,rgba(189,37,111,.34),transparent 32%),
    linear-gradient(145deg,#030303,#111631 58%,#251238);
  color:#fff;
}
.aifg-und .und-gate-card { width:min(100%,520px); padding:42px; border:1px solid rgba(255,255,255,.18); border-radius:24px; background:rgba(7,7,12,.88); box-shadow:0 28px 80px rgba(0,0,0,.38); backdrop-filter:blur(16px); }
.aifg-und .und-gate-brand { display:flex; align-items:center; gap:12px; margin-bottom:34px; font-weight:750; }
.aifg-und .und-gate-card h1 { font-size:clamp(36px,7vw,54px); line-height:1.02; margin:0 0 18px; letter-spacing:-1.5px; font-weight:600; color:#fff; }
.aifg-und .und-gate-card > p { color:#c9c9d0; margin:0 0 26px; }
.aifg-und .und-gate-card label { color:#fff; }
.aifg-und .und-gate-card .und-eyebrow { color:#8ee7dc; }
.aifg-und .und-password-wrap { position:relative; margin-top:8px; }
.aifg-und .und-password-wrap input { padding-right:92px; border-color:#777; }
.aifg-und .und-password-toggle { position:absolute; top:50%; right:8px; transform:translateY(-50%); padding:7px 10px; border:0; background:transparent; color:#333; font-weight:700; cursor:pointer; }
.aifg-und .und-gate-submit { width:100%; margin-top:18px; border-color:#fff; }
.aifg-und .und-gate-error { min-height:25px; margin:10px 0 0; color:#ffb6cb; font-size:14px; }
.aifg-und .und-gate-note { margin-top:24px; padding-top:20px; border-top:1px solid rgba(255,255,255,.14); color:#9fa0aa; font-size:12px; }

/* Header and intro */
.aifg-und .und-header { background:#050505; color:#fff; border-bottom:1px solid rgba(255,255,255,.12); }
.aifg-und .und-nav { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.aifg-und .und-brand { display:flex; align-items:center; gap:11px; text-decoration:none; font-weight:700; color:#fff; }
.aifg-und .und-brand-mark { width:32px; height:32px; border:2px solid currentColor; border-radius:50%; display:grid; place-items:center; font-size:11px; letter-spacing:-1px; }
.aifg-und .und-header-label { color:#bdbdbd; font-size:13px; font-weight:650; }
.aifg-und .und-main { padding:54px 0 80px; background:#f4f4f4; }
.aifg-und .und-intro { margin-bottom:28px; }
.aifg-und .und-intro h1 { color:#111; font-size:clamp(38px,5vw,58px); line-height:1.02; letter-spacing:-2px; font-weight:600; margin:0 0 14px; }
.aifg-und .und-intro p { max-width:850px; margin:0; color:#555; font-size:18px; }
.aifg-und .und-eyebrow { text-transform:uppercase; letter-spacing:.14em; font-weight:700; font-size:12px; color:var(--und-purple); margin-bottom:10px; }
.aifg-und .und-guidelines { background:#fff; color:#111; border:1px solid #dedede; border-radius:12px; padding:28px; margin:0 0 28px; }
.aifg-und .und-guidelines h2 { font-size:26px; line-height:1.12; letter-spacing:0; font-weight:600; margin:0 0 16px; }
.aifg-und .und-guidelines h2:focus { outline:none; }
.aifg-und .und-guidelines ul { margin:8px 0 0; padding-left:21px; }
.aifg-und .und-guidelines a { text-decoration:underline; }

/* Buttons */
.aifg-und .und-button {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:48px; padding:11px 22px; border:1px solid #000; border-radius:4px;
  background:#000; color:#fff; text-decoration:none; font-weight:650; cursor:pointer; transition:.2s ease;
}
.aifg-und .und-button:hover, .aifg-und .und-button:focus-visible { background:#222; color:#fff; transform:translateY(-1px); }
.aifg-und .und-button.und-outline { background:transparent; color:#111; }
.aifg-und .und-button.und-outline:hover { background:#111; color:#fff; }
.aifg-und .und-button[disabled] { opacity:.6; cursor:wait; }

/* Form */
.aifg-und .und-shell { background:#fff; border-radius:28px; box-shadow:0 18px 55px rgba(0,0,0,.11); overflow:hidden; }
.aifg-und .und-form-area { padding:46px 48px 52px; }
.aifg-und .und-progress { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin:0 0 38px; }
.aifg-und .und-progress-item { font-size:12px; color:#777; font-weight:650; }
.aifg-und .und-progress-item::before { content:""; display:block; height:5px; border-radius:9px; background:#ddd; margin-bottom:8px; }
.aifg-und .und-progress-item.active { color:#111; }
.aifg-und .und-progress-item.active::before, .aifg-und .und-progress-item.done::before { background:linear-gradient(90deg,var(--und-cyan),var(--und-purple)); }
.aifg-und .und-progress-item.done { color:#555; }
.aifg-und .und-form-error { margin:0 0 24px; padding:14px 18px; border-left:4px solid #b20046; background:#fff0f4; color:#7a0030; }

.aifg-und .und-step { display:none; }
.aifg-und .und-step.active { display:block; animation:und-fade .24s ease; }
@keyframes und-fade { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
.aifg-und .und-step-title { margin-bottom:25px; }
.aifg-und .und-step-title h3 { font-size:30px; line-height:1.25; margin:0 0 12px; }
.aifg-und .und-step-title p { color:var(--und-muted); margin:6px 0 0; }
.aifg-und .und-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 22px; }
.aifg-und .und-field { display:flex; flex-direction:column; gap:7px; }
.aifg-und .und-field.und-full { grid-column:1 / -1; }
.aifg-und label, .aifg-und legend { font-weight:650; font-size:14px; color:inherit; margin:0; padding:0; }
.aifg-und .und-required { color:#b20046; }
.aifg-und input:not([type=radio]):not([type=checkbox]), .aifg-und select, .aifg-und textarea {
  width:100%; max-width:none; height:auto; border:1px solid #bdbdbd; border-radius:7px; background:#fff;
  min-height:48px; margin:0; padding:11px 13px; color:#111; outline:none; box-shadow:none;
}
.aifg-und textarea { min-height:126px; resize:vertical; }
.aifg-und input:focus, .aifg-und select:focus, .aifg-und textarea:focus { border-color:var(--und-purple); box-shadow:0 0 0 3px rgba(103,59,150,.13); }
.aifg-und .und-help { color:#707070; font-size:12px; margin:0; }
.aifg-und .und-help a { text-decoration:underline; }
.aifg-und fieldset { border:0; padding:0; margin:0; min-width:0; }
.aifg-und .und-choice-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:6px; }
.aifg-und .und-choice { display:flex; align-items:center; gap:9px; border:1px solid #c9c9c9; border-radius:8px; padding:11px 14px; cursor:pointer; font-weight:500; }
.aifg-und .und-choice input, .aifg-und .und-checkbox-line input { width:auto; min-height:0; margin:0; accent-color:var(--und-purple); }
.aifg-und .und-repeat-card { background:#f7f7f7; padding:22px; border-radius:14px; border:1px solid #e5e5e5; margin-top:22px; }
.aifg-und .und-repeat-card h4 { margin:0 0 16px; font-size:18px; }
.aifg-und .und-checkbox-line { display:flex; align-items:flex-start; gap:12px; padding:15px 0; font-weight:500; font-size:16px; }
.aifg-und .und-checkbox-line input { margin-top:6px; }
.aifg-und .und-review-box { background:#f5f5f5; border-radius:12px; padding:22px; margin:20px 0; }
.aifg-und .und-review-box ul { margin:8px 0 0; padding-left:21px; }
.aifg-und .und-actions { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-top:35px; border-top:1px solid #e5e5e5; padding-top:25px; }
.aifg-und .und-actions-right { display:flex; gap:12px; margin-left:auto; }
.aifg-und .und-save-note { color:#777; font-size:12px; }
.aifg-und .und-hp { position:absolute !important; left:-10000px; width:1px; height:1px; overflow:hidden; }

/* ---------- Public Discovery page sections ---------- */
.aifg-und .und-intro-text { padding:46px 0 10px; font-size:18px; }
.aifg-und .und-intro-text p { max-width:1080px; margin:0; }


.aifg-und-public { margin:0 0 40px; }
.aifg-und .und-section { padding:56px 0; }
.aifg-und .und-section.und-soft { padding:56px clamp(20px,4vw,48px); background:#f4f4f4; border-radius:24px; }
.aifg-und .und-section-head { display:flex; justify-content:space-between; gap:30px; align-items:end; margin-bottom:34px; }
.aifg-und .und-section-head h2 { font-size:clamp(30px,4vw,50px); line-height:1.12; letter-spacing:-1.4px; font-weight:600; margin:0; }
.aifg-und .und-section-note { color:var(--und-muted); max-width:720px; margin:12px 0 0; }
.aifg-und .und-section-note a { text-decoration:underline; }
.aifg-und .und-section-head .und-button { flex-shrink:0; }

.aifg-und .und-event-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.aifg-und .und-event-card { background:#fff; border-radius:18px; overflow:hidden; box-shadow:0 8px 25px rgba(0,0,0,.06); display:flex; flex-direction:column; }
.aifg-und .und-event-image { display:block; height:190px; background:linear-gradient(135deg,#185db3,var(--und-purple) 48%,var(--und-magenta)); background-size:cover; background-position:center; position:relative; overflow:hidden; }
.aifg-und .und-event-image:not(.has-image)::after { content:"A"; position:absolute; right:22px; bottom:-40px; font-size:170px; line-height:1; font-weight:800; color:rgba(255,255,255,.19); }
.aifg-und .und-event-card:nth-child(3n+2) .und-event-image:not(.has-image) { background:linear-gradient(135deg,var(--und-green),var(--und-cyan),#185db3); }
.aifg-und .und-event-card:nth-child(3n) .und-event-image:not(.has-image) { background:linear-gradient(135deg,#f3d315,#ee7a21,var(--und-magenta)); }
.aifg-und .und-event-body { padding:25px; display:flex; flex-direction:column; flex:1; }
.aifg-und .und-event-meta { font-size:13px; text-transform:uppercase; font-weight:700; letter-spacing:.08em; color:var(--und-purple); }
.aifg-und .und-event-body h3 { font-size:21px; line-height:1.25; margin:8px 0 16px; }
.aifg-und .und-event-body h3 a { text-decoration:none; }
.aifg-und .und-event-body h3 a:hover { text-decoration:underline; text-underline-offset:4px; }
.aifg-und .und-text-link { font-weight:700; margin-top:auto; text-decoration:none; }
.aifg-und .und-text-link:hover { text-decoration:underline; text-underline-offset:4px; }

.aifg-und .und-sponsor-card { padding:52px; min-height:360px; display:flex; flex-direction:column; justify-content:center; background:linear-gradient(145deg,#173b88,#713687 56%,#aa286c); color:#fff; }
.aifg-und .und-sponsor-card .und-eyebrow { color:#fff; }
.aifg-und .und-sponsor-card h3 { font-size:clamp(28px,3.4vw,38px); line-height:1.2; max-width:700px; margin:0 0 12px; color:#fff; }
.aifg-und .und-sponsor-card p { color:#f1eaf4; max-width:760px; margin:0 0 24px; }
.aifg-und .und-sponsor-card .und-button { align-self:flex-start; }
.aifg-und .und-route-label { display:inline-block; align-self:flex-start; margin:0 0 18px; padding:7px 11px; border-radius:999px; background:rgba(255,255,255,.17); color:#fff; font-size:12px; font-weight:750; letter-spacing:.04em; text-transform:uppercase; }
.aifg-und .und-button.und-light { background:#fff; color:#000; border-color:#fff; }
.aifg-und .und-button.und-light:hover { background:#f0f0f0; color:#000; }
.aifg-und .und-shell-pad { padding:24px 42px 0; }
.aifg-und .und-shell-pad .und-guidelines { margin:0; background:#f5f5f5; border:0; }
.aifg-und .und-eoi-gateway { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px 42px; margin-top:24px; border-top:1px solid #e5e5e5; }
.aifg-und .und-eoi-gateway p { margin:0; color:var(--und-muted); }
.aifg-und .und-eoi-gateway p + p { margin-top:6px; font-size:14px; }
.aifg-und .und-eoi-gateway .und-button { flex:0 0 auto; }
.aifg-und .und-form-bordered { border-top:1px solid #e5e5e5; }
.aifg-und .und-form-opening { margin:0 0 32px; padding-bottom:24px; border-bottom:1px solid #e5e5e5; }
.aifg-und .und-form-opening h2 { font-size:32px; line-height:1.12; font-weight:600; margin:0 0 8px; }
.aifg-und .und-form-opening > p { color:var(--und-muted); max-width:760px; margin:0; }
.aifg-und .und-capacity-card { margin:25px 0 0; padding:18px 20px; border-left:4px solid #f0c400; background:#fff7d6; color:#222; }
.aifg-und .und-capacity-card p { margin:0; color:#222; }
.aifg-und .und-capacity-card p + p { margin-top:12px; }
.aifg-und .und-spotlight-line { margin:6px 0; }
.aifg-und .und-spotlight-line a { text-decoration:underline; }

.aifg-und .und-streams-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.aifg-und .und-stream { display:block; min-height:180px; padding:24px; border:1px solid #e2e2e2; border-radius:15px; background:#fff; position:relative; overflow:hidden; text-decoration:none; color:inherit; }
.aifg-und .und-stream::before { content:""; position:absolute; height:7px; inset:0 0 auto; background:linear-gradient(90deg,var(--und-cyan),var(--und-green),#f3d315,#ee7a21,var(--und-magenta),var(--und-purple)); }
.aifg-und a.und-stream:hover { border-color:var(--und-purple); box-shadow:0 8px 25px rgba(0,0,0,.07); }
.aifg-und .und-stream h3 { font-size:20px; line-height:1.25; padding-top:10px; margin:0 0 12px; }
.aifg-und .und-stream p { font-size:14px; color:#606060; margin:0; }

@media (max-width:900px) {
  .aifg-und .und-event-grid, .aifg-und .und-streams-grid { grid-template-columns:1fr 1fr; }
  .aifg-und .und-eoi-gateway { align-items:flex-start; flex-direction:column; }
}
@media (max-width:620px) {
  .aifg-und .und-section-head { display:block; }
  .aifg-und .und-section-head .und-button { margin-top:20px; }
  .aifg-und .und-event-grid, .aifg-und .und-streams-grid { grid-template-columns:1fr; }
  .aifg-und .und-sponsor-card { padding:30px 22px; min-height:0; }
  .aifg-und .und-shell-pad { padding:22px 22px 0; }
  .aifg-und .und-eoi-gateway { padding:22px; }
  .aifg-und .und-section.und-soft { padding:40px 16px; }
}

/* Calendar */
.aifg-und .und-calendar-panel { border:1px solid #d7d7d7; border-radius:14px; padding:20px; background:#fafafa; }
.aifg-und .und-calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:15px; }
.aifg-und .und-calendar-toolbar strong { font-size:18px; }
.aifg-und .und-calendar-nav { width:39px; height:39px; padding:0; border:1px solid #bdbdbd; border-radius:50%; background:#fff; color:#111; cursor:pointer; font-size:20px; line-height:1; }
.aifg-und .und-calendar-nav:disabled { opacity:.3; cursor:not-allowed; }
.aifg-und .und-available-dates { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.aifg-und .und-date-option { min-height:66px; padding:9px 10px; border:1px solid #c7c7c7; border-radius:9px; background:#fff; color:#111; cursor:pointer; text-align:left; }
.aifg-und .und-date-option strong, .aifg-und .und-date-option span { display:block; }
.aifg-und .und-date-option span { color:#686868; font-size:12px; }
.aifg-und .und-date-option:hover, .aifg-und .und-date-option:focus-visible { border-color:var(--und-purple); box-shadow:0 0 0 3px rgba(103,59,150,.12); }
.aifg-und .und-date-option.selected { background:#202f70; border-color:#202f70; color:#fff; }
.aifg-und .und-date-option.selected span { color:#e7eaff; }
.aifg-und .und-calendar-selection { pointer-events:none; background:#fff; font-weight:650; }
.aifg-und .und-calendar-empty { color:#666; margin:0; grid-column:1 / -1; }
.aifg-und .und-calendar-error { color:#b20046; font-size:14px; margin:0; }

/* Success */
.aifg-und .und-success { text-align:center; padding:60px 24px; }
.aifg-und .und-success h2 { font-size:clamp(28px,4vw,40px); line-height:1.12; font-weight:600; margin:0 0 12px; }
.aifg-und .und-success p { max-width:640px; margin:0 auto 24px; color:#555; }
.aifg-und .und-success-icon { width:68px; height:68px; border-radius:50%; display:grid; place-items:center; margin:0 auto 20px; color:#fff; background:linear-gradient(135deg,var(--und-green),var(--und-cyan)); font-size:34px; }

@media (max-width:900px) {
  .aifg-und .und-fields { grid-template-columns:1fr; }
  .aifg-und .und-field.und-full { grid-column:auto; }
}
@media (max-width:620px) {
  .aifg-und .und-wrap { width:min(calc(100% - 28px),var(--und-max)); }
  .aifg-und .und-nav { min-height:64px; }
  .aifg-und .und-header-label { display:none; }
  .aifg-und .und-gate-card { padding:30px 22px; }
  .aifg-und .und-form-area { padding:30px 22px; }
  .aifg-und .und-available-dates { grid-template-columns:1fr 1fr; }
  .aifg-und .und-progress-item span { display:none; }
  .aifg-und .und-actions { align-items:stretch; flex-direction:column; }
  .aifg-und .und-actions-right { width:100%; margin:0; }
  .aifg-und .und-actions-right .und-button { flex:1; }
  .aifg-und .und-save-note { text-align:center; }
}
