/* ==========================================
   SWSM 2026 — Premium Motion System
   Loaded by mu-plugin: swsm-motion.php
   Edit here only. Layout CSS lives in
   Customizer → Additional CSS.
   ========================================== */

:root{
  --swsm-ease: cubic-bezier(.22,1,.36,1);
  --swsm-ease-out: cubic-bezier(.33,1,.68,1);
  --swsm-fast: 240ms;
  --swsm-base: 320ms;
  --swsm-slow: 620ms;
  --swsm-accent: #2FAAE1;
  --swsm-accent-strong: #5FC4F0;
  --swsm-ink: #062133;
}

/* ------------------------------------------
   1. Scroll reveal (JS-gated so no-JS shows all)
   ------------------------------------------ */
html.swsm-js .swsm-reveal{
  opacity:0;
  transform: translate3d(0, var(--swsm-rv, 24px), 0);
  transition: opacity var(--swsm-slow) var(--swsm-ease) var(--swsm-d, 0ms),
              transform var(--swsm-slow) var(--swsm-ease) var(--swsm-d, 0ms);
  will-change: opacity, transform;
}
html.swsm-js .swsm-reveal.is-in{
  opacity:1;
  transform:none;
  will-change:auto;
}

/* ------------------------------------------
   2. Scroll progress indicator
   ------------------------------------------ */
.swsm-progress{
  position:fixed; inset:0 0 auto 0; height:2px; z-index:100;
  background:linear-gradient(90deg,var(--swsm-accent),var(--swsm-accent-strong));
  transform:scaleX(0); transform-origin:0 50%;
  will-change:transform; pointer-events:none;
}

/* ------------------------------------------
   3. Header — scroll state + load entrance
   ------------------------------------------ */
.swsm-header{
  transition: background-color var(--swsm-base) var(--swsm-ease),
              box-shadow var(--swsm-base) var(--swsm-ease);
}
body.swsm-scrolled .swsm-header{
  background-image:none !important;
  background-color:rgba(6,33,51,.94) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.08), 0 14px 34px -18px rgba(0,0,0,.75);
}
.swsm-header .elementor-site-logo img{
  transition: transform var(--swsm-base) var(--swsm-ease);
  transform-origin:left center;
}
body.swsm-scrolled .swsm-header .elementor-site-logo img{ transform:scale(.92); }

html.swsm-js .swsm-header .elementor-widget{
  opacity:0; transform:translate3d(0,-8px,0);
  animation: swsm-hdr-in 520ms var(--swsm-ease) forwards;
}
html.swsm-js .swsm-header .elementor-widget:nth-child(1){ animation-delay:40ms; }
html.swsm-js .swsm-header .elementor-widget:nth-child(2){ animation-delay:120ms; }
html.swsm-js .swsm-header .elementor-widget:nth-child(3){ animation-delay:180ms; }
html.swsm-js .swsm-header .elementor-widget:nth-child(4){ animation-delay:240ms; }
@keyframes swsm-hdr-in{ to{ opacity:1; transform:none; } }

/* ------------------------------------------
   4. Navigation — animated underline
   ------------------------------------------ */
.swsm-nav-desktop .elementor-item{ position:relative; }
.swsm-nav-desktop .elementor-item::after{
  content:""; position:absolute; left:0; right:auto; bottom:2px;
  height:1px; width:0; background:var(--swsm-accent);
  transition: width 300ms var(--swsm-ease);
}
.swsm-nav-desktop .elementor-item:hover::after,
.swsm-nav-desktop .elementor-item:focus-visible::after,
.swsm-nav-desktop .current-menu-item > .elementor-item::after,
.swsm-nav-desktop .current-menu-ancestor > .elementor-item::after{ width:100%; }
.swsm-nav-desktop .current-menu-item > .elementor-item{ color:#fff; }
.swsm-nav-desktop .elementor-item{ transition: color 260ms var(--swsm-ease); }

/* mobile overlay items: touch-friendly tint instead of underline */
.swsm-nav-mobile .elementor-item{ transition: background-color 220ms var(--swsm-ease), padding-left 220ms var(--swsm-ease); }
.swsm-nav-mobile .elementor-item:active{ background:rgba(255,255,255,.06); }

/* ------------------------------------------
   5. Buttons
   ------------------------------------------ */
.elementor-button{
  position:relative; overflow:hidden; isolation:isolate;
  transition: transform var(--swsm-base) var(--swsm-ease),
              box-shadow var(--swsm-base) var(--swsm-ease),
              background-color var(--swsm-base) var(--swsm-ease),
              border-color var(--swsm-base) var(--swsm-ease),
              color var(--swsm-base) var(--swsm-ease);
}
.elementor-button::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(120deg, rgba(255,255,255,.22), rgba(255,255,255,0) 60%);
  transform:translateX(-100%);
  transition: transform 620ms var(--swsm-ease);
}
.elementor-button:hover::before{ transform:translateX(0); }
.elementor-button:hover{
  transform:translate3d(0,-2px,0);
  box-shadow:0 12px 26px -14px rgba(47,170,225,.85);
}
.elementor-button:active{ transform:translate3d(0,0,0); box-shadow:none; }
.elementor-button:focus-visible{
  outline:2px solid var(--swsm-accent-strong); outline-offset:3px;
}
.swsm-arrow{
  display:inline-block;
  transition: transform var(--swsm-base) var(--swsm-ease);
}
.elementor-button:hover .swsm-arrow{ transform:translateX(6px); }

/* ------------------------------------------
   6. Cards
   ------------------------------------------ */
.swsm-card{
  transition: transform var(--swsm-base) var(--swsm-ease),
              border-color var(--swsm-base) var(--swsm-ease),
              background-color var(--swsm-base) var(--swsm-ease),
              box-shadow var(--swsm-base) var(--swsm-ease);
}
.swsm-card .elementor-widget-image,
.swsm-card .elementor-widget-image .elementor-widget-container{ overflow:hidden; }
.swsm-card img{ transition: transform 620ms var(--swsm-ease), filter 420ms var(--swsm-ease); }

@media (hover:hover) and (pointer:fine){
  .swsm-card:hover{
    transform:translate3d(0,-6px,0);
    border-color:rgba(47,170,225,.55) !important;
    box-shadow:0 22px 44px -26px rgba(0,0,0,.85);
  }
  .swsm-card--speaker:hover img{ transform:scale(1.05); }
  .swsm-card--partner:hover img{ transform:scale(1.06); filter:none; }
  .swsm-card--theme:hover{ background-color:rgba(255,255,255,.035) !important; }
  .swsm-card--date:hover .elementor-widget-divider .elementor-divider-separator{
    border-top-color:var(--swsm-accent) !important;
  }
}
/* theme ghost numeral drifts up a touch on hover */
.swsm-card--theme .elementor-widget-heading:first-child{
  transition: transform 520ms var(--swsm-ease), color 320ms var(--swsm-ease);
}
@media (hover:hover) and (pointer:fine){
  .swsm-card--theme:hover .elementor-widget-heading:first-child{
    transform:translateY(-6px);
  }
}
/* key-date accent rule grows */
.swsm-card--date .elementor-widget-divider .elementor-divider-separator{
  transition: border-top-color 320ms var(--swsm-ease);
}

/* ------------------------------------------
   7. Standalone images (non-card)
   ------------------------------------------ */
.swsm-venue-photo, .swsm-venue-photo .elementor-widget-container{ overflow:hidden; }
.swsm-venue-photo img{ transition: transform 720ms var(--swsm-ease); }
@media (hover:hover) and (pointer:fine){
  .swsm-venue-photo:hover img{ transform:scale(1.04); }
}
.swsm-parallax img{ will-change:transform; }

/* ------------------------------------------
   8. Icon lists / pills / link lists
   ------------------------------------------ */
.swsm-pills .elementor-icon-list-item{
  transition: background-color 260ms var(--swsm-ease),
              border-color 260ms var(--swsm-ease),
              transform 260ms var(--swsm-ease);
}
@media (hover:hover) and (pointer:fine){
  .swsm-pills .elementor-icon-list-item:hover{
    transform:translateY(-2px);
    border-color:rgba(47,170,225,.6) !important;
    background-color:rgba(47,170,225,.10) !important;
  }
}
.elementor-icon-list-item .elementor-icon-list-icon{
  transition: transform 260ms var(--swsm-ease);
}
@media (hover:hover) and (pointer:fine){
  .elementor-icon-list-item:hover .elementor-icon-list-icon{ transform:translateX(3px); }
}
.swsm-linklist .elementor-icon-list-item a{
  display:inline-block;
  transition: color 260ms var(--swsm-ease), transform 260ms var(--swsm-ease);
}
@media (hover:hover) and (pointer:fine){
  .swsm-linklist .elementor-icon-list-item a:hover{
    color:var(--swsm-accent-strong) !important;
    transform:translateX(4px);
  }
}
.elementor-widget-text-editor a{ transition: color 240ms var(--swsm-ease); }

/* ------------------------------------------
   9. Footer
   ------------------------------------------ */
.swsm-footer .elementor-nav-menu a,
.swsm-footer .elementor-icon-list-item a{
  transition: color 260ms var(--swsm-ease), transform 260ms var(--swsm-ease);
}
@media (hover:hover) and (pointer:fine){
  .swsm-footer .elementor-nav-menu a:hover,
  .swsm-footer .elementor-icon-list-item a:hover{
    color:var(--swsm-accent-strong) !important;
    transform:translateY(-2px);
  }
}
.swsm-footer .elementor-social-icon{
  transition: transform 280ms var(--swsm-ease), background-color 280ms var(--swsm-ease);
}
.swsm-footer .elementor-social-icon:hover{ transform:translateY(-3px); }

/* ------------------------------------------
   10. Forms (Solace Form) — focus states only
   ------------------------------------------ */
.solaceform-form input,
.solaceform-form textarea,
.solaceform-form select{
  transition: border-color 260ms var(--swsm-ease),
              box-shadow 260ms var(--swsm-ease),
              background-color 260ms var(--swsm-ease);
}
.solaceform-form input:hover,
.solaceform-form textarea:hover,
.solaceform-form select:hover{ border-color:rgba(255,255,255,.34); }
.solaceform-form input:focus,
.solaceform-form textarea:focus,
.solaceform-form select:focus{
  outline:none;
  border-color:var(--swsm-accent) !important;
  box-shadow:0 0 0 3px rgba(47,170,225,.22);
}
.solaceform-form label{ transition: color 220ms var(--swsm-ease); }
.solaceform-field-column:focus-within label{ color:var(--swsm-accent-strong); }
.solaceform-form button,
.solaceform-form input[type="submit"]{
  transition: transform var(--swsm-base) var(--swsm-ease),
              box-shadow var(--swsm-base) var(--swsm-ease),
              background-color var(--swsm-base) var(--swsm-ease);
}
.solaceform-form button:hover,
.solaceform-form input[type="submit"]:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 26px -14px rgba(47,170,225,.85);
}

/* ------------------------------------------
   11. Rails (Invited speakers / Organizers)
   ------------------------------------------ */
.swsm-rail{
  flex-wrap:nowrap !important;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x proximity;
  scroll-behavior:smooth;
  scrollbar-width:none;
  -ms-overflow-style:none;
  -webkit-overflow-scrolling:touch;
  /* room for the card lift + shadow, which overflow-y:hidden would clip */
  padding-top:12px;
  margin-top:-12px;
  padding-bottom:16px;
  scroll-padding-left:0;
}
.swsm-rail::-webkit-scrollbar{ display:none; }
.swsm-rail.is-grabbing{ scroll-behavior:auto; cursor:grabbing; }
.swsm-rail.is-grabbing *{ pointer-events:none; }
.swsm-rail > .e-con{
  flex:0 0 auto !important;
  scroll-snap-align:start;
}
.swsm-rail--speakers > .e-con{ width:288px !important; }
.swsm-rail--partners > .e-con{ width:212px !important; }

.swsm-rail::after{
  content:""; flex:0 0 1px;
}

/* edge fade hinting more content (no DOM wrapper needed) */
.swsm-rail.has-next{
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 72px),transparent);
          mask-image:linear-gradient(90deg,#000 calc(100% - 72px),transparent);
}
.swsm-rail.has-prev.has-next{
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 48px,#000 calc(100% - 72px),transparent);
          mask-image:linear-gradient(90deg,transparent,#000 48px,#000 calc(100% - 72px),transparent);
}
.swsm-rail.has-prev:not(.has-next){
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 48px);
          mask-image:linear-gradient(90deg,transparent,#000 48px);
}

.swsm-rail-nav{
  display:flex; align-items:center; gap:14px;
  margin-top:22px;
}
.swsm-rail-track{
  position:relative; flex:1 1 auto; height:2px;
  background:rgba(255,255,255,.14); border-radius:2px; overflow:hidden;
}
.swsm-rail-thumb{
  position:absolute; inset:0 auto 0 0; width:30%;
  background:var(--swsm-accent); border-radius:2px;
  transform-origin:0 50%;
  transition: transform 220ms var(--swsm-ease-out), width 220ms var(--swsm-ease-out);
}
.swsm-rail-btn{
  flex:0 0 auto;
  width:44px; height:44px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.22);
  color:#F1F6F9; cursor:pointer; padding:0; line-height:0;
  transition: transform var(--swsm-base) var(--swsm-ease),
              background-color var(--swsm-base) var(--swsm-ease),
              border-color var(--swsm-base) var(--swsm-ease),
              opacity var(--swsm-base) var(--swsm-ease);
}
.swsm-rail-btn svg{ width:16px; height:16px; display:block; }
.swsm-rail-btn:hover:not(:disabled){
  background:rgba(47,170,225,.16);
  border-color:var(--swsm-accent);
  transform:translateY(-2px);
}
.swsm-rail-btn:active:not(:disabled){ transform:translateY(0); }
.swsm-rail-btn:focus-visible{ outline:2px solid var(--swsm-accent-strong); outline-offset:3px; }
.swsm-rail-btn:disabled{ opacity:.32; cursor:default; }

@media (max-width:1024px){
  .swsm-rail--speakers > .e-con{ width:236px !important; }
  .swsm-rail--partners > .e-con{ width:196px !important; }
}
@media (max-width:767px){
  .swsm-rail--speakers > .e-con{ width:74vw !important; max-width:300px; }
  .swsm-rail--partners > .e-con{ width:52vw !important; max-width:220px; }
  .swsm-rail-nav{ margin-top:18px; }
}

/* ------------------------------------------
   12. Mobile — shorter distances, no hover-only
   ------------------------------------------ */
@media (max-width:767px){
  html.swsm-js .swsm-reveal{ --swsm-rv:16px; transition-duration:420ms; }
  .elementor-button:hover{ transform:none; box-shadow:none; }
}

/* ------------------------------------------
   13. Accessibility — reduced motion
   ------------------------------------------ */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  html.swsm-js .swsm-reveal{ opacity:1 !important; transform:none !important; }
  html.swsm-js .swsm-header .elementor-widget{ opacity:1 !important; transform:none !important; }
  .swsm-progress{ display:none; }
  .swsm-rail{ scroll-behavior:auto; }
}

/* ------------------------------------------
   14. Mobile navigation
   Solace's own slide-in sidebar is suppressed
   below 1025px and replaced by a panel this
   script appends to <body>, so it is never
   trapped by the header's backdrop-filter
   containing block.
   ------------------------------------------ */
@media (max-width:1024px){

  .swsm-nav-mobile nav.solace-elementor-nav-menu--dropdown{ display:none !important; }
  .swsm-nav-mobile{ width:auto !important; max-width:none !important; flex:0 0 auto !important; }
  .swsm-nav-mobile > .elementor-widget-container{ display:flex; justify-content:flex-end; }

  .swsm-header .solace-elementor-menu-toggle{
    position:static !important;
    inset:auto !important;
    float:none !important;
    width:44px; height:44px; margin:0 !important; padding:0 !important;
    display:flex !important; align-items:center; justify-content:center;
    border-radius:999px !important; cursor:pointer;
    border:1px solid rgba(255,255,255,.16) !important;
    transition:background-color 240ms var(--swsm-ease), border-color 240ms var(--swsm-ease);
  }
  .swsm-header .solace-elementor-menu-toggle:hover{ background:rgba(255,255,255,.09); }
  .swsm-header .solace-elementor-menu-toggle.swsm-open{
    background:rgba(47,170,225,.16);
    border-color:var(--swsm-accent) !important;
  }
  .swsm-header .solace-elementor-menu-toggle svg{ width:24px; height:24px; fill:#F1F6F9; }
  .swsm-header .solace-elementor-menu-toggle .elementor-menu-toggle__icon--close{ display:none; }
  .swsm-header .solace-elementor-menu-toggle.swsm-open .elementor-menu-toggle__icon--open{ display:none; }
  .swsm-header .solace-elementor-menu-toggle.swsm-open .elementor-menu-toggle__icon--close{ display:block; }

  body.swsm-menu-open{ overflow:hidden; }
  body.swsm-menu-open .swsm-header{
    backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
    background-image:none !important;
    background-color:#062133 !important;
  }
}
@media (min-width:1025px){ .swsm-mob{ display:none !important; } }

.swsm-mob{ position:fixed; inset:0; z-index:98; }
.swsm-mob[hidden]{ display:none !important; }
.swsm-mob__scrim{
  position:absolute; inset:0;
  background:rgba(4,20,31,.5);
  opacity:0; transition:opacity 300ms var(--swsm-ease);
}
.swsm-mob__panel{
  position:absolute; top:var(--swsm-header-h,72px); left:0; right:0; bottom:0;
  overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
  padding:14px 22px 40px;
  background:
    radial-gradient(130% 62% at 100% 0%, rgba(47,170,225,.20), rgba(6,33,51,0) 62%),
    linear-gradient(180deg,#0A2A40 0%, #062133 54%);
  border-top:1px solid rgba(255,255,255,.10);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.9);
  opacity:0; transform:translate3d(0,-12px,0);
  transition:opacity 260ms var(--swsm-ease), transform 420ms var(--swsm-ease);
}
.swsm-mob.is-open .swsm-mob__scrim{ opacity:1; }
.swsm-mob.is-open .swsm-mob__panel{ opacity:1; transform:none; }

.swsm-mob__list,
.swsm-mob__list li,
.swsm-mob__sub,
.swsm-mob__sub li{
  list-style:none !important;
  list-style-type:none !important;
}
.swsm-mob__list li::marker,
.swsm-mob__sub li::marker{ content:"" !important; }
.swsm-mob__list > li::before,
.swsm-mob__sub li::before{ content:none !important; display:none !important; }
.swsm-mob__list{ margin:0 !important; padding:0 !important; }
.swsm-mob__list > li{ border-bottom:1px solid rgba(255,255,255,.08); }
.swsm-mob__list > li:last-child{ border-bottom:0; }
.swsm-mob__row{ display:flex; align-items:center; gap:6px; }
.swsm-mob__row > a{
  flex:1 1 auto;
  position:relative;
  display:block; text-decoration:none;
  font-family:"Zilla Slab", Georgia, serif;
  font-size:21px; font-weight:600; line-height:1.25; letter-spacing:.2px;
  color:#F1F6F9;
  padding:17px 6px 17px 14px; min-height:58px;
  transition:color 240ms var(--swsm-ease), padding-left 300ms var(--swsm-ease);
}
.swsm-mob__row > a::before{
  content:""; position:absolute; left:0; top:50%;
  width:2px; height:0; background:var(--swsm-accent);
  transform:translateY(-50%);
  transition:height 280ms var(--swsm-ease);
}
.swsm-mob__row > a:hover,
.swsm-mob__row > a:focus-visible,
.swsm-mob__row > a.is-current{ color:var(--swsm-accent-strong); padding-left:22px; }
.swsm-mob__row > a:hover::before,
.swsm-mob__row > a:focus-visible::before,
.swsm-mob__row > a.is-current::before{ height:58%; }

.swsm-mob__toggle{
  flex:0 0 auto;
  width:40px; height:40px; padding:0;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px; color:#F1F6F9; cursor:pointer;
  transition:transform 320ms var(--swsm-ease),
             background-color 260ms var(--swsm-ease),
             border-color 260ms var(--swsm-ease);
}
.swsm-mob__toggle svg{ width:14px; height:14px; display:block; }
.swsm-mob__toggle:hover{ border-color:var(--swsm-accent); background:rgba(47,170,225,.14); }
.swsm-mob__toggle[aria-expanded="true"]{
  transform:rotate(180deg);
  border-color:var(--swsm-accent);
  background:rgba(47,170,225,.16);
}

.swsm-mob__sub{
  list-style:none; margin:0;
  padding:0 0 0 14px;
  border-left:1px solid rgba(255,255,255,.12);
  margin-left:2px;
  max-height:0; overflow:hidden;
  transition:max-height 400ms var(--swsm-ease), opacity 260ms var(--swsm-ease);
  opacity:0;
}
.swsm-mob__list > li.is-expanded > .swsm-mob__sub{ max-height:460px; opacity:1; padding-bottom:10px; }
.swsm-mob__sub a{
  display:block; text-decoration:none;
  font-family:"Barlow", system-ui, sans-serif;
  font-size:15px; font-weight:400; color:#9DB4C2;
  padding:12px 10px; min-height:46px;
  transition:color 240ms var(--swsm-ease), transform 260ms var(--swsm-ease);
}
.swsm-mob__sub a:hover,
.swsm-mob__sub a:focus-visible,
.swsm-mob__sub a.is-current{ color:var(--swsm-accent-strong); transform:translateX(4px); }

/* staggered row entrance */
.swsm-mob.is-open .swsm-mob__list > li{
  opacity:0; animation:swsm-mrow 460ms var(--swsm-ease) forwards;
}
.swsm-mob.is-open .swsm-mob__list > li:nth-child(1){ animation-delay:70ms; }
.swsm-mob.is-open .swsm-mob__list > li:nth-child(2){ animation-delay:120ms; }
.swsm-mob.is-open .swsm-mob__list > li:nth-child(3){ animation-delay:170ms; }
.swsm-mob.is-open .swsm-mob__list > li:nth-child(4){ animation-delay:220ms; }
.swsm-mob.is-open .swsm-mob__list > li:nth-child(5){ animation-delay:270ms; }
.swsm-mob.is-open .swsm-mob__list > li:nth-child(6){ animation-delay:320ms; }
.swsm-mob.is-open .swsm-mob__list > li:nth-child(n+7){ animation-delay:370ms; }
@keyframes swsm-mrow{ from{ opacity:0; transform:translate3d(0,12px,0);} to{ opacity:1; transform:none; } }

@media (max-width:480px){
  .swsm-mob__panel{ padding:10px 18px 36px; }
  .swsm-mob__row > a{ font-size:19px; padding:16px 6px 16px 14px; min-height:56px; }
}

@media (prefers-reduced-motion: reduce){
  .swsm-mob.is-open .swsm-mob__list > li{ opacity:1; animation:none; }
  .swsm-mob__panel, .swsm-mob__scrim{ transition:none; }
}
/* ------------------------------------------
   15. Hero date strip
   Held in CSS rather than Elementor settings so a
   manual save cannot revert it.
   ------------------------------------------ */
/* Source: a wrapping flex list of content-width items, 24px row / 40px
   column gap - not equal thirds. Wrapping means it can never overflow. */
.swsm-hero-dates{
  /* the builder set flex_direction_mobile:column on every row; the hero
     date list must stay a wrapping row at every width */
  flex-direction:row !important;
  flex-wrap:wrap !important;
  align-items:flex-start !important;
  gap:24px 40px !important;
}
.swsm-hero-dates > .swsm-hero-date{
  /* Elementor drives container width through --width, so neutralise both */
  --width:auto !important;
  flex:0 0 auto !important;
  width:auto !important;
  max-width:none !important;
  min-width:0 !important;
}
@media (max-width:767px){
  .swsm-hero-dates{ gap:20px 32px !important; }
}

/* ------------------------------------------
   16. Theme cards - giant ghost numeral
   Source: home page theme-card carries the numeral
   as an absolutely positioned 220px glyph at
   rgba(255,255,255,0.05), clipped by the card.
   The Themes PAGE keeps the small accent numeral,
   so this is scoped to the front page.
   Held in CSS so an Elementor save cannot revert it.
   ------------------------------------------ */
.swsm-card--theme{ position:relative; overflow:hidden; }

body.home .swsm-card--theme{ gap:40px !important; }

.swsm-theme-num{
  position:absolute !important;
  left:12px; bottom:-46px;
  z-index:0;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  pointer-events:none;
}
.swsm-theme-num .elementor-heading-title{
  font-family:"Zilla Slab", Georgia, serif !important;
  font-size:220px !important;
  line-height:1 !important;
  font-weight:700 !important;
  color:rgba(255,255,255,0.05) !important;
  white-space:nowrap;
}
/* keep the real content above the glyph */
.swsm-card--theme .elementor-widget-heading:not(.swsm-theme-num),
.swsm-card--theme .elementor-widget-text-editor,
.swsm-card--theme .elementor-widget-icon-list{
  position:relative;
  z-index:1;
}
/* NB: never give the wrapping column a z-index - that would create a
   stacking context and trap the numeral above its own sibling text. */
.swsm-card--theme .elementor-widget-heading:not(.swsm-theme-num) .elementor-heading-title{
  max-width:24ch;
}
@media (hover:hover) and (pointer:fine){
  .swsm-card--theme:hover{ background-color:#0A2A40 !important; }
  .swsm-card--theme:hover .swsm-theme-num .elementor-heading-title{
    color:rgba(255,255,255,0.08) !important;
    transition:color 420ms var(--swsm-ease);
  }
}
@media (max-width:1024px){
  .swsm-theme-num .elementor-heading-title{ font-size:190px !important; }
}
@media (max-width:767px){
  .swsm-theme-num .elementor-heading-title{ font-size:150px !important; }
  .swsm-theme-num{ bottom:-32px; }
  body.home .swsm-card--theme{ gap:28px !important; }
}

/* ------------------------------------------
   17. Key-date cards - timeline dot
   Source: the rule either side of a 20px circle,
   filled accent on the active milestone.
   ------------------------------------------ */
.swsm-card--date .elementor-widget-divider .elementor-divider{
  position:relative;
}
.swsm-card--date .elementor-widget-divider .elementor-divider::after{
  content:"";
  position:absolute; left:50%; top:50%;
  transform:translate(-50%,-50%);
  width:20px; height:20px; border-radius:999px;
  border:2px solid var(--swsm-date-dot, rgba(255,255,255,0.28));
  background:var(--swsm-date-fill, #13324A);
  transition:transform 320ms var(--swsm-ease), background-color 320ms var(--swsm-ease);
}
@media (hover:hover) and (pointer:fine){
  .swsm-card--date:hover .elementor-widget-divider .elementor-divider::after{
    transform:translate(-50%,-50%) scale(1.15);
  }
}

/* never suppress keyboard focus */
a:focus-visible, button:focus-visible,
.elementor-item:focus-visible{
  outline:2px solid var(--swsm-accent-strong);
  outline-offset:3px;
}

/* ------------------------------------------
   18. Header refinement (desktop only, >=1025px)
   Mobile/tablet header is deliberately untouched.
   ------------------------------------------ */
.swsm-topbar{display:none}
@media (min-width:1025px){
  .swsm-header > .e-con-inner > .elementor-widget-html,
  .swsm-header > .elementor-widget-html{width:100% !important;--width:100% !important}
  .swsm-topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;
    max-width:1240px;margin:0 auto;padding:0 24px;height:38px;max-height:38px;overflow:hidden;
    border-bottom:1px solid rgba(255,255,255,0.10);
    font-family:"Barlow",system-ui,sans-serif;font-size:11.5px;letter-spacing:.11em;text-transform:uppercase;
    color:#9DB4C2;opacity:1;
    transition:max-height 380ms var(--swsm-ease),opacity 240ms var(--swsm-ease),border-color 240ms var(--swsm-ease)}
  .swsm-topbar__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
  .swsm-topbar__meta{display:inline-flex;align-items:center;gap:12px;flex:0 0 auto;white-space:nowrap}
  .swsm-topbar__date{color:#F1F6F9;font-weight:600}
  .swsm-topbar__sep{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,0.32)}
  .swsm-topbar__cta{display:inline-flex;align-items:center;gap:6px;margin-left:6px;padding:4px 13px;
    border:1px solid rgba(47,170,225,0.55);border-radius:999px;color:#5FC4F0;font-weight:700;
    text-decoration:none;transition:background-color 240ms var(--swsm-ease),color 240ms var(--swsm-ease),border-color 240ms var(--swsm-ease)}
  .swsm-topbar__cta:hover,.swsm-topbar__cta:focus-visible{background:#2FAAE1;border-color:#2FAAE1;color:#04202F}
  .swsm-topbar__cta span{transition:transform 240ms var(--swsm-ease)}
  .swsm-topbar__cta:hover span{transform:translateX(3px)}
  body.swsm-scrolled .swsm-topbar{max-height:0;opacity:0;border-bottom-color:transparent}
  /* logos: one shared optical line instead of 35px vs 100px */
  .swsm-header .elementor-widget-solace-extra-site-logo{width:auto !important;--width:auto !important}
  .swsm-header .elementor-site-logo img{height:34px !important;width:auto !important;max-width:none !important;
    transform:none !important;transition:height 320ms var(--swsm-ease)}
  .swsm-header .elementor-widget-image{position:relative;width:auto !important;--width:auto !important;padding-left:28px}
  .swsm-header .elementor-widget-image::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
    width:1px;height:34px;background:rgba(255,255,255,0.16)}
  .swsm-header .elementor-widget-image img{height:58px !important;width:auto !important;max-width:none !important;
    transition:height 320ms var(--swsm-ease)}
  body.swsm-scrolled .swsm-header .elementor-site-logo img{height:28px !important}
  body.swsm-scrolled .swsm-header .elementor-widget-image img{height:46px !important}
  /* navigation: roomier hit areas, centred underline */
  .swsm-nav-desktop .elementor-item{padding:10px 14px !important;letter-spacing:.015em}
  .swsm-nav-desktop .elementor-item::after{left:14px !important;right:14px !important;width:auto !important;
    height:2px;bottom:3px;border-radius:2px;transform:scaleX(0);transform-origin:center;
    transition:transform 320ms var(--swsm-ease)}
  .swsm-nav-desktop .elementor-item:hover::after,
  .swsm-nav-desktop .elementor-item:focus-visible::after,
  .swsm-nav-desktop .current-menu-item > .elementor-item::after,
  .swsm-nav-desktop .current-menu-ancestor > .elementor-item::after{width:auto !important;transform:scaleX(1)}
  .swsm-nav-desktop .elementor-item:focus-visible{outline:2px solid #5FC4F0;outline-offset:-2px;border-radius:4px}
}
@media (min-width:1025px) and (prefers-reduced-motion:reduce){.swsm-topbar,.swsm-header img,.swsm-nav-desktop .elementor-item::after{transition:none !important}}

/* ------------------------------------------
   19. Mobile menu hardening
   Below 1025px exactly one menu may be on screen: the custom .swsm-mob panel.
   Every theme dropdown is suppressed with !important so an inline style set by
   Solace's own toggle script cannot bring a second menu back, and the overlay is
   lifted above the header so nothing can paint over it.
   ------------------------------------------ */
@media (max-width:1024px){
  .swsm-header .swsm-nav-desktop{display:none !important}
  .swsm-header nav.solace-elementor-nav-menu--dropdown,
  .swsm-header nav.elementor-nav-menu--dropdown,
  .swsm-header .solace-elementor-menu-toggle + nav,
  .swsm-nav-mobile nav.solace-elementor-nav-menu--dropdown,
  .swsm-nav-desktop nav.solace-elementor-nav-menu--dropdown{display:none !important;visibility:hidden !important;opacity:0 !important;pointer-events:none !important}
  .swsm-mob{z-index:100000 !important}
  .swsm-mob__panel{z-index:1 !important}
}

/* The overlay now sits above the header, so let clicks through to the header bar
   itself and start the scrim below it: the burger / close control stays usable. */
@media (max-width:1024px){
  .swsm-mob{pointer-events:none} /* keep the header itself clickable */
  .swsm-mob__scrim{top:var(--swsm-header-h,72px);pointer-events:auto}
  .swsm-mob__panel{pointer-events:auto}
}

/* ------------------------------------------
   20. Key Milestones - timeline treatment
   Decoration + motion only; the Elementor card
   structure (number / divider / date / label)
   is left exactly as authored.
   ------------------------------------------ */
.swsm-card--date{
  --swsm-i:0;
  position:relative;
  padding:26px 16px 22px !important;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.07);
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,0) 64%),rgba(10,42,64,.45);
  isolation:isolate;
}
.swsm-card--date:nth-child(1){--swsm-i:0}
.swsm-card--date:nth-child(2){--swsm-i:1}
.swsm-card--date:nth-child(3){--swsm-i:2}
.swsm-card--date:nth-child(4){--swsm-i:3}
.swsm-card--date:nth-child(5){--swsm-i:4}
.swsm-card--date:nth-child(6){--swsm-i:5}
.swsm-card--date:nth-child(7){--swsm-i:6}
.swsm-card--date:nth-child(8){--swsm-i:7}

/* accent wash blooms from the top edge on hover */
.swsm-card--date::after{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;
  background:radial-gradient(130% 90% at 50% 0%,rgba(47,170,225,.18),rgba(47,170,225,0) 72%);
  opacity:0;transition:opacity 420ms var(--swsm-ease);pointer-events:none;
}
@media (hover:hover) and (pointer:fine){
  .swsm-card--date:hover::after{opacity:1}
}

/* step number: brushed-metal type that lifts on hover */
.swsm-card--date > .elementor-widget-heading:first-child .elementor-heading-title{
  background-image:linear-gradient(180deg,#FFFFFF 0%,#8FA9BB 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  letter-spacing:.08em;
  transition:transform 420ms var(--swsm-ease);
}
@media (hover:hover) and (pointer:fine){
  .swsm-card--date:hover > .elementor-widget-heading:first-child .elementor-heading-title{
    transform:translateY(-3px);
  }
}
/* the rule under the number becomes one segment of a long rail */
.swsm-card--date .elementor-widget-divider{
  position:relative;
  width:calc(100% + 32px) !important;
  max-width:none !important;
  margin-left:-16px;margin-right:-16px;
}
.swsm-card--date .elementor-widget-divider .elementor-divider-separator{
  border-top-width:2px !important;
}

/* draw-in: segments sweep left to right in order, dots pop after */
html.swsm-js .swsm-card--date .elementor-divider-separator{
  transform:scaleX(0);transform-origin:0 50%;
  transition:transform 680ms var(--swsm-ease) calc(var(--swsm-i) * 110ms + 120ms),
             border-top-color 320ms var(--swsm-ease);
}
html.swsm-js .swsm-card--date.is-in .elementor-divider-separator{transform:scaleX(1)}
html.swsm-js .swsm-card--date .elementor-divider::after{
  transform:translate(-50%,-50%) scale(0);
  transition:transform 520ms cubic-bezier(.34,1.56,.64,1) calc(var(--swsm-i) * 110ms + 430ms),
             background-color 320ms var(--swsm-ease),border-color 320ms var(--swsm-ease);
}
html.swsm-js .swsm-card--date.is-in .elementor-divider::after{transform:translate(-50%,-50%) scale(1)}
@media (hover:hover) and (pointer:fine){
  html.swsm-js .swsm-card--date.is-in:hover .elementor-divider::after{
    transform:translate(-50%,-50%) scale(1.18);
  }
}

/* state - milestone already passed */
.swsm-card--date.swsm-ms-past{opacity:.48}
.swsm-card--date.swsm-ms-past .elementor-divider::after{
  border-color:rgba(255,255,255,.3) !important;background:rgba(255,255,255,.3) !important;
}

/* state - the next milestone leads the row */
.swsm-card--date.swsm-ms-next{
  border-color:rgba(47,170,225,.38);
  box-shadow:0 18px 40px -28px rgba(47,170,225,.95);
}
.swsm-card--date.swsm-ms-next > .elementor-widget-heading:first-child .elementor-heading-title{
  background-image:linear-gradient(180deg,#5FC4F0 0%,#2FAAE1 100%);
}
.swsm-card--date.swsm-ms-next .elementor-divider-separator{border-top-color:var(--swsm-accent) !important}
.swsm-card--date.swsm-ms-next .elementor-divider::after{
  border-color:var(--swsm-accent) !important;background:var(--swsm-accent) !important;
  box-shadow:0 0 0 6px rgba(47,170,225,.12);
}
.swsm-card--date.swsm-ms-next .elementor-divider::before{
  content:"";position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;
  border-radius:999px;border:2px solid var(--swsm-accent);pointer-events:none;
  animation:swsm-dot-pulse 2600ms var(--swsm-ease-out) infinite;
}
@keyframes swsm-dot-pulse{
  0%{transform:scale(1);opacity:.7}
  70%,100%{transform:scale(2.7);opacity:0}
}
.swsm-card--date.swsm-ms-next::before{
  content:"UP NEXT";
  position:absolute;top:8px;left:50%;right:auto;width:auto;white-space:nowrap;transform:translateX(-50%);
  font-family:Barlow,sans-serif;font-size:9px;font-weight:600;letter-spacing:.18em;
  color:var(--swsm-accent-strong);
}
/* phone: the row becomes a proper vertical timeline with one continuous rail */
@media (max-width:767px){
  .swsm-card--date{
    display:grid !important;
    grid-template-columns:40px 1fr;
    column-gap:8px;row-gap:2px;
    align-items:center;
    padding:14px 14px 14px 0 !important;
    border:0;border-radius:0;background:none;box-shadow:none;
    text-align:left;
  }
  .swsm-card--date > .elementor-widget{width:auto !important;max-width:none !important}
  .swsm-card--date > .elementor-widget:nth-child(1){grid-column:2;grid-row:1}
  .swsm-card--date > .elementor-widget:nth-child(2){
    grid-column:1;grid-row:1 / span 3;align-self:stretch;
    width:40px !important;margin:0 !important;
  }
  .swsm-card--date > .elementor-widget:nth-child(3){grid-column:2;grid-row:2}
  .swsm-card--date > .elementor-widget:nth-child(4){grid-column:2;grid-row:3}
  .swsm-card--date .elementor-heading-title,
  .swsm-card--date .elementor-widget-text-editor{text-align:left !important}
  .swsm-card--date > .elementor-widget-heading:first-child .elementor-heading-title{
    font-size:11px !important;letter-spacing:.22em;
  }
  /* vertical rail, bridging the 24px gap between cards */
  .swsm-card--date .elementor-widget-divider .elementor-divider{height:100%}
  .swsm-card--date .elementor-widget-divider .elementor-divider-separator{display:none !important}
  .swsm-card--date .elementor-widget-divider::before{
    content:"";position:absolute;left:20px;top:-14px;bottom:-38px;width:2px;margin-left:-1px;
    background:rgba(255,255,255,.14);
  }
  .swsm-card--date:first-child .elementor-widget-divider::before{top:22px}
  .swsm-card--date:last-child .elementor-widget-divider::before{bottom:auto;height:36px}
  .swsm-card--date.swsm-ms-next{box-shadow:none}
  .swsm-card--date .elementor-divider::after{top:22px}
  .swsm-card--date.swsm-ms-next .elementor-divider::before{top:22px}
  .swsm-card--date.swsm-ms-next > .elementor-widget-heading:first-child{visibility:hidden}
  .swsm-card--date.swsm-ms-next::before{left:48px;top:16px;right:auto;width:auto;transform:none}
  html.swsm-js .swsm-card--date .elementor-widget-divider::before{
    transform:scaleY(0);transform-origin:50% 0;
    transition:transform 600ms var(--swsm-ease) calc(var(--swsm-i) * 90ms + 100ms);
  }
  html.swsm-js .swsm-card--date.is-in .elementor-widget-divider::before{transform:scaleY(1)}
}

@media (prefers-reduced-motion: reduce){
  .swsm-card--date.swsm-ms-next .elementor-divider::before{animation:none;opacity:0}
  html.swsm-js .swsm-card--date .elementor-divider-separator,
  html.swsm-js .swsm-card--date .elementor-widget-divider::before{
    transform:none !important;transition:none !important;
  }
  html.swsm-js .swsm-card--date .elementor-divider::after{
    transform:translate(-50%,-50%) !important;transition:none !important;
  }
}
/* ------------------------------------------
   21. Abstract submission guidelines
   Call for Papers page. Semantic HTML inside a
   single Elementor HTML widget; all styling here.
   ------------------------------------------ */
.swsm-guide{font-family:Barlow,sans-serif;color:#9DB4C2;display:flex;flex-direction:column;gap:56px}
.swsm-guide h2{font-family:"Zilla Slab",Georgia,serif;font-size:26px;line-height:1.28;font-weight:700;color:#F1F6F9;margin:0 0 14px;padding:0 0 8px;border-bottom:1px solid rgba(255,255,255,.14)}
.swsm-guide h3{font-family:"Zilla Slab",Georgia,serif;font-size:19px;line-height:1.3;font-weight:700;color:#F1F6F9;margin:30px 0 10px}
.swsm-guide h3:first-of-type{margin-top:22px}
.swsm-guide p{font-size:16px;line-height:1.6;margin:0 0 14px}
.swsm-guide p:last-child{margin-bottom:0}
.swsm-guide strong{color:#F1F6F9;font-weight:600}
.swsm-guide section{scroll-margin-top:96px}

/* key / value spec strip */
.swsm-specs{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px}
.swsm-specs li{background:#0A2A40;border:1px solid rgba(255,255,255,.08);border-left:2px solid #2FAAE1;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:5px}
.swsm-specs__k{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#2FAAE1;font-weight:600}
.swsm-specs__v{font-size:15px;line-height:1.45;color:#F1F6F9}

/* bullet grid + numbered steps */
.swsm-guide ul.swsm-bul{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:10px 40px}
.swsm-guide ul.swsm-bul li{position:relative;padding-left:18px;font-size:16px;line-height:1.6;color:#F1F6F9}
.swsm-guide ul.swsm-bul li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:999px;background:#2FAAE1}
.swsm-guide ol.swsm-steps{margin:16px 0 0;padding:0;list-style:none;counter-reset:swsmstep;display:flex;flex-direction:column;gap:12px}
.swsm-guide ol.swsm-steps li{counter-increment:swsmstep;position:relative;padding-left:40px;font-size:16px;line-height:1.6}
.swsm-guide ol.swsm-steps li::before{content:counter(swsmstep,decimal-leading-zero);position:absolute;left:0;top:1px;font-family:"Zilla Slab",Georgia,serif;font-size:14px;font-weight:700;color:#2FAAE1}

/* inline note */
.swsm-guide .swsm-note{background:#0A2A40;border-left:2px solid #2FAAE1;border-radius:0 10px 10px 0;padding:14px 20px;font-size:15px;color:#F1F6F9;margin:18px 0 0}
/* thematic area cards */
.swsm-themes{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:16px;margin-top:18px}
.swsm-theme{background:#0A2A40;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:22px 20px;transition:transform 320ms var(--swsm-ease),border-color 320ms var(--swsm-ease),box-shadow 320ms var(--swsm-ease)}
.swsm-theme__n{display:block;font-family:"Zilla Slab",Georgia,serif;font-size:13px;font-weight:700;letter-spacing:.14em;color:#2FAAE1;margin-bottom:8px}
.swsm-guide .swsm-theme h3{margin:0;font-size:18px;line-height:1.35}
@media (hover:hover) and (pointer:fine){
  .swsm-theme:hover{transform:translate3d(0,-4px,0);border-color:rgba(47,170,225,.5);box-shadow:0 22px 44px -26px rgba(0,0,0,.85)}
}

/* option cards (presentation preference) */
.swsm-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:18px;list-style:none;padding:0}
.swsm-options li{background:#0A2A40;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:18px 20px;color:#F1F6F9;font-size:16px;line-height:1.45;display:flex;gap:12px;align-items:flex-start}
.swsm-options li::before{content:"";flex:0 0 auto;width:14px;height:14px;margin-top:4px;border-radius:999px;border:2px solid #2FAAE1}

/* specification table */
.swsm-spectable{width:100%;border-collapse:collapse;margin-top:18px;font-size:15px}
.swsm-spectable th,.swsm-spectable td{text-align:left;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);vertical-align:top}
.swsm-spectable thead th{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#2FAAE1;font-weight:600;border-bottom-color:rgba(47,170,225,.4)}
.swsm-spectable tbody th{color:#F1F6F9;font-weight:600;width:38%}
.swsm-spectable tbody td{color:#F1F6F9}
.swsm-spectable tbody tr:nth-child(odd){background:rgba(255,255,255,.025)}
@media (max-width:600px){
  .swsm-spectable,.swsm-spectable tbody,.swsm-spectable tr,.swsm-spectable th,.swsm-spectable td{display:block;width:auto}
  .swsm-spectable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .swsm-spectable tbody tr,.swsm-spectable tbody tr:nth-child(odd){border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:8px 6px;margin-bottom:10px;background:#0A2A40}
  .swsm-spectable tbody th{border:0;padding:4px 12px 0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#2FAAE1}
  .swsm-spectable tbody td{border:0;padding:2px 12px 6px}
}

/* mandatory confirmation */
.swsm-confirm{margin-top:18px;background:#13324A;border:1px solid rgba(47,170,225,.35);border-radius:12px;padding:20px 22px;display:flex;gap:14px;align-items:flex-start}
.swsm-confirm__box{flex:0 0 auto;width:20px;height:20px;border:2px solid #2FAAE1;border-radius:4px;margin-top:3px}
.swsm-guide .swsm-confirm p{margin:0;color:#F1F6F9;font-size:15px;line-height:1.55}

@media (max-width:1024px){
  .swsm-guide{gap:44px}
  .swsm-guide h2{font-size:22px}
}
@media (max-width:767px){
  .swsm-guide{gap:36px}
  .swsm-guide h2{font-size:20px}
  .swsm-guide h3{font-size:17px}
  .swsm-guide ul.swsm-bul{gap:10px}
}
/* guidelines layout refinements */
.swsm-guide [id]{scroll-margin-top:110px}
.swsm-spectable{max-width:820px}
.swsm-spectable tbody th{width:44%}
@media (min-width:1025px){
  .swsm-themes{grid-template-columns:repeat(3,1fr)}
  .swsm-options{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:768px) and (max-width:1024px){
  .swsm-themes{grid-template-columns:repeat(2,1fr)}
  .swsm-options{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:767px){
  .swsm-themes,.swsm-options{grid-template-columns:1fr}
}
/* ------------------------------------------
   22. Guidelines - native Elementor widgets
   Call for Papers. The content is built from
   Elementor containers/widgets; these rules only
   handle the grid rhythm and list markers.
   ------------------------------------------ */
.swsm-row-specs{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px !important}
.swsm-row-themes{display:grid !important;grid-template-columns:repeat(3,1fr);gap:16px !important}
.swsm-row-options{display:grid !important;grid-template-columns:repeat(3,1fr);gap:14px !important}
.swsm-row-specs > .e-con,
.swsm-row-themes > .e-con,
.swsm-row-options > .e-con{width:auto !important;max-width:none !important}
@media (max-width:1024px){
  .swsm-row-themes,.swsm-row-options{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:767px){
  .swsm-row-themes,.swsm-row-options{grid-template-columns:1fr}
}

/* numbered structure list inside a text editor */
.swsm-ol ol,.swsm-ol ul{margin:0;padding:0;list-style:none;counter-reset:swsmol}
.swsm-ol li{counter-increment:swsmol;position:relative;padding-left:40px;margin-bottom:12px;list-style:none !important;list-style-type:none !important}
.swsm-ol li:last-child{margin-bottom:0}
.swsm-ol li::before{content:counter(swsmol,decimal-leading-zero);position:absolute;left:0;top:1px;font-family:"Zilla Slab",Georgia,serif;font-size:14px;font-weight:700;color:#2FAAE1}
.swsm-ol strong{color:#F1F6F9;font-weight:600}

/* mandatory confirmation line */
.swsm-confirm-note p{position:relative;padding-left:34px;margin:0}
.swsm-confirm-note p::before{content:"";position:absolute;left:0;top:2px;width:20px;height:20px;border:2px solid #2FAAE1;border-radius:4px}
/* ------------------------------------------
   23. Desktop mega menu (>=1025px only)
   The mobile overlay in section 19 is untouched.
   ------------------------------------------ */
@media (min-width:1025px){
  .swsm-nav-desktop ul.elementor-nav-menu > li{position:static}
  .swsm-nav-desktop ul.sub-menu{display:none !important}
  .swsm-nav-desktop .elementor-item{display:inline-flex;align-items:center;gap:7px}

  .swsm-mega-caret{
    width:9px;height:9px;flex:0 0 auto;opacity:.6;
    transition:transform 300ms var(--swsm-ease),opacity 220ms var(--swsm-ease);
  }
  .swsm-nav-desktop li:hover .swsm-mega-caret{opacity:1}
  .swsm-nav-desktop li.is-mega-open .swsm-mega-caret{transform:rotate(180deg);opacity:1}
  .swsm-nav-desktop li.is-mega-open > .elementor-item{color:var(--swsm-accent-strong) !important}
  .swsm-nav-desktop li.is-mega-open > .elementor-item::after{transform:scaleX(1) !important}

  /* the panel */
  .swsm-mega__panel{
    position:absolute;left:0;right:0;top:100%;
    background:linear-gradient(180deg,#0A2A40 0%,#062133 100%);
    border-top:1px solid rgba(255,255,255,.10);
    box-shadow:0 34px 70px -34px rgba(0,0,0,.92);
    padding:36px 0 40px;z-index:60;text-align:left;
    opacity:0;visibility:hidden;transform:translateY(-12px);
    transition:opacity 240ms var(--swsm-ease),
               transform 320ms var(--swsm-ease),
               visibility 0s linear 320ms;
  }
  .swsm-nav-desktop li.is-mega-open > .swsm-mega__panel{
    opacity:1;visibility:visible;transform:none;
    transition:opacity 240ms var(--swsm-ease),transform 320ms var(--swsm-ease),visibility 0s;
  }
  .swsm-mega__inner{
    max-width:1240px;margin:0 auto;padding:0 24px;
    display:grid;grid-template-columns:238px 1fr 250px;gap:44px;align-items:start;
  }
  @media (max-width:1279px){
    .swsm-mega__inner{grid-template-columns:210px 1fr;gap:36px}
    .swsm-mega__aside{display:none}
  }

  /* lead column */
  .swsm-mega__eyebrow{
    margin:0 0 8px;font-family:Barlow,sans-serif;font-size:11px;font-weight:600;
    letter-spacing:.2em;text-transform:uppercase;color:var(--swsm-accent);
  }
  .swsm-mega__title{
    margin:0 0 12px;font-family:"Zilla Slab",Georgia,serif;font-size:24px;line-height:1.25;
    font-weight:700;color:#F1F6F9;
  }
  .swsm-mega__all{
    display:inline-flex;align-items:center;gap:8px;
    font-family:Barlow,sans-serif;font-size:14px;font-weight:600;color:var(--swsm-accent);
    text-decoration:none;transition:gap 240ms var(--swsm-ease),color 220ms var(--swsm-ease);
  }
  .swsm-mega__all:hover{gap:13px;color:var(--swsm-accent-strong)}
  .swsm-mega__all svg{width:14px;height:14px}
  /* link grid */
  .swsm-mega__links{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(214px,1fr));gap:8px 24px;
  }
  .swsm-mega__link{
    --i:0;
    display:flex;align-items:flex-start;gap:12px;
    padding:12px 14px;border-radius:10px;border:1px solid transparent;
    font-family:Barlow,sans-serif;font-size:15.5px;line-height:1.45;color:#F1F6F9;
    text-decoration:none;
    opacity:0;transform:translateY(8px);
    transition:opacity 260ms var(--swsm-ease),transform 260ms var(--swsm-ease),
               background-color 220ms var(--swsm-ease),border-color 220ms var(--swsm-ease);
  }
  .swsm-nav-desktop li.is-mega-open .swsm-mega__link{
    opacity:1;transform:none;
    transition-delay:calc(var(--i) * 45ms + 60ms),calc(var(--i) * 45ms + 60ms),0s,0s;
  }
  .swsm-mega__link:hover,
  .swsm-mega__link:focus-visible{
    background:rgba(47,170,225,.10);border-color:rgba(47,170,225,.38);outline:none;
  }
  .swsm-mega__link:focus-visible{box-shadow:0 0 0 2px var(--swsm-accent-strong)}
  .swsm-mega__link.is-current{background:rgba(47,170,225,.14);border-color:rgba(47,170,225,.5)}
  .swsm-mega__dot{
    flex:0 0 auto;width:7px;height:7px;margin-top:8px;border-radius:999px;
    background:rgba(255,255,255,.28);
    transition:background-color 220ms var(--swsm-ease),transform 260ms var(--swsm-ease);
  }
  .swsm-mega__link:hover .swsm-mega__dot,
  .swsm-mega__link.is-current .swsm-mega__dot{background:var(--swsm-accent);transform:scale(1.35)}

  /* aside card */
  .swsm-mega__aside{
    background:#13324A;border:1px solid rgba(255,255,255,.10);border-radius:14px;
    padding:22px 22px 24px;font-family:Barlow,sans-serif;
  }
  .swsm-mega__aside-eyebrow{
    margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.2em;
    text-transform:uppercase;color:var(--swsm-accent);
  }
  .swsm-mega__aside-dates{margin:0 0 4px;font-family:"Zilla Slab",Georgia,serif;font-size:19px;font-weight:700;color:#F1F6F9}
  .swsm-mega__aside-place{margin:0 0 16px;font-size:14px;line-height:1.5;color:#9DB4C2}
  .swsm-mega__cta{
    display:inline-flex;align-items:center;gap:9px;
    background:var(--swsm-accent);color:#062133;text-decoration:none;
    padding:11px 20px;border-radius:8px;font-size:14.5px;font-weight:600;
    transition:transform 260ms var(--swsm-ease),box-shadow 260ms var(--swsm-ease);
  }
  .swsm-mega__cta:hover{transform:translateY(-2px);box-shadow:0 12px 26px -14px rgba(47,170,225,.9)}
  .swsm-mega__cta:focus-visible{outline:2px solid var(--swsm-accent-strong);outline-offset:3px}
  .swsm-mega__cta svg{width:14px;height:14px}

  /* backdrop */
  .swsm-mega-scrim{
    position:fixed;left:0;right:0;bottom:0;top:var(--swsm-header-h,102px);
    background:rgba(3,16,26,.58);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
    opacity:0;visibility:hidden;z-index:50;
    transition:opacity 260ms var(--swsm-ease),visibility 0s linear 260ms;
  }
  body.swsm-mega-open .swsm-mega-scrim{opacity:1;visibility:visible;transition:opacity 260ms var(--swsm-ease),visibility 0s}
}

@media (max-width:1024px){
  .swsm-mega__panel,.swsm-mega-scrim,.swsm-mega-caret{display:none !important}
}
@media (prefers-reduced-motion: reduce){
  .swsm-mega__panel,.swsm-mega__link,.swsm-mega-scrim,.swsm-mega-caret{transition:none !important}
  .swsm-nav-desktop li.is-mega-open .swsm-mega__link{opacity:1;transform:none}
}
/* mega menu fit: seven longer labels must stay on one line */
@media (min-width:1025px){
  .swsm-nav-desktop ul.elementor-nav-menu{flex-wrap:nowrap !important}
  .swsm-nav-desktop .elementor-item{
    padding:10px 11px !important;letter-spacing:0 !important;white-space:nowrap;gap:5px;
  }
  .swsm-nav-desktop .elementor-item::after{left:11px !important;right:11px !important}
  .swsm-mega-caret{width:8px;height:8px}
}
/* swsm-mega-anchor: the panel is positioned against .swsm-header, so every
   element between the header and the menu item must stay unpositioned. */
@media (min-width:1025px){
  .swsm-header{position:relative}
  .swsm-header > .e-con-inner,
  .swsm-header .elementor-element-5789469,
  .swsm-header .elementor-element-5789469 > .e-con-inner,
  .swsm-nav-desktop,
  .swsm-nav-desktop > .elementor-widget-container,
  .swsm-nav-desktop nav.elementor-nav-menu--main,
  .swsm-nav-desktop ul.elementor-nav-menu,
  .swsm-nav-desktop ul.elementor-nav-menu > li{position:static !important}
  /* an identity transform still creates a containing block */
  .swsm-nav-desktop,
  .swsm-nav-desktop > .elementor-widget-container{transform:none !important}
}
/* swsm-mega-fit-2: the theme prints its own caret, and the section labels are
   longer than the old flat ones, so the row needs real breathing room. */
@media (min-width:1025px){
  .swsm-nav-desktop .elementor-item .sub-arrow{display:none !important}
  .swsm-nav-desktop .elementor-item{font-size:14.5px !important;padding:10px 10px !important}
  .swsm-nav-desktop .elementor-item::after{left:10px !important;right:10px !important}
}

/* swsm-nav-own-row: the header row is boxed to 1240px, and seven section labels
   plus both logos do not fit on one line. The nav drops to its own centred row,
   which also gives the mega menu a clean edge to open from. */
@media (min-width:1025px){
  .swsm-header .elementor-element-5789469 > .e-con-inner{flex-wrap:wrap !important;row-gap:2px}
  .swsm-nav-desktop{flex:1 0 100% !important;width:100% !important;max-width:none !important;order:5}
  .swsm-nav-desktop > .elementor-widget-container{width:100%}
  .swsm-nav-desktop ul.elementor-nav-menu{justify-content:center;width:100%}
  .swsm-nav-desktop .elementor-item{font-size:15px !important;padding:10px 14px !important}
  .swsm-nav-desktop .elementor-item::after{left:14px !important;right:14px !important}
  .swsm-nav-compact{display:none !important}
}
/* swsm-nav-tight: below the 1240px container width the row has less room, so the
   items tighten rather than spill past the viewport. */
@media (min-width:1025px) and (max-width:1239px){
  .swsm-nav-desktop .elementor-item{font-size:14px !important;padding:9px 9px !important}
  .swsm-nav-desktop .elementor-item::after{left:9px !important;right:9px !important}
}
/* swsm-mega-polish: tidy grouping - a fixed two-column link block, a hairline
   between the section heading and its links, and a quieter nav row. */
@media (min-width:1025px){
  .swsm-header .elementor-element-5789469 > .e-con-inner{row-gap:0}
  .swsm-nav-desktop{border-top:1px solid rgba(255,255,255,.08);margin-top:6px;padding-top:4px}
  .swsm-nav-desktop ul.elementor-nav-menu{gap:2px}

  .swsm-mega__inner{grid-template-columns:250px 1fr 250px;gap:0 40px;align-items:stretch}
  .swsm-mega__lead{padding-right:36px}
  .swsm-mega__links{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px 28px;align-content:start;
    border-left:1px solid rgba(255,255,255,.09);
    padding-left:40px;
  }
  .swsm-mega__aside{margin-left:8px}
}
@media (min-width:1025px) and (max-width:1439px){
  .swsm-mega__inner{grid-template-columns:225px 1fr;gap:0 32px}
  .swsm-mega__aside{display:none}
  .swsm-mega__links{padding-left:32px}
}
@media (min-width:1025px) and (max-width:1199px){
  .swsm-mega__links{grid-template-columns:minmax(0,1fr)}
}
/* swsm-kill-native-dropdown: the theme's SmartMenus script sets inline styles on
   hover, so the native dropdown is suppressed on every axis, not just display. */
@media (min-width:1025px){
  .swsm-nav-desktop ul.sub-menu,
  .swsm-header nav.elementor-nav-menu--dropdown,
  .swsm-header nav.solace-elementor-nav-menu--dropdown{
    display:none !important;visibility:hidden !important;opacity:0 !important;
    pointer-events:none !important;height:0 !important;max-height:0 !important;
    overflow:hidden !important;
  }
}
/* swsm-header-5cat: five categories on one line between the two logos.
   Partners, Sponsorship and Contact move to the top bar; the mobile menu is
   untouched and still carries every item. */
@media (min-width:1025px){
  .swsm-header .elementor-element-5789469 > .e-con-inner{flex-wrap:nowrap !important;row-gap:0}
  .swsm-nav-desktop{
    flex:0 1 auto !important;width:auto !important;max-width:none !important;order:0 !important;
    border-top:0 !important;margin-top:0 !important;padding-top:0 !important;
  }
  .swsm-nav-desktop > .elementor-widget-container{width:auto}
  .swsm-nav-desktop ul.elementor-nav-menu{width:auto;justify-content:center;gap:0}

  /* desktop shows only the five sections */
  .swsm-nav-desktop li.menu-item-111,
  .swsm-nav-desktop li.menu-item-114{display:none !important}

  .swsm-nav-desktop .elementor-item{font-size:14.5px !important;padding:10px 13px !important}
  .swsm-nav-desktop .elementor-item::after{left:13px !important;right:13px !important}

  /* secondary links in the top bar */
  .swsm-topbar__nav{
    display:inline-flex;align-items:center;gap:15px;
    margin-left:14px;padding-left:16px;
    border-left:1px solid rgba(255,255,255,.16);
  }
  .swsm-topbar__nav a{
    font-family:Barlow,sans-serif;font-size:11px;font-weight:600;letter-spacing:.14em;
    text-transform:uppercase;color:#9DB4C2;text-decoration:none;
    transition:color 220ms var(--swsm-ease);
  }
  .swsm-topbar__nav a:hover{color:var(--swsm-accent-strong)}
  .swsm-topbar__nav a:focus-visible{outline:2px solid var(--swsm-accent-strong);outline-offset:3px}
}
@media (max-width:1024px){
  .swsm-topbar__nav{display:none}
}
/* swsm-header-5cat-fit: keep the five labels clear of the partner logo on
   narrower desktops. */
@media (min-width:1240px) and (max-width:1399px){
  .swsm-nav-desktop .elementor-item{font-size:13.5px !important;padding:10px 10px !important}
  .swsm-nav-desktop .elementor-item::after{left:10px !important;right:10px !important}
}
@media (min-width:1025px) and (max-width:1239px){
  .swsm-nav-desktop .elementor-item{font-size:12px !important;padding:9px 4px !important;letter-spacing:0 !important;gap:3px}
  .swsm-nav-desktop .elementor-item::after{left:4px !important;right:4px !important}
  .swsm-mega-caret{width:6px;height:6px}
}
/* ===== swsm-includes-card-v1 : Registration Includes card (page 83) ===== */
.swsm-includes-card{position:relative;overflow:hidden;border:1px solid rgba(47,170,225,.4);border-radius:16px;background:radial-gradient(120% 140% at 100% 0%,rgba(47,170,225,.16) 0%,rgba(47,170,225,0) 55%),linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015))}
.swsm-includes-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#5FC4F0,#2FAAE1)}
.swsm-includes-card .swsm-includes-title .elementor-heading-title{margin:0}
.swsm-includes-card .swsm-includes-intro p{margin:0}
.swsm-includes-card .swsm-includes-list .elementor-icon-list-items{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:6px 0 0 !important;padding:0 !important;list-style:none !important}
.swsm-includes-card .swsm-includes-list .elementor-icon-list-item{display:flex !important;align-items:center;margin:0 !important;padding:16px 18px !important;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(6,33,51,.55);list-style:none !important;transition:border-color .25s ease,transform .25s ease,background-color .25s ease}
.swsm-includes-card .swsm-includes-list .elementor-icon-list-item::after{display:none !important}
.swsm-includes-card .swsm-includes-list .elementor-icon-list-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:rgba(47,170,225,.14);padding:0 !important}
.swsm-includes-card .swsm-includes-list .elementor-icon-list-icon i,.swsm-includes-card .swsm-includes-list .elementor-icon-list-icon svg{width:20px;text-align:center}
.swsm-includes-card .swsm-includes-list .elementor-icon-list-text{line-height:1.35}
.swsm-includes-card .swsm-includes-list .elementor-icon-list-item:hover{border-color:rgba(47,170,225,.55);background:rgba(47,170,225,.08);transform:translateY(-2px)}
@media (max-width:1024px){.swsm-includes-card .swsm-includes-list .elementor-icon-list-items{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.swsm-includes-card .swsm-includes-list .elementor-icon-list-items{grid-template-columns:1fr}.swsm-includes-card .swsm-includes-list .elementor-icon-list-item{padding:12px 14px !important}}
@media (prefers-reduced-motion:reduce){.swsm-includes-card .swsm-includes-list .elementor-icon-list-item{transition:none}.swsm-includes-card .swsm-includes-list .elementor-icon-list-item:hover{transform:none}}
/* ===== swsm-committees-v1 : Committees page (74) profile cards ===== */
.swsm-committees-intro p{margin:0 0 12px}.swsm-committees-intro p:last-child{margin-bottom:0}
.swsm-committee-section .swsm-committee-title .elementor-heading-title{position:relative;margin:0;padding-bottom:14px}
.swsm-committee-section .swsm-committee-title .elementor-heading-title::after{content:"";position:absolute;left:0;bottom:0;width:56px;height:3px;border-radius:3px;background:linear-gradient(90deg,#2FAAE1,#5FC4F0)}
.swsm-committee-section .swsm-committee-desc{max-width:820px}
.swsm-committee-section .swsm-committee-desc p{margin:0}
.e-con.swsm-member-grid{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px !important;margin-top:12px}
.e-con.swsm-member-grid--chairs{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px !important}
.e-con.swsm-member-grid>.e-con{width:auto !important;max-width:none !important;--width:auto;min-width:0}
.e-con.swsm-member-card{position:relative;overflow:hidden;height:100%;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease,background-color .3s ease}
.e-con.swsm-member-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,#2FAAE1,#5FC4F0);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.e-con.swsm-member-card:hover{transform:translateY(-4px);border-color:rgba(47,170,225,.5);box-shadow:0 18px 40px -22px rgba(0,0,0,.7)}
.e-con.swsm-member-card:hover::before{transform:scaleX(1)}
.swsm-member-card .swsm-member-avatar{margin-bottom:6px}
.swsm-member-card .swsm-member-avatar .elementor-icon-wrapper{line-height:0}
.swsm-member-card .swsm-member-avatar .elementor-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:rgba(47,170,225,.14);border:1px solid rgba(47,170,225,.35)}
.swsm-member-card .swsm-member-avatar .elementor-icon svg{width:20px;height:20px}
.swsm-member-card .swsm-member-name .elementor-heading-title{margin:0}
.swsm-member-card .swsm-member-role p{margin:0;font-weight:600;letter-spacing:.02em}
.swsm-member-card .swsm-member-inst p{margin:0}
.swsm-member-card .swsm-member-country{margin-top:auto !important;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}
.swsm-member-card .swsm-member-country .elementor-icon-list-items{margin:0 !important;padding:0 !important;list-style:none !important}
.swsm-member-card .swsm-member-country .elementor-icon-list-item{margin:0 !important;list-style:none !important}
.e-con.swsm-member-card--chair{border-color:rgba(47,170,225,.45);background:radial-gradient(120% 120% at 100% 0%,rgba(47,170,225,.2) 0%,rgba(47,170,225,0) 60%),linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02))}
.e-con.swsm-member-card--chair::before{transform:scaleX(1);height:4px}
.swsm-member-card--chair .swsm-member-avatar .elementor-icon{width:64px;height:64px;background:linear-gradient(135deg,rgba(47,170,225,.35),rgba(95,196,240,.12))}
.swsm-member-card--chair .swsm-member-avatar .elementor-icon svg{width:26px;height:26px}
.swsm-member-card .swsm-member-badge .elementor-heading-title{display:inline-block;margin:0;padding:5px 12px;border-radius:999px;background:rgba(47,170,225,.14);border:1px solid rgba(47,170,225,.4)}
@media (max-width:1024px){.e-con.swsm-member-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.e-con.swsm-member-grid,.e-con.swsm-member-grid--chairs{grid-template-columns:1fr;gap:16px !important}}
@media (prefers-reduced-motion:reduce){.e-con.swsm-member-card,.e-con.swsm-member-card::before{transition:none}.e-con.swsm-member-card:hover{transform:none}}
/* ===== swsm-pub-v1 : Publication Opportunities (page 79) ===== */
.e-con.swsm-pub-col{max-width:880px}
.swsm-pub-title .elementor-heading-title{position:relative;margin:0}
.swsm-pub-title .elementor-heading-title::after{content:"";position:absolute;left:0;bottom:-15px;width:56px;height:3px;border-radius:3px;background:linear-gradient(90deg,#2FAAE1,#5FC4F0)}
.swsm-pub-text{margin-top:8px}
.swsm-pub-text p{margin:0 0 18px}
.swsm-pub-text p:last-child{margin-bottom:0}
.swsm-pub-text em{color:#F1F6F9;font-style:italic}
.e-con.swsm-pub-important{position:relative;padding-left:76px !important;background:linear-gradient(135deg,rgba(47,170,225,.12),rgba(47,170,225,.02)),#0A2A40 !important;transition:border-color .3s ease,box-shadow .3s ease}
.e-con.swsm-pub-important::before{content:"!";position:absolute;left:28px;top:28px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#2FAAE1;color:#04202F;font-family:"Zilla Slab",Georgia,serif;font-weight:700;font-size:18px;line-height:1}
.e-con.swsm-pub-important:hover{box-shadow:0 16px 36px -24px rgba(0,0,0,.7)}
.swsm-pub-important .elementor-heading-title{margin:0}
.swsm-pub-important p{margin:0}
@media (max-width:767px){.e-con.swsm-pub-important{padding-left:20px !important;padding-top:64px !important}.e-con.swsm-pub-important::before{left:20px;top:22px}}
/* ===== swsm-partners-v1 : Partners & Institutional Support (page 87) ===== */
.swsm-org-section .swsm-org-eyebrow .elementor-heading-title{margin:0}
.e-con.swsm-org-card{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
.e-con.swsm-org-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,#2FAAE1,#5FC4F0);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.e-con.swsm-org-card:hover{transform:translateY(-3px);border-color:rgba(47,170,225,.5);box-shadow:0 18px 40px -24px rgba(0,0,0,.75)}
.e-con.swsm-org-card:hover::before{transform:scaleX(1)}
.e-con.swsm-org-feature{align-items:center}
.e-con.swsm-org-feature>.swsm-org-logo{flex:0 0 34%;max-width:34%;width:34% !important}
.e-con.swsm-org-feature>.swsm-org-body{flex:1 1 0;min-width:0;width:auto !important}
.e-con.swsm-org-logo{background:#fff !important;border-radius:14px;min-height:150px;box-shadow:inset 0 0 0 1px rgba(6,33,51,.06)}
.e-con.swsm-org-logo--lg{min-height:220px}
.swsm-org-logo .swsm-org-logo-img{width:100%}
.swsm-org-logo .swsm-org-logo-img img{display:block;margin:0 auto;width:auto !important;max-width:100% !important;height:auto !important;max-height:96px;object-fit:contain}
.swsm-org-logo--lg .swsm-org-logo-img img{max-height:160px}
.swsm-org-card .swsm-org-name .elementor-heading-title{margin:0}
.swsm-org-card .swsm-org-text p{margin:0 0 14px}.swsm-org-card .swsm-org-text p:last-child{margin-bottom:0}
.swsm-org-card .swsm-org-sub p{margin:0}
.swsm-org-loc .elementor-icon-list-items,.swsm-org-opps .elementor-icon-list-items{margin:0 !important;padding:0 !important;list-style:none !important}
.swsm-org-loc .elementor-icon-list-item{margin:0 !important}
.swsm-org-btn{margin-top:6px}
.swsm-org-btn .elementor-button{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:999px;background:#2FAAE1;color:#04202F;font-family:Barlow,sans-serif;font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:background-color .25s ease,transform .25s ease}
.swsm-org-btn .elementor-button:hover,.swsm-org-btn .elementor-button:focus-visible{background:#5FC4F0;color:#04202F;transform:translateY(-2px)}
.swsm-org-btn .elementor-button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.swsm-org-btn .elementor-button-icon svg{width:13px;fill:currentColor}
.swsm-org-btn--ghost .elementor-button{background:transparent;color:#5FC4F0;box-shadow:inset 0 0 0 1px rgba(95,196,240,.6)}
.swsm-org-btn--ghost .elementor-button:hover{background:rgba(47,170,225,.14);color:#F1F6F9}
.swsm-org-btn--lg .elementor-button{padding:18px 34px;font-size:15px}
.e-con.swsm-org-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.e-con.swsm-org-card--supporter>.swsm-org-logo{width:100% !important}
.e-con.swsm-org-notice{border-left:3px solid #2FAAE1;border-radius:12px;background:linear-gradient(135deg,rgba(47,170,225,.14),rgba(47,170,225,.03)),#0A2A40 !important}
.swsm-org-notice p{margin:0;font-weight:600}
.e-con.swsm-org-cta-card{border-color:rgba(47,170,225,.4);background:radial-gradient(120% 140% at 100% 0%,rgba(47,170,225,.18) 0%,rgba(47,170,225,0) 60%),linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015))}
.swsm-org-opps .elementor-icon-list-items{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 28px}
.swsm-org-opps .elementor-icon-list-item{margin:0 !important;padding:12px 16px !important;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(6,33,51,.5)}
.swsm-org-opps .elementor-icon-list-item::after{display:none !important}
@media (max-width:1024px){.e-con.swsm-org-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}.e-con.swsm-org-feature>.swsm-org-logo{flex-basis:38%;max-width:38%;width:38% !important}}
@media (max-width:767px){.e-con.swsm-org-feature{align-items:stretch}.e-con.swsm-org-feature>.swsm-org-logo{flex:0 0 auto;max-width:100%;width:100% !important}.e-con.swsm-org-logo--lg{min-height:170px}.swsm-org-logo--lg .swsm-org-logo-img img{max-height:120px}.e-con.swsm-org-grid--4{grid-template-columns:1fr}.swsm-org-opps .elementor-icon-list-items{grid-template-columns:1fr}.swsm-org-btn .elementor-button{width:100%;justify-content:center}}
@media (prefers-reduced-motion:reduce){.e-con.swsm-org-card,.e-con.swsm-org-card::before,.swsm-org-btn .elementor-button{transition:none}.e-con.swsm-org-card:hover,.swsm-org-btn .elementor-button:hover{transform:none}}
.swsm-org-section .swsm-org-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:12px}
.swsm-org-section .swsm-org-eyebrow .elementor-heading-title::after{content:"";width:40px;height:1px;background:rgba(95,196,240,.6)}
.swsm-org-logo--lg .swsm-org-logo-img img{max-height:130px}
.swsm-org-card--supporter .swsm-org-logo .swsm-org-logo-img img{max-height:84px}
@media (max-width:767px){.swsm-org-logo--lg .swsm-org-logo-img img{max-height:110px}}

.swsm-org-card--supporter .e-con.swsm-org-logo{min-height:130px}

.e-con.swsm-org-btnrow{width:auto;align-items:center}
.e-con.swsm-org-btnrow>.elementor-widget{width:auto;margin:0}
.swsm-org-btnrow .swsm-org-btn{margin-top:6px}
@media (max-width:767px){.e-con.swsm-org-btnrow>.elementor-widget{width:100%}}

/* ===== swsm-venue-v1 : Venue & Getting There (page 75) ===== */
.e-con.swsm-venue-addr{flex-direction:row !important;align-items:center;justify-content:space-between;gap:24px !important;border-color:rgba(47,170,225,.45);background:radial-gradient(120% 140% at 100% 0%,rgba(47,170,225,.16) 0%,rgba(47,170,225,0) 60%),linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015))}
.e-con.swsm-venue-addr>.swsm-venue-addr-text{flex:1 1 0;min-width:0;width:auto !important}
.e-con.swsm-venue-addr>.swsm-venue-dir{flex:0 0 auto;width:auto !important}
.swsm-venue-address .elementor-icon-list-items{margin:0 !important;padding:0 !important;list-style:none !important}
.swsm-venue-address .elementor-icon-list-item{align-items:flex-start !important;margin:0 !important}
.swsm-venue-address .elementor-icon-list-icon{margin-top:4px}
.swsm-venue-map{border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 50px -30px rgba(0,0,0,.8)}
.swsm-venue-map iframe{display:block;width:100%;filter:saturate(.9)}
.swsm-venue-badge .elementor-icon-list-items{margin:0 !important;padding:0 !important;list-style:none !important;display:inline-flex !important}
.swsm-venue-badge .elementor-icon-list-item{display:inline-flex !important;align-items:center;margin:0 !important;padding:8px 16px !important;border-radius:999px;background:#5FC4F0}
.swsm-venue-badge--pending .elementor-icon-list-item{background:#F2C46D}
.e-con.swsm-venue-travel,.e-con.swsm-venue-transport{height:100%}
.e-con.swsm-venue-access{border-color:rgba(47,170,225,.45);border-left:4px solid #2FAAE1;background:linear-gradient(135deg,rgba(47,170,225,.14),rgba(47,170,225,.03)),#0A2A40 !important;align-items:flex-start}
.e-con.swsm-venue-access>.swsm-org-body{flex:1 1 0;min-width:0;width:auto !important}
.swsm-venue-access>.swsm-member-avatar{flex:0 0 auto;width:auto !important}
.swsm-venue-access a{color:#5FC4F0;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.swsm-venue-access a:hover{color:#F1F6F9}
.swsm-venue-access .swsm-member-avatar .elementor-icon{width:64px;height:64px}
.swsm-venue-summary .elementor-icon-list-items{margin:0 !important;padding:0 !important;list-style:none !important}
.swsm-venue-summary .elementor-icon-list-item{align-items:flex-start !important;margin:0 !important;padding:14px 0 !important;border-bottom:1px solid rgba(255,255,255,.1)}
.swsm-venue-summary .elementor-icon-list-item:last-child{border-bottom:0}
.swsm-venue-summary .elementor-icon-list-item::after{display:none !important}
.swsm-venue-summary .elementor-icon-list-icon{margin-top:3px;width:22px}
.swsm-venue-summary .elementor-icon-list-text{display:flex;flex-direction:column;gap:2px}
.swsm-ti-label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#9DB4C2}
.swsm-ti-value{font-size:16px;font-weight:600;color:#F1F6F9}
.e-con.swsm-venue-photo-wrap{border-radius:18px;overflow:hidden;min-height:100%}
.swsm-venue-photo-wrap .swsm-venue-photo,.swsm-venue-photo-wrap .swsm-venue-photo .elementor-widget-container{height:100%}
.swsm-venue-photo-wrap .swsm-venue-photo img{width:100% !important;height:100% !important;min-height:320px;object-fit:cover;border-radius:18px;transition:transform .6s ease}
.swsm-venue-photo-wrap:hover .swsm-venue-photo img{transform:scale(1.03)}
@media (max-width:767px){.e-con.swsm-venue-addr{flex-direction:column !important;align-items:stretch}.e-con.swsm-venue-addr>.swsm-venue-dir{width:100% !important}.swsm-venue-photo-wrap .swsm-venue-photo img{min-height:220px}}
@media (prefers-reduced-motion:reduce){.swsm-venue-photo-wrap .swsm-venue-photo img{transition:none}.swsm-venue-photo-wrap:hover .swsm-venue-photo img{transform:none}}
.swsm-venue-section .swsm-member-avatar .elementor-icon-wrapper{line-height:0}
.swsm-venue-section .swsm-member-avatar .elementor-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:rgba(47,170,225,.14);border:1px solid rgba(47,170,225,.35)}
.swsm-venue-section .swsm-member-avatar .elementor-icon svg{width:22px;height:22px}
.swsm-venue-section .swsm-venue-access .swsm-member-avatar .elementor-icon{width:64px;height:64px}
.swsm-venue-section .swsm-venue-access .swsm-member-avatar .elementor-icon svg{width:28px;height:28px}
.swsm-venue-card .swsm-org-text strong{color:#F1F6F9}

/* ===== swsm-feepage-v1 : Registration Fees page (296) + fee link on Registration (83) ===== */
.swsm-fee-list{margin:0 !important;padding:0 !important;list-style:none !important}
.swsm-fee-list li{list-style:none !important;margin:0;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.swsm-fee-list li:last-child{border-bottom:0}
.swsm-org-text a{color:#5FC4F0;text-decoration:underline;text-underline-offset:3px}
.e-con.swsm-fee-cta{margin-top:12px}
.e-con.swsm-fee-cta>.elementor-widget{width:auto}
.swsm-reg-feelink .swsm-org-text p{margin:0}

/* ===== swsm-policy-v1 : Registration Terms page (299) ===== */
html{scroll-padding-top:calc(var(--swsm-header-h,110px) + 16px)}
.swsm-policy-section>.e-con-inner{max-width:960px !important}
.swsm-policy-toc{padding:24px 28px;border:1px solid rgba(47,170,225,.4);border-radius:16px;background:linear-gradient(135deg,rgba(47,170,225,.12),rgba(47,170,225,.02)),#0A2A40}
.swsm-policy-toc__title{margin:0 0 12px !important;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#5FC4F0}
.swsm-policy-toc ol{margin:0;padding:0;list-style:none;counter-reset:toc;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 28px}
.swsm-policy-toc li{counter-increment:toc;margin:0;list-style:none}
.swsm-policy-toc a{display:flex;gap:10px;align-items:baseline;padding:6px 0;color:#F1F6F9;font-weight:600;text-decoration:none;border-bottom:1px solid transparent;transition:color .2s ease}
.swsm-policy-toc a::before{content:counter(toc,decimal-leading-zero);font-size:12px;font-weight:700;color:#5FC4F0;min-width:20px}
.swsm-policy-toc a:hover,.swsm-policy-toc a:focus-visible{color:#5FC4F0;text-decoration:underline;text-underline-offset:3px}
.e-con.swsm-policy-card{scroll-margin-top:calc(var(--swsm-header-h,110px) + 16px)}
.e-con.swsm-policy-card:target{border-color:rgba(47,170,225,.7)}
.swsm-policy-head .elementor-widget{width:auto !important;margin:0}
.swsm-policy-head .swsm-policy-h{flex:1 1 200px}
.swsm-policy-body p{margin:0 0 12px}.swsm-policy-body p:last-child{margin-bottom:0}
.swsm-policy-body strong{color:#F1F6F9}
.swsm-policy-list{margin:0 0 14px !important;padding:0 !important;list-style:none !important}
.swsm-policy-list li{position:relative;list-style:none !important;margin:0;padding:6px 0 6px 22px}
.swsm-policy-list li::before{content:"";position:absolute;left:4px;top:15px;width:7px;height:7px;border-radius:50%;background:#2FAAE1}
.swsm-policy-deadlines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:6px 0 16px}
.swsm-policy-deadline{padding:18px 20px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(6,33,51,.55)}
.swsm-policy-deadline--ok{border-left:4px solid #5FC4F0}
.swsm-policy-deadline--no{border-left:4px solid #F2C46D}
.swsm-policy-deadline__label,.swsm-policy-status__label{margin:0 0 8px !important;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#9DB4C2}
.swsm-policy-deadline--ok .swsm-policy-deadline__label{color:#5FC4F0}
.swsm-policy-deadline--no .swsm-policy-deadline__label{color:#F2C46D}
.swsm-policy-checks{margin:0 0 14px !important;padding:0 !important;list-style:none !important;display:grid;gap:10px}
.swsm-policy-checks li{display:flex;gap:12px;align-items:flex-start;margin:0;padding:14px 16px;list-style:none !important;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(6,33,51,.55)}
.swsm-policy-box{flex:0 0 18px;width:18px;height:18px;margin-top:3px;border:2px solid #5FC4F0;border-radius:4px}
.swsm-policy-checks a,.swsm-policy-body a{color:#5FC4F0;text-decoration:underline;text-underline-offset:3px}
.swsm-policy-steps{margin:0 0 18px !important;padding:0 !important;list-style:none !important;counter-reset:st;display:flex;flex-wrap:wrap;gap:8px}
.swsm-policy-steps li{counter-increment:st;list-style:none !important;display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 14px;border-radius:999px;background:rgba(47,170,225,.12);border:1px solid rgba(47,170,225,.35);color:#F1F6F9;font-weight:600;font-size:14px}
.swsm-policy-steps li::before{content:counter(st);display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#2FAAE1;color:#04202F;font-size:12px;font-weight:700}
.swsm-policy-status{margin:0 0 12px;padding:18px 20px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(6,33,51,.55)}
.swsm-policy-status--ok{border-left:4px solid #6FD6A0}
.swsm-policy-status--pending{border-left:4px solid #F2C46D}
.swsm-policy-status--fail{border-left:4px solid #FF9C8A}
.swsm-policy-status__title{margin:0 0 8px !important;font-family:"Zilla Slab",Georgia,serif;font-size:19px;font-weight:700;color:#F1F6F9}
@media (max-width:767px){.swsm-policy-toc ol,.swsm-policy-deadlines{grid-template-columns:1fr}.swsm-policy-toc{padding:20px 18px}.swsm-policy-steps li{font-size:13px}}
/* swsm-footer-legal-v1 */
.swsm-footer .swsm-footer-legal{margin-top:4px;display:flex;flex-wrap:wrap;gap:2px 0;align-items:center}
.swsm-footer .swsm-footer-legal a{color:#C9D7E0;text-decoration:none;padding:4px 0;transition:color 200ms}
.swsm-footer .swsm-footer-legal a:hover,.swsm-footer .swsm-footer-legal a:focus-visible{color:#5FC4F0;text-decoration:underline}
.swsm-footer .swsm-footer-legal span{color:#9DB4C2;padding:0 8px}

/* swsm-cf7-privacy-v1 */
.swsm-cf7 .swsm-cf7__privacy{margin:14px 0 0;font-size:14px;line-height:1.6;color:#9DB4C2;max-width:68ch}
.swsm-cf7 .swsm-cf7__privacy a{color:#5FC4F0;text-decoration:underline;text-underline-offset:2px}
.swsm-cf7 .swsm-cf7__privacy a:hover{color:#FFFFFF}

/* swsm-ff-privacy-v1 */
.swsm-ff-privacy{background:#F1F6F9;border-left:4px solid #2FAAE1;border-radius:8px;padding:16px 18px;margin:8px 0 4px;font-size:14.5px;line-height:1.65;color:#13324A}
.swsm-ff-privacy p{margin:0}
.swsm-ff-privacy a,.swsm-ff-privacy-ack a{color:#1B7FB0;text-decoration:underline;text-underline-offset:2px}
.swsm-ff-privacy a:hover,.swsm-ff-privacy-ack a:hover{color:#062133}
#author-content-notice{scroll-margin-top:110px}

/* swsm-privacy-page-v1 : Privacy Policy page (278) */
.swsm-policy-intro p{margin:0 0 14px;font-size:17px;line-height:1.7;color:#C9D7E0}
.swsm-policy-intro p:last-child{margin-bottom:0}
.swsm-policy-body .swsm-policy-sub{margin:20px 0 6px !important;font-family:"Barlow",sans-serif;font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#5FC4F0;line-height:1.4}
.swsm-policy-body .swsm-policy-sub:first-child{margin-top:0 !important}
.swsm-policy-body .swsm-policy-address{margin:4px 0 14px !important;padding:14px 18px;border-left:3px solid #2FAAE1;border-radius:8px;background:rgba(6,33,51,.55);line-height:1.7}
@media (max-width:767px){.swsm-policy-intro p{font-size:16px}}

/* swsm-visa-page-v1 : Visa & Invitation Letters (84) */
.swsm-visa-cta .elementor-button{background:#2FAAE1 !important;color:#04202F !important;font-weight:700}
.swsm-visa-cta .elementor-button:hover{background:#5FC4F0 !important}
.swsm-visa-note{margin-top:4px}
.swsm-visa-wrap{margin-top:8px}
#invitation-letter-request-form.e-con.swsm-policy-card{padding-left:0 !important;padding-right:0 !important;border:0 !important;background:transparent !important}
#invitation-letter-request-form .swsm-policy-head,#invitation-letter-request-form .swsm-policy-body{padding-left:4px;padding-right:4px}
