/* =========================================================================
   Header menu (own markup: Elementor 4 made nav-menu a Pro widget)
   ========================================================================= */
.rils-menu{display:flex;align-items:center;position:static}
.rils-menu__toggle,
.rils-menu button.rils-menu__toggle{
  display:none;
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  border:1px solid var(--rils-border) !important;
  border-radius:var(--rils-r-sm) !important;
  padding:9px 11px !important;
  cursor:pointer;line-height:0;
  box-shadow:none !important;
  color:var(--rils-gold) !important;
  min-width:0;min-height:0;
}
.rils-menu__toggle:hover,
.rils-menu__toggle:focus,
.rils-menu button.rils-menu__toggle:hover{
  background:rgba(231,184,63,.10) !important;
  border-color:var(--rils-gold) !important;
  color:var(--rils-gold) !important;
}
.rils-menu__bars{display:inline-block;width:18px}
.rils-menu__bars span{
  display:block;height:2px;background:var(--rils-gold);border-radius:2px;
  margin:4px 0;transition:transform .2s ease,opacity .2s ease;
}
.rils-menu.is-open .rils-menu__bars span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.rils-menu.is-open .rils-menu__bars span:nth-child(2){opacity:0}
.rils-menu.is-open .rils-menu__bars span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.rils-menu__list{
  list-style:none;margin:0;padding:0;
  display:flex;align-items:center;gap:2px;
}
.rils-menu__list li{position:relative}
.rils-menu__list a{
  display:block;padding:9px 15px;
  font-family:var(--rils-body);font-weight:600;font-size:.95rem;
  color:var(--rils-ink);border-radius:var(--rils-r-pill);
  white-space:nowrap;transition:color .18s ease,background-color .18s ease;
}
.rils-menu__list a:hover{color:var(--rils-gold)}
.rils-menu__list .current-menu-item > a,
.rils-menu__list .current_page_item > a{
  color:var(--rils-gold);background:rgba(231,184,63,.12);
}

/* submenus */
.rils-menu__list .sub-menu{
  list-style:none;margin:0;padding:6px;
  position:absolute;top:calc(100% + 8px);left:0;min-width:200px;
  background:var(--rils-surface);border:1px solid var(--rils-border);
  border-radius:var(--rils-r-md);box-shadow:0 18px 40px rgba(5,10,24,.55);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;
  z-index:100;
}
.rils-menu__list li:hover > .sub-menu,
.rils-menu__list li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:none}
.rils-menu__list .sub-menu a{border-radius:var(--rils-r-sm);font-weight:500}

@media (max-width:1024px){
  /* Must match the weight of the base rule above, which uses
     .rils-menu button.rils-menu__toggle, or the toggle stays hidden. */
  .rils-menu__toggle,
  .rils-menu button.rils-menu__toggle{display:block !important}
  /* Fixed, not absolute: inside the header the nearest positioned ancestor
     was a narrow flex cell, which squeezed the panel into a thin strip.
     The top offset is set from the real header height by the script. */
  .rils-menu__panel{
    position:fixed;
    top:var(--rils-header-h,72px);
    left:12px;right:12px;
    background:var(--rils-surface);
    border:1px solid var(--rils-border);
    border-radius:var(--rils-r-md);
    box-shadow:0 24px 60px rgba(5,10,24,.7);
    padding:8px;
    opacity:0;visibility:hidden;transform:translateY(-8px);
    transition:opacity .2s ease,transform .2s ease,visibility .2s;
    max-height:calc(100vh - var(--rils-header-h,72px) - 24px);
    overflow-y:auto;
    z-index:9999;
  }
  .rils-menu.is-open .rils-menu__panel{opacity:1;visibility:visible;transform:none}
  .rils-menu__list{flex-direction:column;align-items:stretch;gap:0;width:100%}
  .rils-menu__list a{padding:14px 16px;border-radius:var(--rils-r-sm);white-space:normal}
  .rils-menu__list li + li{border-top:1px solid var(--rils-border)}
  .rils-menu__list .sub-menu{
    position:static;opacity:1;visibility:visible;transform:none;
    box-shadow:none;border:0;background:transparent;padding:0 0 0 14px;min-width:0;
  }
}

/* =========================================================================
   Floating contact launcher
   ========================================================================= */
.rils-fab{
  position:fixed;right:22px;bottom:22px;z-index:9998;
  display:flex;flex-direction:column;align-items:flex-end;gap:12px;
}

.rils-fab__items{
  display:flex;flex-direction:column;align-items:flex-end;gap:12px;
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(10px) scale(.94);
  transform-origin:bottom right;
  transition:opacity .22s ease,transform .22s ease,visibility .22s;
}
.rils-fab[data-open="true"] .rils-fab__items{
  opacity:1;visibility:visible;pointer-events:auto;transform:none;
}

.rils-fab__item{
  display:flex;align-items:center;gap:10px;
  color:var(--rils-ink);
}
.rils-fab__ico{
  display:grid;place-items:center;
  width:48px;height:48px;border-radius:50%;
  background:var(--rils-card);
  border:1px solid var(--rils-border);
  box-shadow:0 14px 30px rgba(5,10,24,.6);
  color:var(--rils-gold);
  transition:border-color .2s ease,transform .2s ease,background-color .2s ease;
}
.rils-fab__ico svg{width:23px;height:23px;display:block}
.rils-fab__txt{font-family:var(--rils-head);font-weight:800;font-size:1.05rem;line-height:1}
.rils-fab__item:hover .rils-fab__ico{
  border-color:var(--rils-gold);
  background:var(--rils-surface);
  transform:translateY(-2px);
}

.rils-fab__tip{
  background:var(--rils-card);
  border:1px solid var(--rils-border);
  border-radius:var(--rils-r-pill);
  padding:7px 14px;
  font-family:var(--rils-body);font-size:.82rem;font-weight:600;
  color:var(--rils-ink);white-space:nowrap;
  box-shadow:0 10px 24px rgba(5,10,24,.5);
}

.rils-fab__launch{
  width:58px;height:58px;border-radius:50%;
  background:var(--rils-gold);
  color:var(--rils-on-gold);
  border:0;cursor:pointer;
  display:grid;place-items:center;
  box-shadow:0 16px 36px rgba(5,10,24,.65);
  transition:background-color .2s ease,transform .2s ease;
  position:relative;
}
.rils-fab__launch:hover{background:var(--rils-gold-hover);transform:translateY(-2px)}
.rils-fab__launch svg{width:27px;height:27px;display:block}
.rils-fab__launchIco{
  position:absolute;display:grid;place-items:center;
  transition:opacity .2s ease,transform .2s ease;
}
.rils-fab__launchIco--close{opacity:0;transform:rotate(-90deg) scale(.7)}
.rils-fab[data-open="true"] .rils-fab__launchIco--chat{opacity:0;transform:rotate(90deg) scale(.7)}
.rils-fab[data-open="true"] .rils-fab__launchIco--close{opacity:1;transform:none}

/* A quiet pulse so the launcher is noticed once, without nagging. */
.rils-fab__launch::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  border:2px solid var(--rils-gold);
  animation:rils-fabPulse 2.8s ease-out infinite;
}
.rils-fab[data-open="true"] .rils-fab__launch::after{animation:none;opacity:0}
@keyframes rils-fabPulse{
  0%{transform:scale(1);opacity:.55}
  70%{transform:scale(1.5);opacity:0}
  100%{transform:scale(1.5);opacity:0}
}

@media (max-width:600px){
  .rils-fab{right:16px;bottom:16px;gap:10px}
  .rils-fab__launch{width:52px;height:52px}
  .rils-fab__ico{width:44px;height:44px}
  .rils-fab__tip{font-size:.78rem;padding:6px 12px}
}

@media (prefers-reduced-motion:reduce){
  .rils-fab__launch::after{animation:none;opacity:0}
  .rils-fab__items,.rils-fab__launchIco{transition:none}
}
