/* ============================================================
   NXT QUARRY — Editorial sections
   ============================================================ */

/* divider rule */
.rule{height:1px;background:var(--line);max-width:var(--maxw);margin:0 auto}

/* ---- PROBLEM ---- */
.problem{padding:clamp(100px,15vh,180px) 0}
.problem-inner{max-width:920px}
.problem h2{font-size:clamp(34px,5.4vw,64px);letter-spacing:-.03em}
.problem h2 .dim{color:var(--text-3)}
.problem p{font-size:clamp(18px,2.1vw,23px);color:var(--text-2);line-height:1.55;margin-top:32px;max-width:62ch;text-wrap:pretty}
.problem p .hl{color:#fff}

/* ---- PILLARS ---- */
.pillars-head{text-align:center;max-width:680px;margin:0 auto 60px}
.pillars-head h2{font-size:clamp(30px,4.6vw,52px)}
.pillars-head .eyebrow{display:block;margin-bottom:18px}
.pcards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pcard{
  background:linear-gradient(180deg,#141517,#0d0e10);
  border:1px solid var(--line);border-radius:20px;padding:32px 28px 34px;
  position:relative;overflow:hidden;transition:transform .5s var(--ease),border-color .5s var(--ease);
  min-height:340px;display:flex;flex-direction:column;
}
.pcard:hover{transform:translateY(-6px);border-color:var(--line-2)}
.pcard::before{content:"";position:absolute;top:-40%;right:-30%;width:240px;height:240px;border-radius:50%;background:radial-gradient(closest-side,rgba(42,105,178,.22),transparent 70%);opacity:0;transition:opacity .5s}
.pcard:hover::before{opacity:1}
.pcard .pnum{font-family:'Zalando Sans Expanded',sans-serif;font-size:12px;color:var(--blue-light);letter-spacing:.1em}
.pcard .pmark{width:40px;height:40px;margin:0 0 auto;opacity:.9}
.pcard .pmark img{width:100%;height:auto}
.pcard h3{font-size:24px;margin-top:24px;letter-spacing:-.01em}
.pcard p{color:var(--text-2);font-size:15px;margin-top:14px;line-height:1.55;text-wrap:pretty}
@media(max-width:880px){.pcards{grid-template-columns:1fr}.pcard{min-height:0}}

/* ---- CLIENTS ---- */
.clients{padding:clamp(90px,13vh,150px) 0}
.clients-head{max-width:760px;margin-bottom:54px}
.clients-head h2{font-size:clamp(30px,4.6vw,52px)}
.client-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.client{
  background:var(--bg);padding:40px 24px;display:flex;align-items:center;justify-content:center;text-align:center;min-height:128px;
  font-family:'Zalando Sans Expanded',sans-serif;font-weight:700;font-size:clamp(16px,1.7vw,20px);letter-spacing:-.01em;color:#d2d3d6;
  transition:background .4s,color .4s;
}
.client:hover{background:#101113;color:#fff}
.clients-foot{margin-top:30px;display:flex;align-items:center;gap:12px;color:var(--text-2);font-style:italic;font-size:15px}
.clients-foot .ld{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse 2.4s infinite}
@media(max-width:760px){.client-row{grid-template-columns:1fr 1fr}}

/* ---- BIG CTA ---- */
.cta{padding:clamp(110px,16vh,200px) 0;position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:900px;height:600px;max-width:120vw;background:radial-gradient(closest-side,rgba(42,105,178,.22),transparent 70%);filter:blur(30px);z-index:0}
.cta-inner{max-width:820px;margin:0 auto;text-align:center;position:relative;z-index:1}
.cta h2{font-size:clamp(36px,6vw,76px);letter-spacing:-.035em}
.cta p{font-size:clamp(18px,2.2vw,22px);color:var(--text-2);margin:26px auto 40px;max-width:50ch;text-wrap:pretty}
.cta .btn{padding:18px 34px;font-size:16px}
.cta-mark{width:54px;height:auto;margin:0 auto 30px;opacity:.9}

/* selective marquee strip */
.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;overflow:hidden;background:#080808}
.strip-track{display:flex;gap:48px;white-space:nowrap;animation:marq 32s linear infinite;width:max-content}
.strip-track span{font-family:'Zalando Sans Expanded',sans-serif;font-weight:700;font-style:italic;font-size:clamp(18px,2.4vw,28px);color:var(--text-3);display:flex;align-items:center;gap:48px}
.strip-track span::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--blue)}
@keyframes marq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.strip-track{animation:none}}
