/* GC Landing Hero — centred lead-capture hero. Transparent by default; optional full-bleed background band. */

@keyframes gc-lh-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }

.gc-lh {
  --gc-lh-eyebrow: #FFFFFF;
  --gc-lh-eyebrow2: #5BA7DB;
  --gc-lh-eyebrow-sub: #9FB4C2;
  --gc-lh-fx: #6E5FA5;
  --gc-lh-fx-op: 0.1;
  --gc-lh-fx-size: 150px;
  --gc-lh-head: #FFFFFF;
  --gc-lh-accent: #B4A0E8;
  --gc-lh-lead: #9FB4C2;
  --gc-lh-field-bg: rgba(255, 255, 255, 0.06);
  --gc-lh-field-border: rgba(180, 160, 232, 0.45);
  --gc-lh-field-text: #FFFFFF;
  --gc-lh-field-ph: #7E8FA0;
  --gc-lh-field-label: #9FB4C2;
  --gc-lh-btn1: #5BA7DB;
  --gc-lh-btn2: #9B7BD8;
  --gc-lh-note: #7E8FA0;
  --gc-lh-align: center;
  --gc-lh-content: 820px;
  --gc-lh-minh: 80vh;
  --gc-lh-bg: #14212B;
  --gc-lh-bg2: ;
  --gc-lh-overlay: 0.55;

  position: relative;
  display: flex;
  align-items: center;
  min-height: var(--gc-lh-minh);
  padding: 96px 0;
  font-family: var(--gc-font-body, 'Inter', system-ui, sans-serif);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  box-sizing: border-box;
}

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

/* --- Optional full-bleed background band --- */
.gc-lh--has-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  background: var(--gc-lh-bg);
  z-index: 0;
}

/* Gradient when a second colour is supplied (custom prop with a value overrides the empty default). */
.gc-lh--has-bg[style*="--gc-lh-bg2"]::before,
.gc-lh--has-bg::before {
  background: linear-gradient(160deg, var(--gc-lh-bg), var(--gc-lh-bg2, var(--gc-lh-bg)));
}

.gc-lh-bg {
  position: absolute;
  inset: 0;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 0;
}

.gc-lh--has-img .gc-lh-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--gc-lh-bg);
  opacity: var(--gc-lh-overlay);
}

/* --- Inner --- */
.gc-lh-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--gc-lh-content);
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 48px);
  text-align: var(--gc-lh-align);
  display: flex;
  flex-direction: column;
  align-items: var(--gc-lh-align, center);
}

.gc-lh--left .gc-lh-inner { margin: 0; align-items: flex-start; }

/* --- Two-tone bold wordmark --- */
.gc-lh-eyebrow {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin-bottom: 30px;
  animation: gc-lh-rise 0.7s ease both;
}

.gc-lh--left .gc-lh-eyebrow { align-items: flex-start; }

.gc-lh-brand {
  font-family: var(--gc-font-heading, 'Manrope', system-ui, sans-serif);
  font-weight: 800;
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  letter-spacing: 0.01em;
  line-height: 1;
}

.gc-lh-brand-1 { color: var(--gc-lh-eyebrow); }
.gc-lh-brand-2 { color: var(--gc-lh-eyebrow2); }

.gc-lh-brand-sub {
  font-family: var(--gc-font-heading, 'Manrope', system-ui, sans-serif);
  font-weight: 700;
  font-size: clamp(0.6rem, 1vw, 0.72rem);
  letter-spacing: 0.5em;
  text-transform: uppercase;
  color: var(--gc-lh-eyebrow-sub);
  padding-left: 0.5em;
}

.gc-lh-head {
  font-family: var(--gc-font-heading, 'Manrope', system-ui, sans-serif);
  font-size: clamp(2.8rem, 7vw, 5.5rem);
  font-weight: 800;
  line-height: 0.98;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--gc-lh-head);
  margin-bottom: 24px;
  animation: gc-lh-rise 0.7s ease both;
  animation-delay: 0.06s;
}

.gc-lh-accent {
  background: linear-gradient(120deg, var(--gc-lh-accent), color-mix(in srgb, var(--gc-lh-accent) 60%, #fff));
  -webkit-background-clip: text;
  background-clip: text;
  color: var(--gc-lh-accent);
  -webkit-text-fill-color: transparent;
}

.gc-lh-lead {
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  color: var(--gc-lh-lead);
  max-width: 46ch;
  margin-bottom: 36px;
  animation: gc-lh-rise 0.7s ease both;
  animation-delay: 0.12s;
}

.gc-lh--center .gc-lh-lead { margin-left: auto; margin-right: auto; }

/* --- Capture --- */
.gc-lh-capture {
  width: 100%;
  max-width: 560px;
  animation: gc-lh-rise 0.7s ease both;
  animation-delay: 0.18s;
}

.gc-lh--center .gc-lh-capture { margin-left: auto; margin-right: auto; }

.gc-lh-label {
  display: block;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gc-lh-field-label);
  margin-bottom: 10px;
  text-align: left;
}

.gc-lh-req { color: var(--gc-lh-accent); }

.gc-lh-field {
  display: flex;
  gap: 8px;
  align-items: stretch;
  padding: 6px;
  border: 1px solid var(--gc-lh-field-border);
  border-radius: var(--gc-radius-md, 16px);
  background: var(--gc-lh-field-bg);
  backdrop-filter: blur(6px);
  transition: border-color 0.2s, box-shadow 0.2s;
}

.gc-lh-field:focus-within {
  border-color: color-mix(in srgb, var(--gc-lh-accent) 80%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--gc-lh-accent) 24%, transparent);
}

.gc-lh-input {
  flex: 1 1 auto;
  min-width: 0;
  border: none;
  background: transparent;
  color: var(--gc-lh-field-text);
  font-family: inherit;
  font-size: 1rem;
  padding: 0.85rem 1rem;
  outline: none;
}

.gc-lh-input::placeholder { color: var(--gc-lh-field-ph); }

.gc-lh-btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: inherit;
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.85rem 1.8rem;
  border: none;
  cursor: pointer;
  text-decoration: none;
  color: #fff;
  border-radius: var(--gc-radius-sm, 10px);
  background: linear-gradient(135deg, var(--gc-lh-btn1), var(--gc-lh-btn2));
  box-shadow: var(--gc-shadow-button, 0 8px 20px -8px rgba(61, 130, 179, 0.55));
  transition: transform 0.15s, box-shadow 0.2s, filter 0.2s;
}

.gc-lh-btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.04);
  box-shadow: 0 12px 28px -8px rgba(91, 91, 179, 0.6);
}

.gc-lh-note {
  display: block;
  margin-top: 14px;
  font-size: 0.82rem;
  color: var(--gc-lh-note);
}

/* Shortcode embed — inherit hero colours so pasted forms sit on the dark band. */
.gc-lh-embed { color: var(--gc-lh-lead); }
.gc-lh-embed input[type="email"],
.gc-lh-embed input[type="text"],
.gc-lh-embed input[type="tel"] {
  background: var(--gc-lh-field-bg);
  border: 1px solid var(--gc-lh-field-border);
  color: var(--gc-lh-field-text);
  border-radius: var(--gc-radius-sm, 10px);
}

/* --- Floating ghost icons --- */
@keyframes gc-lh-float {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(var(--r, 0deg)); }
  50%      { transform: translate3d(0, -16px, 0) rotate(var(--r, 0deg)); }
}

.gc-lh-fx {
  position: absolute;
  inset: 0;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  color: var(--gc-lh-fx);
}

.gc-lh-fx-i {
  position: absolute;
  width: calc(var(--gc-lh-fx-size, 150px) * var(--m, 1));
  opacity: var(--gc-lh-fx-op);
  transform: rotate(var(--r, 0deg));
}

.gc-lh-fx-i svg { width: 100%; height: auto; display: block; }

.gc-lh-fx--float .gc-lh-fx-i {
  animation: gc-lh-float var(--d, 7s) ease-in-out infinite;
  animation-delay: var(--dl, 0s);
  will-change: transform;
}

/* Scatter — each icon a distinct spot, size (--m, relative to base), tilt and float cadence. */
.gc-lh-fx-i:nth-child(1)  { top: 12%; left: 6%;  --r: -14deg; --d: 7.5s;  --dl: 0s;    --m: 1.05; }
.gc-lh-fx-i:nth-child(2)  { top: 18%; left: 82%; --r: 12deg;  --d: 8.5s;  --dl: -1.2s; --m: 0.85; }
.gc-lh-fx-i:nth-child(3)  { top: 60%; left: 9%;  --r: 8deg;   --d: 9s;    --dl: -0.6s; --m: 1;    }
.gc-lh-fx-i:nth-child(4)  { top: 68%; left: 86%; --r: -10deg; --d: 7s;    --dl: -2.1s; --m: 1.12; }
.gc-lh-fx-i:nth-child(5)  { top: 7%;  left: 45%; --r: 6deg;   --d: 10s;   --dl: -1.6s; --m: 0.72; }
.gc-lh-fx-i:nth-child(6)  { top: 42%; left: 2%;  --r: 18deg;  --d: 8s;    --dl: -0.3s; --m: 0.95; }
.gc-lh-fx-i:nth-child(7)  { top: 46%; left: 93%; --r: -6deg;  --d: 9.5s;  --dl: -2.8s; --m: 0.9;  }
.gc-lh-fx-i:nth-child(8)  { top: 84%; left: 38%; --r: 14deg;  --d: 7.8s;  --dl: -1s;   --m: 0.8;  }
.gc-lh-fx-i:nth-child(9)  { top: 28%; left: 68%; --r: -16deg; --d: 8.2s;  --dl: -3.4s; --m: 1;    }
.gc-lh-fx-i:nth-child(10) { top: 80%; left: 66%; --r: 10deg;  --d: 9.2s;  --dl: -0.9s; --m: 0.78; }
.gc-lh-fx-i:nth-child(11) { top: 15%; left: 28%; --r: -8deg;  --d: 7.3s;  --dl: -2.4s; --m: 0.88; }
.gc-lh-fx-i:nth-child(12) { top: 56%; left: 50%; --r: 12deg;  --d: 10.5s; --dl: -1.8s; --m: 0.68; }

@media (max-width: 640px) {
  .gc-lh { padding: 52px 0; --gc-lh-minh: 68vh; }
  .gc-lh-inner { padding: 0 20px; }
  .gc-lh-eyebrow { margin-bottom: 18px; gap: 4px; }
  .gc-lh-brand { font-size: 1.25rem; }
  .gc-lh-brand-sub { font-size: 0.58rem; letter-spacing: 0.3em; }
  .gc-lh-head { font-size: clamp(1.9rem, 8.5vw, 2.4rem); margin-bottom: 16px; overflow-wrap: anywhere; }
  .gc-lh-lead { max-width: none; font-size: 15px; line-height: 1.5; margin-bottom: 24px; }
  .gc-lh-label { font-size: 11px; letter-spacing: 0.1em; margin-bottom: 8px; }
  .gc-lh-field { flex-direction: column; padding: 8px; gap: 8px; }
  .gc-lh-input { font-size: 15px; padding: 0.7rem 0.8rem; }
  .gc-lh-btn { width: 100%; padding: 0.8rem 1.2rem; min-height: 44px; }
  .gc-lh-note { margin-top: 10px; font-size: 0.78rem; }
  .gc-lh-fx { display: none; }
}

@media (max-width: 480px) {
  .gc-lh { padding: 44px 0; --gc-lh-minh: 60vh; }
  .gc-lh-inner { padding: 0 16px; }
  .gc-lh-eyebrow { margin-bottom: 14px; }
  .gc-lh-head { font-size: clamp(1.7rem, 8vw, 2.1rem); }
  .gc-lh-lead { font-size: 14.5px; margin-bottom: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .gc-lh-eyebrow,
  .gc-lh-head,
  .gc-lh-lead,
  .gc-lh-capture { animation: none; }
  .gc-lh-fx--float .gc-lh-fx-i { animation: none; }
}

.gc-lh-capture { display: block; }
.gc-lh-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gc-lh-msg { display: block; margin-top: 10px; font-size: 14px; color: var(--gc-lh-lead); }
.gc-lh-msg.is-ok { color: var(--gc-lh-accent); }
.gc-lh-msg.is-err { color: #F1808A; }
