/* ==========================================================================
   HD Form Styles — Base + 6 visual themes
   SOLE source of truth for all form field styling.
   Modal shell (overlay, dialog, open/close) remains in modals.css.
   BEM naming: .hd-form, .hd-field, .hd-field__input, .hd-step, .hd-progress
   ========================================================================== */


/* ════════════════════════════════════════════════════════════════════════
   BASE — structural defaults all themes inherit (BEM names)
   ════════════════════════════════════════════════════════════════════ */

/* ── Form shell (dialog container in modals, card in embeds) ───────── */
.hd-form {
  display: flex; flex-direction: column;
  background: var(--color-surface); border-radius: var(--radius-xl); overflow: hidden;
  max-width: 750px; width: 100%;
  box-shadow: var(--shadow-2xl);
  position: relative;
  max-height: 98vh; max-height: 98dvh;
}
/* Inner <form> fills the scrollable body; themes (accordion/ledger) use flex + order on children */
.hd-form__form {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

/* ── Form header ───────────────────────────────────────────────────── */
.hd-form__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-6) var(--space-6) var(--space-4);
  position: relative;
}
.hd-form__header::after {
  content: ''; position: absolute; bottom: 0; left: var(--space-6); right: var(--space-6);
  height: 1px; background: var(--color-border-light);
}
.hd-form__header-content { flex: 1; min-width: 0; }
.hd-form__header-actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-shrink: 0;
}
.hd-form__title {
  font-family: var(--font-heading); font-size: var(--fs-2xl); font-weight: var(--fw-medium);
  color: var(--color-text); letter-spacing: var(--ls-tight); line-height: var(--lh-snug);
}
.hd-form__subtitle {
  font-size: var(--fs-sm); color: var(--color-text-secondary);
  margin-top: var(--space-1); line-height: var(--lh-relaxed); max-width: 380px;
}
.hd-form__step-counter {
  font-family: var(--font-heading); font-size: var(--fs-xs); font-weight: var(--fw-bold);
  color: var(--color-text-muted); letter-spacing: 0.02em;
  white-space: nowrap;
  line-height: 1.2;
}
.hd-form__close {
  flex-shrink: 0; width: 36px; height: 36px; border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  background: transparent; border: none; cursor: pointer; color: var(--color-text-muted);
  transition: all 150ms var(--ease-out);
}
.hd-form__close:hover { background: var(--color-charcoal-5); color: var(--color-text); }
.hd-form__close svg { width: 20px; height: 20px; }

/* ── Form body (scrollable) ────────────────────────────────────────── */
.hd-form__body {
  flex: 1; overflow-y: auto; padding: var(--space-5) var(--space-6) var(--space-6);
  -webkit-overflow-scrolling: touch;
}

/* ── Form footer (optional) ────────────────────────────────────────── */
.hd-form__footer {
  padding: var(--space-3) var(--space-6); border-top: 1px solid var(--color-border-light);
  text-align: center; font-size: var(--fs-sm); color: var(--color-text-muted);
  background: var(--color-bg);
}
.hd-form__footer a { color: var(--color-signature); }

/* ── Loading state ─────────────────────────────────────────────────── */
.hd-form__loading { display: flex; flex-direction: column; align-items: center; padding: var(--space-10) var(--space-6); gap: var(--space-3); }
.hd-form__loading-spinner {
  width: 32px; height: 32px; border: 3px solid var(--color-border-light);
  border-top-color: var(--color-signature); border-radius: 50%;
  animation: hd-spin 800ms linear infinite;
}
@keyframes hd-spin { to { transform: rotate(360deg); } }
.hd-form__loading-text { font-size: var(--fs-sm); color: var(--color-text-muted); }
.hd-form--loading .hd-form__header { display: none; }

/* ── Thank-you state ───────────────────────────────────────────────── */
.hd-thankyou { padding: var(--space-8) var(--space-6); position: relative; }
.hd-thankyou__header { display: flex; align-items: center; gap: var(--space-4); margin-bottom: var(--space-5); }
.hd-thankyou__icon {
  width: 48px; height: 48px; border-radius: 50%; flex-shrink: 0;
  background: linear-gradient(135deg, rgba(61,139,95,0.1), rgba(61,139,95,0.05));
  border: 1.5px solid rgba(61,139,95,0.15);
  display: flex; align-items: center; justify-content: center;
}
.hd-thankyou__icon svg { width: 24px; height: 24px; color: var(--color-success); stroke-width: 2.5; }
.hd-thankyou__title { font-family: var(--font-heading); font-size: var(--fs-xl); font-weight: var(--fw-semibold); color: var(--color-text); }
.hd-thankyou__redirect-note { font-size: var(--fs-xs); color: var(--color-text-muted); margin-top: 2px; }
.hd-thankyou__body { font-size: var(--fs-sm); color: var(--color-text-secondary); line-height: var(--lh-relaxed); }
.hd-thankyou__body p { margin-bottom: var(--space-3); }
.hd-thankyou__body p:last-child { margin-bottom: 0; }
.hd-thankyou__body strong { color: var(--color-text); font-weight: var(--fw-semibold); }
.hd-thankyou__body a { color: var(--color-signature); text-decoration: underline; text-decoration-color: var(--color-signature-20); text-underline-offset: 2px; }
.hd-thankyou__body a:hover { text-decoration-color: var(--color-signature); }
.hd-thankyou__body h4 { font-family: var(--font-heading); font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--color-text); margin: var(--space-4) 0 var(--space-2); }
.hd-thankyou__body ul, .hd-thankyou__body ol { margin: 0 0 var(--space-3) var(--space-5); padding: 0; }
.hd-thankyou__body li { margin-bottom: 4px; line-height: var(--lh-normal); }
.hd-thankyou__redirect-bar { margin-top: var(--space-4); height: 3px; border-radius: 2px; background: var(--color-bg-alt); overflow: hidden; }
.hd-thankyou__redirect-bar span { display: block; height: 100%; width: 0; background: var(--color-signature); border-radius: 2px; animation: hd-ty-fill 4s ease forwards; }
@keyframes hd-ty-fill { to { width: 100%; } }

/* ── Responsive: narrow viewports (centered in .modal-overlay, not bottom-sheet) ── */
@media (max-width: 540px) {
  .hd-form {
    max-width: min(560px, 100%);
    max-height: min(96vh, calc(100vh - var(--space-4)));
    max-height: min(96dvh, calc(100dvh - var(--space-4)));
    border-radius: var(--radius-xl);
  }
  .hd-form__header { padding: var(--space-5) var(--space-5) var(--space-4); }
  .hd-form__body { padding: var(--space-5); }
  .hd-form__title { font-size: var(--fs-xl); }
}

/* ── Field wrapper ─────────────────────────────────────────────────── */
.hd-field { margin-bottom: var(--space-5); }
.hd-field:last-child { margin-bottom: 0; }
.hd-field--hidden { display: none !important; }
.hd-field--conditional { transition: opacity 250ms var(--ease-out), max-height 250ms var(--ease-out); }

/* ── Labels ────────────────────────────────────────────────────────── */
.hd-field__label {
  display: block; font-size: var(--fs-sm); font-weight: var(--fw-semibold);
  color: var(--color-text); margin-bottom: var(--space-2); letter-spacing: 0.01em;
}
.hd-field__req { color: var(--color-signature); font-weight: var(--fw-regular); }

/* ── Subtitle + Hint ───────────────────────────────────────────────── */
.hd-field__subtitle { font-size: var(--fs-xs); color: var(--color-text-muted); margin-bottom: var(--space-2); line-height: var(--lh-relaxed); }
.hd-field__hint { font-size: var(--fs-xs); color: var(--color-text-muted); margin-top: var(--space-1); line-height: var(--lh-relaxed); }
/* Choice text wrapper — keeps label text as one flex item so gap only fires between
the indicator (radio/check span) and text, never between inline markup spans */
.hd-choice-text { flex: 1; min-width: 0; }
/* Inline markup rendered by renderInlineMarkup() in hd-form-build.js */
.hd-u { text-decoration: underline; color: var(--color-signature); padding: 0 2px;}
.hd-form strong { color: var(--color-signature); font-weight: var(--fw-bold); padding: 0 2px;}
.hd-form em { color: var(--color-signature-light); font-style: italic; padding: 0 2px;}

/* ── Inputs ────────────────────────────────────────────────────────── */
.hd-field__input {
  display: block; width: 100%; padding: 10px 14px;
  font-family: var(--font-body); font-size: var(--fs-base); font-weight: var(--fw-regular);
  color: var(--color-text); background: var(--color-surface);
  border: 1.5px solid var(--color-border); border-radius: var(--radius-md);
  outline: none; -webkit-appearance: none; appearance: none;
  transition: border-color 200ms var(--ease-out), box-shadow 200ms var(--ease-out), background-color 200ms var(--ease-out);
}
.hd-field__input::placeholder { color: var(--color-text-muted); opacity: 0.7; }
.hd-field__input:hover { border-color: var(--color-warm-taupe); }
.hd-field__input:focus { border-color: var(--color-signature); box-shadow: 0 0 0 3px var(--color-signature-10); }
textarea.hd-field__input { min-height: 80px; resize: vertical; line-height: var(--lh-relaxed); }
select.hd-field__input {
  padding-right: 40px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237A7574' stroke-width='2' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 16px;
}

/* PlaceAutocompleteElement — host replaces <input class="hd-field__input">; strip Maps default blue ring */
gmp-place-autocomplete.hd-field__input {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 0;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  outline: none;
  box-shadow: none;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color 200ms var(--ease-out), box-shadow 200ms var(--ease-out), background-color 200ms var(--ease-out);
}
gmp-place-autocomplete.hd-field__input:hover {
  border-color: var(--color-warm-taupe);
}
gmp-place-autocomplete.hd-field__input:focus-within {
  outline: none;
  border-color: var(--color-signature);
  box-shadow: 0 0 0 3px var(--color-signature-10);
}
gmp-place-autocomplete.hd-field__input::part(input) {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent;
  width: 100%;
  box-sizing: border-box;
  padding: 10px 14px;
  font-family: var(--font-body);
  font-size: var(--fs-base);
  font-weight: var(--fw-regular);
  color: var(--color-text);
}
gmp-place-autocomplete.hd-field__input::part(input):focus {
  outline: none !important;
}

/* ── Error states ──────────────────────────────────────────────────── */
.hd-field--error .hd-field__input { border-color: var(--color-error); box-shadow: 0 0 0 3px rgba(181, 66, 58, 0.08); }
.hd-field--error gmp-place-autocomplete.hd-field__input {
  border-color: var(--color-error);
  box-shadow: 0 0 0 3px rgba(181, 66, 58, 0.08);
}
.hd-field__error { font-size: var(--fs-xs); color: var(--color-error); margin-top: var(--space-1); display: none; }
.hd-field--error .hd-field__error { display: block; }

/* ── Choices (radio / checkbox) ────────────────────────────────────── */
.hd-field__choices { display: flex; flex-direction: column; gap: 8px; margin-top: var(--space-2); }
.hd-field__choice {
  display: flex; align-items: center; gap: var(--space-3); padding: 10px 14px;
  background: var(--color-surface); border: 1.5px solid var(--color-border-light); border-radius: var(--radius-md);
  cursor: pointer; font-size: var(--fs-sm); font-weight: var(--fw-medium); color: var(--color-text);
  transition: border-color 200ms var(--ease-out), background-color 200ms var(--ease-out), box-shadow 200ms var(--ease-out);
  user-select: none;
}
.hd-field__choice:hover { border-color: var(--color-warm-taupe); background: var(--color-bg); }
.hd-field__choice:has(input:checked) { border-color: var(--color-signature); background: var(--color-signature-5); box-shadow: 0 0 0 1px var(--color-signature); }
/* Radio indicator */
.hd-field__radio {
  width: 16px; height: 16px; border: 2px solid var(--color-border); border-radius: 50%;
  flex-shrink: 0; position: relative; transition: all 200ms var(--ease-out);
}
.hd-field__choice:has(input:checked) .hd-field__radio { border-color: var(--color-signature); background: var(--color-signature); }
.hd-field__choice:has(input:checked) .hd-field__radio::after {
  content: ''; position: absolute; top: 50%; left: 50%; width: 6px; height: 6px;
  background: #fff; border-radius: 50%; transform: translate(-50%, -50%);
}
/* Checkbox indicator */
.hd-field__check {
  width: 16px; height: 16px; border: 2px solid var(--color-border); border-radius: 3px;
  flex-shrink: 0; position: relative; transition: all 200ms var(--ease-out);
}
.hd-field__choice:has(input:checked) .hd-field__check { border-color: var(--color-signature); background: var(--color-signature); }
.hd-field__choice:has(input:checked) .hd-field__check::after {
  content: ''; position: absolute; top: 1px; left: 4px; width: 5px; height: 8px;
  border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
/* Hide native inputs in choices */
.hd-field__choice input[type="radio"],
.hd-field__choice input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; }

/* ── Consent / opt-in (checkbox + optional policy link in modal) ───── */
.hd-field--consent { margin-bottom: var(--space-5); }
.hd-field__consent-row {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
}
.hd-field--consent .hd-field__consent-row input[type="checkbox"] {
  width: 1.125rem;
  height: 1.125rem;
  margin-top: 0.25rem;
  flex-shrink: 0;
  accent-color: var(--color-signature);
  cursor: pointer;
}
.hd-field__consent-main {
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  color: var(--color-text);
  line-height: 1.6rem;
  cursor: pointer;
}
.hd-field__consent-link-row {
  font-size: var(--fs-xs);
  margin: var(--space-1) 0 0;
  padding-left: calc(1.125rem + var(--space-3));
}
.hd-consent__link-wrap {
  display: inline;
  
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

/* ── Consent info icon + tooltip ──────────────────────────────────────── */
.hd-consent__info {
  position: relative;
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  padding-top: 0.3rem;
  padding-right: .65rem;
}
.hd-consent__info-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  padding: 0;
  border: none;
  background: none;
  color: var(--color-text-muted);
  cursor: pointer;
  border-radius: var(--radius-full);
  transition: color var(--transition-fast);
}
.hd-consent__info-btn:hover,
.hd-consent__info-btn:focus-visible { color: var(--color-signature); outline: none; }
.hd-consent__info-btn svg { width: 0.875rem; height: 0.875rem; }
.hd-consent__tooltip {
  position: absolute;
  bottom: calc(100% + 0.5rem);
  right: 0;
  left: auto;
  width: max-content;
  min-width: 160px;
  max-width: 260px;
  background: var(--color-charcoal);
  color: #fff;
  font-size: var(--fs-xs);
  font-weight: var(--fw-regular);
  font-style: normal;
  line-height: var(--lh-relaxed);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  white-space: normal;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-fast), visibility var(--transition-fast);
  z-index: var(--z-dropdown);
  box-shadow: var(--shadow-lg);
}
.hd-consent__tooltip::after {
  content: '';
  position: absolute;
  top: 100%;
  right: 0.3rem;
  left: auto;
  border: 5px solid transparent;
  border-top-color: var(--color-charcoal);
}
.hd-consent__info:hover .hd-consent__tooltip,
.hd-consent__info:focus-within .hd-consent__tooltip {
  opacity: 1;
  visibility: visible;
}
.hd-consent__link {
  display: inline;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  font-size: var(--fs-xs);
  color: var(--color-signature);
  text-decoration: underline;
  cursor: pointer;
}
.hd-consent__link:hover { color: var(--color-text); }

/* ── Consent Modal ─────────────────────────────────────────────────── */

.hd-consent-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 999999;
  align-items: center;
  justify-content: center;
  padding: var(--space-4);
  box-sizing: border-box;
}
.hd-consent-modal.is-open {
  display: flex;
  animation: hd-modal-backdrop-in 220ms ease forwards;
}
@keyframes hd-modal-backdrop-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.hd-consent-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 12, 10, 0.62);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}
.hd-consent-modal__dialog {
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(800px, 100%);
  max-height: min(88vh, 860px);
  background: var(--color-surface);
  border-radius: var(--radius-2xl);
  box-shadow: 0 32px 64px rgba(15, 12, 10, 0.22), 0 0 0 1px rgba(15, 12, 10, 0.06);
  z-index: 1;
  animation: hd-modal-dialog-in 320ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
  overflow: hidden;
}
@keyframes hd-modal-dialog-in {
  from { opacity: 0; transform: translateY(12px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Signature orange accent bar at top of dialog */
.hd-consent-modal__dialog::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--color-signature) 0%, var(--color-signature-light) 100%);
  border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
  z-index: 1;
}
.hd-consent-modal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-5) var(--space-6);
  border-bottom: 1px solid var(--color-border-light);
  flex-shrink: 0;
}
.hd-consent-modal__title {
  font-family: var(--font-heading);
  font-size: var(--fs-base);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-tight);
  margin: 0;
  color: var(--color-text);
}
.hd-consent-modal__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--color-border-light);
  background: transparent;
  font-size: 1.125rem;
  line-height: 1;
  cursor: pointer;
  color: var(--color-text-muted);
  border-radius: 50%;
  flex-shrink: 0;
  transition: border-color 150ms ease, color 150ms ease, background 150ms ease;
}
.hd-consent-modal__close:hover {
  border-color: var(--color-border);
  color: var(--color-text);
  background: var(--color-bg-alt);
}
.hd-consent-modal__content {
  flex: 1;
  overflow-y: auto;
  padding: var(--space-8) var(--space-8) var(--space-10);
  background: var(--color-surface);
  overscroll-behavior: contain;
}
.hd-consent-modal__content::-webkit-scrollbar { width: 5px; }
.hd-consent-modal__content::-webkit-scrollbar-track { background: transparent; }
.hd-consent-modal__content::-webkit-scrollbar-thumb {
  background: var(--color-border);
  border-radius: 999px;
}
.hd-consent-modal__content::-webkit-scrollbar-thumb:hover { background: var(--color-warm-taupe); }

body.hd-consent-modal-open { overflow: hidden; }

/* ── Section field ─────────────────────────────────────────────────── */
.hd-field--section {
  position: relative; padding-top: var(--space-3); margin-top: var(--space-1); margin-bottom: var(--space-4);
  border-top: 1px solid var(--color-border-light);
}
.hd-field--section::before {
  content: ''; position: absolute; top: -1px; left: 0; width: 20px; height: 2px; background: var(--color-signature);
}
/* First section at top of step — no divider */
.hd-form-steps > .hd-field--section:first-child { border-top: none; padding-top: 0; margin-top: 0; }
.hd-form-steps > .hd-field--section:first-child::before { display: none; }
.hd-step > .hd-field--section:first-child { border-top: none; padding-top: 0; margin-top: 0; }
.hd-step > .hd-field--section:first-child::before { display: none; }

/* Multi-pane steps (showcase parity) */
.hd-step--hidden { display: none !important; }

/* Side-by-side fields — `row` on consecutive fields (same value) from portal */
.hd-field-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--space-3);
  margin-bottom: var(--space-5);
}
.hd-field-row .hd-field { margin-bottom: 0; }
@media (max-width: 480px) {
  .hd-field-row { grid-template-columns: 1fr; }
}

.hd-field--section .hd-field__title { font-family: var(--font-heading); font-size: var(--fs-sm); font-weight: var(--fw-semibold); color: var(--color-text); }
.hd-field--section .hd-field__subtitle { font-size: var(--fs-xs); color: var(--color-text-muted); margin-top: 2px; line-height: var(--lh-relaxed); margin-bottom: 0; }

/* ── Section callout ───────────────────────────────────────────────── */
.hd-section__callout, .hd-step__callout {
  padding: var(--space-3) var(--space-4); background: var(--color-signature-5);
  border-left: 3px solid var(--color-signature); border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-size: var(--fs-sm); color: var(--color-text-secondary); line-height: var(--lh-relaxed);
  margin-bottom: var(--space-5);
}
.hd-section__callout h5, .hd-step__callout h5 { font-family: var(--font-heading); font-size: var(--fs-sm); font-weight: var(--fw-semibold); color: var(--color-text); margin-bottom: 4px; }
.hd-section__callout p, .hd-step__callout p { margin-bottom: 6px; }
.hd-section__callout p:last-child, .hd-step__callout p:last-child { margin-bottom: 0; }
.hd-section__callout ul, .hd-step__callout ul { margin: 4px 0 0 1.125rem; padding: 0; }
.hd-section__callout li, .hd-step__callout li { font-size: var(--fs-sm); line-height: var(--lh-relaxed); margin-bottom: 2px; }

/* ── HTML block field ──────────────────────────────────────────────── */
.hd-field--html { font-size: var(--fs-sm); color: var(--color-text-secondary); line-height: var(--lh-relaxed); }
.hd-field--html a { color: var(--color-signature); }

/* ── Step header ───────────────────────────────────────────────────── */
.hd-step__header { margin-bottom: var(--space-5); }
.hd-step__badge {
  display: inline-block; padding: 2px 10px; background: var(--color-signature-10); color: var(--color-signature);
  font-size: var(--fs-xs); font-weight: var(--fw-bold); letter-spacing: var(--ls-wide); text-transform: uppercase;
  border-radius: var(--radius-full); margin-bottom: var(--space-3);
}
.hd-step__title { font-family: var(--font-heading); font-size: var(--fs-lg); font-weight: var(--fw-semibold); color: var(--color-text); margin-bottom: 2px; }
.hd-step__subtitle { font-size: var(--fs-sm); color: var(--color-text-secondary); line-height: var(--lh-relaxed); }
.hd-step__description {
  font-size: var(--fs-sm); font-style: italic; color: var(--color-text-muted); line-height: var(--lh-relaxed);
  margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--color-border-light);
}

/* ── Step navigation ───────────────────────────────────────────────── */
.hd-step__nav {
  display: flex; justify-content: space-between; margin-top: var(--space-5);
  padding-top: var(--space-4); border-top: 1px solid var(--color-border-light);
}
.hd-step__back, .hd-step__next {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 9px 20px; font-family: var(--font-body); font-size: var(--fs-sm); font-weight: var(--fw-semibold);
  border: none; border-radius: var(--radius-md); cursor: pointer; transition: all 200ms var(--ease-out);
}
.hd-step__back { background: transparent; color: var(--color-text); border: 1.5px solid var(--color-border); }
.hd-step__back:hover { border-color: var(--color-text); background: rgba(0,0,0,0.02); }
.hd-step__next { background: var(--color-signature); color: #fff; }
.hd-step__next:hover { background: var(--color-signature-hover, #D45515); transform: translateY(-1px); box-shadow: 0 4px 16px var(--color-signature-20); }

/* ── Step progress indicator (.hd-progress BEM) ───────────────────── */
.hd-progress { display: flex; align-items: center; gap: 10px; margin-bottom: var(--space-5); }
.hd-progress__step { display: flex; align-items: center; gap: 10px; }
.hd-progress__indicator {
  width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--color-border); background: var(--color-surface);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: var(--fw-semibold); color: var(--color-text-muted);
  transition: all 300ms var(--ease-out); flex-shrink: 0;
}
.hd-progress__num { font-size: 11px; font-weight: var(--fw-bold); }
.hd-progress__check { display: none; width: 14px; height: 14px; }
.hd-progress__lock { display: none; width: 14px; height: 14px; color: var(--color-border); }
.hd-progress__label { font-size: var(--fs-sm); font-weight: var(--fw-semibold); color: var(--color-text-muted); flex: 1; }
.hd-progress__step-badge { display: none; }
/* States */
.hd-progress__step.is-done .hd-progress__indicator { border-color: var(--color-signature); background: var(--color-signature); color: #fff; }
.hd-progress__step.is-done .hd-progress__num { display: none; }
.hd-progress__step.is-done .hd-progress__check { display: block; color: #fff; }
.hd-progress__step.is-done .hd-progress__label { color: var(--color-text-secondary); }
.hd-progress__step.is-active .hd-progress__indicator { border-color: var(--color-signature); background: var(--color-signature); color: #fff; box-shadow: 0 0 0 4px var(--color-signature-10); }
.hd-progress__step.is-active .hd-progress__label { color: var(--color-text); }
.hd-progress__step.is-upcoming .hd-progress__label { color: var(--color-text-muted); }
.hd-progress__step.is-upcoming .hd-progress__lock { display: inline-block; }

/* ── Step container animation ──────────────────────────────────────── */
.hd-form-steps { animation: hd-step-in 300ms var(--ease-out) both; }
@keyframes hd-step-in { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: translateX(0); } }
.hd-form-steps--back { animation-name: hd-step-in-back; }
@keyframes hd-step-in-back { from { opacity: 0; transform: translateX(-12px); } to { opacity: 1; transform: translateX(0); } }

/* ── Status messages ───────────────────────────────────────────────── */
.hd-form-status {
  padding: var(--space-3) var(--space-4); border-radius: var(--radius-md);
  font-size: var(--fs-sm); line-height: var(--lh-relaxed); text-align: center;
  margin-bottom: var(--space-4); animation: hd-status-in 300ms var(--ease-out) both;
}
@keyframes hd-status-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.hd-form-status--success { background: rgba(61, 139, 95, 0.08); color: var(--color-success); border: 1px solid rgba(61, 139, 95, 0.15); }
.hd-form-status--error { background: rgba(181, 66, 58, 0.06); color: var(--color-error); border: 1px solid rgba(181, 66, 58, 0.12); }



/* ════════════════════════════════════════════════════════════════════════
   THEME OVERRIDES — complete styles from mockup, variable-translated
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════════
   STYLE 1 — ACCORDION
   ════════════════════════════════════════════════════════════════════ */
.hd-form--accordion .hd-form__body{display:flex;flex-direction:column}
.hd-form--accordion .hd-progress{display:contents}
.hd-form--accordion .hd-progress__step{border:1.5px solid var(--color-border-light);border-radius:var(--radius-lg);padding:10px 14px;margin-bottom:8px;position:relative;transition:all 300ms var(--ease-out);order:1}
.hd-form--accordion .hd-progress__step.is-done{order:1;border-color:var(--color-signature-15);background:var(--color-signature-5);cursor:pointer}
.hd-form--accordion .hd-progress__step.is-done:hover{border-color:var(--color-signature);background:var(--color-signature-10)}
.hd-form--accordion .hd-progress__step.is-active{order:2;border-color:var(--color-signature);box-shadow:-3px 0 0 1.5px var(--color-signature-10),3px 0 0 1.5px var(--color-signature-10),0 -3px 0 1.5px var(--color-signature-10);border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:0}
.hd-form--accordion .hd-progress__step.is-upcoming{order:4;border-color:var(--color-border-light);opacity:.65}
.hd-form--accordion .hd-progress__indicator{background:var(--color-bg-alt);color:var(--color-text-muted);border:1.5px solid var(--color-border)}
.hd-form--accordion .hd-progress__step.is-done .hd-progress__indicator{background:var(--color-signature);color:#fff;border-color:var(--color-signature)}
.hd-form--accordion .hd-progress__step.is-active .hd-progress__indicator{background:var(--color-signature);color:#fff;border-color:var(--color-signature);box-shadow:0 0 0 3px var(--color-signature-10)}
.hd-form--accordion .hd-progress__step.is-done .hd-progress__label{color:var(--color-text-secondary)}
.hd-form--accordion .hd-progress__step.is-upcoming .hd-progress__label{color:var(--color-text-muted)}
/* stepBadge in accordion row — ONLY here; hide duplicate in .hd-step__header (same data as .hd-progress__step-badge) */
.hd-form--accordion .hd-progress__step-badge{display:block;position:absolute;top:0;right:0;padding:3px 10px;background:var(--color-signature-10);color:var(--color-signature);font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:0 var(--radius-lg) 0 var(--radius-sm);line-height:1.4}
.hd-form--accordion .hd-step__badge{display:none}
.hd-form--accordion .hd-progress__step.is-done .hd-progress__check{display:block;color:#fff}
.hd-form--accordion .hd-progress__counter{display:none}

.hd-form--accordion .hd-progress__step .hd-progress__label{padding-left: .4rem;}
.hd-form--accordion .hd-progress__step .hd-progress__subtitle{display: none;}
.hd-form--accordion .hd-progress__step .hd-progress__desc{display: none;}

/* Active step content — connected to active accordion card */
.hd-form--accordion .hd-step:not(.hd-step--hidden){order:3;border:1.5px solid var(--color-signature);border-top:1px solid var(--color-border-light);border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:-3px 0 0 1.5px var(--color-signature-10),3px 0 0 1.5px var(--color-signature-10),0 3px 0 1.5px var(--color-signature-10);padding:14px 14px;margin-bottom:8px}
.hd-form--accordion .hd-step__header{text-align:left}

/* ── Accordion: step header — compact, warm accent top ─────────────── */
.hd-form--accordion .hd-step__header{
  margin-bottom:1rem;padding-bottom:.75rem;
  border-bottom:2px solid var(--color-signature-15);
}
.hd-form--accordion .hd-step__title{font-size:.9375rem;font-weight:600}
.hd-form--accordion .hd-step__subtitle{font-size:.8125rem;margin-top:2px}
.hd-form--accordion .hd-step__description{
  border-top:none;margin-top:6px;padding-top:0;font-size:.75rem;
}

/* ── Accordion: callouts — soft panel with rounded corners ─────────── */
.hd-form--accordion .hd-step__callout,
.hd-form--accordion .hd-section__callout{
  background:var(--color-bg);border-left:3px solid var(--color-signature);
  border-radius:0 var(--radius-lg) var(--radius-lg) 0;padding:12px 14px;
}

/* ── Accordion: fields ─────────────────────────────────────────────── */
.hd-form--accordion .hd-field{margin-bottom:1rem}
.hd-form--accordion .hd-field__label{
  font-size:.8125rem;font-weight:600;color:var(--color-text);margin-bottom:5px;
}
.hd-form--accordion .hd-field__subtitle{font-size:.725rem;margin-bottom:5px}

/* ── Accordion: inputs — soft recessed, warm border ────────────────── */
.hd-form--accordion .hd-field__input{
  border:1.5px solid var(--color-border-light);border-radius:var(--radius-lg);
  padding:10px 14px;font-size:.9375rem;
  background:var(--color-bg);
  transition:all 200ms var(--ease-out);
}
.hd-form--accordion .hd-field__input:hover{border-color:var(--color-border);background:var(--color-surface)}
.hd-form--accordion .hd-field__input:focus{
  background:var(--color-surface);border-color:var(--color-signature);
  box-shadow:0 0 0 3px var(--color-signature-10);
}
.hd-form--accordion gmp-place-autocomplete.hd-field__input{
  border:1.5px solid var(--color-border-light);border-radius:var(--radius-lg);
  background:var(--color-bg);
  transition:all 200ms var(--ease-out);
}
.hd-form--accordion gmp-place-autocomplete.hd-field__input:hover{border-color:var(--color-border);background:var(--color-surface)}
.hd-form--accordion gmp-place-autocomplete.hd-field__input:focus-within{
  background:var(--color-surface);border-color:var(--color-signature);
  box-shadow:0 0 0 3px var(--color-signature-10);
}
.hd-form--accordion gmp-place-autocomplete.hd-field__input::part(input){font-size:.9375rem;padding:10px 14px}
.hd-form--accordion .hd-field__input::placeholder{color:var(--color-warm-taupe);font-size:.875rem}
.hd-form--accordion textarea.hd-field__input{min-height:68px;border-radius:var(--radius-lg)}
.hd-form--accordion select.hd-field__input{border-radius:var(--radius-lg)}

/* ── Accordion: hints ──────────────────────────────────────────────── */
.hd-form--accordion .hd-field__hint{font-size:.7rem;color:var(--color-warm-taupe);margin-top:4px}

/* ── Accordion: choices — rounded cards, slight inset ──────────────── */
.hd-form--accordion .hd-field__choices{gap:6px;margin-top:6px}
.hd-form--accordion .hd-field__choice{
  border:1.5px solid var(--color-border-light);border-radius:var(--radius-lg);
  padding:9px 14px;gap:10px;
  background:var(--color-bg);font-size:.8125rem;font-weight:500;
  transition:all 180ms var(--ease-out);
}
.hd-form--accordion .hd-field__choice:hover{
  background:var(--color-bg-alt);border-color:var(--color-border);
}
.hd-form--accordion .hd-field__choice:has(input:checked){
  background:var(--color-signature-5);border-color:var(--color-signature);
  box-shadow:inset 0 0 0 1px var(--color-signature-15);
}
/* Radio — double-ring on select */
.hd-form--accordion .hd-field__radio{width:16px;height:16px;border:2px solid var(--color-border);background:var(--color-surface)}
.hd-form--accordion .hd-field__choice:has(input:checked) .hd-field__radio{
  border-color:var(--color-signature);background:var(--color-surface);box-shadow:inset 0 0 0 3px var(--color-signature);
}
.hd-form--accordion .hd-field__choice:has(input:checked) .hd-field__radio::after{display:none}
/* Check */
.hd-form--accordion .hd-field__check{width:16px;height:16px;border:2px solid var(--color-border);border-radius:var(--radius-xs);background:var(--color-surface)}
.hd-form--accordion .hd-field__choice:has(input:checked) .hd-field__check{border-color:var(--color-signature);background:var(--color-signature)}

/* ── Accordion: section divider — subtle with orange dot ───────────── */
.hd-form--accordion .hd-field--section{
  border-top:1px solid var(--color-border-light);padding-top:.75rem;margin-top:.25rem;
}
.hd-form--accordion .hd-field--section::before{
  width:8px;height:8px;border-radius:50%;top:-4.5px;
  background:var(--color-signature);
}
.hd-form--accordion .hd-field--section .hd-field__title{
  font-size:.8125rem;font-weight:700;color:var(--color-text);
}

/* ── Accordion: HTML blocks ────────────────────────────────────────── */
.hd-form--accordion .hd-field--html{
  background:var(--color-bg);border-radius:var(--radius-lg);padding:10px 14px;
  font-size:.8125rem;color:var(--color-text-secondary);
}

/* ── Accordion: buttons — rounded to match card radii ──────────────── */
.hd-form--accordion .hd-step__next,
.hd-form--accordion .hd-form__cta{
  border-radius:var(--radius-lg);padding:10px 22px;font-size:.8125rem;font-weight:700;
}
.hd-form--accordion .hd-step__back{
  border-radius:var(--radius-lg);padding:10px 22px;
}

/* ── Accordion: step nav ───────────────────────────────────────────── */
.hd-form--accordion .hd-step__nav{border-top:1px solid var(--color-border-light);padding-top:.875rem;margin-top:1rem}

/* ════════════════════════════════════════════════════════════════════════
   STYLE 2 — SPLIT HEADER
   Dark header with step badge pills. Uses stepBadge text in pills.
   ════════════════════════════════════════════════════════════════════ */
.hd-form--split .hd-form__header{background:var(--color-charcoal-dark);color:#fff;padding:1.5rem 1.5rem 1.25rem;position:relative;overflow:hidden}
.hd-form--split .hd-form__header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-signature),transparent 60%)}
.hd-form--split .hd-form__title{color:#fff}
.hd-form--split .hd-form__subtitle{color:rgba(255,255,255,0.55)}
.hd-form--split .hd-form__step-counter{color:rgba(255,255,255,0.45)}
.hd-form--split .hd-progress{background:var(--color-charcoal-dark);padding:0 1.5rem 1.25rem;margin:-.75rem -1.5rem 1rem;position:relative;display:flex;gap:6px}
.hd-form--split .hd-progress::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-signature),transparent 60%)}
.hd-form--split .hd-form__header:has(+ .hd-form__body .hd-progress)::after{display:none}
.hd-form--split .hd-progress__step{padding:5px 14px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;letter-spacing:.02em;transition:all 200ms var(--ease-out)}
.hd-form--split .hd-progress__indicator{display:none}
/* Hide label, show stepBadge text with step number prefix */
.hd-form--split .hd-progress__label{display:none}
.hd-form--split .hd-progress{counter-reset:split-step}
.hd-form--split .hd-progress__step{counter-increment:split-step}
.hd-form--split .hd-progress__step-badge{display:inline;font-size:.6875rem;font-weight:600;letter-spacing:.02em}
.hd-form--split .hd-progress__step-badge::before{content:counter(split-step) ". "}
.hd-form--split .hd-progress__desc,.hd-form--split .hd-progress__subtitle,.hd-form--split .hd-progress__lock,.hd-form--split .hd-progress__counter{display:none}
/* States */
.hd-form--split .hd-progress__step.is-done{background:rgba(232,97,26,0.2);cursor:pointer}
.hd-form--split .hd-progress__step.is-done:hover{background:rgba(232,97,26,0.3)}
.hd-form--split .hd-progress__step.is-done .hd-progress__step-badge{color:#F2935A}
.hd-form--split .hd-progress__step.is-done .hd-progress__check{display:inline;width:10px;height:10px;vertical-align:middle;margin-right:3px;color:#F2935A}
.hd-form--split .hd-progress__step.is-active{background:var(--color-signature)}
.hd-form--split .hd-progress__step.is-active .hd-progress__step-badge{color:#fff}
.hd-form--split .hd-progress__step.is-upcoming{background:rgba(255,255,255,0.06)}
.hd-form--split .hd-progress__step.is-upcoming .hd-progress__step-badge{color:rgba(255,255,255,0.35)}

/* ── Split: form shell ─────────────────────────────────────────────── */
.hd-form--split .hd-form__body{padding:.75rem 1.5rem 1.25rem}

/* ── Split: step header — warm tinted banner ───────────────────────── */
.hd-form--split .hd-step__header{
  margin:0 -1.5rem 1.125rem;padding:1rem 1.5rem;
  background:linear-gradient(135deg,var(--color-bg) 0%,var(--color-signature-5) 100%);
  border-bottom:1px solid var(--color-signature-15);
}
.hd-form--split .hd-step__title{font-size:.9375rem;font-weight:600;color:var(--color-charcoal)}
.hd-form--split .hd-step__subtitle{font-size:.8125rem;margin-top:3px}
.hd-form--split .hd-step__description{
  border-top-color:var(--color-signature-10);margin-top:8px;padding-top:8px;font-size:.75rem;
}

/* ── Split: callouts — dark, inverted to echo the header ───────────── */
.hd-form--split .hd-step__callout,
.hd-form--split .hd-section__callout{
  background:var(--color-charcoal-dark);color:rgba(255,255,255,.7);
  border-left:3px solid var(--color-signature);border-radius:var(--radius-md);
  padding:12px 16px;
}
.hd-form--split .hd-step__callout h5,
.hd-form--split .hd-section__callout h5{color:#fff}
.hd-form--split .hd-step__callout a,
.hd-form--split .hd-section__callout a{color:#F2935A}

/* ── Split: fields — generous, refined ─────────────────────────────── */
.hd-form--split .hd-field{margin-bottom:1.125rem}
.hd-form--split .hd-field__label{
  font-size:.8125rem;font-weight:600;color:var(--color-charcoal);margin-bottom:5px;
}
.hd-form--split .hd-field__subtitle{font-size:.725rem;color:var(--color-text-muted);margin-bottom:5px}

/* ── Split: inputs — warm double-border, lifted ────────────────────── */
.hd-form--split .hd-field__input{
  border:1px solid var(--color-border);border-radius:var(--radius-md);
  padding:11px 14px;font-size:.9375rem;
  background:var(--color-surface);
  box-shadow:0 1px 3px rgba(0,0,0,0.04),0 0 0 1px var(--color-border-light);
  transition:all 200ms var(--ease-out);
}
.hd-form--split .hd-field__input:hover{
  border-color:var(--color-warm-taupe);box-shadow:0 2px 6px rgba(0,0,0,0.06),0 0 0 1px var(--color-border);
}
.hd-form--split .hd-field__input:focus{
  border-color:var(--color-signature);
  box-shadow:0 2px 8px rgba(232,97,26,0.08),0 0 0 3px var(--color-signature-10);
}
.hd-form--split gmp-place-autocomplete.hd-field__input{
  border:1px solid var(--color-border);border-radius:var(--radius-md);
  background:var(--color-surface);
  box-shadow:0 1px 3px rgba(0,0,0,0.04),0 0 0 1px var(--color-border-light);
  transition:all 200ms var(--ease-out);
}
.hd-form--split gmp-place-autocomplete.hd-field__input:hover{
  border-color:var(--color-warm-taupe);box-shadow:0 2px 6px rgba(0,0,0,0.06),0 0 0 1px var(--color-border);
}
.hd-form--split gmp-place-autocomplete.hd-field__input:focus-within{
  border-color:var(--color-signature);
  box-shadow:0 2px 8px rgba(232,97,26,0.08),0 0 0 3px var(--color-signature-10);
}
.hd-form--split gmp-place-autocomplete.hd-field__input::part(input){padding:11px 14px;font-size:.9375rem}
.hd-form--split .hd-field__input::placeholder{color:var(--color-warm-taupe);font-size:.875rem}
.hd-form--split textarea.hd-field__input{min-height:72px}
.hd-form--split select.hd-field__input{padding-right:36px}

/* ── Split: hints ──────────────────────────────────────────────────── */
.hd-form--split .hd-field__hint{font-size:.7rem;color:var(--color-warm-taupe);margin-top:5px}

/* ── Split: choices — 2-col grid cards with hover lift ─────────────── */
.hd-form--split .hd-field__choices{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;
}
.hd-form--split .hd-field__choice{
  border:1px solid var(--color-border-light);border-radius:var(--radius-md);
  padding:10px 12px;gap:10px;
  background:var(--color-surface);font-size:.8125rem;font-weight:500;
  box-shadow:0 1px 2px rgba(0,0,0,0.03);
  transition:all 180ms var(--ease-out);
}
.hd-form--split .hd-field__choice:hover{
  border-color:var(--color-border);background:var(--color-bg);
  box-shadow:0 2px 4px rgba(0,0,0,0.05);
}
.hd-form--split .hd-field__choice:has(input:checked){
  border-color:var(--color-signature);background:var(--color-signature-5);
  box-shadow:0 0 0 1px var(--color-signature),0 2px 6px rgba(232,97,26,0.1);
}
/* Radio */
.hd-form--split .hd-field__radio{width:18px;height:18px;border:2px solid var(--color-border);background:var(--color-bg)}
.hd-form--split .hd-field__choice:has(input:checked) .hd-field__radio{border-color:var(--color-signature);background:var(--color-signature)}
/* Check */
.hd-form--split .hd-field__check{width:18px;height:18px;border:2px solid var(--color-border);border-radius:var(--radius-xs);background:var(--color-bg)}
.hd-form--split .hd-field__choice:has(input:checked) .hd-field__check{border-color:var(--color-signature);background:var(--color-signature)}

/* ── Split: section divider — gradient accent line ─────────────────── */
.hd-form--split .hd-field--section{
  border-top:none;padding-top:.75rem;margin-top:.375rem;
  position:relative;
}
.hd-form--split .hd-field--section::before{
  width:100%;height:2px;border-radius:1px;
  background:linear-gradient(90deg,var(--color-signature),var(--color-signature-15) 40%,var(--color-border-light) 100%);
}
.hd-form--split .hd-field--section .hd-field__title{
  font-size:.8125rem;font-weight:700;color:var(--color-charcoal);
}

/* ── Split: HTML blocks ────────────────────────────────────────────── */
.hd-form--split .hd-field--html{
  font-size:.8125rem;color:var(--color-text-secondary);
  padding:10px 14px;background:var(--color-bg);border-radius:var(--radius-md);
  border-left:2px solid var(--color-champagne);
}

/* ── Split: buttons — warm, confident ──────────────────────────────── */
.hd-form--split .hd-step__next,
.hd-form--split .hd-form__cta{
  border-radius:var(--radius-md);padding:11px 24px;font-size:.875rem;font-weight:700;
  background:var(--color-signature);
  box-shadow:0 2px 8px rgba(232,97,26,0.2);
}
.hd-form--split .hd-step__next:hover,
.hd-form--split .hd-form__cta:hover{
  box-shadow:0 4px 20px rgba(232,97,26,0.3);
}
.hd-form--split .hd-step__back{
  border-radius:var(--radius-md);padding:11px 24px;font-weight:600;
}

/* ── Split: step nav ───────────────────────────────────────────────── */
.hd-form--split .hd-step__nav{
  border-top:none;padding-top:1rem;margin-top:1.25rem;
  position:relative;
}
.hd-form--split .hd-step__nav::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--color-signature-15),var(--color-border-light) 60%,transparent);
}

/* ════════════════════════════════════════════════════════════════════════
   STYLE 3 — ARROW BAR
   Chevron / arrow-shaped step indicators with stepBadge text.
   Each step is a clipped arrow shape; active gets a fill, done shows check.
   ════════════════════════════════════════════════════════════════════ */
.hd-form--tabs .hd-progress{
  display:flex;margin-bottom:1.25rem;border-radius:var(--radius-md);overflow:hidden;
  border:1.5px solid var(--color-border-light);
}
.hd-form--tabs .hd-progress__step{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  padding:10px 12px 10px 20px;position:relative;
  font-size:.75rem;font-weight:600;
  background:var(--color-bg);color:var(--color-text-muted);
  transition:all 250ms var(--ease-out);cursor:default;
}
/* Arrow shape via ::after chevron */
.hd-form--tabs .hd-progress__step::after{
  content:'';position:absolute;right:-10px;top:50%;transform:translateY(-50%);
  width:0;height:0;
  border-top:20px solid transparent;border-bottom:20px solid transparent;
  border-left:10px solid var(--color-bg);
  z-index:2;transition:border-left-color 250ms var(--ease-out);
}
.hd-form--tabs .hd-progress__step:last-of-type::after{display:none}
/* Notch cutout on left side (except first) */
.hd-form--tabs .hd-progress__step::before{
  content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:0;height:0;
  border-top:20px solid transparent;border-bottom:20px solid transparent;
  border-left:10px solid var(--color-surface);
  z-index:1;
}
.hd-form--tabs .hd-progress__step:first-of-type::before{display:none}
/* Hide elements we don't need */
.hd-form--tabs .hd-progress__indicator{display:none}
.hd-form--tabs .hd-progress__label{display:none}
.hd-form--tabs .hd-progress__desc,.hd-form--tabs .hd-progress__subtitle,.hd-form--tabs .hd-progress__lock,.hd-form--tabs .hd-progress__counter{display:none}
/* Show stepBadge as the label */
.hd-form--tabs .hd-progress__step-badge{display:inline;font-size:.75rem;font-weight:600;letter-spacing:.01em;white-space:nowrap}
/* Done state */
.hd-form--tabs .hd-progress__step.is-done{background:var(--color-signature-5);color:var(--color-signature);cursor:pointer}
.hd-form--tabs .hd-progress__step.is-done::after{border-left-color:var(--color-signature-5)}
.hd-form--tabs .hd-progress__step.is-done:hover{background:var(--color-signature-10)}
.hd-form--tabs .hd-progress__step.is-done:hover::after{border-left-color:var(--color-signature-10)}
.hd-form--tabs .hd-progress__step.is-done .hd-progress__step-badge{color:var(--color-signature)}
.hd-form--tabs .hd-progress__step.is-done .hd-progress__check{display:inline;width:12px;height:12px;color:var(--color-signature)}
/* Active state */
.hd-form--tabs .hd-progress__step.is-active{background:var(--color-signature);color:#fff}
.hd-form--tabs .hd-progress__step.is-active::after{border-left-color:var(--color-signature)}
.hd-form--tabs .hd-progress__step.is-active .hd-progress__step-badge{color:#fff}
/* Upcoming state */
.hd-form--tabs .hd-progress__step.is-upcoming{background:var(--color-bg-alt);color:var(--color-text-muted)}
.hd-form--tabs .hd-progress__step.is-upcoming::after{border-left-color:var(--color-bg-alt)}
.hd-form--tabs .hd-progress__step.is-upcoming .hd-progress__step-badge{color:var(--color-text-muted)}
/* Arrow bar already shows stepBadge on chevrons — hide duplicate in step pane header */
.hd-form--tabs .hd-step__badge{display:none}

/* ── Tabs: form shell — clean app feel ─────────────────────────────── */
.hd-form--tabs .hd-form__header{padding:1.5rem 1.5rem .5rem}
.hd-form--tabs .hd-form__title{font-weight:600;font-size:1.25rem}
.hd-form--tabs .hd-form__body{padding:.5rem 1.5rem 1.25rem}

/* ── Tabs: step header — tight, colored top accent ─────────────────── */
.hd-form--tabs .hd-step__header{
  margin-bottom:1.125rem;padding:0 0 .75rem;
  border-bottom:2px solid var(--color-signature-15);
}
.hd-form--tabs .hd-step__title{font-size:.9375rem;font-weight:700;color:var(--color-charcoal)}
.hd-form--tabs .hd-step__subtitle{font-size:.8125rem;margin-top:3px}
.hd-form--tabs .hd-step__description{
  border-top:none;margin-top:6px;padding-top:0;font-size:.75rem;
}

/* ── Tabs: fields — spacious, modern ───────────────────────────────── */
.hd-form--tabs .hd-field{margin-bottom:1.125rem}
.hd-form--tabs .hd-field__label{
  font-size:.8125rem;font-weight:600;color:var(--color-text);margin-bottom:5px;
}
.hd-form--tabs .hd-field__subtitle{font-size:.725rem;margin-bottom:5px;color:var(--color-text-muted)}

/* ── Tabs: inputs — thick bottom accent, minimal frame ─────────────── */
.hd-form--tabs .hd-field__input{
  border:none;border-radius:0;
  border-bottom:2px solid var(--color-border);
  padding:10px 2px;font-size:.9375rem;
  background:transparent;
  transition:all 200ms var(--ease-out);
}
.hd-form--tabs .hd-field__input:hover{border-bottom-color:var(--color-warm-taupe)}
.hd-form--tabs .hd-field__input:focus{
  border-bottom-color:var(--color-signature);box-shadow:0 1px 0 0 var(--color-signature);
}
.hd-form--tabs gmp-place-autocomplete.hd-field__input{
  border:none;border-radius:0;
  border-bottom:2px solid var(--color-border);
  background:transparent;
  box-shadow:none;
  transition:all 200ms var(--ease-out);
}
.hd-form--tabs gmp-place-autocomplete.hd-field__input:hover{border-bottom-color:var(--color-warm-taupe)}
.hd-form--tabs gmp-place-autocomplete.hd-field__input:focus-within{
  border-bottom-color:var(--color-signature);box-shadow:0 1px 0 0 var(--color-signature);
}
.hd-form--tabs gmp-place-autocomplete.hd-field__input::part(input){padding:10px 2px;font-size:.9375rem}
.hd-form--tabs .hd-field__input::placeholder{color:var(--color-warm-taupe);font-size:.875rem}
/* Textarea + select get a bordered container */
.hd-form--tabs textarea.hd-field__input{
  border:1.5px solid var(--color-border-light);border-radius:var(--radius-md);
  padding:10px 12px;background:var(--color-surface);min-height:72px;
}
.hd-form--tabs textarea.hd-field__input:focus{
  border-color:var(--color-signature);box-shadow:0 0 0 3px var(--color-signature-10);
}
.hd-form--tabs select.hd-field__input{
  border:1.5px solid var(--color-border-light);border-radius:var(--radius-md);
  padding:10px 36px 10px 12px;background:var(--color-surface);
}
.hd-form--tabs select.hd-field__input:focus{
  border-color:var(--color-signature);box-shadow:0 0 0 3px var(--color-signature-10);
}

/* ── Tabs: hints ───────────────────────────────────────────────────── */
.hd-form--tabs .hd-field__hint{font-size:.7rem;color:var(--color-warm-taupe);margin-top:5px}

/* ── Tabs: choices — borderless, left accent (matches ledger style) ── */
.hd-form--tabs .hd-field__choices{
  display:flex;flex-direction:column;gap:0;margin-top:6px;
}
.hd-form--tabs .hd-field__choice{
  border:none;border-left:3px solid transparent;border-radius:0;
  padding:8px 12px;gap:10px;background:transparent;
  font-size:.8125rem;font-weight:500;
  transition:all 150ms var(--ease-out);
}
.hd-form--tabs .hd-field__choice:hover{
  background:var(--color-bg-alt);border-left-color:var(--color-border);
}
.hd-form--tabs .hd-field__choice:has(input:checked){
  background:var(--color-signature-5);border-left-color:var(--color-signature);
  color:var(--color-text);box-shadow:none;
}
/* Radio */
.hd-form--tabs .hd-field__radio{
  width:16px;height:16px;border:2px solid var(--color-border);background:var(--color-surface);
}
.hd-form--tabs .hd-field__choice:has(input:checked) .hd-field__radio{
  border-color:var(--color-signature);background:var(--color-signature);
}
.hd-form--tabs .hd-field__choice:has(input:checked) .hd-field__radio::after{background:#fff}
/* Check */
.hd-form--tabs .hd-field__check{
  width:16px;height:16px;border:2px solid var(--color-border);border-radius:var(--radius-xs);background:var(--color-surface);
}
.hd-form--tabs .hd-field__choice:has(input:checked) .hd-field__check{
  border-color:var(--color-signature);background:var(--color-signature);
}
.hd-form--tabs .hd-field__choice:has(input:checked) .hd-field__check::after{border-color:#fff}

/* ── Tabs: section divider — bold line + inline label ──────────────── */
.hd-form--tabs .hd-field--section{
  border-top:none;padding-top:0;margin-top:.5rem;margin-bottom:.75rem;
}
.hd-form--tabs .hd-field--section::before{display:none}
.hd-form--tabs .hd-field--section .hd-field__title{
  display:inline-block;font-size:.6875rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--color-surface);
  background:var(--color-charcoal);padding:3px 10px;border-radius:var(--radius-xs);
}
.hd-form--tabs .hd-field--section .hd-field__subtitle{
  font-size:.725rem;color:var(--color-text-muted);margin-top:6px;text-transform:none;letter-spacing:0;
}

/* ── Tabs: callouts — clean aside ──────────────────────────────────── */
.hd-form--tabs .hd-step__callout,
.hd-form--tabs .hd-section__callout{
  border-left:3px solid var(--color-signature);border-radius:0;
  background:transparent;padding:8px 14px;
}

/* ── Tabs: HTML blocks ─────────────────────────────────────────────── */
.hd-form--tabs .hd-field--html{
  padding:8px 0;border-bottom:1px solid var(--color-border-light);
  font-size:.8125rem;color:var(--color-text-secondary);
}

/* ── Tabs: buttons — bold, wide, app-like ──────────────────────────── */
.hd-form--tabs .hd-step__next,
.hd-form--tabs .hd-form__cta{
  border-radius:var(--radius-md);padding:11px 28px;font-size:.875rem;
  font-weight:700;letter-spacing:.01em;
}
.hd-form--tabs .hd-step__back{
  border-radius:var(--radius-md);padding:11px 24px;
}

/* ── Tabs: step nav ────────────────────────────────────────────────── */
.hd-form--tabs .hd-step__nav{border-top:2px solid var(--color-border-light);padding-top:1rem;margin-top:1.25rem}

/* ════════════════════════════════════════════════════════════════════════
   STYLE 4 — NUMBERED CASCADE (redesigned)
   Clean horizontal step cards with number, title, subtitle, and badge.
   Connected by a subtle line. Active step highlighted.
   ════════════════════════════════════════════════════════════════════ */
.hd-form--cascade .hd-progress{
  display:flex;flex-direction:column;gap:0;position:relative;
  margin-bottom:1.25rem;
  border:1.5px solid var(--color-border-light);border-radius:var(--radius-lg);overflow:hidden;
}
.hd-form--cascade .hd-progress__step{
  display:grid;grid-template-columns:40px 1fr auto;
  align-items:center;column-gap:12px;
  padding:10px 14px;position:relative;
  border-bottom:1px solid var(--color-border-light);
  transition:all 250ms var(--ease-out);
  width: 100%;
}
.hd-form--cascade .hd-progress__step:last-of-type{border-bottom:none}
/* Indicator: number circle */
.hd-form--cascade .hd-progress__indicator{
  grid-column:1;grid-row:1;width:36px;height:36px;
  font-family:var(--font-heading);font-size:.875rem;font-weight:700;
  background:var(--color-bg-alt);border:2px solid var(--color-border);color:var(--color-text-muted);
  transition:all 300ms var(--ease-out);
}
/* Title */
.hd-form--cascade .hd-progress__label{
  grid-column:2;grid-row:1;
  font-family:var(--font-heading);font-size:.8125rem;font-weight:600;color:var(--color-text-muted);
  padding:0;transition:color 200ms;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
/* Subtitle — hidden in progress tracker, only shown in the step body header */
.hd-form--cascade .hd-progress__subtitle{display:none}
/* stepBadge — positioned far right */
.hd-form--cascade .hd-progress__step-badge{
  display:inline-block;grid-column:3;grid-row:1;
  padding:3px 10px;background:var(--color-bg-alt);color:var(--color-text-muted);
  font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  border-radius:var(--radius-full);border:1px solid var(--color-border-light);
  white-space:nowrap;transition:all 200ms var(--ease-out);
}
/* Hide desc, counter */
.hd-form--cascade .hd-progress__desc,.hd-form--cascade .hd-progress__counter{display:none}
/* Lock icon: hide the actual SVG (needs 3-class specificity to beat base rule), use ::after instead */
.hd-form--cascade .hd-progress__step.is-upcoming .hd-progress__lock{display:none}
.hd-form--cascade .hd-progress__step.is-upcoming .hd-progress__label::after{
  content:'';display:inline-block;width:11px;height:11px;margin-left:5px;vertical-align:-1px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23DDD8D3' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E") no-repeat center/contain;
}
/* Done state */
.hd-form--cascade .hd-progress__step.is-done{background:var(--color-signature-5);cursor:pointer}
.hd-form--cascade .hd-progress__step.is-done:hover{background:var(--color-signature-10)}
.hd-form--cascade .hd-progress__step.is-done .hd-progress__indicator{border-color:var(--color-signature);background:var(--color-signature);color:#fff}
.hd-form--cascade .hd-progress__step.is-done .hd-progress__check{color:#fff}
.hd-form--cascade .hd-progress__step.is-done .hd-progress__label{color:var(--color-text-secondary)}
.hd-form--cascade .hd-progress__step.is-done .hd-progress__step-badge{background:var(--color-signature-10);color:var(--color-signature);border-color:var(--color-signature-15)}
/* Active state */
.hd-form--cascade .hd-progress__step.is-active{background:var(--color-surface);border-bottom-color:var(--color-border-light)}
.hd-form--cascade .hd-progress__step.is-active .hd-progress__indicator{border-color:var(--color-signature);color:var(--color-signature);background:var(--color-bg-alt);box-shadow:0 0 0 3px var(--color-signature-10)}
.hd-form--cascade .hd-progress__step.is-active .hd-progress__label{color:var(--color-text)}
.hd-form--cascade .hd-progress__step.is-active .hd-progress__step-badge{background:var(--color-signature);color:#fff;border-color:var(--color-signature)}
/* Upcoming state */
.hd-form--cascade .hd-progress__step.is-upcoming{background:var(--color-bg);opacity:.55}

/* stepBadge shown in progress tracker rows — hide duplicate in .hd-step__header body */
.hd-form--cascade .hd-step__badge{display:none}

/* ── Cascade: form shell — structured, document feel ───────────────── */
.hd-form--cascade .hd-form__body{padding:.75rem 1.75rem 1.25rem}
.hd-form--cascade .hd-form__header{padding:1.5rem 1.75rem .625rem}

/* ── Cascade: step header — bordered card to match progress ────────── */
.hd-form--cascade .hd-step__header{
  margin-bottom:1rem;padding:1rem 1rem .875rem;
  background:var(--color-bg);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);
}
.hd-form--cascade .hd-step__title{font-size:.9375rem;margin-bottom:4px}
.hd-form--cascade .hd-step__subtitle{font-size:.8125rem}
.hd-form--cascade .hd-step__description{
  border-top-color:var(--color-border-light);margin-top:8px;padding-top:8px;font-size:.75rem;
}

/* ── Cascade: callouts — inset panel ───────────────────────────────── */
.hd-form--cascade .hd-step__callout,
.hd-form--cascade .hd-section__callout{
  background:var(--color-bg);border:1px solid var(--color-border-light);border-left:3px solid var(--color-signature);
  border-radius:var(--radius-md);padding:12px 14px;
}

/* ── Cascade: fields — floating label feel, grouped ────────────────── */
.hd-form--cascade .hd-field{margin-bottom:1.125rem}
.hd-form--cascade .hd-field__label{
  font-size:.6875rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--color-signature);margin-bottom:5px;
}
.hd-form--cascade .hd-field__req{text-transform:none;letter-spacing:0;color:var(--color-error);font-size:.75rem}
.hd-form--cascade .hd-field__subtitle{font-size:.725rem;color:var(--color-text-muted);margin-bottom:4px}

/* ── Cascade: inputs — inset / recessed look ───────────────────────── */
.hd-form--cascade .hd-field__input{
  border:1px solid var(--color-border);border-radius:var(--radius-sm);
  padding:10px 12px;font-size:.875rem;
  background:var(--color-surface);
  box-shadow:inset 0 1px 3px rgba(0,0,0,0.04);
  transition:all 200ms var(--ease-out);
}
.hd-form--cascade .hd-field__input:hover{border-color:var(--color-warm-taupe)}
.hd-form--cascade .hd-field__input:focus{
  border-color:var(--color-signature);background:var(--color-surface);
  box-shadow:inset 0 1px 3px rgba(0,0,0,0.04),0 0 0 3px var(--color-signature-10);
}
.hd-form--cascade gmp-place-autocomplete.hd-field__input{
  border:1px solid var(--color-border);border-radius:var(--radius-sm);
  background:var(--color-surface);
  box-shadow:inset 0 1px 3px rgba(0,0,0,0.04);
  transition:all 200ms var(--ease-out);
}
.hd-form--cascade gmp-place-autocomplete.hd-field__input:hover{border-color:var(--color-warm-taupe)}
.hd-form--cascade gmp-place-autocomplete.hd-field__input:focus-within{
  border-color:var(--color-signature);background:var(--color-surface);
  box-shadow:inset 0 1px 3px rgba(0,0,0,0.04),0 0 0 3px var(--color-signature-10);
}
.hd-form--cascade gmp-place-autocomplete.hd-field__input::part(input){padding:10px 12px;font-size:.875rem}
.hd-form--cascade .hd-field__input::placeholder{color:var(--color-warm-taupe);font-size:.8125rem}
.hd-form--cascade textarea.hd-field__input{min-height:72px;border-radius:var(--radius-sm)}
.hd-form--cascade select.hd-field__input{border-radius:var(--radius-sm)}

/* ── Cascade: hints ────────────────────────────────────────────────── */
.hd-form--cascade .hd-field__hint{
  font-size:.7rem;color:var(--color-warm-taupe);letter-spacing:.01em;font-style:italic;
  margin-top:6px;padding:0 10px;
}

/* ── Cascade: choices — 2-col grid cards with number indicator ─────── */
.hd-form--cascade .hd-field__choices{
  display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px;
}
.hd-form--cascade .hd-field__choice{
  border:1px solid var(--color-border-light);border-radius:var(--radius-md);
  padding:10px 12px;gap:10px;background:var(--color-surface);
  font-size:.8125rem;font-weight:500;
  box-shadow:0 1px 2px rgba(0,0,0,0.03);
  transition:all 180ms var(--ease-out);
}
.hd-form--cascade .hd-field__choice:hover{
  border-color:var(--color-border);background:var(--color-bg);
  box-shadow:0 2px 4px rgba(0,0,0,0.05);
}
.hd-form--cascade .hd-field__choice:has(input:checked){
  border-color:var(--color-signature);background:var(--color-signature-5);
  box-shadow:0 0 0 1px var(--color-signature),0 2px 6px rgba(232,97,26,0.1);
}
/* Radio/check — squared-off style to match structured feel */
.hd-form--cascade .hd-field__radio{
  width:18px;height:18px;border:2px solid var(--color-border);
  background:var(--color-bg);
}
.hd-form--cascade .hd-field__choice:has(input:checked) .hd-field__radio{
  border-color:var(--color-signature);background:var(--color-signature);
}
.hd-form--cascade .hd-field__check{
  width:18px;height:18px;border:2px solid var(--color-border);border-radius:var(--radius-xs);
  background:var(--color-bg);
}
.hd-form--cascade .hd-field__choice:has(input:checked) .hd-field__check{
  border-color:var(--color-signature);background:var(--color-signature);
}

/* ── Cascade: section divider — bold top rule, structured ──────────── */
.hd-form--cascade .hd-field--section{
  border-top:2px solid var(--color-border);padding-top:.75rem;margin-top:.5rem;
}
.hd-form--cascade .hd-field--section::before{display:none}
.hd-form--cascade .hd-field--section .hd-field__title{
  font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);
}
.hd-form--cascade .hd-field--section .hd-field__subtitle{
  font-size:.725rem;color:var(--color-text-muted);margin-top:3px;text-transform:none;letter-spacing:0;
}

/* ── Cascade: HTML blocks — subtle bordered panel ──────────────────── */
.hd-form--cascade .hd-field--html{
  background:var(--color-bg);border:1px solid var(--color-border-light);
  border-radius:var(--radius-md);padding:10px 14px;
  font-size:.8125rem;
}

/* ── Cascade: buttons — squared, confident ─────────────────────────── */
.hd-form--cascade .hd-step__next,
.hd-form--cascade .hd-form__cta{
  border-radius:var(--radius-sm);padding:10px 22px;font-size:.8125rem;
  letter-spacing:.02em;font-weight:700;
}
.hd-form--cascade .hd-step__back{
  border-radius:var(--radius-sm);padding:10px 22px;font-weight:600;
}

/* ── Cascade: step nav ─────────────────────────────────────────────── */
.hd-form--cascade .hd-step__nav{border-top:2px solid var(--color-border-light);padding-top:.875rem;margin-top:1.25rem}

/* ── Cascade: field rows ───────────────────────────────────────────── */
.hd-form--cascade .hd-field-row{gap:.875rem}

/* ════════════════════════════════════════════════════════════════════════
   STYLE 5 — PROGRESS RAIL
   Horizontal segmented bar with step labels below. Clean, minimal,
   data-visualization inspired. Segments fill left-to-right.
   ════════════════════════════════════════════════════════════════════ */
.hd-form--rail .hd-progress{
  display:flex;flex-wrap:wrap;gap:3px;margin-bottom:1.25rem;padding-top:1.25rem;
}
/* Each step = column with bar on top, label below */
.hd-form--rail .hd-progress__step{
  flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;
  cursor:default;transition:all 200ms var(--ease-out);
}
.hd-form--rail .hd-progress__step.is-done{cursor:pointer}
/* Bar segment via ::before */
.hd-form--rail .hd-progress__step::before{
  content:'';display:block;width:100%;height:5px;border-radius:var(--radius-full);
  background:var(--color-bg-alt);transition:background 400ms var(--ease-out),box-shadow 400ms var(--ease-out);
}
.hd-form--rail .hd-progress__step.is-done::before{
  background:var(--color-signature-20);
}
.hd-form--rail .hd-progress__step.is-active::before{
  background:var(--color-signature);
}
/* Step badge label centered below segment */
.hd-form--rail .hd-progress__step-badge{
  display:block;text-align:center;
  font-size:.625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:color 200ms;
}
.hd-form--rail .hd-progress__step.is-done .hd-progress__step-badge{color:var(--color-text-secondary)}
.hd-form--rail .hd-progress__step.is-active .hd-progress__step-badge{color:var(--color-signature)}

/* Badge only on .hd-progress__step-badge (accordion row); hide duplicate .hd-step__badge in panel */
.hd-form--rail .hd-step__badge{display:none}
.hd-form--rail .hd-progress__step.is-upcoming .hd-progress__lock{display:none}

/* Hide everything else */
.hd-form--rail .hd-progress__indicator,.hd-form--rail .hd-progress__label,
.hd-form--rail .hd-progress__subtitle,.hd-form--rail .hd-progress__desc,
.hd-form--rail .hd-progress__lock,.hd-form--rail .hd-progress__check{display:none}
/* Hide progress counter — already shown in header */
.hd-form--rail .hd-progress__counter{display:none}

/* ── Rail: form shell ──────────────────────────────────────────────── */
.hd-form--rail .hd-form__header{padding:1.5rem 1.75rem .75rem}
.hd-form--rail .hd-form__body{padding:.5rem 1.75rem 1.25rem}

/* ── Rail: step header ─────────────────────────────────────────────── */
.hd-form--rail .hd-step__header{margin-bottom:1rem;padding-bottom:.875rem;border-bottom:1px solid var(--color-border-light)}
.hd-form--rail .hd-step__title{font-size:1rem;font-weight:600}
.hd-form--rail .hd-step__description{border-top:none;padding-top:6px;margin-top:6px;font-size:.75rem}

/* ── Rail: inputs — filled background, softer borders ──────────────── */
.hd-form--rail .hd-field{margin-bottom:1rem}
.hd-form--rail .hd-field__label{font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:6px}
.hd-form--rail .hd-field__req{text-transform:none;letter-spacing:0}
.hd-form--rail .hd-field__subtitle{font-size:.725rem;margin-bottom:5px}
.hd-form--rail .hd-field__input{
  background:var(--color-bg);border:1.5px solid var(--color-border-light);border-radius:var(--radius-lg);
  padding:11px 14px;font-size:.875rem;
  transition:all 200ms var(--ease-out);
}
.hd-form--rail .hd-field__input:hover{border-color:var(--color-border)}
.hd-form--rail .hd-field__input:focus{
  background:var(--color-surface);border-color:var(--color-signature);
  box-shadow:0 0 0 3px var(--color-signature-10),0 2px 8px rgba(0,0,0,0.04);
}
.hd-form--rail gmp-place-autocomplete.hd-field__input{
  background:var(--color-bg);border:1.5px solid var(--color-border-light);border-radius:var(--radius-lg);
  transition:all 200ms var(--ease-out);
}
.hd-form--rail gmp-place-autocomplete.hd-field__input:hover{border-color:var(--color-border)}
.hd-form--rail gmp-place-autocomplete.hd-field__input:focus-within{
  background:var(--color-surface);border-color:var(--color-signature);
  box-shadow:0 0 0 3px var(--color-signature-10),0 2px 8px rgba(0,0,0,0.04);
}
.hd-form--rail gmp-place-autocomplete.hd-field__input::part(input){padding:11px 14px;font-size:.875rem}
.hd-form--rail .hd-field__input::placeholder{color:var(--color-warm-taupe);font-size:.8125rem}
.hd-form--rail textarea.hd-field__input{border-radius:var(--radius-lg);min-height:72px}
.hd-form--rail select.hd-field__input{border-radius:var(--radius-lg)}

/* ── Rail: hints ───────────────────────────────────────────────────── */
.hd-form--rail .hd-field__hint{font-size:.7rem;color:var(--color-warm-taupe);margin-top:5px}

/* ── Rail: choice cards — pill/chip style ──────────────────────────── */
.hd-form--rail .hd-field__choices{flex-direction:row;flex-wrap:wrap;gap:8px}
.hd-form--rail .hd-field__choice{
  border:1.5px solid var(--color-border-light);border-radius:var(--radius-full);
  padding:7px 16px;gap:8px;background:var(--color-bg);
  font-size:.8125rem;font-weight:500;
}
.hd-form--rail .hd-field__choice:hover{background:var(--color-bg-alt);border-color:var(--color-border)}
.hd-form--rail .hd-field__choice:has(input:checked){
  background:var(--color-signature);border-color:var(--color-signature);color:#fff;
  box-shadow:0 2px 8px rgba(232,97,26,0.2);
}
/* Radio/check indicators — smaller, tighter for pills */
.hd-form--rail .hd-field__radio{width:14px;height:14px;border-width:1.5px}
.hd-form--rail .hd-field__choice:has(input:checked) .hd-field__radio{background:#fff;border-color:#fff}
.hd-form--rail .hd-field__choice:has(input:checked) .hd-field__radio::after{background:var(--color-signature);width:7px;height:7px}
.hd-form--rail .hd-field__check{width:14px;height:14px;border-width:1.5px;border-radius:var(--radius-xs)}
.hd-form--rail .hd-field__choice:has(input:checked) .hd-field__check{background:#fff;border-color:#fff}
.hd-form--rail .hd-field__choice:has(input:checked) .hd-field__check::after{border-color:var(--color-signature)}

.hd-form--rail .hd-field__choice:has(input:checked) strong {color:var(--color-charcoal-hover);}
.hd-form--rail .hd-field__choice:has(input:checked) em {color:var(--color-charcoal-hover);}
.hd-form--rail .hd-field__choice:has(input:checked) .hd-u {color:var(--color-charcoal-hover);}

/* ── Rail: section divider — minimal line with label ───────────────── */
.hd-form--rail .hd-field--section{border-top:1.5px solid var(--color-border-light);padding-top:.625rem;margin-top:.375rem}
.hd-form--rail .hd-field--section::before{width:28px;height:2.5px;border-radius:2px}
.hd-form--rail .hd-field--section .hd-field__title{font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary)}

/* ── Rail: callouts — softer, rounded ──────────────────────────────── */
.hd-form--rail .hd-step__callout,
.hd-form--rail .hd-section__callout{
  border-radius:var(--radius-lg);border-left:3px solid var(--color-signature-20);
  background:var(--color-bg);padding:12px 16px;
}

/* ── Rail: HTML blocks ─────────────────────────────────────────────── */
.hd-form--rail .hd-field--html{
  background:var(--color-bg);border-radius:var(--radius-lg);padding:10px 14px;
  font-size:.8125rem;color:var(--color-text-secondary);
}

/* ── Rail: buttons — rounded, slightly larger ──────────────────────── */
.hd-form--rail .hd-step__next,
.hd-form--rail .hd-form__cta{
  border-radius:var(--radius-full);padding:10px 24px;font-size:.8125rem;
  box-shadow:0 2px 8px rgba(232,97,26,0.15);
}
.hd-form--rail .hd-step__next:hover,
.hd-form--rail .hd-form__cta:hover{
  box-shadow:0 4px 20px rgba(232,97,26,0.25);
}
.hd-form--rail .hd-step__back{
  border-radius:var(--radius-full);padding:10px 24px;
}

/* ── Rail: step nav — cleaner separator ────────────────────────────── */
.hd-form--rail .hd-step__nav{border-top:1.5px solid var(--color-border-light);padding-top:.875rem;margin-top:1.25rem}

/* ── Rail: field rows — slightly more gap ──────────────────────────── */
.hd-form--rail .hd-field-row{gap:1rem}

/* ════════════════════════════════════════════════════════════════════════
   STYLE 6 — LEDGER ACCORDION
   Editorial / document-inspired. No card borders — clean dividers,
   bold left accent bar on active step, underline inputs, large
   watermark step numbers, warm charcoal palette with signature accents.
   ════════════════════════════════════════════════════════════════════ */

/* Form shell override — warm parchment feel */
.hd-form--ledger{background:var(--color-bg);border-color:var(--color-border)}
.hd-form--ledger .hd-form__header{padding:1.75rem 1.75rem .5rem;border-bottom:1px solid var(--color-border-light)}
.hd-form--ledger .hd-form__title{font-size:1.5rem;font-weight:600;letter-spacing:-0.03em;color:var(--color-charcoal)}
.hd-form--ledger .hd-form__subtitle{color:var(--color-text-muted);font-size:.8125rem;margin-top:6px}
.hd-form--ledger .hd-form__step-counter{font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-warm-taupe)}
.hd-form--ledger .hd-form__body{padding:.75rem 0 0}
.hd-form--ledger .hd-form__footer{background:transparent;border-top:1px solid var(--color-border-light);padding:.875rem 1.75rem}

/* ── Progress: accordion via display:contents + order ──────────────── */
.hd-form--ledger .hd-form__body{display:flex;flex-direction:column}
.hd-form--ledger .hd-progress{display:contents}

/* Each step row — no borders, just a bottom divider */
.hd-form--ledger .hd-progress__step{
  display:flex;align-items:center;gap:14px;
  padding:14px 1.75rem;position:relative;
  border-bottom:1px solid var(--color-border-light);
  transition:all 300ms var(--ease-out);order:1;
  overflow:hidden;
  min-height: 48px;
}

/* Watermark step number — fixed right column, vertically centered, consistent size */
.hd-form--ledger .hd-progress__step::after{
  content:attr(data-step-num);position:absolute;right:.75rem;top:50%;transform:translateY(-50%);
  font-family:var(--font-heading);font-size:2rem;font-weight:800;
  color:var(--color-border);opacity:.25;line-height:1;pointer-events:none;
  transition:all 300ms var(--ease-out);width:2rem;text-align:center;
}

/* Indicator: small circle, left-aligned */
.hd-form--ledger .hd-progress__indicator{
  width:28px;height:28px;flex-shrink:0;
  font-size:.6875rem;font-weight:700;
  background:var(--color-surface);border:2px solid var(--color-border);color:var(--color-text-muted);
  transition:all 300ms var(--ease-out);
}

/* Label */
.hd-form--ledger .hd-progress__label{
  font-family:var(--font-heading);font-size:.875rem;font-weight:600;color:var(--color-text-muted);
  flex:1;transition:color 200ms;
}

/* Hide subtitle, desc, lock, counter, badge in progress steps */
.hd-form--ledger .hd-progress__subtitle,
.hd-form--ledger .hd-progress__desc,
.hd-form--ledger .hd-progress__lock,
.hd-form--ledger .hd-progress__counter{display:none}

/* Badge — far right of accordion header via flex order */
.hd-form--ledger .hd-progress__step-badge{
  display:inline-block;order:99;margin-left:auto;margin-right:1.5rem;padding:2px 8px;position:relative;z-index:1;
  font-size:.55rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--color-text-muted);background:var(--color-bg-alt);border:1px solid var(--color-border-light);
  border-radius:var(--radius-xs);transition:all 200ms var(--ease-out);flex-shrink:0;
}

/* ── Done state ────────────────────────────────────────────────────── */
.hd-form--ledger .hd-progress__step.is-done{
  order:1;cursor:pointer;background:transparent;
}
.hd-form--ledger .hd-progress__step.is-done:hover{background:var(--color-signature-5)}
.hd-form--ledger .hd-progress__step.is-done .hd-progress__indicator{
  background:var(--color-signature);border-color:var(--color-signature);color:#fff;width:24px;height:24px;
}
.hd-form--ledger .hd-progress__step.is-done .hd-progress__check{display:block;color:#fff;width:12px;height:12px}
.hd-form--ledger .hd-progress__step.is-done .hd-progress__label{color:var(--color-text-secondary)}
.hd-form--ledger .hd-progress__step.is-done .hd-progress__step-badge{color:var(--color-signature);background:var(--color-signature-5);border-color:var(--color-signature-15)}
.hd-form--ledger .hd-progress__step.is-done::after{color:var(--color-signature);opacity:.15}

/* ── Active state — bold left accent bar ───────────────────────────── */
.hd-form--ledger .hd-progress__step.is-active{
  order:2;background:var(--color-surface);
  border-bottom:none;
  box-shadow:inset 4px 0 0 var(--color-signature);
}
.hd-form--ledger .hd-progress__step.is-active .hd-progress__indicator{
  border-color:var(--color-signature);color:var(--color-signature);background:var(--color-surface);
  box-shadow:0 0 0 3px var(--color-signature-10);
}
.hd-form--ledger .hd-progress__step.is-active .hd-progress__label{color:var(--color-charcoal);font-weight:700}
.hd-form--ledger .hd-progress__step.is-active .hd-progress__step-badge{
  background:var(--color-signature);color:#fff;border-color:var(--color-signature);
}
.hd-form--ledger .hd-progress__step.is-active::after{color:var(--color-signature);opacity:.12}

/* ── Upcoming state ────────────────────────────────────────────────── */
.hd-form--ledger .hd-progress__step.is-upcoming{
  order:4;opacity:.45;
}
.hd-form--ledger .hd-progress__step.is-upcoming::after{opacity:.2}
/* Lock icon via ::after on label */
.hd-form--ledger .hd-progress__step.is-upcoming .hd-progress__label::after{
  content:'';display:inline-block;width:10px;height:10px;margin-left:6px;vertical-align:-1px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23A89F9B' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E") no-repeat center/contain;
}

/* ── Active step content ───────────────────────────────────────────── */
.hd-form--ledger .hd-step:not(.hd-step--hidden){
  order:3;
  padding:1.25rem 1.75rem 1.25rem calc(1.75rem + 4px);
  background:var(--color-surface);
  border-bottom:1px solid var(--color-border-light);
  box-shadow:inset 4px 0 0 var(--color-signature);
}
.hd-form--ledger .hd-step__header{text-align:left;margin-bottom:1rem}
.hd-form--ledger .hd-step__title{display:none}
/* Badge only on .hd-progress__step-badge (accordion row); hide duplicate .hd-step__badge in panel */
.hd-form--ledger .hd-step__badge{display:none}
.hd-form--ledger .hd-step__subtitle{font-size:.8125rem}

/* ── Underline-style inputs ────────────────────────────────────────── */
.hd-form--ledger .hd-field__input{
  border:none;border-bottom:1.5px solid var(--color-border);border-radius:0;
  padding:10px 2px;background:transparent;font-size:.9375rem;
}
.hd-form--ledger .hd-field__input:focus{
  border-bottom-color:var(--color-signature);box-shadow:0 1px 0 0 var(--color-signature);
}
.hd-form--ledger gmp-place-autocomplete.hd-field__input{
  border:none;border-radius:0;
  border-bottom:1.5px solid var(--color-border);
  background:transparent;
  box-shadow:none;
}
.hd-form--ledger gmp-place-autocomplete.hd-field__input:focus-within{
  border-bottom-color:var(--color-signature);box-shadow:0 1px 0 0 var(--color-signature);
}
.hd-form--ledger gmp-place-autocomplete.hd-field__input::part(input){padding:10px 2px;font-size:.9375rem}
.hd-form--ledger .hd-field__input::placeholder{color:var(--color-warm-taupe);opacity:.6}
.hd-form--ledger textarea.hd-field__input{
  border:1.5px solid var(--color-border-light);border-radius:var(--radius-sm);
  padding:10px 12px;background:var(--color-surface);
}
.hd-form--ledger textarea.hd-field__input:focus{
  border-color:var(--color-signature);box-shadow:0 0 0 3px var(--color-signature-10);
}
.hd-form--ledger select.hd-field__input{
  border:1.5px solid var(--color-border-light);border-radius:var(--radius-sm);
  padding:10px 36px 10px 12px;background:var(--color-surface);
}
.hd-form--ledger select.hd-field__input:focus{
  border-color:var(--color-signature);box-shadow:0 0 0 3px var(--color-signature-10);
}

/* ── Choice cards — borderless, just a left accent ─────────────────── */
.hd-form--ledger .hd-field__choice{
  border:none;border-left:3px solid transparent;border-radius:0;
  padding:8px 12px;background:transparent;
  transition:all 150ms var(--ease-out);
}
.hd-form--ledger .hd-field__choice:hover{
  background:var(--color-bg-alt);border-left-color:var(--color-border);
}
.hd-form--ledger .hd-field__choice:has(input:checked){
  background:var(--color-signature-5);border-left-color:var(--color-signature);
  box-shadow:none;
}

/* ── Section divider — more editorial ──────────────────────────────── */
.hd-form--ledger .hd-field--section{
  border-top:2px solid var(--color-charcoal);padding-top:.625rem;margin-top:.5rem;
}
.hd-form--ledger .hd-field--section::before{display:none}
.hd-form--ledger .hd-field--section .hd-field__title{
  font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-charcoal);
}

/* ── Callouts — warm sidebar style ─────────────────────────────────── */
.hd-form--ledger .hd-step__callout,
.hd-form--ledger .hd-section__callout{
  background:transparent;border-left:3px solid var(--color-champagne);
  padding:10px 14px;color:var(--color-text-secondary);
}

/* ── Buttons — understatement ──────────────────────────────────────── */
.hd-form--ledger .hd-step__next,
.hd-form--ledger .hd-form__cta{
  background:var(--color-charcoal);color:#fff;border-radius:var(--radius-sm);
  font-size:.8125rem;letter-spacing:.02em;
}
.hd-form--ledger .hd-step__next:hover,
.hd-form--ledger .hd-form__cta:hover{
  background:var(--color-charcoal-dark);transform:translateY(-1px);
  box-shadow:0 4px 16px rgba(0,0,0,0.15);
}
.hd-form--ledger .hd-step__back{
  border:1.5px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-sm);
}

/* ════════════════════════════════════════════════════════════════════════
   CHOICE COLUMN MODIFIERS — explicit 1-col or 2-col set in the form builder.
   Placed after all theme rules: same specificity (.hd-form + .hd-field__choices--*)
   wins via source order, overriding cascade/split 2-col defaults and
   single-col defaults of other themes alike.
   ════════════════════════════════════════════════════════════════════ */
.hd-form .hd-field__choices--cols-1{
  display:flex;flex-direction:column;flex-wrap:nowrap;gap:8px;
}
.hd-form .hd-field__choices--cols-2{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
}
