/* ==========================================================================
   LocalThink — main stylesheet
   Colours, fonts, radius and spacing come from CSS variables that the
   Customizer sets in /inc/dynamic-css.php. Never hard-code a colour here.
   ========================================================================== */

/* ---------- 1. Reset & base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--lt-bg);color:var(--lt-body);
  font-family:var(--lt-font-body);font-size:var(--lt-fs-base);line-height:1.65;
  overflow-x:hidden;-webkit-font-smoothing:antialiased}
body{background-image:
  radial-gradient(900px 520px at 15% -5%,rgba(var(--lt-accent-rgb),.07),transparent 55%),
  radial-gradient(800px 480px at 90% 10%,rgba(var(--lt-accent-rgb),.04),transparent 55%)}
h1,h2,h3,h4,h5,h6{margin:0 0 .4em;color:var(--lt-ink);font-family:var(--lt-font-heading);
  font-weight:var(--lt-heading-weight);line-height:1.18;letter-spacing:-.02em}
h1{font-size:clamp(30px,5.2vw,var(--lt-fs-h1));line-height:1.1;letter-spacing:-.03em}
h2{font-size:clamp(26px,3.6vw,var(--lt-fs-h2));line-height:1.15;letter-spacing:-.025em}
h3{font-size:var(--lt-fs-h3);line-height:1.3}
h4{font-size:calc(var(--lt-fs-h3) * .82)}
p{margin:0 0 1em}
a{color:inherit;text-decoration:none}
a:hover{color:var(--lt-accent-ink)}
img,svg,video,iframe{display:block;max-width:100%;height:auto}
ul,ol{margin:0 0 1em;padding-left:1.2em}
figure{margin:0}
blockquote{margin:0 0 1em;padding-left:1em;border-left:3px solid var(--lt-accent)}
code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}
pre{background:var(--lt-ink);color:#fff;padding:16px;border-radius:var(--lt-radius);overflow:auto}
table{width:100%;border-collapse:collapse;margin-bottom:1em}
th,td{border:1px solid var(--lt-line);padding:10px 12px;text-align:left}
::selection{background:var(--lt-accent);color:#fff}
:focus-visible{outline:3px solid var(--lt-accent);outline-offset:3px}
section:focus,header:focus,footer:focus,div[id]:focus{outline:none}
[id]{scroll-margin-top:110px}

.wrap{max-width:var(--lt-width);margin:0 auto;padding:0 22px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--lt-ink);color:#fff;padding:14px 24px;z-index:9999;min-height:44px}
.skip-link:focus{left:8px;top:8px}

/* ---------- 2. Buttons & pills ---------- */
.pillbtn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  border-radius:var(--lt-radius-btn);padding:14px 32px;font-weight:500;font-size:15px;
  border:1px solid transparent;cursor:pointer;transition:.25s;text-align:center}
.pillbtn.small{padding:11px 24px;font-size:14px}
.pillbtn.full{width:100%}
.pillbtn.black{background:var(--lt-ink);color:#fff}
.pillbtn.black:hover{background:#000;color:#fff;transform:scale(1.04)}
.pillbtn.white{background:var(--lt-card);color:var(--lt-ink);border-color:var(--lt-line)}
.pillbtn.white:hover{background:var(--lt-accent-soft);color:var(--lt-ink);transform:scale(1.04)}
.pillbtn.accent{background:var(--lt-accent);color:#fff}
.pillbtn.accent:hover{background:var(--lt-accent-dark);color:#fff}
.pillbtn.wa{background:var(--lt-wa);color:#08120b}
/* White text needs the darker accent behind it to stay legible. */
.wp-block-button.pill.accent .wp-block-button__link{background:var(--lt-accent-dark);color:#fff}
.pillbtn.wa:hover{filter:brightness(.94);color:#08120b;transform:scale(1.04)}
.pill-lbl{display:inline-block;background:var(--lt-card);border-radius:99px;color:var(--lt-muted);
  font-weight:500;font-size:13px;padding:6px 18px;margin-bottom:16px;
  box-shadow:0 6px 24px rgba(23,23,28,.07)}

/* ---------- 3. Scroll reveal ---------- */
.rv{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}
/* Project rows arrive from the side their screenshot sits on. */
.rv.rv-l{transform:translate3d(-38px,14px,0)}
.rv.rv-r{transform:translate3d(38px,14px,0)}
.rv.rv-l.in,.rv.rv-r.in{transform:none}
@media(max-width:781px){.rv.rv-l,.rv.rv-r{transform:translateY(24px)}}

/* ---------- 4. Header ---------- */
.navwrap{display:flex;justify-content:center;padding:18px 16px;z-index:99;transition:padding .3s}
.navwrap.is-sticky{position:fixed;top:0;left:0;right:0}
/* Keep the fixed header clear of the WordPress admin bar when logged in. */
body.admin-bar .navwrap.is-sticky{top:32px}
@media screen and (max-width:782px){
  body.admin-bar .navwrap.is-sticky{top:46px}
}
@media screen and (max-width:600px){
  body.admin-bar .navwrap.is-sticky{top:0}
}
body.admin-bar [id]{scroll-margin-top:142px}
.navwrap.stuck{padding:10px 16px}
/* Grid, not flex: the two 1fr tracks size themselves to whichever menu is
   wider, so the logo stays dead centre and neither side can be squeezed
   into wrapping. */
.pillnav{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  gap:26px;padding:9px 30px;min-width:min(760px,100%);max-width:100%;
  background:var(--lt-card);border:1px solid var(--lt-line);border-radius:99px;
  box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.3s}
.navwrap.is-glass .pillnav{background:rgba(255,255,255,.82);backdrop-filter:blur(16px) saturate(160%)}
.navwrap.can-shrink.stuck .pillnav{padding:7px 36px;box-shadow:0 10px 34px rgba(23,23,28,.14);background:rgba(255,255,255,.95)}
.navwrap.style-bar .pillnav{border-radius:0;min-width:100%;max-width:none;box-shadow:none;border-left:0;border-right:0;border-top:0}
.navwrap.style-bar{padding:0}
.navwrap.style-pill_left .pn-brand{order:-1}
.navwrap.style-pill_left .pn-l{justify-content:flex-start}

.pn-l{display:flex;justify-content:center;min-width:0}
.pn-end{display:flex;align-items:center;justify-content:center;gap:10px;min-width:0}
.pn-r{display:flex;justify-content:center}
.pn-l .nav-list,.pn-r .nav-list{display:flex;gap:6px;list-style:none;margin:0;padding:0;flex-wrap:nowrap;justify-content:center}
.pn-l .nav-list > li > a,.pn-r .nav-list > li > a{white-space:nowrap}
.pn-l a,.pn-r a{display:block;padding:9px 16px;border-radius:99px;font-weight:500;font-size:14.5px;
  color:var(--lt-body);white-space:nowrap;transition:.22s}
.pn-l a:hover,.pn-r a:hover{color:var(--lt-ink);background:var(--lt-accent-soft)}
.pn-l .current-menu-item>a,.pn-r .current-menu-item>a{color:var(--lt-accent);background:var(--lt-accent-soft)}
/* --- dropdown menus --- */
.pn-l li,.pn-r li{position:relative}
.pn-l .menu-item-has-children>a,.pn-r .menu-item-has-children>a{padding-right:28px}
.pn-l .menu-item-has-children>a::after,.pn-r .menu-item-has-children>a::after{
  content:"";position:absolute;right:12px;top:50%;width:6px;height:6px;margin-top:-4px;
  border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;
  transform:rotate(45deg);opacity:.55;transition:.2s}
.pn-l li:hover>a::after,.pn-r li:hover>a::after{opacity:1;margin-top:-2px}
.sub-menu{position:absolute;top:100%;left:50%;z-index:120;list-style:none;margin:0;
  padding:8px;min-width:250px;transform:translateX(-50%) translateY(10px);
  background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:calc(var(--lt-radius) - 2px);box-shadow:0 18px 48px rgba(23,23,28,.16);
  opacity:0;visibility:hidden;pointer-events:none;transition:.22s cubic-bezier(.2,.7,.2,1)}
.pn-l li:hover>.sub-menu,.pn-r li:hover>.sub-menu,
.pn-l li:focus-within>.sub-menu,.pn-r li:focus-within>.sub-menu{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(6px)}
.sub-menu::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
.sub-menu li{width:100%}
.sub-menu a{display:flex;align-items:center;min-height:44px;padding:11px 15px;border-radius:12px;font-size:14px;
  text-align:left;white-space:normal;line-height:1.4}
.sub-menu a:hover{background:var(--lt-accent-soft);color:var(--lt-accent)}
.sub-menu .menu-item-has-children>a::after{display:none}

.pn-brand{display:flex;align-items:center;justify-content:center;gap:10px;flex:0 0 auto}
.pn-logo{display:flex;align-items:center;gap:9px;font-family:var(--lt-font-heading);
  font-weight:800;font-size:19px;color:var(--lt-ink);letter-spacing:-.02em;white-space:nowrap}
.pn-logo .mark{width:26px;height:26px;border-radius:8px;background:var(--lt-accent);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0}
.pn-logo .lt-2{color:var(--lt-accent)}
/* The global img rule sets max-width:100%. Inside a flex row whose siblings
   are flex:1, that percentage resolves against a container whose own width
   depends on the image - so the logo can collapse to nothing. Opt out of the
   percentage and drive the size from the Customizer instead. */
.custom-logo-link{display:flex;align-items:center;min-height:44px;line-height:0;flex:0 0 auto}
.custom-logo{display:block;width:auto;height:auto;max-width:var(--lt-logo-max-w);max-height:var(--lt-logo-h);object-fit:contain}
.navwrap.can-shrink.stuck .custom-logo{max-height:calc(var(--lt-logo-h) - 6px)}
.pn-logo.beside-image{font-family:var(--lt-font-heading);font-weight:800;font-size:18px;color:var(--lt-ink);letter-spacing:-.02em;white-space:nowrap}
.pn-logo.beside-image .lt-2{color:var(--lt-accent)}
@media(max-width:600px){
  .custom-logo{max-height:calc(var(--lt-logo-h) - 6px);max-width:150px}
  .pn-logo.beside-image{display:none}
}

.nav-cta{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--lt-wa);color:#08120b;
  border-radius:99px;padding:0 18px;min-height:40px;font-size:13.5px;font-weight:600;white-space:nowrap;
  flex-shrink:0;transition:.2s}
.nav-cta:hover{color:#08120b;filter:brightness(.95);transform:translateY(-1px)}
.nav-cta:focus-visible{outline:3px solid var(--lt-ink);outline-offset:2px}

.m-toggle{display:none;position:relative;width:44px;height:44px;padding:6px;background:none;border:0;cursor:pointer;
  margin-right:-6px}
.m-toggle i{position:absolute;left:12px;right:12px;height:2px;background:var(--lt-ink);border-radius:2px;transition:.3s}
.m-toggle i:nth-child(1){top:11px}
.m-toggle i:nth-child(2){top:16px}
.m-toggle i:nth-child(3){top:21px}
.m-toggle[aria-expanded="true"] i:nth-child(1){top:21px;transform:rotate(45deg)}
.m-toggle[aria-expanded="true"] i:nth-child(2){opacity:0}
.m-toggle[aria-expanded="true"] i:nth-child(3){top:21px;transform:rotate(-45deg)}

.m-menu{position:absolute;top:calc(100% + 12px);left:0;right:0;padding:12px;
  background:var(--lt-card);border:1px solid var(--lt-line);border-radius:22px;
  box-shadow:0 18px 48px rgba(23,23,28,.13);
  display:flex;flex-direction:column;gap:2px;
  opacity:0;transform:translateY(-10px) scale(.98);pointer-events:none;transition:.28s cubic-bezier(.2,.7,.2,1)}
.m-menu.open{opacity:1;transform:none;pointer-events:auto}
.m-menu .m-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.m-menu a{display:flex;align-items:center;min-height:48px;padding:12px 18px;border-radius:14px;font-weight:500;color:var(--lt-ink);font-size:15px;transition:.18s}
.m-menu a:hover{background:var(--lt-accent-soft);color:var(--lt-accent)}
.m-menu .sub-menu{position:static;opacity:1;visibility:visible;pointer-events:auto;
  transform:none;box-shadow:none;border:0;background:transparent;padding:0 0 0 12px;min-width:0}
.m-menu .sub-menu a{font-size:14px;padding:10px 18px;color:var(--lt-body)}
.m-menu .menu-item-has-children>a{font-weight:600}
.m-menu .m-cta{background:var(--lt-wa);color:#08120b;justify-content:center;margin-top:6px}
.m-menu .m-cta:hover{background:var(--lt-wa);color:#fff;filter:brightness(.95)}

body.has-sticky-header .site-content{padding-top:88px}
body.has-sticky-header .navwrap.style-bar+.site-content{padding-top:64px}

@media(max-width:1080px){
  .pillnav{display:flex;justify-content:space-between;min-width:0;width:100%;padding:8px 10px 8px 18px;gap:10px}
  .pn-l,.pn-r{display:none}
  .pn-end{flex:0 0 auto;justify-content:flex-end}
  .m-toggle{display:block}
}
@media(max-width:420px){.nav-cta span{display:none}.nav-cta{padding:0 12px;min-width:44px}}

/* ---------- 5. Floating buttons ---------- */
@keyframes lt-floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.float-btn{position:fixed;bottom:22px;z-index:90;width:54px;height:54px;
  display:flex;align-items:center;justify-content:center;border-radius:18px;
  animation:lt-floaty 3.4s ease-in-out infinite;transition:.3s}
.float-wa{right:20px;background:var(--lt-wa);box-shadow:0 0 22px rgba(37,211,102,.4)}
.float-wa:hover{transform:scale(1.18) translateY(-6px) rotate(6deg);box-shadow:0 0 34px rgba(37,211,102,.6)}
.float-ig{left:20px;animation-delay:.7s;box-shadow:0 0 22px rgba(225,48,108,.35);
  background:radial-gradient(120% 120% at 30% 110%,#FFD600 0%,#FF7A00 30%,#E1306C 60%,#833AB4 100%)}
.float-ig:hover{transform:scale(1.18) translateY(-6px) rotate(-6deg);box-shadow:0 0 34px rgba(225,48,108,.55)}
@media(max-width:600px){.float-btn{width:48px;height:48px;bottom:16px}.float-wa{right:14px}.float-ig{left:14px}}

/* ---------- 6. Hero ---------- */
.lt-hero{padding:calc(var(--lt-space) * .7) 0 calc(var(--lt-space) * .5);text-align:center;position:relative;
  background-image:linear-gradient(var(--lt-line) 1px,transparent 1px),linear-gradient(90deg,var(--lt-line) 1px,transparent 1px);
  background-size:56px 56px;background-position:center}
.lt-hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(72% 68% at 50% 38%,transparent 28%,var(--lt-bg) 92%)}
.lt-hero>.wrap{position:relative}

.heroshot{width:min(430px,84%);margin:0 auto -4px;position:relative}
.heroshot .frame{aspect-ratio:4/3;overflow:hidden;border:1px solid var(--lt-line);
  border-radius:calc(var(--lt-radius) + 6px) calc(var(--lt-radius) + 6px) var(--lt-radius) var(--lt-radius);
  background:var(--lt-accent-soft);display:flex;align-items:center;justify-content:center}
.heroshot .frame img{width:100%;height:100%;object-fit:cover;object-position:center top}
.heroshot::after{content:"";position:absolute;left:8%;right:8%;bottom:-10px;height:26px;filter:blur(6px);
  background:radial-gradient(50% 100% at 50% 0,rgba(23,23,28,.16),transparent 70%)}


.lt-hero h1{font-weight:700;max-width:19ch;margin:26px auto 14px}
.lt-hero h1 span{color:var(--lt-accent)}
.lt-hero .sub{max-width:52ch;margin:0 auto 30px;font-size:calc(var(--lt-fs-base) + 1px)}
.hero-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.avrow{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:22px;flex-wrap:wrap;font-size:14.5px}
.avrow p{margin:0}
.avrow b{color:var(--lt-accent);font-weight:700}
.avs{display:flex}
.avs span{width:30px;height:30px;margin-left:-8px;border-radius:50%;border:2px solid var(--lt-card);
  background:var(--lt-accent-soft);color:var(--lt-accent);
  display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}
.avs span:first-child{margin-left:0}

/* ---------- 7. Client strip ---------- */
@keyframes lt-marquee{to{transform:translateX(-50%)}}
.logostrip{padding:calc(var(--lt-space) * .32) 0;overflow:hidden;background:var(--lt-card);
  border-top:1px solid var(--lt-line);border-bottom:1px solid var(--lt-line)}
.ls-title{margin:0 0 14px;text-align:center;font-size:12px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--lt-muted)}
.ls-viewport{position:relative;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ls-track{display:flex;width:max-content;align-items:center;animation:lt-marquee 34s linear infinite}
.ls-name{padding:0 34px;font-weight:700;font-size:17px;color:var(--lt-muted);opacity:.6;white-space:nowrap}
.ls-name:nth-child(3n+2){font-style:italic;font-weight:500}
.ls-logo{display:flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0 30px}
.ls-logo img{width:auto;height:auto;max-width:150px;max-height:46px;object-fit:contain;
  filter:grayscale(1);opacity:.6;transition:.25s}
.ls-logo:hover img{filter:none;opacity:1}
@media(max-width:600px){.ls-logo{padding:0 20px}.ls-logo img{max-width:110px;max-height:36px}}

/* ---------- 8. Section rhythm ---------- */
section{padding-block:calc(var(--lt-space) * .5);text-align:center}
.lt-faq{padding-bottom:var(--lt-space)}
.sec-h h2{margin-bottom:40px}
.sec-h h2 span{color:var(--lt-accent)}

/* ---------- 9. Services cards ---------- */
.feat-grid{display:grid;grid-auto-rows:1fr;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:34px;
  max-width:980px;margin:0 auto;text-align:left;align-items:stretch}
.feat{display:flex;flex-direction:column;padding:18px;background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:var(--lt-radius);box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.3s}
.feat p{flex:1}
.feat:hover{box-shadow:0 18px 48px rgba(23,23,28,.13);transform:translateY(-5px)}
.feat .vis{aspect-ratio:16/10;margin-bottom:16px;overflow:hidden;
  border-radius:calc(var(--lt-radius) - 6px);background:var(--lt-accent-soft);
  display:flex;align-items:center;justify-content:center}
.feat .vis img{width:100%;height:100%;object-fit:cover}
.feat h3{margin:0 0 6px;padding:0 6px}
.feat p{font-size:14px;padding:0 6px;margin-bottom:6px}
.feat .go{display:inline-block;padding:0 6px 6px;font-size:13.5px;font-weight:600;color:var(--lt-accent)}

/* ---------- 10. Video band ---------- */
.grain{position:relative;padding:var(--lt-space) 22px;overflow:hidden;
  background:#0E0C14;text-align:center}
.grain.style-grain::before{content:"";position:absolute;inset:-20%;
  background:radial-gradient(48% 42% at 50% 78%,rgba(255,168,76,.55),rgba(191,90,242,.28) 45%,transparent 70%),
             radial-gradient(70% 60% at 50% 110%,rgba(var(--lt-accent-rgb),.35),transparent 70%)}
.grain.style-grain::after{content:"";position:absolute;inset:0;opacity:.5;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E")}
.grain.style-flat{background:var(--lt-dark)}
.grain.style-light{background:var(--lt-accent-soft)}
.grain.style-light h2{color:var(--lt-ink)}
.grain h2{position:relative;z-index:2;color:#fff;margin-bottom:30px}
.vidbox{position:relative;z-index:2;max-width:760px;margin:0 auto;aspect-ratio:16/9;
  overflow:hidden;border-radius:var(--lt-radius);background:#000;
  box-shadow:0 30px 80px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center}
.vidbox iframe{width:100%;height:100%;border:0}
.vid-empty{color:#8a8a94;font-size:14px;padding:20px;text-align:center}

/* ---------- 11. Projects ---------- */
.proj-grid{display:grid;grid-auto-rows:1fr;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px;align-items:stretch;
  max-width:1040px;margin:0 auto;text-align:left}
.proj{display:flex;flex-direction:column;padding:14px;background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:var(--lt-radius);box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.3s}
.proj:hover{box-shadow:0 18px 48px rgba(23,23,28,.13);transform:translateY(-6px)}
.proj .shot{aspect-ratio:16/10;margin-bottom:14px;overflow:hidden;position:relative;
  border:1px solid var(--lt-line);border-radius:calc(var(--lt-radius) - 6px);background:var(--lt-accent-soft)}
.proj .shot img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .6s}
.proj:hover .shot img{transform:scale(1.05)}
.proj .tag{display:inline-block;margin:0 4px 8px;padding:3px 10px;border-radius:99px;
  background:var(--lt-accent-soft);color:var(--lt-accent);
  font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.proj h3{font-size:calc(var(--lt-fs-h3) * .94);margin:0 0 4px;padding:0 4px}
.proj p{font-size:13px;padding:0 4px;margin-bottom:6px;flex:1}
.proj .go{display:block;padding:0 4px 4px;margin-top:auto;font-size:13px;font-weight:600;color:var(--lt-accent)}
.viewall{margin-top:34px}
.viewall a{display:inline-block;padding:10px 26px;border:1px solid var(--lt-ink);
  border-radius:var(--lt-radius-btn);font-size:14px;font-weight:500;color:var(--lt-ink);transition:.2s}
.viewall a:hover{background:var(--lt-ink);color:#fff}
.pagination-wrap{margin-top:34px;display:flex;justify-content:center;gap:8px}
.pagination-wrap .page-numbers{padding:8px 14px;border-radius:99px;border:1px solid var(--lt-line);background:var(--lt-card)}
.pagination-wrap .page-numbers.current{background:var(--lt-accent);color:#fff;border-color:var(--lt-accent)}


/* ---------- Work: showcase rows ---------- */
.show-list{display:flex;flex-direction:column;gap:calc(var(--lt-space) * .75)}
.show-row{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center;text-align:left}
.show-row.flip .show-shot{order:2}

.show-shot{min-width:0}
.shot-frame{position:relative;padding:18px;border-radius:calc(var(--lt-radius) + 6px);
  background:var(--lt-accent-soft);overflow:hidden}
.shot-frame img{width:100%;height:auto;display:block;border-radius:calc(var(--lt-radius) - 4px);
  box-shadow:0 14px 40px rgba(23,23,28,.14);transition:transform .5s}
.show-row:hover .shot-frame img{transform:translateY(-4px)}
.shot-bar{display:block;margin-bottom:14px;padding:11px 16px;border-radius:calc(var(--lt-radius) - 6px);
  background:var(--lt-card);border:1px solid var(--lt-line);
  font-family:var(--lt-font-heading);font-weight:700;font-size:14px;color:var(--lt-ink);
  letter-spacing:-.01em;text-align:center}
.shot-empty{display:flex;align-items:center;justify-content:center;min-height:220px;
  border:1px dashed var(--lt-line);border-radius:calc(var(--lt-radius) - 4px);
  background:var(--lt-card);color:var(--lt-muted);font-size:13px;text-align:center;padding:20px}

.show-body{min-width:0}
.show-body h3{font-size:clamp(23px,3.1vw,calc(var(--lt-fs-h2) * .8));line-height:1.15;letter-spacing:-.03em;margin-bottom:22px}
.show-points{list-style:none;margin:0 0 26px;padding:0;display:flex;flex-direction:column;gap:14px}
.show-points li{display:flex;gap:14px;align-items:flex-start}
.show-points .p-num{flex:0 0 auto;width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  border-radius:10px;background:var(--lt-accent-soft);color:var(--lt-accent);
  font-family:var(--lt-font-heading);font-weight:700;font-size:13px;letter-spacing:.02em}
.show-points .p-text{padding-top:6px;font-size:16px;line-height:1.55;color:var(--lt-ink)}
.show-text{font-size:16px;margin-bottom:26px}
.show-body .pillbtn{padding:14px 30px}

@media(max-width:900px){
  .show-row,.show-row.flip{grid-template-columns:1fr;gap:22px}
  .show-row .show-shot,.show-row.flip .show-shot{order:-1}
  .show-row .show-body,.show-row.flip .show-body{order:0}
  .show-body h3{margin-bottom:18px}
  .show-points .p-text{font-size:15px}
}
@media(max-width:520px){
  .shot-frame{padding:12px}
  .show-points .p-num{width:32px;height:32px;font-size:12px}
  .show-points .p-text{padding-top:5px}
}

/* ---------- 12. Moving band ---------- */
.blackband{overflow:hidden;background:var(--lt-dark)}
.bb-track{display:flex;width:max-content;padding:18px 0;animation:lt-marquee 22s linear infinite}
.bb-track span{padding:0 24px;color:#fff;font-weight:700;font-size:20px;letter-spacing:.04em;white-space:nowrap}
.bb-track span i{font-style:normal;color:var(--lt-accent)}

/* ---------- 13. Pricing ---------- */
.price-card{max-width:760px;margin:0 auto;overflow:hidden;text-align:left;
  background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:calc(var(--lt-radius) + 4px);box-shadow:0 18px 48px rgba(23,23,28,.13)}
.price-top{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;
  padding:28px 32px;border-bottom:1px solid var(--lt-line)}
.price-top .big{font-size:clamp(21px,3vw,29px);font-weight:700;color:var(--lt-ink);font-family:var(--lt-font-heading)}
.price-top .big span{color:var(--lt-accent)}
.p-row{display:flex;justify-content:space-between;gap:14px;padding:15px 32px;
  border-bottom:1px solid var(--lt-line);font-size:14.5px}
.p-row b{color:var(--lt-ink);font-weight:600}
.p-row span{color:var(--lt-muted);white-space:nowrap}
.p-foot{padding:14px 32px 22px;font-size:12.5px;color:var(--lt-muted)}
@media(max-width:600px){
  .price-top,.p-row,.p-foot{padding-left:20px;padding-right:20px}
  .p-row{flex-direction:column;gap:2px}
  .p-row span{white-space:normal}
}

/* ---------- 14. Reviews ---------- */
.rev-grid{display:grid;grid-auto-rows:1fr;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:24px;align-items:stretch;
  max-width:1040px;margin:0 auto;text-align:left}
.rev{display:flex;flex-direction:column;padding:24px;background:var(--lt-card);
  border:1px solid var(--lt-line);border-radius:var(--lt-radius);
  box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.3s;margin:0}
.rev:hover{box-shadow:0 18px 48px rgba(23,23,28,.13);transform:translateY(-5px)}
.rev .stars{margin-bottom:12px;color:var(--lt-star);letter-spacing:3px;font-size:15px}
.rev blockquote{flex:1;margin:0 0 18px;padding:0;border:0;font-size:14.5px;color:var(--lt-ink);line-height:1.7}
.rev figcaption{display:flex;align-items:center;gap:12px;padding-top:14px;border-top:1px solid var(--lt-line)}
.rev .av{width:38px;height:38px;flex-shrink:0;border-radius:50%;overflow:hidden;
  background:var(--lt-accent-soft);color:var(--lt-accent);
  display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}
.rev .av img{width:100%;height:100%;object-fit:cover}
.rev figcaption b{display:block;font-size:14px;color:var(--lt-ink);font-weight:600}
.rev figcaption small{font-size:12px;color:var(--lt-muted)}

/* ---------- 15. Team ---------- */
.team-grid{display:grid;grid-auto-rows:1fr;justify-content:center;gap:28px;
  grid-template-columns:repeat(auto-fit,minmax(220px,290px))}
.tcard{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:calc(var(--lt-radius) + 2px);
  background:var(--lt-accent-soft);box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.4s}
.tcard:hover{box-shadow:0 18px 48px rgba(23,23,28,.13)}
.tcard img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .7s}
.tcard:hover img{transform:scale(1.07)}
.plate{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);width:84%;padding:11px;
  text-align:center;border-radius:14px;background:rgba(255,255,255,.84);backdrop-filter:blur(9px);
  border:1px solid rgba(255,255,255,.5);box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.3s}
.tcard:hover .plate{transform:translate(-50%,-8px)}
.plate h3{font-size:calc(var(--lt-fs-h3) * .9);margin:0}
.plate p{margin:0;font-size:12px;color:var(--lt-body);font-weight:500}
.team-note{margin-top:22px;font-size:13.5px;color:var(--lt-muted)}

/* ---------- 16. FAQ ---------- */
.lt-faq{padding-bottom:var(--lt-space);
  background:linear-gradient(180deg,transparent,var(--lt-accent-soft) 130%)}
.faq-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:44px;max-width:1020px;margin:0 auto;text-align:left}
.faq-grid h2{margin-bottom:0}
.qa{margin-bottom:14px;overflow:hidden;background:var(--lt-card);
  border:1px solid var(--lt-line);border-radius:calc(var(--lt-radius) - 6px);
  box-shadow:0 6px 24px rgba(23,23,28,.07)}
.qa summary{display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:15px 18px;cursor:pointer;list-style:none;font-weight:500;color:var(--lt-ink);font-size:14.5px}
.qa summary::-webkit-details-marker{display:none}
.qa summary .q{display:flex;align-items:center;gap:12px}
.qa summary .barr{width:4px;height:20px;flex-shrink:0;border-radius:99px;background:var(--lt-ink)}
.qa[open] summary .barr{background:var(--lt-accent)}
.qa summary .chev{flex-shrink:0;color:var(--lt-muted);transition:.3s}
.qa[open] summary .chev{transform:rotate(180deg)}
.qa .ans{padding:0 18px 16px 34px;font-size:13.5px}
@media(max-width:820px){.faq-grid{grid-template-columns:1fr;gap:20px}}

/* ---------- 17. Final CTA ---------- */
.lt-cta{padding:var(--lt-space) 0;background:var(--lt-dark);color:#b9b9c4}
.lt-cta h2{color:#fff;margin-bottom:14px}
.lt-cta p{max-width:52ch;margin:0 auto 28px}
.cta-phone{display:block;margin-top:18px;font-size:13.5px;color:#8a8a94}
.cta-phone a{display:inline-block;padding:11px 4px;color:#fff;border-bottom:1px solid rgba(255,255,255,.3)}

/* ---------- 18. Footer ---------- */
.site-footer{padding:calc(var(--lt-space) * .8) 0 0;overflow:hidden;
  background:var(--lt-card);border-top:1px solid var(--lt-line)}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:44px;margin-bottom:40px;text-align:left}
.f-col h4{margin-bottom:12px;font-size:14px;font-weight:500;color:var(--lt-muted)}
.f-col a{display:block;padding:9px 0;font-size:14px;color:var(--lt-ink);min-height:40px;line-height:22px}
.f-col a:hover{color:var(--lt-accent-ink)}
.f-list,.legal-list{list-style:none;margin:0;padding:0}
.f-mail{font-weight:600}
.f-phone,.f-mail{min-height:40px;display:flex;align-items:center}
.f-address{margin-top:8px;font-size:13.5px;color:var(--lt-muted)}
.wa-form{display:flex;align-items:center;max-width:400px;margin-top:16px;padding:5px;
  background:var(--lt-card);border:1px solid var(--lt-line);border-radius:99px;
  box-shadow:0 6px 24px rgba(23,23,28,.07)}
.wa-form span{flex:1;padding:10px 16px;font-size:13.5px;color:var(--lt-muted)}
.wa-form a{padding:11px 22px;border-radius:99px;background:var(--lt-ink);color:#fff;
  font-size:13.5px;font-weight:600;white-space:nowrap;transition:.2s}
.wa-form a:hover{background:#000;color:#fff}
.socials{display:flex;gap:10px;margin-top:18px}
.socials a{width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--lt-line);border-radius:12px;color:var(--lt-muted);transition:.18s;padding:0}
.socials a:hover{color:var(--lt-accent);border-color:var(--lt-accent);transform:translateY(-2px)}
.f-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  padding:20px 0;border-top:1px solid var(--lt-line);font-size:12.5px;color:var(--lt-muted)}
.legal-list{display:flex;gap:16px;flex-wrap:wrap}
.legal-list a{display:flex;align-items:center;justify-content:center;min-height:40px;min-width:44px;padding-inline:4px}
.giant{width:100%;padding-top:10px;text-align:center;user-select:none;
  font-family:var(--lt-font-heading);font-weight:600;line-height:1;letter-spacing:.02em;
  font-size:clamp(52px,13vw,150px);transform:scaleY(1.15);transform-origin:bottom center;
  background:linear-gradient(180deg,var(--lt-line) 0%,var(--lt-bg) 110%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
@media(max-width:760px){.f-grid{grid-template-columns:1fr;gap:28px}}


/* ---------- Numbers band ---------- */
.statsband{padding:calc(var(--lt-space) * .85) 0;background:var(--lt-dark);color:#b9b9c4}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.stats-grid.count-1{grid-template-columns:1fr}
.stats-grid.count-2{grid-template-columns:repeat(2,1fr)}
.stats-grid.count-3{grid-template-columns:repeat(3,1fr)}
.statsband .stat{padding:12px 8px;position:relative}
.statsband .stat+.stat::before{content:"";position:absolute;left:0;top:18%;bottom:18%;
  width:1px;background:rgba(255,255,255,.12)}
.statsband .stat b{display:block;font-family:var(--lt-font-heading);font-weight:800;
  color:#fff;letter-spacing:-.03em;line-height:1;font-size:clamp(28px,4.4vw,50px)}
.statsband .stat span{display:block;margin-top:10px;font-size:12.5px;letter-spacing:.1em;
  text-transform:uppercase;color:#8f8f9c}
@media(max-width:760px){
  .stats-grid,.stats-grid.count-3,.stats-grid.count-4{grid-template-columns:repeat(2,1fr);gap:26px 12px}
  .statsband .stat:nth-child(odd)+.stat::before{top:22%;bottom:22%}
  .statsband .stat:nth-child(3)::before{display:none}
}

/* ---------- How we work ---------- */
.lt-process .steps{list-style:none;margin:0;padding:0;display:grid;grid-auto-rows:1fr;gap:22px;
  grid-template-columns:repeat(4,1fr);text-align:left;counter-reset:none}
.lt-process .steps.count-1{grid-template-columns:1fr}
.lt-process .steps.count-2{grid-template-columns:repeat(2,1fr)}
.lt-process .steps.count-3{grid-template-columns:repeat(3,1fr)}
.lt-process .step{position:relative;display:flex;flex-direction:column;padding:26px 22px;background:var(--lt-card);
  border:1px solid var(--lt-line);border-radius:var(--lt-radius);
  box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.3s}
.lt-process .step:hover{transform:translateY(-5px);box-shadow:0 18px 48px rgba(23,23,28,.13)}
.lt-process .s-num{display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;margin-bottom:14px;border-radius:11px;
  background:var(--lt-accent-soft);color:var(--lt-accent-ink);
  font-family:var(--lt-font-heading);font-weight:800;font-size:13.5px}
.lt-process .step h3{font-size:calc(var(--lt-fs-h3) * .94);margin-bottom:6px}
.lt-process .step p{font-size:13.5px;margin:0;flex:1}
@media(max-width:900px){.lt-process .steps,.lt-process .steps.count-3,.lt-process .steps.count-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.lt-process .steps,.lt-process .steps.count-2,.lt-process .steps.count-3,.lt-process .steps.count-4{grid-template-columns:1fr}}

/* ---------- Add-ons ---------- */
.addon-grid{display:grid;grid-auto-rows:1fr;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;align-items:stretch;
  max-width:900px;margin:0 auto;text-align:left}

/* ---------- Project filters ---------- */
.work-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin:-18px 0 34px}
.wf{display:inline-flex;align-items:center;min-height:44px;border:1px solid var(--lt-line);background:var(--lt-card);color:var(--lt-body);
  border-radius:var(--lt-radius-btn);padding:0 22px;font-family:inherit;font-size:13.5px;
  font-weight:600;cursor:pointer;transition:.2s}
.wf:hover{border-color:var(--lt-accent);color:var(--lt-accent)}
.wf.on{background:var(--lt-ink);border-color:var(--lt-ink);color:#fff}
.proj.is-hidden{display:none}

/* ---------- Milestone timeline ---------- */
.lt-milestones .timeline{list-style:none;margin:0 auto;padding:0;max-width:720px;text-align:left;position:relative}
.lt-milestones .timeline::before{content:"";position:absolute;left:7px;top:10px;bottom:10px;
  width:2px;background:var(--lt-line)}
.tl-item{position:relative;padding:0 0 30px 40px}
.tl-item:last-child{padding-bottom:0}
.tl-dot{position:absolute;left:0;top:5px;width:16px;height:16px;border-radius:50%;
  background:var(--lt-card);border:3px solid var(--lt-accent);z-index:1}
.tl-year{display:block;font-family:var(--lt-font-heading);font-weight:800;
  font-size:19px;color:var(--lt-ink);letter-spacing:-.02em;margin-bottom:3px}
.tl-item p{margin:0;font-size:14.5px}
.about-thumb{margin-bottom:32px}

/* ---------- 19. Inner pages ---------- */
.page-head{padding:52px 0 0;text-align:center}
.page-head h1{font-size:clamp(28px,4.4vw,var(--lt-fs-h2));line-height:1.15}
.page-head .page-sub{max-width:60ch;margin:0 auto;color:var(--lt-muted)}
.content-area{display:grid;grid-template-columns:1fr;gap:44px;padding-top:40px}
.content-area.has-sidebar{grid-template-columns:minmax(0,1fr) 300px}
@media(max-width:900px){.content-area.has-sidebar{grid-template-columns:1fr}}
.site-main{min-width:0}
.entry-content{max-width:74ch}
.entry-content h2{margin-top:1.6em;font-size:clamp(21px,2.6vw,28px)}
.entry-content h3{margin-top:1.4em;font-size:clamp(18px,2.2vw,22px)}
.entry-content ul,.entry-content ol{padding-left:1.3em}
.entry-content li{margin-bottom:.4em}
.entry-content a{color:var(--lt-accent-ink);text-decoration:underline;text-underline-offset:3px}
.entry-content img{border-radius:var(--lt-radius)}
.page-article,.single-post{text-align:left}
.single-head{margin-bottom:24px;text-align:left}
.single-head h1{font-size:clamp(26px,4vw,42px)}
.single-thumb{margin:0 0 28px;border-radius:var(--lt-radius);overflow:hidden}
.post-meta{display:flex;gap:10px;font-size:13px;color:var(--lt-muted)}
.entry-tags{margin-top:24px;font-size:13px}
.entry-tags a{display:inline-block;margin:0 6px 6px 0;padding:4px 12px;border-radius:99px;
  background:var(--lt-accent-soft);color:var(--lt-accent);font-size:12px}
.post-navigation{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:36px;padding-top:24px;border-top:1px solid var(--lt-line);font-size:14px}
.post-navigation span{display:block;font-size:12px;color:var(--lt-muted)}

/* blog grid */
.post-grid{display:grid;gap:28px;text-align:left}
.post-grid.layout-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.post-grid.layout-list{grid-template-columns:1fr}
.post-card{padding:14px;background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:var(--lt-radius);box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.3s}
.post-card:hover{box-shadow:0 18px 48px rgba(23,23,28,.13);transform:translateY(-5px)}
.pc-thumb{display:block;aspect-ratio:16/10;margin-bottom:14px;overflow:hidden;
  border-radius:calc(var(--lt-radius) - 6px);background:var(--lt-accent-soft)}
.pc-thumb img{width:100%;height:100%;object-fit:cover}
.pc-body{padding:0 6px 8px}
.pc-body .tag{display:inline-block;margin-bottom:8px;padding:3px 10px;border-radius:99px;
  background:var(--lt-accent-soft);color:var(--lt-accent);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.pc-title{font-size:var(--lt-fs-h3);margin:0 0 6px}
.pc-body p{margin:8px 0 10px;font-size:14px}
.pc-body .go{font-size:13px;font-weight:600;color:var(--lt-accent)}
.posts-navigation,.pagination{margin-top:34px;display:flex;justify-content:center;gap:8px}
.pagination .page-numbers{padding:8px 14px;border-radius:99px;border:1px solid var(--lt-line);background:var(--lt-card)}
.pagination .page-numbers.current{background:var(--lt-accent);color:#fff;border-color:var(--lt-accent)}

/* sidebar & widgets */
.site-sidebar{text-align:left}
.widget{margin-bottom:26px;padding:20px;background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:var(--lt-radius)}
.widget-title{margin-bottom:12px;font-size:15px}
.widget ul{list-style:none;margin:0;padding:0}
.widget li{padding:6px 0;border-bottom:1px solid var(--lt-line);font-size:14px}
.widget li:last-child{border-bottom:0}

/* search form */
.search-form{display:flex;gap:8px;max-width:420px;margin-top:16px}
.search-field{flex:1;padding:12px 16px;border:1px solid var(--lt-line);border-radius:var(--lt-radius-btn);
  background:var(--lt-card);color:var(--lt-ink);font-family:inherit;font-size:14px}
.search-submit{padding:12px 22px;border:0;border-radius:var(--lt-radius-btn);
  background:var(--lt-ink);color:#fff;font-family:inherit;font-weight:600;font-size:14px;cursor:pointer}
.search-submit:hover{background:var(--lt-accent)}

/* comments */
.comments-area{margin-top:44px;padding-top:28px;border-top:1px solid var(--lt-line);text-align:left}
.comment-list{list-style:none;margin:0;padding:0}
.comment-list li{padding:16px 0;border-bottom:1px solid var(--lt-line)}
.comment-list .children{list-style:none;padding-left:24px}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{
  width:100%;padding:12px 16px;margin-bottom:12px;border:1px solid var(--lt-line);
  border-radius:calc(var(--lt-radius) - 8px);background:var(--lt-card);font-family:inherit;font-size:14px}
.comment-form .submit{padding:13px 28px;border:0;border-radius:var(--lt-radius-btn);
  background:var(--lt-ink);color:#fff;font-family:inherit;font-weight:600;cursor:pointer}
.comment-form .submit:hover{background:var(--lt-accent)}

/* 404 */
.error-404{padding:80px 22px;text-align:center}
.big-404{display:block;font-family:var(--lt-font-heading);font-weight:800;line-height:1;
  font-size:clamp(80px,18vw,180px);color:var(--lt-accent-soft)}
.error-404 h1{margin-top:-10px}
.error-404 .search-form{margin:26px auto 0}
.no-results{text-align:center;padding:40px 0}
.no-results .search-form{margin:20px auto 0}

/* legal / contact / full-width templates */
.legal-page{padding-top:40px;max-width:820px}
.legal-content{max-width:none}
.legal-content h2{padding-top:.4em;font-size:clamp(19px,2.4vw,24px)}
.legal-contact{margin-top:36px;padding:22px 24px;background:var(--lt-accent-soft);
  border-radius:var(--lt-radius);text-align:left}
.legal-contact h3{margin-bottom:6px;font-size:17px}
.legal-contact p{margin:0}
.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:44px;padding-top:40px;text-align:left}
@media(max-width:900px){.contact-layout{grid-template-columns:1fr}}
.contact-card{padding:26px;background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:var(--lt-radius);box-shadow:0 6px 24px rgba(23,23,28,.07);height:fit-content}
.contact-card h3{font-size:18px;margin-bottom:16px}
.contact-list{list-style:none;margin:18px 0 0;padding:0}
.contact-list li{padding:12px 0;border-bottom:1px solid var(--lt-line);font-size:14px}
.contact-list li:last-child{border-bottom:0}
.contact-list span{display:block;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--lt-muted)}
.full-width-page{padding-top:20px}
.full-width-page .entry-content{max-width:none}
.page-intro{margin-bottom:36px}

/* alignment helpers for the block editor */
.alignwide{max-width:min(1200px,92vw);margin-left:auto;margin-right:auto}
.alignfull{max-width:none;width:100vw;margin-left:calc(50% - 50vw)}
.alignleft{float:left;margin:0 1.5em 1em 0}
.alignright{float:right;margin:0 0 1em 1.5em}
.aligncenter{margin-left:auto;margin-right:auto;display:block}

/* ---------- 20. Motion preferences ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rv{opacity:1!important;transform:none!important}
}

/* ---------- 21. Print ---------- */
@media print{
  .navwrap,.float-btn,.blackband,.logostrip,.lt-cta,.site-footer,.grain{display:none!important}
  body{background:#fff;color:#000}
}

/* ==========================================================================
   BLOCK EDITOR SUPPORT
   The same section designs, driven by core WordPress blocks, so every
   section can be edited visually instead of in raw HTML. Each rule pairs
   our own class with the core block class the editor produces.
   ========================================================================== */

/* --- Columns used as our grids --- */
.wp-block-columns.feat-grid,
.wp-block-columns.stats-grid,
.wp-block-columns.addon-grid,
.wp-block-columns.team-grid,
.wp-block-columns.steps{display:flex;flex-wrap:wrap;align-items:stretch;margin:0}
.wp-block-columns.feat-grid{gap:34px;max-width:980px;margin-inline:auto}
.wp-block-columns.addon-grid{gap:22px;max-width:900px;margin-inline:auto}
.wp-block-columns.steps{gap:22px}
.wp-block-columns.team-grid{gap:28px;justify-content:center}
.wp-block-columns.stats-grid{gap:20px}
.wp-block-column.feat,.wp-block-column.addon,.wp-block-column.step,
.wp-block-column.tcard,.wp-block-column.stat{flex-basis:0;flex-grow:1;min-width:0}

/* --- Service cards as blocks --- */
.wp-block-column.feat{padding:18px 18px 22px;background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:var(--lt-radius);box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.3s;text-align:left}
.wp-block-column.feat:hover{box-shadow:0 18px 48px rgba(23,23,28,.13);transform:translateY(-5px)}
.wp-block-column.feat figure,.wp-block-column.feat .wp-block-image{margin:0 0 16px}
.wp-block-column.feat img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:center top;
  border-radius:calc(var(--lt-radius) - 6px);background:var(--lt-accent-soft)}
.wp-block-column.feat :is(h2,h3,h4){display:flex;align-items:flex-start;
  min-height:2.5em;margin:0 0 6px;padding:0 6px;line-height:1.25}
.wp-block-column.feat p{font-size:14px;padding:0 6px;margin:0;flex:1}

/* --- Numbers band as blocks --- */
.statsband .wp-block-column.stat{padding:12px 8px;text-align:center;position:relative}
.statsband .wp-block-column.stat+.stat::before{content:"";position:absolute;left:-10px;top:18%;bottom:18%;
  width:1px;background:rgba(255,255,255,.12)}
.statsband .wp-block-column.stat :is(h2,h3,h4){margin:0;color:#fff;
  font-family:var(--lt-font-heading);font-weight:800;letter-spacing:-.03em;line-height:1;
  font-size:clamp(28px,4.4vw,50px)}
.statsband .wp-block-column.stat p{margin:10px 0 0;font-size:12.5px;letter-spacing:.1em;
  text-transform:uppercase;color:#8f8f9c}

/* --- Process steps as blocks --- */
.wp-block-column.step{position:relative;padding:26px 22px;background:var(--lt-card);
  border:1px solid var(--lt-line);border-radius:var(--lt-radius);
  box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.3s;text-align:left}
.wp-block-column.step:hover{transform:translateY(-5px);box-shadow:0 18px 48px rgba(23,23,28,.13)}
.wp-block-column.step :is(h2,h3,h4){margin:0 0 6px;font-size:calc(var(--lt-fs-h3) * .94)}
.wp-block-column.step :is(h2,h3,h4)::before{content:counter(lt-step,decimal-leading-zero);counter-increment:lt-step;
  display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin-bottom:14px;
  border-radius:11px;background:var(--lt-accent-soft);color:var(--lt-accent);
  font-family:var(--lt-font-heading);font-weight:800;font-size:13.5px}
.wp-block-columns.steps{counter-reset:lt-step}
.wp-block-column.step p{margin:0;font-size:13.5px}

/* --- Add-ons as blocks --- */
.wp-block-column.addon{display:grid;grid-template-columns:auto minmax(0,1fr);
  column-gap:16px;row-gap:5px;align-content:start;padding:24px;
  background:var(--lt-accent-soft);border:1px solid var(--lt-line);
  border-radius:var(--lt-radius);transition:.3s;text-align:left}
.wp-block-column.addon:hover{transform:translateY(-4px);box-shadow:0 18px 48px rgba(23,23,28,.10)}
.wp-block-column.addon::before{content:"+";grid-column:1;grid-row:1 / span 2;
  display:flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:50%;background:var(--lt-accent-dark);color:#fff;font-size:20px;
  font-weight:600;line-height:1}
.wp-block-column.addon > h2,.wp-block-column.addon > h3,.wp-block-column.addon > h4{
  grid-column:2;grid-row:1;margin:0;font-size:calc(var(--lt-fs-h3) * .94);line-height:1.25}
.wp-block-column.addon > p{grid-column:2;grid-row:2;margin:0;font-size:13.5px}
/* a third or later paragraph simply continues in the text column */
.wp-block-column.addon > p ~ p{grid-row:auto}

/* --- Team cards as blocks --- */
.wp-block-column.tcard{position:relative;max-width:290px;border-radius:calc(var(--lt-radius) + 2px);
  overflow:hidden;box-shadow:0 6px 24px rgba(23,23,28,.07);background:var(--lt-accent-soft);transition:.4s}
.wp-block-column.tcard figure,.wp-block-column.tcard .wp-block-image{margin:0}
.wp-block-column.tcard img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center top;transition:transform .7s;display:block}
.wp-block-column.tcard:hover img{transform:scale(1.07)}
.wp-block-column.tcard .plate{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);width:84%;
  padding:11px;text-align:center;border-radius:14px;background:rgba(255,255,255,.84);
  backdrop-filter:blur(9px);border:1px solid rgba(255,255,255,.5);box-shadow:0 6px 24px rgba(23,23,28,.07)}
.wp-block-column.tcard .plate :is(h2,h3,h4){margin:0;font-size:calc(var(--lt-fs-h3) * .9)}
.wp-block-column.tcard .plate p{margin:0;font-size:12px;font-weight:500;color:var(--lt-body)}

/* --- Work showcase as blocks --- */
.wp-block-columns.show-row{gap:52px;align-items:center;margin-bottom:calc(var(--lt-space) * .75)}
.wp-block-columns.show-row:last-child{margin-bottom:0}
/* The screenshot sits in a browser window rather than a padded box. */
.wp-block-column.show-shot{position:relative;padding:0;background:var(--lt-card);
  border:1px solid var(--lt-line);border-radius:calc(var(--lt-radius) + 2px);
  overflow:hidden;box-shadow:0 18px 50px rgba(23,23,28,.13);transition:.35s}
.wp-block-columns.show-row:hover .wp-block-column.show-shot{
  transform:translateY(-4px);box-shadow:0 28px 70px rgba(23,23,28,.18)}
.wp-block-column.show-shot figure,.wp-block-column.show-shot .wp-block-image{margin:0}
.wp-block-column.show-shot img{width:100%;height:auto;display:block;
  border-radius:0;box-shadow:none}

/* window title bar with the three dots */
.show-shot .shot-bar{display:block;position:relative;margin:0;
  padding:13px 18px 13px 74px;text-align:left;
  background:linear-gradient(180deg,#fbfbfe,#f4f3fa);
  border:0;border-bottom:1px solid var(--lt-line);border-radius:0;
  font-family:var(--lt-font-heading);font-weight:600;font-size:13px;
  color:var(--lt-body);letter-spacing:0}
.show-shot .shot-bar::before{content:"";position:absolute;left:20px;top:50%;
  width:9px;height:9px;margin-top:-4.5px;border-radius:50%;background:#ff5f57;
  box-shadow:15px 0 0 #febc2e, 30px 0 0 #28c840}
.wp-block-column.show-body{text-align:left}
.wp-block-column.show-body :is(h2,h3,h4){
  font-size:clamp(23px,3.1vw,calc(var(--lt-fs-h2) * .8));line-height:1.15;letter-spacing:-.03em;margin-bottom:22px}

/* numbered points: a plain list block, numbers drawn by CSS */
ol.show-points{list-style:none;counter-reset:lt-point;margin:0 0 26px;padding:0;
  display:flex;flex-direction:column;gap:14px}
ol.show-points li{display:flex;gap:14px;align-items:flex-start;font-size:16px;line-height:1.55;color:var(--lt-ink)}
ol.show-points li::before{content:counter(lt-point,decimal-leading-zero);counter-increment:lt-point;
  flex:0 0 auto;width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  border-radius:10px;background:var(--lt-accent-soft);color:var(--lt-accent-ink);
  font-family:var(--lt-font-heading);font-weight:700;font-size:13px}
@media(max-width:900px){
  /* Stacked rows always lead with the screenshot. The flipped row puts its
     text column first in the markup so it lands on the left at desktop
     width; once stacked, that order would show the description before the
     picture it describes. */
  .wp-block-columns.show-row{display:flex!important;flex-direction:column;gap:22px;
    align-items:stretch!important}
  .wp-block-columns.show-row > .wp-block-column{flex-basis:auto!important;max-width:none;width:auto}
  .wp-block-columns.show-row > .wp-block-column.show-shot{order:-1}
  .wp-block-columns.show-row > .wp-block-column.show-body{order:0}
  ol.show-points li{font-size:15px}
}

/* --- FAQ from the core Details block --- */
details.qa.wp-block-details{margin-bottom:14px;padding:0;overflow:hidden;background:var(--lt-card);
  border:1px solid var(--lt-line);border-radius:calc(var(--lt-radius) - 6px);
  box-shadow:0 6px 24px rgba(23,23,28,.07)}
details.qa.wp-block-details summary{display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:15px 18px 15px 34px;cursor:pointer;font-weight:500;color:var(--lt-ink);font-size:14.5px;
  position:relative;list-style:none}
details.qa.wp-block-details summary::-webkit-details-marker{display:none}
details.qa.wp-block-details summary::before{content:"";position:absolute;left:18px;top:50%;
  width:4px;height:20px;margin-top:-10px;border-radius:99px;background:var(--lt-ink)}
details.qa.wp-block-details[open] summary::before{background:var(--lt-accent)}
details.qa.wp-block-details summary::after{content:"";width:9px;height:9px;flex:0 0 auto;
  border-right:2px solid var(--lt-muted);border-bottom:2px solid var(--lt-muted);
  transform:rotate(45deg) translateY(-3px);transition:.3s}
details.qa.wp-block-details[open] summary::after{transform:rotate(-135deg) translateY(-3px)}
details.qa.wp-block-details p{margin:0;padding:0 18px 16px 34px;font-size:13.5px}

/* --- Buttons from the core Button block --- */
.wp-block-button.pill .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;
  gap:9px;border-radius:var(--lt-radius-btn);padding:14px 32px;font-weight:500;font-size:15px;
  border:1px solid transparent;transition:.25s}
.wp-block-button.pill.black .wp-block-button__link{background:var(--lt-ink);color:#fff}
.wp-block-button.pill.black .wp-block-button__link:hover{background:#000;transform:scale(1.04)}
.wp-block-button.pill.white .wp-block-button__link{background:var(--lt-card);color:var(--lt-ink);border-color:var(--lt-line)}
.wp-block-button.pill.white .wp-block-button__link:hover{background:var(--lt-accent-soft);transform:scale(1.04)}
.wp-block-button.pill.wa .wp-block-button__link{background:var(--lt-wa);color:#08120b}
.wp-block-button.pill.wa .wp-block-button__link:hover{filter:brightness(.94);transform:scale(1.04)}
.wp-block-buttons.centered{justify-content:center}

/* --- Group wrappers used as sections --- */
.wp-block-group.lt-hero,.wp-block-group.lt-features,.wp-block-group.lt-work,
.wp-block-group.lt-process,.wp-block-group.lt-pricing,.wp-block-group.lt-addons,
.wp-block-group.lt-team,.wp-block-group.lt-faq{padding-block:calc(var(--lt-space) * .5)}
.wp-block-group.grain,.wp-block-group.statsband,.wp-block-group.lt-cta{padding-block:var(--lt-space)}
.wp-block-group.lt-cta,.wp-block-group.statsband{background:var(--lt-dark)}
.wp-block-group.lt-cta h2{color:#fff}
.wp-block-group.lt-cta p{color:#b9b9c4;max-width:52ch;margin-inline:auto}

.wp-block-group.lt-faq{background:linear-gradient(180deg,transparent,var(--lt-accent-soft) 130%);
  padding-bottom:var(--lt-space)}

/* the video band accepts a core Embed */
.grain .wp-block-embed{position:relative;z-index:2;max-width:760px;margin:0 auto}
.grain .wp-block-embed iframe{width:100%;aspect-ratio:16/9;height:auto;border:0;
  border-radius:var(--lt-radius);box-shadow:0 30px 80px rgba(0,0,0,.5)}

/* editor-only: give the canvas the same page background */
.editor-styles-wrapper{background:var(--lt-bg)}

/* theme.json constrains block content; these keep the full-bleed bands tidy */
.wp-block-group.alignfull{padding-inline:22px}
.wp-block-group.alignfull > *{max-width:var(--lt-width);margin-inline:auto}
.wp-block-group.alignfull > .wp-block-columns.show-row{max-width:var(--lt-width)}
.wp-block-group.lt-faq > details.qa{max-width:760px}
.wp-block-group.lt-features > .wp-block-columns.feat-grid{max-width:980px}
.wp-block-group.lt-pricing > .wp-block-table.price-table{max-width:640px}
.price-table table{width:100%;border-collapse:collapse}
.price-table td{padding:15px 4px;border-bottom:1px dashed var(--lt-line);font-size:14.5px;text-align:left}
.price-table td:last-child{text-align:right;color:var(--lt-muted);font-weight:500}
.price-table tr:last-child td{border-bottom:0}
.p-foot{font-size:12.5px;color:var(--lt-muted)}
.hero-trust{font-size:13.5px;color:var(--lt-muted)}
.lt-hero .sub{font-size:16.5px;max-width:60ch;margin-inline:auto}

@media(max-width:781px){
  .wp-block-columns.feat-grid,.wp-block-columns.steps,
  .wp-block-columns.addon-grid,.wp-block-columns.team-grid,
  .wp-block-columns.stats-grid,.wp-block-columns.contact-tiles,
  .wp-block-columns.value-grid{display:grid!important;grid-auto-rows:1fr}
  .wp-block-columns.feat-grid,.wp-block-columns.steps{grid-template-columns:repeat(2,1fr)}
  .wp-block-columns.stats-grid{grid-template-columns:repeat(2,1fr)}
  .wp-block-columns.addon-grid,.wp-block-columns.team-grid{grid-template-columns:1fr}
  .wp-block-columns.contact-tiles,.wp-block-columns.value-grid{grid-template-columns:repeat(2,1fr)}
  .wp-block-columns.contact-tiles>.wp-block-column,
  .wp-block-columns.value-grid>.wp-block-column,
  .wp-block-columns.feat-grid>.wp-block-column,
  .wp-block-columns.steps>.wp-block-column,
  .wp-block-columns.stats-grid>.wp-block-column,
  .wp-block-columns.addon-grid>.wp-block-column,
  .wp-block-columns.team-grid>.wp-block-column{flex-basis:auto!important;width:auto}
  .wp-block-columns.team-grid>.wp-block-column{justify-self:center}
}
@media(max-width:560px){
  .wp-block-columns.feat-grid,.wp-block-columns.steps,
  .wp-block-columns.contact-tiles,.wp-block-columns.value-grid{grid-template-columns:1fr}
}

/* ==========================================================================
   BLOCK ALIGNMENT
   A classic theme has to define these itself - WordPress does not supply
   them. Without these rules a full-width section is boxed by its parent
   and the content shifts sideways and gets clipped.
   ========================================================================== */
.page-main{width:100%;max-width:100%;overflow-x:clip}
.page-main > .alignfull,
.entry-content > .alignfull{width:100%;max-width:none;margin-left:0;margin-right:0}
.page-main > .alignwide,
.entry-content > .alignwide{max-width:1280px;margin-left:auto;margin-right:auto}
.page-main > *:not(.alignfull):not(.alignwide),
.entry-content > *:not(.alignfull):not(.alignwide){max-width:var(--lt-width);margin-left:auto;margin-right:auto}
.alignleft{float:left;margin:.5em 1.5em 1em 0}
.alignright{float:right;margin:.5em 0 1em 1.5em}
.aligncenter{margin-left:auto;margin-right:auto}

/* Inside a section, keep the content column centred and padded. */
.wp-block-group.alignfull > *{max-width:var(--lt-width);margin-left:auto;margin-right:auto}
.wp-block-group.alignfull > .alignfull{max-width:none}

/* Legal and long-text pages read best at a narrower measure. */
.wp-block-group.legal-body{padding:calc(var(--lt-space) * .4) 22px var(--lt-space)}
.wp-block-group.legal-body > *{max-width:760px;margin-left:auto;margin-right:auto}
.wp-block-group.legal-body h2{font-size:clamp(20px,2.4vw,26px);margin-top:1.8em}
.wp-block-group.legal-body h2:first-of-type{margin-top:0}
.wp-block-group.legal-body p,.wp-block-group.legal-body li{font-size:15px}
.wp-block-group.legal-body ul,.wp-block-group.legal-body ol{padding-left:1.2em}
.wp-block-group.legal-body li{margin-bottom:.4em}

/* ==========================================================================
   HOMEPAGE POLISH  -  decorative layer for the block-built page
   ========================================================================== */

/* --- Section label pill --- */
p.pill-lbl,.wp-block-group .pill-lbl{display:block;width:fit-content;margin:0 auto 14px;
  padding:8px 20px;border-radius:99px;background:var(--lt-card);border:1px solid var(--lt-line);
  box-shadow:0 6px 24px rgba(23,23,28,.07);font-size:12.5px;font-weight:600;
  letter-spacing:.02em;color:var(--lt-body);text-align:center}

/* --- Hero --- */
.wp-block-group.lt-hero{position:relative;overflow:hidden;
  padding-block:calc(var(--lt-space) * .75) calc(var(--lt-space) * .55)}
.wp-block-group.lt-hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(var(--lt-line) 1px,transparent 1px),
                   linear-gradient(90deg,var(--lt-line) 1px,transparent 1px);
  background-size:62px 62px;
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 35%,#000 20%,transparent 78%);
  mask-image:radial-gradient(ellipse 80% 60% at 50% 35%,#000 20%,transparent 78%);opacity:.6}
.wp-block-group.lt-hero > *{position:relative;z-index:1}
.wp-block-group.hero-media{position:relative;width:fit-content;max-width:100%;margin:0 auto 6px}
.wp-block-group.hero-media > *{max-width:none;margin:0}
.wp-block-group.hero-media::after{content:"";position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);
  width:130%;height:100%;z-index:-1;border-radius:50%;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(var(--lt-accent-rgb),.13),transparent 66%);filter:blur(52px)}
.wp-block-group.lt-hero .wp-block-image.hero-photo{margin:0}
/* The hero photo is a cut-out, so it sits open on the page - no frame, no
   shadow, no crop - and dissolves into the background at the bottom. */
.wp-block-group.lt-hero .wp-block-image.hero-photo img{display:block;margin-inline:auto;
  width:auto;max-width:100%;height:auto;max-height:min(560px,62vh);
  border:0;border-radius:0;box-shadow:none;background:none;
  -webkit-mask-image:linear-gradient(180deg,#000 70%,rgba(0,0,0,.55) 88%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 70%,rgba(0,0,0,.55) 88%,transparent 100%)}
.badge-hero{position:absolute;z-index:3;display:flex;flex-direction:column;gap:2px;width:max-content;
  padding:11px 15px;border-radius:15px;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.6);box-shadow:0 14px 40px rgba(23,23,28,.14);
  animation:lt-float 5s ease-in-out infinite}
.badge-hero .t{white-space:nowrap;font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--lt-muted)}
.badge-hero .v{display:flex;align-items:center;gap:6px;font-family:var(--lt-font-heading);
  font-weight:700;font-size:14px;color:var(--lt-ink);white-space:nowrap}
.badge-hero .g{width:7px;height:7px;border-radius:50%;background:var(--lt-wa);
  box-shadow:0 0 0 3px rgba(37,211,102,.22)}
.badge-hero .pin{flex:0 0 auto;color:var(--lt-accent);margin-right:-2px}
.badge-hero .t{text-transform:none;letter-spacing:.1em}
.badge-hero.b1{left:-26px;top:16%}
.badge-hero.b2{right:-26px;bottom:34%;animation-delay:-2.5s}
@keyframes lt-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@media(max-width:700px){.badge-hero.b1{left:-6px}.badge-hero.b2{right:-6px}}
@media(max-width:520px){.badge-hero{display:none}}
.wp-block-group.lt-hero h1{max-width:19ch;margin-inline:auto}
.wp-block-group.lt-hero .sub{font-size:16.5px;max-width:58ch;margin:0 auto 26px;color:var(--lt-body)}
.wp-block-group.lt-hero .wp-block-buttons{margin-bottom:26px}
.hero-trust{display:flex;align-items:center;justify-content:center;gap:12px;
  font-size:13.5px;color:var(--lt-muted);margin:0}
.hero-trust strong{color:var(--lt-accent-ink)}
.hero-trust::before{content:"★★★";letter-spacing:2px;color:var(--lt-star);font-size:12px}

/* --- Trusted-by strip --- */
.wp-block-group.logostrip{padding-block:calc(var(--lt-space) * .34);background:var(--lt-card);
  border-block:1px solid var(--lt-line)}
.wp-block-group.logostrip > *{max-width:none}
.logostrip .ls-title{margin:0 0 14px;text-align:center;font-size:11.5px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--lt-muted)}

/* --- Section heading spacing --- */
.wp-block-group h2{margin-bottom:38px}
.wp-block-group .pill-lbl + h2{margin-top:0}

/* --- Service cards --- */
.wp-block-column.feat{position:relative;overflow:hidden}
.wp-block-column.feat::after{content:"";position:absolute;inset:0;border-radius:inherit;
  pointer-events:none;opacity:0;transition:.35s;
  box-shadow:inset 0 0 0 1px rgba(var(--lt-accent-rgb),.35)}
.wp-block-column.feat:hover::after{opacity:1}
.wp-block-column.feat :is(h2,h3,h4){position:relative;padding-left:0}

/* --- Work showcase --- */
.wp-block-column.show-shot{position:relative}
.shot-bar{display:block;margin-bottom:14px;padding:10px 16px;
  border-radius:calc(var(--lt-radius) - 6px);background:var(--lt-card);
  border:1px solid var(--lt-line);font-family:var(--lt-font-heading);font-weight:700;
  font-size:13.5px;color:var(--lt-ink);letter-spacing:-.01em;text-align:center}
.wp-block-columns.show-row{position:relative}
.wp-block-columns.show-row + .wp-block-columns.show-row{padding-top:calc(var(--lt-space) * .55);
  border-top:1px dashed var(--lt-line)}

/* --- Numbers band --- */
.wp-block-group.statsband{position:relative;overflow:hidden}
.wp-block-group.statsband::before{content:"";position:absolute;left:50%;top:-60%;
  transform:translateX(-50%);width:120%;height:200%;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(var(--lt-accent-rgb),.30),transparent 62%)}
.wp-block-group.statsband > *{position:relative;z-index:1}

/* --- Moving band --- */
.wp-block-group.blackband{padding:0;background:var(--lt-dark);overflow:hidden}
.wp-block-group.blackband > *{max-width:none}

/* --- Pricing card --- */
.wp-block-group.lt-pricing .price-shell{max-width:640px;margin-inline:auto;padding:30px;
  background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:calc(var(--lt-radius) + 6px);box-shadow:0 18px 48px rgba(23,23,28,.09)}
.wp-block-group.lt-pricing .price-shell > *{max-width:none;margin-inline:0}
.price-big{font-family:var(--lt-font-heading);font-weight:800;font-size:clamp(21px,2.6vw,27px);
  letter-spacing:-.03em;color:var(--lt-ink);text-align:center;margin:0 0 6px}
.price-big strong{color:var(--lt-accent-ink)}
.price-table{margin:18px 0 0}
.price-table table{width:100%;border-collapse:collapse}
.price-table td{padding:14px 4px;border-bottom:1px dashed var(--lt-line);font-size:14.5px;
  text-align:left;border-top:0;border-left:0;border-right:0}
.price-table td:last-child{text-align:right;color:var(--lt-muted);font-weight:500}
.price-table tr:last-child td{border-bottom:0}
.p-foot{font-size:12.5px;color:var(--lt-muted);text-align:center;margin:14px 0 0}

/* --- Team --- */
.wp-block-column.tcard{margin-inline:auto}

/* --- FAQ --- */
.wp-block-group.lt-faq > details.qa{max-width:760px}
details.qa.wp-block-details[open]{box-shadow:0 14px 40px rgba(23,23,28,.10)}

/* --- CTA --- */
.wp-block-group.lt-cta{position:relative;overflow:hidden}
.wp-block-group.lt-cta::before{content:"";position:absolute;left:50%;bottom:-70%;
  transform:translateX(-50%);width:120%;height:180%;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(var(--lt-accent-rgb),.34),transparent 62%)}
.wp-block-group.lt-cta > *{position:relative;z-index:1}
.cta-phone{display:block;text-align:center;margin:16px 0 0;font-size:13.5px;color:#9b9ba8}
.cta-phone a{color:#fff;border-bottom:1px solid rgba(255,255,255,.3)}

/* --- respect reduced motion --- */
@media(prefers-reduced-motion:reduce){
  .badge-hero{animation:none}
  .ls-track,.bb-track{animation:none}
}

/* ==========================================================================
   INNER PAGES BUILT FROM BLOCKS
   ========================================================================== */

/* --- Page header band --- */
.wp-block-group.page-head{padding-block:calc(var(--lt-space) * .62) calc(var(--lt-space) * .3);
  text-align:center}
.wp-block-group.page-head h1{margin:0 0 10px;font-size:clamp(28px,4.4vw,var(--lt-fs-h2));line-height:1.15}
.wp-block-group.page-head .page-sub{max-width:60ch;margin:0 auto;color:var(--lt-muted);font-size:16px}

/* --- Readable text column --- */
.wp-block-group.lt-prose{padding-block:calc(var(--lt-space) * .35) calc(var(--lt-space) * .5)}
.wp-block-group.lt-prose > *{max-width:760px;margin-left:auto;margin-right:auto}
.wp-block-group.lt-prose h2{margin:1.7em 0 .5em;font-size:clamp(21px,2.7vw,29px);text-align:left}
.wp-block-group.lt-prose > h2:first-child{margin-top:0}
.wp-block-group.lt-prose h3{margin:1.4em 0 .4em;font-size:clamp(17px,2.1vw,21px);text-align:left}
.wp-block-group.lt-prose p{font-size:15.5px;line-height:1.75;text-align:left}
.wp-block-group.lt-prose p.lead{font-size:18px;line-height:1.6;color:var(--lt-ink)}
.wp-block-group.lt-prose ul,.wp-block-group.lt-prose ol{padding-left:1.25em;text-align:left}
.wp-block-group.lt-prose li{margin-bottom:.45em;font-size:15.5px;line-height:1.7}
.wp-block-group.lt-prose .role-line{margin:0 0 .8em;font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--lt-accent);font-weight:600}
.wp-block-group.lt-prose .note{padding:18px 22px;background:var(--lt-accent-soft);
  border-radius:var(--lt-radius);font-size:14.5px}

/* --- Contact page --- */
.wp-block-columns.contact-layout{gap:44px;align-items:flex-start;
  padding-block:calc(var(--lt-space) * .35) calc(var(--lt-space) * .5)}
.wp-block-column.contact-body{text-align:left}
.wp-block-column.contact-body h2{margin:1.5em 0 .4em;font-size:clamp(20px,2.5vw,26px)}
.wp-block-column.contact-body > h2:first-child{margin-top:0}
.wp-block-column.contact-body p,.wp-block-column.contact-body li{font-size:15px;line-height:1.7}
.wp-block-column.contact-body ul{padding-left:1.25em}
.wp-block-group.contact-card{padding:26px;background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:var(--lt-radius);box-shadow:0 6px 24px rgba(23,23,28,.07);text-align:left}
.wp-block-group.contact-card > *{max-width:none;margin-inline:0}
.wp-block-group.contact-card h3{margin:0 0 16px;font-size:18px}
.wp-block-group.contact-card .wp-block-buttons{margin-bottom:18px}
.wp-block-group.contact-card .wp-block-button{width:100%}
.wp-block-group.contact-card .wp-block-button__link{width:100%}
.wp-block-group.contact-card ul{list-style:none;margin:0;padding:0}
.wp-block-group.contact-card li{padding:10px 0;border-bottom:1px solid var(--lt-line);font-size:14px}
.wp-block-group.contact-card li a{display:flex;align-items:center;min-height:40px;color:var(--lt-ink)}
.wp-block-group.contact-card li a:hover{color:var(--lt-accent-ink)}
.wp-block-group.contact-card li:last-child{border-bottom:0}
.wp-block-group.contact-card li strong{display:block;font-size:11.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--lt-muted);font-weight:600}
@media(max-width:900px){.wp-block-columns.contact-layout{gap:26px}}

/* --- Milestone timeline as blocks --- */
.wp-block-group.lt-milestones{padding-block:calc(var(--lt-space) * .5)}
.wp-block-group.lt-milestones ol.timeline{max-width:720px;margin:0 auto;padding:0 0 0 40px;
  list-style:none;position:relative;text-align:left;counter-reset:lt-ms}
.wp-block-group.lt-milestones ol.timeline::before{content:"";position:absolute;left:7px;top:10px;
  bottom:10px;width:2px;background:var(--lt-line)}
.wp-block-group.lt-milestones ol.timeline li{position:relative;margin-bottom:26px;
  font-size:15px;line-height:1.7}
.wp-block-group.lt-milestones ol.timeline li:last-child{margin-bottom:0}
.wp-block-group.lt-milestones ol.timeline li::before{content:"";position:absolute;left:-40px;top:6px;
  width:16px;height:16px;border-radius:50%;background:var(--lt-card);
  border:3px solid var(--lt-accent)}
.wp-block-group.lt-milestones ol.timeline li strong{display:block;
  font-family:var(--lt-font-heading);font-weight:800;font-size:19px;color:var(--lt-ink);
  letter-spacing:-.02em;margin-bottom:2px}

/* ==========================================================================
   INNER PAGE COMPONENTS
   An agency's own pages are its portfolio, so they get real layout -
   spec cards, checklists, founder rows - not stacked paragraphs.
   ========================================================================== */

/* --- Big statement line under a page header --- */
.wp-block-group.lt-statement{padding-block:calc(var(--lt-space) * .45)}
.wp-block-group.lt-statement p{max-width:22ch;margin:0 auto;text-align:center;
  font-family:var(--lt-font-heading);font-weight:600;letter-spacing:-.025em;line-height:1.25;
  font-size:clamp(22px,3.2vw,34px);color:var(--lt-ink)}
.wp-block-group.lt-statement p em{font-style:normal;color:var(--lt-accent-ink)}
.wp-block-group.lt-statement .sub{max-width:56ch;margin:18px auto 0;font-family:var(--lt-font-body);
  font-weight:400;font-size:16px;letter-spacing:0;color:var(--lt-body)}

/* --- Service row: spec card on one side, deliverables on the other --- */
.wp-block-group.lt-services{padding-block:calc(var(--lt-space) * .5)}
.wp-block-columns.svc-row{gap:44px;align-items:flex-start;
  padding-block:calc(var(--lt-space) * .45)}
.wp-block-columns.svc-row + .wp-block-columns.svc-row{border-top:1px dashed var(--lt-line)}

.wp-block-column.svc-spec{flex:0 0 38%!important;max-width:38%;align-self:flex-start;
  position:sticky;top:100px;text-align:left;
  padding:28px;background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:calc(var(--lt-radius) + 4px);box-shadow:0 6px 24px rgba(23,23,28,.07)}
body.admin-bar .wp-block-column.svc-spec{top:132px}
.svc-num{display:flex;align-items:center;justify-content:center;width:44px;height:44px;
  margin:0 0 16px;border-radius:13px;background:var(--lt-accent-dark);color:#fff;
  font-family:var(--lt-font-heading);font-weight:800;font-size:15px;letter-spacing:.02em}
.wp-block-column.svc-spec :is(h2,h3){margin:0 0 10px;font-size:clamp(21px,2.6vw,27px);line-height:1.2}
.wp-block-column.svc-spec p{font-size:14.5px;line-height:1.7;margin:0 0 14px}
.svc-meta{display:flex;justify-content:space-between;gap:12px;margin:0 0 6px!important;
  padding:11px 0;border-top:1px dashed var(--lt-line);font-size:13.5px}
.svc-meta strong{color:var(--lt-muted);font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;font-size:11.5px}
.svc-meta span{color:var(--lt-ink);font-weight:600;text-align:right}
.wp-block-column.svc-spec .wp-block-buttons{margin-top:18px}
.wp-block-column.svc-spec .wp-block-button,
.wp-block-column.svc-spec .wp-block-button__link{width:100%}

.wp-block-column.svc-list{flex:1 1 auto!important;max-width:none;text-align:left;min-width:0}
.wp-block-column.svc-list :is(h3,h4){margin:0 0 16px;font-size:13px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--lt-muted)}
ul.check-list{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 30px}
ul.check-list li{position:relative;padding:11px 0 11px 30px;font-size:14.5px;line-height:1.55;
  border-bottom:1px solid var(--lt-line)}
ul.check-list li::before{content:"";position:absolute;left:2px;top:16px;
  width:14px;height:8px;border-left:2.5px solid var(--lt-accent);
  border-bottom:2.5px solid var(--lt-accent);transform:rotate(-45deg)}
@media(max-width:781px){
  .wp-block-column.svc-spec{flex:1 1 100%!important;max-width:none;position:static}
  .wp-block-columns.svc-row{gap:24px;padding-block:calc(var(--lt-space) * .35)}
}
@media(max-width:560px){ul.check-list{grid-template-columns:1fr}}

/* --- Founder row --- */
.wp-block-columns.founder-row{gap:44px;align-items:flex-start;
  padding-block:calc(var(--lt-space) * .4)}
.wp-block-columns.founder-row + .wp-block-columns.founder-row{border-top:1px dashed var(--lt-line)}
.wp-block-column.founder-photo{flex:0 0 34%!important;max-width:34%;align-self:flex-start}
.wp-block-column.founder-photo figure{margin:0}
.wp-block-column.founder-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;
  object-position:center top;border-radius:calc(var(--lt-radius) + 4px);
  box-shadow:0 18px 48px rgba(23,23,28,.12)}
.wp-block-column.founder-bio{flex:1 1 auto!important;max-width:none;text-align:left;min-width:0}
.wp-block-column.founder-bio :is(h2,h3){margin:0 0 4px;font-size:clamp(22px,2.8vw,29px)}
.wp-block-column.founder-bio p{font-size:15px;line-height:1.75}
.founder-role{display:inline-block;margin:0 0 16px!important;padding:5px 14px;border-radius:99px;
  background:var(--lt-accent-soft);color:var(--lt-accent-ink);
  font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:781px){.wp-block-column.founder-photo{flex:1 1 100%!important;max-width:300px}}

/* --- Value / promise cards --- */
.wp-block-columns.value-grid{gap:20px;align-items:stretch}
@media(min-width:1001px){.wp-block-columns.value-grid{display:grid!important;
  grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr}
  .wp-block-columns.value-grid > .wp-block-column{flex-basis:auto!important;max-width:none;width:auto}}
.wp-block-column.value{text-align:left;padding:24px;background:var(--lt-card);
  border:1px solid var(--lt-line);border-radius:var(--lt-radius);
  box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.3s}
.wp-block-column.value:hover{transform:translateY(-4px);box-shadow:0 18px 48px rgba(23,23,28,.12)}
.wp-block-column.value :is(h3,h4){margin:0 0 6px;font-size:16.5px}
.wp-block-column.value p{margin:0;font-size:13.5px;line-height:1.65}

/* --- Contact tiles --- */
.wp-block-columns.contact-tiles{gap:20px;align-items:stretch;
  padding-block:calc(var(--lt-space) * .35)}
.wp-block-column.tile{text-align:left;padding:24px;background:var(--lt-card);
  border:1px solid var(--lt-line);border-radius:var(--lt-radius);
  box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.3s}
.wp-block-column.tile:hover{transform:translateY(-4px);box-shadow:0 18px 48px rgba(23,23,28,.12);
  border-color:var(--lt-accent)}
.wp-block-column.tile :is(h3,h4){margin:0 0 4px;font-size:12px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--lt-muted)}
.wp-block-column.tile p{margin:0;font-size:16px;font-weight:600;color:var(--lt-ink);
  word-break:break-word}
.wp-block-column.tile p a{color:var(--lt-ink);display:inline-flex;align-items:center;min-height:40px}
.wp-block-column.tile p a:hover{color:var(--lt-accent-ink)}
.wp-block-column.tile.is-wa{background:var(--lt-accent-soft);border-color:transparent}
.wp-block-column.tile .small{font-size:13px;font-weight:400;color:var(--lt-body);margin-top:4px}

/* --- Numbered "what to send" list --- */
ol.step-list{list-style:none;counter-reset:lt-sl;margin:0;padding:0;text-align:left}
ol.step-list li{position:relative;counter-increment:lt-sl;padding:14px 0 14px 46px;
  border-bottom:1px solid var(--lt-line);font-size:15px;line-height:1.6}
ol.step-list li:last-child{border-bottom:0}
ol.step-list li::before{content:counter(lt-sl,decimal-leading-zero);position:absolute;left:0;top:12px;
  width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  border-radius:9px;background:var(--lt-accent-soft);color:var(--lt-accent-ink);
  font-family:var(--lt-font-heading);font-weight:700;font-size:12px}

/* --- Highlight / promise box --- */
.wp-block-group.promise{padding:28px 30px;background:var(--lt-dark);color:#b9b9c4;
  border-radius:calc(var(--lt-radius) + 4px);text-align:left}
.wp-block-group.promise > *{max-width:none;margin-inline:0}
.wp-block-group.promise :is(h2,h3){color:#fff;margin:0 0 8px;font-size:19px}
.wp-block-group.promise p{margin:0;font-size:14.5px;line-height:1.7}
.wp-block-group.promise p + p{margin-top:10px}

/* ==========================================================================
   WHAT WE DO  -  bento layout
   One flagship tile across the top, three beneath it. No screenshots:
   each tile carries an icon and a row of chips naming what is actually
   included, which tells a visitor more than a stock picture does.
   ========================================================================== */

.wp-block-group.lt-bento{padding-block:calc(var(--lt-space) * .5)}
.wp-block-columns.bento-lead,.wp-block-columns.bento-row{gap:22px;align-items:stretch;margin-bottom:22px}
.wp-block-columns.bento-row{margin-bottom:0}

/* --- shared tile --- */
.wp-block-column.svc-tile{position:relative;display:flex;flex-direction:column;
  padding:30px 28px;text-align:left;background:var(--lt-card);
  border:1px solid var(--lt-line);border-radius:calc(var(--lt-radius) + 6px);
  box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.35s;overflow:hidden}
.wp-block-column.svc-tile:hover{transform:translateY(-6px);
  box-shadow:0 26px 64px rgba(23,23,28,.15);border-color:rgba(var(--lt-accent-rgb),.4)}

.svc-ico{display:flex;align-items:center;justify-content:center;width:52px;height:52px;
  margin:0 0 18px;border-radius:16px;background:var(--lt-accent-soft);color:var(--lt-accent)}
.svc-ico svg{width:26px;height:26px}

.wp-block-column.svc-tile :is(h2,h3,h4){margin:0 0 8px;font-size:clamp(19px,2.2vw,23px);
  line-height:1.2;letter-spacing:-.02em}
.wp-block-column.svc-tile > p{margin:0 0 18px;font-size:14.5px;line-height:1.65;color:var(--lt-body)}

/* --- chips: the concrete deliverables --- */
.svc-chips{display:flex;flex-wrap:wrap;gap:7px;margin:auto 0 0!important;padding:0;list-style:none}
.svc-chips li{padding:6px 13px;border-radius:99px;background:var(--lt-bg);
  border:1px solid var(--lt-line);font-size:12.5px;font-weight:500;color:var(--lt-body);
  white-space:nowrap}

/* --- the flagship tile --- */
.wp-block-column.svc-tile.is-lead{background:var(--lt-dark);border-color:transparent;
  padding:38px 36px}
.wp-block-column.svc-tile.is-lead::after{content:"";position:absolute;right:-14%;top:-52%;
  width:62%;height:190%;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(var(--lt-accent-rgb),.44),transparent 62%)}
.wp-block-column.svc-tile.is-lead > *{position:relative;z-index:1}
.wp-block-column.svc-tile.is-lead :is(h2,h3,h4){color:#fff;font-size:clamp(23px,2.9vw,30px)}
.wp-block-column.svc-tile.is-lead > p{color:#b9b9c4;max-width:46ch;font-size:15.5px}
.wp-block-column.svc-tile.is-lead .svc-ico{background:rgba(255,255,255,.12);color:#fff}
.wp-block-column.svc-tile.is-lead .svc-chips li{background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.16);color:#d6d6e0}
.wp-block-column.svc-tile.is-lead:hover{border-color:transparent}

/* --- the small "flagship" note column beside it --- */
.wp-block-column.bento-side{flex:0 0 30%!important;max-width:30%;display:flex;
  flex-direction:column;justify-content:center;gap:14px;text-align:left;padding:4px 0}
.wp-block-column.bento-side p{margin:0;font-size:14.5px;line-height:1.7;color:var(--lt-body)}
.wp-block-column.bento-side .big{font-family:var(--lt-font-heading);font-weight:800;
  font-size:clamp(30px,4vw,46px);line-height:1;letter-spacing:-.03em;color:var(--lt-ink)}
.wp-block-column.bento-side .big span{color:var(--lt-accent-ink)}

/* Below 900px the flagship tile and its note stack, so neither gets squeezed. */
@media(max-width:900px){
  .wp-block-columns.bento-lead{display:grid!important;grid-template-columns:1fr;gap:18px}
  .wp-block-columns.bento-lead > .wp-block-column{flex:1 1 auto!important;max-width:none;width:auto}
  .wp-block-column.bento-side{padding:0;justify-content:flex-start}
  .wp-block-column.svc-tile.is-lead{padding:30px 26px}
}
/* Three tiles become two, then one. */
@media(max-width:1000px) and (min-width:782px){
  .wp-block-columns.bento-row{display:grid!important;grid-template-columns:repeat(2,1fr);
    grid-auto-rows:1fr;gap:20px}
  .wp-block-columns.bento-row > .wp-block-column{flex:1 1 auto!important;max-width:none;width:auto}
}
@media(max-width:781px){
  .wp-block-columns.bento-lead,.wp-block-columns.bento-row{display:grid!important;
    grid-auto-rows:1fr;grid-template-columns:1fr;gap:18px;margin-bottom:18px}
  .wp-block-columns.bento-lead > .wp-block-column,
  .wp-block-columns.bento-row > .wp-block-column{flex-basis:auto!important;max-width:none;width:auto}
  .wp-block-columns.bento-lead{grid-auto-rows:auto}
}

/* ==========================================================================
   SPEC COLUMNS  -  grouped feature lists, used on the News Portal page
   ========================================================================== */
.wp-block-columns.spec-grid{gap:24px;align-items:stretch;margin-bottom:24px}
.wp-block-columns.spec-grid:last-child{margin-bottom:0}
.wp-block-column.spec-col{text-align:left;padding:26px 24px;background:var(--lt-card);
  border:1px solid var(--lt-line);border-radius:calc(var(--lt-radius) + 4px);
  box-shadow:0 6px 24px rgba(23,23,28,.07)}
.wp-block-column.spec-col :is(h2,h3,h4){margin:0 0 14px;font-size:13px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--lt-accent)}
.wp-block-column.spec-col ul.check-list{grid-template-columns:1fr;gap:0}
.wp-block-column.spec-col ul.check-list li{padding:9px 0 9px 28px;font-size:14px}
.wp-block-column.spec-col ul.check-list li:last-child{border-bottom:0}
.wp-block-column.spec-col ul.check-list li::before{top:14px}

/* --- honest-limits box: the trust centrepiece --- */
.wp-block-group.limits{padding:34px 36px;background:var(--lt-dark);color:#b9b9c4;
  border-radius:calc(var(--lt-radius) + 6px);text-align:left;max-width:820px;
  margin-inline:auto;position:relative;overflow:hidden}
.wp-block-group.limits::after{content:"";position:absolute;right:-18%;top:-60%;
  width:60%;height:200%;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(var(--lt-accent-rgb),.30),transparent 62%)}
.wp-block-group.limits > *{position:relative;z-index:1;max-width:none;margin-inline:0}
.wp-block-group.limits :is(h2,h3){color:#fff;margin:0 0 6px;font-size:clamp(20px,2.5vw,25px)}
.wp-block-group.limits > p{margin:0 0 18px;font-size:14.5px;line-height:1.7}
.wp-block-group.limits ul{list-style:none;margin:0;padding:0}
.wp-block-group.limits li{position:relative;padding:12px 0 12px 32px;font-size:14.5px;
  line-height:1.6;border-bottom:1px solid rgba(255,255,255,.10)}
.wp-block-group.limits li:last-child{border-bottom:0}
.wp-block-group.limits li::before{content:"";position:absolute;left:4px;top:19px;
  width:13px;height:2px;background:var(--lt-accent);border-radius:2px}
.wp-block-group.limits li strong{color:#fff}

/* --- inline trust note --- */
.wp-block-group.trust-note{display:flex;gap:16px;align-items:flex-start;max-width:760px;
  margin-inline:auto;padding:20px 24px;background:var(--lt-accent-soft);
  border-radius:var(--lt-radius);text-align:left}
.wp-block-group.trust-note > *{max-width:none;margin-inline:0}
.wp-block-group.trust-note p{margin:0;font-size:14.5px;line-height:1.7;color:var(--lt-ink)}
.wp-block-group.trust-note p + p{margin-top:8px}

@media(max-width:781px){
  .wp-block-columns.spec-grid{display:grid!important;grid-template-columns:1fr;gap:18px}
  .wp-block-columns.spec-grid > .wp-block-column{flex-basis:auto!important;max-width:none;width:auto}
  .wp-block-group.limits{padding:26px 24px}
}

/* ==========================================================================
   TRUST COMPONENTS
   Used on the News Portal page, where the whole job of the page is to make
   a stranger comfortable paying for a build over WhatsApp.
   ========================================================================== */

/* --- Guarantee bar --- */
.wp-block-group.trust-bar{padding-block:calc(var(--lt-space) * .38)}
.wp-block-columns.trust-row{display:grid!important;grid-template-columns:repeat(4,1fr);
  grid-auto-rows:1fr;gap:18px;align-items:stretch}
.wp-block-columns.trust-row > .wp-block-column{flex-basis:auto!important;max-width:none;width:auto}
.wp-block-column.trust-item{display:flex;flex-direction:column;text-align:left;
  padding:22px;background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:var(--lt-radius);box-shadow:0 6px 24px rgba(23,23,28,.07)}
.wp-block-column.trust-item :is(h3,h4){margin:0 0 5px;font-size:15.5px;line-height:1.3;
  padding-left:30px;position:relative}
.wp-block-column.trust-item :is(h3,h4)::before{content:"";position:absolute;left:0;top:2px;
  width:19px;height:19px;border-radius:6px;background:var(--lt-accent-soft)}
.wp-block-column.trust-item :is(h3,h4)::after{content:"";position:absolute;left:5px;top:7px;
  width:9px;height:5px;border-left:2px solid var(--lt-accent);
  border-bottom:2px solid var(--lt-accent);transform:rotate(-45deg)}
.wp-block-column.trust-item p{margin:0;font-size:13.5px;line-height:1.6;color:var(--lt-body)}

/* --- Two-column honesty panel: what we promise / what we cannot --- */
.wp-block-columns.honesty{gap:22px;align-items:stretch}
.wp-block-column.can,.wp-block-column.cannot{text-align:left;padding:28px;
  border-radius:calc(var(--lt-radius) + 4px);border:1px solid var(--lt-line)}
.wp-block-column.can{background:var(--lt-card)}
.wp-block-column.cannot{background:#fffaf2;border-color:#f2e3cd}
.wp-block-column.can :is(h2,h3),.wp-block-column.cannot :is(h2,h3){margin:0 0 14px;font-size:19px}
.wp-block-column.can ul,.wp-block-column.cannot ul{list-style:none;margin:0;padding:0}
.wp-block-column.can li,.wp-block-column.cannot li{position:relative;padding:10px 0 10px 30px;
  font-size:14.5px;line-height:1.6;border-bottom:1px solid var(--lt-line)}
.wp-block-column.cannot li{border-bottom-color:#f2e3cd}
.wp-block-column.can li:last-child,.wp-block-column.cannot li:last-child{border-bottom:0}
.wp-block-column.can li::before{content:"";position:absolute;left:3px;top:16px;width:11px;height:6px;
  border-left:2.5px solid #1f9d55;border-bottom:2.5px solid #1f9d55;transform:rotate(-45deg)}
.wp-block-column.cannot li::before{content:"";position:absolute;left:6px;top:17px;width:12px;height:2px;
  background:#c98a2e;border-radius:2px}

/* --- Scam warnings --- */
.wp-block-group.lt-warning{padding-block:calc(var(--lt-space) * .5)}
ul.warn-list{list-style:none;margin:0 auto;padding:0;max-width:820px;text-align:left}
ul.warn-list li{position:relative;padding:18px 20px 18px 60px;margin-bottom:12px;
  background:var(--lt-card);border:1px solid var(--lt-line);border-left:3px solid #e0574f;
  border-radius:calc(var(--lt-radius) - 6px);font-size:14.5px;line-height:1.65}
ul.warn-list li:last-child{margin-bottom:0}
ul.warn-list li::before{content:"!";position:absolute;left:20px;top:18px;
  width:24px;height:24px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:#fdecea;color:#e0574f;
  font-family:var(--lt-font-heading);font-weight:800;font-size:14px}
ul.warn-list li strong{display:block;margin-bottom:2px;color:var(--lt-ink)}

/* --- Included / not included split --- */
.wp-block-columns.scope-row{gap:22px;align-items:flex-start}
.wp-block-column.scope-in,.wp-block-column.scope-out{text-align:left}
.wp-block-column.scope-in :is(h3,h4),.wp-block-column.scope-out :is(h3,h4){
  margin:0 0 14px;font-size:13px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--lt-muted)}
.wp-block-column.scope-out ul{list-style:none;margin:0;padding:0}
.wp-block-column.scope-out li{position:relative;padding:11px 0 11px 30px;font-size:14.5px;
  line-height:1.55;border-bottom:1px solid var(--lt-line);color:var(--lt-body)}
.wp-block-column.scope-out li:last-child{border-bottom:0}
.wp-block-column.scope-out li::before{content:"";position:absolute;left:5px;top:19px;
  width:12px;height:2px;background:var(--lt-muted);border-radius:2px}

/* --- Stage timeline with payment points --- */
ol.stage-list{list-style:none;counter-reset:lt-st;margin:0 auto;padding:0;max-width:820px;text-align:left}
ol.stage-list li{position:relative;counter-increment:lt-st;padding:0 0 26px 54px;
  font-size:15px;line-height:1.7}
ol.stage-list li:last-child{padding-bottom:0}
ol.stage-list li::before{content:counter(lt-st,decimal-leading-zero);position:absolute;left:0;top:0;
  width:34px;height:34px;display:flex;align-items:center;justify-content:center;z-index:1;
  border-radius:11px;background:var(--lt-accent-dark);color:#fff;
  font-family:var(--lt-font-heading);font-weight:700;font-size:12.5px}
ol.stage-list li::after{content:"";position:absolute;left:16px;top:38px;bottom:6px;width:2px;
  background:var(--lt-line)}
ol.stage-list li:last-child::after{display:none}
ol.stage-list li strong{display:block;font-family:var(--lt-font-heading);font-weight:700;
  font-size:17px;color:var(--lt-ink);margin-bottom:3px}
ol.stage-list li em{display:inline-block;margin-top:6px;padding:4px 12px;border-radius:99px;
  background:var(--lt-accent-soft);color:var(--lt-accent-ink);font-style:normal;
  font-size:12.5px;font-weight:600}

@media(max-width:781px){
  .wp-block-columns.trust-row,.wp-block-columns.honesty,.wp-block-columns.scope-row{
    display:grid!important;grid-template-columns:1fr;grid-auto-rows:1fr;gap:16px}
  .wp-block-columns.trust-row > .wp-block-column,
  .wp-block-columns.honesty > .wp-block-column,
  .wp-block-columns.scope-row > .wp-block-column{flex-basis:auto!important;max-width:none;width:auto}
  .wp-block-columns.scope-row{grid-auto-rows:auto}
}
@media(max-width:1000px){.wp-block-columns.trust-row{grid-template-columns:repeat(2,1fr);gap:16px}}
@media(max-width:560px){.wp-block-columns.trust-row{grid-template-columns:1fr}}

/* ==========================================================================
   DEMO GALLERY + PLAN TIERS
   In this market a buyer looks at demos before anything else, so the
   portal page needs a proper "see it first" grid and clear tiers.
   ========================================================================== */

.wp-block-group.lt-demos{padding-block:calc(var(--lt-space) * .5)}
.wp-block-columns.demo-grid{display:grid!important;grid-template-columns:repeat(3,1fr);
  grid-auto-rows:1fr;gap:24px;align-items:stretch;margin:0}
.wp-block-columns.demo-grid > .wp-block-column{flex-basis:auto!important;max-width:none;width:auto}

.wp-block-column.demo{position:relative;display:flex;flex-direction:column;text-align:left;padding:0;
  background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:calc(var(--lt-radius) + 2px);overflow:hidden;
  box-shadow:0 6px 24px rgba(23,23,28,.07);transition:.35s}
.wp-block-column.demo:hover{transform:translateY(-6px);
  box-shadow:0 26px 64px rgba(23,23,28,.16);border-color:rgba(var(--lt-accent-rgb),.4)}
.wp-block-column.demo figure,.wp-block-column.demo .wp-block-image{margin:0;position:relative}
.wp-block-column.demo img{display:block;width:100%;aspect-ratio:16/11;object-fit:cover;
  object-position:center top;background:var(--lt-accent-soft)}
.demo-body{display:flex;flex-direction:column;flex:1;padding:20px 22px 22px}
.demo-body > *{max-width:none;margin-inline:0}
.wp-block-column.demo :is(h3,h4){margin:0 0 4px;font-size:17.5px}
.wp-block-column.demo .demo-note{flex:1;margin:0 0 16px;font-size:13.5px;line-height:1.6;color:var(--lt-body)}
.wp-block-column.demo .wp-block-buttons{margin-top:auto}
.wp-block-column.demo .wp-block-button,
.wp-block-column.demo .wp-block-button__link{width:100%}
.demo-tag{position:absolute;left:12px;top:12px;z-index:2;padding:5px 12px;border-radius:99px;
  background:rgba(23,23,28,.82);color:#fff;font-size:11.5px;font-weight:600;letter-spacing:.04em}

/* --- plan tiers --- */
.wp-block-group.lt-plans{padding-block:calc(var(--lt-space) * .5)}
.wp-block-columns.plan-grid{gap:22px;align-items:stretch}
.wp-block-column.plan{position:relative;display:flex;flex-direction:column;text-align:left;padding:30px 26px;
  background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:calc(var(--lt-radius) + 6px);box-shadow:0 6px 24px rgba(23,23,28,.07);
  transition:.35s;position:relative}
.wp-block-column.plan:hover{transform:translateY(-5px);box-shadow:0 22px 58px rgba(23,23,28,.14)}
.wp-block-column.plan.is-popular{background:var(--lt-dark);border-color:transparent}
.wp-block-column.plan.is-popular::before{content:"Most chosen";position:absolute;right:22px;top:-11px;
  padding:5px 14px;border-radius:99px;background:var(--lt-accent-dark);color:#fff;
  font-size:11.5px;font-weight:700;letter-spacing:.05em}
.wp-block-column.plan :is(h3,h4){margin:0 0 2px;font-size:13px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--lt-muted)}
.wp-block-column.plan.is-popular :is(h3,h4){color:#8f8f9c}
.plan-price{margin:0 0 4px!important;font-family:var(--lt-font-heading);font-weight:800;
  font-size:clamp(28px,3.6vw,38px);letter-spacing:-.03em;line-height:1.05;color:var(--lt-ink)}
.wp-block-column.plan.is-popular .plan-price{color:#fff}
.plan-note{margin:0 0 18px!important;font-size:13px;color:var(--lt-muted)}
.wp-block-column.plan.is-popular .plan-note{color:#9b9ba8}
.wp-block-column.plan ul{list-style:none;margin:0 0 20px;padding:0}
.wp-block-column.plan li{position:relative;padding:9px 0 9px 26px;font-size:14px;line-height:1.5;
  border-bottom:1px solid var(--lt-line)}
.wp-block-column.plan.is-popular li{border-bottom-color:rgba(255,255,255,.1);color:#c6c6d2}
.wp-block-column.plan li:last-child{border-bottom:0}
.wp-block-column.plan li::before{content:"";position:absolute;left:2px;top:15px;width:11px;height:6px;
  border-left:2.2px solid var(--lt-accent);border-bottom:2.2px solid var(--lt-accent);
  transform:rotate(-45deg)}
.wp-block-column.plan .wp-block-buttons{margin-top:auto}
.wp-block-column.plan .wp-block-button,
.wp-block-column.plan .wp-block-button__link{width:100%}

@media(max-width:1000px){
  .wp-block-columns.demo-grid,.wp-block-columns.plan-grid{display:grid!important;
    grid-template-columns:repeat(2,1fr);grid-auto-rows:1fr;gap:20px}
  .wp-block-columns.plan-grid > .wp-block-column{flex-basis:auto!important;max-width:none;width:auto}
}
@media(max-width:640px){
  .wp-block-columns.demo-grid,.wp-block-columns.plan-grid{grid-template-columns:1fr}
}

/* ==========================================================================
   WHY US  -  narrative + reasons
   The homepage had no place where a visitor reads who you are before being
   asked to buy. This is that section.
   ========================================================================== */
.wp-block-group.lt-why{padding-block:calc(var(--lt-space) * .5)}
.wp-block-columns.why-row{gap:52px;align-items:flex-start}
.wp-block-column.why-text{text-align:left;min-width:0}
.wp-block-column.why-text :is(h2,h3){margin:0 0 18px;text-align:left}
.wp-block-column.why-text p{font-size:15.5px;line-height:1.75;margin:0 0 16px}
.wp-block-column.why-text p:last-of-type{margin-bottom:24px}
.wp-block-column.why-text p.lead{font-size:18px;line-height:1.6;color:var(--lt-ink)}

.wp-block-column.why-list{flex:0 0 42%!important;max-width:42%;align-self:flex-start;
  text-align:left;padding:28px;background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:calc(var(--lt-radius) + 4px);box-shadow:0 6px 24px rgba(23,23,28,.07)}
.wp-block-column.why-list :is(h3,h4){margin:0 0 16px;font-size:13px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--lt-muted)}
ul.why-points{list-style:none;margin:0;padding:0}
ul.why-points li{position:relative;padding:14px 0 14px 34px;font-size:14.5px;line-height:1.55;
  border-bottom:1px solid var(--lt-line)}
ul.why-points li:last-child{border-bottom:0;padding-bottom:0}
ul.why-points li::before{content:"";position:absolute;left:0;top:16px;width:20px;height:20px;
  border-radius:7px;background:var(--lt-accent-soft)}
ul.why-points li::after{content:"";position:absolute;left:6px;top:22px;width:9px;height:5px;
  border-left:2px solid var(--lt-accent);border-bottom:2px solid var(--lt-accent);
  transform:rotate(-45deg)}
ul.why-points li strong{display:block;color:var(--lt-ink);margin-bottom:1px}

@media(max-width:900px){
  .wp-block-columns.why-row{gap:26px}
  .wp-block-column.why-list{flex:1 1 100%!important;max-width:none}
}

/* ==========================================================================
   BUILD GRID  -  the range of things we develop
   Development-first positioning: what we build comes before what it earns.
   ========================================================================== */
.wp-block-group.lt-build{padding-block:calc(var(--lt-space) * .5)}
.wp-block-columns.build-grid{display:grid!important;grid-template-columns:repeat(3,1fr);
  grid-auto-rows:1fr;gap:20px;align-items:stretch;margin:0 0 26px}
.wp-block-columns.build-grid > .wp-block-column{flex-basis:auto!important;max-width:none;width:auto}

.wp-block-column.build{position:relative;display:flex;flex-direction:column;text-align:left;
  padding:26px 24px;background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:calc(var(--lt-radius) + 4px);box-shadow:0 6px 24px rgba(23,23,28,.07);
  transition:.35s;overflow:hidden}
.wp-block-column.build:hover{transform:translateY(-5px);
  box-shadow:0 24px 60px rgba(23,23,28,.14);border-color:rgba(var(--lt-accent-rgb),.4)}
.build-ico{display:flex;align-items:center;justify-content:center;width:46px;height:46px;
  margin:0 0 16px;border-radius:14px;background:var(--lt-accent-soft);color:var(--lt-accent)}
.build-ico svg{width:23px;height:23px}
.wp-block-column.build :is(h3,h4){margin:0 0 7px;font-size:18px;line-height:1.25}
.wp-block-column.build > p{margin:0 0 14px;font-size:14px;line-height:1.65;color:var(--lt-body)}
.wp-block-column.build ul{list-style:none;margin:auto 0 0!important;padding:0;
  display:flex;flex-wrap:wrap;gap:6px}
.wp-block-column.build li{padding:5px 11px;border-radius:99px;background:var(--lt-bg);
  border:1px solid var(--lt-line);font-size:12px;font-weight:500;color:var(--lt-body);white-space:nowrap}

/* the secondary row - things we handle that are not development */
.wp-block-columns.also-grid{display:grid!important;grid-template-columns:repeat(3,1fr);
  grid-auto-rows:1fr;gap:16px;align-items:stretch;margin:0}
.wp-block-columns.also-grid > .wp-block-column{flex-basis:auto!important;max-width:none;width:auto}
.wp-block-column.also{display:flex;flex-direction:column;text-align:left;padding:20px 22px;
  background:var(--lt-accent-soft);border:1px solid transparent;
  border-radius:var(--lt-radius);transition:.3s}
.wp-block-column.also:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(23,23,28,.10)}
.wp-block-column.also :is(h3,h4){margin:0 0 4px;font-size:15.5px}
.wp-block-column.also p{margin:0;font-size:13.5px;line-height:1.6}
.build-note{max-width:64ch;margin:0 auto 30px!important;text-align:center;
  font-size:15px;color:var(--lt-body)}

@media(max-width:1000px){
  .wp-block-columns.build-grid,.wp-block-columns.also-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .wp-block-columns.build-grid,.wp-block-columns.also-grid{grid-template-columns:1fr}
}

/* ==========================================================================
   FAILURE STATES
   A placeholder video URL or an image that was never uploaded must not turn
   into a screen-height void with a raw URL printed in it. These rules make
   the unfinished state look unfinished rather than broken.
   ========================================================================== */

/* --- Unresolved embed ---
   WordPress only builds the iframe if oEmbed resolves the URL. With a
   placeholder URL it prints the URL as plain text AND still reserves a 16:9
   box - a screen-height void with a URL sitting in it. Collapse both.
   (:has() cannot be nested, so this targets the embed itself, not its
   parent section - the band then shrinks to just its heading, which reads
   as intentional rather than broken.) */
.wp-block-embed:not(:has(iframe)) .wp-block-embed__wrapper::before{display:none!important}
.wp-block-embed:not(:has(iframe)) .wp-block-embed__wrapper{
  visibility:hidden;height:0;min-height:0;padding:0;margin:0;overflow:hidden}
.wp-block-embed:not(:has(iframe)){margin:0}
/* Once a real video is in, everything below applies as normal. */
.wp-block-embed:has(iframe) .wp-block-embed__wrapper{max-width:760px;margin:0 auto}

/* --- Images that failed to load ---
   Give every content image a soft backdrop, so a missing file reads as an
   empty slot instead of a torn page. */
.wp-block-column.demo img,.wp-block-column.tcard img,
.show-shot img,.founder-photo img{background:var(--lt-accent-soft)}

/* ==========================================================================
   THREE-STEP STRIP  ·  CLIENT LOGOS  ·  WHAT WE GROW
   ========================================================================== */

/* --- Your Business -> Your Requirements -> We Build --- */
.wp-block-group.lt-flow{padding-block:calc(var(--lt-space) * .42)}
.wp-block-columns.flow-row{display:grid!important;grid-template-columns:repeat(3,1fr);
  gap:20px;align-items:stretch;margin:0}
.wp-block-columns.flow-row > .wp-block-column{flex-basis:auto!important;max-width:none;width:auto}
.wp-block-column.flow{position:relative;display:flex;flex-direction:column;align-items:center;
  text-align:center;padding:26px 20px}
.wp-block-column.flow + .flow::before{content:"";position:absolute;left:-10px;top:52px;
  width:20px;height:20px;border-top:2px dashed var(--lt-line);
  border-right:2px dashed var(--lt-line);transform:translateX(-50%) rotate(45deg)}
.flow-ico{display:flex;align-items:center;justify-content:center;width:64px;height:64px;
  margin:0 0 16px;border-radius:20px;background:var(--lt-accent-soft);color:var(--lt-accent)}
.flow-ico svg{width:30px;height:30px}
.wp-block-column.flow :is(h3,h4){margin:0 0 6px;font-size:18px}
.wp-block-column.flow p{margin:0;font-size:14px;line-height:1.6;color:var(--lt-body);max-width:32ch}
@media(max-width:781px){
  .wp-block-columns.flow-row{grid-template-columns:1fr;gap:8px}
  .wp-block-column.flow + .flow::before{left:50%;top:-4px;transform:translateX(-50%) rotate(135deg)}
}

/* --- Client logo grid --- */
.wp-block-group.lt-clients{padding-block:calc(var(--lt-space) * .5)}
.wp-block-columns.client-grid{display:grid!important;grid-template-columns:repeat(6,1fr);
  grid-auto-rows:1fr;gap:16px;align-items:stretch;margin:0}
.wp-block-columns.client-grid > .wp-block-column{flex-basis:auto!important;max-width:none;width:auto}
.wp-block-column.client{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;padding:24px 14px 18px;background:var(--lt-card);border:1px solid var(--lt-line);
  border-radius:calc(var(--lt-radius) - 2px);text-align:center;transition:.28s}
.wp-block-column.client:hover{transform:translateY(-4px);border-color:var(--lt-accent);
  background:var(--lt-accent-soft);box-shadow:0 14px 36px rgba(var(--lt-accent-rgb),.14)}
.wp-block-column.client figure,.wp-block-column.client .wp-block-image{margin:0}
.wp-block-column.client img{width:76px;height:76px;object-fit:contain;display:block;
  border-radius:12px;background:var(--lt-bg);padding:8px;border:1px solid var(--lt-line)}
.wp-block-column.client p{margin:0;font-size:13px;font-weight:600;color:var(--lt-ink);line-height:1.35}
.wp-block-column.client p.what{font-size:11.5px;font-weight:400;color:var(--lt-muted);
  letter-spacing:.02em}
@media(max-width:1100px){.wp-block-columns.client-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:768px){.wp-block-columns.client-grid{grid-template-columns:repeat(3,1fr);gap:12px}
  .wp-block-column.client{padding:18px 10px 14px}
  .wp-block-column.client img{width:60px;height:60px}}
@media(max-width:480px){.wp-block-columns.client-grid{grid-template-columns:repeat(2,1fr);gap:10px}}

/* --- What we grow (secondary service grid) --- */
.wp-block-group.lt-grow{padding-block:calc(var(--lt-space) * .5)}
.wp-block-columns.grow-grid{display:grid!important;grid-template-columns:repeat(3,1fr);
  grid-auto-rows:1fr;gap:18px;align-items:stretch;margin:0}
.wp-block-columns.grow-grid > .wp-block-column{flex-basis:auto!important;max-width:none;width:auto}
.wp-block-column.grow{position:relative;display:flex;flex-direction:column;text-align:left;
  padding:24px;background:var(--lt-accent-soft);border:1px solid transparent;
  border-radius:var(--lt-radius);transition:.3s}
.wp-block-column.grow:hover{transform:translateY(-4px);border-color:rgba(var(--lt-accent-rgb),.35);
  box-shadow:0 18px 46px rgba(23,23,28,.10)}
.grow-ico{display:flex;align-items:center;justify-content:center;width:40px;height:40px;
  margin:0 0 14px;border-radius:12px;background:var(--lt-card);color:var(--lt-accent);
  box-shadow:0 4px 14px rgba(23,23,28,.07)}
.grow-ico svg{width:20px;height:20px}
.wp-block-column.grow :is(h3,h4){margin:0 0 6px;font-size:16.5px;line-height:1.3}
.wp-block-column.grow p{margin:0;font-size:13.5px;line-height:1.65;color:var(--lt-body)}
@media(max-width:1000px){.wp-block-columns.grow-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.wp-block-columns.grow-grid{grid-template-columns:1fr}}
