/* Shared refinement layer for every internal page (services, products, blog, case studies).
   Loaded after each page's inline <style>, so it overrides without touching page structure. */

@font-face{font-family:"Outfit";src:url("/wp-content/uploads/dxd-fonts/Outfit-600.ttf") format("truetype");font-weight:600;font-display:swap;}
@font-face{font-family:"Outfit";src:url("/wp-content/uploads/dxd-fonts/Outfit-700.ttf") format("truetype");font-weight:700;font-display:swap;}
@font-face{font-family:"Outfit";src:url("/wp-content/uploads/dxd-fonts/Outfit-800.ttf") format("truetype");font-weight:800;font-display:swap;}

:root{
  --bg:#07080b;
  --bg-navy:#0b1020;
  --bg-purple:transparent; /* retired: purple fought the lime brand */
  --fg:#f2f3f5;
  --fg-dim:#b1b7c2;
  --fg-body:#c6cbd3;
  --surface:#0e1118;
  --surface-2:#131722;
  --line:rgba(255,255,255,0.08);
  --accent:#c8f31d;
  --accent-soft:rgba(200,243,29,0.14);
  --display:"Outfit",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ease-out:cubic-bezier(0.23,1,0.32,1);
  --radius:14px;
  color-scheme:dark;
  accent-color:var(--accent);
}

/* ---------- Browser surfaces ---------- */
::selection{background:var(--accent);color:#0a0c08;}
html{scrollbar-color:#2a2f38 var(--bg);}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:#2a2f38;border-radius:10px;border:2px solid var(--bg);}
::-webkit-scrollbar-thumb:hover{background:#3a414c;}
body{caret-color:var(--accent);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
a{text-underline-offset:0.2em;text-decoration-thickness:1px;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

/* ---------- Typography ---------- */
h1,h2,h3,h4,.btn,header nav,.mobile-nav a,.faq-q{font-family:var(--display);}
h1,h2,h3{text-wrap:balance;}
p,li{text-wrap:pretty;}
.hero h1{
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.04;
  font-size:clamp(2.5rem,1.4rem + 3.6vw,4.4rem);
}
.hero:not(:has(.hero-row)) h1{font-size:clamp(2rem,1.3rem + 2.1vw,3.2rem);line-height:1.1;}
@media (max-width:600px){
  .hero h1{font-size:clamp(2rem,1.2rem + 4.2vw,2.5rem);line-height:1.08;}
  .hero:not(:has(.hero-row)) h1{font-size:clamp(1.65rem,1.2rem + 2.4vw,1.95rem);}
  h1,h2,.hero p{overflow-wrap:anywhere;}
}
.hero h2.sub{font-weight:600;letter-spacing:-0.01em;color:var(--fg);}
.hero p{color:var(--fg-dim);max-width:62ch;}
h2.big,.split .split-text h2,.cta h2{font-weight:700;letter-spacing:-0.025em;line-height:1.08;}
.pillar h3,.card h4,.step h4,.oprocess h4{font-weight:600;letter-spacing:-0.01em;}
.lede,section p{max-width:68ch;}
.cta .lede,.cta p.lede{margin-left:auto;margin-right:auto;}

/* Labels above headings repeat the heading; the heading carries its own weight. */
.kicker,.hero .eyebrow,.dxd-trusted-by-eyebrow{display:none !important;}
/* Decorative 01/02/03 on unordered service cards (process steps keep theirs: order matters there). */
.pillar .n{display:none;}
/* Scroll cue collided with the primary CTA on several heroes; the hero is self-evidently scrollable. */
.scroll-cue{display:none !important;}

/* ---------- Surfaces & rhythm ---------- */
/* Bands were assigned by position (every 3rd section), not by content, so they read as random.
   One continuous surface; sections are separated by a hairline inset to the content width. */
section:nth-of-type(3n+2),section:nth-of-type(3n+3){background:transparent;box-shadow:none;clip-path:none;}
section:not(.hero):not(.cta){
  padding-top:clamp(80px,8vw,128px) !important;padding-bottom:clamp(80px,8vw,128px) !important;
  background-image:linear-gradient(var(--line),var(--line));
  background-size:calc(100% - 10vw) 1px;background-position:top center;background-repeat:no-repeat;
}
section.hero + section:not(.cta){background-image:none;}
@media (max-width:720px){
  section:not(.hero):not(.cta){padding-top:48px !important;padding-bottom:48px !important;}
  /* one rhythm on phones: the blocks between sections use the same 48px as sections */
  .logo-wrap,.marquee-wrap{padding-top:48px !important;padding-bottom:48px !important;margin-top:0 !important;margin-bottom:0 !important;}
  section.cta{padding-top:48px !important;padding-bottom:48px !important;margin-top:0 !important;margin-bottom:0 !important;}
  footer{padding-top:48px !important;}
  #wrap section.cta,#wrap section.cta#contact{padding-top:48px !important;padding-bottom:48px !important;}
}

/* ---------- Buttons ---------- */
.btn{
  transition:transform 160ms var(--ease-out),background-color 200ms ease,border-color 200ms ease,color 200ms ease;
  font-weight:600;letter-spacing:0;
}
.btn:active{transform:scale(0.97);}
@media (hover:hover) and (pointer:fine){
  .btn:not(.ghost):hover{background:var(--accent);color:#0a0c08;transform:translateY(-1px);}
  .btn.ghost:hover{border-color:var(--accent);color:var(--accent);}
}

/* ---------- Cards ---------- */
.pillar,.card,.step,.industries .ind{
  border-radius:var(--radius);
  transition:border-color 200ms ease,transform 220ms var(--ease-out),background-color 200ms ease;
}
@media (hover:hover) and (pointer:fine){
  .pillar:hover,.card:hover,.step:hover{border-color:rgba(200,243,29,0.35);transform:translateY(-2px);}
}

/* ---------- Hero visual ---------- */
.hero-ai-btn{
  font-family:var(--display);font-weight:600;
  transition:transform 160ms var(--ease-out),border-color 200ms ease,color 200ms ease;
}
.hero-ai-btn:active{transform:scale(0.96);}
@media (hover:hover) and (pointer:fine){
  .hero-ai-btn:hover{border-color:var(--accent);color:var(--accent);}
}
/* .pillars.cols-4 out-specifies each page's mobile 1fr rule, so 4 columns survived onto phones. */
@media (max-width:900px){.pillars.cols-4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.pillars.cols-4{grid-template-columns:1fr;}}
/* Decorative hero glows bleed past the viewport edge on phones. */
html,body{overflow-x:clip;}
@media (max-width:900px){
  .hero-row{display:flex;flex-direction:column;}
  .hero-row .hero-content{order:1;}
  /* phones: the 3D visual + chat chips sit on top, the headline and CTAs below */
  .hero-row .hero-visual{order:-1;min-height:300px;max-height:340px;margin-bottom:8px;}
}

/* ---------- FAQ ---------- */
.faq-q{font-weight:600;letter-spacing:-0.005em;}
.faq-item{transition:border-color 200ms ease;}
.faq-item.open{border-color:rgba(200,243,29,0.3);}

/* ---------- Reading width (blog + case studies) ----------
   The templates nest .detail-content-wrap / .content-post-default inside themselves and pad with 5vw,
   so the padding applied twice and the column got NARROWER on wider screens. Fixed gutter, one layer. */
.detail-content-wrap{max-width:768px;padding:0 24px 100px;}
.content-post-default{max-width:1008px;padding:0 24px 100px;}
.detail-content-wrap .detail-content-wrap,.content-post-default .content-post-default{max-width:none;padding:0;margin:0;}
.hero-image{max-width:1168px;padding-left:24px;padding-right:24px;}
body:has(.detail-content-wrap) .hero:not(:has(.hero-row)){max-width:768px;padding-left:24px;padding-right:24px;}
body:has(.content-post-default) .hero:not(:has(.hero-row)){max-width:1008px;padding-left:24px;padding-right:24px;}
.detail-content-wrap p,.detail-content-wrap li{font-size:17.5px;}

/* ---------- Blog article ---------- */
.detail-content-wrap h2{font-family:var(--display);font-weight:700;letter-spacing:-0.02em;line-height:1.15;margin-top:2.2em;margin-bottom:0.6em;}
.detail-content-wrap h3{font-family:var(--display);font-weight:600;letter-spacing:-0.01em;margin-top:1.8em;}
.detail-content-wrap p,.detail-content-wrap li{line-height:1.75;}
.detail-content-wrap a{color:var(--accent);text-decoration:underline;text-decoration-color:rgba(200,243,29,0.4);}
.detail-content-wrap a:hover{text-decoration-color:var(--accent);}
.dxd-quick-answer{
  border:1px solid rgba(200,243,29,0.28) !important;
  border-left-width:1px !important;
  background:linear-gradient(180deg,rgba(200,243,29,0.07),rgba(200,243,29,0.02)) !important;
  border-radius:var(--radius) !important;
}

/* ---------- Case studies ---------- */
.content-post-default a,.related-services a{color:var(--accent);}
.content-post-default ul li a{text-decoration:underline;text-decoration-color:rgba(200,243,29,0.4);}
.dxd-trusted-by{margin-top:48px;padding-top:32px;border-top:1px solid var(--line);}
.dxd-trusted-by::before{
  content:"Client references";display:block;font-family:var(--display);font-weight:600;
  font-size:19px;letter-spacing:-0.01em;color:var(--fg);margin-bottom:18px;
}
.dxd-logo-grid{display:flex !important;flex-wrap:wrap;gap:14px;}
/* The item is the chip: covers both markup variants (img directly inside, or wrapped in .dxd-logo-chip). */
.dxd-logo-item{
  flex:0 0 auto;width:180px;height:92px;display:flex !important;align-items:center;justify-content:center;
  background:#f2f3f5;border-radius:var(--radius);padding:16px 20px;
}
.dxd-logo-item img{max-width:100%;max-height:52px;width:auto;height:auto;object-fit:contain;display:block;filter:none !important;}
.dxd-logo-chip{display:flex !important;align-items:center;justify-content:center;width:100%;height:100%;background:none;padding:0;}
/* Text-only references (no logo file yet) sit on a dark chip so the light text stays readable. */
.dxd-logo-item:has(> .dxd-logo-chip[style*="color:#f2f3f5"]){background:rgba(255,255,255,0.04);border:1px solid var(--line);}

/* =====================================================================
   v3 TEMPLATE LAYER: structure, not just paint.
   ===================================================================== */

/* ---------- Section headers: heading left, intro right, content full width below ---------- */
@media (min-width:901px){
  section:has(> h2.big):not(.hero):not(.cta){
    display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(24px,3vw,48px);align-items:start;
  }
  section:has(> h2.big):not(.hero):not(.cta) > *{grid-column:1 / -1;}
  section:has(> h2.big):not(.hero):not(.cta) > h2.big{grid-column:1 / span 6;grid-row:span 3;max-width:none;}
  section:has(> h2.big):not(.hero):not(.cta) > h2.big + .lede,
  section:has(> h2.big):not(.hero):not(.cta) > h2.big + .lede + .lede{grid-column:8 / -1;margin-top:0.35em;max-width:none;}
  section:has(> h2.big):not(.hero):not(.cta) > h2.big + .lede + .lede{margin-top:1em;}
  /* a button right under the intro text sits with it in the right column */
  section:has(> h2.big):not(.hero):not(.cta) > :is(h2.big + .lede, h2.big + .lede + .lede) + .btn{grid-column:8 / -1;justify-self:start;margin-top:24px;}
}
/* a button that closes a section (after its card grid) is centred under the grid */
section:has(> h2.big) > .btn{grid-column:1 / -1;justify-self:center;width:auto;}
section:has(> h2.big) > :is(h2.big + .lede, h2.big + .lede + .lede) + .btn{justify-self:start;}
@media (max-width:900px){
  section:has(> h2.big) > .btn{display:flex;width:fit-content;margin-left:auto;margin-right:auto;}
  section:has(> h2.big) > :is(h2.big + .lede, h2.big + .lede + .lede) + .btn{margin-left:0;}
}
h2.big{font-size:clamp(2rem,1.25rem + 2.3vw,3.25rem);line-height:1.06;}
.lede{font-size:clamp(17px,0.95rem + 0.3vw,19px);line-height:1.7;color:var(--fg-body);}
section p{color:var(--fg-body);}

/* ---------- Split sections: zig-zag, bigger text, consistent image crop ---------- */
.split{gap:clamp(32px,6vw,96px);}
@media (min-width:901px){.split{grid-template-columns:1fr 1fr;}}
@media (max-width:900px){.split{grid-template-columns:1fr !important;}.split > :not(.split-text){order:2 !important;}}
.split .split-text h2.big{margin-bottom:0;}
.split .split-text .lede{margin-top:24px;}
.split > img,.split > picture,.split > div:not(.split-text){border-radius:20px;overflow:hidden;}
.split img{aspect-ratio:5/4;object-fit:cover;border-radius:20px;border:1px solid var(--line);}
@media (min-width:901px){
  section:nth-of-type(odd) .split > :not(.split-text){order:-1 !important;}
  section:nth-of-type(even) .split > :not(.split-text){order:2 !important;}
}

/* ---------- Service grid ---------- */
.pillars{border-radius:20px;overflow:hidden;background:var(--line);}
.pillar{background:var(--surface);padding:clamp(28px,2.6vw,40px);}
.pillar h3{font-size:20px;margin-top:0;}
.pillar p{font-size:15.5px;line-height:1.7;color:var(--fg-dim);}
@media (hover:hover) and (pointer:fine){
  .pillar:hover{background:var(--surface-2);transform:none;}
  .pillar:hover h3{color:var(--accent);}
}
.pillar h3{transition:color 200ms ease;}

/* ---------- Process: one row timeline, no orphan row ---------- */
/* Two container variants ship: .process (gap grid) and .steps (1px hairline grid on a grey fill). Same timeline for both. */
:is(.process,.steps,:has(> .step)){
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:clamp(20px,2.4vw,36px) !important;
  background:none !important;border:0 !important;
}
@media (max-width:900px){:is(.process,.steps,:has(> .step)){grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){:is(.process,.steps,:has(> .step)){grid-template-columns:1fr;}}
.step:hover::after,.step::after{opacity:1 !important;inset:auto !important;top:0 !important;left:0 !important;width:40px !important;height:2px !important;background:var(--accent) !important;transform:none !important;}
.step{background:none;border:0;border-radius:0;padding:28px 0 0;position:relative;}
.step::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--line);}
.step::after{content:"";position:absolute;top:0;left:0;width:40px;height:2px;background:var(--accent);}
.step .n{font-family:var(--display);font-size:15px;font-weight:600;color:var(--accent);letter-spacing:0.04em;}
.step h4{font-size:19px;margin-top:14px;}
.step p{font-size:15.5px;color:var(--fg-dim);line-height:1.7;}
@media (hover:hover) and (pointer:fine){.step:hover{transform:none;}}
.oprocess .num{font-family:var(--display);font-size:18px;font-weight:600;}
.oprocess h4{font-size:20px;}
.oprocess p{font-size:16px;color:var(--fg-dim);}

/* ---------- Industries / related cards ---------- */
.industries{border-radius:20px;overflow:hidden;}
.industries .ind{background:var(--surface);font-family:var(--display);font-size:16.5px;padding:24px 26px;display:flex;align-items:center;gap:12px;}
.industries .ind::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none;}
.cards .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);}
.cards .card h4{font-size:19px;}
.cards .card h4 a{color:var(--fg);text-decoration:none;}
.cards .card h4 a::after{content:" \2192";color:var(--accent);}

/* ---------- FAQ ---------- */
.faq-q{font-size:18px;padding:24px 4px;}
.faq-a p{color:var(--fg-dim);font-size:16px;line-height:1.75;}

/* ---------- CTA: a lit panel instead of a centred line in the void ---------- */
section.cta{
  width:calc(100% - 10vw);max-width:1240px;margin:clamp(40px,5vw,72px) auto;
  padding:clamp(64px,7vw,104px) clamp(24px,5vw,72px) !important;
  border:1px solid rgba(200,243,29,0.22);border-radius:28px;
  background:radial-gradient(80% 120% at 50% 0%,rgba(200,243,29,0.13),transparent 60%),var(--surface) !important;
  box-shadow:none;clip-path:none;
}
section.cta h2{font-size:clamp(2rem,1.2rem + 2.6vw,3.4rem);line-height:1.06;}
section.cta .lede{text-align:center !important;color:var(--fg-body);}
section.cta .btn{background:var(--accent);color:#0a0c08;}
@media (max-width:720px){section.cta{width:calc(100% - 32px);border-radius:20px;}}

/* ---------- Case studies ---------- */
.content-post-default .detail-content-wrap{max-width:none;padding:0;margin:0;}
.content-post-default{max-width:1008px;}
body:has(.content-post-default) .hero-image{max-width:1008px;padding-bottom:clamp(48px,5vw,72px);}
.content-post-default h2{color:var(--fg);font-family:var(--display);font-size:clamp(1.75rem,1.2rem + 1.6vw,2.5rem);line-height:1.12;letter-spacing:-0.02em;margin-bottom:20px;}
.detail-content-wrap > .bzotech-row:first-child{
  padding:clamp(28px,3.4vw,44px);border:1px solid rgba(200,243,29,0.22);border-radius:20px;
  background:linear-gradient(160deg,rgba(200,243,29,0.09),rgba(200,243,29,0.015) 55%),var(--surface);
}
.detail-content-wrap > .bzotech-row:first-child h3{font-size:13px;font-family:var(--display);color:var(--fg-dim);font-weight:600;margin:20px 0 6px;letter-spacing:0.02em;}
.detail-content-wrap > .bzotech-row:first-child p{color:var(--fg);font-size:16.5px;margin:0;}
.content-post-default .bzotech-row.row2{gap:20px;margin-top:20px;}
.content-post-default .bzotech-row.row2 > div{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:clamp(24px,2.8vw,36px);}
.content-post-default .bzotech-row.row2 h3{margin-top:0 !important;font-size:21px;font-family:var(--display);}
.content-post-default p{font-size:16.5px;color:var(--fg-body);}
.content-post-default ul li{font-size:16px;color:var(--fg-body);line-height:1.6;}
.content-post-default ul li::before{top:9px;}
.detail-content-wrap > .bzotech-row:last-of-type:not(.row2):not(:first-child){margin-top:56px;}
.detail-content-wrap > .bzotech-row:not(:first-child):not(.row2) h3{font-size:24px;font-family:var(--display);}

/* ---------- Blog article ---------- */
body:not(:has(.content-post-default)) .detail-content-wrap :is(p,li){color:var(--fg-body);font-size:18px;line-height:1.75;}
body:not(:has(.content-post-default)) .detail-content-wrap h2{font-size:clamp(1.6rem,1.2rem + 1vw,2.05rem);}
body:not(:has(.content-post-default)) .detail-content-wrap h3{font-size:1.3rem;}
.content-post-default .detail-content-wrap h2{margin-top:0;}
.content-post-default .detail-content-wrap :is(p,li){font-size:16.5px;line-height:1.7;}
.detail-content-wrap strong{color:var(--fg);}
body:has(.detail-content-wrap) .hero p{color:var(--fg-body);font-size:19px;}

/* =====================================================================
   v5: site-wide audit fixes
   ===================================================================== */

/* Hero backgrounds: drop the two-axis grid overlay (decoration with nothing under it); keep the soft light. */
.hero::after{display:none !important;}

/* Listing/utility pages (blog, portfolio, services, faqs, contact...): the title was too small for the space it owns. */
body:not(:has(.detail-content-wrap)):not(:has(.content-post-default)) .hero:not(:has(.hero-row)){min-height:0;padding-bottom:clamp(40px,4vw,64px);}
body:not(:has(.detail-content-wrap)):not(:has(.content-post-default)) .hero:not(:has(.hero-row)) h1{
  font-size:clamp(2.6rem,1.5rem + 3.8vw,5rem);line-height:1.02;letter-spacing:-0.03em;max-width:16ch;
}
body:not(:has(.detail-content-wrap)):not(:has(.content-post-default)) .hero:not(:has(.hero-row)) + section{padding-top:clamp(24px,3vw,48px) !important;}
body:not(:has(.detail-content-wrap)):not(:has(.content-post-default)) .hero:not(:has(.hero-row)) p{font-size:clamp(17px,1rem + 0.3vw,20px);color:var(--fg-body);}

/* Services index: 01-06 on unordered categories is decoration, not information. */
.cat-head > .n{display:none;}
.cat-head{grid-template-columns:1fr !important;}
.cat-head p{font-size:16px;color:var(--fg-dim);}
.cat-links{padding-left:0 !important;}
/* Category description left, its services right: same header grid as every other section. */
@media (min-width:901px){
  .cat-block{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,4vw,64px);align-items:start;}
  .cat-links{margin-top:6px !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
.cat-links a{font-family:var(--display);font-weight:500;font-size:16px;}

/* Labels repeating a card's own heading (Team / Pricing / Local advantage). */
.why-card .tag{display:none;}
.why-card h4{margin-top:0;font-size:19px;}

/* Website portfolio: tiles were whole-page screenshots at full length (a 40,000px page).
   Fixed 3:4 window on the top of each site; hover scrolls the screenshot through the window. */
.masonry{column-count:auto !important;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;}
.masonry .tile{margin:0;aspect-ratio:3/4;border-radius:var(--radius);}
.masonry .tile img{width:100%;height:100%;object-fit:cover;object-position:50% 0%;transition:object-position 5s cubic-bezier(0.45,0,0.55,1);}
@media (hover:hover) and (pointer:fine){
  .masonry .tile:hover img{object-position:50% 100%;}
}
.masonry .tile .cap{opacity:1;font-family:var(--display);font-weight:600;font-size:14px;padding:40px 16px 14px;}
@media (max-width:520px){.masonry{grid-template-columns:repeat(2,1fr);gap:12px;}}

/* Homepage: sections whose heading is deliberately centred (results, certifications, AI agent stage)
   stay centred instead of joining the left/right header grid. */
section:has(> h2.big[style*="text-align:center"]){display:block !important;}
section:has(> h2.big[style*="text-align:center"]) > .lede{margin-left:auto;margin-right:auto;text-align:center;}

/* Images now carry real width/height attributes (stops layout shift). Zero-specificity rule so any
   template CSS that sets a height still wins, while plain images keep their aspect ratio. */
:where(img[width][height]){height:auto;}

/* Article table of contents (long blog posts) */
.dxd-toc{margin:32px 0 8px;padding:22px 26px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);}
.dxd-toc-title{font-family:var(--display);font-weight:600;font-size:16px !important;color:var(--fg) !important;margin:0 0 10px !important;}
.dxd-toc ol{margin:0;padding-left:20px;display:grid;gap:6px;}
.dxd-toc li{font-size:15.5px !important;line-height:1.5 !important;color:var(--fg-dim) !important;}
.dxd-toc li::marker{color:var(--accent);}
.dxd-toc a{color:var(--fg-body) !important;text-decoration:none !important;}
.dxd-toc a:hover{color:var(--accent) !important;}
.detail-content-wrap h2[id],.content-post-default h2[id]{scroll-margin-top:96px;}

/* Products menu hidden for now (2026-10-10, owner's request). Pages stay live at their URLs.
   To bring it back: delete this block. */
.nav-item:has(> a[href$="/ai-crm/"]),#products-nav-item,#products-mega-menu,
.mnav-group:has(a[href$="/ai-crm/"]),
.footer-col:has(> a[href$="/ai-crm/"]){display:none !important;}
@media (min-width:901px){.footer-top:has(.footer-col > a[href$="/ai-crm/"]){grid-template-columns:1.6fr repeat(3,1fr);}}

/* Phone hero: static orb instead of the WebGL particle field (the module stops early on <=820px) */
.hero-orb-lite{display:none;}
@media (max-width:820px){
  .hero-orb-lite{display:block;position:absolute;inset:0;z-index:0;pointer-events:none;animation:dxdOrbBreathe 7s ease-in-out infinite;}
  .hero-orb-lite img{width:100%;height:100%;object-fit:contain;display:block;}
  #gl-hero{display:none !important;}
  #hero-fallback{animation:none !important;opacity:.18 !important;}
}
@keyframes dxdOrbBreathe{0%,100%{transform:scale(0.97) rotate(-2deg);opacity:.85}50%{transform:scale(1.04) rotate(3deg);opacity:1}}
@media (prefers-reduced-motion:reduce){.hero-orb-lite{animation:none;}}

/* First-hand experience callouts + sources list (researched blog posts) */
.detail-content-wrap blockquote.dxd-experience{margin:28px 0;padding:18px 22px;border:1px solid rgba(200,243,29,0.28);border-radius:var(--radius);background:linear-gradient(180deg,rgba(200,243,29,0.06),rgba(200,243,29,0.015));}
.detail-content-wrap blockquote.dxd-experience p{margin:0 !important;color:var(--fg) !important;font-style:normal !important;}
.detail-content-wrap blockquote.dxd-experience::before{content:"From our client work";display:block;font-family:var(--display);font-weight:600;font-size:14px;color:var(--accent);margin-bottom:8px;}
.detail-content-wrap table{width:100%;border-collapse:collapse;margin:24px 0;font-size:15px;display:block;overflow-x:auto;}
.detail-content-wrap th,.detail-content-wrap td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top;color:var(--fg-body);}
.detail-content-wrap th{background:var(--surface);color:var(--fg);font-family:var(--display);font-weight:600;}
ol.dxd-sources{padding-left:22px;}
ol.dxd-sources li{font-size:15px !important;line-height:1.55 !important;margin-bottom:6px;color:var(--fg-dim) !important;}
ol.dxd-sources a{word-break:break-word;}

/* Author byline + box (blog posts) */
.dxd-byline a{color:var(--fg);text-decoration:none;border-bottom:1px solid rgba(200,243,29,0.4);}
.dxd-byline a:hover{color:var(--accent);}
.dxd-author-box{display:flex;gap:18px;align-items:flex-start;margin:48px 0 32px;padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);}
.dxd-author-box img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none;border:1px solid var(--line);}
.dxd-author-box p{margin:0 !important;}
.dxd-author-name{font-family:var(--display);font-weight:600;font-size:17px !important;color:var(--fg) !important;margin-bottom:6px !important;}
.dxd-author-name a{color:var(--fg) !important;text-decoration:none !important;}
.dxd-author-bio{font-size:15.5px !important;line-height:1.65 !important;color:var(--fg-dim) !important;}
@media (max-width:520px){.dxd-author-box{flex-direction:column;}}

/* Articles list on author profile */
.dxd-articles{list-style:none;padding:0;margin:8px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 32px;}
.dxd-articles li{border-top:1px solid var(--line);}
.dxd-articles a{display:block;padding:14px 0;color:var(--fg);text-decoration:none;font-size:16px;line-height:1.45;transition:color 160ms ease;}
.dxd-articles a:hover{color:var(--accent);}
.dxd-profile-more,.dxd-team-more,.dxd-contact-more{max-width:1240px;}
.dxd-contact-more h3{font-family:var(--display);font-size:20px;margin:28px 0 8px;}
.dxd-contact-more > h3 + p{font-size:clamp(17px,0.95rem + 0.3vw,19px);line-height:1.7;color:var(--fg-body);}
@media (min-width:901px){.dxd-contact-more > h3,.dxd-contact-more > h3 + p{grid-column:8 / -1 !important;}}
section :is(.dxd-profile-more,.dxd-team-more,.dxd-contact-more) a,.dxd-profile-more .lede a,.dxd-team-more .lede a,.dxd-contact-more a{color:var(--accent);}

/* Key-terms glossary (definition list) */
.dxd-glossary{margin:8px 0 32px;display:grid;grid-template-columns:minmax(0,15em) 1fr;gap:14px 24px;padding:22px 26px;border:1px solid var(--line);border-radius:var(--radius);}
.dxd-glossary dt{font-family:var(--display);font-weight:600;color:var(--fg);font-size:16px;}
.dxd-glossary dd{margin:0;color:var(--fg-body);font-size:16px;line-height:1.6;}
@media (max-width:640px){.dxd-glossary{grid-template-columns:1fr;gap:4px;}.dxd-glossary dd{margin-bottom:12px;}}

/* Process steps are now real <ol>/<li> (an ordered sequence); keep the existing card/timeline look. */
ol:is(.steps,.process,.process-grid,.steps3){list-style:none;padding-left:0;margin-left:0;}

/* Several pages force text cards to 2 columns down to ~380px: ~116px-wide paragraphs on a phone. */
@media (max-width:560px){.cards,.pillars{grid-template-columns:1fr !important;}}

/* ---------- Motion safety ---------- */
@media (prefers-reduced-motion:reduce){
  .btn,.pillar,.card,.step,.hero-ai-btn,.masonry .tile img{transition:none;}
  .btn:active,.hero-ai-btn:active{transform:none;}
}

/* ---------- inner-page motion, matching the homepage (script: dxd-fx.js) ---------- */
.fxh h1 .hw{display:inline-block;white-space:nowrap;perspective:600px;}
.fxh h1 .hc{display:inline-block;transform-origin:50% 100%;opacity:0;filter:blur(10px);transform:translateY(-.9em) rotateX(95deg);
  transition:transform 1s cubic-bezier(.16,1,.3,1) calc(var(--i) * 45ms + 150ms), opacity .6s ease calc(var(--i) * 45ms + 150ms), filter .8s ease calc(var(--i) * 45ms + 150ms);}
.fxh.on h1 .hc{transform:none;opacity:1;filter:none;}
.fxh p .pw{display:inline-block;opacity:0;transform:translateY(.7em);filter:blur(5px);
  transition:opacity .6s ease calc(var(--f) * 1.2s + .9s), transform .8s cubic-bezier(.16,1,.3,1) calc(var(--f) * 1.2s + .9s), filter .6s ease calc(var(--f) * 1.2s + .9s);}
.fxh.on p .pw{opacity:1;transform:none;filter:none;}
/* after the intro: scroll scatters the letters and dissolves the words (hero --p, 0..1 over 45% of a screen) */
.fxh.typed h1 .hc{transition:none;transform-origin:50% 50%;--lp:clamp(0, (var(--p, 0) - var(--i) * .014) / .38, 1);
  transform:translate3d(calc(var(--lp) * var(--r) * 1.1em), calc(var(--lp) * -1.6em), 0) rotate(calc(var(--lp) * var(--r) * 55deg)) rotateX(calc(var(--lp) * -75deg)) scale(calc(1 + var(--lp) * .25));
  opacity:calc(1 - var(--lp) * 1.1);filter:blur(calc(var(--lp) * 8px));}
.fxh.typed p .pw{transition:none;--lw:clamp(0, (var(--p, 0) - var(--f) * .45) / .3, 1);
  opacity:calc(1 - var(--lw));transform:translateY(calc(var(--lw) * -1.1em));filter:blur(calc(var(--lw) * 6px));}
.fxh.typed .cta-row,.fxh.typed .breadcrumb,.fxh.typed .meta-row{opacity:calc(1 - var(--p, 0) * 1.5);transition:none;}
@media (prefers-reduced-motion: reduce){.fxh h1 .hc,.fxh p .pw{transition:none !important;transform:none !important;opacity:1 !important;filter:none !important;}}

/* FAQ cards (sideways marquee, pause on hover) */
.faq[hidden]{display:none !important;}
.fxq-rows{display:flex;flex-direction:column;gap:18px;margin:44px 0 0 calc(50% - 50vw);width:100vw;}
.fxq-row{min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.fxq-track{display:flex;align-items:flex-start;width:max-content;animation:fxqScroll var(--d,80s) linear infinite;}
.fxq-rev{animation-name:fxqScrollRev;}
.fxq-row:hover .fxq-track,.fxq-row:active .fxq-track{animation-play-state:paused;}
.fxq-group{display:flex;align-items:flex-start;gap:18px;flex-shrink:0;padding-right:18px;}
@keyframes fxqScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@keyframes fxqScrollRev{from{transform:translateX(-50%);}to{transform:translateX(0);}}
.fxq-card{position:relative;width:340px;flex-shrink:0;padding:24px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.015));box-shadow:0 30px 60px -25px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,255,255,.05);text-align:left;overflow:hidden;}
.fxq-card::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.55;}
.fxq-card h3{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em;line-height:1.35;color:#fff;}
.fxq-card p{margin:10px 0 0;padding:0;font-size:13.5px;line-height:1.65;color:var(--fg-dim);max-width:none;}
.fxq-card a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;}
@media (max-width:900px){.fxq-card{width:280px;padding:20px;}.fxq-card p{font-size:13px;}}
@media (prefers-reduced-motion: reduce){.fxq-row{overflow-x:auto;-webkit-mask-image:none;mask-image:none;}.fxq-track{animation:none;}.fxq-group[aria-hidden="true"]{display:none;}}

/* ---------- blog posts: full-width article layout (hero text + image side by side, sticky contents column) ---------- */
@media (min-width:1100px){
  body:has(.dxd-toc) #wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);column-gap:56px;row-gap:0;align-items:center;max-width:1240px;margin:0 auto;padding:0 24px;}
  body:has(.dxd-toc) #wrap > *{grid-column:1 / -1;}
  body:has(.dxd-toc) #wrap > .hero{grid-column:1;grid-row:1;max-width:none !important;width:auto;margin:0 !important;padding:clamp(96px,9vw,140px) 0 40px !important;}
  body:has(.dxd-toc) #wrap > .hero-image{grid-column:2;grid-row:1;max-width:none !important;width:auto;margin:0 !important;padding:clamp(96px,9vw,140px) 0 40px !important;align-self:center;}
  body:has(.dxd-toc) .hero-image img{width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover;border-radius:20px;border:1px solid var(--line);}
  body:has(.dxd-toc) .hero .hero-content{max-width:none !important;padding:0 !important;margin:0 !important;}
  body:has(.dxd-toc) .hero h1{font-size:clamp(2.1rem,3.3vw,3.4rem);line-height:1.08;max-width:none;}
  body:has(.dxd-toc) #wrap > .detail-content-wrap{max-width:none !important;width:100%;margin:0 !important;padding:8px 0 100px !important;display:grid;grid-template-columns:290px minmax(0,860px);column-gap:64px;row-gap:0;justify-content:start;}
  body:has(.dxd-toc) .detail-content-wrap > .detail-content-wrap{display:contents;}
  body:has(.dxd-toc) .detail-content-wrap > *,
  body:has(.dxd-toc) .detail-content-wrap > .detail-content-wrap > *{grid-column:2;min-width:0;}
  body:has(.dxd-toc) .detail-content-wrap > .detail-content-wrap > .dxd-toc{grid-column:1;grid-row:1 / span 400;align-self:start;position:sticky;top:96px;margin:0;max-height:calc(100vh - 128px);overflow:auto;}
  body:has(.dxd-toc) .dxd-quick-answer{margin-top:0 !important;}
  body:has(.dxd-toc) .detail-content-wrap table{display:table;}
  body:has(.dxd-toc) .detail-content-wrap p,body:has(.dxd-toc) .detail-content-wrap li{font-size:18px;}
}
@media (min-width:900px) and (max-width:1099px){
  body:has(.dxd-toc) #wrap > .detail-content-wrap,body:has(.dxd-toc) #wrap > .hero{max-width:880px !important;}
  body:has(.dxd-toc) .hero-image{max-width:880px !important;}
}
/* blog hero images carry their title and category label inside the picture: never crop them (phones used a short 16:9 box) */
body:has(.dxd-toc) .hero-image img{height:auto !important;aspect-ratio:4 / 3;object-fit:cover;}

/* ---------- case-study pages (body.cs-page): full-width layout, key-result band, at-a-glance sidebar ---------- */
body.cs-page .cs-wrap{max-width:none;padding:0;margin:0;}
.cs-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:40px;padding:8px 0 96px;}
.cs-side{order:-1;}
.cs-toc{display:none;}
.cs-main{min-width:0;}
.cs-main > h2{font-family:var(--display);font-weight:700;letter-spacing:-.02em;line-height:1.12;font-size:clamp(1.7rem,1.2rem + 1.4vw,2.3rem);margin:2.1em 0 .55em;scroll-margin-top:96px;}
.cs-main > h2:first-child{margin-top:0;}
.cs-main h3{font-family:var(--display);font-weight:600;letter-spacing:-.01em;font-size:1.25rem;margin:1.6em 0 .4em;color:var(--fg);}
.cs-main p,.cs-main li{font-size:17.5px;line-height:1.75;color:var(--fg-body);}
.cs-main p{margin:0 0 1.1em;max-width:none;}
.cs-main a{color:var(--accent);text-decoration:underline;text-decoration-color:rgba(200,243,29,.4);text-underline-offset:2px;}
.cs-main strong{color:var(--fg);}
.cs-band{position:relative;padding:clamp(26px,3vw,40px);border:1px solid rgba(200,243,29,.28);border-radius:22px;background:radial-gradient(120% 140% at 0% 0%,rgba(200,243,29,.12),transparent 55%),var(--surface);overflow:hidden;}
.cs-label{display:block;font:600 12px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;}
.cs-band h2{margin:0 0 18px;font-family:var(--display);font-weight:800;font-size:clamp(1.9rem,1.1rem + 2.6vw,3.2rem);line-height:1.05;letter-spacing:-.03em;color:var(--fg);}
.cs-chips{display:flex;flex-wrap:wrap;gap:8px;}
.cs-chip{display:inline-block;padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.04);font-size:12.5px;font-weight:600;color:var(--fg-body);line-height:1.2;}
.cs-two{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;margin-top:22px;}
.cs-card{padding:clamp(22px,2.4vw,32px);border:1px solid var(--line);border-radius:20px;background:var(--surface);}
.cs-card-accent{border-top:2px solid var(--accent);}
.cs-card h3{margin:0 0 .6em;font-size:1.35rem;}
.cs-card ul,.cs-outcome ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.cs-card li,.cs-outcome li{position:relative;padding-left:26px;font-size:16.5px;line-height:1.55;}
.cs-card li::before,.cs-outcome li::before{content:"";position:absolute;left:0;top:.5em;width:12px;height:7px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg);}
.cs-outcome li{padding:16px 18px 16px 44px;border:1px solid var(--line);border-radius:14px;background:var(--surface);}
.cs-outcome li::before{left:18px;top:1.35em;}
.cs-outcome > p{margin-bottom:.8em;}
.cs-steps{counter-reset:csstep;list-style:none;margin:0 0 1.4em;padding:0;display:grid;gap:12px;}
.cs-steps li{counter-increment:csstep;position:relative;padding:16px 18px 16px 62px;border:1px solid var(--line);border-radius:14px;background:var(--surface);}
.cs-steps li::before{content:counter(csstep);position:absolute;left:18px;top:14px;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#0a0a0c;font:700 14px/30px var(--display);text-align:center;}
.cs-main table{width:100%;border-collapse:collapse;margin:24px 0 8px;font-size:15px;}
.cs-main th,.cs-main td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top;color:var(--fg-body);}
.cs-main th{background:var(--surface);color:var(--fg);font-family:var(--display);font-weight:600;}
.cs-main .cs-cap{font-size:14px;color:var(--fg-dim);}
.cs-main blockquote.dxd-experience{margin:28px 0;padding:18px 22px;border:1px solid rgba(200,243,29,.28);border-radius:14px;background:linear-gradient(180deg,rgba(200,243,29,.06),rgba(200,243,29,.015));}
.cs-main blockquote.dxd-experience p{margin:0;color:var(--fg);font-style:normal;}
.cs-main blockquote.dxd-experience::before{content:"From our client work";display:block;font-family:var(--display);font-weight:600;font-size:14px;color:var(--accent);margin-bottom:8px;}
.cs-links{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:10px;}
.cs-links li{margin:0;}
.cs-main .cs-links a{display:inline-block;padding:9px 16px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--fg);font-size:15px;}
.cs-main .cs-links a:hover{border-color:var(--accent);}
.cs-more{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;}
.cs-main .cs-more-card{display:block;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--surface);text-decoration:none;color:var(--fg);}
.cs-more-card img{display:block;width:100%;height:auto;aspect-ratio:16 / 10;object-fit:cover;}
.cs-more-cat{display:block;padding:14px 16px 0;font:600 11.5px/1 ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);}
.cs-more-title{display:block;padding:8px 16px 18px;font-family:var(--display);font-weight:600;font-size:1.05rem;line-height:1.3;}
.cs-glance{padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--surface);}
.cs-glance p{max-width:none;}
.cs-glance-title{margin:0 0 12px;font:600 12px/1 ui-monospace,monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);}
.cs-glance-key{margin:0 0 18px;font-family:var(--display);font-weight:700;font-size:1.35rem;line-height:1.2;color:var(--fg);letter-spacing:-.02em;}
.cs-glance-sub{margin:16px 0 8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim);}
.cs-glance-val{margin:0;font-size:16px;color:var(--fg);}
.cs-cta{width:100%;justify-content:center;margin-top:22px;}
.cs-glance-link{display:block;margin-top:12px;font-size:14px;text-align:center;color:var(--fg-dim);}
.cs-toc ol{margin:0;padding-left:18px;display:grid;gap:8px;}
.cs-toc li{font-size:14.5px;color:var(--fg-dim);line-height:1.4;}
.cs-toc li::marker{color:var(--accent);}
.cs-toc a{color:var(--fg-body);text-decoration:none;}
.cs-toc a:hover{color:var(--accent);}
@media (min-width:700px){.cs-two{grid-template-columns:repeat(2,minmax(0,1fr));}.cs-outcome ul{grid-template-columns:repeat(2,minmax(0,1fr));}.cs-more{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (min-width:1100px){
  body.cs-page #wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);column-gap:56px;row-gap:0;align-items:center;max-width:1240px;margin:0 auto;padding:0 24px;}
  body.cs-page #wrap > *{grid-column:1 / -1;}
  body.cs-page #wrap > .hero{grid-column:1;grid-row:1;max-width:none !important;width:auto;margin:0 !important;padding:clamp(96px,9vw,140px) 0 40px !important;}
  body.cs-page #wrap > .hero-image{grid-column:2;grid-row:1;max-width:460px !important;width:100%;justify-self:end;margin:0 !important;padding:clamp(96px,9vw,140px) 0 40px !important;}
  body.cs-page .hero-image img{width:100%;height:auto !important;aspect-ratio:1 / 1;object-fit:cover;border-radius:20px;border:1px solid var(--line);}
  body.cs-page .hero .hero-content{max-width:none !important;padding:0 !important;margin:0 !important;}
  body.cs-page .hero h1{font-size:clamp(2.1rem,3.3vw,3.4rem);line-height:1.08;max-width:none;}
  .cs-layout{grid-template-columns:minmax(0,1fr) 340px;gap:64px;}
  .cs-side{order:0;position:sticky;top:96px;align-self:start;display:grid;gap:18px;}
  .cs-toc{display:block;padding:22px 24px;border:1px solid var(--line);border-radius:20px;background:var(--surface);}
}
@media (max-width:1099px){body.cs-page .hero-image img{height:auto !important;aspect-ratio:1 / 1;object-fit:cover;}body.cs-page .hero-image{max-width:520px;}}

@media (max-width:1099px){.cs-side{display:none;}}

/* portfolio hub: use the full page width like the article and case-study pages */
@media (min-width:1100px){
  body:has(.cat-filters) #wrap > .hero{max-width:1240px !important;width:100%;margin:0 auto !important;padding-left:24px !important;padding-right:24px !important;}
  body:has(.cat-filters) #wrap > section:not(.hero):not(.cta){max-width:1240px !important;padding-left:24px !important;padding-right:24px !important;}
  body:has(.cat-filters) .hero h1{max-width:none;}
}
.cs-steps li strong{display:block;margin-bottom:3px;font-size:1.02em;}

/* =====================================================================
   POLISH PASS 3: small details, site-wide
   ===================================================================== */
::selection{background:rgba(200,243,29,0.85);color:#0a0c08;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px;}
h1,h2,h3,.big{text-wrap:balance;}
p,li{text-wrap:pretty;}
html{scrollbar-color:#2a2f3a #07080b;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:#07080b;}
::-webkit-scrollbar-thumb{background:#262b35;border-radius:10px;border:2px solid #07080b;}
::-webkit-scrollbar-thumb:hover{background:#3a4150;}
/* service "solutions" grid: the line icons are near-black PNGs on a dark card - show them light */
.solution img{filter:brightness(0) invert(1);opacity:.82;transition:opacity .3s ease,transform .4s var(--ease-out);}
.solution:hover img{opacity:1;transform:translateY(-2px);}
/* closing sections with three intro paragraphs: keep the button in the text column */
@media (min-width:901px){
  section:has(> h2.big):not(.hero):not(.cta) > h2.big + .lede + .lede + .lede{grid-column:8 / -1;margin-top:1em;max-width:none;}
  section:has(> h2.big):not(.hero):not(.cta) > h2.big + .lede + .lede + .lede + .btn{grid-column:8 / -1;justify-self:start;margin-top:28px !important;}
  section:has(> h2.big + .lede + .lede + .lede):not(.hero):not(.cta) > h2.big{grid-row:span 5;}
}
/* form fields: clearer focus */
input:not([type=checkbox]):not([type=radio]),select,textarea{transition:border-color .2s ease,box-shadow .2s ease;}
input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:rgba(200,243,29,0.6) !important;box-shadow:0 0 0 3px rgba(200,243,29,0.12);outline:none;}
/* images inside cards ease in on hover rather than snapping */
@media (hover:hover) and (pointer:fine){
  .card img,.case-card img,.cs-card img{transition:transform .6s var(--ease-out);}
}

/* =====================================================================
   POLISH PASS 4: hub-page heroes get a visual on the empty right half
   ===================================================================== */
@keyframes dxdSpin{to{transform:rotate(360deg);}}
@media (min-width:1000px){
  body:not(:has(.dxd-toc)):not(.cs-page) section.hero:not(:has(.hero-row)){--rs:clamp(320px,30vw,460px);position:relative;isolation:isolate;overflow:visible !important;}
  body:not(:has(.dxd-toc)):not(.cs-page) section.hero:not(:has(.hero-row)) > .hero-content{position:static;}
  body:not(:has(.dxd-toc)):not(.cs-page) section.hero:not(:has(.hero-row)) > .hero-content > *{position:relative;z-index:1;}
  body:not(:has(.dxd-toc)):not(.cs-page) section.hero:not(:has(.hero-row)) > .hero-content::after{
    content:'';position:absolute;z-index:0;pointer-events:none;right:calc(50% - 50vw + 4vw);top:54%;width:var(--rs);height:var(--rs);margin-top:calc(var(--rs) / -2);border-radius:50%;
    background:radial-gradient(circle,rgba(200,243,29,.20) 0,rgba(200,243,29,.05) 32%,transparent 58%),
      repeating-radial-gradient(circle,transparent 0 37px,rgba(255,255,255,.075) 37px 38px);
    -webkit-mask:radial-gradient(circle,#000 38%,transparent 70%);mask:radial-gradient(circle,#000 38%,transparent 70%);
  }
  body:not(:has(.dxd-toc)):not(.cs-page) section.hero:not(:has(.hero-row)) > .hero-content::before{
    content:'';position:absolute;z-index:0;pointer-events:none;top:54%;
    width:calc(var(--rs) * .62);height:calc(var(--rs) * .62);right:calc(50% - 50vw + 4vw + var(--rs) * .19);margin-top:calc(var(--rs) * -.31);border-radius:50%;
    background:conic-gradient(from 0deg,transparent 0 58%,rgba(200,243,29,.9) 86%,transparent 100%);
    -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1.5px));mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1.5px));
    animation:dxdSpin 14s linear infinite;
  }
}
@media (prefers-reduced-motion:reduce){section.hero > .hero-content::before{animation:none !important;}}
/* FAQ marquee rows are full-bleed by design; let them run past the section edge and fade out at the screen edge */
section:has(.fxq-rows){overflow:visible !important;}
.fxq-row{-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
[hidden]{display:none !important;}

/* =====================================================================
   POLISH PASS 5: header, nav, menus, reading progress, press feedback
   ===================================================================== */
header{transition:padding .35s var(--ease-out),background-color .35s ease,box-shadow .35s ease;}
header.is-scrolled{padding-top:12px !important;padding-bottom:12px !important;background:rgba(7,8,11,.86) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.06),0 18px 40px -24px rgba(0,0,0,.9);}
@media (min-width:901px){
  header nav{align-items:center;}
  header nav > a,header nav > .nav-item > a{position:relative;transition:opacity .2s ease,color .2s ease;}
  header nav > a::after,header nav > .nav-item > a::after{
    content:'';position:absolute;left:0;right:0;bottom:-7px;height:1.5px;background:var(--accent);border-radius:2px;
    transform:scaleX(0);transform-origin:left center;transition:transform .35s var(--ease-out);
  }
  header nav > a:hover::after,header nav > .nav-item:hover > a::after,header nav [aria-current]::after{transform:scaleX(1);}
  header nav [aria-current]{opacity:1 !important;}
  /* Contact is the call to action: a pill, not another text link */
  header nav > a[href$="/contact-us/"]{opacity:1;color:var(--accent);border:1px solid rgba(200,243,29,.45);padding:9px 18px;border-radius:999px;
    transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .16s var(--ease-out);}
  header nav > a[href$="/contact-us/"]::after{display:none;}
  header nav > a[href$="/contact-us/"]:hover,header nav > a[href$="/contact-us/"][aria-current="page"]{background:var(--accent);color:#0a0c08;border-color:var(--accent);}
  header nav > a[href$="/contact-us/"]:active{transform:scale(.97);}
  /* dropdowns: softer depth, quicker ease-out, items nudge on hover */
  .mega-menu{border-radius:16px !important;background:rgba(13,15,20,.97) !important;
    box-shadow:0 40px 90px -30px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.04) inset;
    transition:opacity .18s var(--ease-out),transform .22s var(--ease-out),visibility .18s;}
  .mega-col a{transition:color .15s ease,opacity .15s ease,transform .2s var(--ease-out);}
  .mega-col a:hover{transform:translateX(3px);}
}
/* reading progress on blog posts and case studies */
.dxd-progress{position:fixed;left:0;top:0;width:100%;height:2px;z-index:1000;pointer-events:none;transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,var(--accent),#81f41d);box-shadow:0 0 12px rgba(200,243,29,.5);}
/* clickable cards answer a press */
@media (hover:hover) and (pointer:fine){
  a.card:active,.cs-more a:active{transform:scale(.985);}
}
/* dropdown links inherited the top nav's uppercase on inner pages; sentence case like the homepage */
header .mega-menu a{text-transform:none;letter-spacing:0;font-size:14px;}
header .mega-col h4{letter-spacing:.12em;}

/* ---------- 2026-10-22 rhythm pass: section headings get a brand accent bar, and each section's opening paragraph reads as the entry point ---------- */
section:has(> h2.big):not(.hero):not(.cta) > h2.big::before{content:"";display:block;width:40px;height:3px;border-radius:3px;background:var(--accent);margin:0 0 22px;}
section:has(> h2.big):not(.hero):not(.cta) > h2.big[style*="text-align:center"]::before{margin:0 auto 22px;}
section:has(> h2.big):not(.hero):not(.cta) > h2.big + .lede{color:#e6e8ec;font-size:clamp(18px,1rem + 0.35vw,20.5px);}


/* ---------- 2026-10-22 mobile + navigation pass ---------- */
/* smooth cross-fade between pages (supporting browsers; others navigate normally) */
@media (prefers-reduced-motion: no-preference){
  @view-transition{navigation:auto;}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:.28s;animation-timing-function:ease;}
}
/* phones: when the hero has the proposal form, it is the one call to action (no stacked buttons above it) */
@media (max-width:820px){ #hero-section:has(.hero-form-card) .cta-row{display:none !important;} }
/* phones: long footer link lists collapse behind their headings (links stay in the HTML) */
@media (max-width:720px){
  footer .dxs-acc > h4{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:0;padding:14px 0;border-top:1px solid var(--line);}
  footer .dxs-acc > h4::after{content:"+";color:var(--accent);font-size:20px;font-weight:400;line-height:1;}
  footer .dxs-acc.open > h4::after{content:"\2212";}
  footer .dxs-acc.open > h4{margin-bottom:10px;}
  footer .dxs-acc:not(.open) > :not(h4){display:none !important;}
}
/* 2026-10-22: section photos are now landscape stock photos; the old 4:5 portrait frame cropped away half of each one */
@media (min-width:901px){ .split-media .media-frame{aspect-ratio:4/3 !important;} }

/* ---------- 2026-10-23 typography accents: key phrase in headings, key figures in copy ---------- */
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(/wp-content/uploads/dxd-fonts/InstrumentSerif-Italic.woff2) format('woff2');}
h2 .dxa{font-family:'Instrument Serif',Georgia,'Times New Roman',serif;font-style:italic;font-weight:400;color:var(--accent);letter-spacing:-.005em;font-size:1.1em;line-height:1;}
.dxk{color:var(--accent);font-weight:700;}

/* ---------- 2026-10-23 inner-page heroes: same treatment as the homepage hero ---------- */
#hero-section h1 .hero-accent,#hero-section h1 .hero-accent .hc{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-weight:400;color:var(--accent);letter-spacing:0;}
#hero-section h1 .hero-accent{font-size:1.1em;}
#hero-section h1 .hw.hero-accent{display:inline-block;}
#hero-section{isolation:isolate;}
.hero-aurora{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;}
.hero-aurora::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 30% 40%,#000 0%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 30% 40%,#000 0%,transparent 75%);}
.hero-aurora i{position:absolute;border-radius:50%;will-change:transform;}
.hero-aurora i:nth-child(1){width:62vw;height:62vw;left:-14vw;top:-22vw;background:radial-gradient(circle,rgba(200,243,29,.15),transparent 62%);animation:dxdAur1 22s ease-in-out infinite alternate;}
.hero-aurora i:nth-child(2){width:48vw;height:48vw;right:-10vw;top:-8vw;background:radial-gradient(circle,rgba(56,189,248,.09),transparent 62%);animation:dxdAur2 26s ease-in-out infinite alternate;}
.hero-aurora i:nth-child(3){width:54vw;height:54vw;left:22vw;bottom:-34vw;background:radial-gradient(circle,rgba(129,244,29,.09),transparent 62%);animation:dxdAur3 30s ease-in-out infinite alternate;}
@keyframes dxdAur1{to{transform:translate(9vw,6vw) scale(1.12);}}
@keyframes dxdAur2{to{transform:translate(-8vw,7vw) scale(.92);}}
@keyframes dxdAur3{to{transform:translate(-6vw,-6vw) scale(1.08);}}
@media (prefers-reduced-motion:reduce){.hero-aurora i{animation:none;}}
.hero-trust{position:relative;z-index:1;margin-top:clamp(36px,5vw,64px);padding-top:22px;border-top:1px solid rgba(255,255,255,.07);display:flex;align-items:center;gap:28px;}
.hero-trust-label{flex:0 0 auto;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-dim);}
.hero-trust-mask{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.hero-logos{display:flex;gap:56px;width:max-content;align-items:center;animation:dxdLogos 48s linear infinite;}
.hero-logos img{height:28px;width:auto;filter:grayscale(1) brightness(2) opacity(.55);}
@keyframes dxdLogos{from{transform:translate3d(0,0,0);}to{transform:translate3d(calc(-50% - 28px),0,0);}}
@media (prefers-reduced-motion:reduce){.hero-logos{animation:none;}}
@media (max-width:820px){.hero-trust{flex-direction:column;align-items:stretch;gap:12px;margin-top:28px;}.hero-trust-label{text-align:center;}.hero-logos img{height:24px;}}
body.dxs-hero-on .cbl-teaser{opacity:0 !important;pointer-events:none !important;transform:translateY(8px) !important;}

/* ---------- 2026-10-23 article reading aids on phones (Contents sheet + back to top) ---------- */
.dxr{position:fixed;left:14px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:9988;display:flex;gap:8px;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .25s ease,transform .25s ease;}
.dxr.on{opacity:1;transform:none;pointer-events:auto;}
.dxr-btn{border:1px solid rgba(255,255,255,.14);background:rgba(13,15,20,.92);color:#f4f5f7;border-radius:999px;padding:10px 16px;font:inherit;font-size:14px;font-weight:600;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 30px -12px rgba(0,0,0,.8);}
.dxr-top{width:42px;padding:0;font-size:18px;}
.dxr-toc[aria-expanded="true"]{border-color:var(--accent);color:var(--accent);}
.dxr-sheet{position:fixed;left:10px;right:10px;bottom:calc(140px + env(safe-area-inset-bottom));max-height:55vh;overflow:auto;background:#0d0f14;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:16px 18px 10px;box-shadow:0 30px 80px -20px rgba(0,0,0,.9);}
.dxr-sheet[hidden]{display:none;}
.dxr-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;}
.dxr-x{background:none;border:0;color:#f4f5f7;font-size:22px;line-height:1;cursor:pointer;}
.dxr-sheet ol{margin:0;padding-left:20px;}
.dxr-sheet li{padding:7px 0;border-top:1px solid rgba(255,255,255,.06);font-size:15px;line-height:1.4;}
.dxr-sheet li:first-child{border-top:0;}
.dxr-sheet a{color:#e6e8ec;text-decoration:none;}
@media (min-width:901px){.dxr{display:none;}}

/* footer accordion toggle is a real button inside the heading (2026-10-24 a11y) */
footer h4 .dxs-acc-btn{all:unset;display:flex;justify-content:space-between;align-items:center;width:100%;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;}
footer h4 .dxs-acc-btn:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px;}
@media (max-width:720px){footer .dxs-acc > h4::after{content:none !important;}footer .dxs-acc .dxs-acc-btn::after{content:"+";color:var(--accent);font-size:20px;font-weight:400;line-height:1;}footer .dxs-acc.open .dxs-acc-btn::after{content:"\2212";}}

/* secondary (ghost) buttons were near-invisible on the dark background: visible outline + light fill, lime on hover (2026-10-24) */
.btn.ghost{border:1.5px solid rgba(255,255,255,.42) !important;background:rgba(255,255,255,.06) !important;color:#f4f5f7 !important;}
.btn.ghost:hover,.btn.ghost:focus-visible{border-color:var(--accent,#c8f31d) !important;background:rgba(200,243,29,.1) !important;color:var(--accent,#c8f31d) !important;}

/* Jarvis chat panel (2026-10-24): widget default is 560x780, too big for a side panel. Compact size, no promo banner,
   answer source cards as clean text links (their thumbnails are branded images with baked-in text). Mobile keeps the widget's full-screen layout. */
@media (min-width:721px){
  .cbl-panel{width:400px !important;height:min(620px,calc(100vh - 140px)) !important;bottom:104px !important;}
  .cbl-launcher{width:64px !important;height:64px !important;}
}
.cbl-banner-slot{display:none !important;}
.cbl-msg{font-size:14px !important;}
.cbl-source-card{width:auto !important;max-width:220px;padding:10px 12px !important;border-radius:10px !important;}
.cbl-source-card img{display:none !important;}
.cbl-source-card-title{padding:0 !important;font-size:12.5px !important;}
.cbl-source-card-title::after{content:" \2192";color:var(--cbl-accent,#c8f31d);}
.cbl-source-cards{flex-wrap:wrap !important;overflow:visible !important;}

/* case studies: mid-page lead band after "The outcome" (2026-10-24) */
.cs-leadband{display:flex;align-items:center;justify-content:space-between;gap:18px 24px;flex-wrap:wrap;margin:30px 0 8px;padding:22px 24px;border:1px solid rgba(200,243,29,.42);border-radius:16px;background:linear-gradient(120deg,rgba(200,243,29,.13),rgba(200,243,29,.03));}
.cs-leadband-txt{display:flex;flex-direction:column;gap:4px;min-width:min(100%,280px);flex:1;}
.cs-leadband-txt b{font-size:18px;color:#f4f5f7;}
.cs-leadband-txt span{font-size:14.5px;line-height:1.5;color:var(--fg-dim);}
.cs-leadband .btn{background:var(--accent) !important;color:#0a0a0c !important;border-color:var(--accent) !important;font-weight:700;white-space:nowrap;box-shadow:0 10px 30px -10px rgba(200,243,29,.6);}

/* case study detail redesign (2026-10-24): key result in the hero, outcome stat tiles, pull-quote */
.cs-hero-result{margin-top:26px;padding:18px 22px;border:1px solid rgba(200,243,29,.35);border-radius:16px;background:linear-gradient(120deg,rgba(200,243,29,.1),rgba(200,243,29,.02));max-width:560px;}
.cs-hero-result .cs-label{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:700;}
.cs-hero-key{margin:6px 0 12px !important;font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-weight:400;font-size:clamp(30px,3.4vw,46px) !important;line-height:1.1 !important;color:#f4f5f7 !important;}
.cs-hero-result .cs-chips{display:flex;flex-wrap:wrap;gap:6px;}
.cs-outcome .cs-stats{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:16px 0 14px !important;padding:0 !important;list-style:none;}
.cs-outcome .cs-stat{display:flex !important;flex-direction:column;gap:6px;padding:20px 20px 18px !important;border:1px solid var(--line);border-radius:16px;background:#0d0f14;}
.cs-outcome .cs-stat::before{content:none !important;display:none !important;}
.cs-outcome .cs-stat b{font-size:clamp(34px,3.2vw,46px);line-height:1;font-weight:700;color:var(--accent);letter-spacing:-.02em;}
.cs-outcome .cs-stat span{font-size:14.5px;line-height:1.45;color:var(--fg-dim);}
.cs-pull{position:relative;margin:6px 0 18px !important;padding:4px 0 4px 22px;border-left:3px solid var(--accent);font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-size:clamp(21px,1.9vw,26px) !important;line-height:1.45 !important;color:#eef0f3 !important;}
/* case hero alignment (2026-10-24): image top-aligned with the headline, not centred on the taller text column */
@media (min-width:1100px){
  body.cs-page #wrap{align-items:start !important;}
  body.cs-page #wrap > .hero-image{padding-top:calc(clamp(96px,9vw,140px) + 34px) !important;}
  body.cs-page .hero h1{font-size:clamp(2.2rem,3.4vw,3.6rem) !important;line-height:1.08 !important;}
}
.cs-hero-key{font-family:inherit !important;font-style:normal !important;font-weight:700 !important;font-size:clamp(24px,2.3vw,32px) !important;letter-spacing:-.01em;}

/* blog lead asks injected by dxd-leads.js (2026-10-24) */
.dxl-band{margin:34px 0 !important;}
.dxl-toccta{margin-top:18px;padding:16px;border:1px solid rgba(200,243,29,.4);border-radius:14px;background:linear-gradient(140deg,rgba(200,243,29,.12),rgba(200,243,29,.03));display:flex;flex-direction:column;gap:6px;}
.dxl-toccta b{font-size:15px;line-height:1.35;color:#f4f5f7;}
.dxl-toccta span{font-size:13px;line-height:1.45;color:var(--fg-dim);}
.dxl-toccta .dxl-btn{margin-top:6px;width:100%;}
/* hero CTA → hero form hand-off glow (2026-10-24) */
.dxl-flash{animation:dxlFlash 1.1s ease 2;}
@keyframes dxlFlash{0%,100%{box-shadow:0 0 0 0 rgba(200,243,29,0);}40%{box-shadow:0 0 0 4px rgba(200,243,29,.55),0 0 46px rgba(200,243,29,.35);}}
@media (prefers-reduced-motion:reduce){.dxl-flash{animation:none;outline:2px solid var(--accent);}}
/* free offer folded into the closing CTA box (2026-10-24) */
.dxl-cta-alt{position:relative;z-index:2;margin:22px auto 0 !important;font-size:14.5px;color:var(--fg-dim);text-align:center;}
.dxl-cta-alt button{all:unset;cursor:pointer;color:var(--accent);font-weight:600;border-bottom:1px solid rgba(200,243,29,.4);}
.dxl-cta-alt button:hover,.dxl-cta-alt button:focus-visible{border-bottom-color:var(--accent);}
/* services mega menu footer bar (2026-10-24) */
.mega-menu-wide{flex-wrap:wrap;}
.mega-menu-wide .mega-foot{flex:1 0 100%;grid-column:1 / -1;display:flex !important;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding:14px 18px !important;border:1px solid rgba(200,243,29,.35);border-radius:12px;background:linear-gradient(110deg,rgba(200,243,29,.12),rgba(200,243,29,.03));text-decoration:none;font-size:14px !important;color:#d9dce2 !important;text-transform:none !important;letter-spacing:0 !important;}
.mega-menu-wide .mega-foot b{color:#f4f5f7;}
.mega-menu-wide .mega-foot em{font-style:normal;font-weight:700;color:var(--accent);white-space:nowrap;}
.mega-menu-wide .mega-foot:hover{border-color:var(--accent);}

/* inner pages (2026-10-24): two layouts left the right half empty on desktop */
@media (min-width:901px){
  /* FAQ: heading column left (sticky), questions right */
  section:has(> .faq-list):has(> h2.big):not(.hero):not(.cta) > .kicker{grid-column:1 / span 4;}
  section:has(> .faq-list):has(> h2.big):not(.hero):not(.cta) > h2.big{grid-column:1 / span 4;grid-row:auto;position:sticky;top:110px;align-self:start;}
  section:has(> .faq-list):has(> h2.big):not(.hero):not(.cta) > .faq-list{grid-column:6 / -1;grid-row:1 / span 4;max-width:none !important;width:100%;}
  /* accent image + its heading/text: image left, copy beside it */
  section:has(> .accent-img):not(.hero):not(.cta) > .accent-img{grid-column:1 / span 5;grid-row:span 2;margin-top:56px !important;}
  section:has(> .accent-img):not(.hero):not(.cta) > .accent-img img{width:100%;height:auto;max-width:none;}
  section:has(> .accent-img):not(.hero):not(.cta) > .accent-img + h3.big{grid-column:7 / -1;margin-top:56px !important;align-self:end;}
  section:has(> .accent-img):not(.hero):not(.cta) > .accent-img + h3.big + .lede{grid-column:7 / -1;max-width:none;align-self:start;}
}
@media (min-width:901px){
  section:has(> .faq-list):has(> h2.big):not(.hero):not(.cta) > .kicker{grid-row:1;}
  section:has(> .faq-list):has(> h2.big):not(.hero):not(.cta) > h2.big{grid-row:2;}
  section:has(> .faq-list):has(> h2.big):not(.hero):not(.cta) > .faq-list{grid-row:1 / span 3;}
  /* a trailing accent image with no copy of its own just leaves a hole beside it */
  section:has(> .accent-img):not(.hero):not(.cta) > .accent-img:last-child{display:none;}
}
@media (min-width:901px){
  section:has(> .faq-list):has(> h2.big):not(.hero):not(.cta){grid-template-rows:auto auto 1fr;}
  section:has(> .faq-list):has(> h2.big):not(.hero):not(.cta) > .faq-list{grid-row:1 / -1;}
}
/* homepage #ai-led: photo spans the full text column (top of kicker to bottom of the cards) instead of floating mid-way (2026-10-24) */
@media (min-width:901px){
  #ai-led .split-media{align-items:stretch !important;}
  #ai-led .split-media > .media-frame{aspect-ratio:auto !important;height:auto !important;align-self:stretch !important;margin:0 0 84px !important;}
  #ai-led .split-media > .media-frame picture,#ai-led .split-media > .media-frame img{display:block;width:100%;height:100% !important;object-fit:cover;}
}
/* one logo size sitewide (2026-10-24): pages had 22px / 26px / 28px inline heights */
header a.logo img{height:26px !important;width:auto !important;filter:none !important;}
footer a.logo img,footer .logo img{height:26px !important;width:auto !important;}
@media (max-width:720px){header a.logo img{height:22px !important;}}
/* mobile hero (2026-10-25): pill sat under the fixed header; chat launcher covered the hero form's first field */
@media (max-width:820px){
  #hero-section .hero-pill{margin-top:22px !important;}
  body:has(#hero-lead-form):not(.dxl-bar-on) #cbl-launcher,
  body:has(#hero-lead-form):not(.dxl-bar-on) .cbl-launcher,
  body:has(#hero-lead-form):not(.dxl-bar-on) .cbl-teaser{opacity:0 !important;pointer-events:none !important;transition:opacity .25s;}
}
/* proposal / free-tool pop-ups compact (2026-10-25): whole form fits a laptop screen, submit visible without scrolling */
.dxl-modal:has(.dxl-pro){padding:24px 28px 22px !important;}
.dxl-pro-head{margin:-6px 0 12px !important;padding-bottom:12px !important;}
.dxl-pro-head h3{font-size:22px !important;margin:2px 0 4px !important;}
.dxl-pro-head .dxl-sub{font-size:13.5px !important;line-height:1.5 !important;}
.dxl-ticks{margin-top:6px !important;}
.dxl-ticks li{font-size:12.5px !important;}
.dxl-f.dxl-pro{gap:10px 12px !important;}
.dxl-pro .dxl-group{gap:6px !important;}
.dxl-pro .dxl-chips{gap:6px !important;}
.dxl-pro .dxl-chip span{padding:5px 11px !important;font-size:13px !important;}
.dxl-pro label{gap:4px !important;font-size:12px !important;}
.dxl-pro input,.dxl-pro select{padding:9px 12px !important;font-size:14px !important;}
.dxl-pro textarea{min-height:58px !important;padding:9px 12px !important;font-size:14px !important;}
.dxl-pro label.full:has(input[name="phone"]),.dxl-pro label.full:has(input[name="site"]){grid-column:auto !important;}
.dxl-pro .dxl-btn{padding:12px 20px !important;margin-top:2px !important;}
.dxl-pro .dxl-alt,.dxl-pro .dxl-note{font-size:12px !important;margin:0 !important;}
@media (max-width:560px){.dxl-pro label.full:has(input[name="phone"]),.dxl-pro label.full:has(input[name="site"]){grid-column:1 / -1 !important;}}
/* proposal pop-up on phones (2026-10-25): two fields per row, tighter, so the submit button is on screen */
@media (max-width:560px){
  .dxl-modal:has(.dxl-pro){padding:18px 16px 16px !important;top:50% !important;max-height:94vh !important;}
  .dxl-f.dxl-pro{grid-template-columns:1fr 1fr !important;gap:8px 10px !important;}
  .dxl-pro label.full:has(input[name="phone"]),.dxl-pro label.full:has(input[name="site"]){grid-column:auto !important;}
  .dxl-pro-head h3{font-size:19px !important;}
  .dxl-ticks{gap:2px 10px !important;}
  .dxl-ticks li{font-size:11.5px !important;padding-left:19px !important;}
  .dxl-ticks li::before{width:13px !important;height:13px !important;background-size:9px !important;}
  .dxl-pro .dxl-chip span{padding:4px 10px !important;font-size:12.5px !important;}
  .dxl-pro input{padding:8px 10px !important;font-size:16px !important;}
  .dxl-pro textarea{min-height:52px !important;font-size:16px !important;}
  .dxl-pro .dxl-alt{display:none !important;}
}
@media (max-width:560px){.dxl-pro label{justify-content:flex-end !important;}}
/* declutter sitewide (2026-10-25): collapsed FAQs + short card copy (full text stays in the HTML for search engines) */
.dx-collapsed > .dx-more{display:none !important;}
.dx-show-all{display:block;margin:18px auto 0;padding:12px 26px;background:transparent;border:1px solid var(--line);border-radius:999px;color:var(--fg);font:inherit;font-size:14.5px;font-weight:600;cursor:pointer;}
.dx-show-all:hover{border-color:var(--accent);color:var(--accent);}
.svc-card p,.step p,.card p,.feature-card p,.info-card p,.why-card p,.tool-card p,.industry-card p,.work-item p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
