/* ------------------------------------------------------------------
   Connect Me Up — shared base stylesheet.
   Page-specific styles live inline in each template's {% block page_css %}.
   Themed pages override --theme / --theme-soft / --theme-border (and
   --accent2 for the "g" highlight) at the top of their inline <style>.
------------------------------------------------------------------- */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --sky:#08111f;
  --sky-mid:#0b1c35;
  --accent:#00c8ff;
  --accent2:#00ff9d;
  --accent-soft:rgba(0,200,255,0.1);
  --card-border:rgba(0,200,255,0.16);
  --white:#ffffff;
  --off-white:#ddeeff;
  --muted:#7a9ec0;
  --card-bg:rgba(255,255,255,0.03);
  --fd:'Barlow Condensed',sans-serif;
  --fb:'Barlow',sans-serif;

  /* Per-page theme accent — default to blue. Override on themed pages. */
  --theme:var(--accent);
  --theme-soft:var(--accent-soft);
  --theme-border:var(--card-border);
}

html{scroll-behavior:smooth}
body{background:var(--sky);color:var(--white);font-family:var(--fb);font-size:16px;line-height:1.6;overflow-x:hidden}

/* ---------- Nav ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(8,17,31,0.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,200,255,0.1);padding:0 6%;display:flex;align-items:center;justify-content:space-between;height:66px}
.nav-logo{display:flex;align-items:baseline;gap:4px;text-decoration:none}
.nav-logo-main{font-family:var(--fd);font-size:24px;font-weight:800;letter-spacing:.02em;color:var(--white)}
.nav-logo-main span{color:var(--accent)}
.nav-logo-sub{font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-left:8px}
.nav-links{display:flex;gap:1.75rem;list-style:none}
.nav-links a{color:var(--off-white);text-decoration:none;font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;opacity:.72;transition:opacity .2s,color .2s}
.nav-links a:hover,.nav-links a.active{opacity:1;color:var(--theme)}
.nav-cta{background:var(--accent)!important;color:var(--sky)!important;padding:8px 20px;border-radius:4px;font-weight:700!important;opacity:1!important}
.nav-cta:hover{background:#33d4ff!important}

/* ---------- Sub-page hero ---------- */
.page-hero{min-height:46vh;display:flex;align-items:flex-end;position:relative;padding:110px 6% 60px;overflow:hidden}
.page-hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 60%,rgba(0,80,180,0.16) 0%,transparent 65%),linear-gradient(155deg,#08111f 0%,#0c1e38 55%,#08111f 100%)}
.breadcrumb{position:absolute;top:82px;left:6%;font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center}
.breadcrumb a{color:var(--muted);text-decoration:none;transition:color .2s}
.breadcrumb a:hover{color:var(--theme)}
.breadcrumb span{opacity:.5}
.breadcrumb .current{opacity:1;color:var(--off-white)}
.page-hero-content{position:relative;z-index:2;max-width:720px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--theme-soft);border:1px solid var(--theme-border);border-radius:4px;padding:5px 12px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--theme);margin-bottom:1.2rem}
.hero-sub{font-size:17px;font-weight:300;color:var(--off-white);opacity:.8;max-width:540px;line-height:1.72;margin-bottom:2rem}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}

/* ---------- Typography ---------- */
h1{font-family:var(--fd);font-size:clamp(46px,6.5vw,80px);font-weight:800;line-height:.93;letter-spacing:-.01em;text-transform:uppercase;margin-bottom:1.2rem}
h1 span,h1 em{font-style:normal;color:var(--theme);display:inline}
h1 em.g{color:var(--accent2);display:block}
h2{font-family:var(--fd);font-size:clamp(32px,4.5vw,52px);font-weight:800;text-transform:uppercase;line-height:.97;letter-spacing:.01em;margin-bottom:1.2rem}
h2 .a{color:var(--accent)}
h2 .g{color:var(--accent2)}
.section-label{font-family:var(--fd);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--theme);margin-bottom:10px}
section{padding:76px 6%}
p.lead{font-size:17px;color:var(--off-white);opacity:.78;max-width:620px;line-height:1.72;margin-bottom:2rem}
.section-intro{font-size:17px;color:var(--off-white);opacity:.78;max-width:520px;margin-bottom:2.5rem;line-height:1.72}

/* ---------- Buttons ---------- */
.btn-primary{display:inline-flex;align-items:center;gap:10px;background:var(--theme);color:var(--sky);font-family:var(--fd);font-size:16px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;padding:13px 28px;border-radius:4px;border:none;cursor:pointer;transition:background .2s,transform .15s,filter .2s}
.btn-primary:hover{filter:brightness(1.15);transform:translateY(-2px)}
.btn-secondary,.btn-ghost{display:inline-flex;align-items:center;gap:10px;background:transparent;color:var(--white);font-family:var(--fd);font-size:16px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;padding:13px 28px;border-radius:4px;border:1px solid rgba(255,255,255,.22);cursor:pointer;transition:border-color .2s,background .2s}
.btn-secondary:hover,.btn-ghost:hover{border-color:var(--theme);background:var(--theme-soft)}
.btn-blue{display:inline-flex;align-items:center;gap:10px;background:var(--accent);color:var(--sky);font-family:var(--fd);font-size:16px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;padding:13px 28px;border-radius:4px;border:none;cursor:pointer;transition:background .2s,transform .15s}
.btn-blue:hover{background:#33d4ff;transform:translateY(-2px)}

/* ---------- Common section utilities ---------- */
.alt-bg{background:rgba(0,200,255,.025);border-top:1px solid rgba(0,200,255,.07);border-bottom:1px solid rgba(0,200,255,.07)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}

/* ---------- Feature list (used on most service pages) ---------- */
.feature-list{display:flex;flex-direction:column;gap:1.25rem}
.feature-item{display:flex;gap:1rem;align-items:flex-start}
.fi-icon{width:40px;height:40px;background:var(--theme-soft);border:1px solid var(--theme-border);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}
.fi-icon svg{width:18px;height:18px;stroke:var(--theme);fill:none;stroke-width:1.9}
.fi-text h4{font-family:var(--fd);font-size:17px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.fi-text p{font-size:14px;color:var(--muted);line-height:1.6}

/* ---------- Info card (sticky sidebar on service pages) ---------- */
.info-card{background:var(--card-bg);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:2rem;position:sticky;top:80px}
.info-card h3{font-family:var(--fd);font-size:20px;font-weight:700;text-transform:uppercase;margin-bottom:1.25rem;color:var(--theme)}
.price-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:14px}
.price-row:last-of-type{border-bottom:none}
.price-label{color:var(--off-white);opacity:.8}
.price-val{font-family:var(--fd);font-size:16px;font-weight:700;color:var(--white)}
.price-note{font-size:12px;color:var(--muted);margin-top:1rem;line-height:1.5}

/* ---------- FAQ accordion ---------- */
.faq-list{display:flex;flex-direction:column;gap:.5rem}
.faq-item{background:var(--card-bg);border:1px solid rgba(255,255,255,.06);border-radius:8px;overflow:hidden}
.faq-q{padding:1.1rem 1.25rem;font-weight:500;font-size:15px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq-q:hover{color:var(--theme)}
.faq-q svg{width:16px;height:16px;stroke:var(--muted);fill:none;stroke-width:2;flex-shrink:0;transition:transform .25s}
.faq-item.open .faq-q svg{transform:rotate(180deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.faq-item.open .faq-a{max-height:400px}
.faq-a-inner{padding:0 1.25rem 1.1rem;font-size:14px;color:var(--muted);line-height:1.7}

/* ---------- CTA band ---------- */
.cta-band{background:linear-gradient(135deg,rgba(0,200,255,.08),rgba(0,100,180,.06));border-top:1px solid rgba(0,200,255,.1);border-bottom:1px solid rgba(0,200,255,.1);padding:60px 6%;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.cta-band h2{margin-bottom:.5rem;font-size:clamp(28px,4vw,44px)}
.cta-band p{font-size:15px;color:var(--muted);max-width:500px}
.cta-actions{display:flex;gap:1rem;flex-wrap:wrap}

/* ---------- Footer ---------- */
footer{background:var(--sky);border-top:1px solid rgba(255,255,255,.05);padding:1.75rem 6%;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.footer-logo{font-family:var(--fd);font-size:19px;font-weight:800;color:var(--white);letter-spacing:.02em}
.footer-logo span{color:var(--accent)}
footer p{font-size:12px;color:var(--muted);opacity:.6}
.footer-links{display:flex;gap:1.5rem}
.footer-links a{font-size:12px;color:var(--muted);text-decoration:none;opacity:.6;transition:opacity .2s,color .2s}
.footer-links a:hover{opacity:1;color:var(--accent)}

/* ---------- Animations ---------- */
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes expand{0%{opacity:.9;transform:scale(.85)}100%{opacity:0;transform:scale(1.25)}}

/* ---------- Form (used by contact + index quote form) ---------- */
.fgroup{display:flex;flex-direction:column;gap:5px}
.fgroup label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fgroup input,.fgroup select,.fgroup textarea{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:11px 13px;color:var(--white);font-family:var(--fb);font-size:14px;outline:none;transition:border-color .2s,background .2s;-webkit-appearance:none;width:100%}
.fgroup input:focus,.fgroup select:focus,.fgroup textarea:focus{border-color:var(--theme);background:rgba(0,200,255,.04)}
.fgroup select option{background:var(--sky)}
.fgroup textarea{resize:vertical;min-height:90px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.form-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{margin-top:1rem;padding:12px 14px;border-radius:6px;font-size:14px;line-height:1.5;display:none}
.form-status.ok{display:block;background:rgba(0,255,157,.08);border:1px solid rgba(0,255,157,.25);color:var(--off-white)}
.form-status.err{display:block;background:rgba(255,79,79,.08);border:1px solid rgba(255,79,79,.25);color:#ffd0d0}

/* ---------- Responsive ---------- */
@media(max-width:920px){
  .nav-links{display:none}
  .two-col{grid-template-columns:1fr}
  .info-card{position:static}
  .form-row{grid-template-columns:1fr}
  .cta-band{flex-direction:column;align-items:flex-start}
  footer{flex-direction:column;align-items:flex-start}
}
