@media (min-width: 961px) {
  .nav-drawer-head, .nav-drawer-footer { display: none; }
  .nav-drawer-body { display: contents; }
}

.gv-wa-float { display: grid; position: fixed; z-index: 50; right: 22px; bottom: 22px; width: 58px; height: 58px; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(135deg, #2be374, #1da851); box-shadow: 0 12px 30px rgba(20,140,70,.4), 0 0 0 0 rgba(37,211,102,.5); animation: gv-wa-pulse 2.6s ease-out infinite; transition: transform .2s ease, box-shadow .2s ease; }
.gv-wa-float:hover, .gv-wa-float:focus-visible { transform: scale(1.07); box-shadow: 0 16px 36px rgba(20,140,70,.48); }
.gv-wa-float svg { width: 30px; height: 30px; fill: currentColor; }
.gv-wa-float-badge { position: absolute; top: -2px; right: -2px; display: grid; min-width: 20px; height: 20px; place-items: center; border: 2px solid #fff; border-radius: 50%; color: #fff; background: #ff4d4f; font: 700 11px/1 "Poppins", Arial, sans-serif; }
@keyframes gv-wa-pulse { 0% { box-shadow: 0 12px 30px rgba(20,140,70,.4), 0 0 0 0 rgba(37,211,102,.45); } 70% { box-shadow: 0 12px 30px rgba(20,140,70,.4), 0 0 0 14px rgba(37,211,102,0); } 100% { box-shadow: 0 12px 30px rgba(20,140,70,.4), 0 0 0 0 rgba(37,211,102,0); } }
@media (max-width: 640px) { .gv-wa-float { right: 16px; bottom: 16px; width: 52px; height: 52px; } .gv-wa-float svg { width: 26px; height: 26px; } }
@media (prefers-reduced-motion: reduce) { .gv-wa-float { animation: none; } }

/* Mobile-only floating counterpart to .nav-desktop-resource (hidden below 960px, see the
   media query further down) — same gold-pill + navy-icon-badge language and the same
   nav-resource-glint sweep as the desktop nav pill, so it reads as the same feature, not a
   new one, plus a soft pulsing ring (borrowed from .gv-wa-float's language) since this button
   specifically needs to be noticed, not just present.
   Bottom-anchored at the same height as .gv-wa-float (left edge vs. its right edge) rather than
   vertical-center — center-anchoring meant it could drift over whatever content happened to be
   at viewport-center on any given page/scroll position (confirmed colliding with the /webinar
   hero on a standard 390x844 phone); anchoring both floating buttons to the same bottom offset
   keeps them predictably paired below all scrollable content instead. */
.gv-lib-float { display: none; position: fixed; z-index: 49; left: 0; bottom: 22px; align-items: center; gap: 9px; overflow: hidden; padding: 12px 17px 12px 11px; border: 1px solid rgba(255,226,122,.72); border-radius: 0 999px 999px 0; color: var(--navy-deep); background: linear-gradient(135deg, var(--gold-light), var(--gold)); box-shadow: 6px 10px 26px rgba(4,26,60,.28), inset 0 1px rgba(255,255,255,.42); text-decoration: none; font: 700 12px/1.2 "Poppins", Arial, sans-serif; animation: gv-lib-pulse 2.8s ease-in-out infinite; transition: transform .2s ease, box-shadow .2s ease; }
.gv-lib-float::after { position: absolute; top: -18px; left: -42px; width: 26px; height: 96px; background: rgba(255,255,255,.4); content: ""; transform: rotate(24deg); animation: nav-resource-glint 4.8s ease-in-out infinite; }
.gv-lib-float:hover, .gv-lib-float:focus-visible { transform: scale(1.045); box-shadow: 8px 14px 30px rgba(4,26,60,.34), inset 0 1px rgba(255,255,255,.5); }
.gv-lib-float-icon { position: relative; z-index: 1; display: grid; width: 29px; height: 29px; flex: none; place-items: center; border-radius: 50%; color: var(--white); background: var(--navy); box-shadow: 0 4px 10px rgba(5,32,79,.25); }
.gv-lib-float-icon svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.gv-lib-float-text { position: relative; z-index: 1; max-width: 78px; line-height: 1.2; }
@keyframes gv-lib-pulse { 0%, 100% { box-shadow: 6px 10px 26px rgba(4,26,60,.28), 0 0 0 0 rgba(240,184,26,.55); } 60% { box-shadow: 6px 10px 26px rgba(4,26,60,.28), 0 0 0 13px rgba(240,184,26,0); } }
@media (max-width: 960px) { .gv-lib-float { display: flex; } }
@media (max-width: 640px) { .gv-lib-float { bottom: 16px; } }
@media (max-width: 380px) { .gv-lib-float { padding: 10px 14px 10px 9px; gap: 8px; } .gv-lib-float-icon { width: 26px; height: 26px; } .gv-lib-float-text { max-width: 68px; font-size: 11px; } }
@media (prefers-reduced-motion: reduce) { .gv-lib-float, .gv-lib-float::after { animation: none; } }

.service-menu { position: relative; }
.service-menu-toggle { display: inline-flex; min-height: 44px; align-items: center; gap: 5px; padding: 0; border: 0; color: inherit; background: transparent; cursor: pointer; font: inherit; font-weight: inherit; }
.service-menu-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; transition: transform .2s ease; }
.service-menu-toggle:hover, .service-menu.is-current .service-menu-toggle, .service-menu.is-open .service-menu-toggle { color: var(--gold-light); }
.service-menu.is-open .service-menu-toggle svg { transform: rotate(180deg); }
.service-menu-panel { position: absolute; z-index: 30; top: calc(100% + 14px); right: -104px; display: grid; width: min(756px, calc(100vw - 48px)); grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 12px; border: 1px solid rgba(5,32,79,.1); border-radius: 20px; background: rgba(255,255,255,.98); box-shadow: 0 24px 54px rgba(1,16,40,.28); opacity: 0; pointer-events: none; transform: translateY(-8px) scale(.985); transition: opacity .2s ease, transform .2s ease, visibility .2s ease; visibility: hidden; }
/* Preserve the visual breathing room above the mega menu without creating a mouse-leave gap. */
.service-menu.is-open::after { position: absolute; z-index: 29; top: 100%; right: -104px; width: min(756px, calc(100vw - 48px)); height: 14px; content: ""; }
.service-menu-panel::before { position: absolute; top: -6px; right: 122px; width: 12px; height: 12px; border-top: 1px solid rgba(5,32,79,.1); border-left: 1px solid rgba(5,32,79,.1); background: #fff; content: ""; transform: rotate(45deg); }
.service-menu.is-open .service-menu-panel { opacity: 1; pointer-events: auto; transform: none; visibility: visible; }
.nav-links .service-menu-card { --service-card: #f0b81a; position: relative; display: flex; min-height: 0; gap: 14px; overflow: hidden; padding: 16px; border: 1px solid rgba(5,32,79,.09); border-radius: 14px; color: var(--navy); background: #fffbf1; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.nav-links .service-menu-card::after { position: absolute; right: -35px; bottom: -42px; width: 132px; height: 132px; border: 1px solid color-mix(in srgb, var(--service-card) 45%, transparent); border-radius: 50%; box-shadow: 0 0 0 22px color-mix(in srgb, var(--service-card) 8%, transparent); content: ""; }
.nav-links .service-menu-card--work { --service-card: #0a3677; background: #f4f7fc; }
.nav-links .service-menu-card--pr { --service-card: #1f7a8c; background: #f1faf9; }
.nav-links .service-menu-card:hover, .nav-links .service-menu-card:focus-visible { border-color: color-mix(in srgb, var(--service-card) 58%, white); color: var(--navy); box-shadow: 0 14px 28px rgba(5,32,79,.12); transform: translateY(-3px); }
.service-menu-icon { position: relative; z-index: 1; display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 14px 14px 14px 5px; color: #fff; background: linear-gradient(145deg, var(--service-card), color-mix(in srgb, var(--service-card) 64%, #05204f)); box-shadow: 0 9px 17px color-mix(in srgb, var(--service-card) 25%, transparent); }
.service-menu-icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.service-menu-copy { position: relative; z-index: 1; display: flex; min-width: 0; flex: 1; flex-direction: column; }
.service-menu-copy strong { display: block; margin: 2px 0 7px; color: var(--navy); font-size: 14px; line-height: 1.25; }
.service-menu-copy > span { color: #52637a; font-size: 11px; font-weight: 500; line-height: 1.52; }
.service-menu-copy em { display: inline-flex; align-items: center; gap: 5px; margin-top: 10px; color: color-mix(in srgb, var(--service-card) 72%, #05204f); font-size: 10.5px; font-style: normal; font-weight: 700; }
.service-menu-copy em b { font-size: 14px; font-weight: 500; transition: transform .2s ease; }
.service-menu-card:hover .service-menu-copy em b { transform: translateX(3px); }
.nav-links .nav-resource { position: relative; display: inline-flex; min-height: 42px; align-items: center; gap: 7px; overflow: hidden; padding: 8px 12px 8px 9px; border: 1px solid rgba(255,226,122,.72); border-radius: 999px; color: var(--navy-deep); background: linear-gradient(135deg, var(--gold-light), var(--gold)); box-shadow: 0 8px 20px rgba(240,184,26,.2), inset 0 1px rgba(255,255,255,.42); font-size: 11.5px; font-weight: 700; line-height: 1; white-space: nowrap; transition: box-shadow .2s ease, transform .2s ease, background .2s ease; }
.nav-links .nav-resource::after { position: absolute; top: -18px; left: -42px; width: 26px; height: 76px; background: rgba(255,255,255,.35); content: ""; transform: rotate(24deg); animation: nav-resource-glint 4.8s ease-in-out infinite; }
.nav-resource-icon { position: relative; z-index: 1; display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; color: var(--white); background: var(--navy); box-shadow: 0 4px 10px rgba(5,32,79,.2); }
.nav-resource-icon svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.nav-links .nav-resource > span:last-child { position: relative; z-index: 1; }
.nav-links .nav-resource:hover, .nav-links .nav-resource:focus-visible, .nav-links .nav-resource[aria-current="page"] { color: var(--navy-deep); background: #fff1a3; box-shadow: 0 12px 26px rgba(240,184,26,.32), inset 0 1px rgba(255,255,255,.6); transform: translateY(-2px); }
@keyframes nav-resource-glint { 0%, 72%, 100% { transform: translateX(0) rotate(24deg); opacity: 0; } 78% { opacity: .9; } 92% { transform: translateX(182px) rotate(24deg); opacity: 0; } }

@media (max-width: 960px) {
  .nav-drawer-head, .nav-drawer-footer { display: flex; }
  .nav-links .nav-row.nav-desktop-resource { display: none !important; }
  .nav-links.open .service-menu { width: 100%; }
  .nav-links.open .service-menu-toggle { justify-content: space-between; color: #dbe8fc; text-align: left; }
  .nav-links.open .service-menu.is-current .service-menu-toggle, .nav-links.open .service-menu.is-open .service-menu-toggle { color: var(--gold-light); background: rgba(240,184,26,.09); }
  .nav-links.open .service-menu-panel { position: static; display: grid; width: 100%; grid-template-columns: 1fr; gap: 8px; max-height: 0; margin: 0; padding: 0 6px; overflow: hidden; border: 0; border-radius: 12px; box-shadow: none; opacity: 1; pointer-events: auto; transform: none; visibility: visible; transition: max-height .32s ease, padding .32s ease, margin .32s ease; }
  .nav-links.open .service-menu.is-open::after { display: none; }
  .nav-links.open .service-menu-panel::before { display: none; }
  .nav-links.open .service-menu.is-open .service-menu-panel { max-height: 420px; margin: 6px 0 4px; padding: 6px; }
  .nav-links.open .service-menu-card { min-height: 0; padding: 13px 12px; border-radius: 10px; }
  .nav-links.open .service-menu-icon { width: 38px; height: 38px; border-radius: 12px 12px 12px 4px; }
  .nav-links.open .service-menu-copy strong { margin: 1px 0 3px; font-size: 13px; }
  .nav-links.open .service-menu-copy > span { font-size: 10.5px; }
  .nav-links.open .service-menu-copy em { display: none; }
  .nav-links.open .nav-resource { justify-content: center; font-size: 13px; }
  .nav-links.open .nav-resource::after { animation: none; }
}

@media (prefers-reduced-motion: reduce) {
  .service-menu-toggle svg, .service-menu-panel, .nav-links .service-menu-card, .service-menu-copy em b, .nav-links .nav-resource { transition: none; }
  .nav-links .nav-resource::after { animation: none; }
}
