/* ===== Growth Assessment ============================================
   A light, precise counterpart to the dark marketing site. No card, no
   shadow — the form sits directly on paper and is organized by hairline
   rules and mono section labels, so it reads like the first page of the
   assessment report it leads to. Scoped entirely to body.ga-body so it
   never leaks into the shared dark theme.
   =================================================================== */

.ga-body{
  --paper:#FBFBFD;
  --ink:#08080A;
  --slate:#6E7178;
  --line:#E4E6EB;
  --line-strong:#D3D7DE;
  --blue:#0046D6;
  --blue-bright:#2F8BFF;
  --tint:rgba(0,70,214,.045);
  --fade:cubic-bezier(.4,0,.2,1);

  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
}
.ga-body a{ color:var(--blue); }

/* ===== Header: a single hairline, nothing more ===== */
.ga-header{
  border-bottom:1px solid var(--line);
  background:rgba(251,251,253,.85);
  backdrop-filter:saturate(180%) blur(16px);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  position:sticky;
  top:0;
  z-index:10;
}
.ga-header-inner{
  max-width:660px;
  margin:0 auto;
  padding:0 1.5rem;
  height:60px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.ga-brand{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font-family:var(--font-display);
  font-weight:600;
  font-size:1rem;
  letter-spacing:-.015em;
  color:var(--ink);
  text-decoration:none;
}
/* `.ga-body a{color:var(--blue)}` above is (0,1,1) and was outranking the
   (0,1,0) `.ga-brand` rule, so the whole wordmark rendered blue. Scoping the
   brand under .ga-body lifts it to (0,2,0) and restores the homepage
   treatment: "Altus" in ink, "Digital" in blue. */
.ga-body .ga-brand{ color:var(--ink); }
.ga-body .ga-brand em{ font-style:normal; color:var(--blue); }
/* match the homepage mark exactly */
.ga-brand img{ height:26px; width:auto; }
.ga-header-tag{
  font-family:var(--font-mono);
  font-size:.66rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--slate);
}

/* ===== Page ===== */
.ga-wrap{
  max-width:660px;
  margin:0 auto;
  padding:0 1.5rem 7rem;
}

/* ===== Hero: type is the whole hero ===== */
.ga-hero{ padding:5.5rem 0 3.5rem; }
.ga-eyebrow{
  font-family:var(--font-mono);
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--blue);
  margin-bottom:1.6rem;
}
.ga-title{
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(2.15rem,6.2vw,3.35rem);
  line-height:1.04;
  letter-spacing:-.035em;
  color:var(--ink);
  margin:0;
}
.ga-lede{
  margin-top:1.5rem;
  max-width:46ch;
  font-size:1.0625rem;
  line-height:1.6;
  color:var(--slate);
}

/* ===== Sections: hairline + mono label ===== */
.ga-form{ display:block; }
/* An author `display` declaration outranks the UA [hidden] rule, so these
   need explicit re-hiding or JS `hidden = true` silently does nothing. */
.ga-body [hidden]{ display:none !important; }

.ga-section{
  border-top:1px solid var(--line);
  padding:2.75rem 0;
}
.ga-section-label{
  font-family:var(--font-mono);
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--slate);
  margin:0 0 1.75rem;
}
.ga-fields{ display:flex; flex-direction:column; gap:1.5rem; }
.ga-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }

/* ===== Fields ===== */
.ga-field{ display:flex; flex-direction:column; gap:.55rem; }
.ga-label{
  font-size:.9rem;
  font-weight:500;
  color:var(--ink);
  letter-spacing:-.005em;
}
.ga-optional{
  font-family:var(--font-mono);
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--slate);
  margin-left:.5rem;
  font-weight:400;
}
.ga-helper{ font-size:.82rem; line-height:1.5; color:var(--slate); }

.ga-body .ga-form input[type="text"],
.ga-body .ga-form input[type="email"],
.ga-body .ga-form input[type="tel"],
.ga-body .ga-form input[type="url"],
.ga-body .ga-form input[type="date"],
.ga-body .ga-form input[type="time"],
.ga-body .ga-form textarea{
  width:100%;
  box-sizing:border-box;
  background:#fff;
  border:1px solid var(--line-strong);
  border-radius:10px;
  padding:.85rem 1rem;
  font-family:var(--font-body);
  font-size:1.0625rem;
  line-height:1.4;
  color:var(--ink);
  transition:border-color .15s var(--fade), box-shadow .15s var(--fade);
  -webkit-appearance:none;
  appearance:none;
}
.ga-body .ga-form textarea{ resize:vertical; min-height:96px; }
.ga-body .ga-form input::placeholder,
.ga-body .ga-form textarea::placeholder{ color:#A9AEB7; }

/* Scoped to text-entry inputs only — a bare `input:hover` here would outrank
   the radio/checkbox :checked rules below and stop them ever taking effect. */
.ga-body .ga-form input[type="text"]:hover,
.ga-body .ga-form input[type="email"]:hover,
.ga-body .ga-form input[type="tel"]:hover,
.ga-body .ga-form input[type="url"]:hover,
.ga-body .ga-form input[type="date"]:hover,
.ga-body .ga-form input[type="time"]:hover,
.ga-body .ga-form textarea:hover{ border-color:#BFC5CF; }

.ga-body .ga-form input[type="text"]:focus,
.ga-body .ga-form input[type="email"]:focus,
.ga-body .ga-form input[type="tel"]:focus,
.ga-body .ga-form input[type="url"]:focus,
.ga-body .ga-form input[type="date"]:focus,
.ga-body .ga-form input[type="time"]:focus,
.ga-body .ga-form textarea:focus{
  outline:none;
  border-color:var(--blue-bright);
  box-shadow:0 0 0 3.5px rgba(47,139,255,.16);
}

/* ===== Honeypot ===== */
.ga-hp{
  position:absolute;
  left:-9999px;
  top:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

/* ===== Choice rows — the one place with any weight ===== */
.ga-choice-set{ border:0; padding:0; margin:0; }
.ga-legend{
  padding:0;
  margin:0 0 1.1rem;
  font-size:.9rem;
  font-weight:500;
  color:var(--ink);
}
.ga-choices{
  display:flex;
  flex-direction:column;
  border:1px solid var(--line-strong);
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
.ga-choice{
  display:flex;
  align-items:center;
  gap:.9rem;
  padding:1rem 1.15rem;
  border-bottom:1px solid var(--line);
  cursor:pointer;
  transition:background .15s var(--fade);
}
.ga-choice:last-child{ border-bottom:0; }
.ga-choice:hover{ background:#F6F8FC; }
.ga-choices .ga-choice input[type="radio"]{
  appearance:none;
  -webkit-appearance:none;
  width:20px;
  height:20px;
  margin:0;
  flex:0 0 auto;
  border:1.5px solid var(--line-strong);
  border-radius:50%;
  background:#fff;
  cursor:pointer;
  display:grid;
  place-content:center;
  transition:border-color .15s var(--fade);
}
.ga-choices .ga-choice input[type="radio"]::after{
  content:"";
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--blue);
  transform:scale(0);
  transition:transform .15s var(--fade);
}
.ga-choices .ga-choice input[type="radio"]:checked{ border-color:var(--blue); }
.ga-choices .ga-choice input[type="radio"]:checked::after{ transform:scale(1); }
.ga-choices .ga-choice input[type="radio"]:focus-visible{
  outline:none;
  box-shadow:0 0 0 3.5px rgba(47,139,255,.22);
}
.ga-choice-text{
  font-size:1rem;
  color:var(--ink);
  letter-spacing:-.005em;
}
/* Outranks .ga-choice:hover so the selected row stays tinted under the cursor */
.ga-choices .ga-choice.is-checked{ background:var(--tint); }
.ga-choices .ga-choice.is-checked .ga-choice-text{ font-weight:500; }

.ga-note{
  font-size:.82rem;
  line-height:1.5;
  color:var(--slate);
  margin:-.35rem 0 0;
}

/* ===== Submit block ===== */
.ga-submit-block{
  border-top:1px solid var(--line);
  padding-top:2.5rem;
  display:flex;
  flex-direction:column;
  gap:1.4rem;
}
.ga-consent{
  display:flex;
  align-items:flex-start;
  gap:.85rem;
  font-size:.92rem;
  line-height:1.55;
  color:var(--ink);
  cursor:pointer;
}
.ga-submit-block .ga-consent input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width:21px;
  height:21px;
  margin:.1rem 0 0;
  flex:0 0 auto;
  border:1.5px solid var(--line-strong);
  border-radius:6px;
  background:#fff;
  cursor:pointer;
  position:relative;
  transition:background .15s var(--fade), border-color .15s var(--fade);
}
.ga-submit-block .ga-consent input[type="checkbox"]:checked{
  background:var(--blue);
  border-color:var(--blue);
}
.ga-submit-block .ga-consent input[type="checkbox"]:checked::after{
  content:"";
  position:absolute;
  left:6.5px;
  top:2.5px;
  width:5px;
  height:10px;
  border:solid #fff;
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.ga-submit-block .ga-consent input[type="checkbox"]:focus-visible{
  outline:none;
  box-shadow:0 0 0 3.5px rgba(47,139,255,.22);
}

/* ===== SMS consent (A2P 10DLC) =====
   The disclosure has to stay in the initial DOM and stay visible: compliance
   scanners don't expand accordions or run hover states, and any form of
   visually-hidden text reads as a missing disclosure. Subtle, never hidden. */
/* role="group" + aria-labelledby rather than fieldset/legend: a <legend> is
   taken out of normal flow in a grid fieldset and renders inconsistently across
   browsers, and this disclosure has to be reliably visible — it's the block the
   A2P scanner reads. */
.ga-consent-block{
  display:grid;
  gap:.95rem;
  margin:0;
  padding:0;
  border:0;
  min-width:0;
}
.ga-consent-intro{
  margin:0;
  padding:1rem 1.1rem;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--paper-soft, #F7F8FA);
  font-size:.86rem;
  line-height:1.6;
  color:var(--ink);
}
.ga-consent-meta{
  margin:0;
  padding-left:calc(21px + .85rem); /* aligns with the label text, past the box */
  font-size:.82rem;
  line-height:1.5;
  color:var(--slate);
}
.ga-consent-meta a{ color:var(--blue); text-decoration:underline; text-underline-offset:2px; }

@media (max-width:520px){
  .ga-consent-meta{ padding-left:0; }
}

.ga-body .ga-submit{
  display:block;
  width:100%;
  padding:1.05rem 1.5rem;
  border:0;
  border-radius:12px;
  background:var(--blue);
  color:#fff;
  font-family:var(--font-body);
  font-size:1.0625rem;
  font-weight:700;
  letter-spacing:-.01em;
  cursor:pointer;
  transition:background .18s var(--fade), transform .18s var(--fade);
}
.ga-body .ga-submit:hover{ background:#0039AD; }
.ga-body .ga-submit:active{ transform:scale(.988); }
.ga-body .ga-submit:focus-visible{
  outline:none;
  box-shadow:0 0 0 3.5px rgba(47,139,255,.3);
}
.ga-body .ga-submit:disabled{
  background:#9CB4E8;
  cursor:default;
  transform:none;
}

.ga-privacy-note{
  font-size:.8rem;
  line-height:1.55;
  color:var(--slate);
  text-align:center;
  margin:0;
}
.ga-status{
  font-size:.9rem;
  line-height:1.5;
  color:var(--slate);
  margin:0;
  min-height:0;
}
.ga-status:empty{ display:none; }
.ga-status.is-error{
  color:#B3261E;
  background:#FDF2F1;
  border:1px solid #F3D3D0;
  border-radius:10px;
  padding:.85rem 1rem;
}

/* ===== Success: a full screen of its own, not a panel under the form ===== */
.ga-body.ga-done .ga-footer{ display:none; }

.ga-success{
  min-height:calc(100vh - 60px);
  display:flex;
  flex-direction:column;
  align-items:center;
  /* `safe` keeps the top reachable when the content is taller than the
     viewport — plain `center` would clip the checkmark and headline. */
  justify-content:center;
  justify-content:safe center;
  text-align:center;
  padding:3rem 0 4rem;
  outline:none;
}
.ga-success .ga-eyebrow{ margin-bottom:1rem; }

.ga-check{
  display:block;
  width:64px;
  height:64px;
  margin-bottom:1.75rem;
}
.ga-check svg{ width:100%; height:100%; overflow:visible; }
.ga-check-ring{
  fill:none;
  stroke:var(--blue);
  stroke-width:2.5;
  opacity:.28;
  stroke-dasharray:151;
  stroke-dashoffset:151;
  animation:ga-draw .55s var(--fade) .05s forwards;
}
.ga-check-mark{
  fill:none;
  stroke:var(--blue);
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:40;
  stroke-dashoffset:40;
  animation:ga-draw .4s var(--fade) .45s forwards;
}
@keyframes ga-draw{ to{ stroke-dashoffset:0; } }

.ga-success-title{
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(1.85rem,5vw,2.7rem);
  line-height:1.08;
  letter-spacing:-.03em;
  color:var(--ink);
  margin:0;
  max-width:18ch;
}
.ga-success-lede{
  margin-left:auto;
  margin-right:auto;
  max-width:44ch;
}

/* Receipt: proof we actually captured their details */
.ga-receipt{
  margin:2.75rem 0 0;
  width:100%;
  max-width:420px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  text-align:left;
  overflow:hidden;
}
.ga-receipt-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:1.25rem;
  padding:.95rem 1.15rem;
  border-bottom:1px solid var(--line);
}
.ga-receipt-row:last-child{ border-bottom:0; }
.ga-receipt dt{
  font-family:var(--font-mono);
  font-size:.64rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--slate);
  flex:0 0 auto;
}
.ga-receipt dd{
  margin:0;
  font-size:.95rem;
  color:var(--ink);
  text-align:right;
  word-break:break-word;
}

.ga-success-note{
  margin-top:2rem;
  max-width:42ch;
  font-size:.88rem;
  line-height:1.6;
  color:var(--slate);
}
.ga-success-note a{ color:var(--blue); text-decoration:none; }
.ga-success-note a:hover{ text-decoration:underline; }

.ga-success-link{
  display:inline-block;
  margin-top:2.25rem;
  font-size:.95rem;
  font-weight:500;
  color:var(--blue);
  text-decoration:none;
}
.ga-success-link:hover{ text-decoration:underline; }

@media (max-width:620px){
  .ga-success{ min-height:calc(100vh - 56px); padding:2rem 0 3rem; }
  .ga-receipt-row{ flex-direction:column; gap:.3rem; }
  .ga-receipt dd{ text-align:left; }
}

/* ===== Footer ===== */
.ga-footer{
  border-top:1px solid var(--line);
  padding:1.75rem 0;
}
.ga-footer-inner{
  max-width:660px;
  margin:0 auto;
  padding:0 1.5rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:.6rem;
  font-size:.82rem;
  color:var(--slate);
}
.ga-footer-inner a{ color:var(--slate); text-decoration:none; }
.ga-footer-inner a:hover{ color:var(--blue); }

/* ===== Responsive ===== */
@media (max-width:620px){
  .ga-wrap{ padding:0 1.25rem 5rem; }
  .ga-header-inner, .ga-footer-inner{ padding:0 1.25rem; }
  .ga-hero{ padding:3.5rem 0 2.5rem; }
  .ga-row{ grid-template-columns:1fr; }
  .ga-section{ padding:2.25rem 0; }
  .ga-footer-inner{ justify-content:flex-start; }
}

@media (prefers-reduced-motion: reduce){
  .ga-body *,
  .ga-body *::before,
  .ga-body *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}
