:root{
  --swgr-orange:#ff6b35; --swgr-orange-light:#ff8555; --swgr-orange-dark:#e85525; --swgr-orange-soft:#ffe9e0;
  --swgr-navy:#1a2840; --swgr-slate:#475569; --swgr-muted:#717182; --swgr-light:#f8fafc; --swgr-border:#e2e8f0;
  --swgr-grad-orange:linear-gradient(135deg,#ff6b35,#ff8555);
  --swgr-grad:linear-gradient(135deg,#f9fafb 0%,#eff6ff 100%);
  --swgr-hw:600;
  --swgr-shadow:0 10px 30px -12px rgba(26,40,64,.18);
}
.swgr-wrap{max-width:1240px;margin:0 auto !important;padding:0 24px !important;}

/* =========================================================
   SWGR United Kingdom — site-wide styles
   Loaded globally by the child theme on every page.
   (Replaces what used to live in Customizer ▸ Additional CSS.)
   ========================================================= */

/* ---- Full-width: let Elementor pages run edge to edge ---- */
.ast-container { max-width:100% !important; padding-left:0 !important; padding-right:0 !important; margin-left:0 !important; margin-right:0 !important; }

/* ---- Off-canvas (hamburger) menu: narrow left panel + link colours ---- */
.ast-mobile-popup-drawer.ast-mobile-popup-full-width .ast-mobile-popup-inner,
.ast-mobile-popup-drawer .ast-mobile-popup-inner { max-width:360px !important; margin-right:auto !important; }
.ast-mobile-popup-drawer .menu-item a { color:#1a2840 !important; }
.ast-mobile-popup-drawer .menu-item a:hover { color:#3b5177 !important; }

/* ---- Sticky header ---- */
#masthead { position:fixed; top:0; left:0; right:0; width:100%; z-index:999; }
#page { padding-top:84px; }
body.admin-bar #masthead { top:32px; }
body.admin-bar #page { padding-top:116px; }
@media (max-width:782px) { body.admin-bar #masthead { top:46px; } body.admin-bar #page { padding-top:130px; } }

/* ---- Stop horizontal scroll without breaking the fixed header ---- */
#page, #content, .site-content { overflow-x:clip; }

/* ---- Homepage hero bottom fade ---- */
.swgr-hero-fade { position:absolute; left:0; right:0; bottom:0; height:150px; background:linear-gradient(to top,#fff,transparent); z-index:1; pointer-events:none; }

/* =========================================================
   SITE FOOTER
   ========================================================= */
.swgr-footer{
  --swgr-orange:#ff6b35; --swgr-navy:#1a2840; --swgr-slate:#475569; --swgr-border:#e2e8f0;
  font-family:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",sans-serif;
  color:var(--swgr-slate); line-height:1.6; -webkit-font-smoothing:antialiased;
  background:#f1f5f9; font-size:14px; text-align:left;
  padding:64px 0 30px;
  /* full-bleed: spans the viewport regardless of Astra's footer container.
     self-adjusting — if the parent is already full width these margins resolve to 0 */
  width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
}
.swgr-footer *{ box-sizing:border-box; margin:0; padding:0; }
.swgr-footer img{ max-width:100%; display:block; }
.swgr-footer a{ text-decoration:none; color:inherit; }
.swgr-footer h4{ color:var(--swgr-navy); font-weight:600; font-size:14px; margin-bottom:16px; }
.swgr-footer .swgr-wrap{ max-width:1240px; margin:0 auto; padding:0 24px; }
.swgr-foot-logo{ max-width:160px; height:auto; margin-bottom:4px; }
.swgr-foot-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr 1fr; gap:36px; }
.swgr-footer p.desc{ margin:18px 0; max-width:300px; }
.swgr-foot-contact{ display:flex; flex-direction:column; gap:10px; }
.swgr-foot-contact span{ display:flex; align-items:center; gap:9px; }
.swgr-foot-contact svg{ width:16px; height:16px; color:var(--swgr-orange); flex:0 0 auto; }
.swgr-footer ul{ list-style:none; display:flex; flex-direction:column; gap:9px; }
.swgr-footer ul a:hover{ color:var(--swgr-orange); }
.swgr-social{ display:flex; justify-content:flex-start; gap:10px; margin:28px 0 0; }
.swgr-social a{ width:34px; height:34px; border-radius:8px; background:#fff; border:1px solid var(--swgr-border); display:flex; align-items:center; justify-content:center; color:var(--swgr-slate); }
.swgr-social a:hover{ color:var(--swgr-orange); border-color:var(--swgr-orange); }
.swgr-social svg{ width:16px; height:16px; }
.swgr-foot-bottom{ display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--swgr-border); margin-top:40px; padding-top:24px; flex-wrap:wrap; gap:14px; }
.swgr-foot-bottom .links{ display:flex; gap:22px; }
.swgr-foot-bottom a:hover{ color:var(--swgr-orange); }
@media(max-width:980px){ .swgr-foot-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .swgr-foot-grid{ grid-template-columns:1fr; } .swgr-foot-bottom{ flex-direction:column; text-align:center; justify-content:center; } }

/* =========================================================
   LOGO WALL — [swgr_logo_wall] shortcode.
   Site-wide reusable logo section: scrolling marquee or static grid,
   dark (navy band) or light theme. Logos are managed centrally under
   Site Logos in the admin menu.
   ========================================================= */
.swgr-logowall{ padding:64px 0 !important; width:100vw; position:relative; left:50%; right:50%; margin-left:-50vw !important; margin-right:-50vw !important; }
.swgr-logowall.is-dark{ background:var(--swgr-navy); }
.swgr-logowall.is-light{ background:var(--swgr-light); }
.swgr-logowall-head{ text-align:center; max-width:640px; margin:0 auto 40px !important; }
.swgr-logowall-eyebrow{ display:inline-block; font-size:13px; font-weight:700; padding:7px 16px !important; border-radius:999px; margin-bottom:20px !important; }
.swgr-logowall.is-dark .swgr-logowall-eyebrow{ background:rgba(255,255,255,.14); color:#ffd9cb; }
.swgr-logowall.is-light .swgr-logowall-eyebrow{ background:#e7ebf3; color:var(--swgr-navy); }
.swgr-logowall.is-dark .swgr-logowall-head h2{ color:#fff; }
.swgr-logowall.is-light .swgr-logowall-head h2{ color:var(--swgr-navy); }
.swgr-logowall-head h2{ font-size:clamp(26px,4vw,34px); font-weight:600; margin:0; }

/* scrolling marquee variant */
.swgr-logowall-marquee{ overflow:hidden; mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.swgr-logowall-track{ display:flex; gap:22px; width:max-content; animation:swgr-logowall-scroll 38s linear infinite; }
.swgr-logowall-marquee:hover .swgr-logowall-track{ animation-play-state:paused; }
@keyframes swgr-logowall-scroll{ to{ transform:translateX(-50%); } }

/* static grid variant */
.swgr-logowall-grid{ display:flex; flex-wrap:wrap; gap:18px; justify-content:center; }

/* shared chip look */
.swgr-logowall-chip{ flex:0 0 auto; min-width:170px; min-height:88px; background:#fff; border-radius:12px; display:flex; align-items:center; justify-content:center; padding:14px 20px !important; }
.swgr-logowall-chip img{ max-height:46px; max-width:128px; width:auto; object-fit:contain; }

.swgr-logowall-cap{ text-align:center; font-size:14px; margin-top:30px !important; }
.swgr-logowall.is-dark .swgr-logowall-cap{ color:#c7d0de; }
.swgr-logowall.is-light .swgr-logowall-cap{ color:var(--swgr-slate); }

@media(max-width:640px){
  .swgr-logowall{ padding:48px 0; }
}
