/* ============================================================
   Global AI — design layer
   ------------------------------------------------------------
   Layout (direction / gap / columns / padding of sections) is set
   in Elementor so it stays editable. This file owns the *look*:
   palette, typography, surfaces, borders, hover states.

   Class conventions (see elementor_constitution.md addendum):
     containers carry `css_classes`, widgets carry `_css_classes`.
   ============================================================ */

:root {
  --ga-bg:            #090b11;
  --ga-bg-2:          #0c0f16;
  --ga-surface:       #14171f;
  --ga-surface-2:     #181c26;
  --ga-border:        rgba(255, 255, 255, 0.07);
  --ga-border-strong: rgba(255, 255, 255, 0.13);

  --ga-text:      #edeff3;
  --ga-text-dim:  #a7adb9;
  --ga-text-mute: #6d7480;

  --ga-accent:      #e8915b;
  --ga-accent-2:    #f0a968;
  --ga-accent-soft: rgba(232, 145, 91, 0.13);
  --ga-accent-line: rgba(232, 145, 91, 0.30);
  --ga-accent-glow: rgba(232, 145, 91, 0.38);
  --ga-cool-glow:   rgba(56, 84, 168, 0.30);

  --ga-radius-sm: 12px;
  --ga-radius:    20px;
  --ga-radius-lg: 28px;

  --ga-font-display: 'Space Grotesk', 'Manrope', system-ui, sans-serif;
  --ga-font-sans:    'Manrope', system-ui, -apple-system, sans-serif;

  --ga-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ga-header-h: 74px;
}

/* ============================================================
   1. Base — dark canvas
   ============================================================ */

body.ga-site {
  background: var(--ga-bg);
  color: var(--ga-text);
  font-family: var(--ga-font-sans);
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

body.ga-site h1,
body.ga-site h2,
body.ga-site h3,
body.ga-site h4 {
  font-family: var(--ga-font-display);
  color: var(--ga-text);
  letter-spacing: -0.4px;
  line-height: 1.2;
}

body.ga-site a { color: inherit; }
body.ga-site p { margin: 0 0 1em; }
body.ga-site p:last-child { margin-bottom: 0; }
body.ga-site ul { list-style: none; margin: 0; padding: 0; }
body.ga-site img { max-width: 100%; height: auto; }

/* Elementor gives every widget wrapper its own text-align; without this,
   centring a card container leaves its text stuck to the left. */
body.ga-site .ga-center .elementor-widget { text-align: inherit; }

/* Woodmart's page-title block and breadcrumbs are off on our pages. */
body.ga-site .page-title,
body.ga-site .wd-page-title { display: none; }

/* ============================================================
   2. Background atmosphere
   ============================================================ */

.ga-atmosphere {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.ga-glow {
  position: absolute;
  display: block;
  border-radius: 50%;
  filter: blur(120px);
  opacity: 0.9;
}

.ga-glow--warm {
  width: 620px; height: 620px;
  top: -180px; right: -120px;
  background: radial-gradient(circle, var(--ga-accent-glow), transparent 68%);
  animation: ga-float-a 22s var(--ga-ease) infinite alternate;
}

.ga-glow--cool {
  width: 560px; height: 560px;
  bottom: -200px; left: -160px;
  background: radial-gradient(circle, var(--ga-cool-glow), transparent 70%);
  animation: ga-float-b 26s var(--ga-ease) infinite alternate;
}

@keyframes ga-float-a { to { transform: translate(-60px, 80px) scale(1.12); } }
@keyframes ga-float-b { to { transform: translate(80px, -60px) scale(1.10); } }

.ga-grid {
  position: absolute;
  inset: 0;
  display: block;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse 80% 55% at 50% 0%, #000 30%, transparent 75%);
  mask-image: radial-gradient(ellipse 80% 55% at 50% 0%, #000 30%, transparent 75%);
}

.ga-grain {
  position: absolute;
  inset: 0;
  display: block;
  opacity: .04;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Stacking order above the fixed atmosphere layer (z-index 0).
   The header needs its own, higher layer: it is `position: fixed` once the
   Header Builder row sticks, and at an equal z-index the page content — being
   later in the DOM — would paint over it. */
body.ga-site .ga-page,
body.ga-site .site-footer,
body.ga-site .footer-container { position: relative; z-index: 1; }

body.ga-site .whb-header { position: relative; z-index: 100; }

/* ============================================================
   3. Page shell
   ============================================================ */

.ga-page { --gap: 0px; gap: 0; }
.ga-page > .e-con-inner { gap: 0; }

/* Sections share a rhythm; Elementor padding overrides win where set. */
.ga-sec { position: relative; }

/* ============================================================
   4. Typography widgets
   ============================================================ */

.ga-eyebrow,
.ga-eyebrow * {
  font-family: var(--ga-font-sans);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--ga-accent);
  line-height: 1.4;
}

.ga-h1 h1,
.ga-h1 h2,
.ga-h1 .elementor-heading-title {
  font-family: var(--ga-font-display);
  font-weight: 700;
  font-size: clamp(34px, 4.6vw, 60px);
  line-height: 1.06;
  letter-spacing: -1.2px;
  background: linear-gradient(180deg, #fff 30%, #c7ccd6);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.ga-h2 .elementor-heading-title {
  font-family: var(--ga-font-display);
  font-weight: 600;
  font-size: clamp(26px, 3.6vw, 40px);
  line-height: 1.14;
  letter-spacing: -0.6px;
}

.ga-h2--lg .elementor-heading-title { font-size: clamp(28px, 4.6vw, 50px); }

.ga-card-label .elementor-heading-title {
  font-family: var(--ga-font-display);
  font-weight: 600;
  font-size: 19px;
  line-height: 1.3;
}

.ga-h3 .elementor-heading-title {
  font-family: var(--ga-font-display);
  font-weight: 600;
  font-size: 18px;
  line-height: 1.3;
  letter-spacing: -0.2px;
}

.ga-lead,
.ga-lead p {
  color: var(--ga-text-dim);
  font-size: 18px;
  line-height: 1.6;
}

.ga-text,
.ga-text p {
  color: var(--ga-text-dim);
  font-size: 15.5px;
  line-height: 1.62;
}

.ga-text--sm,
.ga-text--sm p { font-size: 14.5px; }

/* Pill tag above a card title. */
.ga-tag .elementor-heading-title {
  display: inline-block;
  font-family: var(--ga-font-sans);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--ga-accent);
  background: var(--ga-accent-soft);
  padding: 4px 10px;
  border-radius: 999px;
  line-height: 1.5;
}

.ga-badge .elementor-heading-title {
  display: inline-block;
  font-family: var(--ga-font-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--ga-bg);
  background: linear-gradient(135deg, var(--ga-accent-2), var(--ga-accent));
  padding: 5px 12px;
  border-radius: 999px;
  line-height: 1.5;
}

/* ============================================================
   5. Lists inside text widgets
   ============================================================ */

.ga-text .check-list,
.ga-lead .check-list {
  display: flex;
  flex-direction: column;
  gap: 11px;
  margin: 18px 0;
}

.ga-text .check-list:last-child { margin-bottom: 0; }

.ga-text .check-list.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 11px 32px;
}

.ga-text .check-list li {
  position: relative;
  padding-left: 30px;
  color: var(--ga-text-dim);
  font-size: 15.5px;
  line-height: 1.5;
}

.ga-text .check-list li::before {
  content: '';
  position: absolute;
  left: 0; top: 5px;
  width: 16px; height: 16px;
  background-color: var(--ga-accent-soft);
  border-radius: 5px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f0a968' stroke-width='3'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background-size: 11px;
  background-position: center;
  background-repeat: no-repeat;
}

.ga-card .ga-text .check-list li { font-size: 14.5px; }

.ga-text .dot-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 22px 0 0;
}

.ga-text .dot-list li {
  position: relative;
  padding-left: 26px;
  color: var(--ga-text-dim);
  font-size: 15.5px;
  line-height: 1.5;
}

.ga-text .dot-list li::before {
  content: '';
  position: absolute;
  left: 0; top: 8px;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--ga-accent);
}

/* ============================================================
   6. Buttons
   ============================================================ */

body.ga-site .ga-btn .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 26px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-family: var(--ga-font-sans);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  transition: transform .2s var(--ga-ease), box-shadow .3s, background .3s, border-color .3s;
}

body.ga-site .ga-btn--primary .elementor-button {
  background: linear-gradient(135deg, var(--ga-accent-2), var(--ga-accent));
  color: #1a0f06;
  box-shadow: 0 8px 30px -8px var(--ga-accent-glow);
}

body.ga-site .ga-btn--primary .elementor-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 40px -8px var(--ga-accent-glow);
  color: #1a0f06;
}

body.ga-site .ga-btn--ghost .elementor-button {
  background: rgba(255,255,255,.04);
  color: var(--ga-text);
  border-color: var(--ga-border-strong);
}

body.ga-site .ga-btn--ghost .elementor-button:hover {
  background: rgba(255,255,255,.09);
  transform: translateY(-2px);
  color: var(--ga-text);
}

body.ga-site .ga-btn--block .elementor-button { width: 100%; }

/* Inline "read more" link inside a nav block. */
.ga-morelink .elementor-heading-title {
  font-family: var(--ga-font-sans);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ga-accent);
  transition: letter-spacing .3s var(--ga-ease);
}

/* ============================================================
   7. Surfaces — cards, stats, steps

   Padding is deliberately absent here: Elementor containers apply their
   own padding through a custom property on `.e-con`, which a rule of equal
   specificity cannot beat. Spacing therefore lives in the Elementor
   settings (and stays editable); this file owns colour and border only.
   ============================================================ */

.ga-card {
  background: var(--ga-surface);
  border: 1px solid var(--ga-border);
  border-radius: var(--ga-radius);
  transition: border-color .3s, transform .3s, background .3s;
}

.ga-card:hover {
  border-color: var(--ga-border-strong);
  transform: translateY(-4px);
  background: var(--ga-surface-2);
}

.ga-panel {
  background: linear-gradient(180deg, var(--ga-surface-2), var(--ga-surface));
  border: 1px solid var(--ga-border);
  border-radius: var(--ga-radius-lg);
  box-shadow: 0 30px 80px -40px rgba(0,0,0,.9);
}

.ga-stat {
  background: var(--ga-surface);
  border: 1px solid var(--ga-border);
  border-radius: var(--ga-radius);
  transition: border-color .3s, transform .3s;
}

.ga-stat:hover { border-color: var(--ga-border-strong); transform: translateY(-3px); }

.ga-stat-key .elementor-heading-title {
  font-family: var(--ga-font-display);
  font-weight: 600;
  font-size: 19px;
  line-height: 1.3;
}

.ga-stat-val,
.ga-stat-val p { color: var(--ga-text-mute); font-size: 14px; }

.ga-step {
  background: var(--ga-surface);
  border: 1px solid var(--ga-border);
  border-radius: var(--ga-radius);
  transition: border-color .3s, transform .3s;
}

.ga-step:hover { border-color: var(--ga-accent-line); transform: translateY(-4px); }

.ga-step-num .elementor-heading-title {
  font-family: var(--ga-font-display);
  font-weight: 700;
  font-size: 34px;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1.2px var(--ga-accent-line);
}

/* ============================================================
   8. Nav blocks (image cards)
   ============================================================ */

.ga-navblock {
  position: relative;
  overflow: hidden;
  border-radius: var(--ga-radius);
  border: 1px solid var(--ga-border);
  background: var(--ga-surface);
  transition: transform .35s var(--ga-ease), border-color .3s, box-shadow .35s;
}

.ga-navblock:hover {
  transform: translateY(-6px);
  border-color: var(--ga-accent-line);
  box-shadow: 0 30px 60px -30px rgba(0,0,0,.9);
}

.ga-navblock:hover .ga-morelink .elementor-heading-title { letter-spacing: .4px; }

.ga-navblock__media { position: relative; overflow: hidden; }

.ga-navblock__media img {
  width: 100%;
  height: 168px;
  object-fit: cover;
  display: block;
  transition: transform .6s var(--ga-ease);
}

.ga-navblock:hover .ga-navblock__media img { transform: scale(1.08); }

.ga-navblock__media::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(9,11,17,0) 35%, rgba(9,11,17,.62) 100%),
    radial-gradient(120% 80% at 50% 0%, rgba(232,145,91,.10), transparent 60%);
}

/* .ga-navblock__body spacing comes from its Elementor padding. */

/* ============================================================
   9. Section banner
   ============================================================ */

.ga-banner {
  position: relative;
  overflow: hidden;
  border-radius: var(--ga-radius-lg);
  border: 1px solid var(--ga-border);
  box-shadow: 0 30px 70px -40px rgba(0,0,0,.9);
}

.ga-banner img {
  width: 100%;
  height: clamp(190px, 27vw, 320px);
  object-fit: cover;
  display: block;
  transition: transform .8s var(--ga-ease);
}

.ga-banner:hover img { transform: scale(1.04); }

.ga-banner::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(9,11,17,.12) 40%, rgba(9,11,17,.55) 100%),
    radial-gradient(120% 80% at 50% 0%, rgba(232,145,91,.10), transparent 60%);
}

/* Faint neural-net wash behind the home hero. */
.ga-hero { position: relative; }

.ga-hero::before {
  content: '';
  position: absolute;
  z-index: 0;
  pointer-events: none;
  top: -60px; left: -8%; right: -8%;
  height: 560px;
  background: var(--ga-hero-bg, none) center/cover no-repeat;
  opacity: .16;
  -webkit-mask-image: radial-gradient(ellipse 65% 95% at 35% 30%, #000 5%, transparent 72%);
  mask-image: radial-gradient(ellipse 65% 95% at 35% 30%, #000 5%, transparent 72%);
}

.ga-hero > * { position: relative; z-index: 1; }

/* ============================================================
   10. CTA block
   ============================================================ */

.ga-cta {
  background: linear-gradient(135deg, rgba(232,145,91,.06), rgba(56,84,168,.05));
  border: 1px solid var(--ga-border);
  border-radius: var(--ga-radius-lg);
}

/* ============================================================
   11. Contacts
   ============================================================ */

.ga-contact {
  background: var(--ga-surface);
  border: 1px solid var(--ga-border);
  border-radius: var(--ga-radius);
  transition: border-color .3s, transform .3s, background .3s;
}

.ga-contact:hover {
  border-color: var(--ga-accent-line);
  transform: translateX(4px);
  background: var(--ga-surface-2);
}

/* Elementor paints icon colour from its own widget rules, so these need the
   extra body-level specificity to win. */
body.ga-site .ga-contact__icon .elementor-icon {
  width: 46px;
  height: 46px;
  border-radius: 13px;
  background: var(--ga-accent-soft);
  display: grid;
  place-items: center;
  color: var(--ga-accent-2);
}

body.ga-site .ga-contact__icon .elementor-icon svg {
  width: 22px;
  height: 22px;
  fill: var(--ga-accent-2);
}

body.ga-site .ga-contact__icon .elementor-icon i {
  font-size: 20px;
  color: var(--ga-accent-2);
}

.ga-contact__label,
.ga-contact__label p {
  font-size: 12px;
  color: var(--ga-text-mute);
  text-transform: uppercase;
  letter-spacing: .6px;
  line-height: 1.4;
}

.ga-contact__value .elementor-heading-title {
  font-family: var(--ga-font-sans);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--ga-text);
}

/* ============================================================
   12. Lead form (Contact Form 7)
   ============================================================ */

.ga-form-card {
  background: linear-gradient(180deg, var(--ga-surface-2), var(--ga-surface));
  border: 1px solid var(--ga-border);
  border-radius: var(--ga-radius-lg);
  padding: 28px;
  box-shadow: 0 30px 80px -40px rgba(0,0,0,.9);
}

.ga-form-card .wpcf7 form > p,
.ga-form-card .ga-field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 16px; }

.ga-form-card label {
  font-size: 13px;
  font-weight: 600;
  color: var(--ga-text);
  display: flex;
  flex-direction: column;
  gap: 7px;
}

body.ga-site .ga-form-card input[type="text"],
body.ga-site .ga-form-card input[type="email"],
body.ga-site .ga-form-card input[type="tel"],
body.ga-site .ga-form-card textarea {
  width: 100%;
  background: var(--ga-bg-2);
  border: 1px solid var(--ga-border);
  border-radius: var(--ga-radius-sm);
  padding: 13px 15px;
  color: var(--ga-text);
  font-family: var(--ga-font-sans);
  font-size: 14.5px;
  line-height: 1.5;
  resize: vertical;
  box-shadow: none;
  transition: border-color .2s, box-shadow .2s, background .2s;
}

body.ga-site .ga-form-card input::placeholder,
body.ga-site .ga-form-card textarea::placeholder { color: var(--ga-text-mute); opacity: 1; }

body.ga-site .ga-form-card input:focus,
body.ga-site .ga-form-card textarea:focus {
  outline: none;
  border-color: var(--ga-accent-line);
  box-shadow: 0 0 0 3px var(--ga-accent-soft);
  background: var(--ga-bg);
}

body.ga-site .ga-form-card input[type="submit"],
body.ga-site .ga-form-card .wpcf7-submit {
  width: 100%;
  padding: 14px 26px;
  border: none;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--ga-accent-2), var(--ga-accent));
  color: #1a0f06;
  font-family: var(--ga-font-sans);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  box-shadow: 0 8px 30px -8px var(--ga-accent-glow);
  transition: transform .2s var(--ga-ease), box-shadow .3s;
}

body.ga-site .ga-form-card input[type="submit"]:hover,
body.ga-site .ga-form-card .wpcf7-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 40px -8px var(--ga-accent-glow);
}

.ga-form-card .ga-form-note {
  color: var(--ga-text-mute);
  font-size: 13px;
  line-height: 1.5;
  margin: 10px 0 0;
}

.ga-form-card .wpcf7-spinner { margin: 8px auto 0; display: block; }

.ga-form-card .wpcf7-response-output {
  margin: 16px 0 0 !important;
  padding: 12px 14px !important;
  border-radius: var(--ga-radius-sm);
  border: 1px solid var(--ga-accent-line) !important;
  background: var(--ga-accent-soft);
  color: var(--ga-accent-2);
  font-size: 14px;
  line-height: 1.5;
}

.ga-form-card .wpcf7-not-valid-tip { color: var(--ga-accent-2); font-size: 12.5px; }

body.ga-site .ga-form-card .wpcf7-not-valid { border-color: var(--ga-accent) !important; }

/* ============================================================
   13. Header (Woodmart header builder)
   ============================================================ */

/* The frosted-glass treatment must live on `.whb-main-header`, NOT on the
   `.whb-header` wrapper: `backdrop-filter` establishes a containing block for
   fixed-position descendants, and Woodmart's sticky header works by switching
   `.whb-main-header` to `position: fixed`. On the wrapper it would anchor the
   "fixed" header to an element that scrolls away, so the sticky header flies
   off-screen instead of staying put. */
body.ga-site .whb-main-header {
  background: rgba(9, 11, 17, 0.72);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  backdrop-filter: blur(16px) saturate(140%);
  border-bottom: 1px solid transparent;
  transition: border-color .3s, background .3s;
}

body.ga-site.ga-scrolled .whb-main-header {
  border-bottom-color: var(--ga-border);
  background: rgba(9, 11, 17, 0.92);
}

body.ga-site .whb-row,
body.ga-site .whb-main-header,
body.ga-site .whb-general-header { background: transparent; border: 0; }

/* Logo — the Header Builder's own Logo element, holding the rendered wordmark. */
body.ga-site .whb-header .site-logo img { height: auto; }

/* Used by the footer wordmark, which is plain markup rather than an image. */
.ga-logo__accent { color: var(--ga-accent); }

/* Main menu */
body.ga-site .whb-header .wd-nav > li > a {
  font-family: var(--ga-font-sans);
  font-size: 14.5px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ga-text-dim);
  padding: 8px 14px;
  border-radius: 10px;
  transition: color .2s, background .2s;
}

body.ga-site .whb-header .wd-nav > li > a:hover { color: var(--ga-text); background: rgba(255,255,255,.04); }
body.ga-site .whb-header .wd-nav > li.current-menu-item > a { color: var(--ga-text); }

body.ga-site .whb-header .wd-nav.wd-style-default > li > a > span::before,
body.ga-site .whb-header .wd-nav > li > a > span::after { display: none; }

body.ga-site .whb-header .wd-nav > li.current-menu-item > a::after {
  content: '';
  position: absolute;
  left: 14px; right: 14px; bottom: 2px;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--ga-accent), var(--ga-accent-2));
}

body.ga-site .whb-header .wd-nav > li > a { position: relative; }

/* Language pills */
.ga-lang {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 5px 8px;
  border: 1px solid var(--ga-border);
  border-radius: 999px;
  background: rgba(255,255,255,.02);
}

.ga-lang__btn {
  color: var(--ga-text-mute);
  font-family: var(--ga-font-sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .5px;
  padding: 2px 8px;
  border-radius: 999px;
  line-height: 1.5;
  transition: color .2s, background .2s;
}

.ga-lang__btn:hover { color: var(--ga-text); }

.ga-lang__btn.is-active {
  color: var(--ga-bg);
  background: linear-gradient(135deg, var(--ga-accent-2), var(--ga-accent));
}

/* Burger + mobile drawer */
body.ga-site .whb-header .wd-tools-element > a { color: var(--ga-text); }
body.ga-site .mobile-nav,
body.ga-site .wd-side-hidden { background: var(--ga-bg-2); color: var(--ga-text); }
body.ga-site .wd-nav-mobile > li > a { color: var(--ga-text-dim); border-color: var(--ga-border); }
body.ga-site .wd-nav-mobile > li > a:hover { color: var(--ga-text); }

/* ============================================================
   14. Footer
   ============================================================ */

body.ga-site .footer-container,
body.ga-site .site-footer {
  background: var(--ga-bg-2);
  border-top: 1px solid var(--ga-border);
  color: var(--ga-text-dim);
}

.ga-footer-brandline .ga-footer-brand {
  font-family: var(--ga-font-display);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: -.5px;
  color: var(--ga-text);
  margin: 0;
}

.ga-footer-tagline,
.ga-footer-tagline p { color: var(--ga-text-mute); font-size: 14px; }

.ga-footer-link .elementor-heading-title,
.ga-footer-link a {
  font-family: var(--ga-font-sans);
  font-size: 14.5px;
  font-weight: 400;
  color: var(--ga-text-dim);
  transition: color .2s;
}

.ga-footer-link a:hover,
.ga-footer-link:hover .elementor-heading-title { color: var(--ga-accent); }

.ga-footer-bottom {
  border-top: 1px solid var(--ga-border);
  color: var(--ga-text-mute);
  font-size: 13px;
}

.ga-footer-bottom p { color: var(--ga-text-mute); font-size: 13px; }

/* ============================================================
   15. Reveal on scroll
   ============================================================ */

.ga-reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .7s var(--ga-ease), transform .7s var(--ga-ease);
  will-change: opacity, transform;
}

.ga-reveal.is-in { opacity: 1; transform: none; }

/* Never let the animation hide content inside the editor. */
.elementor-editor-active .ga-reveal,
.elementor-editor-preview .ga-reveal { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .ga-reveal { opacity: 1 !important; transform: none !important; }
  .ga-glow { animation: none; }
}

/* ============================================================
   16. Responsive
   ============================================================ */

@media (max-width: 1024px) {
  .ga-text .check-list.two-col { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
  .ga-form-card { padding: 22px; }
  .ga-h1 h1, .ga-h1 .elementor-heading-title { font-size: 30px; letter-spacing: -.6px; }
  .ga-h2 .elementor-heading-title, .ga-h2--lg .elementor-heading-title { font-size: 23px; }
  .ga-navblock__media img { height: 190px; }
}
