.elementor-326 .elementor-element.elementor-element-30b8225{--display:flex;--align-items:stretch;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}/* Start custom CSS */:root{
  --navy:#1d5c88; --sky:#90adc3; --red:#ef4445; --text:#333; --bg:#fff; --soft:#f7f9fa;
  --container:880px;                /* slightly wider form card */
  --radius:14px; --shadow-1:0 10px 28px rgba(16,24,40,.10);
}

/* Page shell */
.kg-joinSolo{ background:var(--bg); }
.kg-joinSolo__wrap{
  max-width:var(--container);
  margin:0 auto;
  padding: clamp(32px, 6vw, 88px) 16px;
}
.kg-joinSolo__title{
  margin:0; color:#0f2f46;
  font-family:Montserrat,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-weight:800; text-transform:uppercase; letter-spacing:.6px;
  font-size: clamp(28px, 4vw, 44px); line-height:1.15;
}
.kg-joinSolo__lead{
  margin:.7rem 0 1.25rem 0; color:var(--text);
  font-family:"Open Sans",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:18px; line-height:1.6;
}

/* Form card */
.kg-form{
  background:#fff; border:1px solid rgba(29,92,136,.12);
  border-radius:var(--radius); box-shadow:var(--shadow-1);
  padding: clamp(24px, 4.2vw, 32px);
  display:grid; gap: 18px;                 /* more breathing room */
}
.kg-form__grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap: 18px;  /* roomier gap */
}

/* Fields */
.kg-field{ display:grid; gap:8px; }        /* more space under labels */
.kg-field label{
  font-family:Montserrat,sans-serif; font-weight:700; font-size:12.5px; letter-spacing:.25px;
  color:#0f2f46; text-transform:uppercase;
}
.kg-optional{ font-weight:600; color:#5b6b79; text-transform:none; font-size:12px; }

.kg-field input{
  width:100%; height:54px;                 /* taller fields */
  border:1px solid #d5dee7; border-radius:12px;
  padding: 14px 16px; background:#fff; color:var(--text);
  font-family:"Open Sans",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:16px;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.kg-field input:focus{
  outline:0; border-color:var(--sky); box-shadow:0 0 0 4px rgba(144,173,195,.22);
}

/* Checkboxes */
.kg-fieldset{ margin:4px 0 6px 0; padding:0; border:0; }
.kg-fieldset legend{
  margin:0 0 10px 0;
  font-family:Montserrat,sans-serif; font-weight:800; text-transform:uppercase;
  letter-spacing:.6px; color:#0f2f46; font-size:13px;
}
.kg-check{
  display:flex; align-items:flex-start; gap:12px;
  padding:12px 14px;                        /* larger tap target */
  border:1px solid #dbe4ed; border-radius:12px; background:#fff;
}
.kg-check + .kg-check{ margin-top:10px; }
.kg-check input{
  margin-top:2px; width:20px; height:20px;
  accent-color: var(--navy);                 /* match brand */
}
.kg-check span{ color:var(--text); line-height:1.45; }

/* Button / messages */
.btn{
  display:inline-block; padding:14px 18px; border-radius:12px; border:0; cursor:pointer;
  font-family:Montserrat,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-weight:800; letter-spacing:1px; text-transform:uppercase;
}
.kg-form .btn--primary{
  background:var(--red); color:#fff; box-shadow:0 12px 26px rgba(239,68,69,.22);
  width:100%; height:56px; margin-top:6px;  /* full-width, aligned with inputs */
}
.kg-form .btn--primary:hover{ background:#d93b3c; }
.btn[disabled]{ opacity:.7; cursor:not-allowed; }
.btn[data-loading]:after{
  content:""; display:inline-block; width:1em; height:1em; margin-left:.5em;
  border:2px solid rgba(255,255,255,.6); border-top-color:#fff; border-radius:50%;
  animation:kgspin .8s linear infinite; vertical-align:-2px;
}
@keyframes kgspin{ to { transform: rotate(360deg); } }

.kg-msg{ font-size:14px; margin-top:8px; min-height:1.2em; }
.kg-msg--success{ color:#0f7a4f; }

/* Honeypot + iframe */
.kg-honeypot{ position:absolute; left:-9999px; opacity:0; height:0; width:0; }
.kg-iframe{ position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; border:0; }

/* Responsive */
@media (max-width:760px){
  .kg-form__grid{ grid-template-columns:1fr; gap:14px; }
  .kg-form{ gap:16px; padding: 20px; }
  .kg-field input{ height:50px; padding:12px 14px; }
  .kg-form .btn--primary{ height:52px; }
}
/* Animated accent underline */
.kg-videoBand__title,
.kg-joinSolo__title{
  position: relative;
}
.kg-videoBand__title::after,
.kg-joinSolo__title::after{
  content:""; position:absolute; left:0; bottom:-10px;
  height:4px; width:72px; background:linear-gradient(90deg,#ef4445,#90adc3);
  border-radius:4px; transform-origin:left; transform:scaleX(.2);
  transition: transform .5s ease;
}
.kg-videoBand__wrap:has(.kg-videoFrame):hover .kg-videoBand__title::after,
.kg-joinSolo__wrap:hover .kg-joinSolo__title::after{
  transform:scaleX(1);
}
/* Tiny parallax */
@media (hover:hover){
  .hero__bg{ transition: transform .6s ease; }
  .hero:hover .hero__bg{ transform: translateY(-1.5%) scale(1.03); }
}
/* Toasty success/error */
.kg-msg{
  padding:10px 12px; border-radius:10px; background:#f6fafc; color:#0f2f46;
  box-shadow: 0 6px 16px rgba(16,24,40,.06);
}
.kg-msg.kg-msg--success{
  background: #eefcf3; color:#0a7a3a; border:1px solid rgba(10,122,58,.15);
}
.kg-msg--error{
  background:#fff5f5; color:#c0392b; border:1px solid rgba(192,57,43,.15);
}
/* Hide the status strip until there's text or a state class */
.kg-msg{ 
  display:none; 
  background:transparent; 
  border:0; 
  padding:0; 
  box-shadow:none; 
  min-height:0;
}
/* Show only when we deliberately set a state */
.kg-msg.kg-msg--success,
.kg-msg.kg-msg--error,
.kg-msg.kg-msg--info{
  display:block;
  margin-top:10px;
  padding:10px 12px;
  border-radius:10px;
  background:#ffffff;
  border:1px solid rgba(16,24,40,.12);
  box-shadow:0 6px 14px rgba(16,24,40,.08);
}

/* Colors for states (optional) */
.kg-msg--success{ color:#0f7a4f; border-color:rgba(15,122,79,.25); }
.kg-msg--error{ color:#b42318; border-color:rgba(180,35,24,.2); }
.kg-msg--info{ color:#0f2f46; border-color:rgba(29,92,136,.18); }
/* --- Minor visual polish --- */
.kg-joinSolo__title{ margin-bottom: 8px; }
.kg-joinSolo__lead{ margin: 10px 0 18px; }

/* Lighter, crisper card */
.kg-form{
  box-shadow: 0 10px 24px rgba(16,24,40,.08), 0 2px 6px rgba(16,24,40,.05);
  background:
    radial-gradient(120% 140% at 50% -20%, rgba(144,173,195,.08), transparent 60%),
    #fff;
}

/* Roomier rhythm & clear focus for keyboard users */
.kg-field input{
  padding: 14px 16px;
}
.kg-field input:focus-visible{
  outline: 0;
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(29,92,136,.22);
}

/* Friendlier invalid hint using native HTML5 validation */
.kg-field input:required:invalid{
  border-color: #eab308;
}
.kg-field input:required:invalid:focus-visible{
  box-shadow: 0 0 0 3px rgba(234,179,8,.25);
}

/* Checkbox blocks: bigger tap area + balanced text */
.kg-check{
  gap: 12px;
  padding: 14px;
  line-height: 1.5;
}
.kg-check input{ flex: 0 0 auto; }

/* Button: ensure accessible contrast on hover/active */
.kg-form .btn--primary{
  background: var(--red);
}
.kg-form .btn--primary:hover{ background:#d43738; }
.kg-form .btn--primary:active{ background:#c12f30; }

/* Smallprint under button */
.kg-smallprint{
  margin: 8px 2px 0;
  color:#5b6b79;
  font: 13px/1.5 "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Earlier stack to one column for comfy tablets */
@media (max-width: 900px){
  .kg-form__grid{ grid-template-columns: 1fr; gap:16px; }
}

/* Prefers-reduced-motion: calm the underline animation */
@media (prefers-reduced-motion: reduce){
  .kg-videoBand__title::after,
  .kg-joinSolo__title::after{
    transition: none;
    transform: scaleX(1);
  }
}
/* ========== MOBILE COMFORT SPACING (paste at end) ========== */

/* Tight tablets and phones */
@media (max-width: 900px){
  .kg-form__grid{ grid-template-columns: 1fr; row-gap: 16px; }
}

@media (max-width: 560px){
  .kg-joinSolo__wrap{
    padding: clamp(24px, 6vw, 32px)
             calc(16px + env(safe-area-inset-left))
             clamp(28px, 7vw, 40px)
             calc(16px + env(safe-area-inset-right));
  }

  /* Roomier card + clearer rhythm */
  .kg-form{ padding: 22px; gap: 16px; }
  .kg-field{ gap: 10px; }
  .kg-field label{ font-size: 12.5px; letter-spacing: .25px; }

  .kg-field input{
    height: 52px;
    padding: 14px 16px;
  }

  /* Checkbox blocks: bigger taps + cleaner wraps */
  .kg-fieldset{ margin-top: 6px; }
  .kg-check{
    padding: 14px;
    gap: 12px;
    line-height: 1.5;
  }
  .kg-check + .kg-check{ margin-top: 12px; }
  .kg-check span{ display: block; }

  /* Button spacing */
  .kg-form .btn--primary{
    height: 52px;
    margin-top: 8px;
  }
  .kg-smallprint{ margin-top: 10px; }
}

/* Very small devices (SE / older Android) */
@media (max-width: 380px){
  .kg-joinSolo__title{ font-size: 24px; }
  .kg-form{ padding: 18px; gap: 14px; }
  .kg-check{ padding: 12px; }
}

/* Optional: don’t show “invalid” borders until user interacts */
.kg-field input:required:invalid{ border-color: #d5dee7; }           /* neutral by default */
.kg-field input:focus:invalid{ border-color: #eab308; box-shadow: 0 0 0 3px rgba(234,179,8,.25); }
.kg-form[data-validated="1"] .kg-field input:invalid{
  border-color:#eab308; box-shadow: 0 0 0 3px rgba(234,179,8,.2);
}
/* Required-field asterisks (scoped) */
.kg-form--asterisks .kg-field:has(input[required]) > label::after{
  content: " *";
  color: var(--red);
  font-weight: 800;
  margin-left: .25em;
}
.kg-optional{ color:#5b6b79; font-weight:600; }
.kg-form--asterisks .kg-field > label{
  display:inline-flex;
  align-items:baseline;
  gap:.25em;
}

/* Hidden iframe styles (ensure it never flashes) */
.kg-iframe{ position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; border:0; }
/* ===== Join page: kill side-scroll on phones ===== */

/* 1) Globally prevent horizontal scrolling on small screens */
@media (max-width: 767px){
  html, body { width:100%; overflow-x: hidden; }
}

/* 2) Belt + suspenders inside the Join section */
@media (max-width: 767px){
  .kg-joinSolo { overflow-x: clip; }
  .kg-joinSolo .elementor-section,
  .kg-joinSolo .elementor-container,
  .kg-joinSolo .e-con,
  .kg-joinSolo .e-con-inner { overflow-x: clip; }

  /* make sure no child can exceed the viewport */
  .kg-joinSolo, .kg-joinSolo * { max-width: 100%; }
  .kg-joinSolo img,
  .kg-joinSolo input,
  .kg-joinSolo select,
  .kg-joinSolo button { max-width: 100%; }
}

/* 3) Safe-area padding (right/left were flipped in an earlier snippet) */
@media (max-width:560px){
  .kg-joinSolo__wrap{
    /* top | right | bottom | left */
    padding:
      clamp(24px, 6vw, 32px)
      calc(16px + env(safe-area-inset-right))
      clamp(28px, 7vw, 40px)
      calc(16px + env(safe-area-inset-left));
  }
}

/* If this page also uses a .hero--bleed section anywhere, keep it from causing overflow on phones */
@media (max-width:767px){
  .hero--bleed{ width:100%; margin-left:0; }
}
/* ===== JOIN page — kill horizontal scroll on desktop & tablet ===== */

/* 1) Never let this page scroll sideways */
html:has(.kg-joinSolo){ overflow-x: clip; }          /* modern browsers */
html body .kg-joinSolo{ overflow-x: clip; }           /* belt & suspenders */

/* 2) Make sure no child can be wider than the viewport */
.kg-joinSolo,
.kg-joinSolo__wrap,
.kg-form{ max-width: 100%; overflow-x: clip; }

/* 3) Grids: allow items to actually shrink (prevents push-out) */
.kg-form__grid,
.kg-field,
.kg-check{ min-width: 0; }                            /* critical for CSS grid */

.kg-joinSolo input,
.kg-joinSolo select,
.kg-joinSolo button{ max-width: 100%; }

/* 4) Page-builder wrappers sometimes use 100vw or negative margins */
.kg-joinSolo .elementor-section,
.kg-joinSolo .elementor-container,
.kg-joinSolo .e-con,
.kg-joinSolo .e-con-inner{
  width: auto !important;
  max-width: 100% !important;
  overflow-x: clip;
}

/* 5) Micro-fix for rare 1–2px jitter from scrollbars */
.kg-joinSolo__wrap{ box-sizing: border-box; }
/* ===== JOIN page — kill horizontal scroll on desktop & tablet ===== */

/* 1) Never let this page scroll sideways */
html:has(.kg-joinSolo){ overflow-x: clip; }          /* modern browsers */
html body .kg-joinSolo{ overflow-x: clip; }           /* belt & suspenders */

/* 2) Make sure no child can be wider than the viewport */
.kg-joinSolo,
.kg-joinSolo__wrap,
.kg-form{ max-width: 100%; overflow-x: clip; }

/* 3) Grids: allow items to actually shrink (prevents push-out) */
.kg-form__grid,
.kg-field,
.kg-check{ min-width: 0; }                            /* critical for CSS grid */

.kg-joinSolo input,
.kg-joinSolo select,
.kg-joinSolo button{ max-width: 100%; }

/* 4) Page-builder wrappers sometimes use 100vw or negative margins */
.kg-joinSolo .elementor-section,
.kg-joinSolo .elementor-container,
.kg-joinSolo .e-con,
.kg-joinSolo .e-con-inner{
  width: auto !important;
  max-width: 100% !important;
  overflow-x: clip;
}

/* 5) Micro-fix for rare 1–2px jitter from scrollbars */
.kg-joinSolo__wrap{ box-sizing: border-box; }
/* ===== JOIN — restore slim desktop width, keep overflow fixed ===== */

/* 0) If you kept this from my last patch, it’s the culprit:
      .kg-joinSolo, .kg-joinSolo__wrap, .kg-form{ max-width:100%; }
   You can delete it. The rules below override it anyway. */

/* 1) Keep the page from scrolling sideways */
html:has(.kg-joinSolo){ overflow-x: clip; }

/* 2) Bring the wrap back to a tasteful width */
:root{ --join-max: 820px; }               /* adjust to taste (760–860px sweet spot) */

.kg-joinSolo__wrap{
  max-width: min(var(--join-max), 92vw) !important;
  margin-inline: auto;
  padding-inline: 16px;                   /* keeps your side padding */
}

/* 3) Ensure the card never exceeds the wrap */
.kg-form{
  width: 100%;
  max-width: var(--join-max) !important;
  margin-inline: auto;
  overflow-x: clip;                        /* keeps the grid from pushing out */
}

/* 4) Grid safety so fields can shrink without causing overflow */
.kg-form__grid, .kg-field, .kg-check{ min-width: 0; }

/* 5) Page-builder wrappers can stay full-width but never push out */
.kg-joinSolo .elementor-section,
.kg-joinSolo .elementor-container,
.kg-joinSolo .e-con,
.kg-joinSolo .e-con-inner{
  max-width: 100% !important;
  overflow-x: clip;
}

/* Optional: make it a hair slimmer on ultra-wide monitors */
@media (min-width: 1440px){
  :root{ --join-max: 780px; }
}/* End custom CSS */