/*
Theme Name:  Local Growth 360
Theme URI:   https://localgrowth360.com
Author:      Local Growth 360
Author URI:  https://localgrowth360.com
Description: Custom WordPress theme for Local Growth 360. Hand-coded, zero page builders. Local SEO, AI SEO & Lead Generation Agency.
Version:     1.0.1
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License:     Private
Text Domain: localgrowth360
*/

/* ================================================================
   LOCAL GROWTH 360 — MASTER STYLESHEET
   All shared styles: tokens, reset, typography, buttons, header,
   footer, sticky CTA, scroll-reveal, and ALL responsive breakpoints.
   Page-specific styles → assets/css/[page].css
   Single service styles → assets/css/single-service.css
================================================================ */

/* ── DESIGN TOKENS ──────────────────────────────────────────── */
:root {
  /* Colors */
  --ink-900:#0A0F1E; --ink-800:#0F1525; --ink-700:#111827;
  --ink-600:#141C2E; --ink-500:#1B2438;
  --orange-600:#E64A18; --orange-500:#FF5E28; --orange-400:#FF7A4D;
  --orange-dim:rgba(255,94,40,.12); --orange-glow:rgba(255,94,40,.30);
  --green-500:#22C55E; --green-400:#4ADE80; --green-glow:rgba(34,197,94,.20);
  --text-hi:#F8FAFC; --text-mid:#AEB9CC; --text-lo:#6B7892;
  --line:rgba(255,255,255,.08); --line-strong:rgba(255,255,255,.16);
  --light-bg:#F6F5F1; --light-card:#FFFFFF; --light-line:#E7E4DC;
  --on-light-hi:#0A0F1E; --on-light-mid:#5A6477; --on-light-lo:#8A93A6;
  /* Typography */
  --display:'Cormorant',Georgia,serif;
  --editorial:'Lora',Georgia,serif;
  --ui:'Sora',system-ui,-apple-system,sans-serif;
  /* Radii */
  --r-sm:8px; --r-md:12px; --r-lg:18px; --r-xl:26px;
  /* Motion */
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --dur:.45s;
  /* Layout */
  --sec:clamp(74px,9vw,116px);
  --wrap:1200px;
  --hh:74px; /* header height */
}

/* ── RESET ──────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0 }
html { scroll-behavior:smooth; font-size:16px; -webkit-text-size-adjust:100% }
body { font-family:var(--ui); background:var(--ink-900); color:var(--text-mid);
  line-height:1.6; overflow-x:hidden; -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale }
img,video { max-width:100%; height:auto; display:block }
a { color:inherit; text-decoration:none }
ul,ol { list-style:none }
button { cursor:pointer; font-family:inherit }
input,textarea,select { font-family:inherit }
.wrap { max-width:var(--wrap); margin:0 auto; padding:0 28px }

/* ── TYPOGRAPHY ─────────────────────────────────────────────── */
h1,h2,h3,h4 { font-family:var(--display); font-weight:600;
  line-height:1.06; letter-spacing:-.012em; color:var(--text-hi) }
.eyebrow { font-family:var(--ui); font-size:.72rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--orange-400);
  display:inline-flex; align-items:center; gap:10px; margin-bottom:18px }
.eyebrow::before { content:""; width:24px; height:1px; background:var(--orange-500) }
.eyebrow.center { justify-content:center }
.headline { font-family:var(--display); font-weight:700;
  font-size:clamp(2.1rem,4.2vw,3.25rem); line-height:1.04; color:var(--text-hi) }
.headline em { font-style:italic; color:var(--orange-500) }
.sub { font-family:var(--editorial); font-size:1.08rem; color:var(--text-mid);
  line-height:1.7; margin-top:18px; max-width:560px }
.sec { padding:var(--sec) 0 }
.sec-dark { background:var(--ink-900) }
.sec-mid  { background:var(--ink-800) }
.sec-light { background:var(--light-bg) }
.sec-light .headline,.sec-light h2,.sec-light h3 { color:var(--on-light-hi) }
.sec-light .sub { color:var(--on-light-mid) }
.sec-light .eyebrow { color:var(--orange-600) }
.sec-light .eyebrow::before { background:var(--orange-600) }
.sec-head-split { display:flex; justify-content:space-between; align-items:flex-end;
  gap:40px; margin-bottom:54px; flex-wrap:wrap }
.sec-head-center { text-align:center; margin-bottom:58px;
  max-width:680px; margin-inline:auto }
.sec-head-center .sub { margin:18px auto 0 }

/* ── SCROLL REVEAL ──────────────────────────────────────────── */
[data-r] { opacity:0; transform:translateY(24px);
  transition:opacity .65s var(--ease-out),transform .65s var(--ease-out) }
[data-r].in { opacity:1; transform:none }
[data-d="1"] { transition-delay:.08s } [data-d="2"] { transition-delay:.16s }
[data-d="3"] { transition-delay:.24s } [data-d="4"] { transition-delay:.32s }

/* ── BUTTONS ────────────────────────────────────────────────── */
.btn { display:inline-flex; align-items:center; gap:9px; font-family:var(--ui);
  font-size:.9rem; font-weight:600; border-radius:var(--r-sm);
  transition:all .28s var(--ease); white-space:nowrap; line-height:1;
  text-decoration:none; border:none }
.btn .ic { font-size:1.05em; flex-shrink:0 }
.btn-primary { background:var(--orange-500); color:#fff; padding:15px 28px;
  border:1.5px solid transparent; box-shadow:0 8px 28px -12px var(--orange-glow) }
.btn-primary:hover { background:var(--orange-400); transform:translateY(-2px);
  box-shadow:0 16px 40px -12px var(--orange-glow) }
.btn-ghost { background:rgba(255,255,255,.02); color:var(--text-hi);
  padding:14px 26px; border:1.5px solid var(--line-strong) }
.btn-ghost:hover { border-color:var(--orange-500); color:var(--orange-400);
  background:var(--orange-dim) }
.btn-outline { background:transparent; color:var(--orange-500);
  padding:11px 22px; border:1.5px solid var(--orange-500); font-size:.84rem }
.btn-outline:hover { background:var(--orange-500); color:#fff }
.arrow-link { display:inline-flex; align-items:center; gap:7px; font-family:var(--ui);
  font-size:.84rem; font-weight:600; color:var(--orange-500);
  transition:gap .25s var(--ease),color .25s }
.arrow-link:hover { gap:11px; color:var(--orange-400) }

/* ── ICONS ──────────────────────────────────────────────────── */
.ic { width:1em; height:1em; display:inline-block; vertical-align:-.14em;
  fill:none; stroke:currentColor; stroke-width:1.7;
  stroke-linecap:round; stroke-linejoin:round; flex-shrink:0 }
.ic-solid { fill:currentColor; stroke:none }

/* ── ANNOUNCEMENT BAR ───────────────────────────────────────── */
.ann-bar { background:var(--ink-600); border-bottom:1px solid var(--line);
  font-family:var(--ui); font-size:.76rem; font-weight:500; color:var(--text-mid);
  padding:9px 28px; display:flex; align-items:center; justify-content:center;
  gap:10px; text-align:center; flex-wrap:wrap; position:relative; z-index:901 }
.ann-badge { background:var(--orange-500); color:#fff; font-size:.65rem;
  font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  padding:2px 8px; border-radius:4px; white-space:nowrap; flex-shrink:0 }
.ann-bar strong { color:var(--orange-400); font-weight:700 }
.ann-link,.ann-bar a { color:var(--orange-400); font-weight:600;
  text-decoration:underline; text-underline-offset:3px; transition:color .2s }
.ann-link:hover,.ann-bar a:hover { color:var(--orange-500) }

/* ── HEADER ─────────────────────────────────────────────────── */
#hdr { position:sticky; top:0; left:0; width:100%; z-index:900;
  transition:background .3s var(--ease),box-shadow .3s var(--ease) }
#hdr.solid { background:rgba(10,15,30,.96); backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  box-shadow:0 1px 0 var(--line),0 8px 32px -8px rgba(0,0,0,.5) }
.hdr-inner { display:flex; align-items:center; justify-content:space-between;
  height:var(--hh); gap:20px }

/* Logo */
.logo { font-family:var(--display); font-weight:700; font-size:1.28rem;
  color:var(--text-hi); letter-spacing:-.01em; display:flex;
  align-items:center; gap:10px; white-space:nowrap; flex-shrink:0 }
.logo-icon { width:24px; height:24px; border-radius:var(--r-sm);
  background:var(--orange-500); box-shadow:0 0 12px var(--orange-glow);
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:1rem; flex-shrink:0 }
.logo-dot { width:9px; height:9px; border-radius:50%;
  background:var(--orange-500); box-shadow:0 0 10px var(--orange-glow); flex-shrink:0 }
.logo-accent { color:var(--orange-400) }

/* Desktop nav */
.hdr-nav { display:flex; align-items:center }
.hdr-nav-list { display:flex; align-items:center; gap:2px;
  list-style:none; padding:0; margin:0 }
.hdr-nav-list > li { position:relative }
.hdr-nav-list > li > a,
.hdr-nav-list > li > .nav-link {
  font-family:var(--ui); font-size:.84rem; font-weight:500;
  color:var(--text-mid); padding:7px 13px; border-radius:var(--r-sm);
  transition:color .22s,background .22s; display:flex; align-items:center; gap:4px;
  white-space:nowrap }
.hdr-nav-list > li > a:hover,
.hdr-nav-list > li > a[aria-current="page"],
.hdr-nav-list > li > .nav-link:hover,
.hdr-nav-list > li > .nav-link[aria-current="page"] {
  color:var(--text-hi); background:rgba(255,255,255,.06) }
.hdr-nav-list > li > a[aria-current="page"],
.hdr-nav-list > li > .nav-link[aria-current="page"] { color:var(--orange-400) }
/* Dropdown */
.hdr-nav-list > li.has-dropdown { position:relative }
.nav-dropdown { display:none; position:absolute; top:calc(100% + 8px); left:0;
  background:var(--ink-700); border:1px solid var(--line); border-radius:var(--r-md);
  padding:8px; min-width:200px; z-index:999; box-shadow:0 16px 40px rgba(0,0,0,.4);
  list-style:none }
.hdr-nav-list > li.has-dropdown:hover .nav-dropdown { display:block }
.nav-dropdown li a,.nav-drop-link { display:block; padding:8px 12px;
  font-size:.84rem; color:var(--text-mid); border-radius:6px;
  transition:color .2s,background .2s }
.nav-dropdown li a:hover,.nav-drop-link:hover { color:var(--text-hi);
  background:rgba(255,255,255,.06) }
/* Mobile nav list */
.mob-nav-list { list-style:none; padding:0; margin:0 }
.mob-nav-list > li > a,
.mob-nav-list > li > .nav-link { font-family:var(--display); font-size:1.7rem;
  font-weight:600; color:var(--text-hi); padding:14px 0;
  border-bottom:1px solid var(--line); display:block; transition:color .22s }
.mob-nav-list > li:last-child > a,
.mob-nav-list > li:last-child > .nav-link { border-bottom:none }
.mob-nav-list > li > a:hover,
.mob-nav-list > li > .nav-link:hover { color:var(--orange-400) }

/* Header actions */
.hdr-actions { display:flex; align-items:center; gap:12px; flex-shrink:0 }
.hdr-phone { font-family:var(--ui); font-size:.82rem; font-weight:600;
  color:var(--text-mid); display:flex; align-items:center; gap:7px;
  transition:color .22s; white-space:nowrap }
.hdr-phone:hover { color:var(--orange-400) }

/* Hamburger */
.hbg { display:none; background:none; border:1.5px solid var(--line-strong);
  border-radius:var(--r-sm); padding:0; cursor:pointer; color:var(--text-hi);
  transition:border-color .22s; flex-direction:column; gap:5px;
  align-items:center; justify-content:center; width:42px; height:42px;
  flex-shrink:0 }
.hbg span { display:block; width:18px; height:1.5px; background:currentColor;
  transition:transform .3s var(--ease),opacity .3s,width .3s }
.hbg:hover { border-color:var(--orange-500) }
.hbg.x span:nth-child(1) { transform:translateY(6.5px) rotate(45deg) }
.hbg.x span:nth-child(2) { opacity:0; width:0 }
.hbg.x span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg) }

/* ── MOBILE NAV OVERLAY ─────────────────────────────────────── */
.mob-nav { display:none; position:fixed; inset:0; z-index:850;
  background:rgba(6,10,20,.98); backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  flex-direction:column; overflow-y:auto;
  opacity:0; pointer-events:none; transition:opacity .28s var(--ease) }
.mob-nav.open { opacity:1; pointer-events:all }
.mob-nav-inner { display:flex; flex-direction:column; min-height:100%;
  padding:calc(var(--hh) + 24px) 24px 120px }
.mob-nav-list { list-style:none; padding:0; margin:0; display:flex;
  flex-direction:column }
.mob-nav-list li a,
.mob-nav .nav-link {
  font-family:var(--display); font-size:1.7rem; font-weight:600;
  color:var(--text-hi); padding:14px 0;
  border-bottom:1px solid var(--line); display:block;
  transition:color .22s; text-decoration:none }
.mob-nav-list li a:hover,
.mob-nav .nav-link:hover { color:var(--orange-400) }
.mob-nav-list li:last-child a,
.mob-nav .nav-link:last-of-type { border-bottom:none }
.mob-nav-cta { margin-top:28px; display:flex; flex-direction:column; gap:12px }
.mob-phone { justify-content:center }

/* ── PAGE HERO (inner pages) ────────────────────────────────── */
.pg-hero { padding-top:calc(var(--hh) + 80px);
  padding-bottom:clamp(60px,8vw,100px);
  background:radial-gradient(120% 80% at 50% -10%,#0e1730 0%,var(--ink-900) 55%);
  position:relative; overflow:hidden }
.pg-hero::before { content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse 600px 400px at 50% 110%,var(--orange-glow),transparent 70%);
  pointer-events:none }
.pg-hero-inner { text-align:center; max-width:760px; margin:0 auto; position:relative; z-index:1 }
.pg-hero .sub { margin:20px auto 0; max-width:580px; text-align:center }
.pg-hero .btn-row { display:flex; align-items:center; justify-content:center;
  gap:16px; flex-wrap:wrap; margin-top:36px }

/* ── FOOTER ─────────────────────────────────────────────────── */
footer { background:var(--ink-800); border-top:1px solid var(--line);
  padding:64px 0 0 }
.ft-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr;
  gap:48px; padding-bottom:56px }
.ft-brand p { font-family:var(--ui); font-size:.85rem; color:var(--text-lo);
  line-height:1.7; margin-top:14px; max-width:280px }
.ft-socials { display:flex; gap:12px; margin-top:22px; flex-wrap:wrap }
.ft-soc-btn { width:36px; height:36px; border-radius:var(--r-sm);
  border:1px solid var(--line); display:flex; align-items:center;
  justify-content:center; color:var(--text-lo); font-size:.95rem;
  transition:border-color .22s,color .22s,background .22s; flex-shrink:0 }
.ft-soc-btn:hover { border-color:var(--orange-500); color:var(--orange-400);
  background:var(--orange-dim) }
.ft-col h4 { font-family:var(--ui); font-size:.78rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--text-hi);
  margin-bottom:18px }
/* All footer menu lists */
.ft-col ul,.ft-col ol,.ft-col .menu,.ft-col nav ul {
  list-style:none; padding:0; margin:0 }
.ft-col ul li,.ft-col ol li,.ft-col .menu li,.ft-col nav ul li {
  margin-bottom:10px; padding:0; line-height:1 }
.ft-col ul li a,.ft-col ol li a,.ft-col .menu li a,.ft-col nav ul li a {
  font-family:var(--ui); font-size:.84rem; color:var(--text-lo);
  transition:color .22s; text-decoration:none; display:inline-block }
.ft-col ul li a:hover,.ft-col .menu li a:hover { color:var(--orange-400) }
/* Flat links (fallback when no menu) */
.ft-col > a { font-family:var(--ui); font-size:.84rem; color:var(--text-lo);
  display:block; margin-bottom:10px; transition:color .22s }
.ft-col > a:hover { color:var(--orange-400) }
.ft-bottom { border-top:1px solid var(--line); padding:22px 0;
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap }
.ft-bottom p { font-family:var(--ui); font-size:.76rem; color:var(--text-lo) }
.ft-bottom-links { display:flex; gap:20px; flex-wrap:wrap }
.ft-bottom-links a { font-family:var(--ui); font-size:.76rem;
  color:var(--text-lo); transition:color .22s }
.ft-bottom-links a:hover { color:var(--orange-400) }

/* ── STICKY MOBILE CTA ──────────────────────────────────────── */
.mob-sticky { display:none; position:fixed; bottom:0; left:0; right:0;
  z-index:800; background:var(--ink-700); border-top:1px solid var(--line);
  padding:10px 16px; gap:10px }
.mob-sticky .btn { flex:1; justify-content:center;
  font-size:.85rem; padding:14px 10px; border-radius:var(--r-sm) }

/* ================================================================
   RESPONSIVE — 1200 | 1024 | 768 | 480 | 360
================================================================ */

/* ── 1200px ───────────────────────────────────────────────── */
@media (max-width:1200px) {
  .wrap { padding:0 24px }
  .hdr-nav-list > li > a,
  .hdr-nav .nav-link { padding:6px 10px; font-size:.82rem }
  .ft-grid { grid-template-columns:1.5fr 1fr 1fr 1fr; gap:36px }
}

/* ── 1024px ───────────────────────────────────────────────── */
@media (max-width:1024px) {
  .hdr-phone { display:none }
  .hdr-nav-list > li > a,
  .hdr-nav .nav-link { font-size:.8rem; padding:6px 9px }
  .ft-grid { grid-template-columns:1fr 1fr 1fr; gap:28px }
  .ft-brand { grid-column:1/-1 }
  .values-grid,.team-grid { grid-template-columns:repeat(2,1fr) }
  .stats-grid { grid-template-columns:repeat(2,1fr) }
  .process-steps { grid-template-columns:repeat(3,1fr); gap:28px }
  .process-steps::before { display:none }
  .story-grid,.philosophy-inner { grid-template-columns:1fr }
}

/* ── 768px MOBILE ─────────────────────────────────────────── */
@media (max-width:768px) {

  /* Announcement bar */
  .ann-bar { font-size:.7rem; padding:8px 16px; gap:8px }
  .ann-badge { display:none }

  /* Header */
  :root { --hh:64px }
  .hdr-inner { padding:0 16px }
  .hdr-nav { display:none !important }
  .hdr-phone { display:none !important }
  .hdr-cta-btn { display:none }
  .hbg { display:flex !important }
  .logo { font-size:1.1rem }
  .logo-icon { width:20px; height:20px; font-size:.85rem }

  /* Mobile nav */
  .mob-nav { display:block }
  .mob-nav.open { display:block }

  /* ── FOOTER 2-COLUMN ──── */
  footer { padding:40px 0 0 }
  .ft-grid {
    grid-template-columns:1fr 1fr;
    gap:20px 16px;
    padding-bottom:28px;
  }
  .ft-brand {
    grid-column:1 / -1;
    padding-bottom:20px;
    border-bottom:1px solid var(--line);
  }
  .ft-brand p { max-width:100%; font-size:.82rem }
  .ft-socials { margin-top:14px; gap:8px }
  .ft-soc-btn { width:34px; height:34px }

  .ft-col h4 {
    font-size:.68rem;
    letter-spacing:.1em;
    margin-bottom:10px;
  }
  .ft-col ul li,
  .ft-col .menu li,
  .ft-col nav ul li { margin-bottom:6px }
  .ft-col ul li a,
  .ft-col .menu li a,
  .ft-col nav ul li a { font-size:.79rem }

  .ft-bottom {
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:8px;
    padding:16px 0 84px;
  }
  .ft-bottom p { font-size:.71rem }
  .ft-bottom-links { justify-content:center; gap:10px 14px }
  .ft-bottom-links a { font-size:.71rem }

  /* ── STICKY CTA ────── */
  .mob-sticky {
    display:flex !important;
    position:fixed;
    bottom:0; left:0; right:0;
    z-index:900;
    background:rgba(6,10,20,.97);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    border-top:1px solid rgba(255,255,255,.1);
    padding:10px 16px;
    padding-bottom:max(10px, env(safe-area-inset-bottom));
    gap:10px;
    box-shadow:0 -8px 32px rgba(0,0,0,.5);
  }
  .mob-sticky .btn {
    flex:1;
    justify-content:center;
    padding:14px 8px;
    font-size:.85rem;
    border-radius:8px;
  }
  .mob-sticky .btn-primary {
    background:var(--orange-500);
    box-shadow:0 4px 16px -4px rgba(255,80,30,.45);
  }
  .mob-sticky .btn-ghost {
    border:1.5px solid rgba(255,255,255,.18);
    color:#fff;
  }

  /* Page sections */
  .wrap { padding:0 16px }
  .values-grid { grid-template-columns:1fr }
  .team-grid { grid-template-columns:1fr }
  .process-steps { grid-template-columns:1fr; gap:20px }
  .stats-grid { grid-template-columns:1fr 1fr }
  .pg-hero { padding-bottom:80px }
  .pg-hero .btn-row .btn-ghost { display:none }
  .sec-head-split { flex-direction:column; align-items:flex-start }
  .headline { font-size:clamp(1.8rem,5vw,2.8rem) }
}

/* ── 480px ────────────────────────────────────────────────── */
@media (max-width:480px) {
  :root { --hh:60px }

  .ann-bar { font-size:.67rem; padding:7px 12px; gap:6px }
  .logo { font-size:1rem }
  .logo-icon { width:18px; height:18px }

  .ft-grid { gap:18px 12px }
  .ft-col h4 { font-size:.66rem; margin-bottom:8px }
  .ft-col ul li a,
  .ft-col .menu li a,
  .ft-col nav ul li a { font-size:.76rem }
  .ft-bottom { padding-bottom:76px }
  .ft-soc-btn { width:32px; height:32px }

  .mob-sticky { padding:8px 12px }
  .mob-sticky { padding-bottom:max(8px,env(safe-area-inset-bottom)) }
  .mob-sticky .btn { font-size:.8rem; padding:13px 6px }

  .btn-primary,.btn-ghost { padding:13px 20px; font-size:.85rem }

  .mob-nav-inner { padding-top:calc(var(--hh) + 16px) }
  .mob-nav-list li a,
  .mob-nav .nav-link { font-size:1.4rem; padding:12px 0 }
}

/* ── 360px ────────────────────────────────────────────────── */
@media (max-width:360px) {
  .wrap { padding:0 12px }
  .ft-grid { gap:16px 10px }
  .ft-col h4 { font-size:.64rem }
  .ft-col ul li a,
  .ft-col .menu li a { font-size:.73rem }
  .ft-bottom-links { flex-direction:column; align-items:center; gap:6px }
  .mob-nav-list li a,
  .mob-nav .nav-link { font-size:1.2rem }
  .mob-sticky .btn { font-size:.77rem }
}

/* ── Reduced motion ───────────────────────────────────────── */
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation-duration:.001ms !important;
    transition-duration:.001ms !important;
  }
  [data-r] { opacity:1; transform:none }
  .mob-nav { transition:none }
  html { scroll-behavior:auto }
}
