const APPLE_SANS_S = "-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Inter', sans-serif";
const APPLE_TEXT_S = "-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Inter', sans-serif";
const IncludedSection = () => {
const bp = useBreakpoint();
const isMobile = bp === "mobile";
const isTablet = bp === "tablet";
const stacked = isMobile || isTablet;
return (
Your free month,itemized. >}
lede="The same engagement our paying clients get. For 30 days. On us."
/>
{INCLUDED.map((it, i) => (
{(i+1).toString().padStart(2,"0")}
{it.t}
{isMobile && (
{it.v}
)}
{it.d}
{!isMobile && (
{it.v}
)}
))}
);
};
const INCLUDED = [
{ t: "6 AI-produced video ads", d: "Short-form cuts optimized for Meta Reels, TikTok, YouTube Shorts. 15–30s each. Multiple hook variants.", v: "$3,600" },
{ t: "25 static creatives", d: "Feed ads, story ads, carousel frames. Sized for Meta, Pinterest, LinkedIn, programmatic.", v: "$1,250" },
{ t: "Creative strategy audit", d: "Full teardown of your current ads, landing page, and funnel. Loom-recorded. Yours to keep.", v: "$500" },
{ t: "Campaign architecture", d: "Account structure, audiences, and testing framework — done by a Meta/Google specialist.", v: "INCLUDED" },
{ t: "Weekly performance reviews", d: "30-minute calls with your strategist. No account manager theater.", v: "INCLUDED" },
{ t: "Full asset handoff", d: "Every file, every script, every edit. You own it all. Even if we part ways day 31.", v: "INCLUDED" },
];
const WhoForSection = () => {
const bp = useBreakpoint();
const isMobile = bp === "mobile";
return (
You'll get the most out of thisif one of these is true. >}
/>
);
};
const WhoList = ({ variant, title, items, isMobile }) => {
const good = variant === "for";
return (
{title}
{items.map((it, i) => (
{it}
))}
);
};
const FounderSection = () => {
const bp = useBreakpoint();
const isMobile = bp === "mobile";
return (
A note from the founder
"I built Di Fiore because I got tired of agencies billing $15K/mo to ship three ads a quarter."
The free month isn't a marketing gimmick — it's how we prove the system works. If we can't move your CPA in 30 days, you've lost nothing. You keep every asset, every strategy doc, every account build. Most of our best clients came in through this door. Some didn't convert. That's fine. Either way, you get a month of real work. No upsells, no hostage tactics.
We keep it to 10 brands per month because we actually do the work ourselves.
Augusto Di Fiore — Founder & CEO
);
};
const FinalCTASection = ({ spotsLeft, onSubmit }) => {
const bp = useBreakpoint();
const isMobile = bp === "mobile";
return (
Only {spotsLeft} of 10 spots remaining
A free month.
Zero risk. One scaled brand.
Give us 30 days. We'll give you 6 videos, 25 statics, a live campaign, and receipts. Worst case: you keep everything.
);
};
const StarterPlanBanner = () => {
const bp = useBreakpoint();
const isMobile = bp === "mobile";
const isTablet = bp === "tablet";
const stacked = isMobile || isTablet;
return (
Spending less than $5K/month?
We'll help you grow.
Our Starter plan gives you professional campaign management at a flat rate — no performance fees, no hidden costs. Perfect for brands just getting started with paid media.
);
};
// ──────────────────────────────────────────────────────────────────
// InlineCTA — compact mid-page action break. Drops between major sections
// to re-hook users without duplicating the hero form or FinalCTA.
// variant="navy" → dark surface, white button (use on light-bg neighbors)
// variant="white" → white surface, navy button (use on dark-bg neighbors)
// ──────────────────────────────────────────────────────────────────
const InlineCTA = ({ title, highlight, cta = "Claim your free month", href = "#claim", variant = "navy" }) => {
const bp = useBreakpoint();
const isMobile = bp === "mobile";
const isDark = variant === "navy";
return (
);
};
// ──────────────────────────────────────────────────────────────────
// SuccessStoryCTA — the big Apple-style "wow" CTA that lives after testimonials.
// Layers: ambient gradient glows, floating sparkles, review badge with stars,
// gradient+shimmer headline, 3D navy pill button, trust icons, platform strip.
// ──────────────────────────────────────────────────────────────────
const SuccessStoryCTA = () => {
const bp = useBreakpoint();
const isMobile = bp === "mobile";
return (
{/* Shimmer keyframe for the gradient headline */}
{/* Ambient gradient orbs */}
{/* Floating sparkles */}
{!isMobile && (
<>
>
)}
{/* Review badge */}
{[1,2,3,4,5].map(i => (
))}
4.9 from operators scaling real revenue
{/* Headline with shimmering gradient */}
Be the next{" "}
success story.
{/* Subtitle */}
30 days. 6 videos. 25 statics. A live campaign. Zero cost to start.
{/* 3D CTA button — wrapped in a block div so it stacks above the trust row */}
{/* Trust row */}
{/* Platform strip */}
);
};
const TrustCheck = ({ label }) => (
{label}
);
// Brand icon paths from Simple Icons (simpleicons.org, CC0).
const BRAND_META = "M6.915 4.03c-1.968 0-3.683 1.28-4.871 3.113C.704 9.208 0 11.883 0 14.449c0 .706.07 1.369.21 1.973a6.624 6.624 0 0 0 .265.86 5.297 5.297 0 0 0 .371.761c.696 1.159 1.818 1.927 3.593 1.927 1.497 0 2.633-.671 3.965-2.444.76-1.012 1.144-1.626 2.663-4.32l.756-1.339.186-.325c.061.1.121.196.183.3l2.152 3.595c.724 1.21 1.665 2.556 2.47 3.314 1.046.987 1.992 1.22 3.06 1.22 1.075 0 1.876-.355 2.455-.843a3.743 3.743 0 0 0 .81-.973c.542-.939.861-2.127.861-3.745 0-2.72-.681-5.357-2.084-7.45-1.282-1.912-2.957-2.93-4.716-2.93-1.047 0-2.088.467-3.053 1.308-.652.57-1.257 1.29-1.82 2.05-.69-.875-1.335-1.547-1.958-2.056-1.182-.966-2.315-1.303-3.454-1.303zm10.16 2.053c1.147 0 2.188.758 2.992 1.999 1.132 1.748 1.647 4.195 1.647 6.4 0 1.548-.368 2.9-1.839 2.9-.58 0-1.027-.16-1.664-1.004-.496-.654-1.343-1.878-2.832-4.358l-.617-1.028a44.908 44.908 0 0 0-1.255-1.98c.07-.109.141-.224.211-.327 1.12-1.667 2.118-2.602 3.358-2.602zm-10.201.553c1.265 0 2.058.791 2.675 1.446.307.327.737.871 1.234 1.579l-1.02 1.566c-.757 1.163-1.882 3.017-2.837 4.338-1.191 1.649-1.81 1.817-2.486 1.817-.524 0-1.038-.237-1.383-.794-.263-.426-.464-1.13-.464-2.046 0-2.221.63-4.535 1.66-6.088.454-.687.964-1.226 1.533-1.533a2.264 2.264 0 0 1 1.088-.285z";
const BRAND_TIKTOK = "M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z";
const BRAND_GOOGLE = "M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z";
const BRAND_YOUTUBE = "M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z";
const BRAND_LINKEDIN = "M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.063 2.063 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z";
const BrandIcon = ({ name, size = 24, path }) => (
{ e.currentTarget.style.color = "#051B42"; e.currentTarget.style.transform = "translateY(-2px)"; }}
onMouseLeave={(e) => { e.currentTarget.style.color = ""; e.currentTarget.style.transform = "translateY(0)"; }}>
{name}
);
// Floating brand logo — minimalist watermark (natural brand color at low opacity)
const Sparkle = ({ size = 24, top, left, opacity = 0.5, anim }) => (
);
window.IncludedSection = IncludedSection;
window.WhoForSection = WhoForSection;
window.FounderSection = FounderSection;
window.FinalCTASection = FinalCTASection;
window.StarterPlanBanner = StarterPlanBanner;
window.InlineCTA = InlineCTA;
window.SuccessStoryCTA = SuccessStoryCTA;