/* ── Corvus Cybersecurity — Main Stylesheet ────────────────────── */

:root {
  --green: #00c853;
  --green-dim: #009e3f;
  --green-dark: #003d14;
  --green-glow: rgba(0,200,83,0.15);
  --green-glow-strong: rgba(0,200,83,0.35);
  --black: #060806;
  --black-card: #080f08;
  --black-mid: #0c160c;
  --black-border: #0d260d;
  --gray: #1a2e1a;
  --gray-text: #6b8f6b;
  --white: #e8ffe8;
  --font-mono: 'Share Tech Mono', monospace;
  --font-display: 'Exo 2', sans-serif;
  --font-body: 'Rajdhani', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--black);
  color: var(--white);
  font-family: var(--font-body);
  font-size: 16px;
  overflow-x: hidden;
}

/* Scanline overlay */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background: repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,0.03) 2px,rgba(0,0,0,0.03) 4px);
  pointer-events: none;
  z-index: 9997;
}

#matrix-canvas {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  opacity: 0.04;
  pointer-events: none;
  z-index: 0;
}

/* ── NAV ─────────────────────────────────────────────────────── */
#corvus-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  padding: 0 4rem;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(6,8,6,0.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--black-border);
}

.nav-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}
.logo-img { width: 48px; height: 48px; object-fit: contain; }
.logo-lockup {}
.logo-text {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 1.3rem;
  color: var(--green);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.1;
  text-shadow: 0 0 20px var(--green-glow-strong);
}
.logo-sub {
  font-family: var(--font-mono);
  font-size: 0.52rem;
  color: var(--gray-text);
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.nav-links {
  display: flex;
  gap: 2.5rem;
  list-style: none;
  align-items: center;
}
.nav-links a {
  color: var(--gray-text);
  text-decoration: none;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: color 0.2s;
  position: relative;
}
.nav-links a::after {
  content: '';
  position: absolute;
  bottom: -4px; left: 0; right: 0;
  height: 1px;
  background: var(--green);
  transform: scaleX(0);
  transition: transform 0.2s;
}
.nav-links a:hover { color: var(--green); }
.nav-links a:hover::after { transform: scaleX(1); }
.nav-links .nav-cta {
  padding: 8px 20px;
  border: 1px solid var(--green);
  color: var(--green) !important;
}
.nav-links .nav-cta:hover { background: var(--green-glow); }

.nav-toggle { display: none; }

/* ── SECTIONS ─────────────────────────────────────────────────── */
section { padding: 100px 4rem; position: relative; z-index: 1; }
main { position: relative; z-index: 1; }
.section-inner { max-width: 1200px; margin: 0 auto; }
.section-label {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--green);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.section-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(2rem,3vw,3rem);
  margin-bottom: 1rem;
  letter-spacing: -0.02em;
}
.section-desc {
  color: var(--gray-text);
  font-size: 1.05rem;
  line-height: 1.7;
  max-width: 600px;
}

/* ── HERO ─────────────────────────────────────────────────────── */
#hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: 100px 4rem 4rem;
}
.hero-grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--black-border) 1px,transparent 1px),
    linear-gradient(90deg,var(--black-border) 1px,transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse at 50% 50%,black 20%,transparent 80%);
}
.hero-content {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: center;
  width: 100%;
}
.hero-eyebrow {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--green);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}
.hero-eyebrow::before { content: '> '; animation: blink 1s step-end infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
.hero-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(3rem,5vw,5.5rem);
  line-height: 1;
  margin-bottom: 1.5rem;
  letter-spacing: -0.02em;
}
.hero-title .accent { color: var(--green); text-shadow: 0 0 40px var(--green-glow-strong); display: block; }
.hero-sub { font-size: 1.15rem; color: var(--gray-text); line-height: 1.7; margin-bottom: 2.5rem; }
.hero-actions { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.hero-visual { display: flex; justify-content: center; align-items: center; }
.hero-logo-img {
  width: 100%;
  max-width: 440px;
  height: auto;
  filter: drop-shadow(0 0 24px rgba(0,200,83,0.5));
  animation: float 4s ease-in-out infinite;
  border-radius: 8px;
}
@keyframes float {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}
.hero-stats { display:flex; gap:2rem; margin-top:3rem; padding-top:2rem; border-top:1px solid var(--black-border); }
.stat-num { font-family:var(--font-display); font-weight:900; font-size:2rem; color:var(--green); text-shadow:0 0 20px var(--green-glow-strong); }
.stat-label { font-family:var(--font-mono); font-size:0.65rem; color:var(--gray-text); letter-spacing:0.15em; text-transform:uppercase; }

/* ── BUTTONS ─────────────────────────────────────────────────── */
.btn-primary {
  padding: 14px 36px;
  background: var(--green);
  color: var(--black);
  font-family: var(--font-mono);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  display: inline-block;
  transition: box-shadow 0.2s, transform 0.2s;
  clip-path: polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);
  border: none;
  cursor: pointer;
}
.btn-primary:hover { box-shadow:0 0 30px var(--green-glow-strong); transform:translateY(-2px); color:var(--black); }
.btn-secondary {
  padding: 14px 36px;
  border: 1px solid var(--gray);
  color: var(--gray-text);
  font-family: var(--font-mono);
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  display: inline-block;
  transition: border-color 0.2s, color 0.2s;
}
.btn-secondary:hover { border-color:var(--green); color:var(--green); }

/* ── SERVICES ─────────────────────────────────────────────────── */
.services-header { margin-bottom: 4rem; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5px; background:var(--black-border); }
.service-card { background:var(--black-card); padding:2.5rem; position:relative; overflow:hidden; transition:background 0.3s; }
.service-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--green); transform:scaleX(0); transform-origin:left; transition:transform 0.4s; }
.service-card:hover { background:var(--black-mid); }
.service-card:hover::before { transform:scaleX(1); }
.service-icon { width:52px; height:52px; border:1px solid var(--black-border); display:flex; align-items:center; justify-content:center; margin-bottom:1.5rem; font-size:1.4rem; transition:border-color 0.3s,box-shadow 0.3s; }
.service-card:hover .service-icon { border-color:var(--green); box-shadow:0 0 20px var(--green-glow); }
.service-name { font-family:var(--font-display); font-weight:700; font-size:1.2rem; margin-bottom:0.75rem; }
.service-desc { color:var(--gray-text); font-size:0.9rem; line-height:1.65; margin-bottom:1.5rem; }
.service-tags { display:flex; flex-wrap:wrap; gap:6px; }
.tag { padding:3px 10px; border:1px solid var(--black-border); font-family:var(--font-mono); font-size:0.62rem; color:var(--gray-text); letter-spacing:0.1em; text-transform:uppercase; }

/* ── COMPLIANCE ─────────────────────────────────────────────────── */
.compliance-layout { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; }
.compliance-list { display:flex; flex-direction:column; gap:1px; margin-top:2rem; }
.compliance-item { display:flex; align-items:center; gap:1.5rem; padding:1.25rem 1.5rem; background:var(--black-card); border-left:2px solid transparent; transition:border-color 0.2s,background 0.2s; }
.compliance-item:hover { border-color:var(--green); background:var(--black-mid); }
.compliance-badge { font-family:var(--font-mono); font-size:0.78rem; color:var(--green); font-weight:700; min-width:80px; text-shadow:0 0 10px var(--green-glow-strong); }
.compliance-name { font-weight:600; font-size:0.95rem; }
.compliance-detail { font-size:0.82rem; color:var(--gray-text); margin-left:auto; font-family:var(--font-mono); }
.hex-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.hex-item { aspect-ratio:1; clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%); background:var(--black-mid); display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:0.65rem; color:var(--green); text-align:center; transition:background 0.2s; padding:10px; text-transform:uppercase; letter-spacing:0.05em; }
.hex-item:hover { background:var(--green-glow); }

/* ── VCISO ─────────────────────────────────────────────────────── */
.vciso-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:3rem; }
.vciso-pillar { padding:2rem; border:1px solid var(--black-border); background:rgba(0,0,0,0.5); position:relative; }
.vciso-pillar::after { content:attr(data-num); position:absolute; top:1.5rem; right:1.5rem; font-family:var(--font-display); font-weight:900; font-size:3rem; color:rgba(0,200,83,0.08); line-height:1; }
.vciso-pillar-title { font-family:var(--font-display); font-weight:700; font-size:1.1rem; margin-bottom:0.75rem; color:var(--green); }
.vciso-pillar-desc { color:var(--gray-text); font-size:0.9rem; line-height:1.6; }

/* ── TIMELINE ─────────────────────────────────────────────────── */
.timeline { position:relative; padding-left:2rem; margin-top:3rem; }
.timeline::before { content:''; position:absolute; left:0; top:0; bottom:0; width:1px; background:linear-gradient(to bottom,var(--green),transparent); }
.timeline-step { position:relative; padding:0 0 3rem 2.5rem; }
.timeline-step::before { content:''; position:absolute; left:-4.5px; top:6px; width:9px; height:9px; background:var(--green); border-radius:50%; box-shadow:0 0 10px var(--green); }
.step-phase { font-family:var(--font-mono); font-size:0.65rem; color:var(--green); letter-spacing:0.2em; text-transform:uppercase; margin-bottom:0.5rem; }
.step-title { font-family:var(--font-display); font-weight:700; font-size:1.2rem; margin-bottom:0.5rem; }
.step-desc { color:var(--gray-text); font-size:0.9rem; line-height:1.6; }

/* ── BLOG ─────────────────────────────────────────────────────── */
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.all-posts-link { color:var(--green); font-family:var(--font-mono); font-size:0.72rem; text-decoration:none; letter-spacing:0.1em; text-transform:uppercase; border-bottom:1px solid var(--green); padding-bottom:2px; }
.blog-card { background:var(--black-card); overflow:hidden; transition:transform 0.2s,box-shadow 0.2s; border:1px solid var(--black-border); }
.blog-card:hover { transform:translateY(-4px); box-shadow:0 20px 40px rgba(0,200,83,0.08); border-color:var(--green-dark); }
.blog-thumb { height:180px; background:var(--black-mid); position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.blog-thumb-text { font-size:3rem; color:var(--green-dark); opacity:0.5; }
.blog-thumb::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,var(--black-card),transparent); }
.blog-category { display:inline-block; padding:3px 10px; background:var(--green-dark); color:var(--green); font-family:var(--font-mono); font-size:0.6rem; letter-spacing:0.15em; text-transform:uppercase; position:absolute; top:1rem; left:1rem; z-index:1; }
.blog-body { padding:1.5rem; }
.blog-meta { font-family:var(--font-mono); font-size:0.65rem; color:var(--gray-text); margin-bottom:0.75rem; }
.blog-title { font-family:var(--font-display); font-weight:700; font-size:1.1rem; margin-bottom:0.75rem; line-height:1.3; }
.blog-excerpt { color:var(--gray-text); font-size:0.85rem; line-height:1.6; }
.blog-link { display:inline-flex; align-items:center; gap:8px; margin-top:1rem; color:var(--green); font-family:var(--font-mono); font-size:0.7rem; text-decoration:none; letter-spacing:0.1em; text-transform:uppercase; transition:gap 0.2s; }
.blog-link:hover { gap:14px; color:var(--green); }
.filter-btn { padding:8px 20px; background:transparent; color:var(--gray-text); font-family:var(--font-mono); font-size:0.7rem; border:1px solid var(--black-border); letter-spacing:0.1em; text-transform:uppercase; cursor:pointer; text-decoration:none; display:inline-block; transition:background 0.2s,color 0.2s; }
.filter-btn.active-filter, .filter-btn:hover { background:var(--green); color:var(--black); border-color:var(--green); }

/* ── POST CONTENT ─────────────────────────────────────────────── */
.post-content h2,.post-content h3,.post-content h4 { font-family:var(--font-display); font-weight:700; color:var(--white); margin:2rem 0 0.75rem; }
.post-content p { margin-bottom:1.25rem; }
.post-content ul,.post-content ol { padding-left:1.5rem; margin-bottom:1.25rem; }
.post-content li { margin-bottom:0.5rem; }
.post-content strong { color:var(--white); }
.post-content a { color:var(--green); }
.legal-content h3 { font-family:var(--font-display); font-weight:700; color:var(--white); margin:2rem 0 0.5rem; }
.legal-content p,.legal-content li { line-height:1.75; margin-bottom:1rem; }
.legal-content ul { padding-left:1.5rem; }

/* ── CONTACT ─────────────────────────────────────────────────── */
.contact-method-icon { width:40px; height:40px; border:1px solid var(--black-border); display:flex; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0; }
.contact-method-label { font-family:var(--font-mono); font-size:0.65rem; color:var(--gray-text); text-transform:uppercase; letter-spacing:0.1em; margin-bottom:3px; }

/* CF7 form styles */
.wpcf7-form { display:flex; flex-direction:column; gap:1.25rem; }
.wpcf7-form p { margin:0; }
.wpcf7-form label { font-family:var(--font-mono); font-size:0.65rem; color:var(--green); letter-spacing:0.15em; text-transform:uppercase; display:block; margin-bottom:0.5rem; }
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form select,
.wpcf7-form textarea {
  background:var(--black-card); border:1px solid var(--black-border); color:var(--white);
  font-family:var(--font-body); font-size:0.95rem; padding:12px 16px; outline:none;
  transition:border-color 0.2s,box-shadow 0.2s; width:100%; resize:none; appearance:none;
}
.wpcf7-form input:focus,.wpcf7-form select:focus,.wpcf7-form textarea:focus {
  border-color:var(--green); box-shadow:0 0 0 2px var(--green-glow);
}
.wpcf7-form input[type="submit"] {
  padding:14px 40px; background:var(--green); color:var(--black);
  font-family:var(--font-mono); font-size:0.82rem; font-weight:700;
  letter-spacing:0.12em; text-transform:uppercase; border:none; cursor:pointer;
  clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);
  transition:box-shadow 0.2s; align-self:flex-start;
}
.wpcf7-form input[type="submit"]:hover { box-shadow:0 0 30px var(--green-glow-strong); }

/* ── FOOTER ─────────────────────────────────────────────────── */
footer { background:var(--black-card); border-top:1px solid var(--black-border); padding:4rem; position:relative; z-index:1; }
.footer-inner { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:4rem; }
.footer-logo-img { width:48px; height:48px; object-fit:contain; margin-bottom:0.75rem; }
.footer-tagline { color:var(--gray-text); font-size:0.85rem; line-height:1.7; max-width:280px; }
.footer-col-title { font-family:var(--font-mono); font-size:0.65rem; color:var(--green); letter-spacing:0.2em; text-transform:uppercase; margin-bottom:1.25rem; }
.footer-links { list-style:none; display:flex; flex-direction:column; gap:0.75rem; }
.footer-links a { color:var(--gray-text); text-decoration:none; font-size:0.88rem; transition:color 0.2s; }
.footer-links a:hover { color:var(--green); }
.footer-bottom { max-width:1200px; margin:3rem auto 0; padding-top:2rem; border-top:1px solid var(--black-border); display:flex; justify-content:space-between; align-items:center; }
.footer-copy { font-family:var(--font-mono); font-size:0.65rem; color:var(--gray-text); letter-spacing:0.08em; }
.footer-binary { font-family:var(--font-mono); font-size:0.6rem; color:var(--green); opacity:0.4; letter-spacing:0.1em; }

/* ── WORDPRESS ADMIN BAR FIX ─────────────────────────────────── */
.admin-bar #corvus-nav { top: 32px; }
@media screen and (max-width:782px) { .admin-bar #corvus-nav { top:46px; } }

/* ── RESPONSIVE ─────────────────────────────────────────────── */
@media(max-width:900px) {
  #corvus-nav { padding:0 1.5rem; }
  .nav-links { display:none; flex-direction:column; position:absolute; top:72px; left:0; right:0; background:rgba(6,8,6,0.98); padding:1.5rem; gap:1rem; border-bottom:1px solid var(--black-border); }
  .nav-links.open { display:flex; }
  .nav-toggle { display:block; background:none; border:1px solid var(--green); color:var(--green); font-size:1.2rem; padding:6px 12px; cursor:pointer; }
  section { padding:60px 1.5rem; }
  #hero { padding:100px 1.5rem 60px; }
  .hero-content { grid-template-columns:1fr; gap:3rem; }
  .hero-visual { order:-1; }
  .hero-logo-img { max-width:280px; }
  .services-grid { grid-template-columns:1fr; }
  .compliance-layout { grid-template-columns:1fr; }
  .hex-grid { grid-template-columns:repeat(3,1fr); }
  .vciso-grid { grid-template-columns:1fr; }
  .blog-grid { grid-template-columns:1fr; }
  .footer-inner { grid-template-columns:1fr 1fr; gap:2rem; }
  footer { padding:3rem 1.5rem; }
}
