@font-face {
  font-family: "Hanken Grotesk";
  src: url("../../fonts/hanken-grotesk/HankenGrotesk-Variable.a6b899943e31.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@view-transition { navigation: auto; }

::view-transition-old(root),
::view-transition-new(root) {
  animation: none;
  mix-blend-mode: normal;
}

::view-transition-group(ss-public-wordmark) {
  animation-duration: 220ms;
  animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

body.consultation-page {
  --consultation-canvas: oklch(98.7% 0.006 284);
  --consultation-surface: #fff;
  --consultation-ink: oklch(22% 0.014 275);
  --consultation-body: oklch(39% 0.018 275);
  --consultation-muted: oklch(49% 0.016 275);
  --consultation-line: oklch(22% 0.014 275 / 14%);
  --consultation-accent: oklch(53% 0.16 278);
  --consultation-accent-dark: oklch(42% 0.14 278);
  --consultation-accent-soft: oklch(94% 0.025 280);
  --consultation-control-line: oklch(66% 0.012 275);
  --consultation-danger: oklch(43% 0.15 25);
  --consultation-danger-soft: oklch(96% 0.025 25);
  min-width: 320px;
  margin: 0;
  background: var(--consultation-canvas);
  color: var(--consultation-ink);
  color-scheme: light;
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 16px;
  line-height: 1.55;
}

html[data-theme="dark"] body.consultation-page {
  background: var(--consultation-canvas);
  color: var(--consultation-ink);
  color-scheme: light;
}

body.consultation-page *,
body.consultation-page *::before,
body.consultation-page *::after { box-sizing: border-box; }

body.consultation-page h1,
body.consultation-page h2,
body.consultation-page h3,
body.consultation-page p { margin-top: 0; }

body.consultation-page h1,
body.consultation-page h2 { text-wrap: balance; }

body.consultation-page p { text-wrap: pretty; }
body.consultation-page a { color: inherit; }

body.consultation-page :focus-visible {
  outline: 3px solid var(--consultation-accent);
  outline-offset: 3px;
}

body.consultation-page > .scroll-progress-bar,
body.consultation-page > button[aria-label="Back to top"] { display: none !important; }

body.consultation-page main.page-enter {
  min-height: calc(100vh - 146px);
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
}

.consultation-shell {
  width: min(1160px, calc(100% - 48px));
  margin-inline: auto;
}

.consultation-header { border-bottom: 1px solid var(--consultation-line); }

.consultation-header-inner,
.consultation-footer-inner {
  display: flex;
  min-height: 74px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.consultation-wordmark,
.consultation-return {
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  text-decoration: none;
}

.consultation-wordmark { view-transition-name: ss-public-wordmark; }
.consultation-wordmark img { width: 178px; height: auto; }

.consultation-return {
  gap: 9px;
  color: var(--consultation-body);
  font-size: 14px;
  font-weight: 600;
}

.consultation-return-compact { display: none; }

.consultation-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.84fr) minmax(540px, 1.16fr);
  gap: clamp(52px, 6vw, 88px);
  padding-block: clamp(54px, 7vw, 94px) clamp(72px, 9vw, 118px);
}

.consultation-context {
  position: sticky;
  top: 36px;
  align-self: start;
}

.consultation-mobile-assurance { display: none; }

.consultation-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
  color: var(--consultation-muted);
  font-size: 14px;
}

.consultation-kicker::before {
  width: 22px;
  height: 1px;
  background: var(--consultation-accent);
  content: "";
}

.consultation-context h1 {
  max-width: 11ch;
  margin-bottom: 24px;
  font-size: clamp(3rem, 5.2vw, 4.6rem);
  font-weight: 520;
  letter-spacing: -0.038em;
  line-height: 0.98;
}

.consultation-intro {
  max-width: 48ch;
  margin-bottom: 38px;
  color: var(--consultation-body);
  font-size: clamp(1.06rem, 1.5vw, 1.2rem);
  line-height: 1.62;
}

.consultation-expectations {
  margin: 0;
  border-top: 1px solid var(--consultation-line);
}

.consultation-expectations div {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 18px;
  padding-block: 17px;
  border-bottom: 1px solid var(--consultation-line);
}

.consultation-expectations dt { font-size: 14px; font-weight: 650; }
.consultation-expectations dd { margin: 0; color: var(--consultation-muted); font-size: 14px; }

.consultation-direct-contact {
  margin: 24px 0 0;
  color: var(--consultation-muted);
  font-size: 14px;
}

.consultation-direct-contact a {
  color: var(--consultation-accent-dark);
  font-weight: 600;
  text-underline-offset: 3px;
}

.consultation-form-column {
  min-width: 0;
  align-self: start;
  border-radius: 14px;
  background: var(--consultation-surface);
  box-shadow: 0 4px 8px oklch(22% 0.014 275 / 7%);
  padding: clamp(30px, 3.4vw, 46px);
  scroll-margin-block-start: 16px;
}

.consultation-status {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.consultation-alert {
  margin-bottom: 28px;
  padding: 16px 18px;
  border: 1px solid oklch(43% 0.15 25 / 24%);
  border-radius: 10px;
  background: var(--consultation-danger-soft);
  color: var(--consultation-danger);
}

.consultation-alert strong,
.consultation-alert p { display: block; margin: 0; }
.consultation-alert p { margin-top: 3px; font-size: 14px; }

.consultation-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.consultation-section + .consultation-section {
  margin-top: 52px;
  padding-top: 44px;
  border-top: 1px solid var(--consultation-line);
}

.consultation-section-heading { margin-bottom: 30px; }

.consultation-section-heading p {
  margin-bottom: 4px;
  color: var(--consultation-accent-dark);
  font-size: 13px;
  font-weight: 650;
}

.consultation-section-heading h2 {
  margin-bottom: 0;
  font-size: clamp(2rem, 3.2vw, 2.5rem);
  font-weight: 530;
  letter-spacing: -0.034em;
  line-height: 1.04;
}

.consultation-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px 24px;
}

.consultation-field-wide { grid-column: 1 / -1; }
.consultation-field { min-width: 0; }

.consultation-field label,
.consultation-path-fieldset legend {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  margin-bottom: 4px;
  color: var(--consultation-ink);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.consultation-required-text,
.consultation-optional-text {
  font-size: 9px;
  font-weight: 680;
  letter-spacing: 0.05em;
}

.consultation-required-text { color: var(--consultation-accent-dark); }
.consultation-optional-text { color: var(--consultation-muted); }

body.consultation-page .consultation-control {
  width: 100%;
  min-height: 46px;
  border: 0;
  border-bottom: 1px solid var(--consultation-control-line);
  border-radius: 0;
  background: transparent;
  color: var(--consultation-ink);
  box-shadow: none;
  font: inherit;
  font-size: 1.06rem;
  font-weight: 470;
  padding: 5px 1px 12px;
}

body.consultation-page textarea.consultation-control {
  min-height: 116px;
  resize: vertical;
}

body.consultation-page .consultation-control::placeholder { color: oklch(43% 0.016 275); opacity: 1; }

body.consultation-page .consultation-control:focus,
body.consultation-page .consultation-control:focus-visible {
  border-color: var(--consultation-accent);
  box-shadow: inset 0 -1px var(--consultation-accent);
  outline: 0;
}

body.consultation-page .consultation-control[aria-invalid="true"] {
  border-color: var(--consultation-danger);
  box-shadow: inset 0 -1px var(--consultation-danger);
}

.consultation-field-error {
  margin: 7px 0 0;
  color: var(--consultation-danger);
  font-size: 13px;
  font-weight: 550;
}

.consultation-path-fieldset {
  min-width: 0;
  margin: 38px 0 0;
  padding: 0;
  border: 0;
}

.consultation-help {
  margin-bottom: 16px;
  color: var(--consultation-muted);
  font-size: 14px;
}

.consultation-path-choices {
  display: grid;
  gap: 10px;
}

.consultation-path-choices > div label {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 12px;
  min-height: 52px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid var(--consultation-line);
  border-radius: 8px;
  color: var(--consultation-body);
  cursor: pointer;
  font-size: 15px;
  font-weight: 550;
}

.consultation-path-choices input {
  width: 18px;
  height: 18px;
  accent-color: var(--consultation-accent-dark);
}

.consultation-path-choices > div:has(input:checked) label {
  border-color: var(--consultation-accent);
  background: var(--consultation-accent-soft);
  color: var(--consultation-ink);
}

.consultation-verification { margin-top: 34px; }
.consultation-connection-alert { margin-top: 32px; margin-bottom: 0; }

.consultation-verification noscript p {
  max-width: 58ch;
  margin: 12px 0 0;
  color: var(--consultation-body);
  font-size: 14px;
}

.consultation-actions {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-top: 38px;
}

.consultation-submit {
  display: inline-flex;
  min-height: 50px;
  flex: none;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 0;
  border-radius: 7px;
  background: var(--consultation-ink);
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 650;
  padding: 0 20px;
}

.consultation-submit:hover { background: var(--consultation-accent-dark); }
.consultation-submit:active { transform: scale(0.985); }
.consultation-submit:disabled { cursor: wait; opacity: 0.68; }

.consultation-actions > p {
  max-width: 32ch;
  margin: 0;
  color: var(--consultation-muted);
  font-size: 12px;
}

.consultation-footer {
  border-top: 1px solid var(--consultation-line);
  color: var(--consultation-muted);
  font-size: 13px;
}

.consultation-footer nav { display: flex; gap: 20px; }

.consultation-success-layout {
  display: grid;
  min-height: calc(100vh - 149px);
  place-items: center;
  padding-block: 72px;
}

.consultation-success { max-width: 680px; text-align: center; }

.consultation-success-mark {
  display: grid;
  width: 54px;
  height: 54px;
  margin: 0 auto 26px;
  place-items: center;
  border-radius: 50%;
  background: var(--consultation-accent-soft);
  color: var(--consultation-accent-dark);
  font-size: 24px;
  font-weight: 700;
}

.consultation-success > p:first-of-type {
  margin-bottom: 10px;
  color: var(--consultation-accent-dark);
  font-size: 14px;
  font-weight: 650;
}

.consultation-success h2 {
  margin-bottom: 20px;
  font-size: clamp(2.6rem, 6vw, 4.8rem);
  font-weight: 520;
  letter-spacing: -0.038em;
  line-height: 1;
}

.consultation-success h2 + p {
  max-width: 52ch;
  margin: 0 auto 28px;
  color: var(--consultation-body);
  font-size: 1.1rem;
}

.consultation-success-next {
  max-width: 520px;
  margin: 0 auto 24px;
  padding: 22px 24px;
  border: 1px solid var(--consultation-line);
  border-radius: 10px;
  text-align: left;
}

.consultation-success-next h3 { margin-bottom: 10px; font-size: 15px; }
.consultation-success-next ul { margin: 0; padding-left: 20px; color: var(--consultation-body); }
.consultation-success-next li + li { margin-top: 6px; }

.consultation-success > a {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  font-weight: 650;
  text-underline-offset: 4px;
}

@media (max-width: 880px) {
  .consultation-layout { display: flex; flex-direction: column; gap: 52px; }
  .consultation-context { display: contents; }
  .consultation-introduction { order: 1; }
  .consultation-form-column { order: 2; padding: clamp(30px, 6vw, 46px); }
  .consultation-assurances { order: 3; }
  .consultation-mobile-assurance {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    margin: 24px 0 0;
    padding: 16px 0 0;
    border-top: 1px solid var(--consultation-line);
    color: var(--consultation-muted);
    font-size: 13px;
    list-style: none;
  }
  .consultation-mobile-assurance li { position: relative; padding-inline-start: 12px; }
  .consultation-mobile-assurance li::before {
    position: absolute;
    top: 0.7em;
    left: 0;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--consultation-accent);
    content: "";
  }
  .consultation-context h1 { max-width: 13ch; }
  .consultation-intro { max-width: 62ch; margin-bottom: 0; }
}

@media (max-width: 560px) {
  .consultation-shell { width: min(100% - 32px, 1160px); }
  .consultation-header-inner { min-height: 66px; }
  .consultation-wordmark img { width: 146px; }
  .consultation-return { gap: 7px; font-size: 13px; }
  .consultation-return > span:first-child { font-size: 20px; }
  .consultation-return-full { display: none; }
  .consultation-return-compact { display: inline; }
  .consultation-layout { gap: 32px; padding-block: 42px 72px; }
  .consultation-context h1 { font-size: clamp(2.7rem, 14vw, 3.6rem); }
  .consultation-expectations div { grid-template-columns: 1fr; gap: 4px; }
  .consultation-form-column { border-radius: 10px; padding: 28px 18px; }
  .consultation-fields { grid-template-columns: 1fr; }
  .consultation-field-wide { grid-column: auto; }
  .consultation-actions { align-items: stretch; flex-direction: column; }
  .consultation-submit { width: 100%; }
  .consultation-actions > p { max-width: none; }
  .consultation-success-next { padding: 18px; }
  .consultation-footer-inner {
    min-height: 82px;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
  }
}

@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root),
  ::view-transition-new(root),
  ::view-transition-old(ss-public-wordmark),
  ::view-transition-new(ss-public-wordmark) { animation: none !important; }
  body.consultation-page *,
  body.consultation-page *::before,
  body.consultation-page *::after {
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
    animation-duration: 1ms !important;
  }
}
