/*
Theme Name: EngiVolt Pro
Theme URI: https://engivoltpro.com
Author: EngiVolt Pro
Description: Self-written theme for EngiVolt Pro — dark institutional B2B site (D033 palette: charcoal / off-white / voltage-teal). Professional front and inquiry-conversion layer. No page builder.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: evp
*/

/* ============ Tokens (D033) ============ */
:root{
  --evp-bg:#0E1A24;        /* charcoal base */
  --evp-panel:#122029;     /* raised section */
  --evp-panel-2:#101d26;   /* card / form panel */
  --evp-field:#16242E;     /* input bg */
  --evp-text:#E9EEF2;      /* off-white */
  --evp-text-2:#B7C6D0;    /* body secondary */
  --evp-muted:#8FA6B2;     /* muted */
  --evp-muted-2:#6E8492;   /* faint */
  --evp-teal:#29E0C6;      /* voltage teal — accent */
  --evp-teal-soft:rgba(41,224,198,0.08);
  --evp-teal-line:rgba(41,224,198,0.45);
  --evp-hair:rgba(233,238,242,0.10);
  --evp-hair-2:rgba(233,238,242,0.08);
  --evp-hair-3:rgba(233,238,242,0.15);
  --evp-wrap:1120px;
  --evp-radius:7px;
}

/* ============ Base ============ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--evp-bg);
  color:var(--evp-text);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  font-size:16px;
  line-height:1.7;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-weight:500;color:var(--evp-text);margin:0;line-height:1.25;}
p{margin:0;}
a{color:inherit;text-decoration:none;transition:color .15s ease;}
img{max-width:100%;height:auto;}
svg{display:block;}

.evp-wrap{max-width:var(--evp-wrap);margin:0 auto;padding:0 24px;}
.evp-wrap--narrow{max-width:820px;}
.evp-page-title{font-size:clamp(24px,3vw,30px);margin:0 0 14px;}

/* skip link */
.evp-skip{position:absolute;left:-9999px;top:0;background:var(--evp-teal);color:var(--evp-bg);padding:10px 16px;border-radius:var(--evp-radius);z-index:100;}
.evp-skip:focus{left:16px;top:16px;}

:focus-visible{outline:2px solid var(--evp-teal);outline-offset:2px;border-radius:3px;}

/* ============ Header / nav ============ */
.evp-header{border-bottom:1px solid var(--evp-hair);}
.evp-nav{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 0;flex-wrap:wrap;}
.evp-brand{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:500;letter-spacing:.02em;color:var(--evp-text);}
.evp-navlinks{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.evp-navlink{color:var(--evp-muted);font-size:13.5px;}
.evp-navlink:hover,.evp-navlink[aria-current="page"]{color:var(--evp-text);}
.evp-btn{
  display:inline-flex;align-items:center;gap:7px;
  background:var(--evp-teal);color:var(--evp-bg);
  font-size:14px;font-weight:500;padding:10px 17px;border-radius:var(--evp-radius);
  border:none;cursor:pointer;transition:opacity .15s ease;
}
.evp-btn:hover{opacity:.9;}
.evp-btn--sm{font-size:13px;padding:7px 14px;}
.evp-link{color:var(--evp-teal);font-size:13.5px;display:inline-flex;align-items:center;gap:6px;}
.evp-link:hover{opacity:.85;}

/* ============ Sections ============ */
.evp-section{padding:44px 0;}
.evp-section--panel{background:var(--evp-panel);border-top:1px solid var(--evp-hair-2);}
.evp-eyebrow{font-size:12.5px;letter-spacing:.04em;color:var(--evp-teal);margin-bottom:8px;}
.evp-h2{font-size:22px;margin:0 0 18px;}
.evp-lede{font-size:clamp(15px,2vw,17px);line-height:1.65;color:var(--evp-text-2);max-width:60ch;}

/* ============ Hero (two-column) ============ */
.evp-hero{padding:56px 0 44px;}
.evp-hero-grid{display:grid;grid-template-columns:1.08fr 0.92fr;gap:40px;align-items:center;}
.evp-hero-grid h1{font-size:clamp(28px,3.4vw,40px);line-height:1.2;margin:0 0 18px;max-width:none;}
.evp-hero-grid .evp-lede{margin:0 0 16px;max-width:52ch;}
.evp-contrarian{font-size:clamp(14px,1.8vw,16px);line-height:1.6;color:var(--evp-muted);font-style:italic;max-width:52ch;margin:0 0 26px;}
.evp-hero-figure{display:flex;justify-content:center;align-items:center;}
.evp-hero-figure svg{width:100%;max-width:320px;height:auto;}

/* ============ Card grid / how-I-work / lens panel ============ */
.evp-cardgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.evp-who-card{border:1px solid var(--evp-hair);border-radius:12px;padding:16px 18px;}
.evp-who-card p{margin:0;font-size:14px;line-height:1.55;color:var(--evp-text-2);}
.evp-how-grid{display:grid;grid-template-columns:1fr 0.85fr;gap:36px;align-items:center;}
.evp-lens-panel{border:1px solid var(--evp-hair);border-radius:12px;overflow:hidden;}
.evp-lens-panel .row{display:flex;gap:12px;align-items:center;padding:11px 15px;font-size:14px;color:var(--evp-text-2);border-bottom:1px solid var(--evp-hair-2);}
.evp-lens-panel .row:last-child{border-bottom:none;}
.evp-lens-panel .n{color:var(--evp-teal);font-size:12px;min-width:18px;}

/* ============ Grid ============ */
.evp-grid{display:grid;gap:16px;}
.evp-grid--2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
.evp-grid--who{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}

/* who-this-is-for */
.evp-who{display:flex;gap:11px;align-items:flex-start;}
.evp-who .dot{width:7px;height:7px;background:var(--evp-teal);border-radius:1px;margin-top:9px;flex-shrink:0;}
.evp-who p{font-size:14px;line-height:1.55;color:var(--evp-text-2);}

/* chips (5-lens on home) */
.evp-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;}
.evp-chip{border:1px solid var(--evp-teal-line);color:var(--evp-teal);font-size:12.5px;padding:4px 11px;border-radius:20px;}

/* ============ Service rows ============ */
.evp-svc{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid var(--evp-hair-2);}
.evp-svc:last-child{border-bottom:none;}
.evp-svc .ic{color:var(--evp-teal);font-size:20px;flex-shrink:0;margin-top:2px;}
.evp-svc h3{font-size:15px;margin:0;}
.evp-svc .for{font-size:12px;color:var(--evp-muted);}
.evp-svc .desc{font-size:14px;line-height:1.55;color:var(--evp-text-2);margin:6px 0 9px;}
.evp-svc-head{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;margin-bottom:2px;}

/* ============ Methodology lenses ============ */
.evp-lens{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--evp-hair-2);}
.evp-lens:last-child{border-bottom:none;}
.evp-lnum{display:inline-flex;width:28px;height:28px;border:1px solid var(--evp-teal-line);color:var(--evp-teal);border-radius:6px;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;margin-top:1px;}
.evp-lens h3{font-size:15px;margin:0 0 4px;}
.evp-lens p{font-size:14px;line-height:1.55;color:var(--evp-text-2);}

/* what to expect */
.evp-check{display:flex;gap:9px;align-items:flex-start;}
.evp-check .ic{color:var(--evp-teal);font-size:16px;margin-top:3px;flex-shrink:0;}
.evp-check span{font-size:14px;line-height:1.5;color:var(--evp-text-2);}

/* ============ Cards ============ */
.evp-card{border:1px solid var(--evp-hair);border-radius:12px;padding:18px 20px;}
.evp-card .ic{color:var(--evp-teal);font-size:18px;margin-bottom:8px;}
.evp-card h3{font-size:15px;margin:0 0 6px;}
.evp-card p{font-size:13.5px;line-height:1.55;color:var(--evp-text-2);}
.evp-case{border:1px solid var(--evp-hair);border-radius:12px;padding:16px 18px;background:var(--evp-panel-2);}
.evp-case .tag{font-size:11.5px;letter-spacing:.04em;color:var(--evp-teal);margin-bottom:8px;}
.evp-case p{font-size:13.5px;line-height:1.6;color:var(--evp-text-2);margin:0 0 8px;}
.evp-case .fine{font-size:11.5px;color:var(--evp-muted-2);margin:0;}

/* ============ CTA band ============ */
.evp-band{background:var(--evp-panel);border-top:1px solid var(--evp-hair-2);}
.evp-band .inner{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;padding:30px 0;}
.evp-band p{font-size:clamp(15px,2vw,17px);line-height:1.5;color:var(--evp-text);max-width:46ch;}

/* ============ Forms ============ */
.evp-form{border:1px solid var(--evp-hair);border-radius:12px;padding:22px;background:var(--evp-panel-2);}
.evp-form label{display:block;font-size:12.5px;color:var(--evp-muted);margin-bottom:5px;}
.evp-field{
  background:var(--evp-field);border:1px solid var(--evp-hair-3);color:var(--evp-text);
  border-radius:var(--evp-radius);padding:10px 12px;font-size:14px;width:100%;
  font-family:inherit;line-height:1.5;
}
.evp-field:focus{outline:none;border-color:var(--evp-teal);box-shadow:0 0 0 1px var(--evp-teal);}
.evp-field::placeholder{color:#5E7280;}
.evp-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;}
.evp-radios{display:grid;gap:9px;}
.evp-radio{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--evp-hair-3);border-radius:8px;padding:11px 13px;cursor:pointer;}
.evp-radio:hover{border-color:var(--evp-teal-line);}
.evp-radio input{margin:3px 0 0;accent-color:var(--evp-teal);flex-shrink:0;}
.evp-radio .t{font-size:13.5px;color:var(--evp-text);}
.evp-radio .s{font-size:12px;color:var(--evp-muted);margin-top:2px;}
.evp-optional{color:#5E7280;}
.evp-formnote{margin:16px 0 0;font-size:12.5px;line-height:1.55;color:var(--evp-muted);}

/* ============ Bio (team) ============ */
.evp-bio-head{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:8px 0 10px;}
.evp-avatar{width:84px;height:84px;border-radius:50%;border:1px solid var(--evp-teal-line);background:#0B1620;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.evp-bio-head h1{font-size:clamp(22px,3vw,26px);margin:0 0 4px;}
.evp-bio-role{font-size:14px;color:var(--evp-text-2);margin-bottom:4px;}
.evp-bio-tag{font-size:12.5px;color:var(--evp-muted);max-width:46ch;}
.evp-prose p{font-size:15px;line-height:1.7;color:var(--evp-text-2);margin:0 0 14px;max-width:64ch;}
.evp-subblocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:6px 0;}
.evp-subblock{border-top:1px solid var(--evp-hair);padding-top:14px;}
.evp-subblock h2{font-size:15px;margin:0 0 7px;}
.evp-subblock p{font-size:13.5px;line-height:1.6;color:var(--evp-text-2);margin:0;}

/* operating entity box */
.evp-entity{border:1px solid var(--evp-hair);border-radius:10px;padding:14px 16px;background:var(--evp-panel-2);}
.evp-entity .lbl{font-size:11.5px;letter-spacing:.04em;color:var(--evp-muted);margin-bottom:6px;}
.evp-entity p{font-size:12.5px;line-height:1.6;color:var(--evp-muted);margin:0;}

/* ============ Footer ============ */
.evp-footer{border-top:1px solid var(--evp-hair);padding:26px 0;}
.evp-footer .top{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin-bottom:10px;}
.evp-footer .brandline{font-size:13px;color:var(--evp-muted);}
.evp-footer .social{display:flex;gap:16px;}
.evp-footer .social a{font-size:13px;color:var(--evp-muted);}
.evp-footer .social a:hover{color:var(--evp-text);}
.evp-disclosure{font-size:11.5px;line-height:1.6;color:var(--evp-muted-2);margin:0;}

/* ============ Utility ============ */
.evp-stack-gap>*+*{margin-top:14px;}
.evp-mt-s{margin-top:8px;}
.evp-center{text-align:center;}

/* ============ Responsive ============ */
@media (max-width:860px){
  .evp-hero-grid{grid-template-columns:1fr;gap:26px;}
  .evp-hero-figure{max-width:240px;margin:0 auto;}
  .evp-how-grid{grid-template-columns:1fr;gap:22px;}
  .evp-cardgrid{grid-template-columns:1fr;}
}

@media (max-width:720px){
  .evp-nav{align-items:flex-start;}
  .evp-navlinks{gap:12px 16px;width:100%;}
  .evp-hero{padding:44px 0 34px;}
  .evp-section{padding:34px 0;}
  .evp-band .inner{padding:24px 0;}
}

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