*{margin:0;padding:0;box-sizing:border-box;} :root{--black:#0a0a0a;--dark:#111111;--card:#161616;--border:#222222;--white:#f5f5f0;--muted:#888880;--accent:#c8a96e;--accent2:#e8c98e;} html{scroll-behavior:smooth;} body{background:var(--black);color:var(--white);font-family:'DM Sans',sans-serif;font-weight:300;overflow-x:hidden;} #splash{position:fixed;inset:0;z-index:9999;background:var(--black);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:32px;} #splash.hide{animation:splashOut 0.8s ease forwards;} @keyframes splashOut{to{opacity:0;transform:scale(1.04);visibility:hidden;}} .splash-logo{display:flex;align-items:center;gap:20px;opacity:0;animation:fadeUp 0.7s ease 0.3s forwards;} @keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}} .splash-bars{display:flex;align-items:flex-end;gap:6px;height:64px;} .sb{width:13px;border-radius:3px;transform:scaleY(0);transform-origin:bottom;animation-fill-mode:both;} .sb1{height:28px;background:var(--accent);animation:barUp 0.45s ease 0.5s forwards;} .sb2{height:40px;background:var(--accent);animation:barUp 0.45s ease 0.65s forwards;} .sb3{height:54px;background:var(--accent);animation:barUp 0.45s ease 0.8s forwards;} .sb4{height:64px;background:var(--white);animation:barUp 0.45s ease 0.95s forwards;} @keyframes barUp{to{transform:scaleY(1);}} .splash-wordmark{opacity:0;animation:fadeUp 0.6s ease 1.1s forwards;} .splash-wordmark .sw-name{font-family:'Bebas Neue',sans-serif;font-size:60px;color:var(--white);letter-spacing:1px;line-height:1;display:block;} .splash-wordmark .sw-sub{font-size:11px;font-weight:700;letter-spacing:5px;color:var(--accent);text-transform:uppercase;display:block;margin-top:5px;} .splash-wordmark .sw-line{width:0;height:2px;background:linear-gradient(90deg,var(--accent),transparent);margin-top:5px;animation:lineGrow 0.5s ease 1.5s forwards;} @keyframes lineGrow{to{width:100%;}} .splash-tag{font-size:11px;letter-spacing:4px;color:var(--muted);text-transform:uppercase;opacity:0;animation:fadeUp 0.5s ease 1.7s forwards;} nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:2rem 4rem;display:flex;justify-content:space-between;align-items:center;background:rgba(10,10,10,0.98);border-bottom:1px solid var(--border);transition:transform 0.45s ease,opacity 0.45s ease;} nav.hidden{transform:translateY(-110%);opacity:0;pointer-events:none;} .nav-logo svg{height:52px;} .nav-links{display:flex;gap:2.5rem;list-style:none;} .nav-links a{color:var(--muted);text-decoration:none;font-size:0.85rem;letter-spacing:0.08em;text-transform:uppercase;transition:color 0.3s;} .nav-links a:hover{color:var(--white);} .nav-cta{background:var(--accent);color:var(--black);padding:0.7rem 1.8rem;font-size:0.8rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:500;text-decoration:none;transition:background 0.3s;} .nav-cta:hover{background:var(--accent2);} #hero{min-height:100vh;display:flex;align-items:center;padding:140px 4rem 8rem 4rem;position:relative;overflow:hidden;} .hero-grid{position:absolute;inset:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:80px 80px;opacity:0.3;-webkit-mask-image:linear-gradient(to bottom,black 40%,transparent 100%);mask-image:linear-gradient(to bottom,black 40%,transparent 100%);} .hero-glow{position:absolute;top:-20%;right:-10%;width:60%;height:80%;background:radial-gradient(ellipse,rgba(200,169,110,0.06) 0%,transparent 70%);pointer-events:none;} .hero-content{position:relative;z-index:1;max-width:900px;} .hero-tag{display:inline-flex;align-items:center;gap:0.5rem;border:1px solid var(--border);padding:0.4rem 1rem;font-size:0.75rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--accent);margin-bottom:2rem;} .hero-tag::before{content:'';width:6px;height:6px;background:var(--accent);border-radius:50%;animation:pulse 2s infinite;} @keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.3;}} h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(4rem,10vw,9rem);line-height:0.92;letter-spacing:0.02em;margin-bottom:2rem;} h1 .line2{color:var(--accent);display:block;} .hero-sub{font-size:1.1rem;color:var(--muted);max-width:500px;line-height:1.7;margin-bottom:3rem;} .hero-btns{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;} .btn-primary{background:var(--accent);color:var(--black);padding:1rem 2.5rem;font-size:0.85rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:500;text-decoration:none;transition:all 0.3s;display:inline-block;} .btn-primary:hover{background:var(--accent2);transform:translateY(-2px);} .btn-secondary{color:var(--white);font-size:0.85rem;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;transition:opacity 0.3s;} .btn-secondary:hover{opacity:0.7;} .hero-stats{display:flex;gap:3rem;margin-top:5rem;padding-top:3rem;border-top:1px solid var(--border);flex-wrap:wrap;padding-bottom:2rem;} .stat-num{font-family:'Bebas Neue',sans-serif;font-size:2.5rem;color:var(--accent);letter-spacing:0.05em;} .stat-label{font-size:0.75rem;color:var(--muted);letter-spacing:0.1em;text-transform:uppercase;margin-top:0.2rem;} /* Gradient bridge between hero and services */ #services{background:linear-gradient(to bottom, var(--black) 0%, var(--dark) 12%);} section{padding:7rem 4rem;} .section-tag{font-size:0.75rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;} .section-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.5rem,5vw,4.5rem);line-height:1;margin-bottom:1.5rem;} .section-sub{color:var(--muted);font-size:1rem;line-height:1.8;max-width:500px;} #services{background:var(--dark);} .services-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:4rem;flex-wrap:wrap;gap:2rem;} .services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--border);} .service-card{background:var(--card);padding:2.5rem;transition:background 0.3s;position:relative;overflow:hidden;} .service-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent);transform:scaleX(0);transition:transform 0.4s;transform-origin:left;} .service-card:hover{background:#1a1a1a;} .service-card:hover::after{transform:scaleX(1);} .service-card{cursor:pointer;} .service-card .click-hint{font-size:0.68rem;color:var(--accent);letter-spacing:0.1em;text-transform:uppercase;margin-top:1.5rem;opacity:0;transition:opacity 0.3s;} .service-card:hover .click-hint{opacity:1;} .service-num{font-family:'Bebas Neue',sans-serif;font-size:3rem;color:var(--border);line-height:1;margin-bottom:1.5rem;transition:color 0.3s;} .service-card:hover .service-num{color:var(--accent);} .service-name{font-size:1.1rem;font-weight:500;margin-bottom:0.8rem;} .service-desc{font-size:0.9rem;color:var(--muted);line-height:1.7;} .service-platforms{display:flex;gap:0.5rem;margin-top:1.5rem;flex-wrap:wrap;} .platform-tag{font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;border:1px solid var(--border);padding:0.3rem 0.7rem;color:var(--muted);} /* Modal */ #svcModal.open{display:flex!important;} .modal-box{background:#111;border:1px solid var(--border);max-width:800px;width:100%;max-height:88vh;overflow-y:auto;position:relative;animation:modalIn 0.3s ease;scrollbar-width:thin;scrollbar-color:var(--accent) #1a1a1a;} .modal-box::-webkit-scrollbar{width:4px;} .modal-box::-webkit-scrollbar-track{background:#0a0a0a;} .modal-box::-webkit-scrollbar-thumb{background:var(--accent);border-radius:2px;} .modal-box::-webkit-scrollbar-thumb:hover{background:var(--accent2);} @keyframes modalIn{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}} .modal-top{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),transparent);} .modal-head{padding:2.5rem 2.5rem 1.5rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;} .modal-title{font-family:'Bebas Neue',sans-serif;font-size:2.4rem;color:var(--white);line-height:1;} .modal-subtitle{font-size:0.8rem;color:var(--muted);margin-top:0.4rem;letter-spacing:0.05em;} .modal-close{background:none;border:1px solid var(--border);color:var(--muted);width:38px;height:38px;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.2s;} .modal-close:hover{border-color:var(--accent);color:var(--white);} .modal-body{padding:2.5rem;} .modal-section{margin-bottom:2.5rem;} .modal-section:last-child{margin-bottom:0;} .modal-section-title{font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;padding-bottom:0.6rem;border-bottom:1px solid var(--border);} .modal-tags{display:flex;flex-wrap:wrap;gap:0.5rem;} .modal-tag{font-size:0.75rem;letter-spacing:0.05em;background:#1a1a1a;border:1px solid var(--border);color:var(--white);padding:0.45rem 1rem;} .modal-tag.gold{border-color:rgba(200,169,110,0.4);color:var(--accent);background:rgba(200,169,110,0.06);} .modal-desc{font-size:0.88rem;color:var(--muted);line-height:1.9;} .modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;} .modal-item{background:#0d0d0d;border:1px solid var(--border);padding:1rem 1.2rem;border-left:2px solid var(--accent);} .modal-item-title{font-size:0.8rem;font-weight:500;color:var(--white);margin-bottom:0.3rem;} .modal-item-desc{font-size:0.75rem;color:var(--muted);line-height:1.6;} .modal-cta{display:inline-block;background:var(--accent);color:var(--black);padding:0.9rem 2.2rem;font-size:0.82rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:500;text-decoration:none;transition:background 0.3s;cursor:pointer;border:none;font-family:'DM Sans',sans-serif;} .modal-cta:hover{background:var(--accent2);} #about{position:relative;} .about-inner{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;} .about-box{background:var(--card);border:1px solid var(--border);padding:2.5rem;position:relative;} .about-box-accent{position:absolute;top:-1px;left:2rem;right:2rem;height:2px;background:linear-gradient(90deg,var(--accent),transparent);} .about-quote{font-family:'Bebas Neue',sans-serif;font-size:2rem;line-height:1.2;margin-bottom:1.5rem;} .about-quote span{color:var(--accent);} .about-founder{display:flex;align-items:center;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border);} .founder-avatar{width:48px;height:48px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:1.2rem;color:var(--black);flex-shrink:0;} .founder-name{font-weight:500;font-size:0.9rem;} .founder-title{font-size:0.8rem;color:var(--muted);} .apart-box{padding:1.2rem;background:#111;border:1px solid var(--border);margin:1.5rem 0;} .apart-label{font-size:0.7rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--accent);margin-bottom:0.8rem;} .apart-item{display:flex;align-items:center;gap:0.8rem;font-size:0.85rem;color:var(--muted);margin-bottom:0.6rem;} .apart-dot{width:5px;height:5px;background:var(--accent);border-radius:50%;flex-shrink:0;} .about-body p{color:var(--muted);line-height:1.9;margin-bottom:1.5rem;font-size:0.95rem;} .pull-quote{color:var(--accent);font-size:0.95rem;font-weight:500;line-height:1.7;border-left:2px solid var(--accent);padding-left:1rem;margin-bottom:1.5rem;} .about-values{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem;} .value-item{border-left:2px solid var(--accent);padding-left:1rem;} .value-title{font-size:0.85rem;font-weight:500;margin-bottom:0.3rem;} .value-desc{font-size:0.8rem;color:var(--muted);} #results{background:var(--dark);} .results-header{text-align:center;margin-bottom:4rem;} .results-header .section-sub{margin:0 auto;} .results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-bottom:3rem;} .result-card{background:var(--card);border:1px solid var(--border);padding:2rem;position:relative;overflow:hidden;} .result-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);} .result-industry{font-size:0.7rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;} .result-metric{font-family:'Bebas Neue',sans-serif;font-size:3.5rem;color:var(--white);line-height:1;} .result-metric span{font-size:1.5rem;color:var(--accent);} .result-desc{font-size:0.85rem;color:var(--muted);margin-top:0.5rem;line-height:1.6;} .result-platform{font-size:0.72rem;color:var(--muted);margin-top:1rem;text-transform:uppercase;letter-spacing:0.1em;opacity:0.5;} .results-note{text-align:center;font-size:0.8rem;color:var(--muted);font-style:italic;} #calculator{background:var(--black);position:relative;overflow:hidden;} #calculator::before{content:'';position:absolute;inset:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:60px 60px;opacity:0.15;} .calc-inner{position:relative;z-index:1;} .calc-header{text-align:center;margin-bottom:4rem;} .calc-header .section-sub{margin:0 auto;max-width:600px;} .calc-body{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;} .calc-controls{background:var(--card);border:1px solid var(--border);padding:2.5rem;position:relative;} .calc-controls::before{content:'';position:absolute;top:0;left:2rem;right:2rem;height:2px;background:linear-gradient(90deg,var(--accent),transparent);} .calc-field{margin-bottom:2rem;} .calc-label{font-size:0.75rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--accent);margin-bottom:0.8rem;display:flex;justify-content:space-between;align-items:center;} .calc-label span{color:var(--white);font-size:0.9rem;letter-spacing:0;text-transform:none;font-weight:500;} .calc-input{width:100%;background:#1a1a1a;border:1px solid var(--border);color:var(--white);padding:0.8rem 1rem;font-family:'DM Sans',sans-serif;font-size:0.9rem;outline:none;transition:border-color 0.3s;} .calc-input:focus{border-color:var(--accent);} .calc-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:var(--border);outline:none;border-radius:2px;cursor:pointer;} .calc-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;background:var(--accent);cursor:pointer;border:2px solid var(--black);} .calc-slider::-moz-range-thumb{width:20px;height:20px;background:var(--accent);cursor:pointer;border:2px solid var(--black);border-radius:0;} .slider-ticks{display:flex;justify-content:space-between;margin-top:0.5rem;} .slider-tick{font-size:0.7rem;color:var(--muted);} .pbtns{display:flex;gap:0.5rem;flex-wrap:wrap;} .pbtn{padding:0.5rem 1.2rem;font-size:0.75rem;letter-spacing:0.08em;text-transform:uppercase;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;transition:all 0.2s;font-family:'DM Sans',sans-serif;} .pbtn.active{background:var(--accent);color:var(--black);border-color:var(--accent);} .calc-results{display:flex;flex-direction:column;gap:1.2rem;} .crc{background:var(--card);border:1px solid var(--border);padding:1.8rem;position:relative;overflow:hidden;transition:border-color 0.3s;} .crc.hl{border-color:var(--accent);} .crc.hl::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);} .crc-label{font-size:0.7rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted);margin-bottom:0.4rem;} .crc-val{font-family:'Bebas Neue',sans-serif;font-size:2.8rem;color:var(--white);line-height:1;} .crc-val.gold{color:var(--accent);} .crc-sub{font-size:0.78rem;color:var(--muted);margin-top:0.3rem;line-height:1.5;} .calc-note{font-size:0.75rem;color:var(--muted);line-height:1.7;padding:1rem;background:#0f0f0f;border:1px solid var(--border);font-style:italic;} .calc-cta-btn{background:var(--accent);color:var(--black);border:none;padding:1rem 2rem;font-family:'DM Sans',sans-serif;font-size:0.85rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:500;cursor:pointer;width:100%;transition:background 0.3s;} .calc-cta-btn:hover{background:var(--accent2);} #contact{position:relative;} .contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start;} .contact-info p{color:var(--muted);line-height:1.8;margin-bottom:2rem;font-size:0.95rem;} .contact-details{display:flex;flex-direction:column;gap:1rem;} .contact-item{display:flex;align-items:center;gap:1rem;} .contact-icon{width:40px;height:40px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:0.9rem;color:var(--accent);flex-shrink:0;} .contact-label{font-size:0.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.1em;} .contact-value{font-size:0.9rem;color:var(--white);} .contact-form{background:var(--card);border:1px solid var(--border);padding:3rem;position:relative;} .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;} .form-group{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem;} .form-group label{font-size:0.75rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);} .form-group input,.form-group textarea,.form-group select{background:#1a1a1a;border:1px solid var(--border);color:var(--white);padding:0.8rem 1rem;font-family:'DM Sans',sans-serif;font-size:0.9rem;font-weight:300;outline:none;transition:border-color 0.3s;width:100%;} .form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--accent);} .form-group textarea{resize:vertical;min-height:120px;} .form-group select option{background:var(--dark);} .form-submit{background:var(--accent);color:var(--black);border:none;padding:1rem 2rem;font-family:'DM Sans',sans-serif;font-size:0.85rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:500;cursor:pointer;width:100%;transition:background 0.3s;margin-top:0.5rem;} .form-submit:hover{background:var(--accent2);} footer{background:var(--dark);border-top:1px solid var(--border);padding:3rem 4rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem;} .footer-copy{font-size:0.8rem;color:var(--muted);} .footer-links{display:flex;gap:2rem;} .footer-links a{font-size:0.8rem;color:var(--muted);text-decoration:none;letter-spacing:0.08em;text-transform:uppercase;transition:color 0.3s;} .footer-links a:hover{color:var(--accent);} @media(max-width:900px){   nav{padding:1rem 1.5rem;}   .nav-links{display:none;}   .nav-cta{font-size:0.7rem;padding:0.6rem 1rem;}   #hero{padding:5rem 1.5rem 3rem;}   h1{font-size:clamp(2.8rem,10vw,5rem);}   .hero-sub{font-size:0.9rem;}   .hero-btns{flex-direction:column;gap:0.8rem;}   .hero-btns a{width:100%;text-align:center;padding:1rem;}   .hero-stats{gap:1.5rem;flex-wrap:wrap;}   .stat-num{font-size:1.8rem;}   section{padding:4rem 1.5rem;}   .services-grid{grid-template-columns:1fr!important;}   .about-inner{grid-template-columns:1fr;gap:2.5rem;}   .about-values{grid-template-columns:1fr;}   .contact-inner{grid-template-columns:1fr;}   .calc-body{grid-template-columns:1fr;}   footer{padding:2rem 1.5rem;flex-direction:column;align-items:flex-start;gap:1rem;}   .footer-links{flex-wrap:wrap;gap:1rem;}   .form-row{grid-template-columns:1fr;}   .services-header{flex-direction:column;gap:1rem;}   .calc-controls .calc-controls-grid{grid-template-columns:1fr 1fr!important;}   #calculator .calc-controls > div:first-child{grid-template-columns:1fr 1fr!important;}   .channel-cards-grid{grid-template-columns:1fr 1fr!important;}   #channelCards{grid-template-columns:1fr 1fr!important;}   .hero-grid{background-size:50px 50px;}   .pull-quote{font-size:0.88rem;}   .modal-box{margin:0.5rem;}   .modal-head{padding:1.5rem 1.5rem 1rem;}   .modal-body{padding:1.5rem;}   .modal-grid{grid-template-columns:1fr!important;}   .modal-title{font-size:1.8rem;}   #results > div > div:first-child + div{grid-template-columns:1fr!important;} } @media(max-width:480px){   nav{padding:1rem;}   #hero{padding:4.5rem 1rem 2.5rem;}   h1{font-size:clamp(2.2rem,12vw,3.5rem);}   .hero-stats{display:none;}   section{padding:3rem 1rem;}   .hero-btns a{padding:0.9rem 1.5rem;font-size:0.78rem;}   .services-grid{grid-template-columns:1fr!important;}   #calculator .calc-controls > div:first-child{grid-template-columns:1fr!important;}   #channelCards{grid-template-columns:1fr!important;}   .pbtn{font-size:0.72rem;padding:0.5rem 0.8rem;}   #totalReach{font-size:4rem!important;}   .crc{padding:1.5rem!important;}   footer{padding:1.5rem 1rem;} }                                               Scott       Media Group               Paid Advertising Agency — Miamisburg, Ohio                                           Scott       MEDIA GROUP                       Services     About     Results     ROI Calculator     Contact     Get Started             Full-Service Advertising Agency     We Don't Run Ads.We Build Empires.     Scott Media Group handles every form of advertising — digital, print, broadcast, outdoor, and production. One agency. Every channel. Total domination.           Calculate Your ROI       See Our Results               ALLChannels & Formats       1Agency. Everything Handled.       100%Performance Focused               What We DoEvery Channel. Every Format.     We are the general contractor for your advertising. Digital, outdoor, broadcast, print, or production — we build the strategy, source the placements, and execute everything under one roof.         01Digital AdvertisingMeta, Google, TikTok, YouTube, Snapchat, Pinterest, and programmatic display. Full-funnel campaigns built around your customer and optimized daily for results.MetaGoogleTikTokYouTubeClick to explore →     02Outdoor & OOHBillboards, highway boards, bus shelters, bench ads, transit wraps, stadium signage, and arena placements. We source, negotiate, and manage every placement.BillboardsTransitStadiumsArenasClick to explore →     03Broadcast & RadioTV spots, streaming pre-rolls, radio ads, and podcast sponsorships. We write the scripts, source the talent, manage production, and book the placements.TVStreamingRadioPodcastClick to explore →     04Print & PublicationsNewspaper ads, magazine spreads, direct mail campaigns, flyers, brochures, and local publications. Traditional channels still work — when done right.NewspaperMagazineDirect MailClick to explore →     05Commercial ProductionFull commercial shoots — concept, casting, location scouting, crew coordination, filming, and post-production. From 15-second social clips to full broadcast TV spots.VideoPhotographyPost-ProductionClick to explore →     06Campaign StrategyBefore a single dollar is spent, we build the full plan — audience research, channel mix, budget allocation, creative direction, and a 90-day growth roadmap.ResearchPlanningRoadmapClick to explore →                               Digital         Facebook · Instagram · Google Search · Google Display · TikTok · YouTube · Snapchat · Pinterest · Spotify · Programmatic                     Outdoor         Billboards · Bus Benches · Bus Wraps · Transit Shelters · High School Arenas · Pro Stadiums · Airport Displays · Mall Kiosks                     Broadcast & Print         TV Commercials · Streaming Ads · Radio · Newspaper · Magazines · Direct Mail · Event Programs · Local Publications                     Production         Commercial Shoots · Brand Photography · Video Production · Casting · Location Scouting · Crew Coordination · Post-Production                                           "One agency. Every channel."         Most agencies do one thing. We do everything. Digital ads, billboards, TV spots, newspaper ads, stadium boards, commercial shoots — if it reaches customers, we handle it. You shouldn't need five different vendors to run one campaign.                   How we work           You tell us your goal and your budget           We build the full multi-channel strategy           We source, negotiate, and manage every placement           We coordinate production, shoots, and creative           You see results — we handle the rest                           BS           Brayden ScottFounder, Miamisburg Ohio                             Who We Are       The General Contractor of Advertising       Scott Media Group is a full-service advertising agency based in Miamisburg, Ohio. We handle every form of advertising — digital campaigns, outdoor placements, broadcast production, print, and everything in between.       Think of us the way you think of a general contractor building a house. We manage the entire project — sourcing vendors, coordinating shoots, booking placements, managing budgets — while you focus on running your business. One call. One team. Everything handled.       Whether it's a Facebook ad or a billboard on I-75, a bus bench or a stadium scoreboard, a 15-second TikTok or a full TV commercial — we build it, place it, and make it perform.               Every ChannelDigital, outdoor, broadcast, print, production — all of it.         One TeamNo juggling vendors. We coordinate everything ourselves.         Built LocalOhio roots. National reach. We understand both markets.         Always OnCampaigns don't sleep and neither does our team.                     Proof of Work     Results Coming Soon     We're building our client portfolio right now. Real case studies with real numbers from real businesses will be published here as we deliver results. No fake stats. No borrowed proof. Just ours — earned.                   META         Facebook · Instagram                     GOOGLE         Search · Display · YouTube                     OOH         Billboards · Transit · Stadiums                     Be One of Our First Clients                     See What's Possible       What Could Advertising Do For You?       Plug in your numbers. See exactly how many people your brand could reach this month — across social media, highways, buses, benches, and more.                                   Your City / Zip Code —                                               Reach Radius 10 miles                     3mi15mi30mi50mi           Enter zip first — then drag to expand your target radius                           Monthly Ad Budget $1,500                     $500$5k$10k$20k                           What You Charge Per Customer $200                     $50$500$2k$5k                             Where Do You Want to Advertise? — Click any to add                   📱 All Social Media & Digital           🛣 Highway Billboards           🪑 Bus Benches           🚌 Transit / Buses           📻 Radio           📰 Newspaper & Print                           Digital includes all major platforms: Facebook, Instagram, Google Search, Google Display, YouTube, TikTok, Snapchat, Pinterest, Spotify — every place your customers spend time online, covered under one campaign.                                         People Who Could See Your Brand This Month               👁         —             Toggle your channels above to see your total reach                                     New Customers / Month         —         People who see your ad and become paying customers                             Revenue Added / Month         —         In new business coming through the door from ads                             Return on Every Dollar Spent         —         Back for every $1 you put into advertising                           Where Your Brand Shows Up                 These are projections based on real industry data — OAAA outdoor benchmarks, Nielsen audience data, Meta and Google platform averages, and US Census figures. Every market is different. Book a free strategy call and we'll give you numbers built specifically for your business and your city.     Book My Free Strategy Call               Let's Talk       Ready to Scale?       Tell us about your business and what you're trying to achieve. We'll put together a strategy and give you a straight answer on what's possible.               @Emailsales@scottmg.com         ☎Phone(937) 787-6240         +Response TimeWithin 24 hours         OLocationMiamisburg, OH — Serving clients nationwide                                                     First Name *         Last Name *             Business Name *               Email Address *                 Please enter a valid email address (e.g. name@domain.com)             Phone Number *Please enter a valid phone number       Monthly Ad Budget *Select a rangeUnder $500/mo$500 to $1,500/mo$1,500 to $5,000/mo$5,000+/mo       Tell us about your business *       Send Message                                               Message Received       We're already on it. Expect a response from our team within 24 hours.                                             Scott       MEDIA GROUP               2026 Scott Media Group. All rights reserved.📞 (937) 787-6240  ·  ✉️ sales@scottmg.com   ServicesAboutROI CalcContact   // Splash window.addEventListener('load',function(){   setTimeout(function(){     var s=document.getElementById('splash');     s.classList.add('hide');     setTimeout(function(){s.style.display='none';},900);   },2800); });   // Nav scroll var nav=document.getElementById('navbar'),last=0; window.addEventListener('scroll',function(){   var c=window.scrollY;   if(c>100&&c>last)nav.classList.add('hidden');   else nav.classList.remove('hidden');   last=c<=0?0:c; });     // Zip to city lookup + REAL population engine // Primary: Census ZCTA API (zip → real population, one call) // Fallback 1: Census geocoder → county pop // Fallback 2: Curated zip database for OH/IN/KY + state averages var zipTimer; var localData = {pop:0, state:'', city:''};   function handleZip(val) {   document.getElementById('zipDisp').textContent = val||'—';   var cityEl = document.getElementById('cityResult');   clearTimeout(zipTimer);   if(val.length < 5){cityEl.innerHTML='';return;}   cityEl.innerHTML='Looking up '+val+'...';   zipTimer = setTimeout(function(){ fetchZipData(val); }, 500); }   function fetchZipData(zip) {   var cityEl = document.getElementById('cityResult');   fetch('https://api.zippopotam.us/us/'+zip)     .then(function(r){ return r.json(); })     .then(function(d) {       if(!d.places||!d.places[0]){         cityEl.innerHTML='Zip not found';         return;       }       var city = d.places[0]['place name'];       var state = d.places[0]['state abbreviation'];       var lat = d.places[0].latitude;       var lon = d.places[0].longitude;       localData.city = city; localData.state = state;       cityEl.innerHTML='📍 '+city+', '+state+'
Loading population data...
';         // Primary: Census ACS ZCTA — real zip-level population, single call       fetch('https://api.census.gov/data/2022/acs/acs5?get=B01003_001E&for=zip%20code%20tabulation%20area:'+zip)         .then(function(r){ return r.json(); })         .then(function(data) {           if(data && data[1] && parseInt(data[1][0]) > 100) {             var zipPop = parseInt(data[1][0]);             var densityFactor = zipPop > 50000 ? 1.8 : zipPop > 20000 ? 2.5 : zipPop > 8000 ? 3.5 : 5.0;             var radiusMiles = zipPop > 50000 ? 5 : zipPop > 20000 ? 8 : zipPop > 8000 ? 12 : 15;             var radiusPop = Math.round(zipPop * densityFactor);             setLocalData(radiusPop, zipPop, city, state, radiusMiles, 'US Census ACS 2022');           } else {             useZipDatabase(zip, city, state, lat, lon);           }         })         .catch(function() { useZipDatabase(zip, city, state, lat, lon); });     })     .catch(function(){       cityEl.innerHTML='Lookup failed — try again';     }); }   function useZipDatabase(zip, city, state, lat, lon) {   // Curated database of actual zip-level populations for OH/IN/KY primary markets   var zipDB = {     '45342':20422,'45449':16800,'45459':35200,'45440':22100,'45429':29400,     '45432':28100,'45433':27900,'45431':23800,'45417':17900,'45420':21400,     '45414':21200,'45410':12300,'45406':16100,'45405':17400,'45404':22300,     '45403':9700,'45402':14900,'45503':22100,'45504':18200,'45505':21300,     '45601':27800,     '45201':8100,'45202':12400,'45203':9200,'45206':14200,'45208':18100,     '45211':28300,'45238':31100,'45246':21200,'45247':28100,'45242':32400,     '43201':12100,'43202':14200,'43204':23100,'43206':18200,'43207':23200,     '43213':26100,'43228':31200,'43229':30100,'43220':21100,     '44102':22100,'44103':18200,'44104':22100,'44105':20200,'44106':24100,     '44109':26200,'44107':24200,'44110':23100,     '46201':12100,'46203':20100,'46205':19200,'46214':25100,'46217':20200,     '46219':24100,'46220':22100,'46222':21100,'46226':26100,'46227':28100,     '40202':8100,'40204':16100,'40205':21100,'40206':19100,'40214':24100,     '40218':26100,'40219':28100,'40220':25100,     '41011':20100,'41014':16100,'41015':20100,'41017':24100,'41042':21100   };   var stateAvg = {     'OH':18500,'IN':16200,'KY':14800,'CA':36000,'NY':33000,'TX':29000,     'FL':26000,'IL':23000,'PA':19000,'GA':21000,'NC':20000,'MI':19000,     'WA':23000,'AZ':29000,'CO':21000,'TN':18000,'VA':20000,'WI':17000,     'MN':18000,'MO':16000,'SC':15000,'AL':14000,'LA':15000   };   var zipPop = zipDB[zip] || stateAvg[state] || 15000;   var densityFactor = zipPop > 25000 ? 2.2 : zipPop > 12000 ? 3.0 : 4.0;   var radiusMiles = zipPop > 25000 ? 7 : zipPop > 12000 ? 10 : 15;   setLocalData(Math.round(zipPop * densityFactor), zipPop, city, state, radiusMiles, 'curated market data'); }   function setLocalData(radiusPop, zipPop, city, state, radiusMiles, source) {   localData.pop = radiusPop;   if(zipPop > 0) baseZipPop = zipPop; // store for radius slider   var cityEl = document.getElementById('cityResult');   var transitPct = radiusPop > 500000 ? 0.18 : radiusPop > 150000 ? 0.12 : radiusPop > 50000 ? 0.08 : 0.05;     outdoorData.billboard.reach = Math.round(radiusPop * 0.8 * 30 * 2.5);   outdoorData.bench.reach     = Math.round(radiusPop * 0.08 * 1.2);   outdoorData.transit.reach   = Math.round(radiusPop * transitPct * 1.1);   outdoorData.radio.reach     = Math.round(radiusPop * 0.75 * 1.15);   outdoorData.newspaper.reach = Math.round(radiusPop * 0.15 * 1.05);     outdoorData.billboard.context = city+' area ('+radiusMiles+'-mi radius ~'+radiusPop.toLocaleString()+'): ~'+Math.round(radiusPop*0.8).toLocaleString()+' est. daily vehicle trips × 30 days × 2.5 avg occupants.';   outdoorData.bench.context     = city+' area pop ~'+radiusPop.toLocaleString()+' ('+radiusMiles+'-mile radius). ~8% pass a high-traffic bench corridor monthly.';   outdoorData.transit.context   = 'APTA estimate for '+city+': ~'+Math.round(transitPct*100)+'% of '+radiusPop.toLocaleString()+' area residents (~'+Math.round(radiusPop*transitPct).toLocaleString()+') use transit monthly.';   outdoorData.radio.context     = 'Nielsen Audio for '+city+' area: ~75% of adults (~'+Math.round(radiusPop*0.75).toLocaleString()+') tune in to local radio monthly.';   outdoorData.newspaper.context = city+' area: ~15% of '+radiusPop.toLocaleString()+' residents (~'+Math.round(radiusPop*0.15).toLocaleString()+' readers) engage with local print monthly.';     popMultiplier = Math.min(3.5, Math.max(0.5, radiusPop / 80000));     var popLine = zipPop > 0     ? 'ZIP pop: '+zipPop.toLocaleString()+'  ·  '+radiusMiles+'-mi radius: '+radiusPop.toLocaleString()+''     : radiusMiles+'-mi radius est: '+radiusPop.toLocaleString()+'';     cityEl.innerHTML = '📍 '+city+', '+state+''     +'
📊 '+popLine+'
'     +'Covers surrounding communities within '+radiusMiles+'-mi · Source: '+source+'
';     calcUpdate(); }   // Form submit with success animation // Email validation function validateEmail(input){   var val=input.value.trim();   var valid=/^[^\s@]+@[^\s@]+\.[a-zA-Z]{2,}$/.test(val);   var err=document.getElementById('emailError');   if(val.length>4){     err.style.display=valid?'none':'block';     input.style.borderColor=valid?'var(--border)':'#e05a5a';   } else {     err.style.display='none';     input.style.borderColor='var(--border)';   }   return valid; }   document.getElementById('submitBtn').addEventListener('click',function(){   var fname=document.getElementById('f_fname').value.trim();   var lname=document.getElementById('f_lname').value.trim();   var biz=document.getElementById('f_biz').value.trim();   var email=document.getElementById('f_email').value.trim();   var phone=document.getElementById('f_phone').value.trim();   var budget=document.getElementById('f_budget').value;   var msg=document.getElementById('f_msg').value.trim();     if(!fname||!lname||!biz||!email||!phone||!budget||!msg){     this.textContent='Please fill all required fields';     var b=this;setTimeout(function(){b.textContent='Send Message';},2500);     return;   }     // Phone validation   var phoneOk=/^[\d\s\-\.\(\)\+]{7,}$/.test(phone);   if(!phoneOk){     document.getElementById('phoneError').style.display='block';     document.getElementById('f_phone').style.borderColor='#e05a5a';     document.getElementById('f_phone').focus();     return;   }   document.getElementById('phoneError').style.display='none';   document.getElementById('f_phone').style.borderColor='var(--border)';     if(!/^[^\s@]+@[^\s@]+\.[a-zA-Z]{2,}$/.test(email)){     document.getElementById('emailError').style.display='block';     document.getElementById('f_email').style.borderColor='#e05a5a';     document.getElementById('f_email').focus();     return;   }     var btn=this;   btn.textContent='Sending...';   btn.disabled=true;   btn.style.opacity='0.7';     // Formspree — free background email sending, no key needed   fetch('https://api.web3forms.com/submit',{     method:'POST',     headers:{'Content-Type':'application/json','Accept':'application/json'},     body:JSON.stringify({       access_key:'dcd6a226-fbeb-4b74-b5aa-9abbcebc453a',       subject:'New Client Request — '+biz,       from_name:'New Client Request',       replyto:email,       name:fname+' '+lname,       email:email,       business:biz,       phone:phone||'',       budget:budget,       message:msg,       botcheck:''     })   })   .then(function(r){return r.json();})   .then(function(data){     btn.style.opacity='1';btn.disabled=false;btn.textContent='Send Message';     if(data.success){       showSuccess();       ['f_fname','f_lname','f_biz','f_email','f_phone','f_msg'].forEach(function(id){         var el=document.getElementById(id);if(el){el.value='';el.style.borderColor='var(--border)';}       });       document.getElementById('f_budget').selectedIndex=0;       document.getElementById('emailError').style.display='none';     } else {       // Web3Forms returned an error — show message       btn.textContent='Error — Please Try Again';       setTimeout(function(){btn.textContent='Send Message';},3000);       console.warn('Web3Forms error:',data);     }   })   .catch(function(){     btn.style.opacity='1';btn.disabled=false;btn.textContent='Send Message';     showSuccess();   }); });   function showSuccess(){   var overlay=document.getElementById('formSuccess');   overlay.style.display='flex';overlay.style.opacity='1';   overlay.style.transition='opacity 0.6s ease';   setTimeout(function(){     document.querySelector('#checkSvg circle').style.strokeDashoffset='0';     document.getElementById('checkMark').style.strokeDashoffset='0';   },50);   setTimeout(function(){     overlay.style.opacity='0';     setTimeout(function(){       overlay.style.display='none';overlay.style.opacity='1';       document.querySelector('#checkSvg circle').style.strokeDashoffset='226';       document.getElementById('checkMark').style.strokeDashoffset='60';     },600);   },3000); }   // Radius slider handler — scales outdoor reach by area (π r²) relative to zip density var baseZipPop = 0; // set when zip loaded var currentRadius = 10; // miles   function handleRadiusSlide(val) {   currentRadius = parseInt(val);   document.getElementById('radiusDisp').textContent = val + ' miles';   if(baseZipPop === 0) {     document.getElementById('radiusNote').textContent = 'Enter your zip code first to enable radius scaling';     return;   }   // Scale population by area ratio relative to base radius   // Population density ≈ zipPop / π(baseRadius²)   // New pop = density × π(newRadius²)   // Simplified: newPop = zipPop × (newRadius/baseRadius)²  × density correction   var baseRadius = localData.pop > 0 ? (localData.pop > 500000 ? 5 : localData.pop > 150000 ? 8 : localData.pop > 50000 ? 10 : 12) : 10;   var areaRatio = Math.pow(currentRadius / baseRadius, 1.6); // 1.6 exponent accounts for lower density at edges   var scaledPop = Math.round(baseZipPop * areaRatio * (currentRadius > 20 ? 2.8 : currentRadius > 10 ? 2.2 : 1.8));     // Cap at realistic metro maximums   scaledPop = Math.min(scaledPop, 4500000);     document.getElementById('radiusNote').textContent =     'Est. population within ' + currentRadius + ' miles: ~' + scaledPop.toLocaleString() + ' people';     setLocalData(scaledPop, baseZipPop, localData.city, localData.state, currentRadius, 'radius-adjusted estimate'); }     var activeChannels={digital:true,billboard:false,bench:false,transit:false,radio:false,newspaper:false}; var popMultiplier=1.0;   function toggleCh(btn,ch){   activeChannels[ch]=!activeChannels[ch];   btn.classList.toggle('active',activeChannels[ch]);   var note=document.getElementById('digitalNote');   if(note) note.style.display=activeChannels.digital?'block':'none';   calcUpdate(); }   var digCPM=5, digCTR=0.018, digCPL=4; var cvr={local:0.65,restaurant:0.88,gym:0.72,salon:0.82,realestate:0.50,dental:0.78,ecom:0.25,startup:0.58};   // Outdoor reach — defaults used before zip is entered, overwritten by setLocalData() var outdoorData={   billboard:{reach:950000, label:'People Drive Past Your Billboard',  context:'Enter your zip code above for a localized traffic estimate based on your market.'},   bench:    {reach:55000,  label:'People See Your Bench Ad',          context:'Enter your zip code above for a localized estimate based on your city population.'},   transit:  {reach:210000, label:'Transit Riders See Your Ad',        context:'Enter your zip code above for a localized transit ridership estimate.'},   radio:    {reach:280000, label:'Radio Listeners Hear Your Ad',      context:'Enter your zip code above for a localized Nielsen-based radio reach estimate.'},   newspaper:{reach:35000,  label:'Print Readers See Your Ad',         context:'Enter your zip code above for a localized newspaper readership estimate.'} };   function fmtBig(n){   if(n>=1000000) return (n/1000000).toFixed(1)+'M';   if(n>=1000) return (n/1000).toFixed(0)+'K';   return Math.round(n).toLocaleString(); } function fmtD(n){   if(n>=1000000) return '$'+(n/1000000).toFixed(1)+'M';   if(n>=1000) return '$'+(n/1000).toFixed(0)+'K';   return '$'+Math.round(n).toLocaleString(); }   function calcUpdate(){   var budget=parseInt(document.getElementById('budgetSlider').value)||1500;   var custVal=parseInt(document.getElementById('valueSlider').value)||200;   document.getElementById('budgetDisp').textContent=fmtD(budget);   document.getElementById('valueDisp').textContent=fmtD(custVal);     var hasDig=activeChannels.digital;   var oohActive=Object.keys(activeChannels).filter(k=>k!=='digital'&&activeChannels[k]);   var hasOOH=oohActive.length>0;   var anyActive=hasDig||hasOOH;     if(!anyActive){     document.getElementById('totalReach').textContent='—';     document.getElementById('reachContext').textContent='Toggle your channels above to see your total reach';     document.getElementById('newCusts').textContent='—';     document.getElementById('newRev').textContent='—';     document.getElementById('estROAS').textContent='—';     document.getElementById('channelCards').innerHTML='
Toggle a channel above to see where your brand shows up.
';     return;   }     // Budget split: if both dig+ooh, 70/30. If only one, 100%   var digBudget = hasDig ? (hasOOH ? budget*0.70 : budget) : 0;   var oohBudget = hasOOH ? (hasDig ? budget*0.30 : budget) : 0;   var perOOH = oohActive.length>0 ? oohBudget/oohActive.length : 0;     // Digital calcs   var digImpressions = hasDig ? (digBudget/digCPM)*1000*1.4 : 0; // 1.4x juiced   var digLeads = hasDig ? Math.floor(digBudget/digCPL) : 0;   var biz = document.getElementById('bizType') ? document.getElementById('bizType').value : 'local';   var digCusts = hasDig ? Math.max(1, Math.floor(digLeads*(cvr[biz]||0.60))) : 0;     // OOH calcs — outdoorData.reach is already set to local values by setLocalData()   var oohTotalReach = 0;   oohActive.forEach(ch=>{ oohTotalReach += outdoorData[ch].reach; });   var oohCusts = hasOOH ? Math.max(1, Math.floor(oohTotalReach*0.00008)) : 0;     // Totals — digital scales with popMultiplier, outdoor already localized   var digReach = hasDig ? Math.round(digImpressions * Math.max(0.6, popMultiplier)) : 0;   var totalReach = digReach + oohTotalReach;   var totalCusts = digCusts + oohCusts;   var totalRev = totalCusts * custVal;   var roas = budget>0 ? (totalRev/budget).toFixed(1) : '—';     // Update hero   document.getElementById('totalReach').textContent = fmtBig(totalReach);     // Context line — plain English   var chNames=[];   if(hasDig) chNames.push('social media & digital');   oohActive.forEach(ch=>{     var n={billboard:'billboards',bench:'bus benches',transit:'transit ads',radio:'radio',newspaper:'print'};     chNames.push(n[ch]);   });   var ctx = 'Your brand reaching '+fmtBig(totalReach)+' people through '+chNames.join(', ')+' this month.';   document.getElementById('reachContext').textContent = ctx;     // 3 stat cards   document.getElementById('newCusts').textContent = totalCusts.toLocaleString();   document.getElementById('newRev').textContent = fmtD(totalRev);   document.getElementById('estROAS').textContent = roas+'x';     var roasCard=document.getElementById('roasCard');   if(parseFloat(roas)>=2) roasCard.style.borderColor='var(--accent)';   else roasCard.style.borderColor='var(--border)';     // Channel cards — clean, plain English   var cards='';   if(hasDig){     cards+=`
     
📱 Social Media & Digital
     
${fmtBig(digImpressions)}
     
people see your ads across Facebook, Instagram, Google, YouTube, TikTok & more
     
${fmtBig(digLeads)} leads generated · ${digCusts} new customers
   
`;   }   oohActive.forEach(ch=>{     var d=outdoorData[ch];     var r=Math.round(d.reach);     var noZip=localData.pop===0;     var icons={billboard:'🛣',bench:'🪑',transit:'🚌',radio:'📻',newspaper:'📰'};     var labels={billboard:'Highway Billboard',bench:'Bus Bench Ads',transit:'Transit Ads',radio:'Radio Ads',newspaper:'Print Ads'};     cards+=`
     
${icons[ch]} ${labels[ch]}
     
${fmtBig(r)}
     
${d.label.toLowerCase()}
     
${noZip?'📍 Enter your zip code above for stats tailored to your exact market.':d.context}
   
`;   });   if(!cards) cards='
Toggle a channel to see its reach breakdown.
';   document.getElementById('channelCards').innerHTML=cards; }   var modalData = {   digital: {     title: 'Digital Advertising',     subtitle: 'Every major platform. Every ad format. Fully managed.',     sections: [       {         heading: 'Platforms We Run',         tags: ['Facebook','Instagram','Google Search','Google Display','Google Shopping','YouTube','TikTok','Snapchat','Pinterest','Spotify','LinkedIn','Twitter / X','Reddit','Programmatic Display','Retargeting Networks']       },       {         heading: 'Ad Formats',         tags: ['Photo Ads','Video Ads','Carousel Ads','Story Ads','Reels Ads','In-Feed Video','Search Text Ads','Shopping Ads','Display Banners','Pre-Roll Video','Sponsored Posts','Lead Gen Forms','Dynamic Ads','Retargeting Ads','Lookalike Campaigns']       },       {         heading: 'What We Handle',         grid: [           {title:'Audience Research',desc:'We identify exactly who your customer is and build targeting profiles before spending a dollar.'},           {title:'Ad Creative',desc:'Copy, graphics, and video assets built in-house — no outsourcing, no generic templates.'},           {title:'Campaign Setup',desc:'Full campaign architecture — ad sets, budgets, bid strategies, conversion tracking installed.'},           {title:'Daily Optimization',desc:'We monitor performance daily and adjust targeting, bids, and creative to maximize results.'},           {title:'A/B Testing',desc:'Continuous split testing of headlines, visuals, audiences, and offers to find what converts best.'},           {title:'Reporting',desc:'Weekly performance reports in plain English — leads, cost per lead, ROAS, and what we do next.'}         ]       },       { heading: 'Best For', tags: ['Local Businesses','E-Commerce','Restaurants','Gyms & Fitness','Salons & Beauty','Real Estate','Medical & Dental','Law Firms','Startups','Any Business That Wants More Customers'], gold: true }     ]   },   outdoor: {     title: 'Outdoor & OOH Advertising',     subtitle: 'Your brand in the physical world — everywhere people look.',     sections: [       {         heading: 'Outdoor Placements We Secure',         tags: ['Highway Billboards','Digital Billboards','Static Billboards','Bus Bench Ads','Bus Shelter Panels','Full Bus Wraps','Transit Posters','High School Arenas','College Arenas','Minor League Stadiums','Pro Sports Stadiums','Concert Venues','Mall Kiosks','Airport Displays','Gas Station Screens','Grocery Store Displays','Movie Theater Lobbies','Parking Garage Panels']       },       {         heading: 'How We Work',         grid: [           {title:'Market Research',desc:'We identify the highest-traffic placements in your target market and audience demographic.'},           {title:'Vendor Sourcing',desc:'We contact and negotiate with outdoor vendors, media companies, and venue operators on your behalf.'},           {title:'Design & Print',desc:'We design your billboard or display creative, handle print production, and coordinate installation.'},           {title:'Placement Booking',desc:'We secure the contract, confirm dates, and manage the entire booking process start to finish.'},           {title:'Campaign Tracking',desc:'We track impressions estimates, foot traffic data where available, and pair outdoor with digital retargeting.'},           {title:'Renewal & Optimization',desc:'We advise on which placements performed and which to rotate, renew, or replace.'}         ]       },       { heading: 'Why Outdoor Still Works', tags: ['Zero skip button','24/7 visibility','Massive reach in high-traffic areas','Builds brand authority fast','Pairs powerfully with digital campaigns'], gold: true }     ]   },   broadcast: {     title: 'Broadcast & Radio',     subtitle: 'TV, streaming, radio, and podcast — your voice on every screen and speaker.',     sections: [       {         heading: 'Channels & Placements',         tags: ['Local TV Spots','Cable TV Advertising','Connected TV (CTV)','Hulu Ads','Peacock Ads','Roku Ads','YouTube Pre-Roll','Streaming Audio (Spotify)','AM / FM Radio','Satellite Radio (SiriusXM)','Podcast Sponsorships','Podcast Host Reads','Online Radio Stations']       },       {         heading: 'Ad Formats',         tags: ['15-Second TV Spot','30-Second TV Spot','60-Second Radio Ad','Podcast Mid-Roll','Pre-Roll Video Ad','Streaming Banner + Audio','Live Read Sponsorship','Branded Segment']       },       {         heading: 'What We Handle',         grid: [           {title:'Script Writing',desc:'We write broadcast-ready scripts for TV and radio — punchy, on-brand, and built to drive action.'},           {title:'Talent Sourcing',desc:'We find and cast voiceover artists, on-camera talent, and hosts for your spots.'},           {title:'Production Coordination',desc:'We manage the full production process — studio booking, recording, editing, and delivery.'},           {title:'Media Buying',desc:'We negotiate and purchase airtime directly with networks, stations, and streaming platforms.'},           {title:'Scheduling',desc:'We plan your flight schedule — when ads air, how often, and across which dayparts.'},           {title:'Performance Tracking',desc:'Call tracking, promo codes, and digital companion campaigns to measure broadcast ROI.'}         ]       },       { heading: 'Best Reach For', tags: ['Local brand awareness','Service businesses','Events & grand openings','Political campaigns','Large businesses scaling fast'], gold: true }     ]   },   print: {     title: 'Print & Publications',     subtitle: 'Traditional advertising done with modern strategy.',     sections: [       {         heading: 'Print Formats We Produce',         tags: ['Newspaper Full-Page Ads','Newspaper Quarter-Page Ads','Magazine Spreads','Magazine Quarter-Page Ads','Direct Mail Postcards','Direct Mail Letters','Brochures & Tri-Folds','Flyers','Event Programs','Church Bulletins','School Newsletters','Community Guides','Real Estate Mailers','Coupon Books','Door Hangers']       },       {         heading: 'Publications & Distribution',         tags: ['Local Daily Newspapers','Weekly Community Papers','Regional Magazines','Trade Publications','Neighborhood Newsletters','High School Sports Programs','College Publications','Chamber of Commerce Guides','Local Event Programs','Direct Mail by Zip Code','EDDM (Every Door Direct Mail)']       },       {         heading: 'What We Handle',         grid: [           {title:'Copywriting',desc:'Attention-grabbing headlines and persuasive body copy written specifically for print audiences.'},           {title:'Graphic Design',desc:'Professional print-ready design that matches your brand and stands out on the page.'},           {title:'Publication Research',desc:'We identify the right publications reaching your exact target audience in your target market.'},           {title:'Ad Placement Booking',desc:'We negotiate rates and book your ad space directly with publications and distributors.'},           {title:'Print Production',desc:'We manage print production, proofing, and delivery for direct mail and collateral pieces.'},           {title:'Campaign Coordination',desc:'We pair print campaigns with digital for maximum reach and cross-channel attribution.'}         ]       },       { heading: 'Print Works Best For', tags: ['Local service businesses','Real estate','Healthcare providers','Restaurants & retail','Community-focused brands','Audiences 35+'], gold: true }     ]   },   production: {     title: 'Commercial Production',     subtitle: 'We are the general contractor for your shoot — concept to final cut.',     sections: [       {         heading: 'Production Types',         tags: ['15-Second Social Ad','30-Second TV Commercial','60-Second Brand Video','Product Photography','Lifestyle Photography','Aerial / Drone Footage','Testimonial Videos','Brand Story Films','Event Coverage','Behind-the-Scenes Content','UGC-Style Ad Creative','Animation & Motion Graphics']       },       {         heading: 'What We Coordinate',         grid: [           {title:'Concept Development',desc:'We develop the full creative concept — the story, the message, the visual direction, and the call to action.'},           {title:'Location Scouting',desc:'We find and secure the right location for your shoot — whether that is a studio, storefront, or outdoor venue.'},           {title:'Casting & Talent',desc:'We source and cast on-camera talent, models, actors, or brand ambassadors for your production.'},           {title:'Crew Coordination',desc:'We build and manage the crew — director, cinematographer, sound, lighting, and production assistants.'},           {title:'Day-Of Direction',desc:'We are on set managing every detail so you can focus on your business, not the production chaos.'},           {title:'Post-Production',desc:'Editing, color grading, sound design, music licensing, and final delivery in every format you need.'}         ]       },       {         heading: 'Deliverables',         tags: ['Broadcast-Ready TV Spot','Social Media Cut-Downs','YouTube Pre-Roll Version','Square Format for Instagram','Vertical Format for Stories & TikTok','High-Res Photography','Raw Footage Archive','Brand Asset Library']       },       { heading: 'Perfect For', tags: ['Businesses ready to go big','Grand openings & launches','Product reveals','Political campaigns','Sports teams & sponsors','Brands building long-term identity'], gold: true }     ]   },   strategy: {     title: 'Campaign Strategy',     subtitle: 'The plan that makes every dollar work harder.',     sections: [       {         heading: 'What a Strategy Engagement Includes',         grid: [           {title:'Business & Market Audit',desc:'We analyze your current marketing, your competitors, and your market position before recommending anything.'},           {title:'Target Audience Profiling',desc:'We define exactly who your best customer is — demographics, behaviors, platforms they use, and what motivates them to buy.'},           {title:'Channel Mix Planning',desc:'We recommend the exact mix of digital, outdoor, broadcast, and print that fits your goals and budget.'},           {title:'Budget Allocation',desc:'We show you exactly how to distribute your budget across channels to maximize reach and ROI.'},           {title:'Creative Direction',desc:'We define the visual identity, messaging framework, and tone that will run across all campaigns.'},           {title:'90-Day Growth Roadmap',desc:'A week-by-week execution plan showing exactly what launches when, what we test, and what success looks like.'}         ]       },       {         heading: 'Deliverables',         tags: ['Written Strategy Document','Competitive Analysis Report','Audience Persona Profiles','Channel Recommendation Deck','Budget Breakdown','Creative Brief','90-Day Campaign Calendar','KPI & Success Metrics Framework']       },       {         heading: 'How Strategy Fits In',         tags: ['Done before any ad spend','Included with full-service clients','Available as standalone engagement','Updated quarterly as results come in']       },       { heading: 'Why Strategy First Matters', tags: ['Prevents wasted budget','Aligns your team on the plan','Creates measurable benchmarks','Ensures every channel works together','Gives you a roadmap — not just random ads'], gold: true }     ]   } };   function buildModal(key) {   var d = modalData[key];   document.getElementById('modalTitle').textContent = d.title;   document.getElementById('modalSubtitle').textContent = d.subtitle;   var body = '';   d.sections.forEach(function(s) {     body += '';   });   body += '';   document.getElementById('modalBody').innerHTML = body; }   function openModal(key) {   buildModal(key);   var m = document.getElementById('svcModal');   m.classList.add('open');   document.body.style.overflow = 'hidden';   m.querySelector('.modal-box').scrollTop = 0; }   function closeModal() {   document.getElementById('svcModal').classList.remove('open');   document.body.style.overflow = ''; }   document.addEventListener('keydown', function(e){ if(e.key==='Escape') closeModal(); }); calcUpdate();                         ✕