:root{--page-title-display:none;}/* Start custom CSS *//* Web design in Sevenoaks (717), a location page with the same layout as the others. Built from the Web Design page (447) with Brand Consultancy's (566) "Who it's for" section after the hero. Same ink canvas as About and Contact: every section is transparent over the page wrapper (the stacking context), so soft brand glows on z-index -1 drift across section edges with no seams.
   overflow-x: clip stops the wide glows causing sideways scroll without breaking sticky. */
.elementor-717 .elementor-element-53ce72d5 { isolation: isolate; overflow-x: clip; }
/* Keep the footer above the isolated wrapper, so the CTA/footer glow join stays seamless (same as About). */
body.page-id-717 .elementor-location-footer { position: relative; z-index: 1; }
.elementor-717 .elementor-element-53ce72d5 .zn-section.zn-section { background-color: transparent; }
.elementor-717 .elementor-element-51ed78a7.elementor-element-51ed78a7,
.elementor-717 .elementor-element-1ec02956.elementor-element-1ec02956,
.elementor-717 .elementor-element-62a49915.elementor-element-62a49915,
.elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-tl-row),
.elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-cs-stack),
.elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-reviews-embed) { position: relative; }
/* Reviews (Home component) carries a sky glow centred on its own top edge, which shows as a hard line on this continuous canvas. Replaced by a free-floating glow below. */
.elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-reviews-embed) { background-image: none; }
/* Shared glow layer reset (Elementor puts its own overlay rules on container pseudo-elements). */
.elementor-717 .elementor-element-653629d6::before,
.elementor-717 .elementor-element-51ed78a7::before,
.elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-tl-row)::before,
.elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-cs-stack)::before,
.elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-reviews-embed)::before,
.elementor-717 .elementor-element-1ec02956::before,
.elementor-717 .elementor-element-62a49915::before, .elementor-717 .elementor-element-62a49915::after {
  content: ""; position: absolute; z-index: -1; pointer-events: none; inset: auto;
  border: 0 none; border-radius: 0; opacity: 1; mix-blend-mode: normal; filter: none; background-color: transparent; will-change: transform;
}
@keyframes zn-wd-drift { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(6%, -4%, 0) scale(1.08); } }
@keyframes zn-wd-drift-b { from { transform: translate3d(0, 0, 0) scale(1.05); } to { transform: translate3d(-6%, 5%, 0) scale(0.96); } }
/* What's included (side scroll): centred magenta + violet glow behind the intro that fades up round the hero card, same as About's "One team". */
.elementor-717 .elementor-element-653629d6::before { left: 50%; top: -300px; width: min(1600px, 160vw); height: 1100px; transform: translateX(-50%); will-change: auto; background-image: radial-gradient(ellipse 34% 26% at 50% 38%, rgba(195,1,92,0.26) 0%, rgba(195,1,92,0.10) 45%, rgba(195,1,92,0) 100%), radial-gradient(ellipse 48% 40% at 50% 40%, rgba(107,31,168,0.30) 0%, rgba(107,31,168,0.10) 50%, rgba(107,31,168,0) 100%); }
/* Pricing: magenta pool behind the plans, right side. */
.elementor-717 .elementor-element-51ed78a7::before { right: -14%; top: 40px; width: min(1100px, 100vw); height: 940px; background-image: radial-gradient(closest-side, rgba(195,1,92,0.24) 0%, rgba(195,1,92,0.08) 55%, rgba(195,1,92,0) 100%); animation: zn-wd-drift-b 22s ease-in-out infinite alternate; }
/* How it works: violet pool behind the header, left side. */
.elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-tl-row)::before { left: -12%; top: -140px; width: min(1000px, 90vw); height: 860px; background-image: radial-gradient(closest-side, rgba(107,31,168,0.30) 0%, rgba(107,31,168,0.10) 55%, rgba(107,31,168,0) 100%); animation: zn-wd-drift 26s ease-in-out infinite alternate; }
/* Featured projects: a magenta pool glowing out from behind the paper panel, right side. */
.elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-cs-stack)::before { right: -14%; top: 60px; width: min(1100px, 100vw); height: 1000px; background-image: radial-gradient(closest-side, rgba(195,1,92,0.22) 0%, rgba(195,1,92,0.07) 55%, rgba(195,1,92,0) 100%); animation: zn-wd-drift 24s ease-in-out infinite alternate; }
/* Reviews: sky glow top left, spilling softly up towards the projects. */
.elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-reviews-embed)::before { left: -12%; top: -280px; width: min(1050px, 95vw); height: 880px; background-image: radial-gradient(closest-side, rgba(43,173,233,0.20) 0%, rgba(43,173,233,0.07) 55%, rgba(43,173,233,0) 100%); animation: zn-wd-drift-b 24s ease-in-out infinite alternate; }
/* Grow from there: magenta pool behind the Solutions rows, left side. */
.elementor-717 .elementor-element-1ec02956::before { left: -14%; top: -60px; width: min(1050px, 95vw); height: 880px; background-image: radial-gradient(closest-side, rgba(195,1,92,0.20) 0%, rgba(195,1,92,0.07) 55%, rgba(195,1,92,0) 100%); animation: zn-wd-drift-b 22s ease-in-out infinite alternate; }
/* FAQ: violet pool behind the sticky heading, faint sky lower right. */
.elementor-717 .elementor-element-62a49915::before { left: -12%; top: -120px; width: min(1050px, 95vw); height: 860px; background-image: radial-gradient(closest-side, rgba(107,31,168,0.32) 0%, rgba(107,31,168,0.10) 55%, rgba(107,31,168,0) 100%); animation: zn-wd-drift 22s ease-in-out infinite alternate; }
.elementor-717 .elementor-element-62a49915::after { right: -14%; bottom: -220px; width: min(850px, 85vw); height: 720px; background-image: radial-gradient(closest-side, rgba(43,173,233,0.14) 0%, rgba(43,173,233,0.05) 55%, rgba(43,173,233,0) 100%); animation: zn-wd-drift-b 24s ease-in-out infinite alternate; }
/* Hero card: its magenta / sky / violet glows drift slowly, like the Home aurora. */
@keyframes zn-wd-aurora { from { background-position: 0% 0%, 0% 0%, 0% 0%; } to { background-position: 30% 20%, 70% 40%, 40% 70%; } }
.elementor-717 .zn-hero-card.zn-hero-card { background-size: 130% 130%, 130% 130%, 130% 130%; animation: zn-wd-aurora 18s ease-in-out infinite alternate; }
/* No orphans on card text either. */
.elementor-717 .zn-small.zn-small, .elementor-717 .zn-h3.zn-h3 { text-wrap: pretty; }

/* ---------- Who we help (from Brand Consultancy): violet pool left behind the two cards; the second card glows violet; both lift on hover and their tags light up in turn. ---------- */
.elementor-717 .elementor-element-a732cc8.elementor-element-a732cc8 { position: relative; }
.elementor-717 .elementor-element-a732cc8::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none; inset: auto;
  border: 0 none; border-radius: 0; opacity: 1; mix-blend-mode: normal; filter: none; background-color: transparent; will-change: transform;
  left: -14%; top: 40px; width: min(1050px, 95vw); height: 900px; background-image: radial-gradient(closest-side, rgba(107,31,168,0.30) 0%, rgba(107,31,168,0.10) 55%, rgba(107,31,168,0) 100%); animation: zn-wd-drift 26s ease-in-out infinite alternate;
}
.elementor-717 .elementor-element-7df784f4 > .zn-hs-card:nth-child(2) { background-image: radial-gradient(85% 60% at 100% 0%, rgba(107,31,168,0.40) 0%, rgba(107,31,168,0) 70%); }
.elementor-717 .elementor-element-7df784f4 > .zn-hs-card { transition: transform 0.5s cubic-bezier(.2,.7,.2,1), border-color 0.3s, box-shadow 0.5s; }
.elementor-717 .elementor-element-7df784f4 > .zn-hs-card:hover { transform: translateY(-6px); border-color: rgba(255,141,190,0.45); box-shadow: 0 30px 60px -28px rgba(195,1,92,0.6); }
.elementor-717 .elementor-element-67e1e842 > div, .elementor-717 .elementor-element-47faf32a > div { transition: border-color 0.3s, background-color 0.3s, transform 0.45s cubic-bezier(.2,.7,.2,1); }
.elementor-717 .elementor-element-7df784f4 > .zn-hs-card:hover .elementor-element-67e1e842 > div,
.elementor-717 .elementor-element-7df784f4 > .zn-hs-card:hover .elementor-element-47faf32a > div { border-color: rgba(255,141,190,0.5); background-color: rgba(195,1,92,0.16); transform: translateY(-2px); }
.elementor-717 .elementor-element-67e1e842 > div:nth-child(2), .elementor-717 .elementor-element-47faf32a > div:nth-child(2) { transition-delay: 0.06s; }
.elementor-717 .elementor-element-67e1e842 > div:nth-child(3), .elementor-717 .elementor-element-47faf32a > div:nth-child(3) { transition-delay: 0.12s; }
@media (prefers-reduced-motion: reduce) { .elementor-717 .elementor-element-a732cc8::before { animation: none; } }

/* ---------- What's included: About's horizontal scroll. While the section is pinned, scrolling down slides the panels right to left and the magenta bar tracks progress.
   Same structure and card count as About (intro + 6 cards + end card), so the same pin distance: 2300px desktop, 1880px mobile (end card hidden on mobile).
   Without scroll timelines (Firefox, older Safari) or with reduced motion, it's a plain 3-column grid and the end card and scroll hint are hidden.
   Timing: section height = 100svh + PIN-DISTANCE and pin height = 100svh. The slide runs over exit-crossing 0 -> PIN-DISTANCE (measured from the top of the screen), so it ends exactly when the pin releases, even with iPhone Safari's floating toolbar.
   If cards are added or removed, recompute the distance and update BOTH the section height and the exit-crossing end.
   Card sizing is scoped to .zn-hs-row so the pricing cards (same zn-hs-card class) aren't stretched. ---------- */
.elementor-717 .zn-hs-row > .zn-hs-card:nth-child(3n+3) { background-image: radial-gradient(85% 60% at 100% 0%, rgba(43,173,233,0.22) 0%, rgba(43,173,233,0) 70%); }
.elementor-717 .zn-hs-row > .zn-hs-card:nth-child(3n+4) { background-image: radial-gradient(85% 60% at 100% 0%, rgba(107,31,168,0.38) 0%, rgba(107,31,168,0) 70%); }
.elementor-717 .zn-hs-row > .zn-hs-card:last-child { display: none; }
@keyframes zn-hs-move { to { transform: translateX(calc(-100% + 100vw)); } }
@keyframes zn-hs-grow { to { transform: scaleX(1); } }
@keyframes zn-hs-nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(6px); } }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor-717 .zn-hs.zn-hs { display: block; height: calc(100svh + 2300px); padding: 0; view-timeline: --zn-hs block; }
    .elementor-717 .zn-hs-pin.zn-hs-pin { position: sticky; top: 0; height: 100svh; width: 100%; max-width: none; padding: clamp(96px, 12vh, 124px) 0 clamp(24px, 5vh, 48px); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: clamp(24px, 4.5vh, 48px); }
    .elementor-717 .zn-hs-row.zn-hs-row { display: flex; flex-wrap: nowrap; align-items: stretch; width: max-content; max-width: none; padding-inline: max(var(--zn-gutter), calc((100vw - 1240px) / 2)); will-change: transform; animation: zn-hs-move linear both; animation-timeline: --zn-hs; animation-range: contain 0% contain 100%; }
    .elementor-717 .zn-hs-intro.zn-hs-intro { flex: 0 0 clamp(300px, 34vw, 480px); margin: 0; padding-inline-end: clamp(8px, 3vw, 48px); }
    .elementor-717 .zn-hs-cue.zn-hs-cue { display: inline-flex; margin-block-start: 8px; }
    .elementor-717 .zn-hs-cue span { animation: zn-hs-nudge 1.6s ease-in-out infinite; }
    .elementor-717 .zn-hs-row > .zn-hs-card.zn-hs-card { flex: 0 0 clamp(290px, 30vw, 420px); height: auto; min-height: clamp(420px, 66svh, 560px); }
    .elementor-717 .zn-hs-row > .zn-hs-card:last-child { display: flex; background-color: #3A1236; background-image: radial-gradient(90% 70% at 100% 100%, rgba(195,1,92,0.5) 0%, rgba(195,1,92,0) 70%); border-color: rgba(255,141,190,0.3); }
    .elementor-717 .zn-hs-bar.zn-hs-bar { display: block; align-self: center; width: min(1240px, calc(100vw - 2 * var(--zn-gutter))); }
    .elementor-717 .zn-hs-bar > * { transform: scaleX(0); animation: zn-hs-grow linear both; animation-timeline: --zn-hs; animation-range: contain 0% contain 100%; }
    /* Mobile: the row ends on card 06 (the mostly-empty end card is dropped, and the scroll length shortened to match), and the pinned content sits low with a small bottom gap. */
    @media (max-width: 767px) {
      .elementor-717 .zn-hs.zn-hs { height: calc(100svh + 1880px); }
      .elementor-717 .zn-hs-pin.zn-hs-pin { justify-content: flex-end; padding-bottom: 20px; }
      .elementor-717 .zn-hs-intro.zn-hs-intro { flex-basis: 84vw; }
      .elementor-717 .zn-hs-row > .zn-hs-card.zn-hs-card { flex-basis: 80vw; min-height: clamp(440px, 70svh, 560px); }
      .elementor-717 .zn-hs-row > .zn-hs-card:last-child { display: none; }
    }
    /* Very short screens: drop the mini visuals so the pinned row still fits. */
    @media (max-height: 640px) { .elementor-717 .zn-hs-row .zn-mini { display: none; } }
  }
}
@supports (animation-timeline: view()) and (animation-range: exit-crossing 0px exit-crossing 10px) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor-717 .zn-hs-row.zn-hs-row, .elementor-717 .zn-hs-bar > * { animation-range: exit-crossing 0px exit-crossing 2300px; }
    @media (max-width: 767px) {
      .elementor-717 .zn-hs-row.zn-hs-row, .elementor-717 .zn-hs-bar > * { animation-range: exit-crossing 0px exit-crossing 1880px; }
    }
  }
}
/* Hover lives on the visuals (same lift, tilt, pink border and glow as About and Contact), each with its own small reaction. Row children: 1 intro, 2-7 cards, 8 end card. */
.elementor-717 .zn-hs-card .zn-mini.zn-mini { position: relative; transform-origin: 50% 60%; transition: transform 0.5s cubic-bezier(.2,.7,.2,1), border-color 0.3s, box-shadow 0.5s; }
.elementor-717 .zn-hs-card .zn-mini.zn-mini:hover { transform: translateY(-6px) rotate(-1.2deg) scale(1.03); border-color: rgba(255,141,190,0.45); box-shadow: 0 30px 60px -28px rgba(195,1,92,0.6); }
.elementor-717 .elementor-element-10f82f94 .zn-mini.zn-mini:hover { transform: translateY(-6px) rotate(-0.6deg) scale(1.015); }
.elementor-717 .zn-hs-card .zn-mini * { transition: transform 0.45s cubic-bezier(.2,.7,.2,1), background-color 0.3s, box-shadow 0.3s, border-color 0.3s, color 0.3s, text-decoration-color 0.3s, background-position 0.9s ease; }
/* 01 Custom design: the image block's colours drift and the button rings. */
.elementor-717 .elementor-element-11e89acc > :nth-child(2) .zn-mini > div:last-child { background-size: 200% 100%; background-position: 0% 50%; }
.elementor-717 .elementor-element-11e89acc > :nth-child(2) .zn-mini:hover > div:last-child { background-position: 100% 50%; }
.elementor-717 .elementor-element-11e89acc > :nth-child(2) .zn-mini:hover > .zn-mini-row:nth-child(4) > div:first-child { box-shadow: 0 0 0 3px rgba(255,141,190,0.35), 0 8px 18px -6px rgba(195,1,92,0.8); }
/* 02 Built to convert: the second field takes focus and the button glows, arrow nudging forward. */
.elementor-717 .elementor-element-11e89acc > :nth-child(3) .zn-mini:hover > .zn-mini-row:nth-child(3) { border-color: rgba(255,141,190,0.6); box-shadow: 0 0 0 3px rgba(255,141,190,0.14); }
.elementor-717 .elementor-element-11e89acc > :nth-child(3) .zn-mini:hover > p:last-child { background-color: #D40B69; box-shadow: 0 12px 26px -10px rgba(195,1,92,0.95); }
.elementor-717 .elementor-element-11e89acc > :nth-child(3) .zn-mini > p:last-child span { transition: transform 0.35s cubic-bezier(.2,.7,.2,1); }
.elementor-717 .elementor-element-11e89acc > :nth-child(3) .zn-mini:hover > p:last-child span { transform: translateX(4px); }
/* 03 Mobile-ready: the phone tips towards you and the page inside scrolls. */
.elementor-717 .elementor-element-11e89acc > :nth-child(4) .zn-mini:hover > div { transform: rotate(-6deg) translateY(-4px); border-color: rgba(255,141,190,0.5); }
.elementor-717 .elementor-element-11e89acc > :nth-child(4) .zn-mini > div > div:nth-child(4) { background-size: 100% 200%; background-position: 50% 0%; }
.elementor-717 .elementor-element-11e89acc > :nth-child(4) .zn-mini:hover > div > div:nth-child(4) { background-position: 50% 100%; }
/* 04 SEO-friendly: the search box takes focus and the result title underlines. */
.elementor-717 .elementor-element-11e89acc > :nth-child(5) .zn-mini:hover > div:nth-child(2) { box-shadow: 0 0 0 2px rgba(255,141,190,0.6); background-color: rgba(255,255,255,0.12); }
.elementor-717 .elementor-element-11e89acc > :nth-child(5) .zn-mini:hover > div:nth-child(3) > p:nth-child(2) { text-decoration-color: currentColor; }
/* 05 Hosting & security: the live dot pulses and the ticks pop one after another. */
.elementor-717 .elementor-element-11e89acc > :nth-child(6) .zn-mini:hover > .zn-mini-row:first-child > div { box-shadow: 0 0 0 5px rgba(61,220,132,0.18); }
.elementor-717 .elementor-element-11e89acc > :nth-child(6) .zn-mini:hover > .zn-mini-row:nth-child(n+2) > p:last-child { transform: scale(1.35); }
.elementor-717 .elementor-element-11e89acc > :nth-child(6) .zn-mini > .zn-mini-row:nth-child(3) > p:last-child { transition-delay: 0.08s; }
.elementor-717 .elementor-element-11e89acc > :nth-child(6) .zn-mini > .zn-mini-row:nth-child(4) > p:last-child { transition-delay: 0.16s; }
/* 06 Ongoing support: the reply lifts in and brightens. */
.elementor-717 .elementor-element-11e89acc > :nth-child(7) .zn-mini:hover > p:last-child { transform: translateY(-4px); background-color: rgba(195,1,92,0.62); }

/* ---------- Pricing: Rent / Own plans. Rent is the recommended plan: badge on its top edge, a pink border and a stronger magenta glow. ---------- */
.elementor-717 .elementor-element-10f82f94 > .zn-hs-card:nth-child(1) { background-image: radial-gradient(90% 65% at 100% 0%, rgba(195,1,92,0.36) 0%, rgba(195,1,92,0) 70%); }
.elementor-717 .elementor-element-10f82f94 > .zn-hs-card:nth-child(2) { background-image: radial-gradient(85% 60% at 100% 0%, rgba(107,31,168,0.40) 0%, rgba(107,31,168,0) 70%); }
/* Plan panels: rows grouped at the top, the footer row pinned to the bottom, so both cards line up when one description runs longer. */
.elementor-717 .elementor-element-6455eba5.elementor-element-6455eba5, .elementor-717 .elementor-element-9c392b7.elementor-element-9c392b7 { justify-content: flex-start; }
.elementor-717 .elementor-element-417de261.elementor-element-417de261, .elementor-717 .elementor-element-4e9256d2.elementor-element-4e9256d2 { margin-block-start: auto; }
/* The badge sits on the card edge, so it skips the site-wide eyebrow rise-in. */
.elementor-717 .zn-eyebrow[data-id="6efc3605"] { animation: none; }
/* Rent: the notice row lights up and the tick pops. */
.elementor-717 .elementor-element-1edb6343 .zn-mini:hover > .zn-mini-row:nth-child(4) { background-color: rgba(195,1,92,0.24); box-shadow: inset 0 0 0 1px rgba(255,141,190,0.35); }
.elementor-717 .elementor-element-1edb6343 .zn-mini:hover > .zn-mini-row:last-child > p:last-child,
.elementor-717 .elementor-element-64a2c434 .zn-mini:hover > .zn-mini-row:last-child > p:last-child { transform: scale(1.4); }
/* Own: the 12 payments ripple up in a wave. */
.elementor-717 .elementor-element-64a2c434 .zn-mini:hover .elementor-element-1ba40d7e > div { transform: translateY(-4px); box-shadow: 0 8px 16px -8px rgba(195,1,92,0.9); }
.elementor-717 .elementor-element-1ba40d7e > div:nth-child(2) { transition-delay: 0.02s; }
.elementor-717 .elementor-element-1ba40d7e > div:nth-child(3) { transition-delay: 0.04s; }
.elementor-717 .elementor-element-1ba40d7e > div:nth-child(4) { transition-delay: 0.06s; }
.elementor-717 .elementor-element-1ba40d7e > div:nth-child(5) { transition-delay: 0.08s; }
.elementor-717 .elementor-element-1ba40d7e > div:nth-child(6) { transition-delay: 0.10s; }
.elementor-717 .elementor-element-1ba40d7e > div:nth-child(7) { transition-delay: 0.12s; }
.elementor-717 .elementor-element-1ba40d7e > div:nth-child(8) { transition-delay: 0.14s; }
.elementor-717 .elementor-element-1ba40d7e > div:nth-child(9) { transition-delay: 0.16s; }
.elementor-717 .elementor-element-1ba40d7e > div:nth-child(10) { transition-delay: 0.18s; }
.elementor-717 .elementor-element-1ba40d7e > div:nth-child(11) { transition-delay: 0.20s; }
.elementor-717 .elementor-element-1ba40d7e > div:nth-child(12) { transition-delay: 0.22s; }
/* Own: as the plan scrolls up the screen, the 12 payments fill one by one, the count ticks "0 of 12 paid" up to "12 of 12 paid", then ownership lights up.
   The real "12 monthly payments" text stays in the HTML for SEO and screen readers. Without scroll timelines (or with reduced motion) the bar simply shows full. */
@property --zn-wd-pay { syntax: '<integer>'; initial-value: 0; inherits: false; }
@keyframes zn-wd-seg { from { background-color: rgba(255,255,255,0.09); } to { background-color: var(--zn-magenta); } }
@keyframes zn-wd-pay { from { --zn-wd-pay: 0; } to { --zn-wd-pay: 12; } }
@keyframes zn-wd-own { from { opacity: 0.4; } to { opacity: 1; } }
@keyframes zn-wd-tick { from { transform: scale(0.4); opacity: 0; } to { transform: none; opacity: 1; } }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor-717 .elementor-element-9c392b7 { timeline-scope: --zn-wd-own; }
    .elementor-717 .elementor-element-1ba40d7e { view-timeline: --zn-wd-own block; }
    .elementor-717 .elementor-element-1ba40d7e > div { animation: zn-wd-seg linear both; animation-timeline: --zn-wd-own; }
    .elementor-717 .elementor-element-1ba40d7e > div:nth-child(1) { animation-range: cover 22% cover 25%; }
    .elementor-717 .elementor-element-1ba40d7e > div:nth-child(2) { animation-range: cover 24.6% cover 27.6%; }
    .elementor-717 .elementor-element-1ba40d7e > div:nth-child(3) { animation-range: cover 27.2% cover 30.2%; }
    .elementor-717 .elementor-element-1ba40d7e > div:nth-child(4) { animation-range: cover 29.8% cover 32.8%; }
    .elementor-717 .elementor-element-1ba40d7e > div:nth-child(5) { animation-range: cover 32.4% cover 35.4%; }
    .elementor-717 .elementor-element-1ba40d7e > div:nth-child(6) { animation-range: cover 35% cover 38%; }
    .elementor-717 .elementor-element-1ba40d7e > div:nth-child(7) { animation-range: cover 37.6% cover 40.6%; }
    .elementor-717 .elementor-element-1ba40d7e > div:nth-child(8) { animation-range: cover 40.2% cover 43.2%; }
    .elementor-717 .elementor-element-1ba40d7e > div:nth-child(9) { animation-range: cover 42.8% cover 45.8%; }
    .elementor-717 .elementor-element-1ba40d7e > div:nth-child(10) { animation-range: cover 45.4% cover 48.4%; }
    .elementor-717 .elementor-element-1ba40d7e > div:nth-child(11) { animation-range: cover 48% cover 51%; }
    .elementor-717 .elementor-element-1ba40d7e > div:nth-child(12) { animation-range: cover 50.6% cover 53.6%; }
    .elementor-717 .zn-mini-text[data-id="525cf713"] { position: relative; font-size: 0; counter-reset: zn-wd-paid var(--zn-wd-pay); animation: zn-wd-pay linear both; animation-timeline: --zn-wd-own; animation-range: cover 22% cover 53.6%; }
    .elementor-717 .zn-mini-text[data-id="525cf713"]::after { content: counter(zn-wd-paid) " of 12 paid" / ""; font-size: 13px; font-variant-numeric: tabular-nums; }
    .elementor-717 .elementor-element-4e9256d2 { animation: zn-wd-own linear both; animation-timeline: --zn-wd-own; animation-range: cover 52% cover 56%; }
    .elementor-717 .elementor-element-4e9256d2 > p:last-child { animation: zn-wd-tick linear both; animation-timeline: --zn-wd-own; animation-range: cover 53% cover 57%; }
  }
}

/* ---------- Featured projects (component 457, same as Home): case studies stack up the page like prints on a table. First and last cards sit straight, the middle ones are tilted. Covered cards tuck back (smaller) without darkening.
   The last card lands at the first card's height and runs a little taller so it covers the whole pile. Sticky works everywhere; the tilt-in and tuck need scroll-driven animations. Copied from Home's page CSS. ---------- */
@keyframes zn-cs-in { from { translate: 0 24%; rotate: var(--zn-tilt-in, 0deg); } to { translate: 0 0; rotate: var(--zn-tilt, 0deg); } }
@keyframes zn-cs-tuck { to { scale: 0.94; } }
.elementor-717 .zn-cs-stack { timeline-scope: --zn-cs2, --zn-cs3, --zn-cs4, --zn-cs5; }
.elementor-717 .zn-cs-stack > .zn-cs-card { position: sticky; top: var(--zn-cs-top, 120px); height: min(580px, calc(100vh - 200px)); rotate: var(--zn-tilt, 0deg); transform-origin: 50% 0%; }
.elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(1) { --zn-cs-top: 120px; --zn-tilt: 0deg; --zn-tilt-in: 0deg; }
.elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(2) { --zn-cs-top: 134px; --zn-tilt: 1.4deg; --zn-tilt-in: 5deg; view-timeline-name: --zn-cs2; }
.elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(3) { --zn-cs-top: 148px; --zn-tilt: -1.2deg; --zn-tilt-in: -5deg; view-timeline-name: --zn-cs3; }
.elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(4) { --zn-cs-top: 162px; --zn-tilt: 1deg; --zn-tilt-in: 4deg; view-timeline-name: --zn-cs4; }
.elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(5) { --zn-cs-top: 116px; --zn-tilt: 0deg; --zn-tilt-in: 0deg; view-timeline-name: --zn-cs5; height: calc(min(580px, calc(100vh - 200px)) + 32px); }
.elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(2n) { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); }
.elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(2n) > .zn-cs-media { order: 2; }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(1) { animation: zn-cs-in linear both, zn-cs-tuck linear both; animation-timeline: view(), --zn-cs2; animation-range: entry 0% entry 100%, entry 0% cover 55%; }
    .elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(2) { animation: zn-cs-in linear both, zn-cs-tuck linear both; animation-timeline: view(), --zn-cs3; animation-range: entry 0% entry 100%, entry 0% cover 55%; }
    .elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(3) { animation: zn-cs-in linear both, zn-cs-tuck linear both; animation-timeline: view(), --zn-cs4; animation-range: entry 0% entry 100%, entry 0% cover 55%; }
    .elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(4) { animation: zn-cs-in linear both, zn-cs-tuck linear both; animation-timeline: view(), --zn-cs5; animation-range: entry 0% entry 100%, entry 0% cover 55%; }
    .elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(5) { animation: zn-cs-in linear both; animation-timeline: view(); animation-range: entry 0% entry 100%; }
  }
}
@media (max-width: 767px) {
  .elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(n) { height: auto; grid-template-columns: minmax(0, 1fr); }
  .elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(n) > .zn-cs-media { order: 0; }
  /* Mobile header is 88px tall: cards stick 20px below it so the pile never runs into the header. */
  .elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(1) { --zn-cs-top: 108px; --zn-tilt: 0deg; --zn-tilt-in: 0deg; }
  .elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(2) { --zn-cs-top: 116px; --zn-tilt: 0.7deg; --zn-tilt-in: 3deg; }
  .elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(3) { --zn-cs-top: 124px; --zn-tilt: -0.6deg; --zn-tilt-in: -3deg; }
  .elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(4) { --zn-cs-top: 132px; --zn-tilt: 0.5deg; --zn-tilt-in: 2deg; }
  .elementor-717 .zn-cs-stack > .zn-cs-card:nth-child(5) { --zn-cs-top: 104px; --zn-tilt: 0deg; --zn-tilt-in: 0deg; height: max(650px, calc(100svh - 170px)); }
}

/* FAQ: small pink question numbers via CSS counters (keeps the FAQ schema text clean), same as About and Contact. */
.elementor-717 .elementor-element-548b6b19 { counter-reset: zn-faq; }
.elementor-717 .elementor-element-548b6b19 .zn-acc-item { counter-increment: zn-faq; }
.elementor-717 .elementor-element-548b6b19 .zn-acc-head .zn-h3 { position: relative; padding-inline-start: 34px; }
.elementor-717 .elementor-element-548b6b19 .zn-acc-head .zn-h3::before { content: counter(zn-faq, decimal-leading-zero); position: absolute; left: 0; top: 0.3em; font-size: 12px; font-weight: 600; letter-spacing: 0.1em; line-height: 1; color: var(--zn-pink-strong); }

/* Ask AI mock: blinking caret (same as Home and About). */
@keyframes zn-blink { 50% { opacity: 0; } }
.zn-ai-q::after { content: ""; display: inline-block; width: 2px; height: 1.05em; margin-inline-start: 3px; vertical-align: -0.15em; background-color: var(--zn-pink-strong); animation: zn-blink 1.1s steps(1) infinite; }
/* Google reviews: the Elfsight snippet (96) mounts the widget into .zn-reviews-embed. Hide the holder until it does (global class CSS loads after this file, hence the doubled class). */
body .elementor .zn-reviews-embed.zn-reviews-embed:not(:has([class^="elfsight-app"])) { display: none; }

/* ---------- Phones (2026-10-05). The case studies juddered while stuck on iPhone, but not on Home. The differences from Home: this page's wrapper clips overflow-x (to hide the wide glows), and a drifting glow animates right behind the stuck cards. Safari handles sticky elements badly under a clipping ancestor and next to a constantly animating layer. So on phones:
   - the wrapper no longer clips; each section clips its own sideways overflow instead, except the case-study section, so the sticky cards have no clipping ancestor (same as Home). Its glow is kept inside the screen;
   - the glow behind the case studies holds still.
   Pricing: more room above the Rent card, so the "Recommended" badge clears the button above it. ---------- */
@media (max-width: 767px) {
  .elementor-717 .elementor-element-53ce72d5.elementor-element-53ce72d5 { overflow-x: visible; }
  .elementor-717 .elementor-element-53ce72d5 > .zn-section:not(:has(.zn-cs-stack)) { overflow-x: clip; }
  .elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-cs-stack)::before { left: 0; right: 0; width: auto; animation: none; will-change: auto; }
  .elementor-717 .elementor-element-10f82f94.elementor-element-10f82f94 { margin-block-start: 56px; }
}

@media (prefers-reduced-motion: reduce) {
  .elementor-717 .elementor-element-51ed78a7::before,
  .elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-tl-row)::before,
  .elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-cs-stack)::before,
  .elementor-717 .elementor-element-53ce72d5 > .zn-section:has(.zn-reviews-embed)::before,
  .elementor-717 .elementor-element-1ec02956::before,
  .elementor-717 .elementor-element-62a49915::before, .elementor-717 .elementor-element-62a49915::after,
  .elementor-717 .zn-hero-card.zn-hero-card, .zn-ai-q::after { animation: none; }
}

/* ---------- Day mode for this page (the Web Design page keeps its own in the header template's CSS). ---------- */
html.zn-day .elementor-717 .elementor-element-53ce72d5 .zn-section.zn-section { background-color:transparent }
html.zn-day .elementor-717 .elementor-element-53ce72d5>.zn-section:has(.zn-reviews-embed) { background-image:none }
html.zn-day .elementor-717 .elementor-element-51ed78a7::before { background-image:radial-gradient(closest-side,#c3015c22 0%,#c3015c0b 55%,#c3015c00 100%) }
html.zn-day .elementor-717 .elementor-element-62a49915::before { background-image:radial-gradient(closest-side,#6b1fa829 0%,#6b1fa80d 55%,#6b1fa800 100%) }
html.zn-day .elementor-717 .elementor-element-62a49915::after { background-image:radial-gradient(closest-side,#2bade917 0%,#2bade908 55%,#2bade900 100%) }
html.zn-day .elementor-717 .elementor-element-548b6b19 .zn-acc-head .zn-h3::before { color:#c3015c }
html.zn-day .elementor-717 .elementor-element-653629d6::before { background-image:radial-gradient(ellipse 34% 26% at 50% 38%,#c3015c24 0%,#c3015c0e 45%,#c3015c00 100%),radial-gradient(ellipse 48% 40% at 50% 40%,#6b1fa826 0%,#6b1fa80d 50%,#6b1fa800 100%) }
html.zn-day .elementor-717 .zn-hs-row>.zn-hs-card:nth-child(3n+3) { background-image:radial-gradient(85% 60% at 100% 0%,#2bade924 0%,#2bade900 70%) }
html.zn-day .elementor-717 .zn-hs-row>.zn-hs-card:nth-child(3n+4) { background-image:radial-gradient(85% 60% at 100% 0%,#6b1fa830 0%,#6b1fa800 70%) }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    html.zn-day .elementor-717 .zn-hs-row>.zn-hs-card:last-child { background-color:#f6f0f5;background-image:radial-gradient(90% 70% at 100% 100%,#c3015c46 0%,#c3015c00 70%);border-color:#c3015c3d }
  }
}
html.zn-day .elementor-717 .elementor-element-53ce72d5>.zn-section:has(.zn-tl-row)::before { background-image:radial-gradient(closest-side,#6b1fa826 0%,#6b1fa80d 55%,#6b1fa800 100%) }
html.zn-day .elementor-717 .elementor-element-53ce72d5>.zn-section:has(.zn-cs-stack)::before { background-image:radial-gradient(closest-side,#c3015c1f 0%,#c3015c0a 55%,#c3015c00 100%) }
html.zn-day .elementor-717 .elementor-element-53ce72d5>.zn-section:has(.zn-reviews-embed)::before { background-image:radial-gradient(closest-side,#2bade921 0%,#2bade90c 55%,#2bade900 100%) }
html.zn-day .elementor-717 .elementor-element-1ec02956::before { background-image:radial-gradient(closest-side,#c3015c1c 0%,#c3015c0a 55%,#c3015c00 100%) }
html.zn-day .elementor-717 .zn-hs-card .zn-mini.zn-mini:hover { border-color:#c3015c5c;box-shadow:0 30px 60px -28px #c3015c5c }
html.zn-day .elementor-717 .elementor-element-11e89acc>:nth-child(2) .zn-mini:hover>.zn-mini-row:nth-child(4)>div:first-child { box-shadow:0 0 0 3px #ff8dbe36,0 8px 18px -6px #c3015c7a }
html.zn-day .elementor-717 .elementor-element-11e89acc>:nth-child(3) .zn-mini:hover>.zn-mini-row:nth-child(3) { border-color:#c3015c7a;box-shadow:0 0 0 3px #ff8dbe15 }
html.zn-day .elementor-717 .elementor-element-11e89acc>:nth-child(3) .zn-mini:hover>p:last-child { background-color:#d40b69;box-shadow:0 12px 26px -10px #c3015c91;color:#fff }
html.zn-day .elementor-717 .elementor-element-11e89acc>:nth-child(4) .zn-mini:hover>div { border-color:#c3015c66 }
html.zn-day .elementor-717 .elementor-element-11e89acc>:nth-child(5) .zn-mini:hover>div:nth-child(2) { box-shadow:0 0 0 2px #ff8dbe5c;background-color:#1a0b2615 }
html.zn-day .elementor-717 .elementor-element-11e89acc>:nth-child(5) .zn-mini:hover>div:nth-child(3)>p:nth-child(2) { text-decoration-color:currentColor }
html.zn-day .elementor-717 .elementor-element-11e89acc>:nth-child(6) .zn-mini:hover>.zn-mini-row:first-child>div { box-shadow:0 0 0 5px #3ddc842e }
html.zn-day .elementor-717 .elementor-element-11e89acc>:nth-child(7) .zn-mini:hover>p:last-child { background-color:#c3015c;color:#fff }
html.zn-day .elementor-717 .elementor-element-10f82f94>.zn-hs-card:nth-child(1) { background-image:radial-gradient(90% 65% at 100% 0%,#c3015c32 0%,#c3015c00 70%) }
html.zn-day .elementor-717 .elementor-element-10f82f94>.zn-hs-card:nth-child(2) { background-image:radial-gradient(85% 60% at 100% 0%,#6b1fa833 0%,#6b1fa800 70%) }
html.zn-day .elementor-717 .elementor-element-1edb6343 .zn-mini:hover>.zn-mini-row:nth-child(4) { background-color:#c3015c22;box-shadow:inset 0 0 0 1px #ff8dbe36 }
html.zn-day .elementor-717 .elementor-element-64a2c434 .zn-mini:hover .elementor-element-1ba40d7e>div { box-shadow:0 8px 16px -8px #c3015c8a }
html.zn-day .elementor-717 .elementor-element-a732cc8::before { background-image:radial-gradient(closest-side,#6b1fa826 0%,#6b1fa80d 55%,#6b1fa800 100%) }
html.zn-day .elementor-717 .elementor-element-7df784f4>.zn-hs-card:nth-child(2) { background-image:radial-gradient(85% 60% at 100% 0%,#6b1fa833 0%,#6b1fa800 70%) }
html.zn-day .elementor-717 .elementor-element-7df784f4>.zn-hs-card:hover { border-color:#c3015c5c;box-shadow:0 30px 60px -28px #c3015c5c }
html.zn-day .elementor-717 .elementor-element-7df784f4>.zn-hs-card:hover .elementor-element-67e1e842>div,
html.zn-day .elementor-717 .elementor-element-7df784f4>.zn-hs-card:hover .elementor-element-47faf32a>div { border-color:#c3015c66;background-color:#c3015c16 }

/* ---------- Living mock-ups for this page (the Web Design page is listed in the footer template's CSS): the mini UI pieces build in as they come into view. ---------- */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    :is(.elementor-717 [data-id="653629d6"]) .zn-mini *,
.elementor-717 [data-id="6455eba5"] * { animation-timing-function: ease-out; animation-fill-mode: both; }
    :is(.elementor-717 [data-id="653629d6"]) .zn-mini > *,
.elementor-717 [data-id="6455eba5"] > * { animation-name: zn-lm-up; }
    :is(.elementor-717 [data-id="653629d6"]) .zn-mini-label,
.elementor-717 [data-id="6455eba5"] .zn-mini-label { animation-name: zn-lm-fade; }
    :is(.elementor-717 [data-id="653629d6"]) .zn-mini-line { animation-name: zn-lm-grow; transform-origin: 0% 50%; }
    :is(.elementor-717 [data-id="653629d6"]) .zn-mini-row > :is(.zn-mini-dot, .zn-rw-logo, div:not([class*="zn-"])) { animation-name: zn-lm-pop; }
    :is(.elementor-717 [data-id="653629d6"]) .zn-mini-row > p:not([class*="zn-"]),
.elementor-717 [data-id="6455eba5"] .zn-mini-row > p:not([class*="zn-"]) { animation-name: zn-lm-pop; --x: 2%; }
    :is(.elementor-717 [data-id="653629d6"]) .zn-rw-amt { animation-name: zn-lm-pop; }
    :is(.elementor-717 [data-id="653629d6"]) .zn-mini-code { animation-name: zn-lm-code; animation-timing-function: steps(6, end); }
    .elementor-717 .zn-mini :is([data-id="57fe04ee"], [data-id="65defe29"], [data-id="6686c213"]) { animation-name: zn-lm-type; --x: 1.5%; }
    .elementor-717 [data-id="653629d6"] .zn-mini > [data-id="2cfcb194"] { animation-name: zn-lm-rise; }
    .elementor-717 .zn-mini [data-id="1ff9c68b"] { animation-name: zn-lm-pop; --x: 2%; }
    @media (min-width: 768px) {
      :is(.elementor-717 [data-id="653629d6"]) .zn-hs-row > :nth-child(2) { --zn-a: 38%; }
      :is(.elementor-717 [data-id="653629d6"]) .zn-hs-row > :nth-child(3) { --zn-a: 44%; }
      :is(.elementor-717 [data-id="653629d6"]) .zn-hs-row > :nth-child(4) { --zn-a: 7.5%; }
      :is(.elementor-717 [data-id="653629d6"]) .zn-hs-row > :nth-child(5) { --zn-a: 27%; }
      :is(.elementor-717 [data-id="653629d6"]) .zn-hs-row > :nth-child(6) { --zn-a: 46%; }
      :is(.elementor-717 [data-id="653629d6"]) .zn-hs-row > :nth-child(7) { --zn-a: 65%; }
      :is(.elementor-717 [data-id="653629d6"]) .zn-hs-row > :nth-child(-n+3) .zn-mini * { animation-timeline: --zn-hs; animation-range: entry calc(var(--zn-a) + var(--o) * 5% + var(--x, 0%) * 3) entry calc(var(--zn-a) + var(--o) * 5% + var(--x, 0%) * 3 + 18%); }
      :is(.elementor-717 [data-id="653629d6"]) .zn-hs-row > :nth-child(n+4) .zn-mini * { animation-timeline: --zn-hs; animation-range: contain calc(var(--zn-a) + (var(--o) * 1.6% + var(--x, 0%)) * var(--zn-w, 1)) contain calc(var(--zn-a) + (var(--o) * 1.6% + var(--x, 0%) + 4.5%) * var(--zn-w, 1)); }
    }
    @media (min-width: 768px) and (max-width: 1000px) {
      :is(.elementor-717 [data-id="653629d6"]) .zn-hs-row > :nth-child(4) { --zn-a: 13%; }
      :is(.elementor-717 [data-id="653629d6"]) .zn-hs-row > :nth-child(5) { --zn-a: 31.5%; }
      :is(.elementor-717 [data-id="653629d6"]) .zn-hs-row > :nth-child(6) { --zn-a: 49.5%; }
      :is(.elementor-717 [data-id="653629d6"]) .zn-hs-row > :nth-child(7) { --zn-a: 67.5%; }
    }
    @media (max-width: 767px) {
      :is(.elementor-717 [data-id="653629d6"]) .zn-mini * { animation-timeline: view(inline); animation-range: cover calc(6% + var(--o) * 3.5% + var(--x, 0%)) cover calc(28% + var(--o) * 3.5% + var(--x, 0%)); }
    }
    .elementor-717 [data-id="6455eba5"] * { animation-timeline: view(); animation-range: cover calc(4% + var(--x, 0%) * 2) cover calc(24% + var(--x, 0%) * 2); }
  }
}

/* ---------- Day mode, element by element (the other pages are listed in the footer template's CSS): every element copied from Web Design or Brand Consultancy takes the same override. ---------- */
html.zn-day .elementor :is(.e-4c4ad2ab-d876,.e-3208e651-ecfb,.e-4ad03666-835a,.e-3ec92747-e582,.e-2f46e07b-1f37,.e-14459792-46d9) { background-color:#1a0b2609 }
html.zn-day .elementor .e-7597b8de-1c23 { background-color:#1a0b260e }
html.zn-day .elementor .e-a2e7cad-1cbe { background-color:#1a0b2612 }
html.zn-day .elementor .e-739f7c56-d7dc { background-color:#1a0b2627 }
html.zn-day .elementor :is(.e-18fb5aa4-daad,.e-6bb7341a-9c1c,.e-6e8ae2ca-c3e2) { background-color:#1a0b2632 }
html.zn-day .elementor .e-b2bdedc-72d2 { background-color:#c3015c35 }
html.zn-day .elementor .e-4d1075ca-4c43 { background-color:#fff }
html.zn-day .elementor :is(.e-29e7aa97-ab6a,.e-632477d3-ae1d) { background-color:#ffffff8c }
html.zn-day .elementor .e-b94da0-74bd { background-image:linear-gradient(120deg,#2bade939 0%,#6b1fa846 55%,#c3015c46 100%) }
html.zn-day .elementor .e-31795b64-425a { background-image:linear-gradient(150deg,#2bade939 0%,#6b1fa846 55%,#c3015c46 100%) }
html.zn-day .elementor .e-17fab905-592a { border-bottom-color:#1a0b2610 }
html.zn-day .elementor :is(.e-75f7a4e5-67ea,.e-1c1f66b6-e6a5) { border-color:#1a0b2614;background-color:#1a0b2609 }
html.zn-day .elementor :is(.e-2a6b898b-7dfc,.e-21ba5c9a-9c2f,.e-381175a7-8fc1,.e-63386c78-cc3f,.e-6adc71af-d7a5,.e-761ea178-41ac) { border-color:#1a0b261d;background-color:#1a0b260b }
html.zn-day .elementor .e-e4c8e54-53b0 { border-color:#1a0b2629;background-color:#f8f7fab2;box-shadow:0px 24px 40px -24px #1a0b2645 }
html.zn-day .elementor .e-747c09e9-8645 { border-color:#c3015c56;box-shadow:0px 40px 90px -50px #c3015c6b }
html.zn-day .elementor :is(.e-7f74eee6-ca0a,.e-13a43e15-c62a) { border-top-color:#1a0b2610 }
html.zn-day .elementor :is(.e-174b4773-4d83,.e-7b3d1928-f140) { border-top-color:#1a0b261a }
html.zn-day .elementor .e-76e597d2-5ba2 { box-shadow:0px 10px 24px -10px #c3015c8a }
html.zn-day .elementor .e-48d87871-b8f3 { color:#1a0b26 }
html.zn-day .elementor :is(.e-1c2a3051-3a31,.e-3f513db6-6afb,.e-551bd23-f566,.e-15956623-ec7e,.e-7dfbdab0-a7d7,.e-232323c7-3a86,.e-3e6a8967-f179,.e-6b3d5717-4f3f,.e-169c17ea-eed2) { color:#5d506e }
html.zn-day .elementor .e-18868f7f-2ef8 { color:#5d506e;background-color:#1a0b260b }
html.zn-day .elementor :is(.e-5d2c8088-1c38,.e-797b4509-1816) { color:#5d506eb2 }
html.zn-day .elementor :is(.e-553a33b2-a09b,.e-6393de57-be1c,.e-40e81d2a-707f) { color:#5d506ebf }
html.zn-day .elementor :is(.e-6cb862c8-eede,.e-b8ac9ce-d7b6,.e-5b55f6d4-4e7e,.e-78053c38-112d,.e-14f4632e-ab06,.e-4940456-6e7f) { color:#c3015c }
html.zn-day .elementor :is(.e-5e387ecf-dacf,.e-5cdc662-cb56,.e-3bd288ef-1b1e) em { color:#c3015c }
html.zn-day .elementor :is(.e-364307b2-51d6,.e-7de2612b-9955,.e-2a96a0ab-1065,.e-480f77c7-1ece,.e-253c594e-4e80,.e-200ca4f6-30cc,.e-1e8cd2d5-189f,.e-6f137977-4657,.e-59100840-8b71,.e-2de526ec-e7a2,.e-59dfd829-610a,.e-5e021ec6-d0e0,.e-1afd9844-aef4,.e-386a1aee-e8d7,.e-6bc95942-c33d,.e-408465a1-c5d8) { color:#fff }/* End custom CSS */