:root{
  --sf-bg-page: #ffffff;
  --sf-bg-dark: #151515;
  --sf-bg-card: #ffffff;
  --sf-ink: #1a1a1a;
  --sf-muted: #6b6b6b;
  --sf-line: #e3e3e3;
  --sf-accent: #f1b578;
  --sf-accent-ink: #ffffff;
  --sf-progress-track: #e3e3e3;
  --sf-progress-fill: #f1b578;
  --sf-radius-outer: 24px;
  --sf-radius-card: 20px;
  --sf-radius-input: 10px;
  --sf-font-display: "Radio Canada Big", ui-sans-serif, system-ui, -apple-system, sans-serif;
  --sf-font-body: "Rethink Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--sf-bg-page);color:var(--sf-ink);font-family:var(--sf-font-body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}

.sf-shell{width:min(1360px, calc(100% - 40px));margin:40px auto}

.sf-frame{background:var(--sf-bg-dark);border-radius:var(--sf-radius-outer);display:grid;grid-template-columns:1fr 1fr;overflow:hidden;min-height:640px}
.sf-frame__photo{position:relative}
.sf-frame__photo img{width:100%;height:100%;object-fit:cover;object-position:top center;min-height:640px}
.sf-frame__form{display:flex;align-items:center;padding:56px}

.sf-wizard{background:var(--sf-bg-card);border-radius:var(--sf-radius-card);padding:44px;width:100%;box-shadow:0 30px 60px rgba(0,0,0,.25)}
.sf-wizard h1{font-family:var(--sf-font-display);font-weight:700;font-size:34px;letter-spacing:-.01em;margin:0 0 6px}
.sf-wizard__lead{color:var(--sf-muted);font-size:16px;margin:0 0 20px}

.sf-wizard__step-title{font-family:var(--sf-font-display);font-weight:600;font-size:16px;color:var(--sf-muted);margin:0 0 16px}

.sf-progress{margin-bottom:16px}
.sf-progress__track{height:8px;border-radius:999px;background:var(--sf-progress-track);overflow:hidden}
.sf-progress__fill{height:100%;width:0%;background:var(--sf-progress-fill);border-radius:999px;transition:width .35s ease}
.sf-progress__pct{display:block;text-align:right;font-size:12px;color:var(--sf-muted);margin-top:6px;font-variant-numeric:tabular-nums}

.sf-wizard__body{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px}
.sf-field{display:flex;flex-direction:column;gap:6px}
.sf-field--c2{grid-column:1/-1}
.sf-field label{font-size:13px;font-weight:600;color:var(--sf-ink)}
.sf-req{color:var(--sf-accent);margin-left:3px}

.sf-input input[type="text"],
.sf-input input[type="tel"],
.sf-input input[type="email"],
.sf-input input[type="number"],
.sf-input select,
.sf-input textarea{
  width:100%;font-family:var(--sf-font-body);font-size:15px;color:var(--sf-ink);
  border:1px solid var(--sf-line);border-radius:var(--sf-radius-input);padding:13px 14px;background:#fff;
}
.sf-input textarea{resize:vertical;min-height:88px}
.sf-input input:focus,.sf-input select:focus,.sf-input textarea:focus{outline:none;border-color:var(--sf-accent)}
.sf-input select{appearance:none;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="8"><path d="M1 1l5 5 5-5" stroke="%236b6b6b" stroke-width="1.6" fill="none"/></svg>');background-repeat:no-repeat;background-position:right 14px center}

.sf-field--group .sf-input{display:flex;flex-wrap:wrap;gap:10px}
.sf-radio,.sf-check{display:flex;align-items:center;gap:10px;border:1px solid var(--sf-line);border-radius:var(--sf-radius-input);padding:12px 14px;font-size:14px;cursor:pointer}
.sf-radio input,.sf-check input{accent-color:var(--sf-accent);width:20px;height:20px;flex:0 0 20px}

.sf-wizard__nav{display:flex;gap:12px}
.sf-btn{font-family:var(--sf-font-body);font-weight:600;font-size:15px;border-radius:var(--sf-radius-input);padding:14px 22px;border:none;cursor:pointer}
.sf-btn--primary{background:var(--sf-accent);color:var(--sf-accent-ink);flex:1}
.sf-btn--primary:disabled{opacity:.6;cursor:default}
.sf-btn--ghost{background:transparent;border:1px solid var(--sf-line);color:var(--sf-ink)}
.sf-wizard__error{color:#b3261e;font-size:13px;margin-top:12px;min-height:16px}

.sf-done h2{font-family:var(--sf-font-display);font-size:26px;margin:0 0 12px}
.sf-done p{color:var(--sf-muted);font-size:16px;line-height:1.6;margin:0}

@media(max-width:900px){
  .sf-frame{grid-template-columns:1fr}
  .sf-frame__photo{height:280px}
  .sf-frame__photo img{min-height:280px}
  .sf-frame__form{padding:28px 20px}
  .sf-wizard{padding:26px}
  .sf-wizard h1{font-size:28px}
  .sf-wizard__body{grid-template-columns:1fr}
  .sf-field--c1,.sf-field--c2{grid-column:1/-1}
}
