/* Global Collective — custom polish over the mirrored Elementor styles.
   Loaded last so these rules win. */

/* Avoid single-word "orphan" last lines in body copy
   (e.g. "...positioned to thrive within it." dropping onto its own line). */
.elementor-widget-text-editor p,
.elementor-widget-text-editor li {
  text-wrap: pretty;
}

/* The "300+ / $3B+" stats band rendered in an off-brand blue;
   bring it back to the site's near-black base. (Homepage section.) */
.elementor-element-e33200f,
.elementor-element-e33200f > .elementor-background-overlay,
.elementor-element-e33200f > .e-con-inner {
  background-color: #0a0d15 !important;
  background-image: none !important;
}

/* Header social icon buttons (LinkedIn + Luma) — were white boxes; bring on-brand */
.uicore-linkedin a {
  background: rgba(195, 160, 121, 0.08) !important;
  border: 1px solid rgba(195, 160, 121, 0.45) !important;
  border-radius: 8px !important;
  color: #d8c29c !important;
  box-shadow: none !important;
  width: auto !important;
  min-width: 38px !important;
  padding: 0 9px !important;
}
.uicore-linkedin a svg { max-height: 16px; width: auto; }
.uicore-linkedin a svg,
.uicore-linkedin a svg path { fill: currentColor !important; }
.uicore-linkedin a:hover {
  background: rgba(195, 160, 121, 0.20) !important;
  border-color: #c3a079 !important;
  color: #f2e6cc !important;
  box-shadow: 0 6px 18px rgba(195, 160, 121, 0.25) !important;
}

/* ---- Buttons: subtle on-brand hover lift (no overlay/animation) ---- */
.elementor-button,
.uicore-btn {
  transition: box-shadow .35s ease, background-color .3s ease, border-color .3s ease, color .3s ease;
}
.elementor-button:hover,
.uicore-btn:hover {
  box-shadow: 0 8px 24px rgba(195, 160, 121, 0.22);
}

/* ---- Consistent brand typography (match the hero: Inter) ---- */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-button, .uicore-btn,
.uicore-menu a, .uicore-nav-menu a {
  font-family: "Inter", system-ui, -apple-system, sans-serif !important;
}

/* ---- Bolder headlines across the site (match the hero's heavy look) ---- */
h1, h2, h3, .elementor-heading-title { font-weight: 800 !important; }

/* ---- Never leave a single word alone on the last line (headings + body), site-wide ---- */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.bdt-ep-advanced-counter-title { text-wrap: balance; }
.elementor-widget-text-editor p,
.elementor-widget-text-editor li,
p, li, .elementor-widget-text-editor { text-wrap: pretty; }

/* ---- Cooler 01/02/03/04 numbers: animated gold gradient shimmer ---- */
.gc-num {
  background: linear-gradient(110deg, #b8945f 18%, #f6e7c4 46%, #b8945f 74%);
  background-size: 220% auto;
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  animation: gc-num-shine 4.5s linear infinite;
}
@keyframes gc-num-shine { to { background-position: -220% center; } }
@media (prefers-reduced-motion: reduce) { .gc-num { animation: none; } }

/* ---- Membership hero was too blue: hide the blue animated gradient, swap the
   parallax image to the neutral skyline and desaturate/darken it on-brand ---- */
.elementor-element-cd8f79f > canvas.bdt-animated-gradient-background { display: none !important; }
.elementor-element-cd8f79f .elementor-motion-effects-layer {
  background-image: url("/wp-content/uploads/2026/02/pexels-mo-ismail-2130628-3763190-scaled-1.jpg") !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  filter: grayscale(0.4) saturate(0.6) brightness(0.62) !important;
}

/* ---- "How We Help" intro: balance the two lines so they're even ---- */
.elementor-element-5c4dfc5 p,
.elementor-element-5c4dfc5 .elementor-widget-container {
  text-wrap: balance !important;
  max-width: 52ch;
}

/* ---- Hide stray/redundant "Become a Member" buttons (3-step + testimonials) ---- */
.elementor-element-d54ee02,
.elementor-element-a3e7e6c { display: none !important; }

/* ---- Founders' Insight hero: pull the button up under the text (was 370px of dead space) ---- */
.elementor-element-512d98a { justify-content: flex-start !important; }
.elementor-element-1e7a5c9 { margin-top: 40px !important; }

/* ---- About page: remove the hero "Become a Member" + the "Any Questions" Contact Us buttons ---- */
.elementor-element-d817174,
.elementor-element-6622e3a { display: none !important; }

/* ---- About "Any Questions": remove the Dean Kelly quote (too much dead space) ---- */
.elementor-element-8c6a31f { display: none !important; }

/* ---- Membership stats band was blue — match brand dark ---- */
.elementor-element-b8380ab,
.elementor-element-b8380ab > .elementor-background-overlay,
.elementor-element-b8380ab > .e-con-inner {
  background-color: #0a0d15 !important;
  background-image: none !important;
}

/* ---- Sticky "Become a Member" FAB (icon that expands on hover) ---- */
.gc-fab {
  position: fixed; right: 24px; bottom: 24px; z-index: 9000;
  display: inline-flex; align-items: center;
  height: 58px; padding: 0 16px; border-radius: 999px;
  background: linear-gradient(135deg, #e7cf95, #c3a079);
  color: #14100a; text-decoration: none; overflow: hidden;
  box-shadow: 0 10px 30px -8px rgba(195, 160, 121, 0.55);
  transition: padding .4s cubic-bezier(.22,1,.36,1), box-shadow .3s ease, transform .3s ease;
}
.gc-fab-icon {
  width: 26px; height: 26px; flex: none;
  display: grid; place-items: center;
}
.gc-fab-icon svg { width: 26px; height: 26px; display: block; }
.gc-fab-label {
  font-family: "Inter", sans-serif; font-weight: 700; font-size: 0.85rem;
  letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; color: #14100a;
  max-width: 0; opacity: 0; overflow: hidden;
  transition: max-width .4s cubic-bezier(.22,1,.36,1), opacity .18s ease, margin .4s ease;
}
.gc-fab:hover { padding-right: 24px; box-shadow: 0 14px 38px -8px rgba(195, 160, 121, 0.7); transform: translateY(-2px); }
.gc-fab:hover .gc-fab-label,
.gc-fab:focus-visible .gc-fab-label { max-width: 220px; opacity: 1; margin-left: 12px; }
@media (max-width: 600px) { .gc-fab { right: 16px; bottom: 16px; height: 52px; padding: 0 13px; } }

/* ---- Center the "Join the Global Collective" 3-step section (incl. the 01/02/03 steps) ---- */
.elementor-element-5f23c50 .elementor-heading-title,
.elementor-element-5f23c50 .elementor-widget-heading,
.elementor-element-5f23c50 .elementor-widget-text-editor,
.elementor-element-5f23c50 .elementor-widget-text-editor p,
.elementor-element-5f23c50 .elementor-widget-button { text-align: center !important; }

/* ---- Founders' Insight: kill the cityscape dead space around the blog reel ---- */
.elementor-element-40b173a { min-height: auto !important; background-color: #080b12 !important; }
.elementor-element-40b173a .elementor-motion-effects-layer,
.elementor-element-40b173a .elementor-background-overlay { display: none !important; }
.elementor-element-512d98a { overflow: hidden !important; }
/* the reel's PARENT section carried the cityscape bg — clear it + compact */
.elementor-element-edfcbfe {
  background-image: none !important;
  background-color: #080b12 !important;
  min-height: auto !important;
}
.elementor-element-edfcbfe .elementor-motion-effects-layer,
.elementor-element-edfcbfe .elementor-background-overlay { display: none !important; }

/* ---- FAB icon: make sure the member glyph is clearly visible ---- */
.gc-fab-icon svg, .gc-fab-icon svg * { stroke: #14100a !important; fill: none !important; }

/* ---- Replace the off-brand diagonal-lines counter separator with the GC logo ---- */
img[src*="About-Us-Hero-Line"] {
  content: url("/wp-content/uploads/2025/01/cropped-Screenshot_2025-01-20_161819-removebg-preview.png") !important;
  width: 50px !important;
  height: 50px !important;
  object-fit: contain !important;
  opacity: 0.95;
}

/* ---- Stats counter ("300+ / $3B+") font on-brand + bolder ---- */
.bdt-ep-advanced-counter,
.bdt-ep-advanced-counter-number,
.bdt-ep-advanced-counter-title,
.bdt-ep-advanced-counter * { font-family: "Inter", system-ui, sans-serif !important; }
.bdt-ep-advanced-counter-number,
.bdt-ep-advanced-counter-number-prefix,
.bdt-ep-advanced-counter-number-suffix { font-weight: 800 !important; }

/* ---- Center the homepage "What You'll Gain as a Member" section ---- */
.elementor-element-2d2316e3 .elementor-heading-title,
.elementor-element-2d2316e3 .elementor-widget-heading,
.elementor-element-2d2316e3 .elementor-widget-text-editor,
.elementor-element-2d2316e3 .elementor-widget-text-editor p,
.elementor-element-2d2316e3 .elementor-widget-button { text-align: center !important; }

/* ---- Slim the About "Any Questions" section (too much empty space) ---- */
.elementor-element-3bb27c0 { min-height: 56vh !important; }

/* ---- Shrink "Purpose, Passion, Vision and Belief" so it fits on one line ---- */
.elementor-element-48bad05 .elementor-heading-title { font-size: clamp(1.5rem, 4vw, 2.6rem) !important; }

/* ---- Membership "Join the Network": trim top dead space + breathe inside the box ---- */
.elementor-element-d274b5d { min-height: auto !important; }
.elementor-element-cd8f79f > .e-con-inner { padding-top: 44px !important; padding-bottom: 44px !important; }

/* ---- Remove the lines/dots (particles.js) background animation ---- */
.particles-js-canvas-el,
canvas.particles-js-canvas-el,
.bdt-particle-container { display: none !important; }

/* ---- Founders' Insight: hide the two original blog carousels (replaced by one reel) ---- */
.elementor-element-d6c1f4d,
.elementor-element-93fdf1f { display: none !important; }
.elementor-element-ac6d7dc { display: none !important; }

/* ---- Blog reel (single carousel of all posts) ---- */
.gc-blogreel { padding: 8px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); }
.gc-blogreel-row { overflow: hidden; }
.gc-blogreel-track { display: flex; gap: 22px; width: max-content; animation: gc-reel-left 70s linear infinite; }
.gc-blogreel:hover .gc-blogreel-track { animation-play-state: paused; }
.gc-blogcard { flex: 0 0 auto; width: 360px; border-radius: 12px; overflow: hidden;
  background: #11151f; border: 1px solid rgba(195,160,121,.22); text-decoration: none; display: block;
  transition: transform .4s ease, border-color .4s ease; }
.gc-blogcard:hover { transform: translateY(-5px); border-color: rgba(195,160,121,.55); }
.gc-blogcard-img { width: 100%; height: 200px; object-fit: cover; display: block; }
.gc-blogcard-body { padding: 22px 24px 26px; }
.gc-blogcard h3 { font-family: "Inter",sans-serif; font-weight: 800; font-size: 1.12rem; line-height: 1.2;
  text-transform: uppercase; color: #f4f2ec; margin: 0 0 10px; }
.gc-blogcard p { font-family: "Inter",sans-serif; color: #aab0bb; font-size: .9rem; line-height: 1.55; margin: 0 0 14px; }
.gc-blogcard .gc-readmore { color: #c3a079; font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
@media (prefers-reduced-motion: reduce) { .gc-blogreel-track { animation: none !important; } .gc-blogreel { overflow-x: auto; } }
@media (max-width: 480px) { .gc-blogcard { width: 290px; } }

/* ---- About video: poster + click-to-open modal, on-brand play button ---- */
.gc-video-poster { position: relative; cursor: pointer; width: 100%; max-width: 460px; margin: 0 auto; border-radius: 14px;
  aspect-ratio: 16 / 10; background-image: url("/wp-content/uploads/gc/video-poster.jpg");
  background-size: cover; background-position: center 30%;
  overflow: hidden; border: 1px solid rgba(195,160,121,.35); box-shadow: 0 18px 50px -20px rgba(0,0,0,.8); }
.gc-video-poster video, .gc-video-poster img { display: none !important; }
.gc-video-poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,11,18,.25), rgba(8,11,18,.55)); }
.gc-play-btn { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); z-index: 2;
  width: 78px; height: 78px; border-radius: 50%; background: linear-gradient(135deg,#e7cf95,#c3a079);
  display: grid; place-items: center; box-shadow: 0 10px 30px -6px rgba(195,160,121,.6); transition: transform .3s ease; }
.gc-video-poster:hover .gc-play-btn { transform: translate(-50%,-50%) scale(1.08); }
.gc-play-btn svg { width: 30px; height: 30px; fill: #14100a; margin-left: 4px; }
.gc-video-modal { position: fixed; inset: 0; z-index: 99999; background: rgba(4,6,10,.92);
  display: none; align-items: center; justify-content: center; padding: 4vw; backdrop-filter: blur(6px); }
.gc-video-modal.open { display: flex; }
.gc-video-modal video { max-width: min(92vw, 520px); max-height: 88vh; border-radius: 12px; box-shadow: 0 30px 80px -20px #000; }
.gc-video-close { position: absolute; top: 22px; right: 26px; width: 46px; height: 46px; border-radius: 50%;
  border: 1px solid rgba(195,160,121,.5); background: rgba(195,160,121,.12); color: #e7cf95; font-size: 1.4rem;
  cursor: pointer; display: grid; place-items: center; }
.gc-video-close:hover { background: rgba(195,160,121,.25); }

/* ---- On-brand testimonials reel ---- */
.gc-reel {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 10px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.gc-reel-row { overflow: hidden; }
.gc-reel-track { display: flex; gap: 18px; width: max-content; will-change: transform; }
.gc-reel-ltr { animation: gc-reel-left 60s linear infinite; }
.gc-reel-rtl { animation: gc-reel-right 60s linear infinite; }
.gc-reel:hover .gc-reel-track { animation-play-state: paused; }
@keyframes gc-reel-left { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes gc-reel-right { from { transform: translateX(-50%); } to { transform: translateX(0); } }

.gc-tcard {
  flex: 0 0 auto;
  width: 360px;
  background: #11151f;
  border: 1px solid rgba(195, 160, 121, 0.28);
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 10px 30px -18px rgba(0, 0, 0, 0.7);
}
.gc-tcard-top { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.gc-av {
  width: 42px; height: 42px; flex: none; border-radius: 50%;
  background: linear-gradient(135deg, #e7cf95, #c3a079);
  color: #14100a; display: grid; place-items: center; font-weight: 700; font-size: 0.85rem;
}
.gc-meta { display: flex; flex-direction: column; line-height: 1.25; flex: 1; min-width: 0; }
.gc-meta b { color: #f4f2ec; font-size: 0.95rem; font-weight: 600; }
.gc-meta small { color: #9aa1ad; font-size: 0.8rem; }
.gc-in { width: 22px; height: 22px; fill: #c3a079; flex: none; opacity: 0.9; }
.gc-quote { color: #cfd3da; font-size: 0.92rem; line-height: 1.6; margin: 0; }
.gc-tags { color: #c3a079; font-size: 0.8rem; margin: 12px 0 0; font-weight: 500; }
@media (max-width: 480px) {
  .gc-tcard { width: 290px; padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .gc-reel-track { animation: none !important; }
  .gc-reel { overflow-x: auto; }
}

/* ---- About video: the Elementor wrapper kept a 1:1 aspect-ratio spacer (1400px of dead
   space under the 290px poster). Let the wrapper size to the poster instead. ---- */
.elementor-element-f2324ab .elementor-wrapper,
.elementor-element-f2324ab .e-hosted-video {
  aspect-ratio: auto !important;
  height: auto !important;
  padding-bottom: 0 !important;
}
.elementor-element-850afa2 { padding: 8px 20px 72px !important; }

/* ---- Header: centre the menu on the page, not in the gap between logo and socials
   (the logo is narrower than the socials + CTA, so the menu sat ~140px left of centre). ---- */
@media (min-width: 1280px) {
  .uicore-navbar nav.uicore,
  nav.uicore.uicore-container { position: relative !important; }
  nav.uicore .uicore-navigation-content { position: static !important; }
  nav.uicore .uicore-menu-container.uicore-nav {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translateX(-50%) translateY(-50%) !important;
    width: auto !important;
    margin: 0 !important;
  }
  nav.uicore .uicore-linkedin { margin-left: auto !important; }
}

/* ---- Numbered columns (home "What You'll Gain" + "Join the Global Collective"):
   the 01/02/03/04 widgets shipped with different widths and font sizes per column, so
   titles and paragraphs started at different offsets. Normalise them. ---- */
.elementor-element-2d2316e3 .e-con.e-child:has(> .elementor-widget-heading .gc-num),
.elementor-element-5f23c50 .e-con.e-child:has(> .elementor-widget-heading .gc-num) {
  align-items: center !important;
  align-content: flex-start !important;
  row-gap: 0 !important;
}
.elementor-element-2d2316e3 .e-con.e-child > .elementor-widget-heading,
.elementor-element-5f23c50 .e-con.e-child > .elementor-widget-heading {
  margin: 0 !important; padding: 0 !important;
}
.elementor-element-2d2316e3 .e-con.e-child > .elementor-widget-heading:has(.gc-num),
.elementor-element-5f23c50 .e-con.e-child > .elementor-widget-heading:has(.gc-num) {
  width: 56px !important; flex: 0 0 56px !important; max-width: 56px !important;
}
.elementor-element-2d2316e3 .e-con.e-child > .elementor-widget-heading .elementor-heading-title,
.elementor-element-5f23c50 .e-con.e-child > .elementor-widget-heading .elementor-heading-title {
  font-size: 1.7rem !important; line-height: 1.15 !important; margin: 0 !important;
  text-align: left !important;
}
.elementor-element-2d2316e3 .e-con.e-child > .elementor-widget-heading:not(:has(.gc-num)),
.elementor-element-5f23c50 .e-con.e-child > .elementor-widget-heading:not(:has(.gc-num)) {
  width: auto !important; flex: 1 1 auto !important;
}
.elementor-element-2d2316e3 .e-con.e-child:has(> .elementor-widget-heading .gc-num) > .e-con,
.elementor-element-5f23c50 .e-con.e-child:has(> .elementor-widget-heading .gc-num) > .e-con {
  padding-top: 14px !important; width: 100% !important;
}
.elementor-element-2d2316e3 .e-con.e-child > .e-con .elementor-widget-text-editor p,
.elementor-element-5f23c50 .e-con.e-child > .e-con .elementor-widget-text-editor p {
  text-align: left !important;
}

/* ---- "Join the Global Collective": the 4th column only held a hidden button, leaving an
   empty slot on the right. Drop it and let the three steps share the row. ---- */
.elementor-element-7e728d4 { display: none !important; }
@media (min-width: 1025px) {
  .elementor-element-21635b4 > .e-con.e-child { flex: 1 1 0 !important; width: auto !important; max-width: none !important; }
}

/* ---- About video: no black slab behind the poster ---- */
.elementor-element-850afa2 { background-color: transparent !important; background-image: none !important; }

/* ---- About "Any Questions": the section was pinned to 100vh with the copy top-aligned,
   leaving ~500px of empty photo underneath. Size it to the content instead. ---- */
.elementor-element-616294f { min-height: auto !important; }
.elementor-element-616294f > .e-con-inner { padding-top: 96px !important; padding-bottom: 96px !important; }
.elementor-element-3bb27c0 { min-height: auto !important; }

/* ---- About founders' bios: ~180px between one bio and the next name; tighten ---- */
section.elementor-top-section:has(> .elementor-container > .elementor-element-1431db6),
section.elementor-top-section:has(> .elementor-container > .elementor-element-3ec96e4),
section.elementor-top-section:has(> .elementor-container > .elementor-element-256203a) {
  padding-top: 36px !important; padding-bottom: 36px !important;
}
section.elementor-top-section:has(> .elementor-container > .elementor-element-1431db6) { padding-top: 72px !important; }
section.elementor-top-section:has(> .elementor-container > .elementor-element-256203a) { padding-bottom: 72px !important; }

/* ---- Home hero-2 ("Join the leaders...") on mobile: heading was centred above left-aligned copy ---- */
@media (max-width: 767px) {
  .elementor-element-16ca560 .elementor-heading-title { text-align: left !important; }
}

/* ---- Footer bottom row: keep the LinkedIn icon clear of the sticky member button ---- */
@media (min-width: 1025px) {
  .elementor-element-b5d8f44 { padding-bottom: 72px !important; }
}

/* ---- Footer logo on mobile was a 58px thumbnail; give it presence ---- */
@media (max-width: 767px) {
  .elementor-element-8968691 img { width: 128px !important; max-width: 128px !important; height: 126px !important; object-fit: contain !important; }
}

/* ---- Numbered-column sections: trim the 138px top/bottom padding and the 80px gap
   above the "Become a Member" button so the block reads as one unit ---- */
@media (min-width: 1025px) {
  .elementor-element-2d2316e3, .elementor-element-5f23c50 { padding-top: 104px !important; padding-bottom: 104px !important; }
}
.elementor-element-3b73a6a, .elementor-element-3b73a6a > .elementor-widget-container { padding-top: 0 !important; }
.elementor-element-3b73a6a { margin-top: 36px !important; }

/* ---- Reels: never let the marquee widen the page (was 7400px of horizontal scroll on mobile) ---- */
.gc-blogreel, .gc-reel { width: 100% !important; max-width: 100% !important; min-width: 0 !important; overflow: hidden !important; }

/* ---- Founders' Insight hero on mobile: was pinned to 100vh with the button ~360px below the copy ---- */
@media (max-width: 767px) {
  .elementor-element-512d98a { min-height: auto !important; }
  .elementor-element-512d98a > .e-con-inner { min-height: auto !important; padding-top: 120px !important; padding-bottom: 72px !important; }
}

/* ---- Footer reveal wrapper is capped at 100vh inline; on phones the footer is taller than
   that, so its last 36px spilled out as a light band. Let it size to its content. ---- */
#uicore-tb-footer { max-height: none !important; }

/* ---- Founders' Insight: the container that held the two original (now hidden) carousels
   still painted a 276px cityscape band under the reel. Remove it. ---- */
.elementor-element-2bb22a6 { display: none !important; }

/* =====================================================================================
   LAYOUT RHYTHM + JOURNEY (v12)
   gc-custom.js classifies every top-level page block once the DOM is ready:
     .gc-hero    – full-height openers (min-height set) and the first block of a page
     .gc-band    – slim blocks with no headline/copy (stats counters, the About video)
     .gc-section – everything else
   and tags large section headlines .gc-title. The rules below give all of them one
   left edge (a 1140px column), one vertical rhythm, one headline scale and a gentle
   staggered reveal on scroll, so the page reads as a single flow rather than a stack
   of differently-sized panels.
   ===================================================================================== */

/* ---- One content column: every block's copy starts on the same x ---- */
@media (min-width: 1280px) {
  .gc-section.e-con-full, .gc-hero.e-con-full { padding-left: 130px !important; padding-right: 130px !important; }
  .gc-section.e-con-boxed > .e-con-inner, .gc-hero.e-con-boxed > .e-con-inner { max-width: 1120px !important; }
  .gc-section > .elementor-container, .gc-hero > .elementor-container { max-width: 1140px !important; }
  .gc-band > .elementor-container { max-width: 1140px !important; }
  .gc-band.e-con-boxed > .e-con-inner { max-width: 1120px !important; }
  /* marquees stay edge-to-edge even though their section is now padded */
  .gc-section .gc-reel, .gc-section .gc-blogreel {
    width: calc(100vw - 60px) !important; max-width: none !important;
    margin-left: calc((100% - 100vw + 60px) / 2) !important; margin-right: calc((100% - 100vw + 60px) / 2) !important;
  }
}
@media (min-width: 1025px) and (max-width: 1279px) {
  .gc-section.e-con-full, .gc-hero.e-con-full { padding-left: 64px !important; padding-right: 64px !important; }
}

/* ---- One vertical rhythm ---- */
.gc-section { padding-top: 120px !important; padding-bottom: 120px !important; min-height: 0 !important; }
.gc-section > .e-con-inner, .gc-section > .elementor-container { padding-top: 0 !important; padding-bottom: 0 !important; }
.gc-band { padding-top: 72px !important; padding-bottom: 72px !important; }
.gc-band > .e-con-inner, .gc-band > .elementor-container { padding-top: 0 !important; padding-bottom: 0 !important; }
@media (max-width: 1024px) {
  .gc-section { padding-top: 88px !important; padding-bottom: 88px !important; }
  .gc-band { padding-top: 56px !important; padding-bottom: 56px !important; }
}
@media (max-width: 767px) {
  .gc-section { padding-top: 64px !important; padding-bottom: 64px !important; }
  .gc-band { padding-top: 44px !important; padding-bottom: 44px !important; }
}
/* the three founder bios on About are one group — keep them tight */
.gc-section.elementor-element-1d7044d { padding-top: 120px !important; padding-bottom: 32px !important; }
.gc-section.elementor-element-f6186fb { padding-top: 32px !important; padding-bottom: 32px !important; }
.gc-section.elementor-element-7c091e9 { padding-top: 32px !important; padding-bottom: 120px !important; }
@media (max-width: 767px) {
  .gc-section.elementor-element-1d7044d { padding-top: 64px !important; }
  .gc-section.elementor-element-7c091e9 { padding-bottom: 64px !important; }
}

/* ---- One headline scale for in-page sections (heroes keep their 71px) ---- */
.gc-section .gc-title {
  font-size: clamp(2rem, 3.4vw, 48px) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.01em;
  margin-bottom: 0.35em;
}
.gc-section .elementor-widget-heading:has(.gc-title) { margin-bottom: 8px !important; }

/* ---- Body copy: one size, comfortable measure ---- */
@media (min-width: 1025px) {
  .gc-section .elementor-widget-text-editor p,
  .gc-section .elementor-widget-text-editor li { font-size: 18px !important; line-height: 1.65 !important; }
}
.gc-section .elementor-widget-text-editor { max-width: 70ch; }
/* legacy sections centre their widget row (justify-content: center); once the copy is
   capped at 70ch it would drift off the left edge the headline sits on — pin it left */
.gc-section .elementor-widget-wrap > .elementor-widget-text-editor { margin-right: auto !important; }
.elementor-element-2d2316e3 .elementor-widget-text-editor,
.elementor-element-5f23c50 .elementor-widget-text-editor { margin-left: auto !important; margin-right: auto !important; }
/* the centred intro lines under the two centred headlines: sit closer to their headline */
.elementor-element-2d2316e3 > .elementor-widget-text-editor,
.elementor-element-5f23c50 > .elementor-widget-text-editor { margin-top: -4px !important; margin-bottom: 28px !important; }
.elementor-element-5f23c50 > .elementor-widget-text-editor p { font-size: 18px !important; }

/* ---- Reveal on scroll: widgets drift up as each section arrives ---- */
.gc-js .gc-reveal {
  opacity: 0; transform: translateY(22px);
  transition: opacity .9s cubic-bezier(.22,1,.36,1), transform .9s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--gc-d, 0ms);
}
.gc-js .gc-reveal.gc-shown { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .gc-js .gc-reveal { opacity: 1 !important; transform: none !important; transition: none !important; } }

/* ---- Journey cues: reading-progress hairline + hero scroll prompt ---- */
.gc-progress { position: fixed; top: 0; left: 0; height: 2px; width: 100%; z-index: 99998; pointer-events: none;
  transform-origin: 0 50%; transform: scaleX(0);
  background: linear-gradient(90deg, #c3a079, #f2e6cc); box-shadow: 0 0 12px rgba(195,160,121,.5); }
.gc-hero { position: relative; }
.gc-scrollcue { position: absolute; left: 130px; bottom: 34px; z-index: 5; display: inline-flex; align-items: center; gap: 14px;
  color: #d8c29c; font-family: "Inter", sans-serif; font-size: .7rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
  text-decoration: none; opacity: .85; transition: opacity .3s ease; }
.gc-scrollcue:hover { opacity: 1; color: #f2e6cc; }
.gc-scrollcue i { position: relative; display: block; width: 56px; height: 1px; background: rgba(216,194,156,.35); overflow: hidden; }
.gc-scrollcue i::after { content: ""; position: absolute; inset: 0; width: 40%; background: #e7cf95; animation: gc-cue 2.2s cubic-bezier(.65,0,.35,1) infinite; }
@keyframes gc-cue { from { transform: translateX(-100%); } to { transform: translateX(260%); } }
@media (max-width: 1279px) { .gc-scrollcue { left: 40px; } }
@media (max-width: 767px) { .gc-scrollcue { display: none; } }
@media (prefers-reduced-motion: reduce) { .gc-scrollcue i::after { animation: none; } }

/* ---- Openers: remove the empty photo left under short hero copy (v12.1) ----
   About's opener held one visible child (the second is the hidden "Become a Member"
   button) at the top of a 900px block, stranding ~590px of empty photo beneath it.
   Centre that group so the slack is shared top and bottom. */
.elementor-element-66d7be4 > .e-con-inner { justify-content: center !important; }

/* On tablet and phone the 100vh openers stranded 300-640px of empty photo below the copy.
   Trim them to ~68vh and centre the copy, so the image keeps its presence but the slack is
   split evenly instead of all falling under the text. The founders' photo grid and the
   membership CTA are left alone: their content already fills the block. */
@media (max-width: 1024px) {
  .gc-hero { min-height: 68vh !important; }
  .gc-hero.e-con-full:not(.elementor-element-3b5f8b8):not(.elementor-element-b426636) {
    justify-content: center !important;
    padding-top: 88px !important; padding-bottom: 88px !important;
  }
  .gc-hero.e-con-boxed:not(.elementor-element-cd8f79f) > .e-con-inner {
    padding-top: 88px !important; padding-bottom: 88px !important;
  }
}
@media (max-width: 767px) {
  .gc-hero.e-con-full:not(.elementor-element-3b5f8b8):not(.elementor-element-b426636) {
    padding-top: 64px !important; padding-bottom: 64px !important;
  }
  .gc-hero.e-con-boxed:not(.elementor-element-cd8f79f) > .e-con-inner {
    padding-top: 64px !important; padding-bottom: 64px !important;
  }
}

/* ---- v13 fixes ---------------------------------------------------------------- */

/* 1. The page's first block sits under the 56px transparent header bar, so the copy was
   optically pushed up: on a 390px phone the headline cleared the "Become a Member" pill
   by only 16px. Add exactly the header's height to the opener's top padding, so the
   centred copy balances against the header rather than the raw top edge. */
@media (max-width: 1024px) {
  .gc-hero.gc-first.e-con-full:not(.elementor-element-3b5f8b8):not(.elementor-element-b426636) {
    padding-top: 144px !important;
  }
  .gc-hero.gc-first.e-con-boxed:not(.elementor-element-cd8f79f) > .e-con-inner {
    padding-top: 144px !important;
  }
}
@media (max-width: 767px) {
  .gc-hero.gc-first.e-con-full:not(.elementor-element-3b5f8b8):not(.elementor-element-b426636) {
    padding-top: 120px !important;
  }
  .gc-hero.gc-first.e-con-boxed:not(.elementor-element-cd8f79f) > .e-con-inner {
    padding-top: 120px !important;
  }
}
/* Membership's opener keeps its own tighter 44px padding, so it needs the same
   header allowance added on top of that. */
@media (max-width: 1024px) {
  .gc-hero.gc-first.elementor-element-cd8f79f > .e-con-inner { padding-top: 100px !important; }
}

/* 2. Form openers (Register + Membership): "Reserve My Spot" fell below the fold on a
   900px-tall desktop window because three separate gaps stacked above it — a ~9%-of-width
   container padding, a 50px pad above the heading and an 80px margin over the form. Tighten
   all three so the CTA is visible without scrolling. */
@media (min-width: 1025px) {
  .gc-hero:has(.elementor-widget-form) > .e-con-inner { padding-top: 96px !important; padding-bottom: 56px !important; }
  .gc-hero:has(.elementor-widget-form) .elementor-widget-heading > .elementor-widget-container { padding-top: 0 !important; }
  .gc-hero:has(.elementor-widget-form) .elementor-widget-form > .elementor-widget-container { margin-top: 40px !important; }
}

/* 3. About "Any questions?": the previous photo cropped to a close torso shot. Swap it
   for a wide networking photo from a Collective event. */
.elementor-element-616294f:not(.elementor-motion-effects-element-type-background),
.elementor-161 .elementor-element.elementor-element-616294f > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background-image: url("/wp-content/uploads/gc/any-questions.jpg") !important;
  background-position: center center !important;
  background-size: cover !important;
}

/* =====================================================================
   v14 fixes
   ===================================================================== */

/* ---- Register hero: keep "JOIN THE NETWORK." on a single line ---- */
.elementor-element-43e26f9 .elementor-heading-title {
  white-space: nowrap !important;
}
@media (max-width: 1024px) {
  .elementor-element-43e26f9 .elementor-heading-title {
    font-size: min(4rem, 6.1vw) !important;
    line-height: 1.08 !important;
  }
}

/* ---- Header CTA was a pill; every other button on the site is square ---- */
.uicore-btn,
.uicore-cta-wrapper .uicore-btn,
.uicore-mobile-head-right .uicore-btn {
  border-radius: 0 !important;
}

/* ---- Sticky "Become a Member" CTA: square, always-labelled, on-brand ----
   The old version was a gold circle that only revealed its label on hover,
   so on mobile it read as a mystery icon. Now it is a solid gold block that
   says what it does, fades in once you have scrolled, and never shows up on
   the register page (the form is already there). */
.gc-fab {
  position: fixed;
  right: 28px;
  bottom: 28px;
  z-index: 9000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: auto;
  padding: 15px 24px;
  border-radius: 0;
  border: 1px solid #e7cf95;
  background: linear-gradient(135deg, #e7cf95, #c3a079);
  color: #14100a;
  text-decoration: none;
  overflow: visible;
  box-shadow: 0 16px 40px -14px rgba(0, 0, 0, 0.75);
  opacity: 0;
  visibility: hidden;
  transform: translateY(14px);
  transition: opacity .35s ease, transform .35s cubic-bezier(.22,1,.36,1),
              visibility .35s, box-shadow .3s ease, background-color .3s ease;
}
.gc-fab.gc-fab-in { opacity: 1; visibility: visible; transform: none; }
.gc-fab-icon { width: 18px; height: 18px; flex: none; display: grid; place-items: center; }
.gc-fab-icon svg { width: 18px; height: 18px; display: block; }
.gc-fab-label {
  font-family: "Inter", sans-serif;
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
  color: #14100a;
  max-width: none;
  opacity: 1;
  margin: 0;
  overflow: visible;
}
.gc-fab:hover,
.gc-fab:focus-visible {
  padding: 15px 24px;
  transform: translateY(-2px);
  background: linear-gradient(135deg, #f2e2b6, #d3b189);
  box-shadow: 0 20px 46px -14px rgba(0, 0, 0, 0.8);
}
.gc-fab:hover .gc-fab-label,
.gc-fab:focus-visible .gc-fab-label { max-width: none; opacity: 1; margin: 0; }

@media (max-width: 767px) {
  /* full-width bar on phones — unmistakable, and clear of the browser chrome */
  .gc-fab {
    left: 16px;
    right: 16px;
    bottom: max(16px, env(safe-area-inset-bottom));
    height: auto;
    padding: 15px 18px;
  }
  .gc-fab:hover, .gc-fab:focus-visible { padding: 15px 18px; }
}

/* ---- One button language across the site --------------------------------
   The theme shipped three different treatments: square outlined (home, contact),
   pill outlined (Become a Partner "Send" / "Learn More") and sentence-case
   (How We Help "Reserve My Spot"). Square + uppercase + tracked is the one the
   brand uses most, so everything follows it. */
.elementor-button,
.uicore-btn,
.elementor-form .elementor-button,
button.elementor-button {
  border-radius: 0 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}

/* ---- About: "The Founders." heading was absolutely positioned and sat on top
   of the founder photos at every width. Put it back in the flow. ---- */
.elementor-element-925b76c {
  position: static !important;
  margin-bottom: 32px !important;
}

/* ---- Hero/CTA blocks over photography need a scrim or the copy fights the
   image (worst on the "Join the leaders who move business forward" band) ---- */
.elementor-element-16ca560,
.elementor-element-4497f13 { position: relative; z-index: 2; }

/* ---- Sign-up forms: Elementor put an 80px gap between the intro copy and the
   first field, which reads as a broken page on a phone ---- */
@media (max-width: 767px) {
  .elementor-widget-form > .elementor-widget-container { margin-top: 28px !important; }
}

/* ---- Membership hero heading: same single-line treatment as /register ---- */
.elementor-element-8d2fccf .elementor-heading-title { white-space: nowrap !important; }
@media (max-width: 1024px) {
  .elementor-element-8d2fccf .elementor-heading-title {
    font-size: min(4rem, 6.1vw) !important;
    line-height: 1.08 !important;
  }
}

/* ---- "What you'll gain": heading + intro are centred, so the CTA should be
   too (it was pinned left on desktop) ---- */
@media (min-width: 768px) {
  .elementor-element-e7f9f2a ~ .elementor-widget-button { text-align: center !important; }
}

/* ---- Founder cards: the LinkedIn glyph shipped as a solid white square, and
   the names/roles sat straight on the photo with nothing behind them ---- */
.elementor-widget-icon a.elementor-icon[href*="linkedin"] {
  background: rgba(195, 160, 121, 0.12) !important;
  border: 1px solid rgba(195, 160, 121, 0.5) !important;
  color: #e7cf95 !important;
  width: 38px; height: 38px;
  display: inline-grid; place-items: center;
}
.elementor-widget-icon a.elementor-icon[href*="linkedin"] svg,
.elementor-widget-icon a.elementor-icon[href*="linkedin"] svg path {
  fill: currentColor !important;
}
.elementor-widget-icon a.elementor-icon[href*="linkedin"]:hover {
  background: rgba(195, 160, 121, 0.26) !important;
  border-color: #c3a079 !important;
  color: #f6ead2 !important;
}
/* ---- Become a Partner: bring the page in line with the rest of the site ---- */
.elementor-element-bb8e4de .elementor-heading-title {
  text-transform: uppercase !important;
  letter-spacing: 0.02em !important;
  text-align: center !important;
}
.elementor-element-bb8e4de { text-align: center !important; }
.elementor-element-4645bfc,
.elementor-element-4645bfc .elementor-widget-container {
  text-align: center !important;
}
.elementor-element-4645bfc {
  align-self: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Become a Partner body copy sat several steps dimmer than every other page */
.elementor-element-1e84220,
.elementor-element-1e84220 p { color: rgba(255, 255, 255, 0.82) !important; }
.elementor-element-4645bfc .elementor-button {
  border-color: #c3a079 !important;
  color: #e7cf95 !important;
}

/* ---- Agenda: the page shipped on a lighter slate than every other page, and
   the hidden countdown widget left ~120px of void above the divider ---- */
.elementor-element-f246cbd,
.elementor-element-52309a7b,
.elementor-element-f5b579c,
.elementor-element-fabbafa,
.elementor-element-2d654ac0,
.elementor-element-f246cbd > .e-con-inner,
.elementor-element-52309a7b > .e-con-inner {
  background-color: #0a0d15 !important;
  background-image: none !important;
}
/* the agenda list was indented off-centre inside a centred column */
.elementor-element-b45d4b2 { text-align: center !important; }
.elementor-element-b45d4b2 ol,
.elementor-element-b45d4b2 ul {
  display: inline-block;
  text-align: left;
  margin: 0 auto;
  padding-left: 1.4em;
}
.elementor-element-52309a7b { padding-top: 48px !important; padding-bottom: 48px !important; }
.elementor-element-3eea73d .elementor-heading-title {
  text-transform: uppercase !important;
  letter-spacing: 0.01em !important;
}
@media (max-width: 767px) {
  .elementor-element-f246cbd { padding-bottom: 12px !important; }
  .elementor-element-b45d4b2 { margin-bottom: 0 !important; }
  .elementor-element-52309a7b { padding-top: 36px !important; padding-bottom: 40px !important; }
  .elementor-element-2d654ac0 { padding-top: 8px !important; }
  .elementor-element-f5b579c { padding-top: 24px !important; padding-bottom: 24px !important; }
}

/* ---- Form placeholders were barely legible on the dark grounds ---- */
.elementor-field-textual::placeholder,
.elementor-field::placeholder {
  color: rgba(255, 255, 255, 0.62) !important;
  opacity: 1 !important;
}

/* ---- Membership stat counters: number beside a wrapping two-line label read
   as a broken row on phones — stack them instead ---- */
@media (max-width: 767px) {
  .bdt-ep-advanced-counter-content {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 4px;
  }
  .bdt-ep-advanced-counter-text { margin: 0 !important; }
}

/* ---- Counters: centre the stacked block, not just its text ---- */
@media (max-width: 767px) {
  .elementor-widget-bdt-advanced-counter,
  .bdt-ep-advanced-counter { text-align: center !important; }
  .bdt-ep-advanced-counter { display: flex !important; justify-content: center !important; }
}

/* ---- "Join the leaders who move business forward" sits on a busy, bright
   photo; the copy and the JOIN NOW button were competing with tablecloths and
   faces. A soft scrim fixes legibility without flattening the image. ---- */
.elementor-element-3bedecc::after,
.elementor-element-b426636::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, rgba(6, 9, 16, 0.86) 0%, rgba(6, 9, 16, 0.66) 45%, rgba(6, 9, 16, 0.34) 100%);
  pointer-events: none;
  z-index: 1;
}
.elementor-element-3bedecc,
.elementor-element-b426636 { position: relative; }
.elementor-element-3bedecc > .e-con-inner,
.elementor-element-3bedecc > .elementor-element,
.elementor-element-b426636 > .e-con-inner,
.elementor-element-b426636 > .elementor-element { position: relative; z-index: 2; }
@media (max-width: 767px) {
  .elementor-element-3bedecc::after,
  .elementor-element-b426636::after {
    background: linear-gradient(180deg, rgba(6, 9, 16, 0.82) 0%, rgba(6, 9, 16, 0.7) 55%, rgba(6, 9, 16, 0.8) 100%);
  }
}

/* ---- About: the video band ----------------------------------------------
   Elementor gave this container a solid #000 background plus a 50%-black
   overlay, so on the navy page ground it read as a black box floating around
   a small video. The band is also narrower (828px) than every other section
   on the page (1380px), which is what made the box so obvious. Clear the
   background, let the band run the full column width, and let the poster
   actually fill it. */
.elementor-161 .elementor-element.elementor-element-850afa2,
.elementor-161 .elementor-element.elementor-element-850afa2:not(.elementor-motion-effects-element-type-background) {
  background-color: transparent !important;
  width: 100% !important;
  max-width: none !important;
}
.elementor-161 .elementor-element.elementor-element-850afa2::before { content: none !important; }
.elementor-element-850afa2 > .e-con-inner { max-width: 1120px; margin-left: auto; margin-right: auto; }
.elementor-element-f2324ab { width: 100% !important; }

.gc-video-poster { max-width: min(100%, 860px) !important; }
@media (max-width: 767px) { .gc-video-poster { max-width: 100% !important; } }
