/* APVOKAT – Web-Formulare (self-hosted) */
:root{
  --brand:#0079DE;
  --brand-dark:#0563b4;
  --ink:#0f1b2d;
  --muted:#5b6b7f;
  --line:#e3e9f0;
  --bg:#eef2f6;
  --card:#ffffff;
  --ok:#0f8a5f;
  --err:#d33a3a;
  --radius:14px;
  --shadow:0 18px 50px -22px rgba(15,27,45,.35);
  --font-head:"Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-body:"Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--font-body);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}

/* Header */
.apv-header{
  background:var(--card);border-bottom:1px solid var(--line);
}
.apv-header__inner{
  max-width:1080px;margin:0 auto;padding:18px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.apv-logo img{display:block;height:34px;width:auto}
.apv-header__cta{
  font-family:var(--font-head);font-weight:600;font-size:14px;
  color:#fff;background:var(--brand);padding:10px 18px;border-radius:999px;
  transition:background .2s ease;
}
.apv-header__cta:hover{background:var(--brand-dark);text-decoration:none}

/* Layout */
.apv-main{max-width:760px;margin:0 auto;padding:44px 20px 72px}
.apv-card{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow);
  padding:clamp(24px,4vw,44px);
}

/* Intro */
.apv-intro{text-align:center;padding:12px 4px 4px}
.apv-intro h1{
  font-family:var(--font-head);font-weight:700;line-height:1.12;
  font-size:clamp(1.7rem,1.1rem+2.6vw,2.6rem);margin:.2em 0 .35em;
  letter-spacing:-.01em;
}
.apv-intro p{color:var(--muted);max-width:52ch;margin:0 auto 1.6em;font-size:1.05rem}

/* Stepper */
.apv-stepper{display:flex;align-items:center;justify-content:center;gap:0;margin:2px 0 30px}
.apv-step-dot{
  width:30px;height:30px;border-radius:50%;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;
  font:600 13px/1 var(--font-head);color:var(--muted);
  background:#eef2f7;border:2px solid #eef2f7;transition:.25s ease;
}
.apv-step-dot.is-active{background:var(--brand);border-color:var(--brand);color:#fff}
.apv-step-dot.is-done{background:var(--brand);border-color:var(--brand);color:#fff}
.apv-step-bar{height:2px;width:26px;background:#e0e6ee;transition:.25s ease}
.apv-step-bar.is-done{background:var(--brand)}

/* Step */
.apv-step__title{
  font-family:var(--font-head);font-weight:700;text-align:center;
  font-size:clamp(1.35rem,1rem+1.4vw,1.85rem);margin:0 0 26px;letter-spacing:-.01em;
}
.apv-fields{display:grid;gap:18px}
.apv-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:560px){.apv-grid-2{grid-template-columns:1fr}}

.apv-field label,.apv-field .apv-label{
  display:block;font-family:var(--font-head);font-weight:600;font-size:.92rem;
  margin-bottom:7px;color:var(--ink);
}
.apv-field .req{color:var(--brand)}
.apv-input,.apv-textarea,.apv-select{
  width:100%;font-family:var(--font-body);font-size:1rem;color:var(--ink);
  background:#fff;border:1.5px solid var(--line);border-radius:10px;
  padding:12px 14px;transition:border-color .15s ease,box-shadow .15s ease;
}
.apv-textarea{min-height:120px;resize:vertical}
.apv-input:focus,.apv-textarea:focus,.apv-select:focus{
  outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(0,121,222,.14);
}
.apv-input::placeholder,.apv-textarea::placeholder{color:#9aa7b6}
.apv-hint{font-size:.82rem;color:var(--muted);margin-top:6px}

/* Radio pills */
.apv-radios{display:flex;gap:10px;flex-wrap:wrap}
.apv-radio{
  position:relative;cursor:pointer;
  font-family:var(--font-head);font-weight:600;font-size:.95rem;color:var(--ink);
  border:1.5px solid var(--line);border-radius:10px;padding:10px 22px;background:#fff;
  transition:.15s ease;user-select:none;
}
.apv-radio input{position:absolute;opacity:0;inset:0;cursor:pointer}
.apv-radio:hover{border-color:#c3d3e4}
.apv-radio.is-checked{border-color:var(--brand);background:rgba(0,121,222,.07);color:var(--brand-dark)}

/* File uploads */
.apv-drop{
  border:1.5px dashed #c3d3e4;border-radius:11px;padding:18px;text-align:center;
  background:#fafcfe;cursor:pointer;transition:.15s ease;
}
.apv-drop:hover,.apv-drop.is-drag{border-color:var(--brand);background:rgba(0,121,222,.05)}
.apv-drop__t{font-family:var(--font-head);font-weight:600;color:var(--ink);font-size:.95rem}
.apv-drop__s{font-size:.82rem;color:var(--muted);margin-top:3px}
.apv-drop input{display:none}
.apv-filelist{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.apv-filelist li{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:.86rem;background:#eef4fb;border:1px solid #dbe7f5;border-radius:8px;padding:7px 11px;
}
.apv-filelist button{
  border:0;background:none;color:var(--err);cursor:pointer;font-size:1.1rem;line-height:1;padding:0 2px;
}

/* Checkbox */
.apv-check{display:flex;gap:11px;align-items:flex-start;font-size:.92rem;color:var(--muted)}
.apv-check input{margin-top:3px;width:18px;height:18px;accent-color:var(--brand);flex:0 0 auto}

/* Actions */
.apv-actions{display:flex;gap:12px;justify-content:center;margin-top:30px;flex-wrap:wrap}
.apv-btn{
  font-family:var(--font-head);font-weight:600;font-size:1rem;cursor:pointer;
  border-radius:999px;padding:13px 30px;border:1.5px solid transparent;transition:.18s ease;
}
.apv-btn--primary{background:var(--brand);color:#fff}
.apv-btn--primary:hover{background:var(--brand-dark)}
.apv-btn--primary:disabled{opacity:.6;cursor:default}
.apv-btn--ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.apv-btn--ghost:hover{border-color:#c3d3e4}

/* Feedback */
.apv-error{
  display:none;margin-top:18px;padding:12px 15px;border-radius:10px;
  background:#fdeaea;border:1px solid #f6c9c9;color:#a12727;font-size:.92rem;
}
.apv-error.is-visible{display:block}
.apv-field.has-error .apv-input,.apv-field.has-error .apv-textarea,.apv-field.has-error .apv-select{
  border-color:var(--err);box-shadow:0 0 0 3px rgba(211,58,58,.12);
}

/* Success */
.apv-success{text-align:center;padding:20px 6px}
.apv-success__icon{
  width:66px;height:66px;border-radius:50%;background:rgba(15,138,95,.12);color:var(--ok);
  display:flex;align-items:center;justify-content:center;margin:0 auto 20px;
  font-size:34px;font-weight:700;
}
.apv-success h2{font-family:var(--font-head);font-weight:700;font-size:1.7rem;margin:0 0 10px}
.apv-success p{color:var(--muted);max-width:46ch;margin:0 auto}

/* Panel transition */
.apv-panel{animation:apvFade .28s ease}
@keyframes apvFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.apv-panel{animation:none}}

/* Footer */
.apv-footer{border-top:1px solid var(--line);background:#fff}
.apv-footer__inner{
  max-width:1080px;margin:0 auto;padding:26px 24px;
  display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;justify-content:space-between;
  font-size:.85rem;color:var(--muted);
}
.apv-footer a{color:var(--muted)}
.apv-footer a:hover{color:var(--brand)}
