/* ============================================================================
   firewall.css — page-specific styles for the Integrated Firewall page.
   Loaded AFTER malcare.css; depends on its tokens and shared components.
   ============================================================================ */

/* ---------- hero ---------- */
.hero{padding:110px 0 90px;overflow:hidden;border-bottom:1px solid var(--ink-08)}
.hero-inner{display:grid;grid-template-columns:1.02fr .98fr;gap:60px;align-items:center}
.hero h1{font-size:clamp(36px,4.4vw,56px);margin-bottom:24px;max-width:16ch}
.hero h1 em{font-style:normal;color:var(--acc)}
.hero .lede{font-size:17px;margin-bottom:36px;max-width:52ch}
.hero .lede em{color:var(--hi);font-style:normal;font-weight:500}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:30px}
.trust-strip{display:flex;flex-wrap:wrap;border-top:1px solid var(--ink-08);padding-top:22px;font-family:var(--fm)}
.trust-strip .t{padding-right:26px;margin-right:26px;border-right:1px solid var(--ink-08)}
.trust-strip .t:last-child{border:0;margin:0;padding:0}
.trust-strip b{display:block;font-size:19px;color:var(--hi);font-weight:500;letter-spacing:-.01em}
.trust-strip span{font-size:10.5px;color:var(--mut);letter-spacing:.1em;text-transform:uppercase}
.hero-scene{position:relative;padding-bottom:118px}
.hero-scene > svg{width:100%}
.hero-log{position:absolute;right:0;bottom:0;width:min(320px,86%);font-family:var(--fm);font-size:10.5px}
.hero-log .rows{padding:8px 14px 10px;display:flex;flex-direction:column;gap:4px}
.hero-log .r{display:flex;justify-content:space-between;gap:12px;color:var(--mut);animation:rowIn .4s ease}
.hero-log .r b{font-weight:400;color:var(--body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tag.keep{color:var(--body)}

/* ---------- figure helpers ---------- */
.fig-m{display:none}
@media(max-width:760px){.fig-d{display:none}.fig-m{display:block}}

/* ---------- OWASP coverage board (FIG. 3) ---------- */
.owasp{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink-08);border-bottom:1px solid var(--ink-08)}
.orow{display:flex;align-items:baseline;gap:12px;padding:13px 18px 13px 2px;border-bottom:1px solid var(--ink-04)}
.orow:nth-child(odd){border-right:1px solid var(--ink-08);margin-right:18px}
.orow .tick{font-family:var(--fm);font-size:11px;color:var(--cy);flex:0 0 auto}
.orow b{font-size:13.5px;color:var(--body);font-weight:500;flex:0 0 auto}
.orow span.d{font-family:var(--fm);font-size:10.5px;color:var(--mut)}
.orow.wp{grid-column:1/-1;border-right:0;margin-right:0;border-bottom:0;border-left:2px solid var(--cy);padding-left:16px;background:var(--panel)}
.orow.wp b{color:var(--cy)}
@media(max-width:760px){
  .owasp{grid-template-columns:1fr}
  .orow:nth-child(odd){border-right:0;margin-right:0}
}

/* ---------- family roster (section 07) ---------- */
.layers{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink-08);border-bottom:1px solid var(--ink-08)}
.layer{padding:30px 28px 30px 0;margin-right:28px;border-right:1px solid var(--ink-08)}
.layer:nth-child(3n){border-right:0;margin-right:0;padding-right:0}
.layer:nth-child(-n+3){border-bottom:1px solid var(--ink-08)}
.layer svg{width:100%;max-width:150px;margin-bottom:16px}
.layer .ln{font-family:var(--fm);font-size:10px;letter-spacing:.22em;color:var(--cy);display:block;margin-bottom:10px}
.layer h3{font-size:16px;margin-bottom:6px}
.layer p{font-size:13px;color:var(--mut)}
.layer p b{color:var(--body);font-weight:500}
.layer a{color:var(--cy);text-decoration:none}
@media(max-width:1060px){
  .layers{grid-template-columns:1fr 1fr}
  .layer{border-bottom:1px solid var(--ink-08)}
  .layer:nth-child(3n){border-right:1px solid var(--ink-08);margin-right:28px;padding-right:28px}
  .layer:nth-child(2n){border-right:0;margin-right:0;padding-right:0}
  .layer:nth-last-child(-n+2){border-bottom:0}
}
@media(max-width:600px){
  .layers{grid-template-columns:1fr}
  .layer,.layer:nth-child(3n){border-right:0;margin-right:0;padding-right:0;border-bottom:1px solid var(--ink-08)}
  .layer:nth-last-child(-n+2){border-bottom:1px solid var(--ink-08)}
  .layer:last-child{border-bottom:0}
}

/* ---------- responsive ---------- */
@media(max-width:1060px){
  .hero-inner{grid-template-columns:1fr}
  .hero-log{position:relative;width:100%;margin-top:16px}
}
