/* Shared visual theme for the event website and its portals. */
:root { --event-teal: #0f766e; --event-navy: #15324b; --event-muted: #607487; --event-border: #dce7ec; }
.event-site.bg-light, .exhibitor-site { background: radial-gradient(ellipse at top left, #e1f3ef, transparent 55%), #f3f7fa !important; color: var(--event-navy); min-height: 100vh; }
.event-site > .container { padding-top: 36px !important; padding-bottom: 36px !important; }
.event-site .card { border: 1px solid var(--event-border); border-radius: 22px; box-shadow: 0 18px 48px rgba(21,50,75,.09) !important; }
.event-site .card-header { background: #fff; border-bottom: 1px solid var(--event-border); border-radius: 21px 21px 0 0; padding: 0; overflow: hidden; }
.event-site .card-header img { display: block; max-width: 100%; height: auto; margin: 0 auto; border-radius: 21px 21px 0 0; }
.event-site .page_title { color: var(--event-navy); font-weight: 700; }
.event-site .event-footer { background: #f7fafb; border-top: 1px solid var(--event-border); border-radius: 0 0 21px 21px; padding: 16px 20px; }
.event-site .footerText { margin: 0; font-size: 13px; }
.event-site .event-footer a { color: var(--event-muted); }
.event-site .event-footer a:hover { color: var(--event-teal); text-decoration: underline; }
.home-registration { padding: 36px 30px 40px; }
.home-eyebrow { display: block; color: var(--event-teal); font-size: 11px; font-weight: 700; letter-spacing: .18em; text-align: center; }
.home-registration .page_title { font-size: 30px; margin: 10px 0 12px; letter-spacing: -.03em; }
.home-intro { color: var(--event-muted); text-align: center; font-size: 15px; line-height: 1.65; margin-bottom: 28px; }
.home-actions { display: grid; gap: 14px; }
.home-action { display: flex; align-items: center; gap: 14px; padding: 20px 18px; border-radius: 14px; text-align: left; white-space: normal; transition: background-color .18s, box-shadow .18s, transform .18s; }
.home-action-primary { background: var(--event-teal); border: 1px solid var(--event-teal); color: white; box-shadow: 0 7px 16px rgba(15,118,110,.16); }
.home-action-primary:hover, .home-action-primary:active { background: #0b5c56; border-color: #0b5c56; color: white; }
.home-action-secondary { background: #edf4f8; border: 1px solid #cedee8; color: var(--event-navy); }
.home-action-secondary:hover, .home-action-secondary:active { background: #dfeaf2; border-color: #b7ccd9; color: var(--event-navy); }
.home-action:hover { transform: translateY(-2px); }
.home-action strong { display: block; font-size: 16px; font-weight: 650; }
.home-action small { display: block; font-size: 12px; margin-top: 4px; line-height: 1.5; }
.home-action-primary small { color: #e1f4ef; }
.home-action-secondary small { color: #536b7e; }
.home-action-icon { display: grid; place-items: center; width: 36px; height: 36px; flex-shrink: 0; border-radius: 10px; background: rgba(255,255,255,.16); font-size: 23px; }
.home-action-secondary .home-action-icon { background: #d5e5ed; }
.home-action-arrow { margin-left: auto; font-size: 22px; }
.event-site a:focus-visible, .exhibitor-site a:focus-visible, .admin-site a:focus-visible, .admin-site button:focus-visible { outline: 3px solid #0891b2; outline-offset: 4px; }
.exhibitor-site { padding: 24px 16px; }
.exhibitor-site > .card { width: 400px; max-width: 100%; border: 1px solid var(--event-border); box-shadow: 0 18px 48px rgba(21,50,75,.09) !important; }
.exhibitor-brand { max-width: 100%; height: auto; padding-bottom: 20px; border-bottom: 1px solid var(--event-border); }
.exhibitor-footer { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--event-border); color: var(--event-muted); font-size: 12px; text-align: center; }
.admin-site .navbar-custom { background: var(--event-navy); box-shadow: 0 3px 14px rgba(21,50,75,.12); }
.admin-site .navbar-custom .button-menu-mobile { color: #fff; background: transparent; }
.admin-site .topbar-left { background: #fff; border-bottom: 3px solid var(--event-teal); }
.admin-site .event-admin-footer { background: #f3f7fa; color: var(--event-muted); border-top: 1px solid var(--event-border); font-size: 13px; }
@media (max-width: 575px) { .event-site > .container { padding-top: 20px !important; padding-bottom: 20px !important; } .home-registration { padding: 28px 20px; } .home-action { gap: 10px; padding: 18px 14px; } .home-action strong { font-size: 15px; } }
@media (prefers-reduced-motion: reduce) { .home-action { transition: none; } .home-action:hover { transform: none; } }

/* Homepage solar atmosphere: lightweight vector artwork, no external assets. */
.event-site:has(.solar-scene) { background: radial-gradient(ellipse at 12% 12%, #fff1cb, transparent 42%), radial-gradient(ellipse at 90% 70%, #d5f0e7, transparent 48%), #f3f7fa !important; isolation: isolate; }
.solar-scene { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; color: #0f766e; }
.solar-sun { position: absolute; top: 6%; left: 6%; width: clamp(110px, 16vw, 220px); color: #dba52d; opacity: .45; animation: solar-orbit 90s linear infinite; }
.solar-float { position: absolute; width: 72px; opacity: .2; animation: solar-drift 9s ease-in-out infinite; }
.solar-float-panel { left: 13%; top: 53%; width: 110px; }
.solar-float-bolt { right: 12%; top: 19%; color: #d39a19; animation-delay: -3s; width: 55px; }
.solar-float-leaf { right: 9%; top: 60%; animation-delay: -6s; }
.solar-landscape { position: absolute; bottom: 0; left: 0; width: 100%; height: 240px; opacity: .14; }
.solar-spark { position: absolute; width: 6px; height: 6px; background: #d8a735; border-radius: 50%; box-shadow: 0 0 18px #ebc768; opacity: .45; animation: solar-drift 7s ease-in-out infinite; }
.solar-spark-one { left: 24%; top: 30%; }
.solar-spark-two { right: 23%; top: 48%; animation-delay: -2s; }
.solar-spark-three { left: 8%; top: 79%; animation-delay: -4s; }
.home-registration { position: relative; isolation: isolate; background: linear-gradient(135deg, rgba(255,247,222,.5), transparent 60%); }
.home-registration::before { content: ''; position: absolute; z-index: -1; top: 28px; right: 16px; width: 140px; height: 140px; border: 1px solid rgba(211,154,25,.09); border-radius: 50%; background: repeating-conic-gradient(from 0deg, rgba(211,154,25,.045) 0deg 3deg, transparent 3deg 30deg); pointer-events: none; }
.solar-status-dot { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: #dca629; box-shadow: 0 0 0 4px rgba(220,166,41,.12); vertical-align: 1px; }
@keyframes solar-drift { 0%, 100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-18px) rotate(5deg); } }
@keyframes solar-orbit { to { transform: rotate(360deg); } }
@media (max-width: 575px) { .solar-sun { top: 0; left: -35px; opacity: .25; } .solar-float-panel { left: -30px; top: 65%; width: 85px; } .solar-float-bolt { right: 0; top: 8%; width: 40px; } .solar-float-leaf { right: -15px; top: 76%; width: 55px; } .solar-landscape { height: 150px; } }
@media (prefers-reduced-motion: reduce) { .solar-sun, .solar-float, .solar-spark { animation: none; } }

/* Compact action labels for the predominantly mobile audience. */
@media (max-width: 575px) {
  .home-registration { padding-right: 16px; padding-left: 16px; }
  .home-action { gap: 8px; padding: 18px 12px; min-height: 68px; }
  .home-action > span:nth-child(2) { min-width: 0; }
  .home-action strong { font-size: clamp(12px, 3.6vw, 16px); white-space: nowrap; }
  .home-action small { display: none; }
  .home-action-icon { width: 28px; height: 28px; font-size: 20px; border-radius: 8px; }
  .home-action-arrow { flex-shrink: 0; font-size: 18px; }
}

/* Simple, readable homepage buttons on every screen size. */
.home-actions .home-action {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 44px;
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 600;
  text-align: center;
  white-space: nowrap;
  box-shadow: none;
}
.home-actions .home-action:hover { transform: none; }
@media (max-width: 575px) {
  .home-actions .home-action { font-size: clamp(13px, 4vw, 16px); }
}

/* Use the same primary button palette as the other event pages. */
.home-actions .home-action.btn-primary {
  border: none;
  color: #fff;
}
.home-actions .home-action:focus-visible {
  outline: 3px solid var(--primary);
  outline-offset: 4px;
}
