/* Offer ticker + towns band + scroll reveal. Shared by scorelian.com and nexalia.co.ke */
.tk{--tk-ink:var(--ink,#0F1F3D);--tk-gold:var(--gold,#C79A2B);position:relative;overflow:hidden;font-family:var(--font,inherit)}
.tk-offers{background:var(--soft,#F3F6F9);border-bottom:1px solid var(--line,#D8DFE9);padding:9px 0}
.tk-row{display:flex;align-items:center;gap:14px}
.tk-label{flex:none;display:flex;align-items:center;gap:8px;padding:0 0 0 max(16px,env(safe-area-inset-left,0px));font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--tk-ink);white-space:nowrap}
.tk-dot{width:8px;height:8px;border-radius:50%;background:#1E9E5A;box-shadow:0 0 0 0 rgba(30,158,90,.5);animation:tkpulse 2.2s ease-out infinite}
@keyframes tkpulse{70%{box-shadow:0 0 0 8px rgba(30,158,90,0)}100%{box-shadow:0 0 0 0 rgba(30,158,90,0)}}
.tk-view{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.tk-track{display:flex;width:max-content;will-change:transform;animation:tkmove var(--tk-dur,50s) linear infinite}
.tk-track.rev{animation-direction:reverse}
.tk-list{display:flex;flex:none;margin:0;padding:0;list-style:none}
.tk-list li{flex:none}
@keyframes tkmove{to{transform:translate3d(-50%,0,0)}}
.tk:hover .tk-track,.tk:focus-within .tk-track,.tk.is-paused .tk-track,.tk.is-off .tk-track{animation-play-state:paused}
.tk-chip{display:inline-flex;align-items:center;gap:8px;margin:0 6px;padding:6px 14px;border:1px solid var(--line,#D8DFE9);border-radius:999px;background:#fff;color:var(--tk-ink);font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap;transition:border-color .2s,transform .2s,box-shadow .2s}
.tk-chip:hover,.tk-chip:focus-visible{border-color:var(--tk-gold);transform:translateY(-1px);box-shadow:0 6px 14px -8px rgba(15,31,61,.5)}
.tk-chip svg{width:14px;height:14px;flex:none;stroke:var(--tk-gold);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tk-chip small{font-weight:500;color:var(--muted,#4B5A75);font-size:12px}
.tk-btn{flex:none;margin-right:max(16px,env(safe-area-inset-right,0px));width:30px;height:30px;border:1px solid var(--line,#D8DFE9);border-radius:50%;background:#fff;color:var(--tk-ink);cursor:pointer;display:grid;place-items:center;padding:0}
.tk-btn:focus-visible,.tk-chip:focus-visible{outline:2px solid var(--tk-ink);outline-offset:2px}
.tk-btn svg{width:12px;height:12px;fill:currentColor}
.tk-btn .i-play{display:none}.tk.is-paused .tk-btn .i-play{display:block}.tk.is-paused .tk-btn .i-pause{display:none}
/* Towns band */
.tk-towns{background:#0F1F3D;color:#fff;padding:34px 0 30px}
.tk-towns .wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.tk-towns h2{margin:0 0 6px;font-size:clamp(22px,3vw,30px);line-height:1.2;color:#fff}
.tk-towns p{margin:0 0 20px;color:#B9C5DA;max-width:64ch}
.tk-towns .tk-view{-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);margin-bottom:10px}
.tk-towns .tk-chip{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.22);color:#fff}
.tk-towns .tk-chip:hover,.tk-towns .tk-chip:focus-visible{background:rgba(255,255,255,.15);border-color:var(--tk-gold)}
.tk-towns .tk-chip small{color:#B9C5DA}
.tk-towns .tk-btn{background:transparent;color:#fff;border-color:rgba(255,255,255,.3);margin:0}
.tk-towns .tk-foot{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin-top:14px;font-size:14px;color:#B9C5DA}
.tk-towns .tk-foot a{color:#fff;font-weight:600}
.tk-towns .tk-view:focus-within{outline:none}
/* Static (no-motion / no-JS-friendly) fallback: wrap into rows, hide duplicate */
@media (prefers-reduced-motion:reduce){
 .tk-track{animation:none;width:auto;flex-wrap:wrap}.tk-list{flex-wrap:wrap}.tk-list[aria-hidden="true"]{display:none}
 .tk-view{-webkit-mask-image:none;mask-image:none}.tk-chip{margin:4px 6px}.tk-btn{display:none}.tk-dot{animation:none}}
@media (max-width:640px){.tk-label span.tk-lt{display:none}.tk-chip{font-size:13px;padding:5px 12px}}
/* Scroll reveal: only active when JS adds .rv-on to <html>, so content is never hidden without JS */
.rv-on .rv{opacity:0;transform:translate3d(0,18px,0);transition:opacity .6s ease,transform .6s ease}
.rv-on .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv-on .rv{opacity:1;transform:none;transition:none}}

/* ===== Stock-ticker style deadline strip ===== */
.tk-dates{background:#0B1730;color:#fff;border-bottom:1px solid #1E2F52;padding:8px 0;font-variant-numeric:tabular-nums}
.tk-dates .tk-label{color:#fff}
.tk-dates .tk-label a{color:#C79A2B;font-weight:700;text-decoration:none;margin-left:6px}
.tk-dates .tk-label a:hover,.tk-dates .tk-label a:focus-visible{text-decoration:underline}
.tk-dates .tk-view{-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.tk-q{display:inline-flex;align-items:baseline;gap:9px;padding:0 20px;border-right:1px solid #24375F;white-space:nowrap;font-family:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;font-size:13.5px;line-height:1.7}
.tk-q .q-code{color:#C79A2B;font-weight:700;letter-spacing:.04em}
.tk-q .q-val{color:#fff;font-weight:600}
.tk-q .q-chg{font-weight:700;padding:1px 7px;border-radius:4px;background:rgba(61,220,151,.14);color:#3DDC97}
.tk-q .q-chg.warn{background:rgba(255,200,87,.16);color:#FFC857}
.tk-q .q-chg.hot{background:rgba(255,107,107,.18);color:#FF8A8A}
.tk-q .q-sub{color:#9FB0CF;font-size:12.5px}
.tk-q.note{color:#B9C5DA;font-size:12.5px}
.tk-dates .tk-btn{background:transparent;color:#fff;border-color:#3A4E78}
@media (prefers-reduced-motion:reduce){.tk-q{margin:2px 0}}
@media (max-width:640px){.tk-q{font-size:12.5px;padding:0 14px}.tk-dates .tk-label span.tk-lt{display:inline;font-size:11px}}

/* ===== Quick contact row in the lower part of the footer ===== */
.qf{margin-top:26px;padding-top:18px;border-top:1px solid var(--line,#D8DFE9)}
.qf h2{margin:0 0 4px;font-size:15px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink,#0F1F3D)}
.qf p.qf-s{margin:0 0 12px;font-size:14px;color:var(--muted,#4B5A75)}
.qf-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.qf-grid a{display:block;padding:10px 14px;border:1px solid var(--line,#D8DFE9);border-radius:10px;background:#fff;text-decoration:none;color:var(--ink,#0F1F3D);transition:border-color .2s,transform .2s}
.qf-grid a:hover,.qf-grid a:focus-visible{border-color:var(--gold,#C79A2B);transform:translateY(-1px)}
.qf-grid b{display:block;font-size:15px}
.qf-grid span{display:block;font-size:13px;color:var(--muted,#4B5A75)}
.qf-tag{margin:14px 0 0;font-size:14px;color:var(--muted,#4B5A75)}

/* ===== Back to top + floating contact button ===== */
.totop,.fab-btn{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:90;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;cursor:pointer;padding:0;transition:transform .2s,opacity .25s,visibility .25s}
.totop{left:calc(18px + env(safe-area-inset-left,0px));background:#0F1F3D;border:1px solid #3A4E78;color:#C79A2B;opacity:0;visibility:hidden;transform:translateY(8px)}
.totop.show{opacity:1;visibility:visible;transform:none}
.fab-btn{right:calc(18px + env(safe-area-inset-right,0px));background:#C79A2B;border:0;color:#0F1F3D;box-shadow:0 10px 24px -8px rgba(15,31,61,.55)}
.fab-btn:hover{transform:scale(1.06)}
.totop:focus-visible,.fab-btn:focus-visible{outline:3px solid #0F1F3D;outline-offset:3px}
.totop svg,.fab-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.fab-menu{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:90;min-width:230px;background:#fff;border:1px solid var(--line,#D8DFE9);border-radius:14px;box-shadow:0 22px 44px -18px rgba(15,31,61,.45);padding:8px;display:none}
.fab-menu.open{display:block}
.fab-menu a{display:block;padding:11px 14px;border-radius:8px;color:#0F1F3D;text-decoration:none;font-weight:600;font-size:15px}
.fab-menu a small{display:block;font-weight:500;color:#4B5A75;font-size:12.5px}
.fab-menu a:hover,.fab-menu a:focus-visible{background:#F3F6F9}
body:has(#nxbar) .totop,body:has(#nxbar) .fab-btn,body:has(#nxbar) .fab-menu{display:none}
@media print{.totop,.fab-btn,.fab-menu,.tk{display:none!important}}
@media (prefers-reduced-motion:reduce){.totop,.fab-btn{transition:none}}

/* ===== Offers strip, plain type version (16 Oct): ink band, small caps, no icons, no dot ===== */
.tk-offers{background:#0F1F3D;border-bottom:0;padding:0}
.tk-offers .tk-row{gap:0}
.tk-offers .tk-label{padding-right:16px;margin-right:2px;border-right:1px solid rgba(255,255,255,.2);font-size:11px;letter-spacing:.14em;color:#D4A93C}
.tk-offers .tk-label span.tk-lt{display:inline}
.tk-offers .tk-view{-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.tk-offers .tk-list li{display:flex;align-items:center}
.tk-offers .tk-list li::after{content:"";width:1px;height:10px;background:rgba(255,255,255,.25)}
.tk-offers .tk-chip{margin:0;padding:12px 18px;border:0;border-radius:0;background:none;box-shadow:none;transform:none;color:#E3E9F3;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.tk-offers .tk-chip:hover,.tk-offers .tk-chip:focus-visible{background:none;box-shadow:none;transform:none;color:#fff;text-decoration:underline;text-decoration-color:#D4A93C;text-underline-offset:5px;text-decoration-thickness:2px}
.tk-offers .tk-chip:focus-visible{outline:2px solid #D4A93C;outline-offset:-2px}
/* Phones: drop the label so the services get the full width */
@media (max-width:640px){
 .tk-offers .tk-label{display:none}
 .tk-offers .tk-view{-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
 .tk-offers .tk-chip{padding:11px 14px;font-size:11px}
}

/* ===== Direct WhatsApp button replaces the "..." menu (16 Oct) ===== */
.fab-wa{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:90;display:inline-flex;align-items:center;min-height:46px;padding:0 20px;border-radius:10px;background:#C79A2B;color:#0F1F3D;font-weight:700;font-size:15px;letter-spacing:.01em;text-decoration:none;box-shadow:0 10px 24px -10px rgba(15,31,61,.55);transition:background .2s}
.fab-wa:hover{background:#D4A93C}
.fab-wa:focus-visible{outline:3px solid #0F1F3D;outline-offset:3px}
body:has(#nxbar) .fab-wa{display:none}
@media print{.fab-wa{display:none!important}}

/* WhatsApp button as a small round logo (16 Oct) */
.fab-wa{width:50px;height:50px;min-height:0;padding:0;border-radius:50%;justify-content:center;background:#25D366;color:#fff;right:calc(14px + env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));box-shadow:0 6px 16px -6px rgba(0,0,0,.4)}
.fab-wa:hover{background:#1EBE5A}
.fab-wa:focus-visible{outline:3px solid #0F1F3D;outline-offset:3px}
.totop{left:calc(14px + env(safe-area-inset-left,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));width:44px;height:44px}

/* WhatsApp button appears on double tap (16 Oct). Without JavaScript it stays visible. */
html.fab-gate{touch-action:manipulation}
html.fab-gate .fab-wa{opacity:0;pointer-events:none;transform:scale(.7);transition:opacity .2s,transform .2s}
html.fab-gate.fab-on .fab-wa{opacity:1;pointer-events:auto;transform:none}
@media (prefers-reduced-motion:reduce){html.fab-gate .fab-wa{transition:none}}

/* footer social icons */
.foot-icons{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.foot-icons .fi-l{font-weight:600;margin-right:4px}
.foot-icons .fi{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line,#D8DFE9);color:inherit;text-decoration:none;transition:background .2s,transform .2s}
.foot-icons .fi:hover{background:var(--chip,#E7EEF5);transform:translateY(-1px)}
.foot-icons .fi:focus-visible{outline:3px solid #0F1F3D;outline-offset:3px}
@media print{.foot-icons{display:none}}
