/*
  MRMW UI Enhancements
  - Modern spacing + typography
  - Hero overlay polish + CTA motion
  - Sticky header blur + slide animation
  - Cards (speakers) + sponsor grid grayscale
  Note: This file is enqueued LAST to safely override legacy component CSS.
*/

:root{
  --mrmw-color-text:#101828;
  --mrmw-color-muted:#667085;
  --mrmw-color-border:#e6e8ee;
  --mrmw-color-surface:#ffffff;
  --mrmw-color-surface-2:#f8fafc;

  --mrmw-radius: 12px;
  --mrmw-radius-sm: 10px;

  --mrmw-shadow-sm: 0 1px 0 rgba(16,24,40,.04), 0 8px 24px rgba(16,24,40,.08);
  --mrmw-shadow-md: 0 16px 48px rgba(16,24,40,.16);

  --mrmw-focus: 0 0 0 3px rgba(51,143,248,.25);
}

/* Global sanity */
*,*::before,*::after{ box-sizing:border-box; }
html body{
  color: var(--mrmw-color-text);
  line-height: 1.5; /* overrides legacy line-height:1 */
  text-rendering: optimizeLegibility;
}
a{ color: inherit; }
a:hover{ opacity:.96; }
:focus-visible{
  outline: none;
  box-shadow: var(--mrmw-focus);
  border-radius: 6px;
}

/* Better default content typography */
.entry-content{
  line-height: 1.7;
}
.entry-content p{ margin: 0 0 1em; }
.entry-content h1,
.entry-content h2,
.entry-content h3{
  line-height: 1.2;
  margin: 1.2em 0 .6em;
}

/* ==========================================================================
   Sticky header: blur + slide-down (menu.css has base behavior)
   ========================================================================== */

header.sticky-navbar{
  background: rgba(255,255,255,.86);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  box-shadow: 0 10px 30px rgba(16,24,40,.12);

  transform: translateY(-12px);
  transition: opacity .18s ease, visibility .18s ease, transform .18s ease, box-shadow .18s ease;
}
header.sticky-navbar.visible{
  transform: translateY(0);
}
@supports not ((backdrop-filter: blur(1px))){
  header.sticky-navbar{ background:#fff; }
}

/* Nav link hover underline (subtle) */
.menu-main-menu-container ul li a{
  position: relative;
}
.menu-main-menu-container ul li > a::after{
  content:"";
  position:absolute;
  left: 1.5rem;
  right: 1.5rem;
  bottom: .6rem;
  height: 2px;
  background: currentColor;
  opacity: .45;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .18s ease;
}
.menu-main-menu-container ul li:hover > a::after,
.menu-main-menu-container ul li.current-menu-item > a::after{
  transform: scaleX(1);
}

/* ==========================================================================
   Hero overlay polish + spacing
   ========================================================================== */

/* Stronger, nicer overlay (keeps text readable) */
.landing-header::before{
  background:
    radial-gradient(900px 420px at 15% 18%, rgba(0,0,0,.28), transparent 60%),
    radial-gradient(900px 420px at 85% 14%, rgba(0,0,0,.22), transparent 60%),
    linear-gradient(to bottom, rgba(0,0,0,.58) 0%, rgba(0,0,0,.18) 38%, rgba(0,0,0,.58) 100%);
}

/* Fill available height with proportional spacing on desktop,
   but fall back to simple stacking on small screens. */
.landing-header .landing-content{
  justify-content: space-between;
  gap: clamp(1.6rem, 3.2vh, 4rem);
}
@media (max-width: 750px){
  .landing-header .landing-content{
    justify-content: flex-start;
    gap: 1.6rem;
  }
}

/* Landing intro text */
.landing-header .landing-content .landing-page-text{
  max-width: 72ch;
  margin: 0 auto;
  color: rgba(255,255,255,.92);
  font-size: clamp(1.4rem, 1.35vw, 1.8rem);
  line-height: 1.55;
}
.landing-header .landing-content .landing-page-text p{ margin: 0; }

/* Slogan (simple variant used by current header.php) */
.landing-header .landing-content .title.title--simple{
  position: relative;
  display: block;
}
.landing-header .landing-content .title.title--simple .title-inner{
  position: static;
  padding: 0 10px;
}
.landing-header .landing-content .title.title--simple h2{
  margin: 0;
}
.landing-header .landing-content .title.title--simple .primary{
  display: inline-block;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .3px;
  font-size: clamp(2.2rem, 3.6vw, 5rem);
  line-height: 1.08;
}

/* Date & location */
.landing-header .landing-content .address-date{
  font-size: clamp(1.4rem, 1.6vw, 2.4rem);
  letter-spacing: .6px;
}
.landing-header .landing-content .address-date .address-date-text{
  display: inline-block;
  max-width: 70ch;
}

/* CTA motion */
.buttons .registration-button,
.buttons a.registration-button{
  box-shadow: 0 12px 34px rgba(0,0,0,.28);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.buttons .registration-button:hover,
.buttons a.registration-button:hover{
  transform: translateY(-2px);
  filter: brightness(1.05);
}
.buttons .registration-button:active,
.buttons a.registration-button:active{
  transform: translateY(0);
  filter: brightness(.98);
  box-shadow: 0 8px 22px rgba(0,0,0,.24);
}

/* ==========================================================================
   Speakers cards (widgets.css renders these)
   ========================================================================== */

.speakers .column .inner .speaker{
  border-radius: var(--mrmw-radius);
  overflow: hidden;
  border: 1px solid rgba(230,232,238,.85);
  box-shadow: var(--mrmw-shadow-sm);
  transition: transform .18s ease, box-shadow .18s ease;
}
.speakers .column .inner .speaker:hover{
  transform: translateY(-4px);
  box-shadow: var(--mrmw-shadow-md);
}
.speakers .column .inner .speaker .image img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* ==========================================================================
   Sponsors: grayscale -> color on hover + consistent logo sizing
   ========================================================================== */

.sponsors .sponsors-cont .column a{
  display:flex;
  align-items:center;
  justify-content:center;
}
.sponsors .sponsors-cont .column a img{
  max-height: 120px;
  width: 100%;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .86;
  transition: filter .2s ease, opacity .2s ease, transform .2s ease;
}
.sponsors .sponsors-cont .column:hover a img{
  filter: none;
  opacity: 1;
  transform: scale(1.02);
}

/* ==========================================================================
   Small-screen fixes (prevent "everything collapsed" feel)
   ========================================================================== */

@media (max-width: 420px){
  .buttons .registration-button,
  .buttons a.registration-button{
    width: 100%;
    max-width: 320px;
  }
}


/* Counter compact on small screens */
@media (max-width: 520px){
  .counter{ padding: 14px 0; }
  .counter #counter-inner{ gap: 1.2rem; }
  .counter #counter-inner .wrapper div{
    padding-left: 1.6rem;
    padding-right: 1.6rem;
    margin-left: 1.6rem;
    margin-right: 1.6rem;
  }
  .counter #counter-inner .count{
    font-size: 2.4rem;
    line-height: 2.4rem;
    min-width: 0;
  }
}
@media (max-width: 380px){
  .counter #counter-inner .wrapper div{
    padding-left: 1.2rem;
    padding-right: 1.2rem;
    margin-left: 1.2rem;
    margin-right: 1.2rem;
  }
  .counter #counter-inner .title{ font-size: 1.2rem; }
}

/* ==========================================================================
   Safety/responsive patch pack
   ========================================================================== */

.site-logo-text{
  display:inline-block;
  color:#fff;
  font-weight:700;
  font-size:2rem;
  letter-spacing:.02em;
}
.header.other .site-logo-text,
header.sticky-navbar.visible .site-logo-text{ color:#111827; }

.hamburger{
  background:transparent;
  border:0;
  appearance:none;
  line-height:1;
}
.hamburger:focus-visible{
  box-shadow:0 0 0 3px rgba(51,143,248,.35);
}

/* Keep mobile menu styling scoped to header navigation only. */
@media (max-width: 1024px){
  .navbar .menu{
    max-height:calc(100vh - 7rem);
    overflow:auto;
    z-index:50;
  }
  .navbar .menu-main-menu-container ul li ul{
    position:static;
    visibility:visible;
    opacity:1;
    pointer-events:auto;
    width:100%;
    min-width:0;
    margin-top:8px;
    background:rgba(255,255,255,.08);
    border:0;
    box-shadow:none;
    text-align:center;
  }
  .navbar .menu-main-menu-container ul li li a{
    color:#fff;
    justify-content:center;
  }
  .other .navbar .menu-main-menu-container ul li li a,
  #navbar-sticky .menu-main-menu-container ul li li a{
    color:#111827;
  }
  .header .content .register-button a{
    margin-right:0;
  }
}

@media (max-width: 680px){
  .header .container{
    padding:0 12px;
  }
  .site-logo-link img{
    max-width:190px;
    height:auto;
  }
  .header .content .register-button a{
    font-size:1.25rem;
    padding:.55rem 1.05rem;
  }
}

@media (max-width: 420px){
  .header .content .register-button{
    display:none;
  }
  .hamburger{
    padding-right:0;
  }
}

.counter #counter-inner.counter-message{
  font-size: clamp(1.4rem, 2vw, 2rem);
  line-height:1.35;
  padding: 0 16px;
}

@media (max-width: 750px){
  .page-title-bar{
    margin-top:0;
    margin-bottom:4rem;
    padding:7rem 0;
  }
  .header.other{
    margin-bottom:0;
  }
  .page-title-bar .container h1{
    font-size:clamp(2.4rem, 7vw, 3.4rem);
  }
}

/* Footer should not inherit the fixed mobile header menu behavior. */
.site-footer .menu{
  position:static;
  display:flex;
  flex-wrap:wrap;
  gap:12px 28px;
  width:auto;
  background:transparent;
  text-align:inherit;
  transition:none;
}
.site-footer .menu .menu-item{
  margin:0;
  padding:0;
  list-style:none;
}

/* Desktop submenu cleanup: keep the hover accent horizontal only on top-level items. */
@media (min-width: 1025px){
  .navbar .menu-main-menu-container .menu > li{
    position:relative;
  }
  .navbar .menu-main-menu-container .menu > li > ul{
    top:100%;
    left:0;
  }
  .navbar .menu-main-menu-container .menu > li.dropdown:hover > a::after,
  .navbar .menu-main-menu-container .menu > li.menu-item-has-children:hover > a::after{
    transform:scaleX(1) !important;
  }
  .navbar .menu-main-menu-container .menu > li > ul a::after,
  .navbar .menu-main-menu-container .menu > li > ul li:hover > a::after,
  .navbar .menu-main-menu-container .menu > li > ul li.current-menu-item > a::after{
    display:none !important;
    content:none !important;
  }
  .navbar .menu-main-menu-container .menu > li > ul li a{
    display:block;
    width:100%;
    color:#111827;
    line-height:1.35;
    white-space:nowrap;
  }
  .navbar .menu-main-menu-container .menu > li > ul li a:hover{
    color:#2F8CCC;
    background:#f6f9fc;
    opacity:1;
  }
}

/* Hero logo sizing controlled from Theme Settings > Hero. */
.landing-header .landing-content .landing-branding .branding-group{
  gap: var(--mrmw-hero-logo-gap, 24px);
  align-items: var(--mrmw-hero-logo-align, flex-end);
}
.landing-header .landing-content .landing-branding .big-logo,
.landing-header .landing-content .landing-branding .title-sponsor{
  align-self: var(--mrmw-hero-logo-align, flex-end);
}
.landing-header .landing-content .landing-branding .big-logo img.big-logo-image{
  max-width: min(var(--mrmw-hero-logo-w, 500px), 86vw) !important;
  max-height: var(--mrmw-hero-logo-h, 140px) !important;
  width: auto;
  height: auto;
  object-fit: contain;
}
.landing-header .landing-content .landing-branding .title-sponsor-logo img{
  max-width: min(var(--mrmw-sponsor-logo-w, 240px), 86vw) !important;
  max-height: var(--mrmw-sponsor-logo-h, 70px) !important;
  width: auto;
  height: auto;
  object-fit: contain;
}
@media (max-width: 750px){
  .landing-header .landing-content .landing-branding .branding-group{
    gap: min(var(--mrmw-hero-logo-gap, 24px), 18px);
    align-items: center;
  }
  .landing-header .landing-content .landing-branding .big-logo,
  .landing-header .landing-content .landing-branding .title-sponsor{
    align-self: center;
  }
  .landing-header .landing-content .landing-branding .big-logo img.big-logo-image{
    max-width: min(var(--mrmw-hero-logo-mobile-w, 320px), 90vw) !important;
    max-height: var(--mrmw-hero-logo-mobile-h, 105px) !important;
  }
  .landing-header .landing-content .landing-branding .title-sponsor-logo img{
    max-width: min(var(--mrmw-sponsor-logo-mobile-w, 220px), 86vw) !important;
    max-height: var(--mrmw-sponsor-logo-mobile-h, 60px) !important;
  }
}

/* ========================================================================== 
   Landing typography controlled from Theme Settings > Hero > Landing typography.
   The admin stores desktop/mobile values; CSS clamp keeps responsive scaling smooth.
   ========================================================================== */

.landing-header .landing-content .landing-branding .title-sponsor-label{
  font-family: var(--mrmw-typo-sponsor-label-family, inherit);
  font-size: clamp(var(--mrmw-typo-sponsor-label-mobile-size, 13px), .9vw, var(--mrmw-typo-sponsor-label-size, 14px));
  font-weight: var(--mrmw-typo-sponsor-label-weight, 400);
}

.landing-header .landing-content .landing-page-text,
.landing-header .landing-content .landing-page-text p{
  font-family: var(--mrmw-typo-landing-intro-family, inherit);
  font-size: clamp(var(--mrmw-typo-landing-intro-mobile-size, 15px), 1.35vw, var(--mrmw-typo-landing-intro-size, 18px));
  font-weight: var(--mrmw-typo-landing-intro-weight, 400);
}

.landing-header .landing-content .title.title--simple .primary{
  font-family: var(--mrmw-typo-event-slogan-family, inherit);
  font-size: clamp(var(--mrmw-typo-event-slogan-mobile-size, 28px), 3.6vw, var(--mrmw-typo-event-slogan-size, 50px));
  font-weight: var(--mrmw-typo-event-slogan-weight, 700);
}

.landing-header .landing-content .address-date,
.landing-header .landing-content .address-date .address-date-text{
  font-family: var(--mrmw-typo-event-date-family, inherit);
  font-size: clamp(var(--mrmw-typo-event-date-mobile-size, 16px), 1.6vw, var(--mrmw-typo-event-date-size, 24px));
  font-weight: var(--mrmw-typo-event-date-weight, 500);
}

.buttons .registration-button,
.buttons a.registration-button{
  font-family: var(--mrmw-typo-cta-button-family, inherit);
  font-size: clamp(var(--mrmw-typo-cta-button-mobile-size, 16px), 1.25vw, var(--mrmw-typo-cta-button-size, 20px));
  font-weight: var(--mrmw-typo-cta-button-weight, 700);
}

.counter #counter-inner .count{
  font-family: var(--mrmw-typo-counter-number-family, inherit);
  font-size: clamp(var(--mrmw-typo-counter-number-mobile-size, 24px), 2.2vw, var(--mrmw-typo-counter-number-size, 36px));
  font-weight: var(--mrmw-typo-counter-number-weight, 700);
}

.counter #counter-inner .title{
  font-family: var(--mrmw-typo-counter-label-family, inherit);
  font-size: clamp(var(--mrmw-typo-counter-label-mobile-size, 12px), .9vw, var(--mrmw-typo-counter-label-size, 13px));
  font-weight: var(--mrmw-typo-counter-label-weight, 400);
}

/* 1.2.6: Hero logo sizing uses fixed display boxes, not max-only limits.
   This makes the Theme Settings values visibly affect existing logos, even when
   the image's intrinsic size is smaller than the selected maximum. */
.landing-header .landing-content .landing-branding .big-logo{
  width:min(var(--mrmw-hero-logo-w, 500px), 86vw) !important;
  height:var(--mrmw-hero-logo-h, 140px) !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  flex:0 1 auto;
}
.landing-header .landing-content .landing-branding .big-logo img.big-logo-image{
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain;
  object-position:center center;
}
.landing-header .landing-content .landing-branding .title-sponsor-link{
  display:inline-flex;
  align-items:flex-start;
  text-decoration:none;
}
.landing-header .landing-content .landing-branding .title-sponsor-logo{
  width:min(var(--mrmw-sponsor-logo-w, 240px), 86vw) !important;
  height:var(--mrmw-sponsor-logo-h, 70px) !important;
  display:flex !important;
  align-items:center;
  justify-content:flex-start;
  flex:0 0 auto;
}
.landing-header .landing-content .landing-branding .title-sponsor-logo img{
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain;
  object-position:left center;
}
@media (max-width:750px){
  .landing-header .landing-content .landing-branding .big-logo{
    width:min(var(--mrmw-hero-logo-mobile-w, 320px), 90vw) !important;
    height:var(--mrmw-hero-logo-mobile-h, 105px) !important;
  }
  .landing-header .landing-content .landing-branding .title-sponsor-logo{
    width:min(var(--mrmw-sponsor-logo-mobile-w, 220px), 86vw) !important;
    height:var(--mrmw-sponsor-logo-mobile-h, 60px) !important;
    justify-content:center;
  }
  .landing-header .landing-content .landing-branding .title-sponsor-logo img{
    object-position:center center;
  }
}


/* 1.2.7: Landing hero branding layout.
   The logo wrappers are no longer fixed-width boxes. This keeps the main event logo
   and title sponsor visually next to each other instead of creating a wide empty
   area around the main logo. After the event end date, PHP hides the sponsor block
   and the solo class allows the main logo to use a larger display limit. */
.landing-header .landing-content .landing-branding{
  width:100%;
  display:flex;
  justify-content:center;
}
.landing-header .landing-content .landing-branding .branding-group{
  width:auto !important;
  max-width:min(92vw, 980px);
  display:inline-flex !important;
  flex-wrap:nowrap;
  align-items:var(--mrmw-hero-logo-align, flex-end);
  justify-content:center;
  gap:var(--mrmw-hero-logo-gap, 24px);
}
.landing-header .landing-content .landing-branding .big-logo,
.landing-header .landing-content .landing-branding .title-sponsor{
  width:auto !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  flex:0 1 auto;
  align-self:var(--mrmw-hero-logo-align, flex-end);
}
.landing-header .landing-content .landing-branding .big-logo{
  display:flex !important;
  align-items:center;
  justify-content:center;
}
.landing-header .landing-content .landing-branding .big-logo img.big-logo-image{
  display:block;
  width:auto !important;
  height:auto !important;
  max-width:min(var(--mrmw-hero-logo-w, 500px), 38vw) !important;
  max-height:var(--mrmw-hero-logo-h, 140px) !important;
  object-fit:contain;
  object-position:center center;
}
.landing-header .landing-content .landing-branding .title-sponsor{
  display:flex !important;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  min-width:0;
}
.landing-header .landing-content .landing-branding .title-sponsor-link{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  max-width:100%;
}
.landing-header .landing-content .landing-branding .title-sponsor-logo{
  width:auto !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  display:inline-flex !important;
  align-items:center;
  justify-content:flex-start;
}
.landing-header .landing-content .landing-branding .title-sponsor-logo img{
  display:block;
  width:auto !important;
  height:auto !important;
  max-width:min(var(--mrmw-sponsor-logo-w, 240px), 28vw) !important;
  max-height:var(--mrmw-sponsor-logo-h, 70px) !important;
  object-fit:contain;
  object-position:left center;
}
.landing-header .landing-content .landing-branding.landing-branding--solo .branding-group{
  max-width:min(90vw, 760px);
}
.landing-header .landing-content .landing-branding.landing-branding--solo .big-logo img.big-logo-image{
  max-width:min(var(--mrmw-hero-logo-solo-w, 625px), 68vw) !important;
  max-height:var(--mrmw-hero-logo-solo-h, 175px) !important;
}
@media (max-width:900px){
  .landing-header .landing-content .landing-branding .branding-group{
    max-width:94vw;
    gap:min(var(--mrmw-hero-logo-gap, 24px), 18px);
  }
  .landing-header .landing-content .landing-branding .big-logo img.big-logo-image{
    max-width:min(var(--mrmw-hero-logo-w, 500px), 46vw) !important;
  }
  .landing-header .landing-content .landing-branding .title-sponsor-logo img{
    max-width:min(var(--mrmw-sponsor-logo-w, 240px), 34vw) !important;
  }
}
@media (max-width:650px){
  .landing-header .landing-content .landing-branding .branding-group{
    flex-direction:column;
    align-items:center;
    gap:min(var(--mrmw-hero-logo-gap, 24px), 14px);
  }
  .landing-header .landing-content .landing-branding .big-logo,
  .landing-header .landing-content .landing-branding .title-sponsor{
    align-self:center;
    align-items:center;
  }
  .landing-header .landing-content .landing-branding .title-sponsor-label{
    text-align:center;
  }
  .landing-header .landing-content .landing-branding .title-sponsor-link,
  .landing-header .landing-content .landing-branding .title-sponsor-logo{
    justify-content:center;
  }
  .landing-header .landing-content .landing-branding .title-sponsor-logo img{
    object-position:center center;
  }
  .landing-header .landing-content .landing-branding .big-logo img.big-logo-image{
    max-width:min(var(--mrmw-hero-logo-mobile-w, 320px), 88vw) !important;
    max-height:var(--mrmw-hero-logo-mobile-h, 105px) !important;
  }
  .landing-header .landing-content .landing-branding .title-sponsor-logo img{
    max-width:min(var(--mrmw-sponsor-logo-mobile-w, 220px), 78vw) !important;
    max-height:var(--mrmw-sponsor-logo-mobile-h, 60px) !important;
  }
  .landing-header .landing-content .landing-branding.landing-branding--solo .big-logo img.big-logo-image{
    max-width:min(var(--mrmw-hero-logo-solo-mobile-w, 378px), 90vw) !important;
    max-height:var(--mrmw-hero-logo-solo-mobile-h, 124px) !important;
  }
}


/* HTML-enabled hero slogan formatting. */
.landing-header .landing-content .title.title--simple .primary strong,
.landing-header .landing-content .title.title--simple .primary b{
  font-weight: 800;
}
.landing-header .landing-content .title.title--simple .primary em,
.landing-header .landing-content .title.title--simple .primary i{
  font-style: italic;
}


/* 1.2.13: Fine vertical offsets for hero and sponsor logo blocks. */
.landing-header .landing-content .landing-branding .big-logo{
  transform: translateY(var(--mrmw-hero-logo-offset-y, 0px));
}
.landing-header .landing-content .landing-branding .title-sponsor{
  transform: translateY(var(--mrmw-sponsor-logo-offset-y, 0px));
}

/* 1.3.1: accessibility and page-header focal-point support. */
.skip-link.screen-reader-text:focus,
.skip-link:focus{
  position:fixed !important;
  top:10px;
  left:10px;
  z-index:100000;
  display:block;
  width:auto;
  height:auto;
  padding:10px 14px;
  clip:auto !important;
  clip-path:none !important;
  overflow:visible;
  border-radius:4px;
  background:#111827;
  color:#fff;
  text-decoration:none;
  font-weight:700;
}
.header a:focus-visible,
.site-footer a:focus-visible,
.registration-button:focus-visible,
.hamburger:focus-visible{
  outline:3px solid rgba(47,140,204,.85);
  outline-offset:3px;
}
.page-title-bar--custom-image .page-title-bar-bg{
  background-size:cover;
  background-repeat:no-repeat;
}
.landing-header--after .counter{
  display:none;
}
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}


/* 1.3.2: Landing header vertical rhythm controls.
   The hero content now uses explicit spacing variables instead of space-evenly,
   which keeps the distance between logo, slogan, date, CTA and countdown visually balanced. */
.landing-header .landing-content{
  justify-content: center !important;
  gap: 0 !important;
  padding-top: clamp(8rem, 10vh, 12rem) !important;
  padding-bottom: calc(var(--counter-safe-pad, clamp(11rem, 12vh, 16rem)) + var(--mrmw-hero-spacing-cta-counter, 54px)) !important;
  transform: translateY(var(--mrmw-hero-content-offset-y, 0px));
}
.landing-header .landing-content .header-spacer{
  display: none !important;
  height: 0 !important;
}
.landing-header .landing-content .landing-branding{
  margin-bottom: var(--mrmw-hero-spacing-logo-slogan, 36px) !important;
}
.landing-header .landing-content .landing-page-text{
  margin-bottom: calc(var(--mrmw-hero-spacing-logo-slogan, 36px) * .65) !important;
}
.landing-header .landing-content .title.title--simple{
  margin-bottom: var(--mrmw-hero-spacing-slogan-date, 42px) !important;
}
.landing-header .landing-content .address-date{
  margin-bottom: var(--mrmw-hero-spacing-date-cta, 44px) !important;
}
.landing-header .landing-content .buttons{
  margin-bottom: 0 !important;
}
@media (max-width: 750px){
  .landing-header .landing-content{
    padding-top: clamp(7rem, 9vh, 10rem) !important;
    padding-bottom: calc(clamp(12rem, 12vh, 16rem) + min(var(--mrmw-hero-spacing-cta-counter, 54px), 42px)) !important;
  }
  .landing-header .landing-content .landing-branding{
    margin-bottom: min(var(--mrmw-hero-spacing-logo-slogan, 36px), 28px) !important;
  }
  .landing-header .landing-content .title.title--simple{
    margin-bottom: min(var(--mrmw-hero-spacing-slogan-date, 42px), 34px) !important;
  }
  .landing-header .landing-content .address-date{
    margin-bottom: min(var(--mrmw-hero-spacing-date-cta, 44px), 34px) !important;
  }
}

/* 1.3.2.8: Navigation fit + semantic accent text.
   Keep long menu items on one line and compact desktop spacing instead of letting labels wrap. */
:root{
  --mrmw-accent-color:#2F8CCC;
}
.mrmw-text-accent,
.mrmw-accent-text,
.widget-title-holder .widget-title .mrmw-text-accent{
  color:var(--mrmw-accent-color, #2F8CCC);
}

@media (min-width:1025px){
  .header .container{
    gap:clamp(1rem, 2vw, 3rem);
  }
  .header .content{
    flex:1 1 auto;
    min-width:0;
  }
  .header .content .navbar{
    width:100%;
    min-width:0;
    gap:clamp(.6rem, 1vw, 1.6rem);
  }
  .navbar .menu-main-menu-container{
    flex:1 1 auto;
    min-width:0;
  }
  .navbar .menu-main-menu-container .menu{
    justify-content:flex-end;
    gap:clamp(.25rem, .55vw, .9rem);
  }
  .navbar .menu-main-menu-container .menu > li > a{
    white-space:nowrap;
    flex-wrap:nowrap;
    padding-inline:clamp(.45rem, .75vw, 1.15rem);
    font-size:clamp(1.15rem, .82vw, 1.5rem);
    line-height:1.1;
  }
  .navbar .menu-main-menu-container ul li > a::after{
    left:clamp(.45rem, .75vw, 1.15rem);
    right:clamp(.45rem, .75vw, 1.15rem);
  }
  .header .content .register-button a{
    white-space:nowrap;
    padding-inline:clamp(1rem, 1vw, 1.6rem);
    font-size:clamp(1.15rem, .82vw, 1.5rem);
  }
}

@media (min-width:1025px) and (max-width:1320px){
  .site-logo-link img,
  img.custom-logo{
    height:clamp(5.4rem, 5vw, 7.2rem);
  }
}

/* 1.3.2.9: Navigation collision guard.
   Keep long desktop menus on one line without letting them slide over wide event logos. */
@media (min-width:1025px){
  .header .container{
    display:grid;
    grid-template-columns:auto minmax(0, 1fr);
    align-items:center;
    column-gap:clamp(2rem, 2.4vw, 4rem);
    max-width:min(var(--container-max, 1300px), 100%);
    padding-inline:clamp(1.2rem, 1.8vw, 2.4rem);
  }

  .header .site-logo{
    min-width:0;
    max-width:clamp(17rem, 20vw, 25rem);
  }

  .header .site-logo-link{
    max-width:100%;
  }

  .header .site-logo-link img.small-logo,
  .header img.custom-logo{
    width:auto;
    max-width:100%;
    max-height:clamp(5rem, 5vw, 7.2rem);
    object-fit:contain;
  }

  .header .content{
    width:100%;
    min-width:0;
    justify-self:end;
  }

  .header .content .navbar{
    width:100%;
    min-width:0;
    justify-content:flex-end;
  }

  .navbar .menu-main-menu-container{
    flex:0 1 auto;
    min-width:0;
  }

  .navbar .menu-main-menu-container .menu{
    flex-wrap:nowrap;
    justify-content:flex-end;
    gap:clamp(.2rem, .45vw, .7rem);
  }

  .navbar .menu-main-menu-container .menu > li{
    flex:0 0 auto;
  }

  .navbar .menu-main-menu-container .menu > li > a{
    white-space:nowrap;
    padding-inline:clamp(.35rem, .55vw, .85rem);
    font-size:clamp(1.05rem, .78vw, 1.35rem);
    line-height:1.1;
  }

  .navbar .menu-main-menu-container ul li > a::after{
    left:clamp(.35rem, .55vw, .85rem);
    right:clamp(.35rem, .55vw, .85rem);
  }

  .header .content .register-button{
    flex:0 0 auto;
    margin-left:clamp(.5rem, .6vw, 1rem);
  }

  .header .content .register-button a{
    white-space:nowrap;
    padding-inline:clamp(.9rem, .9vw, 1.4rem);
    font-size:clamp(1.05rem, .78vw, 1.35rem);
  }
}

@media (min-width:1025px) and (max-width:1180px){
  .header .container{
    column-gap:1.6rem;
    padding-inline:1rem;
  }

  .header .site-logo{
    max-width:16.5rem;
  }

  .navbar .menu-main-menu-container .menu{
    gap:.15rem;
  }

  .navbar .menu-main-menu-container .menu > li > a{
    padding-inline:.32rem;
    font-size:1.02rem;
  }

  .header .content .register-button a{
    padding-inline:.8rem;
    font-size:1.02rem;
  }
}

/* 1.3.2.11: Consistent desktop navigation spacing and slightly larger menu text.
   Keep the logo and menu as one centered row with a controlled, small gap.
   This avoids both overlap at narrower desktop widths and excessive empty space at wide widths. */
@media (min-width:1025px){
  .header .container{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:clamp(1.4rem, 1.45vw, 2.8rem) !important;
    width:100% !important;
    max-width:min(1640px, calc(100% - 4.8rem)) !important;
    padding-inline:0 !important;
    margin-inline:auto !important;
  }

  .header .site-logo{
    flex:0 0 auto !important;
    width:auto !important;
    min-width:0 !important;
    max-width:clamp(14rem, 12vw, 22rem) !important;
    padding-left:0 !important;
  }

  .header .site-logo-link{
    display:inline-flex !important;
    max-width:100% !important;
  }

  .header .site-logo-link img.small-logo,
  .header img.custom-logo{
    display:block !important;
    width:auto !important;
    height:auto !important;
    max-width:100% !important;
    max-height:clamp(4.8rem, 4.6vw, 7.2rem) !important;
    object-fit:contain !important;
  }

  .header .content{
    flex:0 1 auto !important;
    width:auto !important;
    min-width:0 !important;
    justify-self:auto !important;
  }

  .header .content .navbar{
    width:auto !important;
    min-width:0 !important;
    height:7rem;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:clamp(.8rem, .9vw, 1.8rem) !important;
  }

  .navbar .menu-main-menu-container{
    flex:0 1 auto !important;
    min-width:0 !important;
  }

  .navbar .menu-main-menu-container .menu{
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:clamp(.18rem, .35vw, .65rem) !important;
  }

  .navbar .menu-main-menu-container .menu > li,
  .header .content .register-button{
    flex:0 0 auto !important;
  }

  .navbar .menu-main-menu-container .menu > li > a,
  .header .content .register-button a{
    white-space:nowrap !important;
    line-height:1.1 !important;
  }

  .navbar .menu-main-menu-container .menu > li > a{
    padding-inline:clamp(.38rem, .45vw, .9rem) !important;
    font-size:clamp(1.28rem, .92vw, 1.55rem) !important;
  }

  .navbar .menu-main-menu-container ul li > a::after{
    left:clamp(.38rem, .45vw, .9rem) !important;
    right:clamp(.38rem, .45vw, .9rem) !important;
  }

  .header .content .register-button{
    margin-left:clamp(.35rem, .45vw, .8rem) !important;
  }

  .header .content .register-button a{
    padding-inline:clamp(.9rem, .8vw, 1.45rem) !important;
    font-size:clamp(1.28rem, .92vw, 1.55rem) !important;
  }
}

@media (min-width:1025px) and (max-width:1380px){
  .header .container{
    max-width:calc(100% - 2.4rem) !important;
    gap:1.4rem !important;
  }
  .header .site-logo{
    max-width:16.5rem !important;
  }
  .header .site-logo-link img.small-logo,
  .header img.custom-logo{
    max-height:5.8rem !important;
  }
  .navbar .menu-main-menu-container .menu{
    gap:.1rem !important;
  }
  .navbar .menu-main-menu-container .menu > li > a{
    padding-inline:.36rem !important;
    font-size:1.25rem !important;
  }
  .header .content .register-button a{
    padding-inline:.85rem !important;
    font-size:1.25rem !important;
  }
}

@media (min-width:1025px) and (max-width:1160px){
  .header .container{
    gap:1rem !important;
  }
  .header .site-logo{
    max-width:14.5rem !important;
  }
  .navbar .menu-main-menu-container .menu > li > a{
    padding-inline:.28rem !important;
    font-size:1.2rem !important;
  }
  .header .content .register-button a{
    padding-inline:.75rem !important;
    font-size:1.2rem !important;
  }
}

/* 1.3.2.12: Align landing navigation, hero content and counter with the normal page content width.
   Use the same 1300px max container as the lower content while keeping a controlled logo-to-menu gap. */
:root{
  --mrmw-page-container-max: var(--container-max, 1300px);
  --mrmw-page-container-gutter: clamp(1.6rem, 3vw, 3.2rem);
}

@media (min-width:1025px){
  .header .container{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:clamp(1.8rem, 2vw, 3rem) !important;
    width:min(var(--mrmw-page-container-max), calc(100% - (var(--mrmw-page-container-gutter) * 2))) !important;
    max-width:var(--mrmw-page-container-max) !important;
    padding-inline:0 !important;
    margin-inline:auto !important;
  }

  .header .site-logo{
    flex:0 0 auto !important;
    max-width:clamp(14rem, 13vw, 21rem) !important;
  }

  .header .content{
    flex:0 1 auto !important;
    width:auto !important;
    min-width:0 !important;
    justify-self:auto !important;
  }

  .header .content .navbar{
    width:auto !important;
    min-width:0 !important;
    justify-content:flex-start !important;
    gap:clamp(.7rem, .85vw, 1.4rem) !important;
  }

  .navbar .menu-main-menu-container{
    flex:0 1 auto !important;
  }

  .navbar .menu-main-menu-container .menu{
    justify-content:flex-start !important;
    gap:clamp(.12rem, .32vw, .55rem) !important;
  }

  .landing-header .landing-content{
    width:min(var(--mrmw-page-container-max), calc(100% - (var(--mrmw-page-container-gutter) * 2))) !important;
    max-width:var(--mrmw-page-container-max) !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .counter #counter-inner{
    max-width:var(--mrmw-page-container-max) !important;
    width:min(var(--mrmw-page-container-max), calc(100% - (var(--mrmw-page-container-gutter) * 2))) !important;
    margin-inline:auto !important;
  }
}

@media (min-width:1025px) and (max-width:1380px){
  .header .container{
    width:calc(100% - 2.4rem) !important;
    gap:clamp(1.1rem, 1.45vw, 1.9rem) !important;
  }

  .header .site-logo{
    max-width:clamp(13rem, 15vw, 16.5rem) !important;
  }

  .header .content .navbar{
    gap:.7rem !important;
  }

  .navbar .menu-main-menu-container .menu{
    gap:.08rem !important;
  }

  .navbar .menu-main-menu-container .menu > li > a{
    padding-inline:.32rem !important;
    font-size:1.24rem !important;
  }

  .navbar .menu-main-menu-container ul li > a::after{
    left:.32rem !important;
    right:.32rem !important;
  }

  .header .content .register-button a{
    padding-inline:.78rem !important;
    font-size:1.24rem !important;
  }

  .landing-header .landing-content,
  .counter #counter-inner{
    width:calc(100% - 2.4rem) !important;
  }
}

@media (min-width:1025px) and (max-width:1160px){
  .header .container{
    width:calc(100% - 2rem) !important;
    gap:1rem !important;
  }

  .header .site-logo{
    max-width:13.6rem !important;
  }

  .header .site-logo-link img.small-logo,
  .header img.custom-logo{
    max-height:5.2rem !important;
  }

  .header .content .navbar{
    gap:.5rem !important;
  }

  .navbar .menu-main-menu-container .menu > li > a{
    padding-inline:.22rem !important;
    font-size:1.16rem !important;
  }

  .navbar .menu-main-menu-container ul li > a::after{
    left:.22rem !important;
    right:.22rem !important;
  }

  .header .content .register-button{
    margin-left:.25rem !important;
  }

  .header .content .register-button a{
    padding-inline:.62rem !important;
    font-size:1.16rem !important;
  }
}

/* 1.3.2.13: Rebuilt desktop/mobile navigation shell.
   The header no longer depends on the generic .container class. The navigation uses
   its own max-width wrapper, a real two-column grid, and switches to the mobile
   hamburger layout before the long desktop menu becomes cramped. */
:root{
  --mrmw-nav-max: var(--container-max, 1300px);
  --mrmw-nav-gutter: clamp(1.4rem, 3vw, 3.2rem);
  --mrmw-nav-height: 7rem;
}

.header .mrmw-nav-inner{
  width:min(var(--mrmw-nav-max), calc(100% - (var(--mrmw-nav-gutter) * 2)));
  max-width:var(--mrmw-nav-max);
  min-height:var(--mrmw-nav-height);
  margin-inline:auto;
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  align-items:center;
  gap:clamp(1.4rem, 2vw, 3rem);
}

.header .mrmw-nav-inner .site-logo{
  min-width:0;
  max-width:clamp(15rem, 14vw, 22rem);
  display:flex;
  align-items:center;
}

.header .mrmw-nav-inner .site-logo-link{
  display:inline-flex;
  align-items:center;
  max-width:100%;
}

.header .mrmw-nav-inner .site-logo-link img.small-logo,
.header .mrmw-nav-inner img.custom-logo{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:clamp(5rem, 4.8vw, 7.2rem);
  object-fit:contain;
}

.header .mrmw-nav-inner .content{
  min-width:0;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}

.header .mrmw-nav-inner .navbar{
  width:100%;
  min-width:0;
  height:var(--mrmw-nav-height);
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:clamp(.8rem, 1vw, 1.6rem);
}

.header .mrmw-nav-inner .menu-main-menu-container{
  min-width:0;
  flex:0 1 auto;
}

.header .mrmw-nav-inner .menu-main-menu-container .menu{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-end;
  gap:clamp(.18rem, .45vw, .7rem);
  margin:0;
  padding:0;
}

.header .mrmw-nav-inner .menu-main-menu-container .menu > li,
.header .mrmw-nav-inner .register-button{
  flex:0 0 auto;
}

.header .mrmw-nav-inner .menu-main-menu-container .menu > li > a,
.header .mrmw-nav-inner .register-button a{
  white-space:nowrap;
  line-height:1.1;
  font-size:clamp(1.24rem, .92vw, 1.55rem);
}

.header .mrmw-nav-inner .menu-main-menu-container .menu > li > a{
  padding-inline:clamp(.32rem, .45vw, .85rem);
}

.header .mrmw-nav-inner .menu-main-menu-container ul li > a::after{
  left:clamp(.32rem, .45vw, .85rem);
  right:clamp(.32rem, .45vw, .85rem);
}

.header .mrmw-nav-inner .register-button{
  margin-left:clamp(.35rem, .55vw, .9rem);
}

.header .mrmw-nav-inner .register-button a{
  padding-inline:clamp(.9rem, .9vw, 1.55rem);
}

@media (min-width:1200px) and (max-width:1320px){
  .header .mrmw-nav-inner{
    width:calc(100% - 2.4rem);
    gap:clamp(1rem, 1.3vw, 1.8rem);
  }

  .header .mrmw-nav-inner .site-logo{
    max-width:clamp(13.2rem, 13vw, 16.5rem);
  }

  .header .mrmw-nav-inner .site-logo-link img.small-logo,
  .header .mrmw-nav-inner img.custom-logo{
    max-height:5.6rem;
  }

  .header .mrmw-nav-inner .navbar{
    gap:.65rem;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu{
    gap:.05rem;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > a{
    padding-inline:.26rem;
    font-size:1.16rem;
  }

  .header .mrmw-nav-inner .menu-main-menu-container ul li > a::after{
    left:.26rem;
    right:.26rem;
  }

  .header .mrmw-nav-inner .register-button{
    margin-left:.25rem;
  }

  .header .mrmw-nav-inner .register-button a{
    padding-inline:.72rem;
    font-size:1.16rem;
  }
}

@media (max-width:1199px){
  .header .mrmw-nav-inner{
    width:calc(100% - 2.4rem);
    max-width:none;
    min-height:var(--mrmw-nav-height);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.2rem;
  }

  .header .mrmw-nav-inner .site-logo{
    max-width:min(22rem, 45vw);
  }

  .header .mrmw-nav-inner .site-logo-link img.small-logo{
    display:block;
    max-height:5.6rem;
  }

  .header .mrmw-nav-inner .site-logo-link img.mobile-logo{
    display:none;
  }

  .header .mrmw-nav-inner .content{
    width:auto;
    flex:0 0 auto;
  }

  .header .mrmw-nav-inner .navbar{
    width:auto;
    height:var(--mrmw-nav-height);
    gap:1rem;
  }

  .header .mrmw-nav-inner .hamburger{
    display:block !important;
    order:3;
    padding:0;
  }

  .header .mrmw-nav-inner .register-button{
    order:2;
    margin-left:0;
  }

  .header .mrmw-nav-inner .register-button a{
    padding-inline:1.2rem;
    font-size:1.25rem;
  }

  .header .mrmw-nav-inner .menu-main-menu-container{
    order:4;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu{
    position:fixed;
    left:-110%;
    top:var(--mrmw-nav-height);
    z-index:999;
    width:100%;
    max-height:calc(100vh - var(--mrmw-nav-height));
    overflow:auto;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap:0;
    padding:1.2rem 0;
    margin:0;
    background-color:#262626f0;
    text-align:center;
    transition:left .3s ease;
  }

  #navbar-sticky .menu-main-menu-container .menu,
  .other .mrmw-nav-inner .menu-main-menu-container .menu{
    background-color:#aeacacf0;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu.active{
    left:0;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li{
    width:100%;
    margin:0;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > a{
    display:flex;
    justify-content:center;
    width:100%;
    padding:1.2rem 1.6rem;
    font-size:1.5rem;
  }
}

@media (max-width:520px){
  .header .mrmw-nav-inner{
    width:calc(100% - 2rem);
  }

  .header .mrmw-nav-inner .site-logo{
    max-width:50vw;
  }

  .header .mrmw-nav-inner .site-logo-link img.small-logo{
    display:none;
  }

  .header .mrmw-nav-inner .site-logo-link img.mobile-logo{
    display:block;
    max-height:5.2rem;
  }

  .header .mrmw-nav-inner .register-button a{
    padding-inline:.9rem;
    font-size:1.15rem;
  }
}

/* 1.3.2.14: Desktop navigation should use the available width instead of leaving a blank band.
   The logo keeps a real column, the menu fills the remaining space, and Register stays fixed. */
@media (min-width:1200px){
  .header .mrmw-nav-inner{
    width:min(var(--mrmw-nav-max, 1300px), calc(100% - 2.4rem)) !important;
    max-width:var(--mrmw-nav-max, 1300px) !important;
    display:grid !important;
    grid-template-columns:minmax(12.8rem, auto) minmax(0, 1fr) !important;
    align-items:center !important;
    gap:clamp(1rem, 1.35vw, 2.2rem) !important;
    margin-inline:auto !important;
  }

  .header .mrmw-nav-inner .site-logo{
    flex:0 0 auto !important;
    max-width:clamp(13rem, 12vw, 20rem) !important;
    min-width:0 !important;
  }

  .header .mrmw-nav-inner .site-logo-link img.small-logo,
  .header .mrmw-nav-inner img.custom-logo{
    max-height:clamp(5.1rem, 4.3vw, 7rem) !important;
  }

  .header .mrmw-nav-inner .content{
    width:100% !important;
    min-width:0 !important;
    flex:1 1 auto !important;
    display:flex !important;
    align-items:center !important;
    justify-content:stretch !important;
  }

  .header .mrmw-nav-inner .navbar{
    width:100% !important;
    min-width:0 !important;
    height:var(--mrmw-nav-height, 7rem) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:stretch !important;
    gap:clamp(.9rem, 1vw, 1.8rem) !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container{
    flex:1 1 auto !important;
    min-width:0 !important;
    width:auto !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu{
    width:100% !important;
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:clamp(.45rem, .65vw, 1rem) !important;
    margin:0 !important;
    padding:0 !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li{
    flex:0 0 auto !important;
    margin:0 !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > a{
    white-space:nowrap !important;
    padding-inline:clamp(.08rem, .18vw, .35rem) !important;
    font-size:clamp(1.34rem, .86vw, 1.7rem) !important;
    line-height:1.08 !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container ul li > a::after{
    left:clamp(.08rem, .18vw, .35rem) !important;
    right:clamp(.08rem, .18vw, .35rem) !important;
  }

  .header .mrmw-nav-inner .register-button{
    flex:0 0 auto !important;
    margin-left:clamp(.7rem, .85vw, 1.4rem) !important;
  }

  .header .mrmw-nav-inner .register-button a{
    white-space:nowrap !important;
    padding-inline:clamp(1rem, .95vw, 1.7rem) !important;
    font-size:clamp(1.34rem, .86vw, 1.7rem) !important;
    line-height:1.08 !important;
  }
}

@media (min-width:1200px) and (max-width:1320px){
  .header .mrmw-nav-inner{
    width:calc(100% - 1.8rem) !important;
    grid-template-columns:minmax(11.8rem, auto) minmax(0, 1fr) !important;
    gap:.9rem !important;
  }

  .header .mrmw-nav-inner .site-logo{
    max-width:clamp(11.8rem, 12vw, 15rem) !important;
  }

  .header .mrmw-nav-inner .site-logo-link img.small-logo,
  .header .mrmw-nav-inner img.custom-logo{
    max-height:5.3rem !important;
  }

  .header .mrmw-nav-inner .navbar{
    gap:.65rem !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu{
    gap:.35rem !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > a{
    padding-inline:.05rem !important;
    font-size:1.28rem !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container ul li > a::after{
    left:.05rem !important;
    right:.05rem !important;
  }

  .header .mrmw-nav-inner .register-button{
    margin-left:.55rem !important;
  }

  .header .mrmw-nav-inner .register-button a{
    padding-inline:.9rem !important;
    font-size:1.28rem !important;
  }
}

@media (min-width:1321px){
  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > a,
  .header .mrmw-nav-inner .register-button a{
    font-size:clamp(1.45rem, .82vw, 1.72rem) !important;
  }
}

/* 1.3.2.15: Navigation redistribution refinement.
   Desktop navigation now keeps the logo, menu and CTA in one proportional row.
   The menu uses space-evenly so the available width is shared on both sides and
   between menu items, while the mobile hamburger breakpoint is delayed to 999px.
   Between 1000px and 1199px long menu labels may wrap to two lines instead of
   forcing an early hamburger layout. */
@media (min-width:1000px){
  .header .mrmw-nav-inner{
    --mrmw-nav-height:7rem;
    width:min(var(--mrmw-nav-max, 1300px), calc(100% - clamp(1.6rem, 2.4vw, 3.2rem))) !important;
    max-width:var(--mrmw-nav-max, 1300px) !important;
    min-height:var(--mrmw-nav-height) !important;
    margin-inline:auto !important;
    display:grid !important;
    grid-template-columns:auto minmax(0, 1fr) !important;
    align-items:center !important;
    gap:clamp(1.2rem, 1.6vw, 2.8rem) !important;
  }

  .header .mrmw-nav-inner .site-logo{
    flex:0 0 auto !important;
    width:auto !important;
    max-width:clamp(13rem, 12vw, 20rem) !important;
    min-width:0 !important;
    display:flex !important;
    align-items:center !important;
  }

  .header .mrmw-nav-inner .site-logo-link{
    display:inline-flex !important;
    align-items:center !important;
    max-width:100% !important;
  }

  .header .mrmw-nav-inner .site-logo-link img.small-logo,
  .header .mrmw-nav-inner img.custom-logo{
    width:auto !important;
    height:auto !important;
    max-width:100% !important;
    max-height:clamp(5.2rem, 4.4vw, 7rem) !important;
    object-fit:contain !important;
  }

  .header .mrmw-nav-inner .site-logo-link img.mobile-logo{
    display:none !important;
  }

  .header .mrmw-nav-inner .content{
    width:100% !important;
    min-width:0 !important;
    display:block !important;
  }

  .header .mrmw-nav-inner .navbar{
    width:100% !important;
    min-width:0 !important;
    height:var(--mrmw-nav-height) !important;
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) auto !important;
    align-items:center !important;
    column-gap:clamp(.9rem, 1.1vw, 1.8rem) !important;
  }

  .header .mrmw-nav-inner .hamburger{
    display:none !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container{
    min-width:0 !important;
    width:100% !important;
    flex:none !important;
    order:initial !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu{
    position:static !important;
    left:auto !important;
    top:auto !important;
    z-index:auto !important;
    width:100% !important;
    max-height:none !important;
    overflow:visible !important;
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:space-evenly !important;
    gap:clamp(.15rem, .35vw, .7rem) !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    text-align:center !important;
    transition:none !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li{
    flex:0 1 auto !important;
    width:auto !important;
    min-width:0 !important;
    margin:0 !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > a,
  .header .mrmw-nav-inner .register-button a{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    white-space:nowrap !important;
    text-align:center !important;
    line-height:1.08 !important;
    font-size:clamp(1.38rem, .9vw, 1.72rem) !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > a{
    padding-inline:clamp(.12rem, .25vw, .5rem) !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container ul li > a::after{
    left:clamp(.12rem, .25vw, .5rem) !important;
    right:clamp(.12rem, .25vw, .5rem) !important;
  }

  .header .mrmw-nav-inner .register-button{
    flex:0 0 auto !important;
    order:initial !important;
    margin-left:0 !important;
  }

  .header .mrmw-nav-inner .register-button a{
    padding-inline:clamp(1rem, .9vw, 1.65rem) !important;
  }
}

@media (min-width:1200px) and (max-width:1320px){
  .header .mrmw-nav-inner{
    width:calc(100% - 1.8rem) !important;
    gap:1rem !important;
  }

  .header .mrmw-nav-inner .site-logo{
    max-width:clamp(11rem, 11vw, 14.2rem) !important;
  }

  .header .mrmw-nav-inner .site-logo-link img.small-logo,
  .header .mrmw-nav-inner img.custom-logo{
    max-height:5.2rem !important;
  }

  .header .mrmw-nav-inner .navbar{
    column-gap:.75rem !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu{
    justify-content:space-evenly !important;
    gap:.08rem !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > a,
  .header .mrmw-nav-inner .register-button a{
    font-size:1.3rem !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > a{
    padding-inline:.04rem !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container ul li > a::after{
    left:.04rem !important;
    right:.04rem !important;
  }

  .header .mrmw-nav-inner .register-button a{
    padding-inline:.85rem !important;
  }
}

@media (min-width:1000px) and (max-width:1199px){
  .header .mrmw-nav-inner{
    width:calc(100% - 1.4rem) !important;
    max-width:none !important;
    display:grid !important;
    grid-template-columns:auto minmax(0, 1fr) !important;
    gap:.75rem !important;
  }

  .header .mrmw-nav-inner .site-logo{
    max-width:clamp(8.8rem, 10vw, 12rem) !important;
  }

  .header .mrmw-nav-inner .site-logo-link img.small-logo,
  .header .mrmw-nav-inner img.custom-logo{
    display:block !important;
    max-height:4.8rem !important;
  }

  .header .mrmw-nav-inner .navbar{
    display:grid !important;
    grid-template-columns:minmax(0, 1fr) auto !important;
    column-gap:.55rem !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu{
    display:flex !important;
    flex-direction:row !important;
    justify-content:space-evenly !important;
    align-items:center !important;
    width:100% !important;
    gap:.05rem !important;
    padding:0 !important;
    background:transparent !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > a{
    white-space:normal !important;
    max-width:11rem !important;
    min-height:3rem !important;
    padding-inline:.12rem !important;
    font-size:1.22rem !important;
    line-height:1.05 !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container ul li > a::after{
    left:.12rem !important;
    right:.12rem !important;
  }

  .header .mrmw-nav-inner .register-button a{
    font-size:1.22rem !important;
    padding-inline:.75rem !important;
  }
}

@media (max-width:999px){
  .header .mrmw-nav-inner{
    width:calc(100% - 2.4rem) !important;
    max-width:none !important;
    min-height:var(--mrmw-nav-height, 7rem) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:1.2rem !important;
  }

  .header .mrmw-nav-inner .site-logo{
    max-width:min(22rem, 45vw) !important;
  }

  .header .mrmw-nav-inner .site-logo-link img.small-logo{
    display:block !important;
    max-height:5.6rem !important;
  }

  .header .mrmw-nav-inner .site-logo-link img.mobile-logo{
    display:none !important;
  }

  .header .mrmw-nav-inner .content{
    width:auto !important;
    flex:0 0 auto !important;
  }

  .header .mrmw-nav-inner .navbar{
    width:auto !important;
    height:var(--mrmw-nav-height, 7rem) !important;
    display:flex !important;
    align-items:center !important;
    gap:1rem !important;
  }

  .header .mrmw-nav-inner .hamburger{
    display:block !important;
    order:3 !important;
    padding:0 !important;
  }

  .header .mrmw-nav-inner .register-button{
    order:2 !important;
    margin-left:0 !important;
  }

  .header .mrmw-nav-inner .register-button a{
    padding-inline:1.2rem !important;
    font-size:1.25rem !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container{
    order:4 !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu{
    position:fixed !important;
    left:-110% !important;
    top:var(--mrmw-nav-height, 7rem) !important;
    z-index:999 !important;
    width:100% !important;
    max-height:calc(100vh - var(--mrmw-nav-height, 7rem)) !important;
    overflow:auto !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:0 !important;
    padding:1.2rem 0 !important;
    margin:0 !important;
    background-color:#262626f0 !important;
    text-align:center !important;
    transition:left .3s ease !important;
  }

  #navbar-sticky .menu-main-menu-container .menu,
  .other .mrmw-nav-inner .menu-main-menu-container .menu{
    background-color:#aeacacf0 !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu.active{
    left:0 !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li{
    width:100% !important;
    margin:0 !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > a{
    display:flex !important;
    justify-content:center !important;
    width:100% !important;
    padding:1.2rem 1.6rem !important;
    font-size:1.5rem !important;
  }
}

/* 1.3.2.16: Keep desktop-width submenus hidden until hover/focus.
   The desktop navigation is active down to 1000px, so the old <=1024 mobile rule
   must not expose child menus automatically in the 1000-1024px range. */
@media (min-width:1000px){
  .header .mrmw-nav-inner .menu-main-menu-container .menu > li{
    position:relative !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul{
    position:absolute !important;
    top:calc(100% + .8rem) !important;
    left:50% !important;
    z-index:1000 !important;
    width:max-content !important;
    min-width:22rem !important;
    max-width:32rem !important;
    max-height:none !important;
    overflow:visible !important;
    display:block !important;
    flex-direction:initial !important;
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
    transform:translateX(-50%) translateY(.6rem) !important;
    padding:1rem 0 !important;
    margin:0 !important;
    background:rgba(255,255,255,.94) !important;
    color:#111827 !important;
    border:0 !important;
    border-top:2px solid #2F8CCC !important;
    border-radius:.5rem !important;
    box-shadow:0 1rem 3rem rgba(0,0,0,.16) !important;
    text-align:left !important;
    transition:opacity .18s ease, transform .18s ease, visibility .18s ease !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li:hover > ul,
  .header .mrmw-nav-inner .menu-main-menu-container .menu > li:focus-within > ul{
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    transform:translateX(-50%) translateY(0) !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul li{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul li a{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    width:100% !important;
    min-height:0 !important;
    max-width:none !important;
    padding:1rem 1.5rem !important;
    color:#111827 !important;
    font-size:1.4rem !important;
    line-height:1.35 !important;
    text-align:left !important;
    white-space:nowrap !important;
    text-transform:uppercase !important;
    background:transparent !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul li a:hover,
  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul li a:focus-visible{
    color:#2F8CCC !important;
    background:#f6f9fc !important;
    opacity:1 !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul li a::after{
    display:none !important;
    content:none !important;
  }
}

/* 1.3.2.17: Desktop submenu hover bridge and horizontal underline fix.
   Desktop navigation remains active down to 1000px. The submenu must touch the
   parent item hit area, otherwise hover is lost while moving the cursor down.
   A legacy dropdown rule also rotated the underline in the 1000-1024px range;
   force top-level accents to stay horizontal. */
@media (min-width:1000px){
  .header .mrmw-nav-inner .menu-main-menu-container .menu > li,
  .navbar .menu-main-menu-container .menu > li{
    position:relative !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul,
  .navbar .menu-main-menu-container .menu > li > ul{
    top:100% !important;
    margin-top:0 !important;
    transform:translateX(-50%) translateY(0) !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li:hover > ul,
  .header .mrmw-nav-inner .menu-main-menu-container .menu > li:focus-within > ul,
  .navbar .menu-main-menu-container .menu > li:hover > ul,
  .navbar .menu-main-menu-container .menu > li:focus-within > ul{
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    transform:translateX(-50%) translateY(0) !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > a::after,
  .navbar .menu-main-menu-container .menu > li > a::after{
    height:2px !important;
    width:auto !important;
    top:auto !important;
    bottom:.55rem !important;
    transform-origin:left center !important;
    rotate:0deg !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li:hover > a::after,
  .header .mrmw-nav-inner .menu-main-menu-container .menu > li:focus-within > a::after,
  .header .mrmw-nav-inner .menu-main-menu-container .menu > li.current-menu-item > a::after,
  .navbar .menu-main-menu-container .menu > li:hover > a::after,
  .navbar .menu-main-menu-container .menu > li:focus-within > a::after,
  .navbar .menu-main-menu-container .menu > li.current-menu-item > a::after{
    transform:scaleX(1) !important;
    rotate:0deg !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul a::after,
  .navbar .menu-main-menu-container .menu > li > ul a::after{
    display:none !important;
    content:none !important;
    transform:none !important;
  }
}

@media (min-width:1000px) and (max-width:1199px){
  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul,
  .navbar .menu-main-menu-container .menu > li > ul{
    min-width:22rem !important;
    left:50% !important;
    top:100% !important;
  }
}

/* 1.3.2.18: Touch-accessible mobile dropdown navigation.
   Desktop keeps hover/focus dropdowns; mobile uses explicit submenu toggle buttons. */
.header .mrmw-nav-inner .submenu-toggle{
  display:none;
}

@media (max-width:999px){
  .header .mrmw-nav-inner .menu-main-menu-container .menu > li.menu-item-has-children,
  .header .mrmw-nav-inner .menu-main-menu-container .menu > li.dropdown{
    position:relative !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li.menu-item-has-children > a,
  .header .mrmw-nav-inner .menu-main-menu-container .menu > li.dropdown > a{
    padding-right:5.2rem !important;
    padding-left:5.2rem !important;
  }

  .header .mrmw-nav-inner .submenu-toggle{
    position:absolute;
    top:.55rem;
    right:1rem;
    z-index:2;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:4rem;
    height:4rem;
    padding:0;
    border:0;
    border-radius:999px;
    background:rgba(255,255,255,.14);
    color:#fff;
    cursor:pointer;
    appearance:none;
    transition:background .18s ease, transform .18s ease;
  }

  .other .mrmw-nav-inner .submenu-toggle,
  #navbar-sticky .submenu-toggle{
    color:#111827;
    background:rgba(17,24,39,.08);
  }

  .header .mrmw-nav-inner .submenu-toggle:hover,
  .header .mrmw-nav-inner .submenu-toggle:focus-visible{
    background:rgba(47,140,204,.22);
    outline:0;
    box-shadow:0 0 0 3px rgba(47,140,204,.28);
  }

  .header .mrmw-nav-inner .submenu-toggle span{
    width:.9rem;
    height:.9rem;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:translateY(-.15rem) rotate(45deg);
    transition:transform .18s ease;
  }

  .header .mrmw-nav-inner .submenu-toggle[aria-expanded="true"] span{
    transform:translateY(.15rem) rotate(225deg);
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul{
    position:static !important;
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    max-height:none !important;
    overflow:visible !important;
    transform:none !important;
    margin:.2rem 0 .8rem !important;
    padding:.35rem 0 !important;
    background:rgba(255,255,255,.10) !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    text-align:center !important;
    transition:none !important;
  }

  .other .mrmw-nav-inner .menu-main-menu-container .menu > li > ul,
  #navbar-sticky .menu-main-menu-container .menu > li > ul{
    background:rgba(255,255,255,.42) !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li.submenu-open > ul{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul li{
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul li a{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    padding:.95rem 1.6rem !important;
    color:#fff !important;
    font-size:1.36rem !important;
    line-height:1.3 !important;
    text-align:center !important;
    white-space:normal !important;
    text-transform:uppercase !important;
    background:transparent !important;
  }

  .other .mrmw-nav-inner .menu-main-menu-container .menu > li > ul li a,
  #navbar-sticky .menu-main-menu-container .menu > li > ul li a{
    color:#111827 !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul li a:hover,
  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul li a:focus-visible{
    color:#2F8CCC !important;
    background:rgba(255,255,255,.12) !important;
  }

  .header .mrmw-nav-inner .menu-main-menu-container .menu > li > ul li a::after{
    display:none !important;
    content:none !important;
  }
}
