/*
 * ════════════════════════════════════════════════════════
 *  DVANTECH — SHARED STYLESHEET
 *  Used by: about.html, services.html, insights.html, contact.html
 *
 *  ★ EDIT BRAND COLOUR : Change --or and --or2 in :root below
 *  ★ EDIT FONTS        : Change --sans or --mono in :root below
 *  ★ EDIT CATEGORIES   : Change --cat-* colours for service/article cards
 * ════════════════════════════════════════════════════════
 */

/* ── DESIGN TOKENS ──────────────────────────────────────
   All "magic numbers" live here. Edit these — not the rules below.
   ──────────────────────────────────────────────────────── */
:root {
  /* Colours — backgrounds */
  --white:   #FFFFFF;
  --bg:      #FAFAF8;
  --bg2:     #F4F3EF;
  --bg3:     #ECEAE3;

  /* Colours — text */
  --ink:     #141412;    /* primary text */
  --ink2:    #2E2E2A;    /* slightly lighter */
  --slate:   #5C5C54;    /* body copy */
  --muted:   #8E8E84;    /* captions, metadata */

  /* Colours — lines / borders */
  --line:    rgba(20,20,18,.07);
  --linemd:  rgba(20,20,18,.13);

  /* ★ Brand accent — change these two to retheme the whole site */
  --or:      #2563EB;
  --or2:     #1D4ED8;    /* hover / darker shade */
  --orL:     rgba(37,99,235,.07);   /* very light tint */
  --orM:     rgba(37,99,235,.15);   /* medium tint */

  /* Status colours */
  --green:   #2D7A5A;
  --red:     #DC2626;

  /* ★ Category colours — used in service & article cards (--s-c / --a-c) */
  --cat-blue:  #2563EB;
  --cat-navy:  #1D4ED8;
  --cat-slate: #5C5C54;
  --cat-green: #2D7A5A;

  /* Fonts */
  --sans: 'Sora', sans-serif;
  --mono: 'DM Mono', monospace;

  /* Layout */
  --radius:    4px;     /* standard border-radius */
  --radius-sm: 2px;     /* small — for tags, lines */
  --pad-x:     clamp(20px,5vw,64px);   /* standard section side padding */
  --pad-nav:   clamp(16px,5vw,64px);   /* nav side padding */

  /* Z-index layers — keeps stacking context explicit */
  --z-nav:   900;
  --z-menu:  899;
  --z-above: 2;
  --z-base:  1;

  /* Shadows */
  --shadow-btn: 0 8px 28px rgba(37,99,235,.24);
  --shadow-nav: 0 1px 24px rgba(20,20,18,.06);

  /* ★ Dark sections (impact, footer, newsletter backgrounds) */
  --dark-bg: #1A1916;

  /* Footer palette — all derived from the dark background */
  --f-text:    rgba(255,255,255,.88);
  --f-sub:     rgba(255,255,255,.45);
  --f-link:    rgba(255,255,255,.38);
  --f-hover:   rgba(255,255,255,.75);
  --f-label:   rgba(255,255,255,.25);
  --f-dim:     rgba(255,255,255,.18);
  --f-faint:   rgba(255,255,255,.15);
  --f-line:    rgba(255,255,255,.06);
  --f-divider: rgba(255,255,255,.10);
}

/* ── RESET ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--white);color:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{text-decoration:none}
img,svg{display:block}

/* ── NAV ── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);
  height:60px;display:flex;align-items:center;justify-content:space-between;
  padding:0 var(--pad-nav);
  background:var(--white);
  box-shadow:0 4px 24px rgba(20,20,18,.05);
}
.nav.scrolled{box-shadow:0 4px 28px rgba(20,20,18,.09)}
.nav-logo{display:flex;align-items:center;flex-shrink:0}
.nav-links{display:flex;align-items:center;gap:clamp(16px,2.5vw,36px);list-style:none}
.nav-links a{font-size:13px;font-weight:400;color:var(--muted);transition:color .2s}
.nav-links a:hover{color:var(--ink)}
.nav-links a.active{color:var(--ink);font-weight:500}
.nav-cta{font-size:12px!important;font-weight:600!important;color:#fff!important;background:var(--or);padding:8px 18px;border-radius:var(--radius);transition:background .2s,transform .15s!important}
.nav-cta:hover{background:var(--or2)!important;transform:translateY(-1px)}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px}
.hamburger span{display:block;width:20px;height:1.5px;background:var(--ink);border-radius:var(--radius-sm);transition:all .3s}
.mobile-menu{display:none;position:fixed;top:60px;left:0;right:0;z-index:var(--z-menu);background:var(--white);border-bottom:1px solid var(--line);padding:20px var(--pad-nav) 28px;flex-direction:column;gap:0}
.mobile-menu.open{display:flex}
.mobile-menu a{font-size:15px;font-weight:400;color:var(--slate);padding:14px 0;border-bottom:1px solid var(--line)}
.mobile-menu .m-cta{margin-top:20px;display:flex;align-items:center;justify-content:center;font-weight:600;color:#fff!important;background:var(--or);border-radius:var(--radius);padding:14px 28px}

/* ── PAGE HERO (inner pages) ── */
.page-hero{
  padding:clamp(100px,12vw,160px) clamp(20px,5vw,80px) clamp(56px,7vw,96px);
  background:var(--white);border-bottom:1px solid var(--line);
  position:relative;overflow:hidden;
}
.page-hero-grid{
  position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse 60% 80% at 10% 80%,rgba(0,0,0,.4) 0%,transparent 70%);
}
.page-hero-content{position:relative;z-index:var(--z-above);max-width:760px}
.page-hero-eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:24px}
.ph-line{width:18px;height:1.5px;background:var(--or);border-radius:var(--radius-sm)}
.ph-text{font-family:var(--mono);font-size:9.5px;font-weight:400;letter-spacing:.14em;color:var(--or);text-transform:uppercase}
.page-hero-h1{font-size:clamp(36px,5vw,72px);font-weight:800;letter-spacing:-.04em;line-height:1.04;color:var(--ink);margin-bottom:20px}
.page-hero-h1 .or{color:var(--or)}
.page-hero-sub{font-size:clamp(14px,1.4vw,16px);font-weight:300;line-height:1.82;color:var(--slate);max-width:520px}

/* ── SHARED SECTION HELPERS ── */
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:16px}
.ey-line{width:18px;height:1.5px;background:var(--or);border-radius:var(--radius-sm);flex-shrink:0}
.ey-text{font-family:var(--mono);font-size:9.5px;font-weight:400;letter-spacing:.14em;color:var(--or);text-transform:uppercase}
.sec-h2{font-size:clamp(26px,3.2vw,44px);font-weight:700;letter-spacing:-.035em;line-height:1.1;color:var(--ink)}
.sec-h2 .or{color:var(--or)}
.sec-pad{padding:clamp(56px,7vw,104px) var(--pad-x)}

/* ── BUTTONS ── */
.btn-fill{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-size:13px;font-weight:600;color:#fff;background:var(--or);padding:12px 24px;border-radius:var(--radius);border:1.5px solid var(--or);transition:all .22s}
.btn-fill:hover{background:var(--or2);border-color:var(--or2);transform:translateY(-2px);box-shadow:var(--shadow-btn)}
.btn-fill .arr{transition:transform .2s}
.btn-fill:hover .arr{transform:translateX(3px)}
.btn-line{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--ink2);background:transparent;border:1.5px solid var(--bg3);padding:12px 24px;border-radius:var(--radius);transition:all .2s}
.btn-line:hover{border-color:var(--ink2)}
.more{font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.08em;color:var(--or);text-transform:uppercase;border-bottom:1px solid rgba(37,99,235,.3);padding-bottom:2px;transition:all .2s}
.more:hover{border-color:var(--or)}

/* ── FOOTER ── */
footer{background:var(--dark-bg);padding:clamp(44px,6vw,68px) var(--pad-x) 32px;position:relative;overflow:hidden}
footer::before{content:'';position:absolute;bottom:-100px;right:-60px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.1) 0%,transparent 65%);pointer-events:none}
footer::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.05) 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,rgba(0,0,0,.35) 0%,transparent 100%)}
.f-top{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:clamp(28px,4vw,56px);padding-bottom:40px;border-bottom:1px solid var(--f-line);margin-bottom:24px}
.f-logo{font-family:var(--sans);font-size:17px;font-weight:800;letter-spacing:-.04em;color:var(--f-text);margin-bottom:10px}
.f-logo span{color:var(--or)}
.f-tagline{font-family:var(--mono);font-size:10px;font-weight:300;color:var(--f-label);line-height:1.7;max-width:180px;letter-spacing:.02em}
.f-col-title{font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--f-dim);margin-bottom:14px}
.f-links{list-style:none;display:flex;flex-direction:column;gap:9px}
.f-links a{font-size:12px;font-weight:300;color:var(--f-link);transition:color .2s}
.f-links a:hover{color:var(--f-hover)}
.f-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.f-copy{font-family:var(--mono);font-size:9px;font-weight:300;color:var(--f-dim);letter-spacing:.04em}
.f-end{font-family:var(--mono);font-size:9px;font-weight:300;color:var(--f-faint);letter-spacing:.04em}

/* ── UTILITIES ── */
/* Add these classes to HTML elements instead of inline styles */
.rel{position:relative;z-index:var(--z-base)}          /* replaces style="position:relative;z-index:1" */
.sec-sub{font-size:14px;font-weight:300;line-height:1.75;color:var(--muted)}  /* repeated section paragraph style */
.cta-actions{display:flex;flex-direction:column;gap:10px;align-items:flex-end;flex-shrink:0}  /* CTA button group */

/* ── SCROLL REVEAL ── */
.rv{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease;will-change:opacity,transform}
.rv.on{opacity:1;transform:translateY(0)}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}

/* ── SCROLL TO TOP ── */
.scroll-top{
  position:fixed;bottom:28px;right:28px;z-index:800;
  width:40px;height:40px;border-radius:50%;
  background:var(--ink2);color:#fff;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  opacity:0;transform:translateY(12px);pointer-events:none;
  transition:opacity .3s,transform .3s,background .2s;
  box-shadow:0 4px 16px rgba(20,20,18,.18);
}
.scroll-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.scroll-top:hover{background:var(--ink)}
.scroll-top svg{width:18px;height:18px}

/* ── FLOATING EMAIL BUTTON ── */
.float-email{
  position:fixed;bottom:80px;right:20px;z-index:800;
  display:inline-flex;align-items:center;gap:7px;
  background:var(--or);color:#fff;
  padding:9px 15px 9px 12px;border-radius:100px;
  font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.01em;
  box-shadow:0 4px 20px rgba(37,99,235,.3);
  opacity:0;pointer-events:none;transform:translateY(10px);
  transition:opacity .3s,transform .3s,background .2s;
  text-decoration:none;white-space:nowrap;
}
.float-email.visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.float-email:hover{background:var(--or2);transform:translateY(-2px)!important}
.float-email svg{flex-shrink:0}
@media(max-width:600px){.float-email span.fe-addr{display:none}.float-email{padding:11px}}

/* ── RESPONSIVE ── */
@media(max-width:1024px){.f-top{grid-template-columns:1fr 1fr}}
@media(max-width:768px){.nav-links{display:none}.hamburger{display:flex}.f-top{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.f-top{grid-template-columns:1fr}}
