.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

html.consult-scroll-locked {
  overflow: hidden;
  overscroll-behavior: none;
  scrollbar-gutter: stable;
}

body.consult-open {
  position: fixed;
  top: var(--consult-scroll-lock-top, 0);
  left: var(--consult-scroll-lock-left, 0);
  width: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}

@supports not (scrollbar-gutter: stable) {
  body.consult-open { padding-right: var(--consult-scrollbar-gap, 0); }
}

.consult-dialog {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #fff;
  overflow: hidden;
  z-index: 1000;
}

.consult-dialog::backdrop { background: transparent; }

.consult-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 0;
  transition: opacity 0.35s cubic-bezier(0.44, 0, 0.56, 1);
}

.consult-dialog.is-open .consult-backdrop { opacity: 1; }
.consult-backdrop.has-warning { z-index: 2; }

.consult-sheet {
  position: fixed;
  top: 8px;
  right: 8px;
  bottom: 8px;
  width: 35%;
  border-radius: 24px;
  corner-shape: superellipse(1.2);
  background: #151515;
  opacity: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  transform: translateX(400px);
  transition:
    transform 0.85s cubic-bezier(0.67, 0, 0.24, 1),
    opacity 0.85s cubic-bezier(0.67, 0, 0.24, 1);
  will-change: transform, opacity;
}

.consult-sheet::-webkit-scrollbar { display: none; }
.consult-dialog.is-open .consult-sheet { opacity: 1; transform: none; }

.consult-inner {
  position: relative;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding: 40px;
}

.consult-inner > h2 {
  max-width: 100%;
  font-size: 56px;
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1;
  text-wrap: balance;
}

.consult-mobile-close { display: none; }

.consult-content,
.consult-form-view { width: 100%; }

.consult-form-view {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.consult-tabs {
  position: relative;
  align-self: flex-start;
  display: grid;
  grid-template-columns: 106px 115px;
  height: 44px;
  padding: 4px;
  gap: 2px;
  border-radius: 444px;
  background: #212121;
}

.consult-tab-thumb {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 106px;
  height: 36px;
  border-radius: 50px;
  background: #fff;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
  transition:
    left 0.25s cubic-bezier(0.44, 0, 0.56, 1),
    width 0.25s cubic-bezier(0.44, 0, 0.56, 1);
}

.consult-tabs.is-retainer .consult-tab-thumb { left: 112px; width: 115px; }

.consult-tabs button {
  position: relative;
  z-index: 1;
  height: 36px;
  padding: 0;
  border-radius: 50px;
  color: #858585;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1;
  transition: color 0.25s cubic-bezier(0.44, 0, 0.56, 1);
}

.consult-tabs button[aria-selected="true"] { color: #111; }

.consult-form {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.consult-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.consult-plan-panel {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.consult-plan-panel[hidden] { display: none; }

.consult-group h3,
.consult-group-head a {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.3;
}

.consult-group h3 > span { color: #858585; font-size: 14px; font-weight: 400; }

.consult-group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.consult-group-head a { color: #858585; text-decoration: underline; }

.consult-personal-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 8px;
}

.consult-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 8px;
}

.consult-field--wide { grid-column: 1 / -1; }

.consult-field-label {
  color: #c2c2c2;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.consult-field-label span { color: #858585; font-weight: 400; }

.consult-input {
  display: block;
  width: 100%;
  border-radius: 16px;
  background: #212121;
  transition: background 0.4s cubic-bezier(0.12, 0.23, 0.5, 1);
}

.consult-input:focus-within { background: #383838; outline: 2px solid #fff; outline-offset: 2px; }
.consult-input.is-invalid { background: #3d2525; outline: 1px solid #b57474; }

.consult-input input,
.consult-input textarea {
  display: block;
  width: 100%;
  margin: 0;
  border: 0;
  border-radius: inherit;
  outline: 0;
  background: transparent;
  color: #c2c2c2;
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.3;
}

.consult-input input { height: 45px; padding: 0 16px; }
.consult-input textarea {
  min-height: 120px;
  padding: 16px;
  overflow-y: auto;
  resize: none;
  scrollbar-width: none;
}
.consult-input textarea::-webkit-scrollbar { display: none; }
.consult-input input::placeholder,
.consult-input textarea::placeholder { color: #858585; opacity: 1; }
.consult-input.is-invalid input,
.consult-input.is-invalid textarea,
.consult-input.is-invalid input::placeholder,
.consult-input.is-invalid textarea::placeholder { color: #b57474; }

.consult-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.consult-choices button {
  height: 46px;
  padding: 0 16px;
  border-radius: 16px;
  corner-shape: superellipse(1.5);
  background: #212121;
  color: #858585;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.3;
  transition:
    background 0.3s cubic-bezier(0.44, 0, 0.56, 1),
    color 0.3s cubic-bezier(0.44, 0, 0.56, 1);
}

@media (hover: hover) {
  .consult-choices button:hover { background: #383838; }
}

.consult-choices button.is-selected,
.consult-choices button.is-selected:hover { background: #fff; color: #111; }
.consult-group.is-invalid .consult-choices button { background: #3d2525; color: #b57474; }
.consult-group.is-invalid .consult-choices button.is-selected { background: #fff; color: #111; }
.consult-group.is-invalid .consult-choices { outline: 1px solid #b57474; outline-offset: 4px; border-radius: 16px; }

.consult-submit {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: 50px;
  padding: 0 18px;
  border-radius: 20px;
  corner-shape: superellipse(1.7);
  background: #fff;
  color: #111;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1;
  transition: opacity 0.2s cubic-bezier(0.44, 0, 0.56, 1), background 0.2s cubic-bezier(0.44, 0, 0.56, 1), color 0.2s cubic-bezier(0.44, 0, 0.56, 1);
}

.consult-submit:hover { opacity: 0.8; }
.consult-submit:active { opacity: 0.6; }
.consult-submit:disabled { opacity: 0.5; cursor: default; }
.consult-submit.is-error { background: #3d2525; color: #b57474; opacity: 1; }
.consult-submit.is-loading span { opacity: 0; }
.consult-submit.is-loading::before {
  content: "";
  position: absolute;
  width: 20px;
  height: 20px;
  border: 2px solid rgba(17, 17, 17, 0.25);
  border-top-color: #111;
  border-radius: 50%;
  animation: consult-spin 1s linear infinite;
}

@keyframes consult-spin { to { transform: rotate(360deg); } }

.consult-terms {
  color: #858585;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.3;
  text-align: center;
}

.consult-terms a { text-decoration: underline; }
.consult-status { color: #d99393; font-size: 14px; line-height: 1.3; text-align: center; }
.consult-status:empty { display: none; }
.consult-honeypot { position: absolute; left: -10000px; }

.consult-success {
  min-height: 420px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 40px;
  text-align: center;
}

.consult-success[hidden] { display: none; }
.consult-success img { width: 100px; height: 100px; object-fit: cover; }
.consult-success > div { display: flex; flex-direction: column; gap: 20px; }
.consult-success h3 { font-size: 32px; font-weight: 500; letter-spacing: -0.02em; line-height: 1.1; }
.consult-success p { color: #858585; font-size: 16px; font-weight: 500; line-height: 1.3; }
.consult-success.is-visible img,
.consult-success.is-visible > div {
  animation: consult-success-in 0.7s cubic-bezier(0.12, 0.23, 0.32, 1) both;
}
.consult-success.is-visible > div { animation-delay: 0.1s; }

@keyframes consult-success-in {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: none; }
}

.consult-warning {
  position: absolute;
  top: 50%;
  left: calc(32.5% + (var(--consult-scrollbar-gap, 0px) * 0.325));
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 354px;
  height: 260px;
  padding: 20px;
  border-radius: 35.68px;
  background: #151515;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.5);
}

@supports (corner-shape: superellipse(1.2)) {
  .consult-warning {
    border-radius: 40px;
    corner-shape: superellipse(1.2);
  }
}

.consult-warning:not(.is-visible) { pointer-events: none; }

.consult-warning.is-visible {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
  animation: consult-warning-in 1s cubic-bezier(0.12, 0.23, 0.5, 1);
}

.consult-warning.is-exiting {
  animation: consult-warning-out 1s cubic-bezier(0.12, 0.23, 0.5, 1) both;
}

@keyframes consult-warning-in {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(0.5); }
  65% { opacity: 1; transform: translate(-50%, -50%) scale(1.04); }
  100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@keyframes consult-warning-out {
  from { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  to { opacity: 0; transform: translate(-50%, -50%) scale(0.5); }
}

.consult-warning-title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 314px;
  height: 172px;
  flex: 0 0 172px;
}

.consult-warning h2 {
  width: 299px;
  font-size: 32px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.1;
  text-align: center;
}

.consult-warning-actions {
  display: flex;
  align-items: center;
  width: 314px;
  height: 48px;
  gap: 20px;
}

.consult-warning-actions button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: 48px;
  padding: 0 18px;
  border-radius: 17.84px;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.3;
  white-space: nowrap;
  overflow: clip;
  transition: background 0.2s ease;
}

.consult-warning-actions svg {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  fill: currentColor;
  transition: transform 0.35s cubic-bezier(0.44, 0, 0.56, 1);
}

@supports (corner-shape: superellipse(1.2)) {
  .consult-warning-actions button {
    border-radius: 20px;
    corner-shape: superellipse(1.2);
  }
}

.consult-mobile-close svg {
  width: 12px;
  height: 12px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.35s cubic-bezier(0.44, 0, 0.56, 1);
}

@media (hover: hover) {
  .consult-warning-actions button:hover { background: rgba(255, 255, 255, 0.2); }
  .consult-warning-actions button:hover span { animation: consult-button-blur 0.35s ease-out; }
  .consult-warning-actions button:first-child:hover svg { transform: rotate(90deg); }
  .consult-warning-actions button:last-child:hover svg { transform: rotate(45deg); }
}

@keyframes consult-button-blur {
  0%, 100% { filter: blur(0); }
  50% { filter: blur(4px); }
}

.consult-tabs button:focus-visible,
.consult-choices button:focus-visible,
.consult-submit:focus-visible,
.consult-warning-actions button:focus-visible,
.consult-mobile-close:focus-visible,
.consult-group-head a:focus-visible,
.consult-terms a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

@media (max-width: 809px) {
  .consult-sheet {
    left: 8px;
    width: auto;
  }

  .consult-inner { padding: 20px; }
  .consult-inner > h2 { max-width: calc(100% - 80px); font-size: 42px; }
  .consult-personal-row { grid-template-columns: 1fr; }
  .consult-field--wide { grid-column: auto; }

  .consult-mobile-close {
    position: absolute;
    top: 20px;
    right: 20px;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 16px;
    corner-shape: superellipse(1.5);
    background: #fff;
    color: #111;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0);
    transition: transform 0.3s cubic-bezier(0.44, 0, 0.56, 1), box-shadow 0.3s ease;
  }

  .consult-mobile-close svg { width: 10px; height: 10px; }

  @media (hover: hover) {
    .consult-mobile-close:hover { transform: scale(0.8); box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1); }
    .consult-mobile-close:hover svg { transform: rotate(90deg); }
  }

  .consult-warning {
    left: 50%;
    display: flex;
    width: 354px;
    max-width: calc(100% - 20px);
  }
}

@media (max-width: 359px) {
  .consult-warning { width: calc(100% - 20px); }
  .consult-warning-title,
  .consult-warning-actions { width: 100%; }
  .consult-warning-actions { gap: 10px; }
  .consult-warning-actions button { padding-inline: 12px; font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .consult-backdrop,
  .consult-sheet,
  .consult-tab-thumb,
  .consult-tabs button,
  .consult-input,
  .consult-choices button,
  .consult-submit,
  .consult-warning,
  .consult-warning-actions button,
  .consult-warning-actions svg,
  .consult-mobile-close,
  .consult-mobile-close svg { transition: none; }
  .consult-warning.is-visible,
  .consult-warning.is-exiting,
  .consult-success.is-visible img,
  .consult-success.is-visible > div,
  .consult-warning-actions button:hover span { animation: none; }
}
