/* ===================================================================
   Approved particle footer: site fit (13 October 2026).
   Loaded after public/zinga-footer/footer.css.

   The build rejects a bare <br> in a heading, so the footer heading's
   line break is an empty block span. The package sets that heading in
   italic. Anton has no italic face, and the site body sets
   font-synthesis:none (to stop fake bold), which would also block the
   slant, so this heading allows a synthesised style, never weight.
   =================================================================== */
.zgf h2 .zgf-br { display: block; }
.zgf h2 { font-synthesis: none; font-style:normal; }

/* Signature 2: intact photographic wordmark, emissive edge and open plume. */
.zgf[data-zinga-footer]{background:#020e20}
.zgf[data-zinga-footer]::before{opacity:1;background:radial-gradient(ellipse at 82% 78%,#0752b519,transparent 38%),linear-gradient(#020e20 0%,#021022f9 65%,#020e20ef 100%),var(--lzbg-footer-ground, none) center bottom/cover no-repeat}
.zgf .zgf-inner{max-width:1720px;padding-top:32px}
.zgf .zgf-top{gap:clamp(22px,4vw,66px)}
.zgf .zgf-signature{margin-top:16px}
.zgf .zgf-caption{padding-left:5%;font-size:11px;letter-spacing:3.5px}
.zgf .zgf-art{height:clamp(180px,18.2vw,278px);isolation:isolate}
.zgf .zgf-logo{inset:8% 15% 7% 1%;filter:drop-shadow(0 0 1px #86e6ff) drop-shadow(0 0 12px #0866ff40);background:#127fed}
.zgf .zgf-scene{filter:brightness(1.8) saturate(1.15);animation:zgf-ground 18s ease-in-out infinite alternate}
.zgf .zgf-sheen{background:linear-gradient(105deg,transparent 40%,#74ceff33 47%,#e0fbff95 50%,#58bfff33 53%,transparent 60%);opacity:.6;animation:zgf-light 9.5s ease-in-out infinite}
.zgf-energy{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 95% 38%,#7beaff70 0%,#057cff30 9%,transparent 27%);mix-blend-mode:screen;animation:zgf-breathe 5s ease-in-out infinite}
.zgf .zgf-particles{z-index:2}
.zgf .zgf-cta>span{box-shadow:0 0 0 1px #77d3ff77 inset,0 0 18px #056fff66;animation:zgf-cta-halo 5s ease-in-out infinite}
.zgf .zgf-intro h2>span:last-child{text-shadow:0 0 18px #086cff35}
.zgf .zgf-bottom{position:relative;border-top:1px solid #5390c93d}
.zgf .zgf-bottom::before{content:"";pointer-events:none;position:absolute;top:-1px;left:0;width:20%;height:1px;background:linear-gradient(90deg,transparent,#45c9ff,transparent);box-shadow:0 0 7px #087cff;animation:zgf-baseline 10s ease-in-out infinite}
@keyframes zgf-breathe{0%,100%{opacity:.35}50%{opacity:.9}}
@keyframes zgf-cta-halo{0%,100%{box-shadow:0 0 0 1px #77d3ff77 inset,0 0 14px #056fff55}50%{box-shadow:0 0 0 1px #b1efff99 inset,0 0 25px #056fff88}}
@keyframes zgf-baseline{0%{transform:translateX(-100%);opacity:0}12%,85%{opacity:1}100%{transform:translateX(500%);opacity:0}}
@media(max-width:600px){.zgf .zgf-art{height:auto;aspect-ratio:3.7}.zgf .zgf-logo{inset:9% 16% 8% 0}.zgf .zgf-caption{font-size:9px;letter-spacing:2px;padding-left:0}.zgf .zgf-inner{padding-top:26px}.zgf .zgf-signature{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.zgf .zgf-energy,.zgf .zgf-bottom::before{animation:none}.zgf .zgf-energy{opacity:.5}.zgf .zgf-bottom::before{display:none}}

/* Signature 3: source-attached fine fragments, with headroom for the plume. */
.zgf .zgf-particles{inset:-48px -3% -4px 0;width:103%;height:calc(100% + 52px);pointer-events:none}
.zgf .zgf-logo{inset:4% 13% 5% 1%;filter:drop-shadow(0 0 1px #71cfff) drop-shadow(0 0 7px #0761ff26)}
.zgf .zgf-art{height:clamp(180px,17.4vw,268px)}
.zgf .zgf-scene{filter:brightness(1.85) saturate(1.15)}
.zgf .zgf-energy{opacity:.3;animation:none;background:radial-gradient(ellipse at 98% 42%,#40baff48 0%,#0974ff15 10%,transparent 23%)}
@media(max-width:600px){.zgf .zgf-art{height:auto;aspect-ratio:3.7}.zgf .zgf-logo{inset:7% 17% 6% 0}.zgf .zgf-particles{inset:-22px -4% 0 0;width:104%;height:calc(100% + 22px)}}

/* Phones and tablets: the same footer with cheaper compositing. Screen blend modes make the
   GPU re-blend everything beneath on every frame, and the animated box-shadow repaints the
   button each frame; plain opacity layers and a static glow look nearly identical. */
@media (max-width:900px),(pointer:coarse){
.zgf .zgf-sheen{mix-blend-mode:normal;opacity:.32}
.zgf .zgf-energy{mix-blend-mode:normal}
.zgf .zgf-cta>span{animation:none}
.zgf .zgf-scene{will-change:transform}
}

/* Contact band: Visit us / Get in touch / GST between the link columns and the signature. */
.zgf .zgf-contact{display:grid;grid-template-columns:44fr 30fr 26fr;margin-top:30px;border-top:1px solid #1f5fae;border-bottom:1px solid #1f5fae;padding:22px 0 24px}
.zgf .zgf-contact-col{min-width:0;padding:2px clamp(18px,3.4vw,52px)}
.zgf .zgf-contact-col+.zgf-contact-col{border-left:1px solid #1f5fae}
.zgf .zgf-contact-col:first-child{padding-left:clamp(12px,1.8vw,28px)}
.zgf .zgf-visit{display:flex;align-items:flex-start;gap:clamp(14px,1.6vw,24px)}
.zgf .zgf-contact h3{margin:0 0 6px;font:400 var(--ds-card)/1.15 var(--ds-display);letter-spacing:0;text-transform:uppercase;color:#1f8bff;}
.zgf .zgf-contact address{font-style:normal;font-size:16px;line-height:1.6;color:#d3dcec}
.zgf .zgf-address{display:block;width:fit-content;color:#d3dcec;text-decoration:none;transition:color .2s}
.zgf .zgf-address address{color:inherit}
.zgf .zgf-address:hover,.zgf .zgf-address:focus-visible{color:#7fd0ff;text-decoration:underline;text-decoration-color:#2e9bff80;text-underline-offset:4px}
.zgf .zgf-ci{flex:none;width:24px;height:24px;color:#2e8dff}
.zgf .zgf-visit>.zgf-ci{width:30px;height:30px;margin-top:2px}
.zgf .zgf-contact-link{display:flex;align-items:center;gap:16px;width:fit-content;margin-top:12px;font-size:16px;color:#d3dcec;transition:color .2s}
.zgf .zgf-contact-link:hover,.zgf .zgf-contact-link:focus-visible{color:#7fd0ff}
.zgf .zgf-gst{margin:6px 0 0;font-size:16px;color:#d3dcec}
.zgf .zgf-contact h3.zgf-cin{margin-top:16px}
.zgf .zgf-contact+.zgf-signature{margin-top:22px}
@media(max-width:900px){
.zgf .zgf-contact{grid-template-columns:1fr 1fr;row-gap:20px;margin-top:26px}
.zgf .zgf-visit{grid-column:1/-1;padding-left:0}
.zgf .zgf-contact-col:nth-child(2){border-left:0;padding-left:0}
.zgf .zgf-contact-col:nth-child(2),.zgf .zgf-contact-col:nth-child(3){border-top:1px solid #1f5fae;padding-top:18px}
}
@media(max-width:520px){
.zgf .zgf-contact{grid-template-columns:1fr;row-gap:0;padding:18px 0}
.zgf .zgf-contact-col{padding:16px 0!important;border-left:0!important}
.zgf .zgf-contact-col+.zgf-contact-col{border-top:1px solid #1f5fae}
.zgf .zgf-contact-col:first-child{padding-top:2px!important}
.zgf .zgf-contact address,.zgf .zgf-contact-link,.zgf .zgf-gst{font-size:15px}
.zgf .zgf-contact-link{word-break:break-all}
.zgf .zgf-contact address br{display:none}
}

/* A little tracking makes the company registration number easier to read. */
.zgf .zgf-cin + .zgf-gst{letter-spacing:.04em}
