/* ============================================================
   MINDWRKS — Landing Page  ·  Design System
   Premium enterprise / modern-SaaS consulting aesthetic
   ============================================================ */

/* ---------- tokens ---------- */
:root{
  /* brand */
  --navy:#0B1F3A;
  --navy-2:#0F2A4D;
  --navy-3:#16385f;
  --blue:#2563EB;
  --blue-600:#1D4ED8;
  --blue-700:#1E40AF;
  --teal:#14B8A6;
  --teal-soft:#CFF4EE;

  /* neutrals (cool-toned) */
  --ink:#0E1A2B;          /* charcoal headings */
  --ink-2:#3D4B5C;        /* body */
  --ink-3:#6B7888;        /* muted */
  --line:#E3E8EF;
  --line-2:#EDF1F6;
  --bg:#FFFFFF;
  --bg-soft:#F5F8FC;      /* light gray sections */
  --bg-soft-2:#EEF3F9;
  --blue-wash:#EEF3FE;
  --teal-wash:#EAFAF7;

  /* effects */
  --shadow-sm:0 1px 2px rgba(11,31,58,.06), 0 1px 3px rgba(11,31,58,.05);
  --shadow:0 4px 16px rgba(11,31,58,.07), 0 1px 3px rgba(11,31,58,.05);
  --shadow-lg:0 24px 60px -20px rgba(11,31,58,.28), 0 8px 24px -12px rgba(11,31,58,.16);
  --shadow-blue:0 14px 30px -10px rgba(37,99,235,.45);
  --r:14px;
  --r-lg:22px;
  --r-sm:10px;

  --maxw:1200px;
  --sans:'Plus Jakarta Sans',-apple-system,'Segoe UI',Helvetica,sans-serif;
  --mono:'Space Grotesk',ui-monospace,'SF Mono',Menlo,monospace;

  --gut:clamp(20px,5vw,40px);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:76px}
body{
  margin:0;font-family:var(--sans);color:var(--ink-2);background:var(--bg);
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
:focus-visible{outline:2.5px solid var(--blue);outline-offset:3px;border-radius:4px}

/* ---------- layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.section{padding:clamp(64px,8vw,118px) 0}
.section.tight{padding:clamp(48px,6vw,80px) 0}
.navy-sec{background:var(--navy);color:#E7EEF8}
.soft-sec{background:var(--bg-soft)}

/* ---------- typography ---------- */
h1,h2,h3,h4{color:var(--ink);font-weight:700;line-height:1.12;letter-spacing:-.02em;margin:0}
.display{font-size:clamp(38px,5.4vw,66px);font-weight:800;letter-spacing:-.035em;line-height:1.03}
.h2{font-size:clamp(29px,3.8vw,46px);font-weight:800;letter-spacing:-.03em;line-height:1.08}
.h3{font-size:clamp(20px,2vw,25px);font-weight:700;letter-spacing:-.02em}
.navy-sec h1,.navy-sec h2,.navy-sec h3,.navy-sec h4{color:#fff}

.eyebrow{
  font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--blue);display:inline-flex;align-items:center;gap:9px;
}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--blue);border-radius:2px}
.eyebrow.teal{color:var(--teal)}.eyebrow.teal::before{background:var(--teal)}
.eyebrow.light{color:#7FA8E6}.eyebrow.light::before{background:#7FA8E6}
.eyebrow.center{justify-content:center}

.lede{font-size:clamp(18px,1.5vw,21px);line-height:1.6;color:var(--ink-2);max-width:60ch}
.navy-sec .lede{color:#A9BDD8}
.muted{color:var(--ink-3)}
.section-head{max-width:760px;margin-bottom:clamp(38px,5vw,60px)}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head .h2{margin:18px 0 16px}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-weight:600;font-size:16px;letter-spacing:-.01em;cursor:pointer;
  padding:15px 26px;border-radius:11px;border:1.5px solid transparent;
  transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .18s,background .18s,color .18s;
  white-space:nowrap;line-height:1;
}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--blue);color:#fff;box-shadow:var(--shadow-blue)}
.btn-primary:hover{background:var(--blue-600);transform:translateY(-2px);box-shadow:0 18px 38px -10px rgba(37,99,235,.55)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink-3);background:var(--bg-soft);transform:translateY(-2px)}
.navy-sec .btn-ghost{color:#fff;border-color:rgba(255,255,255,.28)}
.navy-sec .btn-ghost:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.5)}
.btn-white{background:#fff;color:var(--navy)}
.btn-white:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.btn-sm{padding:11px 18px;font-size:14.5px;border-radius:9px}
.btn-lg{padding:18px 32px;font-size:17px}
.btn-block{width:100%}
.btn-arrow{transition:transform .2s}
.btn:hover .btn-arrow{transform:translateX(4px)}

/* ---------- pills / chips / tags ---------- */
.tag{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);
  font-size:12.5px;font-weight:600;letter-spacing:.04em;color:var(--blue);
  background:var(--blue-wash);border:1px solid #D5E2FB;border-radius:100px;padding:8px 15px;
}
.tag.teal{color:#0B8576;background:var(--teal-wash);border-color:#C4EEE7}
.chip{
  display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:600;color:var(--ink-2);
  background:#fff;border:1px solid var(--line);border-radius:100px;padding:9px 16px;box-shadow:var(--shadow-sm);
}
.chip svg{width:16px;height:16px;color:var(--teal)}

/* ---------- cards ---------- */
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:30px;
  box-shadow:var(--shadow-sm);transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s,border-color .25s;
}
.card.hover:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:#D4DEEC}
.icon-tile{
  width:52px;height:52px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg,var(--blue),var(--blue-700));color:#fff;box-shadow:var(--shadow-blue);
}
.icon-tile svg{width:25px;height:25px}
.icon-tile.teal{background:linear-gradient(150deg,var(--teal),#0B8576);box-shadow:0 12px 26px -10px rgba(20,184,166,.5)}
.icon-tile.soft{background:var(--blue-wash);color:var(--blue);box-shadow:none;border:1px solid #DAE6FB}
.icon-tile.ghost{background:rgba(255,255,255,.08);color:#fff;box-shadow:none;border:1px solid rgba(255,255,255,.16)}

/* ---------- grids ---------- */
.grid{display:grid;gap:22px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:980px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* ---------- data viz helpers ---------- */
.figure{font-family:var(--mono);font-weight:700;letter-spacing:-.03em;color:var(--ink);line-height:1}
.figure.blue{color:var(--blue)}.figure.teal{color:var(--teal)}.figure.white{color:#fff}

/* image placeholder (for real photos to drop in) */
.ph{
  background-image:repeating-linear-gradient(45deg,#EAEFF6,#EAEFF6 11px,#F2F6FB 11px,#F2F6FB 22px);
  border:1.5px dashed #C9D5E4;border-radius:var(--r);
  display:flex;align-items:center;justify-content:center;text-align:center;
  color:var(--ink-3);font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.04em;padding:18px;
}
.ph span{max-width:24ch}

/* drop-in image slot: a real <img> covers the placeholder when present;
   if the file is missing, onerror removes it and the placeholder shows through. */
.media{position:relative;overflow:hidden}
.media-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.media-img.contain{object-fit:contain}

/* ---------- reveal-on-scroll ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

.divider-fade{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent)}
