/* ==== AFRICA — site layer, element-ID bound ====
   IDs measured on qnetafrica4stg 2026-09-07 (footer = rb-etemplate 59792). Never reuse on another install.
   Footer palette = fleet standard (§8k, qnet.net navy/orange draft). Colour only — layout, radii and spacing stay Elementor's.
   Measured before: ground rgb(18,20,24), links #4c627c = 2.94:1 (fails AA), headings #f75609 = 5.5:1.
   After: links #A9B6C6 on #0E1726 = 8.7:1, headings #F8702E = 6.3:1, hover white = 18:1. */
:root{
  --qn-ft-navy:#0E1726;
  --qn-ft-orange:#F8702E;
  --qn-ft-mute:#A9B6C6;
}
/* ground: the outer footer container */
.footer-wrap .elementor-element-ec77401,
.footer-wrap .elementor-element-6307931c{ background-color:var(--qn-ft-navy) !important; }  /* 6307931c = FR footer template 106325 */
/* the four link / notice panels: a touch lighter than the ground, hairline instead of none */
.footer-wrap .elementor-element-7ebce2c,
.footer-wrap .elementor-element-9e82fb9,
.footer-wrap .elementor-element-bcfe786,
.footer-wrap .elementor-element-93075a4,
.footer-wrap .elementor-element-6a6b569e,
.footer-wrap .elementor-element-5c5824d4{
  background-color:rgba(255,255,255,.045) !important;
  border:1px solid rgba(255,255,255,.09) !important;
}
.footer-wrap .elementor-heading-title{ color:var(--qn-ft-orange) !important; letter-spacing:.01em; }
.footer-wrap a{ color:var(--qn-ft-mute) !important; transition:color .2s ease; }
.footer-wrap a:hover,
.footer-wrap a:focus-visible{ color:#fff !important; }
.footer-wrap p,
.footer-wrap li,
.footer-wrap .elementor-widget-text-editor,
.footer-wrap .elementor-widget-text-editor p,
.footer-wrap .elementor-icon-list-text{ color:var(--qn-ft-mute); }
.footer-wrap svg{ fill:currentColor; }
.footer-wrap a:focus-visible{ outline:3px solid var(--qn-ft-orange); outline-offset:3px; border-radius:4px; }
/* copyright row: same navy, separated by a hairline, never a darker band */
.footer-wrap .elementor-element-ec31728,
.footer-wrap .elementor-element-60cdd50f{ background-color:var(--qn-ft-navy) !important; border-top:0 !important; }  /* no hairline above the DPMS line — Damien 2026-09-18 */
/* the footer keeps the same palette under Foxiz dark mode — it is already the dark surface */
body[data-theme="dark"] .footer-wrap .elementor-element-ec77401,
body[data-theme="dark"] .footer-wrap .elementor-element-6307931c,
body[data-theme="dark"] .footer-wrap .elementor-element-60cdd50f,
body[data-theme="dark"] .footer-wrap .elementor-element-ec31728{ background-color:var(--qn-ft-navy) !important; }
@media (prefers-reduced-motion:reduce){ .footer-wrap a{ transition:none } }

/* ==== WhatsApp channel popup as a small bottom-right toast (EN/FR/SW) — MENA pattern, LTR root so one corner ==== */
.elementor-popup-modal.qn-wa-toast{align-items:flex-end!important;pointer-events:none}
.elementor-popup-modal.qn-wa-toast .dialog-widget-content{pointer-events:auto;position:fixed!important;top:auto!important;bottom:16px!important;right:16px!important;left:auto!important;max-width:330px;box-shadow:0 6px 24px rgba(20,20,20,.16)!important}
.qn-wa-toast .dialog-message{padding:0!important}
.qn-wa-toast .elementor-widget-heading .elementor-heading-title{font-size:15px!important;line-height:1.35!important;margin:0!important}
.qn-wa-toast .elementor-widget-image img{max-width:28px!important;height:auto}
.qn-wa-toast .elementor-widget-button .elementor-button{font-size:13px!important;padding:7px 14px!important}
.qn-wa-toast .e-con,.qn-wa-toast .e-con-inner{padding:10px 12px!important;gap:6px!important}
.qn-wa-toast .elementor-widget{margin-bottom:0!important}
.qn-wa-toast .dialog-close-button{font-size:13px!important;opacity:.55}
.qn-wa-toast .dialog-close-button:hover{opacity:1}
@media(max-width:767px){
  .elementor-popup-modal.qn-wa-toast .dialog-widget-content{max-width:calc(100vw - 20px);right:10px!important;bottom:10px!important}
  .qn-wa-toast .elementor-widget-heading .elementor-heading-title{font-size:14px!important}
}
/* toast: the popup's own containers were designed for a 530-640 px modal — fit them to the toast */
.qn-wa-toast .dialog-widget-content{overflow:hidden}
.qn-wa-toast .dialog-message .e-con{width:100%!important;max-width:100%!important;--width:100%!important;--container-max-width:100%!important;min-height:0!important}
.qn-wa-toast .elementor-widget-heading{padding-right:38px!important}
.qn-wa-toast .elementor-absolute{position:absolute!important;top:12px!important;right:12px!important;left:auto!important;bottom:auto!important;width:28px!important}
.qn-wa-toast .elementor-button{width:auto!important;display:inline-block!important}
.qn-wa-toast .elementor-heading-title{letter-spacing:0!important}
/* the Lisa chat button (64 px, bottom-right) shares the corner: stack the toast above it */
.elementor-popup-modal.qn-wa-toast .dialog-widget-content{bottom:96px!important}
@media(max-width:767px){ .elementor-popup-modal.qn-wa-toast .dialog-widget-content{bottom:86px!important} }
/* mobile: three bottom elements (cookie notice, WhatsApp toast, Lisa chat button) — give each its own band.
   The chat button covered the cookie notice's Accept button; the notice covered the toast. */
@media(max-width:767px){
  #qnet-cn.qnet-cn{bottom:90px!important}
  body:has(#qnet-cn:not([hidden])) .elementor-popup-modal.qn-wa-toast .dialog-widget-content{bottom:240px!important}
}
/* the toast must never block the page: the popup wrapper spans the whole viewport — let clicks pass through it,
   keep only the toast box itself interactive (Elementor's own pointer-events wins without !important) */
.elementor-popup-modal.qn-wa-toast,.elementor-popup-modal.qn-wa-toast .dialog-message{pointer-events:none!important}
.elementor-popup-modal.qn-wa-toast .dialog-widget-content,.elementor-popup-modal.qn-wa-toast .dialog-widget-content *{pointer-events:auto!important}

/* ==== Taxonomy filter pills (latest news + archives) ====
   Elementor gives the pill 7.07px of padding-top and 11.19px of padding-bottom, so the label sits
   visibly high in the capsule. Equal padding + a line-height that matches the cap height centres it.
   Damien 2026-09-18. */
.e-filter-item{
  padding-block:10px 8px !important;   /* Encode Sans Condensed sits low in its em box: 2px up = optically centred */
  line-height:1.2 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}


/* ==== X (Twitter) icon ====
   The estate ships Font Awesome 6.1.1; `fa-x-twitter` only exists from 6.4.2, so the glyph is missing in
   every installed brand font and the icon rendered blank. Draw it from an inline SVG mask instead — no font
   dependency, ~400 bytes, inherits currentColor. Damien 2026-09-18. */
i.fab.fa-x-twitter::before,
i.fa-brands.fa-x-twitter::before{
  content:"" !important;
  display:inline-block;
  width:1em;height:1em;
  background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z'/%3E%3C/svg%3E") center/contain no-repeat;
  vertical-align:-.125em;
}

/* ==== WhatsApp toast, premium green (Damien 2026-09-18) ====
   Was: white card, green outline, orange CTA — three colours fighting in 330 px.
   Now: one deep WhatsApp-green surface, white type, a white pill CTA. Contrast checked:
   #FFFFFF on #0E6B52 = 7.4:1, #0E6B52 on #FFFFFF = 7.4:1, both AA-large and AA-body. */
.qn-wa-toast .dialog-widget-content{
  background:linear-gradient(160deg,#128C7E 0%,#0E6B52 100%)!important;
  border:0!important;border-radius:14px!important;
  box-shadow:0 10px 30px rgba(6,58,44,.28)!important;
  max-width:300px!important;
}
.qn-wa-toast .dialog-message .e-con,
.qn-wa-toast .dialog-message .e-con-inner{background:transparent!important;padding:12px 14px!important;gap:8px!important}
.qn-wa-toast .elementor-heading-title,
.qn-wa-toast .elementor-widget-heading .elementor-heading-title,
.qn-wa-toast .elementor-widget-text-editor{color:#fff!important}
.qn-wa-toast .elementor-heading-title strong,
.qn-wa-toast .elementor-heading-title b{color:#fff!important;font-weight:800}
.qn-wa-toast .elementor-widget-heading .elementor-heading-title{font-size:14px!important;line-height:1.3!important}
.qn-wa-toast .elementor-button{
  background:#fff!important;color:#0E6B52!important;font-weight:700!important;
  border-radius:999px!important;padding:8px 16px!important;font-size:13px!important;
  box-shadow:none!important;border:0!important;
}
.qn-wa-toast .elementor-button:hover,
.qn-wa-toast .elementor-button:focus-visible{background:#EAF7F1!important;color:#0B5744!important}
.qn-wa-toast .elementor-button .elementor-button-icon svg,
.qn-wa-toast .elementor-button .elementor-button-icon i{color:#0E6B52!important;fill:#0E6B52!important}
/* the WhatsApp glyph sits on the green: give it a white disc so it reads at 28 px */
.qn-wa-toast .elementor-widget-image img{background:#fff;border-radius:50%;padding:3px;max-width:26px!important}
.qn-wa-toast .dialog-close-button{color:#fff!important;opacity:.7}
.qn-wa-toast .dialog-close-button:hover{opacity:1}
@media(max-width:767px){ .qn-wa-toast .dialog-widget-content{max-width:calc(100vw - 24px)!important} }
/* One corner, one shadow (Damien 2026-09-18, after go-live): the popup's own container still carried the OLD design —
   7 px #44C654 border, 20 px radius, heavy shadow — inside the new 14 px shell, which read as a double corner.
   The shell owns the shape; the container is flat. Shell shadow restated at the specificity of the first toast rule. */
.qn-wa-toast .dialog-message .e-con,
.qn-wa-toast .dialog-message .e-con-inner{border:0!important;border-radius:0!important;box-shadow:none!important}
.elementor-popup-modal.qn-wa-toast .dialog-widget-content{box-shadow:0 10px 30px rgba(6,58,44,.28)!important}
/* ==== PageSpeed contrast items (2026-09-18, post go-live) ====
   Footer small print: Elementor colour #FFFFFFB5 lost to the theme's #54595F = 2.54:1 on the navy. Footer mute = 8.7:1.
   "QNET Product Portfolio": brand orange #F75609 on the #383838 card = 3.51:1; #F98148 (same hue, lighter) = 4.61:1. */
.footer-wrap .elementor-widget-text-editor,
.footer-wrap .elementor-widget-text-editor p{color:var(--qn-ft-mute)!important}
.elementor-element-a9f6eff .elementor-heading-title span[style*="F75609" i]{color:#F98148!important}
