/* ════════════════════════════════════ DIGIDOP-INSPIRED POLISH — spacing, prose, visuals ════════════════════════════════════ */

/* Consistent section rhythm */
:root{
  --pad:clamp(72px,7.5vw,108px);
  --sh-gap:clamp(40px,5vw,64px);
  --block-gap:clamp(36px,4.5vw,52px);
  --grid-gap:20px;
  --prose-max:480px;
}

/* Section headers — tighter, editorial */
.sh{margin-bottom:var(--sh-gap)}
.sh-sub{
  font-size:15px;
  line-height:1.65;
  max-width:var(--prose-max);
  margin-top:clamp(14px,2vw,20px);
  hyphens:none;
  -webkit-hyphens:none;
  overflow-wrap:break-word;
}
.sh-h2{max-width:720px}

/* Grids — uniform gaps */
.svc-grid,.svc-grid-3,.svc-grid-4,
.process-grid,.res-grid,.result-grid,
.proj-grid,.testi-grid,.ind-hub-grid,
.ind-proj-grid,.ind-sol-grid,.visual-grid,
.overview-cards,.why-stats,.faq-list{
  gap:var(--grid-gap);
}

/* Content blocks after section headers */
.wrap > .svc-grid,
.wrap > .svc-scroll,
.wrap > .process-grid,
.wrap > .res-grid,
.wrap > .proj-grid,
.wrap > .testi-grid,
.wrap > .ind-hub-grid,
.wrap > .ind-proj-grid,
.wrap > .ind-sol-grid,
.wrap > .ind-testi-grid,
.wrap > .overview-grid,
.wrap > .why-grid,
.wrap > .faq-list{
  margin-top:0;
}

/* Body copy — shorter line length, less density, no auto-hyphenation */
.hero-sub,.page-hero-sub,.why-sub,.offer-desc,.cta-sub,.slp-hero-sub{
  font-size:clamp(15px,1.6vw,17px);
  line-height:1.65;
  max-width:var(--prose-max);
  hyphens:none;
  -webkit-hyphens:none;
  overflow-wrap:break-word;
}
.slp-hero-sub{max-width:540px}
.svc-desc,.oc-body p,.proc-step p,.proj-desc,.ind-hub-card p,.tc-q{
  font-size:14px;
  line-height:1.6;
  hyphens:none;
  -webkit-hyphens:none;
  overflow-wrap:break-word;
}
p{
  hyphens:none;
  -webkit-hyphens:none;
  overflow-wrap:break-word;
}
.proc-step p,.oc-body p{max-width:36ch}

/* Row headers align cleanly */
.sh-row{align-items:flex-end;gap:24px;margin-bottom:var(--sh-gap)}
.sh-row .sh-h2{margin-bottom:0}

/* Cards — cleaner padding (icon cards only) */
.svc:not(.svc-visual){padding:clamp(28px,3vw,32px) clamp(24px,2.5vw,28px)}
.oc{padding:clamp(22px,2.5vw,26px)}
.ind-hub-card{padding:clamp(26px,3vw,30px) clamp(24px,2.5vw,28px)}

/* Service pages — legacy grid (marketing pages) */
#visuals .visual-grid--4:not(.design-marquee *){grid-template-columns:repeat(2,1fr);max-width:720px}
#visuals .visual-grid--4:not(.design-marquee *) .visual-block:nth-child(n+3){display:none}

.vph-minimal .vph-sublabel{display:none}
.vph-minimal .vph-frame{min-height:140px;padding:24px}
.vph-minimal .vph-icon{width:40px;height:40px}
.vph-minimal .vph-label{font-size:10px}

/* Homepage: hide decorative placeholder rows when marked */
.sec-visual-minimal .mkt-visual-row,
.sec-visual-minimal .visual-showcase{display:none}

/* Result cards — only when real work exists; tighter meta */
.result-card-body{padding:20px 20px 22px}
.result-meta{font-size:12px}
.result-metrics li{font-size:14px}

/* Project cards — image-forward, minimal copy */
.proj-desc{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* Industry pages — consistent section flow */
.ind-spec-foot p{max-width:560px;font-size:15px;line-height:1.65}
.ind-sol-item p,.ind-mega-card p{font-size:13px;line-height:1.6}
.ind-proj-q{font-size:clamp(16px,1.8vw,18px)}

/* Service landing pages */
.slp-hero-sub{
  font-size:clamp(15px,1.6vw,17px);
  line-height:1.65;
  max-width:var(--prose-max);
}
.slp-problem-item p,.slp-deliver p,.slp-outcome p{
  font-size:13.5px;
  line-height:1.6;
  hyphens:none;
  -webkit-hyphens:none;
  overflow-wrap:break-word;
}

/* CTA bands — consistent vertical rhythm */
.cta-band,.slp-final-cta,.slp-inline-cta{padding:var(--pad) 0}
.offer-box{padding:clamp(36px,4vw,48px) clamp(32px,4vw,56px)}

/* FAQ answers — scannable */
.faq-a-inner{font-size:14px;line-height:1.65;max-width:none;hyphens:none;-webkit-hyphens:none;overflow-wrap:break-word}

@media(max-width:760px){
  :root{--pad:clamp(56px,12vw,80px);--sh-gap:clamp(32px,8vw,48px)}
}
