/* For franchise owners: form-first layout */
[hidden] { display: none !important; }
.partner-switch { display: flex; border: 1px solid var(--ink-muted); margin-bottom: 28px; }
.partner-switch button { flex: 1; min-height: 48px; padding: 10px; font: 500 16px var(--font-body); border: 0; background: transparent; color: var(--black); cursor: pointer; }
.partner-switch button[aria-pressed="true"] { background: var(--red); color: #fff; }
.fo-panel input[type="checkbox"] { width: auto; min-height: 0; padding: 0; }
.fo-main { background: var(--black); }
.fo-first { min-height: calc(100dvh - 87px); display: flex; align-items: center; }
.fo-first .wrap { width: 100%; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 64px; align-items: center; padding-top: 32px; padding-bottom: 32px; }
.fo-intro { position: sticky; top: 32px; align-self: start; display: flex; flex-direction: column; gap: 22px; padding-top: 24px; }
.fo-title { font-size: clamp(34px, 3.3vw, 52px); line-height: 0.95; white-space: nowrap; }
.fo-lede { margin: 0; max-width: 520px; font-size: 18px; line-height: 1.55; color: var(--text-body); }
.fo-points { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 0; }
.fo-points li { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 20px; align-items: baseline; border-top: 2px solid var(--red); padding: 16px 0 18px; }
.fo-points strong { color: #fff; font-size: 16px; font-weight: 600; }
.fo-points span { font-size: 16px; line-height: 1.45; color: var(--text-body); }
.fo-panel { background: var(--bone); color: var(--ink); padding: 36px 40px 32px; align-self: center; }
.fo-panel-title { margin: 0 0 20px; font-size: 22px; font-weight: 600; color: var(--black); line-height: 1.2; }
.fo-panel .form { gap: 16px; }
.fo-panel .form-row { gap: 20px; flex-wrap: nowrap; }
.fo-panel .form-row .field { flex: 1 1 0; min-width: 0; }
.fo-panel .field { gap: 4px; }
.fo-panel .form > .field { flex: 0 1 auto; }
.fo-panel .field input, .fo-panel .field select, .fo-panel .field textarea { padding: 9px 0; min-height: 42px; }
.fo-panel .field textarea { min-height: 0; }
.fo-panel .btn-dark { width: 100%; justify-content: center; min-height: 52px; }
.fo-panel .form-status { min-height: 0; }
.fo-panel .form-status:empty { display: none; }
.fo-form-progress { display: grid; gap: 8px; margin: 0 0 20px; }
.fo-form-progress-track { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; height: 3px; }
.fo-form-progress-track span { display: block; background: #d5d0c7; }
.fo-form-progress-track span.is-filled { background: var(--red); }
.fo-form-step-count { margin: 0; color: var(--ink-muted); font-size: 12px; line-height: 1.2; }
.fo-form-step { display: grid; gap: 16px; min-width: 0; }
.fo-form-step-title { margin: 0; color: var(--black); font-size: 18px; line-height: 1.2; }
.fo-form-step-title:focus { outline: 2px solid var(--red); outline-offset: 4px; }
.fo-panel .fo-form-step .field { min-width: 0; }
.fo-panel .field-error { color: #a20f1a; font-size: 13px; line-height: 1.35; }
.fo-panel .field [aria-invalid="true"] { border-color: #a20f1a; }
.fo-panel .interest-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.fo-panel .interest-fieldset legend { margin: 0 0 4px; padding: 0; color: var(--ink); font-size: 14px; font-weight: 600; }
.interest-choices { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.interest-choice { position: relative; display: flex; align-items: flex-start; min-width: 0; min-height: 48px; padding: 11px 14px; border: 1px solid #b8b3aa; background: var(--bone); color: var(--ink); cursor: pointer; font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }
.interest-choice:has(.interest-radio:checked) { border-color: var(--red); background: var(--red); color: #fff; }
.interest-choice:has(.interest-radio:focus-visible) { outline: 2px solid var(--red); outline-offset: 3px; }
.interest-choice span { min-width: 0; }
.interest-radio { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; }
.fo-panel .interest-fieldset[aria-invalid="true"] .interest-choice { border-color: #a20f1a; }
.fo-panel .fo-continue { width: 100%; justify-content: center; min-height: 52px; }
.fo-confidential { margin: -6px 0 0; color: var(--ink-muted); font-size: 12px; line-height: 1.4; text-align: center; }
.fo-form-actions { display: grid; gap: 12px; }
.fo-panel .fo-form-actions .btn-dark { width: 100%; justify-content: center; min-height: 52px; }
.fo-form-back { justify-self: center; padding: 4px 8px; border: 0; background: transparent; color: var(--ink); font: inherit; text-decoration: underline; cursor: pointer; }
.fo-form-back:focus-visible, .fo-continue:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.fo-panel .step-choice-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.fo-panel .step-choice-group legend { grid-column: 1 / -1; margin: 0 0 4px; padding: 0; font-size: 14px; font-weight: 600; }
.fo-panel .step-choice-group > label { display: flex; flex-direction: row; align-items: center; gap: 7px; min-width: 0; }
.fo-panel .step-choice-group input[type="radio"] { width: auto; min-height: 0; margin: 0; }
.fo-panel [data-checkbox-group][aria-invalid="true"],
.fo-panel .step-choice-group[aria-invalid="true"] { outline: 1px solid #a20f1a; outline-offset: 4px; }

.fo-story { background: #141416; border-top: 1px solid var(--line); }
.fo-story-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(48px, 8vw, 120px); padding-top: clamp(64px, 8vw, 112px); padding-bottom: clamp(64px, 8vw, 112px); }
.fo-story-heading .label { margin-bottom: 24px; }
.fo-story-heading h2 { max-width: 560px; margin: 0; font-size: clamp(38px, 5vw, 72px); line-height: .98; }
.fo-story-copy { display: grid; align-content: center; gap: 22px; max-width: 680px; }
.fo-story-copy p { margin: 0; color: var(--text-body); font-size: 16px; line-height: 1.65; }
.fo-story-copy .fo-story-lede { font-size: 19px; line-height: 1.55; color: var(--bone); }
.fo-story-copy .fo-story-close { position: relative; margin-top: 10px; padding-top: 24px; color: var(--bone); font-weight: 700; }
.fo-story-copy .fo-story-close::before { position: absolute; top: 0; left: 0; width: 42px; height: 2px; background: var(--red); content: ""; }

.fo-photo-band { position: relative; isolation: isolate; height: clamp(220px, 36.1vw, 520px); overflow: hidden; background: var(--black); }
.fo-photo-band > img { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.fo-photo-band::after { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(to top, rgba(12,12,13,.94) 0%, rgba(12,12,13,.55) 32%, rgba(12,12,13,.08) 76%, transparent 100%); }
.fo-photo-band-content { position: relative; z-index: 2; display: flex; align-items: flex-end; height: 100%; padding-top: 28px; padding-bottom: clamp(24px, 4.5vw, 64px); }
.fo-photo-band-title { max-width: 1200px; margin: 0; font-size: clamp(30px, 4.5vw, 64px); line-height: .95; }

@media (max-width: 1100px) {
  .fo-title { white-space: normal; }
}
@media (max-width: 900px) {
  .fo-first { min-height: 0; display: block; }
  .fo-first .wrap { grid-template-columns: minmax(0, 1fr); gap: 40px; padding-top: 48px; padding-bottom: 56px; }
  .fo-intro { position: static; padding-top: 0; }
  .fo-points li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .fo-panel { padding: 28px 20px 24px; }
  .fo-panel .form-row { flex-wrap: wrap; }
  .fo-panel .form-row .field { flex: 1 1 100%; }
  .fo-story-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; padding-top: 64px; padding-bottom: 64px; }
  .fo-story-heading .label { margin-bottom: 18px; }
  .fo-story-copy { gap: 18px; }
}
@media (max-width: 599px) {
  .interest-choices { grid-template-columns: minmax(0, 1fr); }
  .interest-choice { width: 100%; }
}
