/* zavierflow: additions to the Zavier template stylesheet.
   The template CSS does the layout; this file adds what the Webflow runtime and GSAP used to do
   (menu, reveals, marquees, accordions), the pages the template does not have (catalogue, checkout,
   legal), the footer, the cookie banner and accessibility fixes. */

:root { --zf-accent: #fb5b23; --zf-accent-2: #fe8f68; --zf-line: #c9c9c9; --zf-ink: #000; --zf-muted: #636363; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body.zf-body { container-type: inline-size; overflow-x: hidden; }
.zf-main { display: block; }
img { max-width: 100%; }
[id] { scroll-margin-top: 24px; }

/* accessibility helpers */
.zf-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.zf-skip { position: absolute; left: 16px; top: -60px; z-index: 3000; background: #000; color: #fff; padding: 10px 16px; border-radius: 999px; text-decoration: none; }
.zf-skip:focus { top: 16px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 2px solid var(--zf-accent); outline-offset: 3px; }
#main-content { display: block; height: 0; outline: none; }

/* ------------------------------------------------------------ buttons (template markup with spans) */
.button { cursor: pointer; font: inherit; }
button.button { border: 1px solid var(--white); }
.button-text-wrap, .button-normal-text, .button-hover-text { display: block; }
.button-normal-text, .button-hover-text { transition: transform .45s cubic-bezier(.2, .7, .2, 1); }
.button:hover .button-normal-text, .button:focus-visible .button-normal-text { transform: translateY(-100%); }
.button:hover .button-hover-text, .button:focus-visible .button-hover-text { transform: translateY(-100%); }
.button-hover-fill { flex: none; transition: transform .35s ease; }
.button:hover .button-hover-fill { transform: scale(1.35); }
.button[disabled] { opacity: .6; cursor: progress; }
.zf-btn-block { width: 100%; }
.zf-btn-block .button-inner { width: 100%; }
.text-button { display: inline-block; }
.text-button-normal-text, .text-button-hover-text { display: block; transition: transform .4s cubic-bezier(.2, .7, .2, 1); }
.text-button:hover .text-button-normal-text, .text-button:focus-visible .text-button-normal-text,
.text-button:hover .text-button-hover-text, .text-button:focus-visible .text-button-hover-text { transform: translateY(-100%); }
.zf-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.zf-link:hover { color: var(--zf-accent); }
.zf-link--light { color: #fff; }
.zf-inline-btn { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* ------------------------------------------------------------ reveals, marquees, spinners */
html.js:not(.zf-noui) [data-reveal] { opacity: 0; transition: opacity .9s cubic-bezier(.2, .7, .2, 1), transform .9s cubic-bezier(.2, .7, .2, 1); }
html.js:not(.zf-noui) [data-reveal="up"] { transform: translateY(36px); }
html.js:not(.zf-noui) [data-reveal="zoom"] { transform: scale(.88); }
html.js:not(.zf-noui) [data-reveal="left"] { transform: translateX(60px); }
html.js:not(.zf-noui) [data-reveal="right"] { transform: translateX(-60px); }
html.js:not(.zf-noui) [data-reveal].is-in { opacity: 1; transform: none; }

[data-marquee] { animation: zf-marquee 38s linear infinite; will-change: transform; }
.results-v1-client-logos-row[data-marquee] { animation-duration: 24s; }
@keyframes zf-marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }
[data-spin="right"] { animation: zf-spin 18s linear infinite; }
[data-spin="left"] { animation: zf-spin 18s linear infinite reverse; }
@keyframes zf-spin { to { transform: rotate(360deg); } }
.rating-v1-progress-dot[data-progress] { transition: width 1.6s cubic-bezier(.2, .7, .2, 1) .2s; }

@media (prefers-reduced-motion: reduce) {
  html.js [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
  [data-marquee], [data-spin] { animation: none !important; }
  .button-normal-text, .button-hover-text, .text-button-normal-text, .text-button-hover-text { transition: none; }
}

/* ------------------------------------------------------------ navbar */
.zf-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--black); height: auto; }
.zf-brand__icon { width: 34px; height: 34px; flex: none; border-radius: 9px; }
.zf-brand__word { font-family: var(--_typography---font-family--body-font); font-size: 22px; font-weight: 500; letter-spacing: -.02em; line-height: 1; }
.zf-header.is-dark .zf-brand__word, .zf-header.is-dark .nav-menu .text-button { color: #fff; }
.zf-nav__link.w--current .text-button-normal-text { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.hamburger-trigger { background: none; border: 0; cursor: pointer; }
.zf-header.is-dark .header-menu-icon-line { background-color: #fff; }
.header-menu-icon-line { transition: transform .3s ease; }
@media screen and (max-width: 991px) {
  .zf-nav.zf-open .w-nav-menu { display: block; position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 1200; padding: 0 var(--_responsive---container--padding-x); }
  .zf-nav .nav-menu { flex-direction: column; align-items: flex-start; gap: 18px; padding: 8px 0 20px; }
  .zf-nav .nav-menu .dash-vr-lines { display: none; }
  .zf-nav .nav-menu-with-btn { box-shadow: 0 18px 40px #0000002e; }
  .zf-header.is-dark .nav-menu .text-button { color: var(--black); }
  .zf-nav.zf-open .line-one { transform: translateY(4px) rotate(45deg); }
  .zf-nav.zf-open .line-two { transform: translateY(-4px) rotate(-45deg); }
  .zf-brand__word { font-size: 20px; }
}
.header-section { position: relative; z-index: 1100; }

/* ------------------------------------------------------------ home */
.zf-hero-h1 { margin: 0; display: flex; flex-direction: column; align-items: center; font-weight: 400; }
.zf-hero-h1 > span { display: flex; }
.zf-hero-word { font-size: clamp(34px, 4cqw, 78px); text-transform: lowercase; letter-spacing: .02em; }
.zf-hero-last { line-height: .9; }
.home-hero-portrait-wrap img { width: 100%; height: 100%; object-fit: cover; }
.zf-tag-link { text-decoration: none; color: inherit; transition: background-color .2s ease, border-color .2s ease; }
.zf-tag-link:hover { background-color: var(--white); }
.zf-preview { text-decoration: none; color: inherit; transition: transform .3s ease; }
.zf-preview:hover { transform: translateY(-3px); }
.about-feature-gallery-item img { width: 100%; height: 100%; object-fit: cover; }
.zf-marquee { display: flex; gap: 0 !important; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.zf-marquee__row { gap: 0 !important; flex: none; display: flex; }
.zf-marquee__item { display: flex; align-items: center; gap: 28px; padding-right: 28px; white-space: nowrap; font-family: var(--_typography---font-family--headding-font); font-size: clamp(22px, 2.2cqw, 34px); text-transform: uppercase; color: #9a9a9a; }
.zf-marquee__item span { color: var(--zf-accent); font-family: var(--_typography---font-family--body-font); }
.zf-mini-chips { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.zf-mini-chips span { border: 1px dashed var(--zf-line); border-radius: 999px; padding: 6px 12px; font-size: 14px; }
.zf-card-brand { color: var(--zf-muted); }
.project-item img { transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.project-item:hover img { transform: scale(1.03); }
.zf-work-note { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding-top: 24px; border-top: 1px dashed var(--zf-line); margin-top: 8px; }
.zf-work-note p { margin: 0; color: var(--zf-muted); max-width: 640px; }
.zf-brand-dotted { font-size: clamp(24px, 2.2cqw, 38px); text-transform: lowercase; color: var(--gray); }
.results-v1-client-logos-panel { gap: 0 !important; }
.results-v1-client-logos-row { gap: 0 !important; }
.zf-chip { width: auto !important; height: auto !important; padding: 10px 16px; margin-right: 12px; white-space: nowrap; font-weight: 500; font-size: 15px; display: flex; align-items: center; }
.zf-promise-mark { font-family: var(--_typography---font-family--headding-font); font-size: 28px; text-transform: uppercase; line-height: 1; width: auto !important; height: auto !important; }
.results-v1-testimonial-author a { color: inherit; }
.zf-global { margin: 0; }
.zf-tag-price { background: var(--black); color: var(--white); border-color: var(--black) !important; }
.services-v1-item:hover .services-v1-icon-wrap { background-color: var(--white); }
.zf-rating-link { text-decoration: none; color: inherit; transition: transform .3s ease; }
.zf-rating-link:hover { transform: translateY(-4px) rotate(-1deg); }
.zf-rating-word { font-size: clamp(64px, 12.6cqw, 240px); text-transform: lowercase; white-space: nowrap; }
.rating-v1-footer-wrap { overflow: hidden; }
.cta-avatar-wrap img { width: 100%; height: 100%; object-fit: cover; }
.about-story-multi-design-icon img { width: 100%; height: 100%; object-fit: cover; }
.cta-title { margin: 0; }
.zf-note-box p { margin-bottom: 0; }
.zf-feat-price { opacity: .6; margin-left: 4px; }
.zf-pricing-more { display: flex; justify-content: center; padding-top: 32px; }

/* "Three simple promises": static version of the template's sticky section */
.zf-approach .our-approach-content-wrap { height: auto; }
.zf-approach .our-approach-heading-row { height: auto; position: relative; flex-direction: column; gap: 64px; padding-top: 110px; padding-bottom: 110px; }
.zf-approach .our-approach-cards-row { position: static; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; padding: 0; height: auto; max-width: 1280px; }
.zf-approach .our-approach-card { max-width: none; min-height: 420px; }
.zf-approach .our-approach-card:nth-child(2) { margin-top: 64px; }
.zf-approach .our-approach-card:nth-child(3) { margin-top: 32px; }
@media (max-width: 991px) { .zf-approach .our-approach-cards-row { grid-template-columns: 1fr 1fr; } .zf-approach .our-approach-card:nth-child(3) { margin-top: 0; } }
@media (max-width: 767px) {
  .zf-approach .our-approach-cards-row { grid-template-columns: 1fr; }
  .zf-approach .our-approach-card { position: static; min-height: 320px; margin-top: 0 !important; }
  .zf-approach .our-approach-heading-row { padding-top: 72px; padding-bottom: 72px; gap: 40px; }
}

/* ------------------------------------------------------------ page headers (inner pages) */
.zf-page-hero__inner { padding-top: 0; }
.zf-page-hero__text { display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; max-width: 720px; margin: 0 auto; position: relative; z-index: 5; }
.zf-page-hero__text h1 { margin: 0; }
.zf-page-hero__lead { margin: 0; max-width: 560px; font-size: 18px; line-height: 1.45; color: var(--graphite); }
.zf-header-meta { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.zf-header-meta span { border: 1px dashed var(--zf-line); border-radius: 999px; padding: 6px 12px; font-size: 14px; }
.zf-header-buttons { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; justify-content: center; }

/* ------------------------------------------------------------ FAQ accordion */
.faq-item-head.zf-faq__q { width: 100%; background: none; border: 0; padding: 0; text-align: left; font: inherit; color: inherit; cursor: pointer; align-items: center; }
.faq-item-icon { transform: rotate(180deg); transition: transform .35s ease; }
.zf-faq.is-open .faq-item-icon { transform: rotate(0deg); }
html.js .zf-faq__a { height: 0; transition: height .4s cubic-bezier(.2, .7, .2, 1); }
.zf-faq__a p { margin: 0; color: var(--graphite); line-height: 1.5; }
.zf-faq__a a { color: inherit; }

/* ------------------------------------------------------------ services catalogue */
.zf-cat { padding: 80px 0; }
.zf-cat__head { display: grid; grid-template-columns: 1.1fr 1fr auto; gap: 24px 40px; align-items: end; margin-bottom: 40px; }
.zf-cat__title h2 { margin: 6px 0 14px; }
.zf-cat__num { color: var(--zf-muted); }
.zf-cat__lead { margin: 0; font-size: 18px; line-height: 1.45; color: var(--graphite); max-width: 520px; }
.zf-cat__icon { width: 200px; height: 120px; }
.zf-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 16px; }
.zf-item { background: var(--light-gray); border-radius: 20px; padding: 24px; display: flex; flex-direction: column; gap: 14px; transition: background-color .25s ease, transform .25s ease; }
.zf-item:hover { background: var(--white); transform: translateY(-3px); }
.zf-item__top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.zf-item__price { font-family: var(--_typography---font-family--forth-font); font-size: 30px; font-weight: 600; letter-spacing: -.02em; }
.zf-item__meta { font-size: 13px; color: var(--zf-muted); text-align: right; }
.zf-item__title { margin: 0; font-size: 22px; line-height: 1.15; font-weight: 500; }
.zf-item__title a { color: inherit; text-decoration: none; }
.zf-item__title a:hover { text-decoration: underline; text-underline-offset: 4px; }
.zf-item__short { margin: 0; color: var(--graphite); line-height: 1.45; flex: 1; }
.zf-item__facts { list-style: none; margin: 0; padding: 12px 0 0; border-top: 1px dashed var(--zf-line); display: grid; gap: 4px; font-size: 14px; color: var(--zf-muted); }
.zf-item__facts li::before { content: "* "; color: var(--zf-accent); }
.zf-item__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; padding-top: 4px; }
.zf-bundle-teaser { padding: 80px 0; }
.zf-bundle-teaser__inner { display: grid; grid-template-columns: 1fr 1.2fr; gap: 40px; align-items: center; }
.zf-bundle-teaser__inner h2 { margin: 16px 0; }
.zf-label-dark { color: #fff; border-color: #ffffff4d; }
.zf-bundle-teaser__list { display: grid; gap: 10px; }
.zf-bundle-teaser__item { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "name price" "save price"; gap: 2px 16px; align-items: center; padding: 18px 22px; border-radius: 16px; background: #ffffff12; border: 1px solid #ffffff26; color: #fff; text-decoration: none; transition: background-color .2s ease; }
.zf-bundle-teaser__item:hover { background: #ffffff24; }
.zf-bundle-teaser__name { grid-area: name; font-weight: 600; font-size: 18px; }
.zf-bundle-teaser__price { grid-area: price; font-family: var(--_typography---font-family--forth-font); font-size: 28px; font-weight: 600; }
.zf-bundle-teaser__save { grid-area: save; font-size: 14px; opacity: .7; }
.zf-bundle-teaser__item.zf-light { background: var(--light-gray); border-color: transparent; color: var(--black); }
.zf-bundle-teaser__item.zf-light:hover { background: var(--white); }
@media (max-width: 991px) {
  .zf-cat__head { grid-template-columns: 1fr; align-items: start; }
  .zf-cat__icon { display: none; }
  .zf-bundle-teaser__inner { grid-template-columns: 1fr; }
}
@media (max-width: 767px) { .zf-cat { padding: 56px 0; } .zf-bundle-teaser { padding: 56px 0; } }

/* ------------------------------------------------------------ deliverable page */
.zf-crumbs { display: flex; gap: 8px; font-size: 14px; color: #ffffffb3; margin-bottom: 4px; }
.zf-crumbs a { color: inherit; text-decoration: none; }
.zf-crumbs a:hover { color: #fff; text-decoration: underline; }
.zf-item-h1 { margin: 0; font-size: clamp(44px, 5cqw, 92px); line-height: .98; }
.zf-buy { display: flex; flex-direction: column; gap: 14px; margin-top: 40px; color: #fff; }
.zf-buy__price { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.zf-buy__amount { font-family: var(--_typography---font-family--forth-font); font-size: 52px; font-weight: 600; letter-spacing: -.02em; line-height: 1; }
.zf-buy__note { color: #ffffffb3; }
.zf-buy__facts { margin: 0; color: #ffffffcc; }
.zf-buy__actions { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; }
.zf-hero-shot .service-image-inner { padding: 0; width: 100%; height: 100%; }
.zf-hero-shot .service-image-inner img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.zf-hero-shot { overflow: hidden; }
.zf-gallery-item { text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: 10px; }
.zf-gallery-item img { transition: transform .6s ease; }
.zf-gallery-item:hover img { transform: scale(1.03); }
.services-details-gallery-item { overflow: hidden; }
.zf-gallery-cap { font-size: 14px; color: var(--zf-muted); }
.zf-gallery-note { font-size: 14px; color: var(--zf-muted); margin: 14px 0 0; }
.zf-list-title { font-size: 14px; font-weight: 500; margin: 0 0 4px; }
.zf-list-title ~ .zf-list-title { margin-top: 28px; }
.zf-lists .services-features-list ul { margin-bottom: 0; }
.zf-lists .services-features-list li { margin-bottom: 8px; line-height: 1.45; }
.zf-in-bundles { display: grid; gap: 16px; }
.zf-in-bundles .zf-bundle-teaser__list { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.zf-order-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 26px; border-radius: 20px; background: var(--light-gray); }
.zf-order-bar__name { font-weight: 600; font-size: 20px; }
.zf-order-bar__meta { color: var(--zf-muted); }

/* ------------------------------------------------------------ bundles */
.zf-bundles { padding-top: 80px; }
.zf-bundles__row { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.zf-bundles__row .pricing-v1-plan-price-wrap { flex-direction: column; align-items: stretch; gap: 16px; }
.zf-bundles__row .pricing-v1-features { grid-template-columns: 1fr; }
.zf-bundles__row .pricing-v1-item { display: flex; flex-direction: column; }
@media (max-width: 991px) { .zf-bundles__row { grid-template-columns: 1fr; } }
.zf-compare { padding: 80px 0; display: block; }
.zf-compare h2 { margin: 12px 0 28px; }
.zf-small { font-size: 14px; color: var(--zf-muted); }

/* ------------------------------------------------------------ concept work */
.zf-concepts { padding: 40px 0 80px; }
.zf-concept { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); gap: 48px; padding: 48px 0; align-items: start; }
.zf-concept__text { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 14px; }
.zf-concept__num { color: var(--zf-muted); }
.zf-concept__kicker { margin: 0; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--zf-muted); }
.zf-concept__text h2 { margin: 0; }
.zf-concept__cap { margin: 0; font-size: 18px; line-height: 1.45; color: var(--graphite); }
.zf-concept__facts { margin: 6px 0 0; display: grid; gap: 0; border-top: 1px dashed var(--zf-line); }
.zf-concept__facts > div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px dashed var(--zf-line); }
.zf-concept__facts dt { color: var(--zf-muted); }
.zf-concept__facts dd { margin: 0; text-align: right; font-weight: 500; }
.zf-concept__facts a { color: inherit; }
.zf-concept__wide { border-radius: 24px; overflow: hidden; background: var(--light-gray); }
.zf-concept__wide img { display: block; width: 100%; height: auto; }
@media (max-width: 991px) { .zf-concept { grid-template-columns: 1fr; gap: 28px; } .zf-concept__text { position: static; } }

/* ------------------------------------------------------------ about */
.zf-about { padding: 80px 0; }
.zf-about__grid { display: grid; grid-template-columns: 1fr 2fr; gap: 32px 48px; }
.zf-about__text { display: flex; flex-direction: column; gap: 24px; }
.zf-about__text > p.heading-05 { margin: 0; }
.zf-about__text h2 { margin: 0; }
.zf-about__lead { margin: 0; font-size: 18px; line-height: 1.45; color: var(--graphite); }
.zf-about-h1 { gap: 0; }
@media (max-width: 767px) { .zf-about__grid { grid-template-columns: 1fr; } .zf-about { padding: 56px 0; } }

/* rich text (legal pages and about) */
.zf-rich { color: var(--graphite); line-height: 1.6; font-size: 16px; }
.zf-rich p { margin: 0 0 14px; }
.zf-rich ul, .zf-rich ol { margin: 0 0 14px; padding-left: 20px; }
.zf-rich li { margin-bottom: 8px; }
.zf-rich a { color: var(--black); text-decoration: underline; text-underline-offset: 3px; }
.zf-rich strong { color: var(--black); font-weight: 600; }

.zf-facts { margin: 0; display: grid; border-top: 1px dashed var(--zf-line); }
.zf-facts > div { display: grid; grid-template-columns: minmax(130px, 220px) 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px dashed var(--zf-line); }
.zf-facts dt { color: var(--zf-muted); }
.zf-facts dd { margin: 0; color: var(--black); font-weight: 500; overflow-wrap: anywhere; }
.zf-facts a { color: inherit; }
@media (max-width: 479px) { .zf-facts > div { grid-template-columns: 1fr; gap: 2px; } }

/* ------------------------------------------------------------ contact */
.zf-contact-lead { margin: 0 auto; max-width: 520px; text-align: center; color: var(--graphite); line-height: 1.45; font-size: 17px; }
.zf-contact-hero .contact-wrapper { gap: 24px; }
.zf-select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23999' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px; }
.field-box.zf-select { color: #fff; }
.field-box.zf-select option { color: #000; }
.field-box[aria-invalid="true"], .zf-input[aria-invalid="true"] { border-color: #ff7a59 !important; box-shadow: 0 0 0 1px #ff7a59; }
.zf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.zf-check { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.45; cursor: pointer; }
.zf-check input { width: 18px; height: 18px; margin: 2px 0 0; flex: none; accent-color: var(--zf-accent); cursor: pointer; }
.zf-check a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.zf-check--dark { color: #ffffffd9; }
.zf-check.is-invalid span { color: #ff9a80; }
.zf-form__actions { margin-top: 4px; }
.zf-status { margin: 0; min-height: 1px; font-size: 14px; line-height: 1.45; }
.zf-status:empty { display: none; }
.zf-status[data-type="error"] { color: #ffb4a1; }
.zf-status[data-type="success"] { color: #9be7b0; }
.zf-checkout .zf-status[data-type="error"] { color: #ffb4a1; }
.zf-status a { color: inherit; }
.zf-contact-details { padding: 64px 0; display: block; }
.zf-contact-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; display: grid !important; gap: 24px !important; }
.zf-contact-grid .contact-item-box { align-items: flex-start; text-align: left; }
.zf-contact-grid .contact-link { text-decoration: none; color: var(--black); }
.zf-contact-grid .zf-small { margin: 4px 0 0; }
.zf-contact-legal { margin: 40px 0 0; padding-top: 24px; border-top: 1px dashed var(--zf-line); color: var(--zf-muted); font-size: 14px; }
.zf-contact-legal a { color: var(--black); }
@media (max-width: 991px) { .zf-contact-grid { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 479px) { .zf-contact-grid { grid-template-columns: 1fr !important; } }

/* ------------------------------------------------------------ checkout and thank you */
.zf-checkout-head { padding-bottom: 32px; }
.zf-checkout-sec { padding: 48px 0 80px; display: block; }
.zf-checkout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(320px, 1fr); gap: 20px; align-items: start; }
.zf-checkout__main { display: grid; gap: 16px; }
.zf-checkout__side { position: sticky; top: 20px; }
.zf-panel { background: var(--white); border-radius: 24px; padding: 28px; display: flex; flex-direction: column; gap: 12px; }
.zf-panel__title { margin: 0 0 6px; font-size: 20px; font-weight: 600; display: flex; align-items: center; gap: 10px; }
.zf-panel__title span { width: 28px; height: 28px; border-radius: 50%; background: var(--black); color: #fff; font-size: 14px; display: inline-flex; align-items: center; justify-content: center; }
.zf-label { font-size: 14px; font-weight: 600; }
.zf-label em { font-weight: 400; color: var(--zf-muted); font-style: normal; }
.zf-input { width: 100%; border: 1px solid #d6d6d6; border-radius: 14px; padding: 13px 16px; font: inherit; font-size: 16px; background-color: var(--ghost-white); color: var(--black); }
.zf-input:focus { border-color: var(--black); outline: none; box-shadow: 0 0 0 3px #00000014; }
.zf-textarea { min-height: 96px; resize: vertical; }
.zf-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.zf-fields > div { display: flex; flex-direction: column; gap: 8px; }
.zf-hint { margin: 0; font-size: 14px; color: var(--zf-muted); line-height: 1.45; }
.zf-terms { margin: 0; padding-left: 18px; display: grid; gap: 10px; color: var(--graphite); line-height: 1.5; font-size: 15px; }
.zf-terms strong { color: var(--black); }
.zf-summary { background-image: linear-gradient(180deg, var(--black-gradient--frist-color), var(--black-gradient--last-color) 60%); color: #fff; gap: 14px; }
.zf-panel__title--light { color: #fff; }
.zf-summary__line { display: flex; justify-content: space-between; gap: 12px; font-weight: 600; font-size: 18px; }
.zf-summary__list { margin: 0; padding-left: 18px; color: #ffffffb3; font-size: 14px; display: grid; gap: 4px; }
.zf-summary__save { margin: 0; color: #9be7b0; font-size: 14px; }
.zf-summary__total { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px dashed #ffffff40; padding-top: 14px; font-size: 18px; }
.zf-summary__total > span:last-child { font-family: var(--_typography---font-family--forth-font); font-size: 34px; font-weight: 600; }
.zf-summary__total small { font-size: 14px; font-family: var(--_typography---font-family--body-font); opacity: .7; }
.zf-summary__vat { margin: -8px 0 4px; text-align: right; font-size: 13px; color: #ffffff99; }
.zf-summary__fine { margin: 0; font-size: 12px; color: #ffffff8c; line-height: 1.5; }
.zf-summary .button.w-variant-5118072d-f45c-38e2-7348-d7727d760d91 { margin-top: 4px; }
@media (max-width: 991px) { .zf-checkout { grid-template-columns: 1fr; } .zf-checkout__side { position: static; } }
@media (max-width: 600px) { .zf-fields { grid-template-columns: 1fr; } .zf-panel { padding: 22px; border-radius: 20px; } }
.zf-thanks { max-width: 760px; margin: 0 auto; }
.zf-thanks [data-show] { display: none; }
.zf-thanks[data-state="paid"] [data-show="paid"], .zf-thanks[data-state="pending"] [data-show="pending"] { display: flex; }
.zf-tl { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 12px; }
.zf-tl li { display: grid; grid-template-columns: 160px 1fr; gap: 12px; padding-bottom: 12px; border-bottom: 1px dashed var(--zf-line); }
.zf-tl__when { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--zf-muted); }
@media (max-width: 600px) { .zf-tl li { grid-template-columns: 1fr; gap: 2px; } }

/* ------------------------------------------------------------ legal pages */
.zf-legal-head { padding: 72px 0 48px; display: block; }
.zf-legal-head__inner { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; max-width: 860px; }
.zf-legal-head__inner h1 { margin: 0; }
.zf-legal-head__lead { margin: 0; font-size: 18px; line-height: 1.45; color: var(--graphite); max-width: 640px; }
.zf-legal-head__date { margin: 0; font-size: 14px; color: var(--zf-muted); }
.zf-legal { padding: 48px 0 96px; display: block; }
.zf-legal__grid { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 56px; align-items: start; }
.zf-legal__side { position: sticky; top: 20px; max-height: calc(100vh - 40px); overflow: auto; padding-right: 8px; }
.zf-legal__side-title { margin: 0 0 10px; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--zf-muted); }
.zf-legal__side-title:not(:first-child) { margin-top: 28px; }
.zf-legal__toc, .zf-legal__docs { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 14px; line-height: 1.35; }
.zf-legal__toc a, .zf-legal__docs a { color: var(--graphite); text-decoration: none; }
.zf-legal__toc a:hover, .zf-legal__docs a:hover { color: var(--black); text-decoration: underline; }
.zf-legal__docs a[aria-current="page"] { color: var(--black); font-weight: 600; }
.zf-legal__main { max-width: 820px; }
.zf-legal__sec { padding: 26px 0; border-top: 1px dashed var(--zf-line); }
.zf-legal__h2 { margin: 0 0 14px; font-family: var(--_typography---font-family--body-font); font-size: 22px; font-weight: 600; line-height: 1.25; }
.zf-legal__print { margin-top: 24px; font-size: 14px; color: var(--zf-muted); }
.zf-summary-box { background: var(--white); border-radius: 20px; padding: 24px 28px; margin: 0 0 24px; color: var(--graphite); line-height: 1.55; }
.zf-summary-box p { margin: 0 0 10px; }
.zf-summary-box p:last-child { margin-bottom: 0; }
.zf-summary-box ul { margin: 0; padding-left: 18px; display: grid; gap: 8px; }
.zf-summary-box strong { color: var(--black); }
.zf-summary-box a { color: var(--black); }
.zf-summary-box__kicker { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--zf-muted); }
.zf-table-wrap { overflow-x: auto; margin: 0 0 16px; border-radius: 16px; background: var(--white); }
.zf-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 560px; }
.zf-table th, .zf-table td { text-align: left; padding: 12px 14px; border-bottom: 1px solid #ececec; vertical-align: top; }
.zf-table thead th { font-weight: 600; color: var(--black); background: var(--ghost-white); }
.zf-table tbody tr:last-child td, .zf-table tbody tr:last-child th { border-bottom: 0; }
@media (max-width: 991px) {
  .zf-legal__grid { grid-template-columns: 1fr; gap: 24px; }
  .zf-legal__side { position: static; max-height: none; background: var(--white); border-radius: 20px; padding: 20px; }
}
@media (max-width: 767px) { .zf-legal-head { padding: 48px 0 32px; } .zf-legal { padding: 24px 0 64px; } }

/* ------------------------------------------------------------ 404 */
.zf-404__num { font-size: clamp(80px, 12cqw, 200px); line-height: 1; }
.zf-404__cards { display: grid; gap: 10px; width: 100%; margin-top: 12px; }
.zf-404__card { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "t a" "s a"; gap: 2px 16px; align-items: center; text-align: left; padding: 16px 20px; border-radius: 16px; background: var(--light-gray); color: inherit; text-decoration: none; }
.zf-404__card:hover { background: var(--white); }
.zf-404__t { grid-area: t; font-weight: 600; }
.zf-404__s { grid-area: s; color: var(--zf-muted); font-size: 14px; }
.zf-404__card > span[aria-hidden] { grid-area: a; font-size: 20px; }

/* ------------------------------------------------------------ footer */
.zf-footer-contact .footer-contact-wrap { padding-bottom: 72px; }
.zf-foot { padding: 64px var(--_responsive---container--padding-x) 28px; max-width: 1440px; margin: 0 auto; display: block; }
.zf-foot__grid { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)) minmax(0, 1.3fr); gap: 40px 32px; align-items: start; }
.zf-foot__logo { display: inline-flex; align-items: center; gap: 12px; color: var(--black); text-decoration: none; font-size: 24px; font-weight: 500; letter-spacing: -.02em; }
.zf-foot__logo img { border-radius: 10px; }
.zf-foot__pitch { margin: 18px 0 18px; max-width: 360px; color: var(--graphite); line-height: 1.5; }
.zf-foot__badges { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; max-width: 380px; }
.zf-foot__badges li { border: 1px dashed var(--zf-line); border-radius: 999px; padding: 5px 11px; font-size: 13px; color: var(--graphite); }
.zf-foot__title { margin: 0 0 16px; font-family: var(--_typography---font-family--body-font); font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--zf-muted); }
.zf-foot__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 15px; line-height: 1.35; }
.zf-foot__list a, .zf-foot__linkbtn { color: var(--black); text-decoration: none; background: none; border: 0; padding: 0; font: inherit; cursor: pointer; text-align: left; }
.zf-foot__list a:hover, .zf-foot__linkbtn:hover { text-decoration: underline; text-underline-offset: 3px; }
.zf-foot__contact li { display: grid; gap: 2px; }
.zf-foot__contact a { overflow-wrap: anywhere; }
.zf-foot__label { font-size: 12px; color: var(--zf-muted); text-transform: uppercase; letter-spacing: .08em; }
.zf-foot__strip { display: grid; grid-template-columns: auto 1fr; gap: 20px 32px; align-items: center; margin-top: 48px; padding-top: 28px; border-top: 1px dashed var(--zf-line); }
.zf-foot__book { display: inline-flex; align-items: center; gap: 12px; padding: 10px 16px 10px 10px; border-radius: 14px; background: var(--white); color: var(--black); text-decoration: none; border: 1px solid #e4e4e4; transition: border-color .2s ease; }
.zf-foot__book:hover { border-color: var(--black); }
.zf-foot__book-mark { width: 36px; height: 36px; border-radius: 9px; background: #c8102e; color: #fff; font-weight: 700; font-size: 14px; display: inline-flex; align-items: center; justify-content: center; letter-spacing: .02em; }
.zf-foot__book strong { display: block; font-size: 14px; }
.zf-foot__book small { display: block; font-size: 12px; color: var(--zf-muted); }
.zf-foot__ident { margin: 0; font-size: 13px; line-height: 1.55; color: var(--zf-muted); max-width: 820px; }
.zf-foot__ident strong { color: var(--black); font-weight: 600; }
.zf-foot__ident a { color: var(--black); }
.zf-foot__word { font-size: clamp(54px, 11.4cqw, 210px); line-height: 1; margin: 40px 0 8px; text-transform: uppercase; white-space: nowrap; overflow: hidden; }
.zf-foot__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 24px; padding-top: 20px; font-size: 14px; color: var(--graphite); }
.zf-foot__bottom p { margin: 0; }
.zf-foot__top { font-size: 15px !important; }
@media (max-width: 1199px) {
  .zf-foot__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .zf-foot__brand { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr; gap: 12px 40px; align-items: start; }
  .zf-foot__brand .zf-foot__pitch { margin: 0; }
  .zf-foot__badges { grid-column: 1 / -1; max-width: none; }
}
@media (max-width: 767px) {
  .zf-foot { padding: 48px 20px 24px; }
  .zf-foot__grid { grid-template-columns: 1fr 1fr; gap: 36px 20px; }
  .zf-foot__brand { display: block; }
  .zf-foot__brand .zf-foot__pitch { margin: 16px 0; }
  .zf-foot__col--contact { grid-column: 1 / -1; }
  .zf-foot__contact { grid-template-columns: 1fr 1fr; gap: 16px 20px; }
  .zf-foot__strip { grid-template-columns: 1fr; margin-top: 36px; }
  .zf-foot__bottom { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 400px) { .zf-foot__contact { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------ cookie banner */
.zf-cc { position: fixed; z-index: 2000; left: 16px; right: 16px; bottom: 16px; max-width: 560px; margin-left: auto; background: #161616; color: #fff; border-radius: 22px; padding: 22px 22px 18px; box-shadow: 0 24px 60px #00000059; font-size: 14px; line-height: 1.5; }
.zf-cc[hidden] { display: none; }
.zf-cc__title { margin: 0 0 6px; font-weight: 600; font-size: 16px; }
.zf-cc__text { margin: 0 0 14px; color: #ffffffcc; }
.zf-cc__text a { color: #fff; }
.zf-cc__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.zf-cc__btn { border: 1px solid #ffffff59; background: transparent; color: #fff; border-radius: 999px; padding: 10px 18px; font: inherit; font-weight: 600; cursor: pointer; }
.zf-cc__btn:hover { border-color: #fff; }
.zf-cc__btn--solid { background: #fff; color: #000; border-color: #fff; }
.zf-cc__link { background: none; border: 0; color: #ffffffcc; text-decoration: underline; text-underline-offset: 3px; font: inherit; cursor: pointer; padding: 10px 6px; }
.zf-cc-modal { position: fixed; inset: 0; z-index: 2100; background: #000000a6; display: flex; align-items: center; justify-content: center; padding: 16px; }
.zf-cc-modal[hidden] { display: none; }
.zf-cc-modal__box { background: var(--alabaster); color: var(--black); border-radius: 24px; padding: 28px; width: 100%; max-width: 520px; max-height: calc(100vh - 32px); overflow: auto; }
.zf-cc-modal__box h2 { margin: 0 0 8px; font-family: var(--_typography---font-family--headding-font); font-weight: 400; text-transform: uppercase; font-size: 34px; }
.zf-cc-modal__box > p { margin: 0 0 16px; color: var(--graphite); font-size: 14px; line-height: 1.5; }
.zf-cc-modal__box a { color: inherit; }
.zf-cc-cat { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 14px 0; border-top: 1px dashed var(--zf-line); }
.zf-cc-cat h3 { margin: 0 0 2px; font-size: 16px; font-weight: 600; }
.zf-cc-cat p { margin: 0; font-size: 13px; color: var(--zf-muted); line-height: 1.45; }
.zf-switch { position: relative; width: 46px; height: 26px; flex: none; }
.zf-switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 1; }
.zf-switch span { position: absolute; inset: 0; border-radius: 999px; background: #c4c4c4; transition: background-color .2s ease; }
.zf-switch span::after { content: ""; position: absolute; left: 3px; top: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform .2s ease; }
.zf-switch input:checked + span { background: var(--black); }
.zf-switch input:checked + span::after { transform: translateX(20px); }
.zf-switch input:disabled + span { opacity: .55; }
.zf-switch input:focus-visible + span { outline: 2px solid var(--zf-accent); outline-offset: 2px; }
.zf-cc-modal__actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; padding-top: 16px; border-top: 1px dashed var(--zf-line); }
.zf-cc-modal__actions .zf-cc__btn { color: var(--black); border-color: #0000004d; }
.zf-cc-modal__actions .zf-cc__btn--solid { background: var(--black); color: #fff; border-color: var(--black); }

/* ------------------------------------------------------------ small screens: template gaps */
@media (max-width: 767px) {
  .zf-item-h1 { font-size: clamp(40px, 11vw, 64px); }
  .zf-buy__amount { font-size: 44px; }
  .zf-order-bar { padding: 18px; }
}
@media print {
  .header-section, .zf-cc, .zf-cc-modal, .zf-footer-wrap, .cta-section, .zf-legal__side, .zf-legal__print { display: none !important; }
  .white-bg-sections-wrap { padding: 0; }
  .zf-legal__grid { display: block; }
}

/* small-screen refinements */
@media (max-width: 767px) {
  .zf-foot__col--legal { grid-column: 1 / -1; }
  .zf-foot__col--legal .zf-foot__list { grid-template-columns: 1fr 1fr; gap: 10px 20px; }
}
@media (max-width: 479px) {
  .rating-v1-nocode-icon-wrap { max-width: 140px; max-height: 140px; margin: 0 auto; }
  .rating-v1-card.item-four { max-height: 220px; }
  .rating-v1-card.item-four img { max-height: 160px; }
}

/* inner page headers: room under the navbar, like the template hero */
.zf-page-hero .zf-page-hero__inner { padding-top: 72px; padding-bottom: 88px; }
@media (max-width: 767px) { .zf-page-hero .zf-page-hero__inner { padding-top: 48px; padding-bottom: 56px; } }

/* bundle cards in three columns: price, button and saving stacked */
.zf-bundles__row .pricing-v1-plan-price-wrap { display: flex; flex-direction: column; align-items: stretch; }
.zf-bundles__row .pricing-v1-review-wrap { max-width: none; justify-self: stretch; }
.zf-bundle h3.text-medium { font-family: var(--_typography---font-family--body-font); font-size: 18px; line-height: 1.3; margin: 0; text-transform: none; }

/* deliverable page: concept image fills the dark frame */
.service-image-wrap.zf-hero-shot { padding: 0; position: relative; min-height: 380px; }
.zf-hero-shot .service-image-inner { position: absolute; inset: 0; width: 100%; max-width: none; }
.zf-panel__title { font-family: var(--_typography---font-family--body-font); }
.faq-item-top-bottom-border { pointer-events: none; }
.zf-faq__q { position: relative; z-index: 2; }
