
/* ==========================================================================
   NOUSTIQ PRO V10.7
   Typography, contrast and conversion polish after real production screenshots.
   ========================================================================== */

:root {
  --v107-ink: #08131f;
  --v107-copy: #364858;
  --v107-muted: #687987;
  --v107-green: #07815f;
  --v107-green-bright: #19bd87;
  --v107-dark: #07121d;
  --v107-dark-card: #0d1b28;
  --v107-dark-line: rgba(220, 235, 241, .15);
}

/* ---------- Typography scale correction ---------- */

/* The V10.6 hero was intentionally dramatic, but the deployed screenshot shows
   that it consumes too much of a 768px viewport. V10.7 keeps hierarchy while
   returning the supporting message and action to the first screen. */
.v106-hero {
  padding: clamp(2.8rem, 4.8vw, 4.65rem) 0 clamp(2.6rem, 4.4vw, 4rem) !important;
}
.v106-hero-grid {
  grid-template-columns: minmax(0, 1.05fr) minmax(380px, .78fr) !important;
  gap: clamp(2.6rem, 5.5vw, 5.2rem) !important;
}
.v106-hero h1 {
  max-width: 15ch !important;
  font-size: clamp(3rem, 4.55vw, 4.85rem) !important;
  font-weight: 690 !important;
  line-height: .99 !important;
  letter-spacing: -.046em !important;
}
.v106-hero h1 .v106-accent {
  color: var(--v107-green) !important;
}
.v106-hero h1 .v106-accent::after {
  display: none !important;
}
.v106-hero-lede {
  max-width: 60ch !important;
  margin-top: 1.25rem !important;
  font-size: clamp(1rem, 1.25vw, 1.12rem) !important;
  line-height: 1.62 !important;
}
.v106-hero-actions {
  margin-top: 1.45rem !important;
}
.v106-audience {
  margin-top: .95rem !important;
}

/* More elegant commercial-page hierarchy. */
.v106-intent-hero {
  padding: clamp(2.9rem, 5vw, 4.7rem) 0 clamp(2.6rem, 4.2vw, 3.8rem) !important;
}
.v106-intent-hero h1 {
  max-width: 15ch !important;
  font-size: clamp(2.55rem, 3.85vw, 4rem) !important;
  font-weight: 690 !important;
  line-height: 1.01 !important;
  letter-spacing: -.045em !important;
}
.v106-section {
  padding: clamp(3.5rem, 5.7vw, 5.8rem) 0 !important;
}
.v106-section-head h2,
.v106-editorial h2,
.v106-proof-copy h2 {
  font-size: clamp(1.95rem, 3.15vw, 3.25rem) !important;
  line-height: 1.07 !important;
  letter-spacing: -.042em !important;
}
.v106-service-copy h2 {
  max-width: 16ch !important;
  font-size: clamp(2rem, 3vw, 3.15rem) !important;
  line-height: 1.06 !important;
  letter-spacing: -.042em !important;
}
.v106-choice h3 {
  max-width: 15ch !important;
  font-size: clamp(1.8rem, 2.55vw, 2.65rem) !important;
  line-height: 1.07 !important;
  letter-spacing: -.04em !important;
}
.hero .display,
.hero h1 {
  font-size: clamp(2.55rem, 4vw, 4.15rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -.042em !important;
}

/* Paragraphs should remain calm while display type gets smaller. */
.v106-section-head p,
.v106-proof-copy p,
.v106-choice > p,
.v106-service-copy p,
.v106-editorial > div:first-child > p:last-child {
  line-height: 1.64 !important;
}

/* ---------- Hero form correction ---------- */
.v106-starter {
  border-radius: 22px !important;
  padding: 1.22rem !important;
  box-shadow: 0 22px 58px rgba(7, 17, 28, .085), 0 3px 10px rgba(7, 17, 28, .035) !important;
}
.v106-starter-head {
  padding-bottom: .78rem !important;
  margin-bottom: .78rem !important;
}
.v106-starter h2 {
  font-size: 1.12rem !important;
  letter-spacing: -.025em !important;
}
.v106-field {
  margin-top: .72rem !important;
}
.v106-input,
.v106-select {
  min-height: 47px !important;
}
.v106-starter .button {
  min-height: 47px !important;
  margin-top: .82rem !important;
}
.v106-starter-foot {
  margin-top: .65rem !important;
  color: #71808c !important;
}
.v107-output-line {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .38rem;
  margin-top: .72rem;
  padding-top: .72rem;
  border-top: 1px solid #e3eae7;
}
.v107-output-line span {
  display: grid;
  place-items: center;
  min-height: 31px;
  padding: .2rem .35rem;
  border-radius: 8px;
  background: #f2f7f5;
  color: #49605a;
  font-size: .64rem;
  font-weight: 760;
  text-align: center;
}

/* ---------- Header refinement ---------- */
.header-inner {
  min-height: 66px !important;
}
.primary-nav a {
  font-size: .83rem !important;
  font-weight: 630 !important;
}
.site-header .button-sm {
  min-height: 38px;
}

/* ---------- Four-step strip ---------- */
.v106-flow-item {
  padding: 1rem 1.1rem !important;
}
.v106-flow-item strong {
  font-size: .83rem !important;
}
.v106-flow-item span {
  font-size: .7rem !important;
  line-height: 1.4;
}

/* ---------- Card density correction ---------- */
.v106-path-card {
  min-height: 220px !important;
  padding: 1.3rem !important;
  border-radius: 17px !important;
}
.v106-path-card h3 {
  font-size: 1.22rem !important;
}
.v106-path-card p {
  font-size: .87rem !important;
  line-height: 1.55 !important;
}
.v106-answer-panel {
  border-radius: 18px !important;
  box-shadow: 0 15px 42px rgba(7,17,28,.06) !important;
}

/* ---------- Rebuilt evidence section ---------- */
.v107-evidence-section {
  position: relative;
  overflow: hidden;
  padding: clamp(3.7rem, 5.8vw, 5.7rem) 0;
  background:
    radial-gradient(circle at 88% 5%, rgba(25, 189, 135, .13), transparent 26rem),
    var(--v107-dark);
  color: #dbe5eb;
}
.v107-evidence-head {
  max-width: 760px;
}
.v107-evidence-head .eyebrow {
  color: #5adbb3 !important;
}
.v107-evidence-head h2 {
  margin: .65rem 0 0;
  max-width: 17ch;
  color: #ffffff !important;
  font-size: clamp(2.05rem, 3.35vw, 3.45rem);
  font-weight: 680;
  line-height: 1.05;
  letter-spacing: -.043em;
}
.v107-evidence-head p {
  max-width: 66ch;
  margin-top: 1rem;
  color: #b9c6ce !important;
  font-size: .98rem;
  line-height: 1.66;
}
.v107-evidence-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .8rem;
  margin-top: 2.2rem;
}
.v107-evidence-card {
  display: flex;
  gap: .8rem;
  align-items: flex-start;
  min-height: 118px;
  padding: 1rem;
  border: 1px solid var(--v107-dark-line);
  border-radius: 15px;
  background: rgba(255, 255, 255, .035);
}
.v107-evidence-icon {
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: #e9f8f2;
  color: #08775a;
  font-size: .72rem;
  font-weight: 900;
}
.v107-evidence-card h3 {
  margin: .08rem 0 0;
  color: #ffffff !important;
  font-size: .92rem;
  font-weight: 720;
  letter-spacing: -.015em;
}
.v107-evidence-card p {
  margin: .3rem 0 0;
  color: #b9c6ce !important;
  font-size: .76rem;
  line-height: 1.5;
}

/* ---------- Services section restraint ---------- */
.v106-service-bridge {
  padding: clamp(3.3rem, 5.4vw, 5rem) 0 !important;
}
.v106-service-domain {
  padding: .9rem !important;
}
.v106-service-domain small {
  color: #a7b6c0 !important;
}

/* ---------- Accessible contrast and link clarity ---------- */
.v106-section-dark p,
.v106-section-dark span {
  color: #b9c6ce;
}
.v106-text-link {
  text-underline-offset: 4px;
}
.micro {
  line-height: 1.5;
}

/* ---------- Responsive ---------- */
@media (max-width: 1020px) {
  .v106-hero h1 {
    max-width: 13ch !important;
    font-size: clamp(3rem, 7vw, 4.25rem) !important;
  }
  .v107-evidence-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 760px) {
  .v106-hero {
    padding-top: 2.2rem !important;
  }
  .v106-hero h1 {
    max-width: 11.5ch !important;
    font-size: clamp(2.65rem, 11.5vw, 3.45rem) !important;
    line-height: 1 !important;
    letter-spacing: -.04em !important;
  }
  .v106-hero-lede {
    margin-top: 1rem !important;
    font-size: .98rem !important;
  }
  .v106-starter {
    margin-top: .25rem;
  }
  .v107-output-line {
    grid-template-columns: 1fr 1fr;
  }
  .v106-intent-hero h1 {
    max-width: 12.5ch !important;
    font-size: clamp(2.35rem, 10vw, 3.2rem) !important;
  }
  .v106-section-head h2,
  .v106-editorial h2,
  .v106-proof-copy h2 {
    font-size: clamp(1.85rem, 8vw, 2.55rem) !important;
  }
  .v107-evidence-grid {
    grid-template-columns: 1fr;
  }
  .v107-evidence-card {
    min-height: 0;
  }
  .v107-evidence-head h2 {
    max-width: none;
    font-size: clamp(1.95rem, 8vw, 2.65rem);
  }
  .v106-mobile-cta {
    left: 12px !important;
    right: 12px !important;
  }
  .v106-mobile-cta .button {
    min-height: 45px !important;
    font-size: .88rem !important;
  }
}

@media (max-width: 420px) {
  .v106-audience {
    grid-template-columns: 1fr 1fr !important;
  }
}


/* ==========================================================================
   V10.7.1 MOBILE RESPONSIVE HOTFIX
   Fixes the desktop !important grid rule leaking into tablet/mobile layouts.
   ========================================================================== */

@media (max-width: 1020px) {
  .v106-hero-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 2rem !important;
    align-items: start !important;
  }

  .v106-hero-grid > * {
    min-width: 0 !important;
    width: 100%;
  }

  .v106-starter {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 760px) {
  .v106-hero {
    padding: 1.8rem 0 2.5rem !important;
  }

  .v106-hero-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 1.35rem !important;
    width: 100%;
  }

  .v106-hero-grid > div:first-child,
  .v106-hero-grid > aside {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .v106-kicker {
    margin-bottom: .9rem !important;
    font-size: .67rem !important;
    letter-spacing: .09em !important;
  }

  .v106-hero h1 {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    font-size: clamp(2.35rem, 10.8vw, 2.95rem) !important;
    font-weight: 680 !important;
    line-height: 1.01 !important;
    letter-spacing: -.038em !important;
    text-wrap: balance;
  }

  .v106-hero-lede {
    display: block !important;
    width: 100% !important;
    max-width: 34rem !important;
    margin: 1rem 0 0 !important;
    font-size: .98rem !important;
    line-height: 1.58 !important;
    letter-spacing: 0 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  /* The form itself is the main action on mobile. Avoid a duplicate CTA above it. */
  .v106-hero > .shell .v106-hero-actions {
    margin-top: 1rem !important;
  }

  .v106-hero > .shell .v106-hero-actions .button-primary {
    display: none !important;
  }

  .v106-hero > .shell .v106-hero-actions .v106-text-link {
    justify-content: flex-start !important;
    min-height: auto !important;
    font-size: .87rem !important;
  }

  .v106-audience {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: .35rem !important;
    margin-top: .9rem !important;
  }

  .v106-audience span {
    min-height: 27px !important;
    padding: .15rem .55rem !important;
    font-size: .68rem !important;
  }

  .v106-starter {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: .35rem 0 0 !important;
    padding: 1rem !important;
    border-radius: 17px !important;
    box-shadow: 0 14px 36px rgba(7,17,28,.075) !important;
  }

  .v106-starter::before {
    left: 16px !important;
    right: 16px !important;
  }

  .v106-starter-head {
    gap: .6rem !important;
    padding-bottom: .7rem !important;
    margin-bottom: .65rem !important;
  }

  .v106-starter h2 {
    font-size: 1.08rem !important;
  }

  .v106-soft-badge {
    height: 24px !important;
    padding: 0 .5rem !important;
    font-size: .62rem !important;
  }

  .v106-field {
    margin-top: .65rem !important;
  }

  .v106-field label {
    margin-bottom: .32rem !important;
    font-size: .74rem !important;
  }

  .v106-input,
  .v106-select {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    padding: .72rem .78rem !important;
    font-size: .9rem !important;
    box-sizing: border-box !important;
  }

  .v106-starter .button {
    width: 100% !important;
    min-height: 46px !important;
    margin-top: .75rem !important;
    font-size: .88rem !important;
  }

  .v106-starter-foot {
    margin-top: .6rem !important;
    font-size: .68rem !important;
    line-height: 1.45 !important;
  }

  .v107-output-line {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .34rem !important;
    margin-top: .62rem !important;
    padding-top: .62rem !important;
  }

  .v107-output-line span {
    min-width: 0 !important;
    min-height: 29px !important;
    font-size: .61rem !important;
  }

  /* Fixed CTA was covering the form in the real mobile screenshot. */
  .v106-mobile-cta {
    display: none !important;
  }

  body {
    padding-bottom: 0 !important;
  }

  /* Make the rest of the homepage feel like a mobile product, not stacked desktop cards. */
  .v106-flow {
    overflow: hidden;
  }

  .v106-flow-grid {
    grid-template-columns: 1fr !important;
  }

  .v106-flow-item {
    padding: .9rem .2rem !important;
    border-left: 0 !important;
  }

  .v106-flow-item + .v106-flow-item {
    border-top: 1px solid #e5ebe9 !important;
  }

  .v106-path-grid,
  .v106-split-choice,
  .v106-service-domains,
  .v106-editorial-list {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .v106-path-card {
    min-height: 0 !important;
  }

  .v106-section {
    padding: 3rem 0 !important;
  }

  .v106-section-head {
    margin-bottom: 1.7rem !important;
  }

  .v106-section-head h2,
  .v106-editorial h2,
  .v106-proof-copy h2 {
    max-width: none !important;
    font-size: clamp(1.85rem, 8.2vw, 2.45rem) !important;
    line-height: 1.08 !important;
  }

  .v107-evidence-section {
    padding: 3rem 0 !important;
  }

  .v107-evidence-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: .65rem !important;
  }

  .v107-evidence-card {
    min-height: 0 !important;
    padding: .9rem !important;
  }
}

@media (max-width: 390px) {
  .shell {
    width: calc(100% - 24px) !important;
  }

  .v106-hero h1 {
    font-size: clamp(2.2rem, 10.6vw, 2.7rem) !important;
  }

  .v106-audience {
    display: none !important;
  }

  .v106-starter {
    padding: .9rem !important;
  }
}
