.intake-page [hidden] {
  display: none !important;
}
.package-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 15px 0; }
.package-choices .check-card { margin: 0; }
.package-fieldset { margin-bottom: 30px; padding: 20px; border: 1px solid var(--line); border-radius: 17px; background: var(--paper); }
.chatbot-interest { margin: 18px 0 28px; }
@media (max-width: 620px) { .package-choices { grid-template-columns: 1fr; } }

.intake-page {
  --form-blue: #276978;
  --form-blue-soft: #e9f5f6;
}

.intake-main {
  min-height: 70vh;
  padding-bottom: 110px;
}

.intake-hero {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  padding: 82px 0 68px;
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(300px, .7fr);
  gap: clamp(42px, 7vw, 90px);
  align-items: center;
}

.intake-hero h1 {
  max-width: 800px;
  margin: 0;
  font: 500 clamp(48px, 6vw, 78px)/.99 Georgia, "Times New Roman", serif;
  letter-spacing: -3.5px;
}

.intake-hero h1 em {
  color: var(--orange);
  font-weight: inherit;
}

.intake-lede {
  max-width: 720px;
  margin: 26px 0 0;
  color: var(--muted);
  font-size: clamp(17px, 1.5vw, 20px);
}

.start-card {
  padding: 30px;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 25px;
  background: var(--paper);
  box-shadow: var(--shadow);
}

.start-card::after {
  content: "";
  width: 120px;
  aspect-ratio: 1;
  position: absolute;
  right: -48px;
  top: -48px;
  border-radius: 50%;
  background: rgba(245, 189, 50, .22);
}

.start-card-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #fff;
  background: var(--orange);
  font-size: 20px;
}

.start-card h2 {
  margin: 21px 0 8px;
  font: 600 25px Georgia, serif;
}

.start-card p {
  margin: 11px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.start-card a {
  color: var(--orange-dark);
  font-weight: 800;
}

.intake-layout {
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}

.form-guide {
  padding: 25px;
  position: sticky;
  top: 94px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: color-mix(in srgb, var(--paper) 92%, transparent);
  box-shadow: 0 15px 45px rgba(67, 42, 20, .07);
  backdrop-filter: blur(14px);
}

.guide-kicker,
.section-kicker {
  margin: 0;
  color: var(--orange-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}

.progress-track {
  height: 8px;
  margin-top: 13px;
  overflow: hidden;
  border-radius: 20px;
  background: var(--line);
}

.progress-track span {
  width: 0;
  height: 100%;
  display: block;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--orange), var(--yellow));
  transition: width .35s ease;
}

.progress-copy {
  margin: 10px 0 20px;
  color: var(--muted);
  font-size: 11px;
}

.progress-copy strong {
  color: var(--ink);
}

.form-guide ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.form-guide li {
  border-top: 1px solid var(--line);
}

.form-guide a {
  padding: 10px 0;
  display: block;
  color: var(--muted);
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
}

.form-guide a:hover,
.form-guide a:focus-visible {
  color: var(--orange-dark);
}

.save-state {
  min-height: 35px;
  margin: 20px 0 8px;
  color: var(--green);
  font-size: 11px;
  font-weight: 700;
}

.text-button {
  padding: 0;
  border: 0;
  color: var(--muted);
  background: transparent;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
}

.text-button:hover {
  color: var(--orange-dark);
}

.intake-form {
  display: grid;
  gap: 22px;
}

.form-section,
.submit-section,
.success-panel {
  padding: clamp(27px, 5vw, 48px);
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: var(--paper);
  box-shadow: 0 16px 55px rgba(67, 42, 20, .07);
}

.form-section {
  scroll-margin-top: 95px;
}

.section-number {
  position: absolute;
  top: 27px;
  right: 34px;
  color: color-mix(in srgb, var(--orange) 20%, transparent);
  font: 700 54px/1 Georgia, serif;
}

.form-section-heading {
  max-width: 650px;
  margin-bottom: 30px;
  padding-right: 45px;
}

.form-section-heading h2,
.submit-section h2,
.success-panel h2 {
  margin: 6px 0 10px;
  font: 500 clamp(31px, 4vw, 43px)/1.05 Georgia, serif;
  letter-spacing: -1.4px;
}

.form-section-heading p:last-child,
.submit-section > div > p:last-child,
.success-panel > p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

.field-grid {
  display: grid;
  gap: 15px;
}

.two-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.field-grid + .field-grid,
.field-grid + .field,
.field + .field,
.choice-fieldset + .field,
.field + .optional-group,
.feature-options + .conditional-card,
.conditional-card + .field {
  margin-top: 16px;
}

.field {
  display: block;
  color: var(--ink);
  font-size: 12px;
  font-weight: 850;
}

.field > span {
  display: block;
}

.field strong,
.consent-line strong,
.choice-fieldset legend strong {
  margin-left: 5px;
  color: var(--orange-dark);
  font-size: 9px;
  letter-spacing: .7px;
  text-transform: uppercase;
}

.field em,
.feature-option em {
  color: var(--muted);
  font-size: 10px;
  font-style: normal;
  font-weight: 650;
}

.field small,
.fieldset-help {
  margin-top: 3px;
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.45;
}

.field input,
.field textarea,
.field select {
  width: 100%;
  margin-top: 8px;
  padding: 13px 14px;
  border: 1px solid #d9cbbd;
  border-radius: 11px;
  color: var(--ink);
  background: var(--paper);
  outline: none;
  resize: vertical;
}

.field select {
  min-height: 48px;
  resize: none;
}

.field input:focus,
.field textarea:focus,
.field select:focus {
  border-color: var(--orange);
  box-shadow: 0 0 0 3px rgba(243, 106, 47, .14);
}

.field input::placeholder,
.field textarea::placeholder {
  color: color-mix(in srgb, var(--muted) 72%, transparent);
}

.field input[aria-invalid="true"],
.field textarea[aria-invalid="true"] {
  border-color: #b72a23;
}

.optional-group,
.more-controls {
  border: 1px dashed var(--line);
  border-radius: 15px;
  background: color-mix(in srgb, var(--cream) 55%, var(--paper));
}

.optional-group summary,
.more-controls summary {
  padding: 16px 45px 16px 17px;
  position: relative;
  cursor: pointer;
  list-style: none;
  font-size: 13px;
  font-weight: 850;
}

.optional-group summary::-webkit-details-marker,
.more-controls summary::-webkit-details-marker {
  display: none;
}

.optional-group summary::after,
.more-controls summary::after {
  content: "+";
  position: absolute;
  right: 18px;
  top: 10px;
  color: var(--orange);
  font-size: 23px;
  font-weight: 500;
  transition: transform .2s ease;
}

.optional-group[open] summary::after,
.more-controls[open] summary::after {
  transform: rotate(45deg);
}

.optional-group summary span,
.more-controls summary span {
  margin-left: 7px;
  color: var(--muted);
  font-size: 9px;
  letter-spacing: .7px;
  text-transform: uppercase;
}

.optional-group > p {
  margin: -3px 17px 16px;
  color: var(--muted);
  font-size: 11px;
}

.optional-group .field-grid,
.more-controls .check-grid {
  padding: 0 17px 18px;
}

.choice-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.choice-fieldset + .choice-fieldset {
  margin-top: 29px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}

.choice-fieldset legend {
  margin-bottom: 12px;
  padding: 0;
  font-size: 13px;
  font-weight: 850;
}

.choice-grid,
.check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}

.choice-card,
.check-card,
.feature-option,
.check-line,
.consent-line {
  position: relative;
  cursor: pointer;
}

.choice-card {
  min-height: 165px;
  padding: 15px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper);
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.choice-card:hover,
.check-card:hover {
  border-color: rgba(243, 106, 47, .55);
  transform: translateY(-2px);
}

.choice-card:has(input:checked),
.check-card:has(input:checked) {
  border-color: var(--orange);
  box-shadow: 0 0 0 2px rgba(243, 106, 47, .12);
}

.choice-card input {
  position: absolute;
  top: 12px;
  right: 12px;
}

.style-swatch {
  height: 61px;
  margin-bottom: 13px;
  display: block;
  border-radius: 10px;
  border: 1px solid rgba(33, 28, 24, .08);
}

.style-swatch.elegant { background: linear-gradient(125deg, #4c2225 0 44%, #f2e7d3 45% 72%, #b59660 73%); }
.style-swatch.playful { background: radial-gradient(circle at 75% 28%, #f5bd32 0 16%, transparent 17%), linear-gradient(135deg, #ed8a7e 0 50%, #80b7a6 51%); }
.style-swatch.minimal { background: linear-gradient(135deg, #f6f3ed 0 64%, #242424 65% 75%, #d6d1ca 76%); }
.style-swatch.traditional { background: radial-gradient(circle at 30% 50%, #dca83d 0 13%, transparent 14%), linear-gradient(120deg, #752d2a 0 52%, #244d45 53%); }

.choice-card strong,
.check-card strong,
.feature-option strong {
  display: block;
  font-size: 13px;
}

.choice-card small,
.check-card small,
.feature-option small {
  margin-top: 4px;
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.45;
}

.feature-options {
  display: grid;
  gap: 10px;
}

.included-features {
  margin-bottom: 18px;
}

.included-feature {
  cursor: default;
  border-color: color-mix(in srgb, var(--orange) 38%, var(--line));
  background: color-mix(in srgb, var(--orange) 7%, var(--paper));
}

.included-mark {
  width: 21px;
  height: 21px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--orange);
  font-size: 12px;
  font-weight: 900;
}

.add-on-note {
  margin: 0 0 12px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  color: var(--muted);
  background: var(--paper);
  font-size: 11px;
  line-height: 1.65;
}

.add-on-note strong {
  color: var(--ink);
}

.optional-features,
.request-field {
  margin-top: 12px;
}

.feature-option {
  padding: 17px;
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: color-mix(in srgb, var(--cream) 42%, var(--paper));
}

.feature-option input,
.check-card input,
.check-line input,
.consent-line input {
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  accent-color: var(--orange);
}

.conditional-card {
  border: 1px solid var(--line);
  border-radius: 15px;
  overflow: hidden;
}

.conditional-card .feature-option {
  border: 0;
  border-radius: 0;
}

.conditional-content {
  padding: 17px;
  border-top: 1px solid var(--line);
  background: var(--paper);
}

.friendly-note,
.admin-disabled-note {
  margin-bottom: 20px;
  padding: 15px 17px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 11px;
  border-radius: 13px;
  color: var(--ink);
  background: var(--form-blue-soft);
}

.friendly-note p,
.admin-disabled-note p {
  margin: 0;
  font-size: 11px;
}

.check-line,
.consent-line {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 12px;
  font-weight: 700;
}

#admin-email-field {
  margin: 16px 0 28px;
}

.check-card {
  min-height: 92px;
  padding: 15px;
  display: grid;
  grid-template-columns: 21px 1fr;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--paper);
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.conditional-inline {
  max-width: 260px;
  margin-top: 13px;
}

.more-controls {
  margin-top: 16px;
}

.compact-check-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.compact-check-grid .check-line {
  padding: 7px 0;
  border-bottom: 1px solid var(--line);
}

.submit-section {
  color: #fff;
  background: #27221e;
}

.submit-section .section-kicker {
  color: #ffbd8c;
}

.submit-section > div > p:last-child,
.privacy-copy {
  color: #d2c7bf;
}

.consent-line {
  max-width: 720px;
  margin: 27px 0 20px;
  color: #f7eee7;
  font-weight: 600;
}

.consent-line strong {
  color: #ffbd8c;
}

.turnstile-shell {
  margin-bottom: 20px;
}

.turnstile-shell p {
  margin: 0 0 8px;
  color: #d2c7bf;
  font-size: 11px;
}

.submit-button {
  min-width: min(100%, 280px);
}

.submission-status {
  min-height: 22px;
  margin: 18px 0 0;
  color: #ffd0b7;
  font-size: 12px;
  font-weight: 750;
}

.submission-status.is-error {
  color: #ffb2aa;
}

.privacy-copy {
  margin: 4px 0 0;
  font-size: 10px;
}

.success-panel {
  grid-column: 2;
  padding: clamp(42px, 7vw, 74px);
  text-align: center;
}

.success-mark {
  width: 62px;
  height: 62px;
  margin: 0 auto 25px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--green);
  font-size: 27px;
  box-shadow: 0 0 0 9px color-mix(in srgb, var(--green) 14%, transparent);
}

.success-panel .section-kicker {
  text-align: center;
}

.success-panel > p {
  max-width: 570px;
  margin: 0 auto 22px;
}

.success-panel .success-reference {
  color: var(--ink);
  font-size: 11px;
  font-weight: 750;
}

.honeypot {
  width: 1px !important;
  height: 1px !important;
  position: absolute !important;
  left: -9999px !important;
  opacity: 0 !important;
}

:root[data-theme="dark"] .start-card,
:root[data-theme="dark"] .form-guide,
:root[data-theme="dark"] .form-section,
:root[data-theme="dark"] .success-panel {
  box-shadow: 0 18px 55px rgba(0, 0, 0, .24);
}

:root[data-theme="dark"] .field input,
:root[data-theme="dark"] .field textarea,
:root[data-theme="dark"] .field select {
  border-color: #5a4a40;
  background: #171311;
}

:root[data-theme="dark"] .friendly-note,
:root[data-theme="dark"] .admin-disabled-note {
  background: #213b40;
}

:root[data-theme="dark"] .submit-section {
  background: #121f1b;
}

@media (max-width: 940px) {
  .intake-hero {
    grid-template-columns: 1fr;
  }

  .start-card {
    max-width: 680px;
  }

  .intake-layout {
    grid-template-columns: 1fr;
  }

  .form-guide {
    position: static;
  }

  .form-guide ol {
    display: none;
  }

  .progress-copy {
    margin-bottom: 0;
  }

  .save-state,
  .text-button {
    display: inline-block;
  }

  .save-state {
    margin: 14px 14px 0 0;
  }

  .success-panel {
    grid-column: 1;
  }
}

@media (max-width: 700px) {
  .intake-main {
    padding-bottom: 75px;
  }

  .intake-hero,
  .intake-layout {
    width: min(100% - 32px, 1180px);
  }

  .intake-hero {
    padding: 52px 0 45px;
    gap: 28px;
  }

  .intake-hero h1 {
    font-size: 47px;
    letter-spacing: -2.2px;
  }

  .start-card {
    padding: 24px;
  }

  .form-section,
  .submit-section {
    padding: 27px 20px;
    border-radius: 22px;
  }

  .section-number {
    top: 22px;
    right: 20px;
    font-size: 42px;
  }

  .form-section-heading {
    padding-right: 35px;
  }

  .two-columns,
  .choice-grid,
  .check-grid,
  .compact-check-grid {
    grid-template-columns: 1fr;
  }

  .choice-card {
    min-height: 140px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .progress-track span,
  .choice-card,
  .check-card {
    transition: none;
  }
}
