/* ============================================================
   DeepBluePower — Design tokens
   Palette drawn from ocean depth: surface light fading to abyss,
   cut with bioluminescent teal and brass-instrument amber.
   ============================================================ */
:root{
  --abyss:        #050B14;
  --deep:         #0A1C2B;
  --mid:          #0F2A3A;
  --surface:      #123246;
  --teal:         #3EE0D6;
  --teal-dim:     #1F8C86;
  --teal-glow:    rgba(62,224,214,0.35);
  --amber:        #E8A857;
  --amber-dim:    #9C7038;
  --foam:         #EAF3F2;
  --foam-dim:     #9FB6BC;
  --line:         rgba(159,182,188,0.16);

  --font-display: 'Fraunces', Georgia, serif;
  --font-body:    'Inter', -apple-system, sans-serif;
  --font-mono:    'IBM Plex Mono', 'Courier New', monospace;

  --wrap: 1180px;
  --pad: clamp(20px, 5vw, 64px);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--abyss);
  color:var(--foam);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.1;
  margin:0 0 0.5em;
  letter-spacing:-0.01em;
}
p{margin:0 0 1em;color:var(--foam-dim);}
.container{
  max-width:var(--wrap);
  margin:0 auto;
  padding-left:var(--pad);
  padding-right:var(--pad);
}
.eyebrow{
  font-family:var(--font-mono);
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--teal);
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.eyebrow::before{
  content:"";
  width:6px;height:6px;border-radius:50%;
  background:var(--teal);
  box-shadow:0 0 8px 2px var(--teal-glow);
}

/* focus visibility */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--teal);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important; scroll-behavior:auto !important;}
}

/* ---------------- Nav ---------------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:linear-gradient(180deg, rgba(5,11,20,0.92), rgba(5,11,20,0.7));
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav .container{
  display:flex; align-items:center; justify-content:space-between;
  height:76px;
}
.nav-logo{
  font-family:var(--font-display);
  font-size:1.15rem;
  font-weight:600;
  letter-spacing:0.01em;
  display:flex; align-items:center; gap:10px;
}
.nav-logo .mark{
  width:22px;height:22px;
  color:var(--teal);
}
.nav-links{
  display:flex; align-items:center; gap:2.2rem;
  list-style:none; margin:0; padding:0;
}
.nav-links a{
  font-size:0.9rem; color:var(--foam-dim);
  position:relative; padding:6px 0;
  transition:color .2s ease;
}
.nav-links a:hover, .nav-links a.active{color:var(--foam);}
.nav-links a.active::after{
  content:""; position:absolute; left:0; right:0; bottom:0;
  height:2px; background:var(--teal); box-shadow:0 0 6px var(--teal-glow);
}
.nav-cta{
  font-family:var(--font-mono); font-size:0.78rem;
  border:1px solid var(--teal-dim); color:var(--teal);
  padding:9px 16px; border-radius:2px; letter-spacing:0.03em;
  transition:all .2s ease;
}
.nav-cta:hover{background:var(--teal); color:var(--abyss); border-color:var(--teal);}
.nav-toggle{display:none;}

@media (max-width:860px){
  .nav-links{
    position:fixed; top:76px; left:0; right:0; bottom:0;
    background:var(--abyss); flex-direction:column; justify-content:flex-start;
    padding:40px var(--pad); gap:1.8rem; transform:translateX(100%);
    transition:transform .3s ease; overflow-y:auto;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links a{font-size:1.3rem;}
  .nav-cta{display:none;}
  .nav-toggle{
    display:flex; flex-direction:column; gap:5px; background:none; border:none;
    cursor:pointer; padding:8px; z-index:101;
  }
  .nav-toggle span{width:22px;height:2px;background:var(--foam);transition:.25s;}
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.open span:nth-child(2){opacity:0;}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}

/* ---------------- Buttons ---------------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-mono); font-size:0.85rem; letter-spacing:0.02em;
  padding:14px 26px; border-radius:2px; cursor:pointer; border:1px solid transparent;
  transition:all .22s ease;
}
.btn-primary{
  background:var(--teal); color:var(--abyss);
  box-shadow:0 0 0 0 var(--teal-glow);
}
.btn-primary:hover{box-shadow:0 0 26px 2px var(--teal-glow); transform:translateY(-1px);}
.btn-ghost{
  border-color:var(--line); color:var(--foam);
}
.btn-ghost:hover{border-color:var(--teal); color:var(--teal);}

/* ---------------- Hero ---------------- */
.hero{
  position:relative;
  padding:168px 0 120px;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.hero-bg{position:absolute; inset:0; z-index:0; opacity:0.9;}
.hero .container{position:relative; z-index:1;}
.hero h1{
  font-size:clamp(2.4rem, 5.4vw, 4.6rem);
  max-width:15ch;
  color:var(--foam);
}
.hero h1 em{color:var(--teal); font-style:normal;}
.hero-sub{
  max-width:52ch;
  font-size:1.08rem;
  margin-top:1.1em;
}
.hero-actions{display:flex; gap:16px; margin-top:2.4em; flex-wrap:wrap;}
.hero-stats{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  margin-top:5rem; background:var(--line); border:1px solid var(--line);
}
.hero-stat{background:var(--abyss); padding:1.6rem 1.4rem;}
.hero-stat .num{
  font-family:var(--font-mono); font-size:1.9rem; color:var(--teal);
  display:block;
}
.hero-stat .label{font-size:0.82rem; color:var(--foam-dim); margin-top:4px;}
@media (max-width:700px){.hero-stats{grid-template-columns:1fr;}}

/* ---------------- Section basics ---------------- */
section{padding:110px 0;}
.section-head{max-width:640px; margin-bottom:3.4rem;}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.6rem); margin-top:0.5em;}
.divider{border:none; border-top:1px solid var(--line); margin:0;}

/* ---------------- Depth scale (signature element) ---------------- */
.depth{
  position:relative;
  background:linear-gradient(180deg, var(--deep) 0%, var(--mid) 55%, var(--abyss) 100%);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.depth-grid{
  display:grid; grid-template-columns:96px 1fr; gap:0;
}
.depth-ruler{
  position:relative; border-right:1px solid var(--line);
  font-family:var(--font-mono); font-size:0.72rem; color:var(--foam-dim);
}
.depth-tick{
  position:absolute; left:0; right:0; padding:0 14px;
  display:flex; align-items:center; height:0;
}
.depth-tick::before{
  content:""; width:14px; height:1px; background:var(--line); margin-right:8px;
}
.depth-zones{padding:0 0 0 40px;}
.depth-zone{
  padding:3.4rem 20px 3.4rem 0; border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:1fr; gap:0.6rem;
  position:relative;
}
.depth-zone:last-child{border-bottom:none;}
.depth-zone .zdepth{
  font-family:var(--font-mono); color:var(--teal); font-size:0.8rem; letter-spacing:0.05em;
}
.depth-zone h3{font-size:1.4rem; margin:0.3em 0 0.4em;}
.depth-zone p{max-width:56ch; margin-bottom:0;}
.depth-zone .dot{
  position:absolute; left:-45px; top:3.6rem; width:9px; height:9px; border-radius:50%;
  background:var(--teal); box-shadow:0 0 10px 2px var(--teal-glow);
}
@media (max-width:700px){
  .depth-grid{grid-template-columns:1fr;}
  .depth-ruler{display:none;}
  .depth-zones{padding-left:0;}
  .depth-zone .dot{display:none;}
}

/* ---------------- Cards / grid ---------------- */
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:820px){.grid-3{grid-template-columns:1fr;} .grid-2{grid-template-columns:1fr;}}
.card{background:var(--abyss); padding:2.2rem;}
.card .icon{color:var(--teal); width:30px; height:30px; margin-bottom:1.4rem;}
.card h3{font-size:1.15rem; margin-bottom:0.5em;}
.card p{margin-bottom:0; font-size:0.94rem;}

/* ---------------- Compare table ---------------- */
.compare{width:100%; border-collapse:collapse; font-size:0.92rem;}
.compare th,.compare td{
  padding:16px 18px; border-bottom:1px solid var(--line); text-align:left;
}
.compare th{
  font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--foam-dim); font-weight:500;
}
.compare td.hi{color:var(--teal); font-family:var(--font-mono);}
.compare tr td:first-child, .compare tr th:first-child{color:var(--foam);}
.compare-wrap{overflow-x:auto; border:1px solid var(--line);}

/* ---------------- CTA band ---------------- */
.cta-band{
  background:var(--mid);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  text-align:center;
}
.cta-band h2{font-size:clamp(1.8rem,3.6vw,2.8rem); max-width:18ch; margin:0 auto 0.5em;}
.cta-band p{max-width:50ch; margin:0 auto 2em;}
.cta-band .hero-actions{justify-content:center;}

/* ---------------- Footer ---------------- */
footer{padding:64px 0 40px; border-top:1px solid var(--line);}
.footer-grid{display:flex; justify-content:space-between; flex-wrap:wrap; gap:2.4rem; margin-bottom:3rem;}
.footer-brand .nav-logo{margin-bottom:0.8rem;}
.footer-brand p{max-width:34ch; font-size:0.9rem;}
.footer-cols{display:flex; gap:4rem; flex-wrap:wrap;}
.footer-col h4{font-family:var(--font-mono); font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--foam-dim); margin-bottom:1rem;}
.footer-col a{display:block; font-size:0.9rem; color:var(--foam-dim); margin-bottom:0.7rem; transition:color .2s;}
.footer-col a:hover{color:var(--teal);}
.footer-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
  font-family:var(--font-mono); font-size:0.76rem; color:var(--foam-dim);
  padding-top:2rem; border-top:1px solid var(--line);
}

/* ---------------- Page hero (interior pages) ---------------- */
.page-hero{padding:160px 0 80px; border-bottom:1px solid var(--line);}
.page-hero h1{font-size:clamp(2.1rem,4.4vw,3.4rem); max-width:18ch;}
.page-hero p{max-width:56ch; font-size:1.05rem; margin-top:1em;}

/* ---------------- Reveal on scroll ---------------- */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------------- Contact form ---------------- */
.form-field{margin-bottom:1.4rem;}
.form-field label{
  display:block; font-family:var(--font-mono); font-size:0.75rem;
  letter-spacing:0.05em; text-transform:uppercase; color:var(--foam-dim); margin-bottom:0.5rem;
}
.form-field input, .form-field textarea, .form-field select{
  width:100%; background:var(--deep); border:1px solid var(--line); color:var(--foam);
  padding:13px 14px; font-family:var(--font-body); font-size:0.95rem; border-radius:2px;
  transition:border-color .2s;
}
.form-field input:focus, .form-field textarea:focus, .form-field select:focus{
  border-color:var(--teal); outline:none;
}
.form-field textarea{resize:vertical; min-height:120px;}
.form-note{font-size:0.82rem; color:var(--foam-dim); margin-top:1rem;}

.contact-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:1px; background:var(--line); border:1px solid var(--line);}
.contact-grid > div{background:var(--abyss); padding:2.6rem;}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr;}}
.info-row{display:flex; gap:16px; padding:1.2rem 0; border-bottom:1px solid var(--line);}
.info-row:last-child{border-bottom:none;}
.info-row .k{font-family:var(--font-mono); font-size:0.75rem; color:var(--teal); min-width:90px; text-transform:uppercase; letter-spacing:0.05em;}
.info-row .v{color:var(--foam);}
