/* ==========================================================================
   styles-home.css — styles for the home-page-only sections that are reused
   from the previous homepage (Why your defences fail / Assessing from every
   angle / Outpace benefits). Loaded ON TOP of the service-page bundle
   (styles-service-page.css + styles-blog.css + styles-services.css), which it
   does NOT conflict with — these class names exist only here.

   The service bundle's :root uses --cyan / --deep-blue; the rules below were
   written against the older --teal / --navy palette, so we re-declare just the
   tokens the bundle is missing (all additive — none overwrite bundle tokens).
   ========================================================================== */
:root{
  --navy:#011848;
  --teal:#00BC9C;
  --teal-soft:#6FE7C3;
  --teal-50:rgba(0,188,156,.08);
  --teal-12:rgba(0,188,156,.12);
  --teal-line:rgba(0,188,156,.22);
  --ink:#0b1430;
  --muted:#5a6480;
  --line:rgba(1,24,72,.10);
  --bg:#F6F8FB;
  --shadow-sm:0 1px 2px rgba(1,24,72,.06),0 4px 14px rgba(1,24,72,.06);
  --shadow-md:0 4px 10px rgba(1,24,72,.06),0 18px 40px rgba(1,24,72,.10);
  --r-md:14px;
  --r-lg:20px;
}

/* ---------------- Layout helpers (match service-page section width) -------- */
.section{padding:clamp(64px,8vw,120px) 0}
.section--tight{padding:clamp(48px,6vw,80px) 0}
.section > .wrap{
  max-width:var(--container,1240px);
  margin:0 auto;
  padding:0 var(--side-pad, clamp(24px,5vw,96px));
}

.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--teal);background:var(--teal-12);
  padding:8px 12px;border-radius:999px;
}
.eyebrow::before{content:"";width:6px;height:6px;background:var(--teal);border-radius:50%}
.eyebrow.has-end::after{content:"";width:6px;height:6px;background:var(--teal);border-radius:50%}
.eyebrow--ondark{color:var(--teal-soft);background:rgba(0,188,156,.16)}

.h1,.h2,.h3{font-weight:600;letter-spacing:-.02em;margin:0;color:var(--navy);line-height:1.05}
.h1{font-size:clamp(40px,6vw,76px)}
.h2{font-size:clamp(32px,4.2vw,56px)}
.h3{font-size:clamp(22px,2.4vw,28px);letter-spacing:-.01em;line-height:1.2}
.lede{font-size:clamp(17px,1.4vw,20px);color:var(--muted);max-width:64ch;line-height:1.6}
.section-head{display:flex;flex-direction:column;gap:18px;align-items:flex-start;margin-bottom:48px}
.section-head--center{align-items:center;text-align:center;margin-left:auto;margin-right:auto}
.section-head--center .lede{text-align:center}

/* ---------------- Why fail (3 vectors) ---------------- */
.vectors{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.vector{
  position:relative;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:36px 30px 32px;overflow:hidden;
  transition:transform .2s,box-shadow .2s,border-color .2s;
}
.vector:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--teal-line)}
.vector__num{font-size:13px;font-weight:600;color:var(--teal);letter-spacing:.16em}
.vector h3{margin:14px 0 14px;font-size:24px;font-weight:600;color:var(--navy);letter-spacing:-.01em}
.vector p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.6}
.vector::after{
  content:"";position:absolute;left:30px;right:30px;bottom:0;height:3px;
  background:linear-gradient(90deg,var(--teal),transparent);
  transform:scaleX(.2);transform-origin:left;transition:transform .35s ease;
}
.vector:hover::after{transform:scaleX(1)}

/* ---------------- Pentest types (every angle) ---------------- */
.types{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:0}
.type-card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:30px 26px;position:relative;overflow:hidden;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s;
}
.type-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--teal-line)}
.type-card__badge{
  width:54px;height:54px;display:grid;place-items:center;border-radius:14px;
  background:var(--teal-12);color:var(--teal);margin-bottom:18px;
}
.type-card h4{margin:0 0 6px;font-size:21px;font-weight:600;color:var(--navy);letter-spacing:-.01em}
.type-card p{margin:0;color:var(--muted);font-size:15.5px;line-height:1.55}
.type-card .corner{position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,var(--teal-50),transparent 70%);opacity:0;transition:opacity .25s ease}
.type-card:hover .corner{opacity:1}

/* ---------------- Outpace benefits ---------------- */
.outpace{background:var(--bg)}
.benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.benefit{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);
  padding:26px 22px;display:flex;flex-direction:column;gap:14px;min-height:180px;
  transition:transform .2s,box-shadow .2s;
}
.benefit:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.benefit__badge{
  width:46px;height:46px;display:grid;place-items:center;border-radius:12px;
  background:var(--teal-12);color:var(--teal);
}
.benefit p{margin:0;font-size:15px;line-height:1.5;color:var(--ink);font-weight:500}

/* ---------------- Responsive ---------------- */
@media (max-width:1024px){
  .types,.benefits,.vectors{grid-template-columns:repeat(2,1fr)}
  .benefits{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:720px){
  .types,.benefits,.vectors{grid-template-columns:1fr}
  .benefits{grid-template-columns:1fr 1fr}
}
@media (max-width:420px){
  .benefits{grid-template-columns:1fr}
}


/* ---------------- The reality (stats under "Why defences fail") ---------------- */
.h2 em{ font-style:normal; color:var(--teal); }
.reality__groups{ display:flex; flex-direction:column; gap:clamp(36px,4.5vw,56px); margin-top:clamp(44px,5vw,64px); }
.reality__group-label{
  display:flex; align-items:center; gap:16px; margin:0 0 22px;
  font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--navy);
}
.reality__group-label span{ display:inline-flex; align-items:center; gap:9px; white-space:nowrap; }
.reality__group-label span::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--teal); }
.reality__group-label::after{ content:""; flex:1; height:1px; background:var(--line); }

/* Group A — how often (light cards + proportion bars) */
.freq-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.freq-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(26px,2.5vw,32px); display:flex; flex-direction:column;
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.freq-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--teal-line); }
.freq-card__num{ font-size:clamp(38px,4.4vw,52px); font-weight:600; letter-spacing:-.02em; color:var(--navy); line-height:1; }
.freq-card__bar{ height:6px; border-radius:999px; background:var(--teal-12); margin:18px 0; overflow:hidden; }
.freq-card__bar i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--teal),var(--teal-soft)); }
.freq-card__text{ margin:0; font-size:15.5px; line-height:1.55; color:var(--muted); }
.freq-card__src{ margin-top:auto; padding-top:18px; font-size:12px; letter-spacing:.02em; color:rgba(1,24,72,.42); }

/* Group B — what it costs (dark band, icons) */
.cost-band{
  background:var(--navy); border-radius:24px; padding:clamp(30px,3.5vw,46px);
  display:grid; grid-template-columns:repeat(3,1fr);
}
.cost-card{ padding:0 clamp(20px,2.6vw,34px); display:flex; flex-direction:column; }
.cost-card:first-child{ padding-left:0; }
.cost-card:last-child{ padding-right:0; }
.cost-card:not(:first-child){ border-left:1px solid rgba(255,255,255,.12); }
.cost-card__num{ font-size:clamp(40px,4.5vw,64px); font-weight:600; letter-spacing:-.02em; color:var(--teal); line-height:1; }
.cost-card__text{ margin:14px 0 0; font-size:15px; line-height:1.55; color:rgba(255,255,255,.72); }
.cost-card__src{ margin-top:auto; padding-top:18px; font-size:12px; color:rgba(255,255,255,.42); }

.reality__close{
  text-align:center; max-width:72ch; margin:clamp(40px,5vw,56px) auto 0;
  font-size:clamp(16px,1.3vw,18px); line-height:1.65; color:var(--muted);
}
.reality__close strong{ color:var(--navy); font-weight:600; }

@media (max-width:880px){
  .freq-grid{ grid-template-columns:1fr; }
  .cost-band{ grid-template-columns:1fr; padding:clamp(24px,5vw,32px); }
  .cost-card{ padding:0; }
  .cost-card:not(:first-child){ border-left:0; border-top:1px solid rgba(255,255,255,.12); margin-top:24px; padding-top:24px; }
}

/* ---------------- Outpace / Why XRAY — dark feature band (CSS-only) ---------------- */
.outpace{ background:var(--navy); position:relative; overflow:hidden; }
.outpace::before{
  content:""; position:absolute; top:-35%; right:-12%; width:65%; height:130%;
  background:radial-gradient(closest-side, rgba(0,188,156,.20), rgba(0,188,156,0) 70%);
  pointer-events:none;
}
.outpace::after{
  content:""; position:absolute; bottom:-40%; left:-15%; width:55%; height:120%;
  background:radial-gradient(closest-side, rgba(111,231,195,.10), rgba(111,231,195,0) 70%);
  pointer-events:none;
}
.outpace .wrap{ position:relative; z-index:1; }
.outpace .eyebrow{ color:var(--teal-soft); background:rgba(0,188,156,.16); }
.outpace .eyebrow::before{ background:var(--teal-soft); }
.outpace .h2{ color:#fff; }
.outpace .benefit{
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:none;
}
.outpace .benefit:hover{
  transform:translateY(-3px);
  border-color:rgba(0,188,156,.55);
  box-shadow:0 20px 44px -20px rgba(0,0,0,.65);
}
.outpace .benefit__badge{
  background:linear-gradient(135deg, rgba(0,188,156,.30), rgba(111,231,195,.12));
  color:var(--teal-soft);
}
.outpace .benefit p{ color:rgba(255,255,255,.82); }
