/* ============================================
   Go Mark Digital — Global Theme Switcher CSS
   ============================================ */

/* ---- GLOBAL NAV: hide on scroll-down, show on scroll-up ---- */
nav#mnav {
  transition: transform .35s ease, box-shadow .3s ease, background-color .2s ease;
  will-change: transform;
}
nav#mnav.nav-hidden { transform: translateY(-100%); }


/* ---- BASE LIGHT-MODE TOKENS ----
   Single source of truth. Pages must NOT redeclare these in their own :root.
   Accent vars are also stamped here (amber default); the inline head script
   may override --accent / --accent-l / --accent-h / --accent-d at runtime. */
:root {
  --accent:#B8821A; --accent-l:#F5E6C8; --accent-h:#9A6A10; --accent-d:#F5C842;
  --bg:#FAF8F4;
  --surface:#FFFFFF;
  --alt:#F5F0E8;
  --td:#1A1208;
  --tb:#4A3F30;
  --tm:#8A7A65;
  --border:#E8E0D0;
  --font:'Poppins',sans-serif;
  --mw:1180px;
  --r:16px;
}

/* Theme overrides */
[data-theme="blue"]  { --accent:#2B5BA8; --accent-l:#E8EFF9; --accent-h:#1E4690; --accent-d:#7AABFF; }
[data-theme="green"] { --accent:#2D6A4F; --accent-l:#E8F4EE; --accent-h:#1E4D38; --accent-d:#6FCF97; }

/* ---- DARK MODE ---- */
html.dark {
  --bg:#18140E;
  --surface:#211C14;
  --alt:#2A2218;
  --td:#F5F0E8;
  --tb:#D8CFC0;
  --tm:#9A8A75;
  --border:#3A3020;
  color-scheme: dark;
}

/* Universal text fix — catch all hardcoded dark colors */
html.dark *:not(svg):not(path):not(circle):not(rect):not(line):not(polyline) {
  border-color: var(--border);
}

html.dark body,
html.dark section,
html.dark div,
html.dark p,
html.dark span:not(.vdot):not(.pdot),
html.dark li,
html.dark label { 
  color: inherit; 
}

/* Force backgrounds */
html.dark body { background: var(--bg) !important; }
html.dark nav { background: var(--bg) !important; border-bottom-color: var(--border) !important; }
html.dark #hero { background: var(--bg) !important; }
html.dark .phero { background: var(--bg) !important; }
html.dark .phero h1 { color: var(--td) !important; }
html.dark .phero .sub { color: var(--tm) !important; }
html.dark .breadcrumb { color: var(--tm) !important; }
html.dark .breadcrumb a { color: var(--tm) !important; }
html.dark .breadcrumb span { color: var(--tm) !important; }
html.dark #trust { background: var(--surface) !important; border-color: var(--border) !important; }
html.dark #problems,
html.dark #why,
html.dark #industries,
html.dark #pricing { background: var(--alt) !important; }
html.dark #services,
html.dark #process,
html.dark #reviews { background: var(--surface) !important; }
html.dark footer { background: #0E0B07 !important; }
/* ---- ALL accent-l BACKGROUND ELEMENTS ---- */
/* These use var(--accent-l) as bg which becomes cream in dark mode */
html.dark .badge,
html.dark .pn, html.dark .sday, html.dark .ut, html.dark .ptag, html.dark .tupw,
html.dark .sib, html.dark .ci, html.dark .rav, html.dark .tav,
html.dark .svc-icon-lg, html.dark .addon-icon, html.dark .gbadge-icon,
html.dark .val-icon, html.dark .local-icon, html.dark .info-icon, html.dark .success-icon,
html.dark .opt-icon { background: var(--alt) !important; color: var(--accent) !important; }

html.dark .team-avatar { background: var(--alt) !important; color: var(--accent) !important; }
html.dark .tl-dot { background: var(--alt) !important; color: var(--accent) !important; }

html.dark .feat,
html.dark .accent { background: var(--alt) !important; border-color: var(--accent) !important; }
html.dark .pop { background: var(--alt) !important; border-color: var(--accent) !important; box-shadow: 0 20px 56px rgba(0,0,0,.4) !important; }
html.dark .pop-col { background: var(--alt) !important; color: var(--accent) !important; }

html.dark .price-tag { background: var(--alt) !important; border-color: var(--accent) !important; }
html.dark .mock-h { background: var(--border) !important; }

html.dark .hours-card { background: var(--alt) !important; border-color: var(--border) !important; }
html.dark .reply-card,
html.dark .stat-hero { background: var(--alt) !important; }

html.dark .bchip.active { background: var(--alt) !important; color: var(--accent) !important; border-color: var(--accent) !important; }
html.dark .opt-card.selected,
html.dark .opt-card:hover { background: var(--alt) !important; border-color: var(--accent) !important; }



/* Force ALL text to use CSS vars */
html.dark h1, html.dark h2, html.dark h3,
html.dark .sn, html.dark .mn, html.dark .pt,
html.dark .st, html.dark .ctt, html.dark .inn,
html.dark .rn, html.dark .prp, html.dark .ftitle,
html.dark .flogo, html.dark .stit, html.dark .logo,
html.dark .mft h3, html.dark .nph, html.dark .nph a,
html.dark .tb, html.dark .ti { color: var(--td) !important; }

html.dark .sub, html.dark .hs, html.dark .sl,
html.dark .pd, html.dark .sd, html.dark .ctd,
html.dark .ind, html.dark .rq, html.dark .rb,
html.dark .prd, html.dark .sde, html.dark .fsub2,
html.dark .fn, html.dark .ml, html.dark .mft p,
html.dark .fcons, html.dark .scn, html.dark .prt,
html.dark .pn, html.dark .ftag, html.dark .fci { color: var(--tm) !important; }

html.dark .nl a { color: var(--tm) !important; }
html.dark .nl a:hover { color: var(--td) !important; }

/* ===== LOGO IMAGES ===== */
.logo { display: inline-flex; align-items: center; line-height: 0; }
.logo img { height: 44px; width: auto; display: block; }
.flogo { display: inline-flex; align-items: center; line-height: 0; margin-bottom: 14px !important; }
.flogo img { height: 48px; width: auto; display: block; }
/* Theme-colored nav logo (light mode) */
html[data-theme="amber"] .logo img { content: url('assets/gomark-logo-amber.png'); }
html[data-theme="blue"]  .logo img { content: url('assets/gomark-logo-blue.png'); }
html[data-theme="green"] .logo img { content: url('assets/gomark-logo-forestgreen.png'); }
/* Theme-colored footer logo (white text — footer is always dark) */
html[data-theme="amber"] .flogo img { content: url('assets/gomark-logo-amber-wt.png'); }
html[data-theme="blue"]  .flogo img { content: url('assets/gomark-logo-blue-wt.png'); }
html[data-theme="green"] .flogo img { content: url('assets/gomark-logo-forestgreen-wt.png'); }
/* Dark-mode nav: theme-colored icon + white text */
html.dark[data-theme="amber"] .logo img { content: url('assets/gomark-logo-amber-wt.png'); }
html.dark[data-theme="blue"]  .logo img { content: url('assets/gomark-logo-blue-wt.png'); }
html.dark[data-theme="green"] .logo img { content: url('assets/gomark-logo-forestgreen-wt.png'); }
/* Dark-mode fallback (no theme attr): generic white logo */
html.dark .logo img { content: url('assets/gomark-logo-white.png'); }
@media (max-width: 640px) {
  .logo img { height: 36px; }
  .flogo img { height: 42px; }
}

/* Cards */
html.dark .pc, html.dark .sc, html.dark .cc,
html.dark .mc, html.dark .indc, html.dark .rc,
html.dark .prcard, html.dark .hfc,
html.dark .wm .mc, html.dark .form-card,
html.dark .opt-card { 
  background: var(--surface) !important; 
  border-color: var(--border) !important; 
}
html.dark .opt-card.selected { 
  background: var(--alt) !important; 
  border-color: var(--accent) !important; 
}
html.dark .opt-title { color: var(--td) !important; }
html.dark .opt-desc { color: var(--tm) !important; }
html.dark .opt-icon { background: var(--alt) !important; color: var(--accent) !important; }
html.dark .opt-card.selected .opt-icon { background: var(--accent) !important; color: #fff !important; }
html.dark .mc.feat { background: var(--alt) !important; border-color: var(--accent) !important; }
html.dark .prcard.feat { background: var(--alt) !important; }
html.dark .rc { background: var(--surface) !important; border-color: var(--border) !important; }
html.dark .stars { color: var(--accent) !important; }
html.dark .rav { background: var(--alt) !important; color: var(--accent) !important; }
html.dark .ut { background: var(--alt) !important; color: var(--accent) !important; border: 1px solid var(--border); }

/* Hero form */
html.dark .hfc {
  background: rgba(33,28,20,0.92) !important;
  border-color: rgba(255,255,255,.1) !important;
}
html.dark .fg label { color: var(--tm) !important; }
html.dark .fg input, html.dark .fg select {
  background: var(--alt) !important;
  color: var(--td) !important;
  border-color: var(--border) !important;
}
html.dark .fg input::placeholder,
html.dark .fg select::placeholder { color: var(--tm) !important; }

/* Icon backgrounds */
html.dark .sib, html.dark .ci { background: var(--alt) !important; }

/* Borders */
html.dark .si { border-right-color: var(--border) !important; }
html.dark .ti { border-right-color: var(--border) !important; }

/* Process step circles */
html.dark .sb { background: var(--surface) !important; }

/* Buttons */
html.dark .bw { background: var(--td) !important; color: var(--bg) !important; }
html.dark .bw:hover { background: var(--tb) !important; }

/* Mock browser */
html.dark .mock-browser, html.dark .pv-mock { background: var(--alt) !important; }
html.dark .mock-bar { background: var(--surface) !important; }

/* Badge */
html.dark .badge { background: var(--alt) !important; }

/* Keep revealed elements visible in dark mode */
html.dark .rv.in { opacity: 1 !important; transform: none !important; }

/* Switcher panel */
#vs {
  position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:9999;
  display:flex;flex-direction:column;gap:10px;align-items:center;
  background:rgba(250,248,244,.95);
  border:1px solid var(--border);
  border-right:none;
  border-radius:12px 0 0 12px;
  padding:12px 10px;
  backdrop-filter:blur(12px);
  box-shadow:-2px 0 20px rgba(0,0,0,.09);
  transition:background .3s, border-color .3s;
}
html.dark #vs {
  background:rgba(33,28,20,.96);
  border-color:#3A3020;
}

/* Divider between dots and dark toggle */
.vs-divider {
  width:20px;height:1px;
  background:var(--border);
  margin:2px 0;
}

/* Color dots */
.vb {
  position:relative;
  width:14px;height:14px;
  border-radius:50%;
  border:2px solid transparent;
  cursor:pointer;
  transition:all .2s;
  background:none;
  padding:0;
  display:flex;align-items:center;justify-content:center;
}
.vb:hover { transform:scale(1.25); }
.vb.active { border-color:var(--td); box-shadow:0 0 0 2px var(--td); }
.vdot { width:10px;height:10px;border-radius:50%;flex-shrink:0;display:block; }
.vb-label {
  position:absolute;
  right:calc(100% + 14px);
  top:50%;transform:translateY(-50%);
  background:var(--td);
  color:var(--bg);
  font-size:11px;font-weight:600;
  white-space:nowrap;
  padding:4px 10px;
  border-radius:100px;
  opacity:0;pointer-events:none;
  transition:opacity .15s;
  font-family:'Poppins',sans-serif;
}
.vb-label::after {
  content:'';
  position:absolute;
  left:100%;top:50%;transform:translateY(-50%);
  border:5px solid transparent;
  border-left-color:var(--td);
}
.vb:hover .vb-label { opacity:1; }

/* Dark mode toggle button */
#dm-toggle {
  position:relative;
  width:26px;height:26px;
  border-radius:50%;
  border:1.5px solid var(--border);
  background:var(--alt);
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .2s;
  color:var(--tm);
  padding:0;
}
#dm-toggle:hover {
  border-color:var(--accent);
  color:var(--accent);
  transform:scale(1.1);
}
#dm-toggle .dm-label {
  position:absolute;
  right:calc(100% + 14px);
  top:50%;transform:translateY(-50%);
  background:var(--td);
  color:var(--bg);
  font-size:11px;font-weight:600;
  white-space:nowrap;
  padding:4px 10px;
  border-radius:100px;
  opacity:0;pointer-events:none;
  transition:opacity .15s;
  font-family:'Poppins',sans-serif;
}
#dm-toggle .dm-label::after {
  content:'';
  position:absolute;
  left:100%;top:50%;transform:translateY(-50%);
  border:5px solid transparent;
  border-left-color:var(--td);
}
#dm-toggle:hover .dm-label { opacity:1; }

@media(max-width:768px){
  #vs { top:auto;bottom:80px;right:0;transform:none; }
}

/* ============================================
   HAMBURGER BUTTON
   ============================================ */
.hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px 4px;
  margin-left: 4px;
  z-index: 1002;
  flex-shrink: 0;
}
.hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--td);
  border-radius: 2px;
  transition: transform 0.28s ease, opacity 0.28s ease;
  transform-origin: center;
}
html.dark .hamburger span { background: var(--td); }
.hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ============================================
   MOBILE SLIDE-IN MENU
   ============================================ */
.mob-menu {
  position: fixed;
  top: 76px;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg);
  z-index: 997;
  display: flex;
  flex-direction: column;
  padding: 20px 28px 48px;
  overflow-y: auto;
  transform: translateX(105%);
  transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
  border-top: 1px solid var(--border);
}
html.dark .mob-menu { background: var(--bg); }
.mob-menu.open { transform: translateX(0); }

.mob-menu > a {
  display: block;
  font-size: 22px;
  font-weight: 700;
  color: var(--td);
  text-decoration: none;
  padding: 15px 0;
  border-bottom: 1px solid var(--border);
  font-family: var(--font, 'Poppins', sans-serif);
  transition: color 0.2s;
  letter-spacing: -0.01em;
}
.mob-menu > a:hover,
.mob-menu > a.mob-active { color: var(--accent); }
html.dark .mob-menu > a { color: var(--td); border-bottom-color: var(--border); }

.mob-cta-wrap {
  margin-top: 28px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: flex-start;
}
.mob-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 28px;
  border-radius: 100px;
  background: var(--accent);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
  font-family: var(--font, 'Poppins', sans-serif);
  transition: background 0.2s;
  border: none;
  cursor: pointer;
}
.mob-cta-btn:hover { background: var(--accent-h); }
.mob-phone {
  display: block;
  font-size: 15px;
  font-weight: 600;
  color: var(--td);
  text-decoration: none;
  font-family: var(--font, 'Poppins', sans-serif);
  padding: 4px 0;
}
.mob-phone:hover { color: var(--accent); }
html.dark .mob-phone { color: var(--td); }
body.menu-open { overflow: hidden; }

/* ============================================
   GLOBAL RESPONSIVE — 768px
   ============================================ */
@media(max-width: 768px) {
  /* Show hamburger, hide desktop nav items */
  .hamburger { display: flex !important; }
  .nl { display: none !important; }
  .nph { display: none !important; }
  .nr .bp { display: none !important; }

  /* Reduced section padding */
  section { padding: 64px 20px !important; }
  .phero { padding: 56px 20px !important; }
  #hero  { padding: 60px 20px 72px !important; }
  #cta   { padding: 64px 20px !important; }
  footer { padding: 48px 20px 28px !important; }

  /* Nav inner padding */
  .ni { padding: 0 20px !important; }

  /* Hero form fields — stack */
  .fr { grid-template-columns: 1fr !important; }

  /* Trust strip */
  .ti { border-right: none !important; padding: 6px 16px !important; }
  .ti2 { justify-content: flex-start !important; gap: 0 !important; flex-wrap: wrap !important; }

  /* Stats row */
  .si { border-right: none !important; margin-right: 16px !important; padding-right: 16px !important; }

  /* Blog */
  .feat-card { grid-template-columns: 1fr !important; }
  .feat-img  { min-height: 200px !important; }
  .posts-grid { grid-template-columns: 1fr !important; }

  /* Blog post */
  .post-layout { grid-template-columns: 1fr !important; gap: 40px !important; }
  .post-sidebar { position: static !important; }
  .related-grid { grid-template-columns: 1fr !important; }

  /* Portfolio */
  .project-grid { grid-template-columns: 1fr !important; }
  .project-card.featured { grid-column: span 1 !important; }

  /* Footer */
  .fg2 { grid-template-columns: 1fr !important; }
  .fbot { flex-direction: column; gap: 8px; text-align: center; }
  .fleg { justify-content: center; }
}

/* ============================================
   GLOBAL RESPONSIVE — 480px
   ============================================ */
@media(max-width: 480px) {
  section { padding: 48px 16px !important; }
  .phero  { padding: 44px 16px !important; }
  #hero   { padding: 48px 16px 56px !important; }
  #cta    { padding: 48px 16px !important; }
  footer  { padding: 40px 16px 24px !important; }
  .ni     { padding: 0 16px !important; }

  /* Process — single column on very small screens */
  .ps { grid-template-columns: 1fr !important; }
  .ps::before { display: none !important; }

  /* Industries — single column */
  .indg { grid-template-columns: 1fr !important; }

  /* Hero form inner padding */
  .fb    { padding: 24px 18px !important; }
  .ftitle { font-size: 18px !important; }

  /* Pricing card — remove lift on featured */
  .prcard.feat { transform: none !important; }

  /* Blog filter chips */
  .bchip { font-size: 12px; padding: 6px 12px; }

  /* Stats tighter */
  .sn { font-size: 18px !important; }
}

/* Response time card (contact.html) — uses var(--td) as bg */
html.dark .response-card { background: var(--surface) !important; }
html.dark .response-label { color: var(--tm) !important; }

/* SEO upsell banner (pricing.html) — inline style uses accent-l */
html.dark [style*="accent-l"] { background: var(--alt) !important; border-color: var(--accent) !important; }

/* Services visual placeholder */
html.dark .svc-visual { background: var(--alt) !important; border-color: var(--border) !important; }
html.dark .mock-body { background: var(--surface) !important; }
html.dark .mock-url { background: var(--alt) !important; }

/* Blog category badges */
html.dark .post-cat,
html.dark .card-cat,
html.dark .rel-cat { background: var(--alt) !important; color: var(--accent) !important; }

/* Blog featured card */
html.dark .feat-card { background: var(--surface) !important; border-color: var(--border) !important; }
html.dark .feat-content { background: var(--surface) !important; }
html.dark .feat-img { background: var(--alt) !important; }
html.dark .post-title { color: var(--td) !important; }
html.dark .post-excerpt { color: var(--tm) !important; }
html.dark .meta-name { color: var(--td) !important; }
html.dark .meta-date, html.dark .meta-read { color: var(--tm) !important; }
html.dark .meta-avatar { background: var(--alt) !important; color: var(--accent) !important; }

/* Blog post cards */
html.dark .post-card { background: var(--surface) !important; border-color: var(--border) !important; }
html.dark .card-title { color: var(--td) !important; }
html.dark .card-excerpt { color: var(--tm) !important; }
html.dark .card-footer { border-top-color: var(--border) !important; }
html.dark .card-read, html.dark .card-date { color: var(--tm) !important; }
html.dark .card-img { background: var(--alt) !important; }

/* Pagination */
html.dark .pag-btn { background: var(--surface) !important; border-color: var(--border) !important; color: var(--tm) !important; }
html.dark .pag-btn.active { background: var(--accent) !important; color: #fff !important; border-color: var(--accent) !important; }
html.dark .pag-btn:hover { border-color: var(--accent) !important; color: var(--accent) !important; }

/* Blog newsletter section — uses var(--td) as bg */
html.dark #newsletter { background: #0E0B07 !important; }
html.dark #newsletter h2 { color: #fff !important; }
html.dark #newsletter p { color: rgba(255,255,255,.6) !important; }
html.dark .nl-form { background: rgba(255,255,255,.08) !important; border-color: rgba(255,255,255,.15) !important; }
html.dark .nl-form input { color: #fff !important; }
html.dark .nl-note { color: rgba(255,255,255,.35) !important; }

/* Blog post page */
html.dark .post-hero { background: #0E0B07 !important; }
html.dark .post-hero h1 { color: #fff !important; }
html.dark .post-hero-img { background: var(--alt) !important; border-color: var(--border) !important; }
html.dark .meta-name { color: rgba(255,255,255,.9) !important; }
html.dark .meta-role { color: rgba(255,255,255,.45) !important; }
html.dark .meta-item { color: rgba(255,255,255,.55) !important; }
html.dark .meta-dot { color: rgba(255,255,255,.2) !important; }

/* Article body */
html.dark .article-body h3 { color: var(--td) !important; }
html.dark .article-body p, html.dark .article-body li { color: var(--tb) !important; }
html.dark .article-body strong { color: var(--td) !important; }

/* Reason blocks */
html.dark .reason { background: var(--surface) !important; border-color: var(--border) !important; }
html.dark .reason h3 { color: var(--td) !important; }
html.dark .reason p { color: var(--tm) !important; }
html.dark .reason-fix { background: var(--alt) !important; }
html.dark .fix-text { color: var(--tb) !important; }

/* Callout & tip */
html.dark .callout { background: var(--alt) !important; border-left-color: var(--accent) !important; }
html.dark .callout p { color: var(--td) !important; }
html.dark .tip-box { background: var(--alt) !important; border-color: var(--border) !important; }
html.dark .tip-box p { color: var(--tb) !important; }

/* Inline CTA */
html.dark .inline-cta { background: var(--surface) !important; }
html.dark .inline-cta h3 { color: var(--td) !important; }
html.dark .inline-cta p { color: var(--tm) !important; }

/* Share bar */
html.dark .share-bar { border-color: var(--border) !important; }
html.dark .share-label { color: var(--td) !important; }
html.dark .share-btn { background: var(--surface) !important; border-color: var(--border) !important; color: var(--tb) !important; }
html.dark .share-btn:hover { border-color: var(--accent) !important; color: var(--accent) !important; background: var(--alt) !important; }

/* Author bio */
html.dark .author-bio { background: var(--alt) !important; border-color: var(--border) !important; }
html.dark .author-name { color: var(--td) !important; }
html.dark .author-desc { color: var(--tm) !important; }

/* Sidebar */
html.dark .sidebar-card { background: var(--surface) !important; border-color: var(--border) !important; }
html.dark .sidebar-title { color: var(--tm) !important; }
html.dark .toc-list li a { color: var(--tb) !important; }
html.dark .toc-list li a:hover, html.dark .toc-list li a.active { color: var(--accent) !important; }
html.dark .toc-list li a { border-bottom-color: var(--border) !important; }
html.dark .sidebar-nl input { background: var(--alt) !important; border-color: var(--border) !important; color: var(--td) !important; }

/* Related posts */
html.dark .rel-card { background: var(--surface) !important; border-color: var(--border) !important; }
html.dark .rel-title { color: var(--td) !important; }
html.dark .rel-read { color: var(--tm) !important; }
html.dark .rel-img { background: var(--alt) !important; }
