/*
 * StackLocked typography alignment
 * Matches the Pomelli reference scale while preserving the custom design.
 */
:root{
  --sl-body:clamp(1rem,1.5vw,1.125rem);
  --sl-h1:clamp(3.5rem,5vw,4rem);
  --sl-h2:clamp(2.25rem,4vw,2.75rem);
  --sl-h3:clamp(1.125rem,2vw,1.25rem);
  --sl-small:.875rem;
  --sl-section-pad:5.5rem;
}

html{font-size:16px}
body{
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:var(--sl-body);
  line-height:1.6;
}
h1,h2,h3{overflow-wrap:anywhere}
.sl-section{padding:var(--sl-section-pad) 0}
.sl-hero h1,.sl-about-hero h1{
  font-size:var(--sl-h1);
  line-height:1.2;
  letter-spacing:-.02em;
  font-weight:600;
}
.sl-section h2,.sl-contact-copy h2,.sl-about-cta-shell h2{
  font-size:var(--sl-h2);
  line-height:1.2;
  letter-spacing:-.02em;
  font-weight:600;
}
.sl-service-card h3,.sl-process-card h3,.sl-process-grid h3,
.sl-why-cards h3,.sl-about-strength-grid h3,.sl-industry-grid h3{
  font-size:var(--sl-h3);
  line-height:1.2;
  letter-spacing:-.02em;
  font-weight:600;
}
.sl-problem-list h3{font-size:1.05rem;line-height:1.2}
.sl-hero-lead,.sl-slide-copy p{font-size:1.15rem;line-height:1.6}
.sl-section-heading>p:last-child,.sl-body-large,.sl-problem-grid>div>p{font-size:1.125rem;line-height:1.6}
.sl-problem-list p,.sl-process-grid p,.sl-process-card>p{font-size:.95rem;line-height:1.5}
.sl-service-card p,.sl-why-cards p,.sl-about-story-copy p,
.sl-feature-content p,.sl-field input,.sl-field select,.sl-field textarea{font-size:1rem;line-height:1.6}
.sl-service-card a,.sl-text-link,.sl-footer-copy,.sl-footer-links,
.sl-check-list li,.sl-about-strength-grid p,.sl-industry-grid p{font-size:.95rem}
.sl-desktop-nav a{font-size:1rem;font-weight:500}
.sl-nav-cta{font-size:.95rem;font-weight:600}
.sl-button{font-size:1rem;font-weight:600;min-height:48px}
.sl-eyebrow,.sl-kicker,.sl-slide-kicker{font-size:var(--sl-small)}
.sl-trust-grid b,.sl-hero-proof,.sl-faq-list details p{font-size:.95rem}
.sl-faq-list summary{font-size:1rem}
.sl-field label{font-size:.875rem}
.sl-footer{font-size:1rem}
.sl-footer-copy,.sl-footer-links{line-height:1.6}

@media(max-width:1024px){
  .sl-hero-grid,.sl-problem-grid,.sl-why-grid,.sl-about-grid,.sl-faq-grid,.sl-contact-shell{
    grid-template-columns:1fr;
    gap:4rem;
  }
  .sl-why-copy,.sl-faq-grid>div:first-child{position:static}
  .sl-services-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:991px){
  .sl-desktop-nav,.sl-nav-cta{display:none}
  .sl-menu-toggle{display:block}
  .sl-mobile-nav a{font-size:1.125rem;min-height:48px;display:flex;align-items:center}
}

@media(max-width:768px){
  :root{
    --sl-h1:2.75rem;
    --sl-h2:2rem;
    --sl-section-pad:4rem;
  }
  .sl-container{width:min(calc(100% - 32px),var(--container))}
  .sl-hero{min-height:auto;padding:112px 0 64px}
  .sl-hero-lead,.sl-section-heading>p:last-child,.sl-body-large,.sl-problem-grid>div>p{font-size:1rem}
  .sl-services-grid,.sl-why-cards,.sl-process-grid{grid-template-columns:1fr}
  .sl-process-grid:before{display:none}
  .sl-button-row,.sl-form-actions{flex-direction:column;width:100%}
  .sl-button-row .sl-button,.sl-assessment-shell .sl-button,.sl-form-actions .sl-button{width:100%}
  .sl-assessment-shell,.sl-contact-copy,.sl-contact-form{padding:28px 22px}
  .sl-form-grid{grid-template-columns:1fr}
  .sl-field.full,.sl-form-actions{grid-column:auto}
  .sl-hero-visual{min-height:390px}
}

@media(max-width:576px){
  .sl-header{height:70px}
  .sl-hero h1 br,.sl-why-copy h2 br{display:none}
  .sl-hero-visual{min-height:350px}
  .sl-core-card{inset:4% 0 8%;transform:none}
  .sl-tech-panel{min-height:390px}
  .sl-footer-links{gap:12px 18px}
}


/* Slider typography normalization */
.sl-slide h3{font-size:clamp(2rem,2.7vw,3rem);line-height:1.08;letter-spacing:-.02em;overflow-wrap:normal;word-break:normal;hyphens:none}
.sl-slide-copy p{font-size:1rem;line-height:1.6}
.sl-slide-kicker{font-size:.78rem}
.sl-slide-points li{font-size:.95rem}
@media(max-width:1100px){.sl-slide h3{font-size:2.5rem}}
@media(max-width:768px){.sl-slide h3{font-size:2rem}.sl-slide-copy p{font-size:1rem}}
@media(max-width:520px){.sl-slide h3{font-size:1.75rem}.sl-slide-copy p{font-size:.95rem}.sl-slide-kicker{font-size:.7rem}.sl-slide-points li{font-size:.9rem}}

/* Compact desktop slider type v2 */
@media(min-width:1101px){
  .sl-slide-kicker{font-size:.72rem;margin-bottom:10px;letter-spacing:.13em}
  .sl-slide h3{
    font-size:clamp(1.85rem,2.15vw,2.25rem);
    line-height:1.1;
    margin-bottom:14px;
  }
  .sl-slide:nth-child(3) h3,.sl-slide:nth-child(4) h3{font-size:2.05rem}
  .sl-slide-copy p{font-size:.92rem;line-height:1.5;margin-bottom:16px}
  .sl-slide-points{gap:7px}
  .sl-slide-points li{font-size:.88rem;line-height:1.35}
  .sl-slide-points li:before{width:22px;height:22px;font-size:.68rem}
  .sl-slide-art svg text{font-size:14px!important}
}


/* Forced desktop slider height alignment v3 */
@media(min-width:1101px){
  .sl-hero-visual{
    min-height:600px!important;
    height:600px!important;
  }
  .sl-security-slider{
    min-height:580px!important;
    height:580px!important;
  }
  .sl-slider-stage{
    min-height:580px!important;
    height:580px!important;
  }
  .sl-slide{padding-top:24px;padding-bottom:64px}
  .sl-slide-art{min-height:270px!important}
  .sl-slide-art svg{max-height:270px!important}
  .sl-slider-controls{bottom:14px}
}


/* About visual height alignment v1 */
@media(min-width:1101px){
  .sl-infra-visual{
    min-height:540px!important;
    height:540px!important;
  }
  .sl-infra-svg{
    inset:50px 28px 14px;
    width:calc(100% - 56px);
    height:calc(100% - 64px);
  }
  .sl-infra-badge.one,.sl-infra-badge.two{top:88px}
  .sl-infra-badge.three,.sl-infra-badge.four{bottom:54px}
}


/* Cross-page proportion and spacing pass v1 */

/* Compact the oversized How We Work section without changing its typography */
.sl-approach{padding-top:76px;padding-bottom:76px}
.sl-approach .sl-journey-shell{margin-top:36px}
.sl-process-card{min-height:390px;padding:20px}
.sl-process-visual{height:160px;margin:18px 0 14px}
.sl-journey-track{top:96px;height:140px}
.sl-process-meta{margin-top:14px;padding:11px 12px}
.sl-approach-values{margin-top:18px}
.sl-approach-value{padding:14px 16px}

/* Keep standalone pages proportionate with the homepage */
.sl-page-hero{
  padding:136px 0 64px;
  border-bottom:1px solid var(--line);
  background:radial-gradient(circle at 75% 25%,rgba(35,136,255,.12),transparent 30%),linear-gradient(180deg,#06101a,#08141e);
}
.sl-page-hero h1{
  max-width:820px;
  margin:0 0 18px;
  color:var(--text);
  font-size:var(--sl-h1);
  line-height:1.15;
  letter-spacing:-.02em;
  font-weight:600;
}
.sl-page-hero>div>p:last-child{max-width:760px;margin:0;color:#9db1c0}
.sl-page-content{padding:72px 0 88px}
.sl-page-content .entry-content>h2:first-child{margin-top:0}

/* Bring the About page hero into the same visual scale */
.sl-about-hero{padding:132px 0 72px}
.sl-about-hero-panel{min-height:460px}
.sl-about-cta{padding:76px 0}

@media(max-width:900px){
  .sl-approach{padding-top:64px;padding-bottom:64px}
  .sl-process-card{min-height:0}
  .sl-process-visual{height:180px;margin:18px 0 12px}
  .sl-page-hero{padding:116px 0 52px}
  .sl-page-content{padding:60px 0 72px}
  .sl-about-hero{padding:116px 0 64px}
}

@media(max-width:620px){
  .sl-approach{padding-top:56px;padding-bottom:56px}
  .sl-approach .sl-journey-shell{margin-top:28px}
  .sl-process-visual{height:160px}
  .sl-approach-value{padding:13px 14px}
  .sl-page-hero{padding:104px 0 44px}
  .sl-page-content{padding:48px 0 64px}
  .sl-about-hero{padding:104px 0 56px}
  .sl-about-hero-panel{min-height:390px}
  .sl-about-cta{padding:64px 0}
}
