/* ---------------- WILL INSTRUCTION FORM ---------------- */

[hidden]{ display:none !important; }

.wf-shell{ max-width:760px; margin:0 auto; padding:8px 5vw 120px; }
.wf-shell .back-row{ margin:0 0 32px; }

.wf-eyebrow{ font-size:.78rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); margin:0 0 14px; }
.wf-title{ font-size:clamp(1.8rem,3.4vw,2.5rem); line-height:1.2; margin:0 0 18px; }
.wf-lede{ font-size:1.02rem; line-height:1.7; color:var(--muted); margin:0 0 34px; max-width:60ch; }

/* Intro card */
.wf-intro-card{ background:var(--card); border:1px solid var(--line); border-radius:10px; padding:36px; margin:0 0 40px;
  animation:wfIntroIn .6s cubic-bezier(.16,.8,.3,1) both; }
@keyframes wfIntroIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.wf-intro-list{ list-style:none; margin:0 0 30px; padding:0; display:flex; flex-direction:column; gap:16px; }
.wf-intro-list li{ display:flex; align-items:flex-start; gap:14px; }
.wf-intro-list .num{ flex:none; width:28px; height:28px; border-radius:50%; background:var(--band); color:var(--accent);
  font-weight:700; font-size:.82rem; display:flex; align-items:center; justify-content:center; font-family:'Lora',serif; }
.wf-intro-list b{ display:block; font-weight:600; color:var(--ink); margin-bottom:2px; font-size:.98rem; }
.wf-intro-list span{ font-size:.9rem; color:var(--muted); line-height:1.55; }
.wf-privacy-note{ display:flex; gap:12px; align-items:flex-start; background:var(--band); border-radius:6px; padding:14px 16px; font-size:.86rem; color:var(--ink); line-height:1.55; margin:0 0 30px; }
.wf-privacy-note svg{ flex:none; width:18px; height:18px; margin-top:1px; color:var(--accent); }

/* Progress */
.wf-progress-wrap{ position:sticky; top:0; z-index:5; background:rgba(255,255,255,.92); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  margin:0 -5vw 34px; padding:16px 5vw 14px; border-bottom:1px solid var(--line); }
.wf-progress-track{ height:5px; border-radius:3px; background:var(--line); overflow:hidden; margin:0 0 10px; }
.wf-progress-fill{ height:100%; background:linear-gradient(90deg,var(--accent),var(--accent-bright)); border-radius:3px; transition:width .35s ease; width:0%; }
.wf-progress-text{ display:flex; justify-content:space-between; align-items:baseline; font-size:.82rem; color:var(--muted); }
.wf-progress-text .wf-step-name{ font-weight:600; color:var(--ink); }

/* Steps */
.wf-step{ display:none; }
.wf-step.is-active{ display:block; animation:wfFade .28s ease; }
@keyframes wfFade{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
.wf-step-head{ margin:0 0 30px; }
.wf-step-head h2{ font-size:1.5rem; line-height:1.3; margin:0 0 10px; }
.wf-step-head p{ font-size:.95rem; line-height:1.6; color:var(--muted); margin:0; max-width:56ch; }

.wf-section{ margin:0 0 38px; }
.wf-section-title{ font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin:0 0 16px; }

/* Checkbox consent field */
.check-field{ display:flex; align-items:flex-start; gap:12px; cursor:pointer; padding:18px 20px; background:var(--card); border:1.5px solid var(--line); border-radius:8px; transition:border-color .15s ease; }
.check-field:has(input:focus-visible){ border-color:var(--accent); outline:2px solid var(--accent); outline-offset:2px; }
.check-field input[type=checkbox]{ flex:none; width:20px; height:20px; margin-top:2px; accent-color:var(--accent); cursor:pointer; }
.check-field span{ font-size:.94rem; line-height:1.6; color:var(--ink); font-weight:400; }

/* Fields */
.field{ display:flex; flex-direction:column; gap:6px; margin:0 0 18px; }
.field label, .field-label{ font-size:.82rem; font-weight:600; color:var(--ink); }
.field .hint{ font-size:.78rem; color:var(--muted); font-weight:400; }
.field input[type=text], .field input[type=tel], .field input[type=email], .field input[type=number], .field select, .field textarea{
  font-family:'Work Sans',sans-serif; font-size:.96rem; color:var(--ink);
  background:#fff; border:1.5px solid var(--line); border-radius:6px; padding:12px 14px; resize:vertical; width:100%;
}
.field select{ appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%235B7385' stroke-width='1.6' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:36px; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent); }
.field-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px 18px; }
.field-row.cols-3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:600px){ .field-row, .field-row.cols-3{ grid-template-columns:1fr; } }

/* Yes/No pill toggles */
.pill-group{ display:inline-flex; gap:10px; flex-wrap:wrap; }
.pill{ position:relative; }
.pill input{ position:absolute; opacity:0; width:1px; height:1px; }
.pill span{ display:inline-flex; align-items:center; padding:10px 22px; border-radius:24px; border:1.5px solid var(--line);
  font-size:.9rem; font-weight:600; color:var(--ink); cursor:pointer; transition:all .15s ease; user-select:none; }
.pill input:checked + span{ background:var(--accent); border-color:var(--accent); color:#fff; }
.pill input:focus-visible + span{ outline:2px solid var(--accent); outline-offset:2px; }

/* Choice cards (distribution) */
.choice-cards{ display:flex; flex-direction:column; gap:14px; }
.choice-card{ position:relative; display:block; border:1.5px solid var(--line); border-radius:10px; padding:20px 22px; cursor:pointer; transition:all .15s ease; }
.choice-card input{ position:absolute; opacity:0; width:1px; height:1px; }
.choice-card .cc-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 6px; }
.choice-card .cc-letter{ flex:none; width:30px; height:30px; border-radius:50%; background:var(--band); color:var(--accent);
  font-weight:700; font-size:.85rem; display:flex; align-items:center; justify-content:center; font-family:'Lora',serif; margin-right:12px; }
.choice-card .cc-title{ font-weight:600; color:var(--ink); font-size:1rem; flex:1; }
.choice-card .cc-radio{ flex:none; width:20px; height:20px; border-radius:50%; border:1.5px solid var(--line); display:flex; align-items:center; justify-content:center; }
.choice-card .cc-radio::after{ content:''; width:10px; height:10px; border-radius:50%; background:var(--accent); opacity:0; transition:opacity .15s ease; }
.choice-card .cc-body{ font-size:.88rem; color:var(--muted); line-height:1.55; padding-left:42px; }
.choice-card:hover{ border-color:var(--accent-bright); }
.choice-card.is-selected{ border-color:var(--accent); background:var(--band); }
.choice-card.is-selected .cc-radio::after{ opacity:1; }
.choice-card.is-focused{ outline:2px solid var(--accent); outline-offset:2px; }

/* Repeaters */
.repeater-row{ border:1px solid var(--line); border-radius:8px; padding:20px 20px 6px; margin:0 0 14px; position:relative; background:#fff; }
.repeater-row[hidden]{ display:none; }
.repeater-row-head{ display:flex; align-items:center; justify-content:space-between; margin:0 0 14px; }
.repeater-row-head .rr-label{ font-size:.8rem; font-weight:700; color:var(--accent); text-transform:uppercase; letter-spacing:.06em; }
.rr-remove{ background:none; border:none; color:var(--muted); font-size:.82rem; font-weight:600; cursor:pointer; padding:4px 6px; display:inline-flex; align-items:center; gap:5px; }
.rr-remove:hover{ color:#C0392B; }
.repeater-actions{ margin:0 0 30px; }
.btn-add{ display:inline-flex; align-items:center; gap:8px; background:none; border:1.5px dashed var(--line); color:var(--accent);
  font-family:'Work Sans',sans-serif; font-weight:600; font-size:.88rem; padding:11px 20px; border-radius:6px; cursor:pointer; transition:border-color .15s ease; }
.btn-add:hover{ border-color:var(--accent); }
.btn-add:disabled{ opacity:.4; cursor:not-allowed; }
.btn-add svg{ width:14px; height:14px; }

.sum-indicator{ display:inline-flex; align-items:center; gap:8px; font-size:.85rem; font-weight:600; color:var(--muted);
  background:var(--band); border-radius:20px; padding:8px 16px; margin:0 0 20px; }
.sum-indicator .dot{ width:8px; height:8px; border-radius:50%; background:var(--muted); }
.sum-indicator.is-complete{ color:#1E7A46; background:#E7F5EC; }
.sum-indicator.is-complete .dot{ background:#1E7A46; }
.sum-indicator.is-over{ color:#B23A2F; background:#FBEAE7; }
.sum-indicator.is-over .dot{ background:#B23A2F; }

/* Inline callouts */
.wf-note{ font-size:.88rem; line-height:1.6; color:var(--ink); background:var(--card-2); border-radius:6px; padding:14px 16px; margin:0 0 26px; }
.wf-note.is-warning{ background:#FBF3E3; }
.wf-note.is-info{ background:var(--band); }
.wf-empty-note{ font-size:.92rem; color:var(--muted); line-height:1.6; background:var(--card); border:1px dashed var(--line); border-radius:8px; padding:22px; text-align:center; }

/* Nav buttons */
.wf-nav{ display:flex; justify-content:space-between; align-items:center; gap:16px; margin:44px 0 0; padding-top:26px; border-top:1px solid var(--line); }
.wf-nav .spacer{ flex:1; }
.btn-ghost{ display:inline-flex; align-items:center; gap:8px; background:none; border:none; color:var(--ink); font-family:'Work Sans',sans-serif;
  font-weight:600; font-size:.92rem; cursor:pointer; padding:13px 10px; }
.btn-ghost:hover{ color:var(--accent); }
button.btn-solid{ font-family:'Work Sans',sans-serif; }
button.btn-solid:disabled{ opacity:.5; cursor:not-allowed; }

/* Review */
.review-group{ margin:0 0 28px; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.review-group-head{ display:flex; align-items:center; justify-content:space-between; padding:14px 18px; background:var(--band); }
.review-group-head h3{ font-family:'Work Sans',sans-serif; font-size:.88rem; font-weight:700; color:var(--ink); margin:0; }
.review-edit{ font-size:.8rem; font-weight:600; color:var(--accent); text-decoration:none; }
.review-rows{ padding:6px 18px; }
.review-row{ display:flex; gap:18px; padding:11px 0; border-bottom:1px solid var(--line); font-size:.88rem; }
.review-row:last-child{ border-bottom:none; }
.review-row .rk{ flex:none; width:38%; color:var(--muted); }
.review-row .rv{ flex:1; color:var(--ink); font-weight:500; word-break:break-word; }

/* Success screen */
.wf-success{ text-align:center; padding:60px 20px; }
.wf-success .check-circle{ width:64px; height:64px; border-radius:50%; background:var(--band); color:var(--accent);
  display:flex; align-items:center; justify-content:center; margin:0 auto 24px; }
.wf-success .check-circle svg{ width:30px; height:30px; }
.wf-success h2{ font-size:1.6rem; margin:0 0 14px; }
.wf-success p{ font-size:.98rem; color:var(--muted); line-height:1.65; max-width:48ch; margin:0 auto 28px; }

.wf-draft-banner{ display:flex; align-items:center; justify-content:space-between; gap:16px; background:var(--band); border-radius:8px;
  padding:14px 18px; margin:0 0 30px; font-size:.88rem; color:var(--ink); }
.wf-draft-banner button{ background:none; border:none; color:var(--accent); font-weight:600; font-size:.86rem; cursor:pointer; flex:none; }

.hp-field{ position:absolute; left:-9999px; top:-9999px; }
