/* GENERATED by _build/build_svc2.py, do not edit by hand.
   The mockup and stack marquee CSS are ported unchanged from the live theme
   (patterns/service-custom-development.php), with the WordPress color and
   font variables swapped for this site's. */
/* ---- ported: tmg-cd-intro-css ---- */
.tmg-cd-mock{width:100%;max-width:472px;margin-inline:auto;background:linear-gradient(158deg,#21402E 0%,#18301F 100%);border:1px solid rgba(232,181,71,.22);border-radius:16px;box-shadow:0 26px 60px rgba(31,58,42,.30);overflow:hidden;transition:transform 280ms cubic-bezier(.2,.7,.2,1),box-shadow 280ms ease,border-color 280ms ease}
.tmg-cd-mock:hover{transform:translateY(-6px);box-shadow:0 36px 74px rgba(31,58,42,.40);border-color:rgba(232,181,71,.48)}
.tmg-cd-mock__ring{transition:filter 280ms ease}
.tmg-cd-mock:hover .tmg-cd-mock__ring{filter:drop-shadow(0 0 11px rgba(232,181,71,.40))}
@media (prefers-reduced-motion:reduce){.tmg-cd-mock,.tmg-cd-mock:hover{transition:none;transform:none}}
.tmg-cd-mock__bar{display:flex;gap:7px;align-items:center;padding:12px 15px;border-bottom:1px solid rgba(255,255,255,.08)}
.tmg-cd-mock__dot{width:10px;height:10px;border-radius:999px;background:rgba(255,255,255,.16);flex:0 0 auto}
.tmg-cd-mock__dot:first-child{background:var(--gold)}
.tmg-cd-mock__search{flex:1;height:11px;border-radius:999px;background:rgba(255,255,255,.07);margin-left:6px}
.tmg-cd-mock__avatar{width:20px;height:20px;border-radius:999px;background:linear-gradient(135deg,var(--gold),#7CA45C);flex:0 0 auto}
.tmg-cd-mock__body{padding:15px 15px 17px}
.tmg-cd-mock__tabs{display:flex;align-items:center;gap:7px;margin-bottom:15px}
.tmg-cd-mock__tab{font-family:var(--head);font-size:10.5px;font-weight:600;color:rgba(255,255,255,.55);padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.05)}
.tmg-cd-mock__tab--active{color:#1F3A2A;background:var(--gold)}
.tmg-cd-mock__btn{margin-left:auto;font-family:var(--head);font-size:10.5px;font-weight:600;color:#fff;padding:5px 11px;border-radius:8px;border:1px solid rgba(232,181,71,.55)}
.tmg-cd-mock__kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:13px}
.tmg-cd-mock__kpi{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:9px 10px}
.tmg-cd-mock__kpi-cap{display:block;height:5px;width:64%;border-radius:999px;background:rgba(255,255,255,.2);margin-bottom:8px}
.tmg-cd-mock__kpi-num{font-family:var(--head);font-size:15.5px;font-weight:700;color:#fff;line-height:1}
.tmg-cd-mock__kpi-num--gold{color:var(--gold)}
.tmg-cd-mock__kpi-num--green{color:#9DC27A}
.tmg-cd-mock__panels{display:grid;grid-template-columns:1.35fr 1fr;gap:11px;margin-bottom:13px}
.tmg-cd-mock__panel{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:11px 12px 12px}
.tmg-cd-mock__panel-cap{display:block;height:6px;width:52%;border-radius:999px;background:rgba(255,255,255,.18);margin-bottom:11px}
.tmg-cd-mock__chart{display:flex;align-items:flex-end;gap:6px;height:72px}
.tmg-cd-mock__chart span{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--gold),rgba(232,181,71,.28))}
.tmg-cd-mock__chart span:nth-child(even){background:linear-gradient(180deg,#7CA45C,rgba(124,164,92,.26))}
.tmg-cd-mock__panel--ring{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.tmg-cd-mock__ring{position:relative;width:78px;height:78px;border-radius:50%;background:conic-gradient(var(--gold) 0 68%,#7CA45C 68% 87%,rgba(255,255,255,.12) 87% 100%);display:grid;place-items:center}
.tmg-cd-mock__ring::before{content:"";position:absolute;inset:11px;border-radius:50%;background:#1B3323}
.tmg-cd-mock__ring-val{position:relative;z-index:1;font-family:var(--head);font-size:15px;font-weight:700;color:#fff}
.tmg-cd-mock__legend{display:flex;gap:11px}
.tmg-cd-mock__leg{width:24px;height:5px;border-radius:999px;background:rgba(255,255,255,.14)}
.tmg-cd-mock__leg--gold{background:var(--gold)}
.tmg-cd-mock__leg--green{background:#7CA45C}
.tmg-cd-mock__lines{display:flex;flex-direction:column;gap:9px}
.tmg-cd-mock__line{height:8px;border-radius:999px;background:rgba(255,255,255,.1)}
.tmg-cd-mock__line--1{width:92%}
.tmg-cd-mock__line--2{width:70%}
@media (max-width:430px){.tmg-cd-mock__panels{grid-template-columns:1fr}}
@media (max-width:781px){.tmg-cd-mock{margin-top:10px}.tmg-customdev-intro{padding-top:2.75rem!important;padding-bottom:1.25rem!important}}
/* ---- ported: tmg-stack-css ---- */
.tmg-stack__sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.tmg-stack{max-width:100%}
.stack-row{width:min(100vw,2560px);margin-left:calc(50% - min(50vw,1280px));overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%)}
.stack-row+.stack-row{margin-top:28px}
.stack-track{display:flex;align-items:center;width:max-content;will-change:transform}
.stack-track--fwd{animation:tmg-mkq-fwd var(--dur) linear infinite}
.stack-track--rev{animation:tmg-mkq-rev var(--dur) linear infinite}
@keyframes tmg-mkq-fwd{from{transform:translateX(-20.0000%)}to{transform:translateX(0)}}
@keyframes tmg-mkq-rev{from{transform:translateX(0)}to{transform:translateX(-20.0000%)}}
.mk{height:42px;width:auto;flex:0 0 auto;display:block;margin-right:48px}
.mk--mono{fill:currentColor}
.mk--img{object-fit:contain}
@media (max-width:600px){.stack-row+.stack-row{margin-top:18px}.mk{height:32px;margin-right:34px}}
@media (prefers-reduced-motion:reduce){.stack-track{animation:none;transform:none;flex-wrap:wrap;justify-content:center;width:100%}.stack-track .mk--dup{display:none}.stack-row{-webkit-mask-image:none;mask-image:none}.mk{margin:8px 14px}}
/* ---- svc2 pieces (paid ads, custom development, services hub), 2026-10-21 ---- */

/* Platforms: three open columns split by hairlines, not boxed cards */
.s2-plat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.s2-plat__col{padding:6px clamp(20px,3vw,44px)}
.s2-plat__col:first-child{padding-left:0}
.s2-plat__col:last-child{padding-right:0}
.s2-plat__col + .s2-plat__col{border-left:1px solid rgba(31,58,42,.16)}
.s2-brand{display:block;height:28px;font-family:var(--head);font-weight:700;font-size:1.75rem;line-height:28px;letter-spacing:-.01em}
.s2-brand--img{width:auto;max-width:100%;object-fit:contain;object-position:left center}
.s2-plat h3{margin:14px 0 12px;font-family:var(--head);font-weight:700;font-size:.86rem;letter-spacing:.1em;text-transform:uppercase;color:#8A6618}
.s2-plat p{color:#3E4651;font-size:.97rem;line-height:1.6}
.s2-uses{margin-top:18px;padding-top:16px;border-top:1px solid rgba(31,58,42,.12);display:grid;gap:9px}
.s2-uses li{position:relative;padding-left:18px;font-size:.9rem;line-height:1.45;color:var(--green);font-weight:500}
.s2-uses li::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:50%;background:var(--gold-dk)}
@media (max-width:860px){
  .s2-plat{grid-template-columns:1fr}
  .s2-plat__col{padding:28px 0 !important}
  .s2-plat__col:first-child{padding-top:0 !important}
  .s2-plat__col + .s2-plat__col{border-left:0;border-top:1px solid rgba(31,58,42,.16)}
}

/* How we handle paid ads: copy beside the TMG / ad partner split */
.s2-handle .pg-head{margin-bottom:0}
.s2-vs{max-width:none;margin:0}
.s2-vs .sx-vs__col{padding:8px clamp(18px,2.4vw,40px)}
.s2-vs .sx-vs__col:first-child{padding-left:0}
.s2-vs .pg-list{margin-top:16px}
.s2-vs--partner .sx-vs__when{color:#8DB8FF}
.s2-vs--partner .pg-list li::before{background-color:#8DB8FF}
@media (max-width:760px){ .s2-vs .sx-vs__col{padding:0} }

/* the dashboard picture, full bleed, with its words over a green shade */
.s2-bleed{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;min-height:clamp(420px,55vh,640px);color:#fff;background:var(--green-deep)}
.s2-bleed__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.s2-bleed__shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(19,38,26,.92) 0%,rgba(19,38,26,.7) 34%,rgba(19,38,26,0) 62%)}
.s2-bleed__in{position:relative;z-index:2}
.s2-bleed__in > *{max-width:470px}
.s2-bleed .eyebrow{color:var(--gold);font-size:clamp(.88rem,1.15vw,1.02rem);letter-spacing:.15em}
.s2-bleed .h2{margin-top:14px;font-size:clamp(1.85rem,4.2vw,3.2rem);line-height:1.04;color:#fff}
.s2-bleed p:not(.eyebrow){margin-top:16px;color:rgba(255,255,255,.86);line-height:1.6}
@media (max-width:767px){
  .s2-bleed{display:block;min-height:0}
  .s2-bleed__img{position:static;height:240px}
  .s2-bleed__shade{display:none}
  .s2-bleed__in{padding-top:36px;padding-bottom:44px}
}

/* a timeline with no stage label (the live steps have none) */
.sx-time__when:empty{display:none}
.sx-time__when:empty + h3{margin-top:18px}
@media (max-width:860px){ .sx-time__when:empty + h3{margin-top:10px} }

/* the page's own closing CTA, a light band just before the dusk scene */
.s2-close .pg-head{margin-bottom:0}
.s2-close .cta__row{margin-top:28px}

/* Custom Development: copy beside the built UI mockup */
.s2-intro{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
@media (max-width:860px){ .s2-intro{grid-template-columns:1fr} }
.s2-mockwrap{min-width:0}
.s2-stack{overflow-x:clip}
.s2-stack .tmg-stack{margin-top:6px}

/* recent builds: white cards on green, a gold label on top */
.s2-proof .pg-card p.s2-tag{display:inline-block;margin-bottom:14px;padding:6px 12px;border-radius:999px;background:#FBF3DF;color:#8A6618;
  font-family:var(--head);font-weight:700;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.2}

/* services hub: whole-card links */
.s2-svcs{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.s2-svc{display:flex;flex-direction:column;text-decoration:none}
.s2-svc p{flex:1}
.s2-svc .pg-link{margin-top:14px;min-height:0}
.s2-svc:hover .pg-link{color:#8A6618}
.s2-svc:hover .pg-link svg{transform:translateX(3px)}
#included .sx-callout{margin-top:clamp(28px,3.4vw,44px)}
#included .cta__row{margin-top:clamp(26px,3vw,36px)}
.s2-arw svg{width:16px;height:16px}
