/* RaRe Frames: static pages (Work, Creators, Agencies) and the intro loader.
   Lives outside Framer's React root; colours reuse the site's Framer tokens. */
/* ₹ for the display font (Highway Motel has none): one glyph built from Inter Black (SIL OFL), scaled to Highway's
   cap height and stem weight. Same family, weight and style as Highway, so the browser uses it for ₹ only. */
@font-face { font-family: "Highway Motel Sans Regular"; src: url("/_rf/rf-rupee.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: block; unicode-range: U+20B9; }

:root {
  --rf-cream: var(--token-5958b8f2-81b4-4f27-b327-e9b28f963fb0, #f7f6f0);
  --rf-cream-2: var(--token-e4b48ac6-36dc-401e-9557-ea3e3caff193, #edebe1);
  --rf-ink: var(--token-448cfbab-6ed8-4cb8-8d41-ffa7b02799ba, #161616);
  --rf-cherry: var(--token-24065622-f6a8-426e-8cf0-2ec6df6b3c41, #580d14);
  --rf-tomato: var(--token-201660d1-f710-4b4c-8cce-13db9a08c642, #f8330b);
  --rf-lime: var(--token-099a5901-09d2-4ece-b465-dea62a5d80ef, #c8ff2e);
  --rf-white: var(--token-46285f78-3876-4275-b027-38ee2d37dac5, #ffffff);
  --rf-grey: var(--token-026e398a-2706-42af-addd-edcee8b10b0f, #646464);
  --rf-display: "Highway Motel Sans Regular", "Highway Motel Sans Regular Placeholder", Impact, sans-serif;
  --rf-body: "Geist", "Geist Placeholder", "Inter", system-ui, sans-serif;
  --rf-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------------------------------------------------------------- page switching */
.rf-page { display: none; }
html[data-rf-page="work"] .rf-page--work,
html[data-rf-page="creators"] .rf-page--creators,
html[data-rf-page="agencies"] .rf-page--agencies { display: block; }

.rf-page {
  position: relative; background: var(--rf-cream); color: var(--rf-ink);
  font-family: var(--rf-body); font-size: 17px; line-height: 1.55;
  padding: 176px 0 96px; overflow: hidden;
}
.rf-page *, .rf-page *::before, .rf-page *::after { box-sizing: border-box; }
.rf-page::before {           /* dot grid, like the site's sections */
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.55;
  background-image: radial-gradient(rgba(22, 22, 22, 0.13) 1.2px, transparent 1.3px); background-size: 26px 26px;
}
.rf-wrap { position: relative; width: min(100% - 80px, 1240px); margin: 0 auto; }

/* rf-seo:start (generated by deploy/build/seo_build.py) */
html[data-rf-page="svc-motion"] .rf-page--svc-motion,
html[data-rf-page="svc-explainer"] .rf-page--svc-explainer,
html[data-rf-page="ind-realestate"] .rf-page--ind-realestate,
html[data-rf-page="outsource"] .rf-page--outsource,
html[data-rf-page="svc-reels"] .rf-page--svc-reels,
html[data-rf-page="svc-youtube"] .rf-page--svc-youtube,
html[data-rf-page="svc-podcast"] .rf-page--svc-podcast,
html[data-rf-page="svc-ads"] .rf-page--svc-ads,
html[data-rf-page="svc-logo"] .rf-page--svc-logo,
html[data-rf-page="trial"] .rf-page--trial,
html[data-rf-page="contact"] .rf-page--contact,
html[data-rf-page="cost-guide"] .rf-page--cost-guide,
html[data-rf-page="compare"] .rf-page--compare,
html[data-rf-page="glossary"] .rf-page--glossary,
html[data-rf-page="q-reel-cost"] .rf-page--q-reel-cost,
html[data-rf-page="q-youtuber-pay"] .rf-page--q-youtuber-pay,
html[data-rf-page="q-edit-time"] .rf-page--q-edit-time,
html[data-rf-page="q-send-footage"] .rf-page--q-send-footage,
html[data-rf-page="q-white-label"] .rf-page--q-white-label,
html[data-rf-page="q-motion-vs-animation"] .rf-page--q-motion-vs-animation,
html[data-rf-page="q-explainer-length"] .rf-page--q-explainer-length,
html[data-rf-page="q-logo-cost"] .rf-page--q-logo-cost,
html[data-rf-page="q-aspect-ratios"] .rf-page--q-aspect-ratios,
html[data-rf-page="locations"] .rf-page--locations,
html[data-rf-page="city-delhi"] .rf-page--city-delhi,
html[data-rf-page="city-gurgaon"] .rf-page--city-gurgaon,
html[data-rf-page="city-noida"] .rf-page--city-noida,
html[data-rf-page="city-mumbai"] .rf-page--city-mumbai,
html[data-rf-page="city-bangalore"] .rf-page--city-bangalore,
html[data-rf-page="city-hyderabad"] .rf-page--city-hyderabad,
html[data-rf-page="city-kolkata"] .rf-page--city-kolkata,
html[data-rf-page="city-pune"] .rf-page--city-pune,
html[data-rf-page="city-chennai"] .rf-page--city-chennai,
html[data-rf-page="city-ahmedabad"] .rf-page--city-ahmedabad,
html[data-rf-page="city-jaipur"] .rf-page--city-jaipur,
html[data-rf-page="services"] .rf-page--services,
html[data-rf-page="pricing"] .rf-page--pricing,
html[data-rf-page="faq"] .rf-page--faq,
html[data-rf-page="about"] .rf-page--about { display: block; }
.rf-sec, .rf-h2.rf-sec { margin-top: 96px; }   /* .rf-h2 (later in rf.css) resets margins: beat it */
.rf-prose { max-width: 760px; color: #3d3d3d; font-size: 17px; }
.rf-prose p { margin: 0 0 14px; }
.rf-prose ul, .rf-prose ol { margin: 6px 0 14px; padding-left: 22px; }
.rf-prose li { margin: 0 0 8px; }
.rf-prose li::marker { color: var(--rf-tomato); font-weight: 700; }
.rf-prose a, .rf-related a { color: var(--rf-cherry); font-weight: 600; text-underline-offset: 3px; }
.rf-benefits.rf-benefits--qa { grid-template-columns: repeat(2, 1fr); margin-top: 28px; }
.rf-benefits--qa h3 { font: 700 18px/1.3 var(--rf-body); text-transform: none; }
.rf-related { margin: 28px 0 0; font-size: 15.5px; color: #3d3d3d; }
.rf-page .rf-grid[data-rf-cards] { margin-top: 28px; }
.rf-page--intro { padding-bottom: 8px; }
.rf-h2.rf-rates__h { margin: 56px 0 0; font-size: clamp(28px, 3.2vw, 44px); }
.rf-rates { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 22px; }
.rf-rate { padding: 26px 26px 18px; border-radius: 22px; background: var(--rf-white); border: 2px solid var(--rf-ink); box-shadow: 0 7px 0 var(--rf-ink); }
.rf-rate--dark { background: var(--rf-cherry); color: var(--rf-cream); border-color: var(--rf-cherry); box-shadow: 0 7px 0 var(--rf-tomato); }
.rf-rate header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 14px; margin-bottom: 12px; }
.rf-rate h3 { margin: 0; font: 400 30px/1 var(--rf-display); text-transform: uppercase; }
.rf-rate__from { padding: 8px 12px; border-radius: 999px; background: var(--rf-lime); color: var(--rf-ink); border: 2px solid var(--rf-ink); font: 600 13.5px/1 var(--rf-body); white-space: nowrap; }
.rf-rate__from b { font-size: 16px; }
.rf-rate ul { list-style: none; margin: 0; padding: 0; }
.rf-rate li { display: flex; align-items: baseline; gap: 12px; padding: 10px 0; border-top: 1px dashed rgba(22, 22, 22, 0.2); font-size: 15.5px; }
.rf-rate--dark li { border-top-color: rgba(247, 246, 240, 0.25); }
.rf-rate li span { flex: 1; }
.rf-rate li b { font-weight: 700; white-space: nowrap; }
.rf-rates__note { margin: 18px 0 0; font-size: 14.5px; color: #5a5a5a; max-width: 820px; }
html[data-rf-page="about"] .rf-page--intro { padding-bottom: 72px; }
.rf-page--intro .rf-lead { max-width: 820px; margin-top: 22px; }
.rf-page--intro .rf-related { margin-top: 18px; }
@media (max-width: 767.98px) { .rf-benefits.rf-benefits--qa { grid-template-columns: 1fr; } .rf-sec, .rf-h2.rf-sec { margin-top: 72px; } .rf-h2.rf-rates__h { margin-top: 44px; } .rf-page--intro { padding-bottom: 0; } .rf-rates { grid-template-columns: 1fr; } .rf-rate { padding: 22px 18px 14px; } .rf-rate li { font-size: 15px; } html[data-rf-page="about"] .rf-page--intro { padding-bottom: 48px; } }
/* rich text, Q&A links, articles, more-content */
.rf-prose strong, .rf-lead strong { color: var(--rf-ink); font-weight: 700; }
.rf-lead a { color: var(--rf-cherry); font-weight: 600; text-underline-offset: 3px; }
.rf-benefits--qa a { color: var(--rf-cherry); font-weight: 600; text-underline-offset: 3px; }
.rf-benefits--qa .rf-benefit:nth-child(even) a { color: var(--rf-lime); }
.rf-benefit a { color: var(--rf-cherry); font-weight: 600; text-underline-offset: 3px; }
.rf-benefit:nth-child(even) a { color: var(--rf-lime); }
/* long pills (city and service H1s) wrap on phones: give the lines room */
.rf-page .rf-pill { line-height: 1.3; max-width: 100%; }
/* no half-empty rows: 6 cards as 3 + 3, 4 work samples as 2 + 2 on desktop */
@media (min-width: 1300px) { .rf-benefits:has(> .rf-benefit:nth-child(6):last-child) { grid-template-columns: repeat(3, 1fr); }
  .rf-grid[data-rf-cards]:has(> .rf-card:nth-child(4):last-child) { grid-template-columns: repeat(2, 1fr); } }
.rf-benefit .rf-qa__more { margin-top: 12px; opacity: 1; }
.rf-page--article .rf-pill { max-width: 100%; line-height: 1.25; }
.rf-page--article .rf-lead { max-width: 820px; margin-top: 22px; }
.rf-updated { margin: 16px 0 0; font: 600 13px/1.3 ui-monospace, "Geist Mono", Consolas, monospace; letter-spacing: 0.06em; text-transform: uppercase; color: var(--rf-grey); }
.rf-btns--end { margin-top: 72px; }
.rf-more > .rf-related:last-child { margin-top: 40px; }
/* folded guide (more-content "fold"): an ink-outlined card like the price cards that opens in place */
.rf-fold { max-width: 980px; margin-top: 56px; background: var(--rf-white); border: 2px solid var(--rf-ink); border-radius: 22px; box-shadow: 0 7px 0 var(--rf-ink); }
.rf-fold > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 24px;
  font: 400 26px/1.05 var(--rf-display); text-transform: uppercase; color: var(--rf-ink); }
.rf-fold > summary::-webkit-details-marker { display: none; }
.rf-fold > summary:focus-visible { outline: 3px solid var(--rf-tomato); outline-offset: 4px; border-radius: 20px; }
.rf-fold__chev { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--rf-lime); border: 2px solid var(--rf-ink); transition: transform 0.3s var(--rf-ease); }
.rf-fold__chev svg { width: 20px; height: 20px; }
.rf-fold[open] .rf-fold__chev { transform: rotate(180deg); }
.rf-fold__body { padding: 0 24px 30px; }
.rf-fold__body > .rf-h2.rf-sec:first-child { margin-top: 12px; }
.rf-fold__body .rf-sec, .rf-fold__body .rf-h2.rf-sec { margin-top: 56px; }
/* wide tables scroll sideways on phones: say so */
@media (max-width: 767.98px) {
  .rf-fold > summary { padding: 16px 18px; font-size: 20px; }
  .rf-fold__body { padding: 0 16px 22px; }
  .rf-fold__body .rf-sec, .rf-fold__body .rf-h2.rf-sec { margin-top: 44px; }
  .rf-table--wide caption::after { content: "Swipe sideways to see every column →"; display: block; margin-top: 8px; font: 600 12.5px/1.3 var(--rf-body); letter-spacing: 0.02em; text-transform: none; color: var(--rf-grey); }
}
/* tables (SECTION.table): ink-outlined white card like the price cards; scrolls sideways inside its own box */
.rf-table { position: relative; max-width: 980px; margin: 26px 0 10px; overflow-x: auto; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain;
  background: var(--rf-white); border: 2px solid var(--rf-ink); border-radius: 22px; box-shadow: 0 7px 0 var(--rf-ink); }
.rf-table:focus-visible { outline: 3px solid var(--rf-tomato); outline-offset: 3px; }
.rf-table table { width: 100%; border-collapse: collapse; font-size: 15.5px; line-height: 1.45; color: var(--rf-ink); }
.rf-table caption { caption-side: top; text-align: left; padding: 20px 20px 14px; font: 400 26px/1.05 var(--rf-display); text-transform: uppercase; color: var(--rf-ink); }
.rf-table caption > span { display: block; max-width: calc(100vw - 92px); }
.rf-table th, .rf-table td { padding: 12px 16px; text-align: left; vertical-align: top; border-top: 1px dashed rgba(22, 22, 22, 0.2); }
.rf-table thead th { background: var(--rf-cherry); color: var(--rf-cream); border-top: 0; font: 700 13px/1.3 var(--rf-body); letter-spacing: 0.04em; text-transform: uppercase; }
.rf-table tbody th { font-weight: 700; }
.rf-table tbody tr:nth-child(even) { background: var(--rf-cream); }
.rf-table a { color: var(--rf-cherry); font-weight: 600; text-underline-offset: 3px; }
.rf-table--wide table { min-width: 680px; }
.rf-table--xwide table { min-width: 940px; }
/* glossary terms */
.rf-terms__index { max-width: 980px; line-height: 1.9; }
.rf-terms { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin: 28px 0 0; }
.rf-term { margin: 0; padding: 22px 24px 24px; border-radius: 22px; background: var(--rf-white); border: 2px solid var(--rf-ink); box-shadow: 0 7px 0 var(--rf-ink); scroll-margin-top: 120px; }
.rf-term:target { border-color: var(--rf-tomato); box-shadow: 0 7px 0 var(--rf-tomato); }
.rf-term dt { margin: 0 0 8px; font: 400 26px/1 var(--rf-display); text-transform: uppercase; color: var(--rf-cherry); }
.rf-term dfn { font-style: normal; }
.rf-term dd { margin: 0; font-size: 15.5px; color: #3d3d3d; }
.rf-term dd a { color: var(--rf-cherry); font-weight: 600; text-underline-offset: 3px; }
/* contact page: NAP cards in the price-card style */
.rf-contact { max-width: 980px; margin-top: 56px; }
.rf-rate h2 { margin: 0; font: 400 30px/1 var(--rf-display); text-transform: uppercase; }
.rf-rate a { color: inherit; font-weight: 700; text-underline-offset: 3px; }
.rf-contact li b { white-space: normal; text-align: right; }
.rf-rate li > span a { font-weight: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.rf-rate li > span a:hover, .rf-rate li > span a:focus-visible { text-decoration-thickness: 2px; }
.rf-contact__addr { margin: 0 0 12px; font-style: normal; font-size: 17px; line-height: 1.5; }
@media (max-width: 767.98px) { .rf-table { border-radius: 18px; } .rf-table caption { padding: 16px 16px 12px; font-size: 22px; } .rf-table th, .rf-table td { padding: 10px 12px; font-size: 14.5px; } .rf-terms { grid-template-columns: 1fr; } .rf-term { padding: 20px 18px 22px; } .rf-btns--end { margin-top: 56px; } .rf-contact { margin-top: 44px; } }
/* rf-seo:end */

/* ---------------------------------------------------------------- type & atoms */
.rf-pill {
  display: inline-flex; align-items: center; gap: 10px; margin: 0 0 28px; padding: 6px 16px 6px 6px;
  border-radius: 12px; background: var(--rf-ink); color: var(--rf-lime);
  font: 700 15px/1 var(--rf-body); letter-spacing: 0.02em; text-transform: uppercase;
  box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.5);
}
.rf-pill__badge { width: 34px; height: 34px; flex: none; display: grid; place-items: center; }
.rf-pill__badge svg { width: 100%; height: 100%; display: block; }
.rf-display {
  margin: 0; font-family: var(--rf-display); font-weight: 400; text-transform: uppercase;
  color: var(--rf-cherry); font-size: clamp(56px, 9.5vw, 148px); line-height: 0.9; letter-spacing: 0.005em;
}
.rf-display em { font-style: normal; text-transform: lowercase; color: var(--rf-tomato); }
.rf-display .rf-line { display: block; }
.rf-lead { max-width: 58ch; margin: 26px 0 0; font-size: clamp(17px, 1.5vw, 20px); color: #3d3d3d; }
.rf-h2 { margin: 0 0 22px; font-family: var(--rf-display); font-weight: 400; text-transform: uppercase; color: var(--rf-ink);
  font-size: clamp(34px, 4.6vw, 64px); line-height: 0.95; }
.rf-h2 em { font-style: normal; text-transform: lowercase; color: var(--rf-tomato); }

.rf-btns { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.rf-btn {
  display: inline-flex; align-items: center; gap: 12px; padding: 6px; border-radius: 14px; background: var(--rf-white);
  text-decoration: none; color: var(--rf-ink); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08), 0 5px 7px -1.75px rgba(0, 0, 0, 0.13);
  transition: transform 0.35s var(--rf-ease), box-shadow 0.35s;
}
.rf-btn:hover { transform: translateY(-3px); box-shadow: 0 10px 22px -10px rgba(0, 0, 0, 0.35); }
.rf-btn__in {
  display: inline-flex; align-items: center; gap: 12px; padding: 12px 14px 12px 18px; border-radius: 9px;
  background: var(--rf-lime); border: 2px solid var(--rf-ink); font: 700 15px/1 var(--rf-body); text-transform: uppercase; letter-spacing: 0.02em;
}
.rf-btn--ghost .rf-btn__in { background: var(--rf-cream); }
.rf-btn__icon { width: 26px; height: 26px; flex: none; }
.rf-btn:focus-visible, .rf-chip:focus-visible, .rf-card:focus-visible, .rf-modal__close:focus-visible { outline: 3px solid var(--rf-tomato); outline-offset: 3px; }

/* ---------------------------------------------------------------- benefit cards & steps (creators / agencies) */
.rf-benefits { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 64px; }
.rf-benefit {
  position: relative; padding: 26px 24px 28px; border-radius: 22px; background: var(--rf-white);
  border: 2px solid var(--rf-ink); box-shadow: 0 7px 0 var(--rf-ink); transition: transform 0.4s var(--rf-ease), box-shadow 0.4s;
}
.rf-benefit:nth-child(even) { background: var(--rf-cherry); color: var(--rf-cream); box-shadow: 0 7px 0 var(--rf-tomato); border-color: var(--rf-cherry); }
.rf-benefit:hover { transform: translateY(-4px) rotate(-0.6deg); }
.rf-benefit__icon { width: 54px; height: 54px; margin-bottom: 18px; }
.rf-benefit h3 { margin: 0 0 8px; font: 400 26px/1 var(--rf-display); text-transform: uppercase; }
.rf-benefit p { margin: 0; font-size: 15.5px; opacity: 0.86; }

.rf-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 72px; counter-reset: rfstep; }
.rf-step { position: relative; padding: 24px 24px 26px; border-radius: 20px; background: var(--rf-cream-2); border: 1.5px dashed rgba(22, 22, 22, 0.35); }
.rf-step__tc { display: inline-block; margin-bottom: 14px; padding: 5px 10px; border-radius: 8px; background: var(--rf-tomato); color: var(--rf-white);
  font: 600 13px/1 ui-monospace, "Geist Mono", Consolas, monospace; letter-spacing: 0.06em; }
.rf-step h3 { margin: 0 0 6px; font: 400 28px/1 var(--rf-display); text-transform: uppercase; color: var(--rf-cherry); }
.rf-step p { margin: 0; color: #3d3d3d; font-size: 15.5px; }

/* ---------------------------------------------------------------- work page */
.rf-showreel {
  position: relative; margin-top: 56px; aspect-ratio: 16 / 9; border-radius: 28px; overflow: hidden; background: var(--rf-cherry);
  border: 2px solid var(--rf-ink); box-shadow: 0 10px 0 var(--rf-ink);
}
.rf-showreel video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rf-showreel__label { position: absolute; left: 22px; top: 20px; z-index: 2; display: inline-flex; gap: 8px; align-items: center; padding: 8px 12px;
  border-radius: 10px; background: rgba(22, 22, 22, 0.55); color: var(--rf-cream); font: 600 13px/1 var(--rf-body); letter-spacing: 0.08em; text-transform: uppercase;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.rf-showreel__label i { width: 9px; height: 9px; border-radius: 50%; background: var(--rf-tomato); animation: rf-blink 1.4s infinite; }
@keyframes rf-blink { 50% { opacity: 0.2; } }
.rf-showreel__play { position: absolute; right: 22px; bottom: 22px; z-index: 2; }

/* /work: Video editing work / Motion graphics work tabs above the filters */
.rf-kinds { display: inline-grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 6px; margin-top: 72px; padding: 6px; border-radius: 22px;
  background: var(--rf-white); border: 2px solid var(--rf-ink); box-shadow: 0 6px 0 var(--rf-ink); }
.rf-kind { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 16px 26px 14px; border: 0; border-radius: 15px; background: transparent;
  color: var(--rf-ink); font: 400 clamp(20px, 2.1vw, 28px)/1 var(--rf-display); text-transform: uppercase; letter-spacing: 0.01em; cursor: pointer;
  transition: background-color 0.25s, color 0.25s, transform 0.25s var(--rf-ease); }
.rf-kind:hover { background: var(--rf-cream); }
.rf-kind[aria-selected="true"] { background: var(--rf-cherry); color: var(--rf-cream); }
.rf-kind__n { display: inline-grid; place-items: center; min-width: 30px; height: 26px; padding: 0 8px; border-radius: 999px; background: var(--rf-lime); color: var(--rf-ink);
  border: 2px solid var(--rf-ink); font: 700 13px/1 var(--rf-body); }
.rf-kind:focus-visible { outline: 3px solid var(--rf-tomato); outline-offset: 3px; }
.rf-kinds + .rf-filters { margin-top: 34px; }
.rf-grid[data-kind="video"] > .rf-card[data-kind]:not([data-kind="video"]), .rf-grid[data-kind="motion"] > .rf-card[data-kind]:not([data-kind="motion"]) { display: none; }
@media (max-width: 767.98px) {
  .rf-kinds { display: grid; width: 100%; margin-top: 48px; border-radius: 18px; }
  .rf-kind { flex-direction: column; gap: 7px; padding: 13px 8px 11px; font-size: 18px; border-radius: 12px; text-align: center; }
  .rf-kinds + .rf-filters { margin-top: 26px; }
}
.rf-filters { margin-top: 72px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.rf-filter-row { display: flex; align-items: flex-start; gap: 16px; min-width: 0; }
.rf-filter-label { flex: none; width: 74px; padding-top: 11px; font: 700 13px/1 var(--rf-body); letter-spacing: 0.1em; text-transform: uppercase; color: var(--rf-grey); }
.rf-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rf-chip {
  appearance: none; cursor: pointer; padding: 10px 16px; border-radius: 999px; border: 1.5px solid var(--rf-ink); background: var(--rf-white);
  color: var(--rf-ink); font: 600 14.5px/1 var(--rf-body); transition: background-color 0.25s, color 0.25s, transform 0.25s var(--rf-ease);
}
.rf-chip:hover { transform: translateY(-2px); }
.rf-chip[aria-pressed="true"] { background: var(--rf-cherry); border-color: var(--rf-cherry); color: var(--rf-cream); }
.rf-chip .rf-chip__n { margin-left: 6px; opacity: 0.55; font-weight: 500; }
.rf-count { margin: 26px 0 0; font: 600 14px/1 var(--rf-body); color: var(--rf-grey); letter-spacing: 0.04em; text-transform: uppercase; }

.rf-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 18px; }
.rf-card {
  position: relative; display: flex; flex-direction: column; border-radius: 24px; overflow: hidden; cursor: pointer; text-align: left;
  background: var(--rf-white); border: 2px solid var(--rf-ink); box-shadow: 0 7px 0 var(--rf-ink); padding: 0; color: inherit; font: inherit;
  transition: transform 0.45s var(--rf-ease), box-shadow 0.45s; animation: rf-in 0.6s var(--rf-ease) both;
}
.rf-card:hover { transform: translateY(-6px); box-shadow: 0 13px 0 var(--rf-tomato); }
@keyframes rf-in { from { opacity: 0; transform: translateY(24px); } }
.rf-card__media { position: relative; aspect-ratio: 4 / 5; background: var(--rf-cherry); overflow: hidden; }
.rf-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--rf-ease); }
.rf-card:hover .rf-card__media img { transform: scale(1.05); }
.rf-card__format { position: absolute; left: 14px; top: 14px; padding: 6px 9px; border-radius: 8px; background: var(--rf-cream); color: var(--rf-ink);
  font: 700 12px/1 ui-monospace, Consolas, monospace; letter-spacing: 0.04em; }
.rf-card__sample { position: absolute; right: 14px; top: 14px; padding: 6px 9px; border-radius: 8px; background: var(--rf-lime); color: var(--rf-ink);
  font: 700 11px/1 var(--rf-body); letter-spacing: 0.08em; text-transform: uppercase; border: 1.5px solid var(--rf-ink); }
.rf-card__play { position: absolute; left: 50%; top: 50%; width: 68px; height: 68px; transform: translate(-50%, -50%) scale(0.85); opacity: 0;
  transition: opacity 0.35s, transform 0.45s var(--rf-ease); }
.rf-card:hover .rf-card__play, .rf-card:focus-visible .rf-card__play { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.rf-card__edge { height: 14px; margin-top: -14px; position: relative; z-index: 1; background: var(--rf-white); }
.rf-card__body { position: relative; z-index: 1; padding: 14px 18px 20px; background: var(--rf-white); }
.rf-card:nth-child(4n+2) .rf-card__edge, .rf-card:nth-child(4n+2) .rf-card__body,
.rf-card:nth-child(4n+3) .rf-card__edge, .rf-card:nth-child(4n+3) .rf-card__body { background: var(--rf-cherry); color: var(--rf-cream); }
.rf-card__title { margin: 0 0 6px; font: 400 25px/1.02 var(--rf-display); text-transform: uppercase; }
.rf-card__client { margin: 0 0 12px; font-size: 14.5px; opacity: 0.8; }
.rf-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.rf-tag { padding: 5px 9px; border-radius: 7px; font: 600 12px/1 var(--rf-body); background: var(--rf-cream-2); color: var(--rf-ink); }
.rf-tag--niche { background: transparent; border: 1.5px solid currentColor; color: inherit; }
.rf-empty { margin: 40px 0 0; padding: 28px; border-radius: 20px; border: 1.5px dashed rgba(22, 22, 22, 0.35); text-align: center; color: var(--rf-grey); }
.rf-howto { margin-top: 64px; padding: 22px 24px; border-radius: 18px; background: var(--rf-cream-2); font-size: 15px; color: #3d3d3d; }

/* lightbox */
.rf-modal { position: fixed; inset: 0; z-index: 9000; display: grid; place-items: center; padding: 24px; background: rgba(22, 22, 22, 0.86);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); animation: rf-fade 0.3s ease both; }
.rf-modal[hidden] { display: none; }
@keyframes rf-fade { from { opacity: 0; } }
.rf-modal__box { position: relative; width: min(100%, 1080px); max-height: 100%; display: flex; flex-direction: column; gap: 14px; animation: rf-pop 0.45s var(--rf-ease) both; }
@keyframes rf-pop { from { opacity: 0; transform: translateY(18px) scale(0.98); } }
.rf-modal__media { position: relative; border-radius: 22px; overflow: hidden; background: #000; max-height: 78vh; display: grid; place-items: center; }
.rf-modal__media video, .rf-modal__media img { display: block; max-width: 100%; max-height: 78vh; width: auto; height: auto; }
.rf-modal__meta { color: var(--rf-cream); font-family: var(--rf-body); }
.rf-modal__meta h3 { margin: 0 0 6px; font: 400 32px/1 var(--rf-display); text-transform: uppercase; }
.rf-modal__close { position: absolute; right: -6px; top: -54px; width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--rf-cream);
  background: transparent; color: var(--rf-cream); font: 600 22px/1 var(--rf-body); cursor: pointer; }

/* ---------------------------------------------------------------- intro loader */
#rf-loader { position: fixed; inset: 0; z-index: 2147483000; overflow: hidden;
  clip-path: circle(150% at var(--rf-cx, 50%) var(--rf-cy, 50%));
  animation: rf-failsafe 0.4s ease 12s forwards; }        /* never strands the page if rf.js does not run */
@keyframes rf-failsafe { to { opacity: 0; visibility: hidden; } }
html.rf-intro-skip #rf-loader { display: none; }
/* The header logo waits for the loader logo to land on it (and shows after 12 s regardless). */
html.rf-loading a[data-framer-name="Logo and Name"] { visibility: hidden; animation: rf-show 0s linear 12s forwards; }
@keyframes rf-show { to { visibility: visible; } }
/* Those two failsafes only matter when rf.js never runs; once it does (html.rf-js) it ends the intro itself. */
html.rf-js #rf-loader, html.rf-loading.rf-js a[data-framer-name="Logo and Name"] { animation: none; }
.rf-l__stage, .rf-l__solid, .rf-l__canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.rf-l__stage { overflow: hidden; }
.rf-l__solid { background: radial-gradient(circle var(--rf-gr, 1100px) at 50% var(--rf-ly, 45%), #6b1119 0%, #580d14 48%, #2a0609 100%); }
.rf-l__canvas { display: block; }
#rf-loader.rf-live .rf-l__solid { display: none; }
#rf-loader::after {          /* fine film grain over the panel and plate */
  content: ""; position: absolute; inset: -50%; z-index: 3; pointer-events: none; opacity: 0.08; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: rf-grain 0.6s steps(3) infinite;
}
@keyframes rf-grain { 33% { transform: translate(-3%, 2%); } 66% { transform: translate(2%, -3%); } }
#rf-loader.rf-thin::after, #rf-loader.rf-fly::after { opacity: 0; transition: opacity 0.8s ease; }
/* rf.js centres the logo on the page's headline (--rf-lx / --rf-ly) before the letters start */
.rf-l__center { position: absolute; left: var(--rf-lx, 50%); top: var(--rf-ly, 50%); width: clamp(220px, 24vw, 360px); z-index: 2;
  transform: translate(-50%, -50%) translate(0px, 0px) scale(1); transform-origin: 50% 50%; }
.rf-l__logo { position: relative; z-index: 1; display: block; width: 100%; height: auto; overflow: visible; }
/* The logo's plate: the last piece of panel the bites leave. Its gradient is the panel's own (set by rf.js), so it is
   invisible until the bites expose it; it lifts off with the logo and fades on the way to the header. */
.rf-l__plate { position: absolute; z-index: 0; border-radius: 24px; background: var(--rf-plate, #63101a);
  left: calc(var(--rf-pad, 30px) * -1); right: calc(var(--rf-pad, 30px) * -1);
  top: calc(var(--rf-pad, 30px) * -0.85); bottom: calc(var(--rf-pad, 30px) * -0.85); }
#rf-loader:not(.rf-go) .rf-l__plate { visibility: hidden; }
.rf-l__logo .rf-l__ch { fill: var(--rf-cream); opacity: 0; transform: translateY(45%); transform-box: fill-box;
  animation: rf-rise 0.8s var(--rf-ease) forwards; }
@keyframes rf-rise { to { opacity: 1; transform: none; } }
.rf-l__ring { fill: var(--rf-tomato); stroke: #2a0609; }
.rf-l__tri { fill: var(--rf-cream); }
.rf-l__logo .rf-l__disc { opacity: 0; transform: scale(0.3) rotate(-150deg); transform-box: fill-box; transform-origin: center;
  animation: rf-disc 1s cubic-bezier(0.34, 1.56, 0.64, 1) 0.45s forwards; }
@keyframes rf-disc { to { opacity: 1; transform: none; } }
#rf-loader:not(.rf-go) .rf-l__ch, #rf-loader:not(.rf-go) .rf-l__disc { animation-play-state: paused; }
/* Finale: the logo lifts off its plate and flies into the header logo. */
#rf-loader.rf-fly .rf-l__center { transition: transform var(--rf-fly-ms, 950ms) cubic-bezier(0.7, 0, 0.2, 1); }
#rf-loader.rf-fly .rf-l__stage { opacity: 0; transition: opacity 0.3s ease; }
#rf-loader.rf-done .rf-l__stage { opacity: 0; transition: opacity 0.35s ease; }   /* stray crumbs go once the bites are done */
#rf-loader.rf-fly .rf-l__plate { opacity: 0; transition: opacity 0.42s cubic-bezier(0.4, 0, 1, 1); }
#rf-loader.rf-fly .rf-l__ch { fill: var(--rf-l-letters, #580d14); transition: fill 0.6s ease 0.2s; }
#rf-loader.rf-fly .rf-l__ring { fill: var(--rf-l-disc, #f8330b); stroke: var(--rf-l-ring, #161616); transition: fill 0.6s ease 0.2s, stroke 0.6s ease 0.2s; }
#rf-loader.rf-fly .rf-l__tri { fill: var(--rf-l-tri, #f7f6f0); transition: fill 0.6s ease 0.2s; }
/* No header logo to land on: the whole overlay irises into the disc instead. */
#rf-loader.rf-iris { transition: clip-path 0.85s cubic-bezier(0.7, 0, 0.2, 1); clip-path: circle(0px at var(--rf-cx, 50%) var(--rf-cy, 50%)); }

/* Framer nav links keep a hidden copy of their label (for the hover roll) hanging below them; in the phone menu it sat
   over the next link up and took its taps. It is only ever decoration. */
.framer-GimvW .framer-1oepol { pointer-events: none; }

/* ---------------------------------------------------------------- hero copy hold (intro)
   First-screen copy that has no Framer entrance of its own waits while the intro plays (html.rf-hold-copy) and comes
   in as the logo settles (html.rf-copy-in, swapped in by __rfRelease), in the same style as the Framer heroes. Framer's
   own elements only fade (Framer drives their transforms inline); our static heroes get the full entrance. */
html.rf-hold-copy .rf-page > .rf-wrap > .rf-pill,
html.rf-hold-copy .rf-page > .rf-wrap > .rf-display .rf-line,
html.rf-hold-copy .rf-page > .rf-wrap > .rf-lead,
html.rf-hold-copy .rf-page > .rf-wrap > .rf-btns,
html.rf-hold-copy[data-rf-page="faq"] .framer-17nbkwr,
html.rf-hold-copy[data-rf-page="services"] .framer-ljiqk0-container { opacity: 0 !important; }
html.rf-copy-in .rf-page > .rf-wrap > .rf-pill { animation: rf-copy-pop 0.55s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
html.rf-copy-in .rf-page > .rf-wrap > .rf-display .rf-line { animation: rf-copy-flip 0.7s var(--rf-ease) both; }
html.rf-copy-in .rf-page > .rf-wrap > .rf-display .rf-line:nth-child(2) { animation-delay: 0.08s; }
html.rf-copy-in .rf-page > .rf-wrap > .rf-display .rf-line:nth-child(3) { animation-delay: 0.16s; }
html.rf-copy-in .rf-page > .rf-wrap > .rf-lead { animation: rf-copy-up 0.6s var(--rf-ease) 0.28s both; }
html.rf-copy-in .rf-page > .rf-wrap > .rf-btns { animation: rf-copy-up 0.6s var(--rf-ease) 0.36s both; }
html.rf-copy-in[data-rf-page="faq"] .framer-17nbkwr,
html.rf-copy-in[data-rf-page="services"] .framer-ljiqk0-container { animation: rf-copy-fade 0.6s ease both; }
@keyframes rf-copy-pop { from { opacity: 0; transform: translateY(-10px) scale(1.4) rotate(0.5deg) skewX(-5deg) skewY(2deg); } }
@keyframes rf-copy-flip { from { opacity: 0; transform: perspective(800px) rotateX(90deg) translateY(10px); } }
@keyframes rf-copy-up { from { opacity: 0; transform: translateY(20px); } }
@keyframes rf-copy-fade { from { opacity: 0; } }

/* ---------------------------------------------------------------- contact form */
.rf-form { position: fixed; inset: 0; z-index: 9500; display: grid; align-items: start; justify-items: center; padding: 24px; overflow-y: auto; overscroll-behavior: contain;
  background: rgba(22, 22, 22, 0.72); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); animation: rf-fade 0.3s ease both;
  font-family: var(--rf-body); color: var(--rf-ink); }
.rf-form[hidden] { display: none; }
.rf-form *, .rf-form *::before, .rf-form *::after { box-sizing: border-box; }
.rf-form__box { position: relative; margin: auto 0; width: min(100%, 1080px); display: grid; grid-template-columns: 0.85fr 1.4fr; border-radius: 28px; overflow: hidden;
  background: var(--rf-white); border: 2px solid var(--rf-ink); box-shadow: 0 12px 0 var(--rf-ink); animation: rf-pop 0.45s var(--rf-ease) both; }
.rf-form__close { position: absolute; right: 16px; top: 16px; z-index: 2; width: 42px; height: 42px; border-radius: 50%; border: 2px solid var(--rf-ink);
  background: var(--rf-cream); color: var(--rf-ink); font: 600 18px/1 var(--rf-body); cursor: pointer; }
.rf-form__side { padding: 36px 32px; background: var(--rf-cherry); color: var(--rf-cream); display: flex; flex-direction: column; gap: 18px; }
.rf-form__side .rf-pill { margin: 0; align-self: flex-start; }
.rf-form__side p { margin: 0; opacity: 0.85; }
.rf-form__title { margin: 0; font: 400 clamp(38px, 4.4vw, 60px)/0.92 var(--rf-display); text-transform: uppercase; color: var(--rf-cherry); }
.rf-form__title em { font-style: normal; text-transform: lowercase; color: var(--rf-tomato); }
.rf-form__title .rf-line { display: block; }
.rf-form__side .rf-form__title { color: var(--rf-cream); }
.rf-form__facts { list-style: none; margin: auto 0 0; padding: 18px 0 0; border-top: 1px solid rgba(247, 246, 240, 0.25); display: grid; gap: 12px; font-size: 15px; }
.rf-form__facts b { display: block; font: 700 11.5px/1.4 var(--rf-body); letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.6; }
.rf-form__facts a { color: var(--rf-lime); }
.rf-form__main, .rf-form__done { padding: 34px 32px 30px; display: grid; gap: 18px; align-content: start; }
.rf-f__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.rf-f__field { display: grid; gap: 6px; font-size: 13.5px; font-weight: 600; }
.rf-f__field input, .rf-f__field select, .rf-f__field textarea {
  width: 100%; padding: 12px 14px; border-radius: 12px; border: 1.5px solid rgba(22, 22, 22, 0.35); background: var(--rf-cream);
  font: 500 15.5px/1.35 var(--rf-body); color: var(--rf-ink); transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s; }
.rf-f__field textarea { resize: vertical; min-height: 110px; }
.rf-f__field input:focus, .rf-f__field select:focus, .rf-f__field textarea:focus { outline: none; border-color: var(--rf-ink); background: var(--rf-white); box-shadow: 0 0 0 3px rgba(200, 255, 46, 0.7); }
.rf-f__field [aria-invalid="true"] { border-color: var(--rf-tomato); box-shadow: 0 0 0 3px rgba(248, 51, 11, 0.18); }
.rf-f__set { margin: 0; padding: 0; border: 0; display: grid; gap: 8px; }
.rf-f__set legend { padding: 0; margin-bottom: 8px; font-size: 13.5px; font-weight: 600; }
.rf-f__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rf-f__chip { position: relative; cursor: pointer; }
.rf-f__chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rf-f__chip span { display: inline-block; padding: 9px 14px; border-radius: 999px; border: 1.5px solid var(--rf-ink); background: var(--rf-white);
  font: 600 14px/1 var(--rf-body); transition: background-color 0.2s, color 0.2s, transform 0.2s var(--rf-ease); }
.rf-f__chip:hover span { transform: translateY(-1px); }
.rf-f__chip input:checked + span { background: var(--rf-cherry); border-color: var(--rf-cherry); color: var(--rf-cream); }
.rf-f__chip input:focus-visible + span { outline: 3px solid var(--rf-tomato); outline-offset: 2px; }
.rf-f__set.rf-invalid .rf-f__chip span { border-color: var(--rf-tomato); }
.rf-f__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rf-f__error { margin: 0; padding: 10px 14px; border-radius: 10px; background: rgba(248, 51, 11, 0.1); color: #a52207; font-size: 14.5px; font-weight: 600; }
.rf-f__error a { color: inherit; }
.rf-f__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.rf-btn--submit, .rf-form__done-close { border: 0; cursor: pointer; font: inherit; }
.rf-btn--submit[disabled] { opacity: 0.6; cursor: progress; }
.rf-f__note { font-size: 12.5px; color: var(--rf-grey); }
.rf-form__done { align-content: center; justify-items: start; min-height: 420px; }
.rf-form__done-msg { margin: 0; font-size: 17px; color: #3d3d3d; max-width: 44ch; }
html.rf-modal-open { overflow: hidden; }
.rf-form__main[hidden], .rf-form__done[hidden], .rf-f__error[hidden] { display: none; }
/* enquiry form: three steps with a progress bar, custom dropdowns, success screen with the reference + WhatsApp */
.rf-f__progress { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-right: 56px; }
.rf-f__progress span { height: 6px; border-radius: 999px; background: rgba(22, 22, 22, 0.12); transition: background-color 0.35s var(--rf-ease); }
.rf-f__progress span.is-on { background: var(--rf-cherry); }
.rf-f__stepnum { margin: -6px 0 0; font: 700 12px/1.4 var(--rf-body); letter-spacing: 0.12em; text-transform: uppercase; color: var(--rf-grey); }
.rf-f__stepnum b { color: var(--rf-cherry); }
.rf-f__stepnum span { color: var(--rf-ink); }
.rf-f__step { display: grid; gap: 18px; animation: rf-step-in 0.4s var(--rf-ease) both; }
.rf-f__step:focus { outline: none; }
.rf-f__step[hidden], .rf-f__back[hidden], .rf-form .rf-btn[hidden], .rf-form__ref[hidden] { display: none; }
@keyframes rf-step-in { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }
.rf-f__field--full { grid-column: 1 / -1; }
.rf-f__field i { font-style: normal; font-weight: 500; color: var(--rf-grey); }
.rf-btn--next { border: 0; cursor: pointer; font: inherit; }
.rf-f__back, .rf-f__back.rf-form__done-close { padding: 13px 18px; border-radius: 12px; border: 2px solid var(--rf-ink); background: var(--rf-cream); color: var(--rf-ink);
  font: 700 14px/1 var(--rf-body); text-transform: uppercase; letter-spacing: 0.02em; cursor: pointer; transition: transform 0.25s var(--rf-ease); }
.rf-f__back:hover { transform: translateY(-2px); }
.rf-f__back:focus-visible, .rf-dd__btn:focus-visible { outline: 3px solid var(--rf-tomato); outline-offset: 2px; }
.rf-form__main:not([data-step="3"]) .rf-f__note { display: none; }
.rf-dd { position: relative; }
.rf-dd__btn { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; padding: 12px 14px; border-radius: 12px;
  border: 1.5px solid rgba(22, 22, 22, 0.35); background: var(--rf-cream); font: 500 15.5px/1.35 var(--rf-body); color: var(--rf-ink); text-align: left; cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s; }
.rf-dd__btn:hover { border-color: var(--rf-ink); }
.rf-dd__btn[aria-expanded="true"] { border-color: var(--rf-ink); background: var(--rf-white); box-shadow: 0 0 0 3px rgba(200, 255, 46, 0.7); }
.rf-dd__val { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rf-dd__val.is-placeholder { color: var(--rf-grey); }
.rf-dd__chev { width: 18px; height: 18px; flex: none; transition: transform 0.25s var(--rf-ease); }
.rf-dd__btn[aria-expanded="true"] .rf-dd__chev { transform: rotate(180deg); }
.rf-dd__list { position: absolute; z-index: 5; left: 0; right: 0; top: 100%; margin: 6px 0 0; padding: 6px; list-style: none; max-height: 264px; overflow-y: auto;
  border-radius: 14px; background: var(--rf-white); border: 2px solid var(--rf-ink); box-shadow: 0 6px 0 var(--rf-ink); animation: rf-dd-in 0.22s var(--rf-ease) both; }
.rf-dd--up .rf-dd__list { top: auto; margin: 0; box-shadow: 0 -6px 0 var(--rf-ink); animation-name: rf-dd-up; }
.rf-dd__list[hidden] { display: none; }
.rf-dd__list:focus { outline: none; }
.rf-dd__list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 12px; border-radius: 9px; font: 600 15px/1.3 var(--rf-body); cursor: pointer; }
.rf-dd__list li.is-active { background: var(--rf-cream-2); }
.rf-dd__list li[aria-selected="true"] { background: var(--rf-lime); }
.rf-dd__list li[aria-selected="true"]::after { content: ""; width: 6px; height: 11px; margin-right: 4px; border: solid var(--rf-ink); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg) translateY(-2px); }
.rf-dd__list:focus-visible li.is-active { box-shadow: inset 0 0 0 2px var(--rf-ink); }
@keyframes rf-dd-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@keyframes rf-dd-up { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.rf-form__ref { margin: 0; padding: 14px 18px; border-radius: 14px; border: 2px dashed var(--rf-ink); background: var(--rf-cream); font: 600 13px/1.3 var(--rf-body);
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--rf-grey); }
.rf-form__ref b { display: block; margin-top: 6px; font: 400 34px/1 var(--rf-display); letter-spacing: 0.04em; color: var(--rf-cherry); user-select: all; }
.rf-btn--wa .rf-btn__in { gap: 10px; }
.rf-btn__wa { width: 22px; height: 22px; flex: none; }
@media (max-width: 767.98px) {
  .rf-f__progress { margin-right: 0; }
  .rf-f__actions .rf-btn--next, .rf-f__actions .rf-btn--submit, .rf-form__done .rf-btn--wa { flex: 1 1 auto; }
  .rf-f__actions .rf-btn__in { flex: 1; justify-content: space-between; }
}
@media (prefers-reduced-motion: reduce) { .rf-f__step, .rf-dd__list { animation: none; } }

/* ---------------------------------------------------------------- responsive */
@media (max-width: 1299.98px) {
  .rf-form__box { grid-template-columns: 1fr; }
  .rf-form__facts { margin-top: 6px; }
  .rf-page { padding: 150px 0 80px; }
  .rf-benefits { grid-template-columns: repeat(2, 1fr); }
  .rf-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767.98px) {
  .rf-form { padding: 0; place-items: stretch; }
  .rf-form__box { grid-template-columns: 1fr; border-radius: 0; border: 0; box-shadow: none; min-height: 100%; }
  .rf-form__side { padding: 64px 20px 24px; }
  .rf-form__facts { display: none; }
  .rf-form__main, .rf-form__done { padding: 24px 20px 32px; }
  .rf-f__grid { grid-template-columns: 1fr; }
  .rf-page { padding: 128px 0 64px; font-size: 16px; }
  .rf-wrap { width: calc(100% - 40px); }
  .rf-benefits, .rf-steps { grid-template-columns: 1fr; }
  .rf-grid { grid-template-columns: 1fr; gap: 18px; }
  .rf-filter-row { flex-direction: column; align-items: stretch; gap: 8px; }
  .rf-filter-label { width: auto; padding-top: 0; }
  .rf-chips { flex-wrap: nowrap; overflow-x: auto; min-width: 0; margin: 0 -20px; padding: 2px 20px 6px; scrollbar-width: none;
    overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; touch-action: pan-x pan-y; }
  .rf-chips::-webkit-scrollbar { display: none; }
  .rf-chip { flex: none; }
  .rf-showreel { border-radius: 20px; }
  .rf-modal__close { right: 0; top: -52px; }
}
@media (prefers-reduced-motion: reduce) {
  .rf-card, .rf-benefit, .rf-btn, .rf-chip, .rf-card__media img { animation: none !important; transition: none !important; }
}
/* rf-edge-mask */
.rf-card__edge { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 110 14%22%3E%3Cpath d=%22M 0 14 L 0 8.68 L 6.05 8.68 L 6.05 4.93 A 4.93 4.93 0 0 1 10.98 0 L 16.52 0 A 4.93 4.93 0 0 1 21.45 4.93 L 21.45 8.68 L 33.55 8.68 L 33.55 4.93 A 4.93 4.93 0 0 1 38.48 0 L 44.02 0 A 4.93 4.93 0 0 1 48.95 4.93 L 48.95 8.68 L 61.05 8.68 L 61.05 4.93 A 4.93 4.93 0 0 1 65.98 0 L 71.52 0 A 4.93 4.93 0 0 1 76.45 4.93 L 76.45 8.68 L 88.55 8.68 L 88.55 4.93 A 4.93 4.93 0 0 1 93.48 0 L 99.02 0 A 4.93 4.93 0 0 1 103.95 4.93 L 103.95 8.68 L 110 8.68 L 110 14 Z%22 fill=%22%23000%22/%3E%3C/svg%3E") repeat-x left bottom / 110px 14px; mask: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 110 14%22%3E%3Cpath d=%22M 0 14 L 0 8.68 L 6.05 8.68 L 6.05 4.93 A 4.93 4.93 0 0 1 10.98 0 L 16.52 0 A 4.93 4.93 0 0 1 21.45 4.93 L 21.45 8.68 L 33.55 8.68 L 33.55 4.93 A 4.93 4.93 0 0 1 38.48 0 L 44.02 0 A 4.93 4.93 0 0 1 48.95 4.93 L 48.95 8.68 L 61.05 8.68 L 61.05 4.93 A 4.93 4.93 0 0 1 65.98 0 L 71.52 0 A 4.93 4.93 0 0 1 76.45 4.93 L 76.45 8.68 L 88.55 8.68 L 88.55 4.93 A 4.93 4.93 0 0 1 93.48 0 L 99.02 0 A 4.93 4.93 0 0 1 103.95 4.93 L 103.95 8.68 L 110 8.68 L 110 14 Z%22 fill=%22%23000%22/%3E%3C/svg%3E") repeat-x left bottom / 110px 14px; }
/* /rf-edge-mask */
/* ---------------------------------------------------------------- site chrome: header on scroll, WhatsApp button, taps */
/* no blue tap flash on phones and no focus ring after a mouse click; keyboard focus rings stay */
html, a, button, [role="button"], [tabindex], label, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
:focus:not(:focus-visible) { outline: none; }

/* header: solid cream bar once the page scrolls (content no longer shows through it), hidden while scrolling down and
   back on the way up (rf.js sets rf-nav-solid / rf-nav-hidden). `translate` composes with Framer's own transforms. */
#main header[data-framer-name="Header"] { transition: translate 0.42s var(--rf-ease), background-color 0.25s ease, box-shadow 0.25s ease; }
html.rf-nav-solid #main header[data-framer-name="Header"] { background-color: rgba(247, 246, 240, 0.97);
  box-shadow: 0 1px 0 rgba(22, 22, 22, 0.08), 0 12px 24px -20px rgba(22, 22, 22, 0.5); }
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  html.rf-nav-solid #main header[data-framer-name="Header"] { background-color: rgba(247, 246, 240, 0.9);
    -webkit-backdrop-filter: blur(12px) saturate(1.2); backdrop-filter: blur(12px) saturate(1.2); }
}
html.rf-nav-hidden #main header[data-framer-name="Header"] { translate: 0 -115%; }

/* footer social icons: the extra Framer "Social 1" buttons reuse the LinkedIn button and swap the icon by link (keyed on
   the href only: Framer renames data-framer-name while hovering, which brought the LinkedIn glyph back) */
footer a[href*="instagram.com"] .framer-C9pLQ { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.8 2h8.4C19.4 2 22 4.6 22 7.8v8.4a5.8 5.8 0 0 1-5.8 5.8H7.8C4.6 22 2 19.4 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2m-.2 2A3.6 3.6 0 0 0 4 7.6v8.8C4 18.39 5.61 20 7.6 20h8.8a3.6 3.6 0 0 0 3.6-3.6V7.6C20 5.61 18.39 4 16.4 4H7.6m9.65 1.5a1.25 1.25 0 0 1 1.25 1.25A1.25 1.25 0 0 1 17.25 8 1.25 1.25 0 0 1 16 6.75a1.25 1.25 0 0 1 1.25-1.25M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3z'/%3E%3C/svg%3E") center / 17px 17px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.8 2h8.4C19.4 2 22 4.6 22 7.8v8.4a5.8 5.8 0 0 1-5.8 5.8H7.8C4.6 22 2 19.4 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2m-.2 2A3.6 3.6 0 0 0 4 7.6v8.8C4 18.39 5.61 20 7.6 20h8.8a3.6 3.6 0 0 0 3.6-3.6V7.6C20 5.61 18.39 4 16.4 4H7.6m9.65 1.5a1.25 1.25 0 0 1 1.25 1.25A1.25 1.25 0 0 1 17.25 8 1.25 1.25 0 0 1 16 6.75a1.25 1.25 0 0 1 1.25-1.25M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3z'/%3E%3C/svg%3E") center / 17px 17px no-repeat; }
footer a[href*="facebook.com"] .framer-C9pLQ { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.04C6.5 2.04 2 6.53 2 12.06c0 5 3.66 9.15 8.44 9.9v-7H7.9v-2.9h2.54V9.85c0-2.51 1.49-3.89 3.78-3.89 1.09 0 2.23.19 2.23.19v2.47h-1.26c-1.24 0-1.63.77-1.63 1.56v1.88h2.78l-.45 2.9h-2.33v7a10 10 0 0 0 8.44-9.9c0-5.53-4.5-10.02-10-10.02z'/%3E%3C/svg%3E") center / 17px 17px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.04C6.5 2.04 2 6.53 2 12.06c0 5 3.66 9.15 8.44 9.9v-7H7.9v-2.9h2.54V9.85c0-2.51 1.49-3.89 3.78-3.89 1.09 0 2.23.19 2.23.19v2.47h-1.26c-1.24 0-1.63.77-1.63 1.56v1.88h2.78l-.45 2.9h-2.33v7a10 10 0 0 0 8.44-9.9c0-5.53-4.5-10.02-10-10.02z'/%3E%3C/svg%3E") center / 17px 17px no-repeat; }
footer a[href*="wa.me"] .framer-C9pLQ { -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.04 2C6.58 2 2.13 6.45 2.13 11.91C2.13 13.66 2.59 15.36 3.45 16.86L2.05 22L7.3 20.62C8.75 21.41 10.38 21.83 12.04 21.83C17.5 21.83 21.95 17.38 21.95 11.92C21.95 9.27 20.92 6.78 19.05 4.91C17.18 3.03 14.69 2 12.04 2M12.05 3.67C14.25 3.67 16.31 4.53 17.87 6.09C19.42 7.65 20.28 9.72 20.28 11.92C20.28 16.46 16.58 20.15 12.04 20.15C10.56 20.15 9.11 19.76 7.85 19L7.55 18.83L4.43 19.65L5.26 16.61L5.06 16.29C4.24 15 3.8 13.47 3.8 11.91C3.81 7.37 7.5 3.67 12.05 3.67M8.53 7.33C8.37 7.33 8.1 7.39 7.87 7.64C7.65 7.89 7 8.5 7 9.71C7 10.93 7.89 12.1 8 12.27C8.14 12.44 9.76 14.94 12.25 16C12.84 16.27 13.3 16.42 13.66 16.53C14.25 16.72 14.79 16.69 15.22 16.63C15.7 16.56 16.68 16.03 16.89 15.45C17.1 14.87 17.1 14.38 17.04 14.27C16.97 14.17 16.81 14.11 16.56 14C16.31 13.86 15.09 13.26 14.87 13.18C14.64 13.1 14.5 13.06 14.31 13.3C14.15 13.55 13.67 14.11 13.53 14.27C13.38 14.44 13.24 14.46 13 14.34C12.74 14.21 11.94 13.95 11 13.11C10.26 12.45 9.77 11.64 9.62 11.39C9.5 11.15 9.61 11 9.73 10.89C9.84 10.78 10 10.6 10.1 10.45C10.23 10.31 10.27 10.2 10.35 10.04C10.43 9.87 10.39 9.73 10.33 9.61C10.27 9.5 9.77 8.26 9.56 7.77C9.36 7.29 9.16 7.35 9 7.34C8.86 7.34 8.7 7.33 8.53 7.33Z'/%3E%3C/svg%3E") center / 17px 17px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.04 2C6.58 2 2.13 6.45 2.13 11.91C2.13 13.66 2.59 15.36 3.45 16.86L2.05 22L7.3 20.62C8.75 21.41 10.38 21.83 12.04 21.83C17.5 21.83 21.95 17.38 21.95 11.92C21.95 9.27 20.92 6.78 19.05 4.91C17.18 3.03 14.69 2 12.04 2M12.05 3.67C14.25 3.67 16.31 4.53 17.87 6.09C19.42 7.65 20.28 9.72 20.28 11.92C20.28 16.46 16.58 20.15 12.04 20.15C10.56 20.15 9.11 19.76 7.85 19L7.55 18.83L4.43 19.65L5.26 16.61L5.06 16.29C4.24 15 3.8 13.47 3.8 11.91C3.81 7.37 7.5 3.67 12.05 3.67M8.53 7.33C8.37 7.33 8.1 7.39 7.87 7.64C7.65 7.89 7 8.5 7 9.71C7 10.93 7.89 12.1 8 12.27C8.14 12.44 9.76 14.94 12.25 16C12.84 16.27 13.3 16.42 13.66 16.53C14.25 16.72 14.79 16.69 15.22 16.63C15.7 16.56 16.68 16.03 16.89 15.45C17.1 14.87 17.1 14.38 17.04 14.27C16.97 14.17 16.81 14.11 16.56 14C16.31 13.86 15.09 13.26 14.87 13.18C14.64 13.1 14.5 13.06 14.31 13.3C14.15 13.55 13.67 14.11 13.53 14.27C13.38 14.44 13.24 14.46 13 14.34C12.74 14.21 11.94 13.95 11 13.11C10.26 12.45 9.77 11.64 9.62 11.39C9.5 11.15 9.61 11 9.73 10.89C9.84 10.78 10 10.6 10.1 10.45C10.23 10.31 10.27 10.2 10.35 10.04C10.43 9.87 10.39 9.73 10.33 9.61C10.27 9.5 9.77 8.26 9.56 7.77C9.36 7.29 9.16 7.35 9 7.34C8.86 7.34 8.7 7.33 8.53 7.33Z'/%3E%3C/svg%3E") center / 17px 17px no-repeat; }

/* floating WhatsApp sticker (markup built by seo_build.py into _rf/static.html) */
.rf-wa { position: fixed; right: max(20px, env(safe-area-inset-right)); bottom: calc(20px + env(safe-area-inset-bottom)); z-index: 8000;
  display: flex; align-items: center; color: var(--rf-ink); text-decoration: none;
  animation: rf-wa-in 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) 0.9s both; }
.rf-wa__badge { display: block; width: 66px; height: 66px; filter: drop-shadow(3px 4px 0 var(--rf-ink));
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rf-wa__badge svg { display: block; width: 100%; height: 100%; overflow: visible; }
.rf-wa__disc { fill: var(--rf-lime); stroke: var(--rf-ink); stroke-width: 2.6; stroke-linejoin: round;
  transform-box: fill-box; transform-origin: center; animation: rf-wa-spin 14s linear infinite; }
.rf-wa__glyph { fill: var(--rf-ink); }
.rf-wa__label { margin-right: 12px; padding: 10px 14px 9px; border: 2px solid var(--rf-ink); border-radius: 12px; background: var(--rf-white);
  box-shadow: 3px 3px 0 var(--rf-ink); font: 700 13px/1 var(--rf-body); letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap;
  opacity: 0; transform: translateX(12px) scale(0.85); transform-origin: right center; pointer-events: none;
  transition: opacity 0.25s ease, transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rf-wa:hover .rf-wa__badge, .rf-wa:focus-visible .rf-wa__badge { transform: rotate(-12deg) scale(1.07); }
.rf-wa:active .rf-wa__badge { transform: scale(0.93); }
.rf-wa:hover .rf-wa__label, .rf-wa:focus-visible .rf-wa__label { opacity: 1; transform: none; }
.rf-wa:focus-visible { outline: none; }
.rf-wa:focus-visible .rf-wa__badge { filter: drop-shadow(3px 4px 0 var(--rf-ink)) drop-shadow(0 0 0 var(--rf-tomato)); outline: 3px solid var(--rf-tomato); outline-offset: 4px; border-radius: 50%; }
html.rf-loading .rf-wa, html.rf-modal-open .rf-wa { visibility: hidden; opacity: 0; pointer-events: none; }
@keyframes rf-wa-in { from { opacity: 0; transform: translateY(28px) scale(0.5) rotate(-25deg); } to { opacity: 1; transform: none; } }
@keyframes rf-wa-spin { to { transform: rotate(360deg); } }
@media (max-width: 767.98px) {
  .rf-wa { right: 14px; bottom: calc(14px + env(safe-area-inset-bottom)); }
  .rf-wa__badge { width: 58px; height: 58px; }
  .rf-wa__label { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .rf-wa, .rf-wa__disc { animation: none; }
  #main header[data-framer-name="Header"] { transition: none; }
}
/* footer contact block (address, phone/email, links): roomier lines so the link underlines never touch the next line */
footer .framer-ww4jma p.framer-text { line-height: 1.55 !important; }
footer .framer-ww4jma a.framer-text { text-underline-offset: 3px; }
/* phone hero: the service-card ticker becomes a finger-swipeable row that glides on its own (rf.js adds .rf-swipe to the list's box).
   The list itself scrolls and keeps a fixed width, so Framer's ticker (which sizes itself from that width) stays stable. */
@media (max-width: 767.98px) {
  /* geometry from the first paint (no layout shift): the ticker list's box in the phone hero, with or without rf.js */
  .rf-swipe, #main [data-framer-name="Hero Section"] [data-framer-name="Phone"]:has(> ul > li.ticker-item) {
    left: calc(50% - 50vw) !important; width: 100vw !important; }
  .rf-swipe > ul, #main [data-framer-name="Hero Section"] [data-framer-name="Phone"] > ul:has(> li.ticker-item) { transform: none !important; overflow-x: auto !important; overflow-y: hidden !important; scroll-snap-type: none;
    overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: none; touch-action: pan-x pan-y;
    padding: 0 20px !important; scroll-padding-inline: 20px; box-sizing: border-box; }
  .rf-swipe > ul::-webkit-scrollbar, #main [data-framer-name="Hero Section"] [data-framer-name="Phone"] > ul:has(> li.ticker-item)::-webkit-scrollbar { display: none; }
  .rf-swipe > ul > li, #main [data-framer-name="Hero Section"] [data-framer-name="Phone"] > ul > li.ticker-item { flex-shrink: 0 !important; transform: none !important; }
  .rf-swipe > ul > li[aria-hidden="true"]:not([data-rf-clone]) { display: none !important; }
}
/* home: client reviews (rf.js inserts it above the stickers section; only on the home route) */
.rf-reviews { position: relative; box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; align-self: stretch; flex: none; padding: 120px 0 104px; background: var(--rf-cream); color: var(--rf-ink); font-family: var(--rf-body); overflow: hidden; }
.rf-reviews::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.55;
  background-image: radial-gradient(rgba(22, 22, 22, 0.13) 1.2px, transparent 1.3px); background-size: 26px 26px; }
html:not([data-rf-page="home"]) .rf-reviews { display: none; }
.rf-reviews .rf-wrap { text-align: center; }
.rf-reviews *, .rf-reviews *::before, .rf-reviews *::after { box-sizing: border-box; }
.rf-reviews__tag { display: inline-block; margin-bottom: 18px; padding: 9px 18px 7px; border-radius: 8px; background: var(--rf-tomato); color: var(--rf-cream);
  font: 400 20px/1 var(--rf-display); letter-spacing: 0.04em; text-transform: uppercase; transform: rotate(-4deg);
  box-shadow: inset 0 0 0 3px var(--rf-tomato), inset 0 0 0 5px var(--rf-cream), 0 4px 0 var(--rf-ink); }
.rf-reviews__title { margin: 0 auto; }
.rf-reviews__tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 30px; }
.rf-reviews__tabs [role="tab"] { padding: 12px 18px; border: 2px solid var(--rf-ink); border-radius: 999px; background: var(--rf-white); color: var(--rf-ink);
  font: 700 15px/1 var(--rf-body); box-shadow: 0 4px 0 var(--rf-ink); cursor: pointer; transition: transform 0.2s var(--rf-ease), background-color 0.2s; }
.rf-reviews__tabs [role="tab"] span { margin-left: 4px; font-weight: 600; opacity: 0.7; }
.rf-reviews__tabs [role="tab"][aria-selected="true"] { background: var(--rf-lime); }
.rf-reviews__tabs [role="tab"]:hover { transform: translateY(-2px); }
.rf-reviews__tabs [role="tab"]:focus-visible, .rf-reviews__arrow:focus-visible, .rf-reviews__panel:focus-visible { outline: 3px solid var(--rf-tomato); outline-offset: 3px; }
.rf-reviews__track { max-width: 100%; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(290px, 360px); gap: 20px; overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; padding: 30px 4px 22px; scrollbar-width: none; text-align: left; }
.rf-reviews__track::-webkit-scrollbar { display: none; }
.rf-rev { position: relative; display: flex; flex-direction: column; gap: 14px; min-height: 250px; margin: 0; padding: 24px 22px 20px; border-radius: 22px;
  background: var(--rf-white); border: 2px solid var(--rf-ink); box-shadow: 0 7px 0 var(--rf-ink); scroll-snap-align: start; }
.rf-rev:nth-child(3n+2) { background: var(--rf-cherry); color: var(--rf-cream); border-color: var(--rf-cherry); box-shadow: 0 7px 0 var(--rf-tomato); }
.rf-rev__stars { font-size: 20px; letter-spacing: 2px; line-height: 1; }
.rf-rev__star { color: rgba(22, 22, 22, 0.16); }
.rf-rev__star.is-on { color: var(--rf-tomato); }
.rf-rev:nth-child(3n+2) .rf-rev__star { color: rgba(247, 246, 240, 0.22); }
.rf-rev:nth-child(3n+2) .rf-rev__star.is-on { color: var(--rf-lime); }
.rf-rev__text { flex: 1; margin: 0; font-size: 16px; line-height: 1.55; }
.rf-rev__who { display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 10px; }
.rf-rev__avatar { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--rf-lime); color: var(--rf-ink);
  border: 2px solid var(--rf-ink); font: 700 14px/1 var(--rf-body); }
.rf-rev__meta { min-width: 0; }
.rf-rev__meta b { display: block; font: 700 15px/1.25 var(--rf-body); }
.rf-rev__meta span { display: block; font-size: 13px; opacity: 0.72; }
.rf-rev__src { padding: 6px 9px; border-radius: 999px; background: var(--rf-cream-2); color: var(--rf-ink); font: 700 11px/1.2 var(--rf-body);
  letter-spacing: 0.08em; text-transform: uppercase; text-align: center; }
.rf-rev__src i { display: block; font-style: normal; font-weight: 600; letter-spacing: 0; text-transform: none; opacity: 0.65; }
.rf-rev__link { grid-column: 1 / -1; color: inherit; font-size: 13px; font-weight: 600; text-underline-offset: 3px; }
.rf-rev__sample { position: absolute; top: 14px; right: 14px; padding: 4px 8px; border-radius: 6px; background: var(--rf-tomato); color: var(--rf-cream);
  font: 700 10px/1 var(--rf-body); letter-spacing: 0.1em; text-transform: uppercase; }
.rf-reviews__more { margin: 6px 0 0; font-size: 15px; }
.rf-reviews__more a { color: var(--rf-cherry); font-weight: 700; text-underline-offset: 3px; }
.rf-reviews__nav { display: flex; justify-content: center; gap: 12px; margin-top: 10px; }
.rf-reviews__arrow { width: 50px; height: 50px; border-radius: 50%; border: 2px solid var(--rf-ink); background: var(--rf-lime); color: var(--rf-ink);
  font: 700 20px/1 var(--rf-body); box-shadow: 0 4px 0 var(--rf-ink); cursor: pointer; }
.rf-reviews__arrow:active { transform: translateY(2px); box-shadow: 0 2px 0 var(--rf-ink); }
@media (max-width: 767.98px) {
  .rf-reviews { padding: 84px 0 72px; }
  .rf-reviews .rf-wrap { width: calc(100% - 40px); }
  .rf-reviews__track { grid-auto-columns: 84%; width: calc(100% + 40px); max-width: none; margin: 0 -20px; padding: 26px 20px 20px; scroll-padding-inline: 20px; }
  .rf-reviews__tabs { gap: 8px; }
  .rf-reviews__tabs [role="tab"] { padding: 10px 13px; font-size: 14px; }
  .rf-reviews__nav { display: none; }
  .rf-rev { min-height: 0; }
}
/* rf-cls: a stand-in for the display font with Highway Motel Sans' measurements, so swapping to the real font moves nothing
   (it replaces Framer's single 114.68% Arial placeholder, which made the phone hero wrap to an extra line: CLS 0.24).
   Capitals/digits and a-z get their own scale; Roboto covers Android, which has no Arial. */
@font-face { font-family: "Highway Motel Sans Regular Placeholder"; src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Roboto");
  size-adjust: 90%; ascent-override: 91.67%; descent-override: 38.89%; line-gap-override: 0%; }
@font-face { font-family: "Highway Motel Sans Regular Placeholder"; src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Roboto");
  unicode-range: U+0061-007A; size-adjust: 109.5%; ascent-override: 75.34%; descent-override: 31.96%; line-gap-override: 0%; }
/* intro loader: never paint the logo before rf.js has placed it on the headline */
#rf-loader:not(.rf-go) .rf-l__center { visibility: hidden; }
/* desktop hero: Framer swaps the card row "Desktop 1" (312px) for "Desktop 2" (280px) on the first scroll; keep the box */
@media (min-width: 1300px) { #main [data-framer-name="Hero Section"] .framer-125el2d-container { min-height: 312px; } }
/* home "Sales Section" reel card (16:9 loop EDIT / MOTION / COLOUR / SOUND, cover-cropped into a fixed-height box): on narrow
   screens the words were cut off on both sides. Keep Framer's height wherever the box is wide enough, otherwise let it get
   shorter so it is never narrower than 8:5 and the whole word shows. */
#main [data-framer-name="Sales Section"] .framer-1gslfpo-container { height: auto; aspect-ratio: 8 / 5; max-height: 480px; }
@media (max-width: 767.98px) { #main [data-framer-name="Sales Section"] .framer-1gslfpo-container { max-height: 320px; } }
/* rf-cls:end */
/* video player: our play/pause sticker instead of the browser controls */
.rf-modal__media video { cursor: pointer; }
.rf-play { position: absolute; left: 50%; top: 50%; width: 88px; height: 88px; margin: -44px 0 0 -44px; padding: 0; border: 0; background: none;
  cursor: pointer; filter: drop-shadow(3px 4px 0 var(--rf-ink)); transition: opacity 0.25s ease, transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rf-play svg { display: block; width: 100%; height: 100%; overflow: visible; }
.rf-play__disc { fill: var(--rf-lime); stroke: var(--rf-ink); stroke-width: 2.6; stroke-linejoin: round; }
.rf-play__icon { fill: var(--rf-ink); }
.rf-play__icon--pause { display: none; }
.rf-modal__media.is-playing .rf-play__icon--pause { display: inline; }
.rf-modal__media.is-playing .rf-play__icon--play { display: none; }
.rf-modal__media.is-playing .rf-play { opacity: 0; transform: scale(0.85); pointer-events: none; }
.rf-modal__media.is-playing.show-ui .rf-play, .rf-modal__media .rf-play:focus-visible { opacity: 1; transform: none; pointer-events: auto; }
.rf-modal__media.is-playing:not(.show-ui), .rf-modal__media.is-playing:not(.show-ui) video { cursor: none; }
.rf-play:hover { transform: rotate(-10deg) scale(1.06) !important; }
.rf-play:active { transform: scale(0.94) !important; }
.rf-play:focus-visible { outline: 3px solid var(--rf-tomato); outline-offset: 4px; border-radius: 50%; }
video::-webkit-media-controls { display: none !important; }
@media (max-width: 767.98px) { .rf-play { width: 72px; height: 72px; margin: -36px 0 0 -36px; } }
/* rf-chrome:end */
/* home: per-video price cards above Framer's pricing plans (rf.js moves them in; only on the home route) */
.rf-home-rates { position: relative; box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; align-self: stretch; flex: none; padding: 120px 0 8px;
  background: var(--rf-cream); color: var(--rf-ink); font-family: var(--rf-body); font-size: 17px; line-height: 1.55; overflow: hidden; }
.rf-home-rates::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.55;
  background-image: radial-gradient(rgba(22, 22, 22, 0.13) 1.2px, transparent 1.3px); background-size: 26px 26px; }
.rf-home-rates .rf-wrap { position: relative; }
.rf-home-rates *, .rf-home-rates *::before, .rf-home-rates *::after { box-sizing: border-box; }
.rf-home-rates .rf-h2.rf-rates__h { margin-top: 0; }
html:not([data-rf-page="home"]) .rf-home-rates { display: none; }
@media (max-width: 767.98px) { .rf-home-rates { padding: 80px 0 0; font-size: 16px; } }
/* Framer export bug: the "Book a call" button under the problem section's cards has invalid entrance keyframes
   (skewX without a unit), so Chrome never plays it and the button stays invisible, leaving an empty slot. Show it. */
#main [data-framer-root] > #sales .framer-1s6ycvd-container { opacity: 1 !important; transform: none !important; }
/* our static sections end closer to whatever follows on tablet / phone */
@media (min-width: 768px) and (max-width: 1299.98px) { #rf-static .rf-page:not(.rf-page--intro) { padding-bottom: 50px !important; } }
@media (max-width: 767.98px) { #rf-static .rf-page:not(.rf-page--intro) { padding-bottom: 10px !important; } }
/* rf-seams: section spacing per page and breakpoint, generated by scratchpad v2/solve_seams.py from on-screen
   measurements, so every boundary between sections matches the design rhythm (desktop 168 / tablet 128 / phone 88 px). */
@media (min-width: 1300px) {
  html[data-rf-page="about"] #rf-static .rf-page--about { padding-bottom: 165px !important; }
  html[data-rf-page="agencies"] #main [data-framer-root] > #Partnership { padding-bottom: 90px !important; }
  html[data-rf-page="agencies"] #rf-static .rf-page--agencies { padding-bottom: 165px !important; }
  html[data-rf-page="creators"] #main [data-framer-root] > #pricing { padding-bottom: 106px !important; }
  html[data-rf-page="creators"] #main [data-framer-root] > #pricing { padding-top: 71px !important; }
  html[data-rf-page="faq"] #main [data-framer-root] > #faq { padding-bottom: 82px !important; }
  html[data-rf-page="faq"] #rf-static .rf-page--faq { padding-bottom: 93px !important; }
  html[data-rf-page="home"] #main [data-framer-root] > #faq { padding-top: 24px !important; }
  html[data-rf-page="home"] #main [data-framer-root] > #sales { padding-top: 0px !important; }
  html[data-rf-page="home"] #main [data-framer-root] > section.framer-jq917s { padding-bottom: 59px !important; }
  html[data-rf-page="home"] .rf-home-rates { padding-top: 14px !important; }
  html[data-rf-page="pricing"] #main [data-framer-root] > #faq { padding-bottom: 82px !important; }
  html[data-rf-page="pricing"] #main [data-framer-root] > #faq { padding-top: 24px !important; }
  html[data-rf-page="pricing"] #rf-static .rf-page--pricing { padding-bottom: 95px !important; }
  html[data-rf-page="services"] #main [data-framer-root] > #core-features { padding-top: 0px !important; }
  html[data-rf-page="services"] #main [data-framer-root] > #cta { margin-top: -58px !important; }
}
@media (min-width: 768px) and (max-width: 1299.98px) {
  html[data-rf-page="about"] #rf-static .rf-page--about { padding-bottom: 125px !important; }
  html[data-rf-page="agencies"] #main [data-framer-root] > #Partnership { padding-bottom: 56px !important; }
  html[data-rf-page="agencies"] #rf-static .rf-page--agencies { padding-bottom: 85px !important; }
  html[data-rf-page="creators"] #main [data-framer-root] > #pricing { padding-bottom: 57px !important; }
  html[data-rf-page="creators"] #main [data-framer-root] > #pricing { padding-top: 76px !important; }
  html[data-rf-page="faq"] #main [data-framer-root] > #faq { padding-bottom: 49px !important; }
  html[data-rf-page="faq"] #main [data-framer-root] > #faq { padding-top: 45px !important; }
  html[data-rf-page="home"] #main [data-framer-root] > #faq { padding-top: 9px !important; }
  html[data-rf-page="home"] #main [data-framer-root] > #sales { padding-top: 73px !important; }
  html[data-rf-page="home"] .rf-home-rates { padding-top: 14px !important; }
  html[data-rf-page="pricing"] #main [data-framer-root] > #faq { padding-bottom: 46px !important; }
  html[data-rf-page="pricing"] #main [data-framer-root] > #faq { padding-top: 9px !important; }
  html[data-rf-page="pricing"] #main [data-framer-root] > #pricing { padding-top: 46px !important; }
  html[data-rf-page="services"] #main [data-framer-root] > #core-features { padding-top: 0px !important; }
  html[data-rf-page="services"] #main [data-framer-root] > #cta { margin-top: -64px !important; }
  html[data-rf-page="services"] #rf-static .rf-page--services { padding-bottom: 4px !important; }
}
@media (max-width: 767.98px) {
  html[data-rf-page="about"] #rf-static .rf-page--about { padding-bottom: 48px !important; }
  html[data-rf-page="agencies"] #main [data-framer-root] > #Partnership { padding-bottom: 13px !important; }
  html[data-rf-page="agencies"] #rf-static .rf-page--agencies { padding-bottom: 45px !important; }
  html[data-rf-page="creators"] #main [data-framer-root] > #pricing { padding-bottom: 14px !important; }
  html[data-rf-page="faq"] #main [data-framer-root] > #faq { padding-bottom: 12px !important; }
  html[data-rf-page="faq"] #main [data-framer-root] > #faq { padding-top: 16px !important; }
  html[data-rf-page="home"] #main [data-framer-root] > #faq { padding-top: 3px !important; }
  html[data-rf-page="home"] #main [data-framer-root] > #sales { padding-top: 9px !important; }
  html[data-rf-page="home"] .rf-home-rates { padding-top: 15px !important; }
  html[data-rf-page="pricing"] #main [data-framer-root] > #faq { padding-bottom: 11px !important; }
  html[data-rf-page="pricing"] #main [data-framer-root] > #faq { padding-top: 6px !important; }
  html[data-rf-page="pricing"] #main [data-framer-root] > #pricing { padding-top: 21px !important; }
  html[data-rf-page="services"] #main [data-framer-root] > #core-features { padding-top: 0px !important; }
  html[data-rf-page="services"] #main [data-framer-root] > #cta { margin-top: -68px !important; }
  html[data-rf-page="services"] #rf-static .rf-page--services { padding-bottom: 3px !important; }
}
/* rf-seams:end */
/* pricing cards: Framer's card shape had film-strip sprocket holes cut into it, which showed as white squares on the
   dark Growth card (owner asked to remove them). Same rounded card, no holes; new file name so cached copies don't linger. */
#main img[src*="D4gR94QJtphO3jPCtHXsFQNV7U"] { content: url(/_rf/card-bg.svg); }
/* video player: custom seek bar (elapsed / total, buffered, draggable) + loading / buffering skeleton */
.rf-seek { position: absolute; left: 14px; right: 14px; bottom: 14px; z-index: 3; display: flex; align-items: center; gap: 12px;
  padding: 4px 16px 4px 14px; border-radius: 999px; background: rgba(22, 22, 22, 0.74); border: 1.5px solid rgba(247, 246, 240, 0.16);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: var(--rf-cream); font: 600 12.5px/1 var(--rf-body);
  font-variant-numeric: tabular-nums; transition: opacity 0.3s, transform 0.3s var(--rf-ease); }
.rf-seek__time { flex: none; white-space: nowrap; letter-spacing: 0.02em; }
.rf-seek__sep, .rf-seek__dur { opacity: 0.72; }
.rf-seek__track { position: relative; flex: 1; height: 30px; cursor: pointer; touch-action: none; outline: none; }
.rf-seek__rail { position: absolute; left: 0; right: 0; top: 50%; height: 6px; margin-top: -3px; border-radius: 999px; overflow: hidden; background: rgba(247, 246, 240, 0.22); }
.rf-seek__buf, .rf-seek__fill { position: absolute; inset: 0; transform-origin: left center; transform: scaleX(0); }
.rf-seek__buf { background: rgba(247, 246, 240, 0.38); transition: transform 0.4s; }
.rf-seek__fill { background: var(--rf-lime); }
.rf-seek__thumb { position: absolute; top: 50%; left: 0; width: 18px; height: 18px; margin: -9px 0 0 -9px; border-radius: 50%;
  background: var(--rf-lime); border: 2.5px solid var(--rf-ink); box-shadow: 0 0 0 3px rgba(200, 255, 46, 0.22); transition: transform 0.2s var(--rf-ease); }
.rf-seek__track:hover .rf-seek__thumb, .rf-modal__media.is-scrubbing .rf-seek__thumb { transform: scale(1.25); }
.rf-seek__track:focus-visible .rf-seek__thumb { outline: 3px solid var(--rf-tomato); outline-offset: 2px; }
.rf-seek__mini { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; height: 3px; background: rgba(247, 246, 240, 0.18); opacity: 0; transition: opacity 0.3s; pointer-events: none; }
.rf-seek__mini > span { position: absolute; inset: 0; background: var(--rf-lime); transform-origin: left center; transform: scaleX(0); }
.rf-modal__media.is-playing:not(.show-ui):not(.is-scrubbing) .rf-seek:not(:focus-within) { opacity: 0; transform: translateY(8px); pointer-events: none; }
.rf-modal__media.is-playing:not(.show-ui):not(.is-scrubbing) .rf-seek__mini { opacity: 1; }
.rf-modal__media.is-scrubbing .rf-play, .rf-modal__media.is-loading .rf-play, .rf-modal__media.is-buffering .rf-play, .rf-modal__media.is-error .rf-play { opacity: 0 !important; pointer-events: none !important; }
.rf-modal__media.is-loading .rf-seek, .rf-modal__media.is-error .rf-seek { opacity: 0.55; pointer-events: none; }
.rf-vskel { position: absolute; inset: 0; z-index: 2; display: none; place-items: center; pointer-events: none;
  background: linear-gradient(100deg, rgba(247, 246, 240, 0) 30%, rgba(247, 246, 240, 0.11) 45%, rgba(247, 246, 240, 0) 60%) 0 0 / 250% 100% no-repeat, rgba(22, 22, 22, 0.5);
  animation: rf-vskel-shimmer 1.4s linear infinite; }
.rf-modal__media.is-loading .rf-vskel { display: grid; }
.rf-modal__media.is-buffering .rf-vskel { display: grid; background: rgba(22, 22, 22, 0.28); animation: none; }
.rf-vskel__spin { width: 64px; height: 64px; animation: rf-vskel-spin 1.2s linear infinite; }
.rf-vskel__disc { fill: var(--rf-lime); stroke: var(--rf-ink); stroke-width: 2.6; stroke-linejoin: round; }
.rf-vskel__hub { fill: var(--rf-ink); }
.rf-vskel__hole { fill: var(--rf-ink); opacity: 0.85; }
.rf-vskel__err { position: absolute; inset: 0; z-index: 4; display: grid; place-content: center; justify-items: center; gap: 14px; padding: 24px; text-align: center;
  background: rgba(22, 22, 22, 0.86); color: var(--rf-cream); font: 500 15px/1.45 var(--rf-body); }
.rf-vskel__err[hidden] { display: none; }
.rf-vskel__err p { margin: 0; max-width: 34ch; }
.rf-vskel__retry { padding: 11px 18px; border-radius: 12px; border: 2px solid var(--rf-ink); background: var(--rf-lime); color: var(--rf-ink);
  font: 700 14px/1 var(--rf-body); text-transform: uppercase; letter-spacing: 0.02em; cursor: pointer; }
@keyframes rf-vskel-shimmer { from { background-position: 160% 0, 0 0; } to { background-position: -60% 0, 0 0; } }
@keyframes rf-vskel-spin { to { transform: rotate(360deg); } }
@media (max-width: 767.98px) {
  .rf-seek { left: 10px; right: 10px; bottom: 10px; gap: 10px; padding: 2px 12px 2px 12px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) { .rf-vskel, .rf-vskel__spin { animation: none; } }
/* logo: the wordmark's outlines run ~1 unit past its 154x24 viewBox on both sides, so the last "S" (and a hair of the
   first "R") were clipped. Let it draw outside the box (header, footer, intro loader); layout is unchanged. */
svg[data-framer-name="LOGO"], svg[id="625834927"], .rf-l__logo { overflow: visible !important; }
/* the footer logo is an image of the same wordmark: a copy with a viewBox wide enough for the whole S (new name, so cached copies don't linger) */
img[src*="1PY20NWJOZMNBhvVvQNnFnBrjo8"] { content: url(/_rf/logo-wordmark.svg); }
/* rf-modal: scrolls when the video + title don't fit (phones, short laptops), so the close button and the text stay reachable */
.rf-modal { overflow-y: auto; overscroll-behavior: contain; place-items: start center; padding: 76px 24px 28px; }
.rf-modal__box { margin: auto 0; max-height: none; }
.rf-modal__media { justify-self: stretch; }
@media (max-width: 767.98px) { .rf-modal { padding: 68px 14px 22px; } .rf-modal__meta h3 { font-size: 26px; } }
/* home: the reviews section (shown once real reviews exist) on the same spacing rhythm as the rest of the page */
@media (min-width: 1300px) { html[data-rf-page="home"] .rf-reviews { padding-top: 4px; padding-bottom: 159px; } }
@media (min-width: 768px) and (max-width: 1299.98px) { html[data-rf-page="home"] .rf-reviews { padding-top: 5px; padding-bottom: 122px; } }
@media (max-width: 767.98px) { html[data-rf-page="home"] .rf-reviews { padding-top: 12px; } }
