/*
Theme Name: Hardage Marketing Group
Theme URI: https://hughhardage.com
Author: EMM
Description: One-page marketing site for Hardage Marketing Group. Dark, bold, with a scroll-scrubbed brand assembly hero. Content is hardcoded in page templates by design.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hardage-marketing-group
*/

/* Palette approved via mockup sign-off 2026-08-13.
   Dark theme: --primary is the page ground; --text-dark is the high-contrast
   foreground (light on dark), per agency variable-role convention. */
:root{
  --primary:#080c10;         /* page background, matched to brand logo */
  --primary-mid:#10141b;     /* raised surface */
  --primary-light:#151a23;   /* raised surface 2 */
  --accent:#2563eb;          /* fills: white text passes AA */
  --accent-light:#7fa7ff;    /* accent text/links on dark */
  --text-dark:#f4f5f7;       /* main foreground */
  --text-muted:#a6acb8;
  --text-subtle:rgba(244,245,247,.55);
  --surface-light:#0b1220;   /* contact gradient end */
  --surface-warm:#0e1c38;    /* feature card gradient start */
  --line:rgba(244,245,247,.10);
  --ease:cubic-bezier(.16,1,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  background:var(--primary);
  color:var(--text-dark);
  font-family:"Space Grotesk",system-ui,-apple-system,sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:1320px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}

/* ---------- Promo ribbon ---------- */
.promo-ribbon{
  position:relative;z-index:41;
  background:var(--accent);color:#fff;
  text-align:center;font-size:14px;font-weight:500;
  padding:8px 16px;
}

/* ---------- Nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:40;
  height:68px;
  background:rgba(8,12,16,.82);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
body.has-ribbon .nav{position:sticky}
body.admin-bar .nav{top:32px}
@media screen and (max-width:782px){body.admin-bar .nav{top:46px}}
.nav-inner{
  max-width:1320px;margin:0 auto;height:100%;
  padding:0 clamp(20px,4vw,56px);
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.wordmark{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:-.01em;font-size:17px}
.wordmark img{width:34px;height:34px;object-fit:cover}
.wordmark small{display:block;font-size:11px;font-weight:400;color:var(--text-muted);letter-spacing:.02em}
.nav-links{display:flex;align-items:center;gap:32px;font-size:15px}
.nav-links ul{display:flex;align-items:center;gap:32px;list-style:none}
.nav-links a{color:var(--text-muted);transition:color .25s var(--ease)}
.nav-links a:hover{color:var(--text-dark)}
.btn,
.nav-links li.nav-cta > a{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--accent);color:#fff;font-weight:600;font-size:15px;
  padding:13px 26px;border:1px solid transparent;white-space:nowrap;
  transition:transform .2s var(--ease),background .25s var(--ease);
}
.btn:hover,
.nav-links li.nav-cta > a:hover{background:#1d4fd6;color:#fff}
.btn:active{transform:translateY(1px) scale(.98)}
.btn-ghost{
  background:transparent;color:var(--text-dark);border:1px solid rgba(244,245,247,.28);
}
.btn-ghost:hover{background:rgba(244,245,247,.08)}
@media (max-width:820px){.nav-links li:not(.nav-cta){display:none}.nav-links > a:not(.btn){display:none}}

/* ---------- Hero: scroll-scrubbed assembly reel ---------- */
.hero-reel{position:relative;height:100dvh;overflow:hidden;background:var(--primary)}
.hero-reel video{
  position:absolute;top:0;bottom:0;height:100%;object-fit:cover;
  /* video's H mark is center-frame; oversize + offset shifts it to ~1/3 viewport width */
  width:114%;left:-25%;
}
.hero-scrim{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(270deg,rgba(8,12,16,.94) 0%,rgba(8,12,16,.72) 40%,rgba(8,12,16,0) 68%),
             linear-gradient(180deg,rgba(8,12,16,.6) 0%,transparent 18%,transparent 82%,var(--primary) 100%);
}
.hero-copy{
  position:relative;z-index:2;height:100%;
  max-width:1320px;margin:0 auto;
  padding:68px clamp(20px,4vw,56px) 0;
  display:flex;flex-direction:column;justify-content:center;
}
.hero-copy-inner{max-width:520px;margin-left:auto}
.hero-copy h1{
  font-size:clamp(2.4rem,4.6vw,3.9rem);
  line-height:1.04;letter-spacing:-.03em;font-weight:700;
  max-width:12ch;
}
.hero-copy p{
  margin-top:22px;color:var(--text-muted);
  font-size:clamp(1.05rem,1.4vw,1.25rem);max-width:38ch;
}
.hero-ctas{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap}
@media (max-width:700px){
  .hero-reel video{width:100%;left:0}
  .hero-scrim{
    background:linear-gradient(180deg,rgba(8,12,16,.55) 0%,rgba(8,12,16,.25) 40%,rgba(8,12,16,.82) 100%);
  }
  .hero-copy{justify-content:flex-end;padding-bottom:12vh}
  .hero-copy-inner{margin-left:0}
}

/* ---------- Founder ---------- */
.founder{padding:clamp(80px,12vh,140px) 0}
.founder-grid{
  display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(32px,5vw,80px);align-items:center;
}
.founder h2,.services h2,.contact h2{
  font-size:clamp(2rem,4.2vw,3.4rem);
  letter-spacing:-.025em;line-height:1.05;font-weight:700;
}
.founder-photo{position:relative;width:min(100%,440px)}
.founder-photo::before{
  content:"";position:absolute;inset:auto -18px -18px 18px;top:18px;
  border:1px solid var(--line);z-index:0;
}
.founder-photo img{
  position:relative;z-index:1;width:100%;aspect-ratio:4/5;object-fit:cover;
  filter:grayscale(28%) contrast(1.04);
  border-left:4px solid var(--accent);
}
.founder-photo figcaption{position:relative;z-index:1;margin-top:16px}
.founder-photo strong{display:block;font-size:1.05rem}
.founder-photo span{color:var(--text-muted);font-size:.95rem}
.founder-body{
  margin-top:26px;color:var(--text-muted);
  font-size:clamp(1.05rem,1.4vw,1.2rem);max-width:56ch;
  display:grid;gap:16px;
}
.stats{
  margin-top:clamp(36px,5vh,56px);
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:560px;border-top:1px solid var(--line);
}
.stat{padding:24px 24px 0 0}
.stat b{
  display:block;font-size:clamp(2rem,3.6vw,2.8rem);
  font-weight:700;letter-spacing:-.03em;color:var(--accent-light);
}
.stat span{color:var(--text-muted);font-size:.95rem}
@media (max-width:900px){
  .founder-grid{grid-template-columns:1fr}
  .founder-photo{width:min(100%,380px)}
}
@media (max-width:640px){.stats{grid-template-columns:1fr}.stat{padding-right:0}}

/* ---------- Marquee ---------- */
.marquee{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;padding:22px 0;background:var(--primary-mid);
}
.marquee-track{
  display:flex;gap:0;width:max-content;
  animation:marquee 28s linear infinite;
}
.marquee span{
  font-size:clamp(1rem,1.6vw,1.35rem);font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--text-muted);
  padding:0 28px;position:relative;white-space:nowrap;
}
.marquee span::after{
  content:"/";position:absolute;right:-6px;color:var(--accent-light);font-weight:400;
}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}}

/* ---------- Services ---------- */
.services{padding:clamp(80px,12vh,140px) 0}
.services-grid{
  margin-top:clamp(40px,6vh,64px);
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;
  align-items:stretch;
}
.service{
  border:1px solid var(--line);
  display:flex;flex-direction:column;
  position:relative;overflow:hidden;
}
.service-media{position:relative;aspect-ratio:16/8;overflow:hidden}
.service-media img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(70%) contrast(1.05) brightness(.72);
  transition:transform .6s var(--ease);
}
.service:hover .service-media img{transform:scale(1.04)}
.service-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(37,99,235,.18) 0%,rgba(8,12,16,.42) 100%);
}
.service-body{
  padding:clamp(24px,3vw,40px);
  display:flex;flex-direction:column;gap:18px;flex:1;
}
.service.feature .service-body{background:linear-gradient(135deg,var(--surface-warm) 0%,var(--primary-light) 60%)}
.service.alt .service-body{background:var(--primary-mid)}
.service h3{font-size:clamp(1.4rem,2vw,1.9rem);letter-spacing:-.02em;font-weight:600}
.service p{color:var(--text-muted);max-width:52ch;font-size:1.05rem}
.service .tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}
.service .tags li{
  list-style:none;font-size:13px;font-weight:500;color:var(--text-muted);
  border:1px solid var(--line);padding:7px 14px;
}
@media (max-width:900px){.services-grid{grid-template-columns:1fr}}

/* ---------- Team image band ---------- */
.band{position:relative;height:clamp(320px,52vh,540px);overflow:hidden}
.band img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(85%) contrast(1.05) brightness(.62);
}
.band::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,var(--primary) 0%,rgba(8,12,16,.25) 30%,rgba(37,99,235,.16) 70%,var(--primary) 100%);
}

/* ---------- Contact ---------- */
.contact{
  padding:clamp(90px,14vh,160px) 0;
  border-top:1px solid var(--line);
  background:linear-gradient(180deg,var(--primary) 0%,var(--surface-light) 100%);
}
.contact-grid{
  display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);
  gap:clamp(32px,5vw,72px);align-items:center;
}
.contact p.lede{margin-top:20px;color:var(--text-muted);max-width:46ch;font-size:1.1rem}
.contact-links{margin-top:clamp(36px,6vh,56px);display:grid;gap:8px}
.contact-links a{
  font-size:clamp(1.5rem,4.2vw,3.4rem);
  font-weight:700;letter-spacing:-.025em;line-height:1.15;
  color:var(--text-dark);width:fit-content;position:relative;
  transition:color .25s var(--ease);
}
.contact-links a::after{
  content:"";position:absolute;left:0;bottom:2px;height:2px;width:100%;
  background:var(--accent);transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--ease);
}
.contact-links a:hover{color:var(--accent-light)}
.contact-links a:hover::after{transform:scaleX(1)}
.contact-meta{margin-top:40px;display:flex;gap:28px;flex-wrap:wrap;color:var(--text-muted);font-size:.98rem}
.contact-meta a{color:var(--accent-light)}
.contact-meta a:hover{text-decoration:underline}
.contact-logo{justify-self:end;width:min(100%,300px)}
@media (max-width:900px){
  .contact-grid{grid-template-columns:1fr}
  .contact-logo{justify-self:start;width:min(60%,240px);order:-1}
}

/* ---------- Contact Form 7 (if a form is added later) ---------- */
.wpcf7-form label{display:block;margin-bottom:18px;color:var(--text-muted);font-size:.95rem}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea{
  width:100%;margin-top:6px;padding:13px 16px;
  background:var(--primary-mid);border:1px solid var(--line);color:var(--text-dark);
  font-family:inherit;font-size:1rem;
}
.wpcf7-form input:focus,.wpcf7-form textarea:focus{outline:2px solid var(--accent);outline-offset:0}
.wpcf7-form .wpcf7-submit{
  display:inline-flex;background:var(--accent);color:#fff;font-weight:600;
  padding:13px 26px;border:0;cursor:pointer;font-size:15px;
}
.wpcf7-form .wpcf7-submit:hover{background:#1d4fd6}
.wpcf7-not-valid-tip{color:#ff8f8f;font-size:.85rem;margin-top:4px}
.wpcf7-response-output{border:1px solid var(--line);padding:10px 14px;margin-top:16px;color:var(--text-muted)}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--line);padding:28px 0}
.footer-inner{
  max-width:1320px;margin:0 auto;padding:0 clamp(20px,4vw,56px);
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  color:var(--text-muted);font-size:.92rem;
}
.footer-brand{display:flex;align-items:center;gap:10px}
.footer-brand img{width:24px;height:24px;object-fit:cover}

/* ---------- Reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}
.reveal.d2{transition-delay:.16s}
.reveal.d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
}

/* ---------- WP defaults ---------- */
.screen-reader-text{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);
  height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;
}
.entry-content a{color:var(--accent-light)}
.entry-content p{margin-bottom:1em;color:var(--text-muted)}
