/* NetVoiceConnect – Ziggo Order Form Styles */
/* Kleuren komen via CSS variabelen vanuit de plugin-instellingen */

#nvc-order,#nvc-pc-widget{
  --p:#E8501E;
  --d:#1E3A5F;
  --bg:#F7F9FC;
  --bdr:#DDE3EE;
  --ok:#1e7e34;
  --err:#c0392b;
  --r:10px;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  font-size:16px;
  line-height:1.5;
  color:#222;
}

/* ── Wrapper ──────────────────────────────────────────────────────────── */
.nvc-order-wrap{
  max-width:760px;
  margin:0 auto;
  padding:0 16px 32px;
}

/* ── Brand bar ────────────────────────────────────────────────────────── */
.nvc-brand-bar{text-align:center;padding:16px 0 8px}
.nvc-brand-logo{max-height:56px;width:auto}
.nvc-order-title{
  text-align:center;
  font-size:clamp(20px,4vw,28px);
  font-weight:700;
  color:var(--d);
  margin:0 0 24px;
}

/* ── Progress ─────────────────────────────────────────────────────────── */
.nvc-progress{
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:28px;
  gap:0;
}
.nvc-step{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  font-size:13px;
  font-weight:600;
  color:#aaa;
  transition:color .3s;
  min-width:70px;
  text-align:center;
}
.nvc-step span{
  width:32px;height:32px;
  border-radius:50%;
  border:2px solid #ddd;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;
  background:#fff;
  color:#aaa;
  transition:all .3s;
}
.nvc-step.active{color:var(--p)}
.nvc-step.active span{background:var(--p);border-color:var(--p);color:#fff}
.nvc-step.done{color:var(--d)}
.nvc-step.done span{background:var(--d);border-color:var(--d);color:#fff}
.nvc-step-div{flex:1;height:2px;background:#ddd;max-width:60px;margin-bottom:18px}
@media(max-width:480px){
  .nvc-step{min-width:50px;font-size:11px}
  .nvc-step span{width:26px;height:26px;font-size:12px}
}

/* ── Panels ───────────────────────────────────────────────────────────── */
.nvc-panel{
  display:none;
  background:#fff;
  border:1px solid var(--bdr);
  border-radius:var(--r);
  padding:24px 28px;
  box-shadow:0 2px 12px rgba(0,0,0,.07);
  animation:nvcIn .25s ease;
}
.nvc-panel.active{display:block}
@keyframes nvcIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.nvc-panel-title{
  font-size:20px;font-weight:700;color:var(--d);
  margin:0 0 6px;display:flex;align-items:center;gap:8px;
}
.nvc-panel-icon{font-size:22px}
.nvc-panel-sub{color:#666;margin:0 0 20px;font-size:15px}
.nvc-section-head{font-size:15px;font-weight:700;color:var(--d);margin:20px 0 10px;border-bottom:1px solid var(--bdr);padding-bottom:6px}

/* ── Fields ───────────────────────────────────────────────────────────── */
.nvc-field-row{
  display:flex;gap:14px;margin-bottom:14px;flex-wrap:wrap;
}
.nvc-field{flex:1;min-width:140px;display:flex;flex-direction:column;gap:5px}
.nvc-field-sm{flex:0 0 100px;min-width:80px}
.nvc-field-lg{flex:2;min-width:200px}
.nvc-field label{font-size:14px;font-weight:600;color:#333}
.nvc-req{color:var(--err)}

.nvc-input{
  width:100%;
  padding:10px 13px;
  border:1.5px solid var(--bdr);
  border-radius:6px;
  font-size:15px;
  background:#fff;
  transition:border-color .2s,box-shadow .2s;
  box-sizing:border-box;
}
.nvc-input:focus{
  outline:none;
  border-color:var(--p);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--p) 15%,transparent);
}
.nvc-input.nvc-prefilled{background:#f5f5f5;color:#555;cursor:default}
.nvc-input.nvc-error{border-color:var(--err)}

/* ── Buttons ──────────────────────────────────────────────────────────── */
.nvc-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:11px 22px;
  border:none;border-radius:6px;
  font-size:15px;font-weight:600;cursor:pointer;
  transition:all .2s;text-decoration:none;
}
.nvc-btn-primary{
  background:var(--p);color:#fff;
}
.nvc-btn-primary:hover{filter:brightness(1.1)}
.nvc-btn-primary:disabled{opacity:.6;cursor:not-allowed;filter:none}
.nvc-btn-ghost{
  background:transparent;color:var(--d);border:1.5px solid var(--bdr);
}
.nvc-btn-ghost:hover{background:var(--bg)}
.nvc-btn-large{padding:14px 32px;font-size:17px}
.nvc-btn-icon{font-size:16px}

.nvc-nav-row{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:24px;padding-top:20px;border-top:1px solid var(--bdr);
  flex-wrap:wrap;gap:10px;
}

/* ── Products grid ────────────────────────────────────────────────────── */
.nvc-products-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:14px;
  margin-bottom:20px;
}
.nvc-product-card{
  border:2px solid var(--bdr);
  border-radius:var(--r);
  padding:16px;
  cursor:pointer;
  transition:all .2s;
  position:relative;
  background:#fff;
}
.nvc-product-card:hover{border-color:var(--p);box-shadow:0 4px 12px rgba(0,0,0,.1)}
.nvc-product-card.selected{
  border-color:var(--p);
  background:color-mix(in srgb,var(--p) 5%,#fff);
  box-shadow:0 4px 16px color-mix(in srgb,var(--p) 20%,transparent);
}
.nvc-product-card.selected::before{
  content:'✓';
  position:absolute;top:10px;right:10px;
  background:var(--p);color:#fff;
  width:22px;height:22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:700;
}
.nvc-product-name{font-size:15px;font-weight:700;color:var(--d);margin-bottom:6px}
.nvc-product-speed{font-size:13px;color:#666;margin-bottom:10px}
.nvc-product-price{
  font-size:22px;font-weight:800;color:var(--p);
  display:flex;align-items:baseline;gap:3px;
}
.nvc-product-price-suffix{font-size:12px;color:#888;font-weight:400}
.nvc-product-badge{
  display:inline-block;font-size:11px;font-weight:700;
  padding:2px 8px;border-radius:10px;margin-top:8px;
}
.badge-internet{background:#e3f2fd;color:#0d47a1}
.badge-tv{background:#f3e5f5;color:#4a148c}
.badge-alles{background:#e8f5e9;color:#1b5e20}

/* ── Options / extras ─────────────────────────────────────────────────── */
.nvc-option-group{
  background:var(--bg);border:1px solid var(--bdr);border-radius:8px;
  padding:14px 16px;margin-bottom:14px;
}
.nvc-option-group h4{margin:0 0 10px;font-size:15px;color:var(--d)}
.nvc-option-item{
  display:flex;align-items:center;gap:10px;
  padding:8px 10px;margin-bottom:6px;
  border:1.5px solid var(--bdr);border-radius:6px;background:#fff;cursor:pointer;
}
.nvc-option-item:hover,.nvc-option-item.selected{border-color:var(--p)}
.nvc-option-item.selected{background:color-mix(in srgb,var(--p) 5%,#fff)}
.nvc-option-label{flex:1;font-size:14px}
.nvc-option-price{font-size:14px;font-weight:700;color:var(--p)}

/* ── Extra opts / consent ─────────────────────────────────────────────── */
.nvc-extra-opts{
  border:1px solid var(--bdr);border-radius:8px;
  margin:18px 0;overflow:hidden;
}
.nvc-extra-opts summary{
  padding:12px 16px;font-weight:600;cursor:pointer;
  background:var(--bg);font-size:14px;color:var(--d);
}
.nvc-extra-inner{padding:16px}
.nvc-check-row{margin-bottom:12px}
.nvc-check-row label{display:flex;align-items:flex-start;gap:8px;font-size:14px;cursor:pointer}
.nvc-check-row input[type=checkbox]{margin-top:2px;flex-shrink:0;accent-color:var(--p)}

.nvc-consent-box{
  background:#fffde7;border:1px solid #ffe082;border-radius:8px;
  padding:14px 16px;margin:20px 0;
}
.nvc-consent-label{display:flex;align-items:flex-start;gap:10px;font-size:14px;cursor:pointer}
.nvc-consent-label input{margin-top:3px;flex-shrink:0;accent-color:var(--p)}
.nvc-consent-label a{color:var(--p)}

/* ── Summary bar ──────────────────────────────────────────────────────── */
.nvc-summary-bar{
  background:color-mix(in srgb,var(--d) 5%,#fff);
  border:1px solid var(--bdr);border-radius:8px;
  padding:12px 16px;margin-bottom:20px;
  font-size:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.nvc-summary-item{display:flex;align-items:center;gap:4px}
.nvc-summary-item strong{color:var(--d)}

/* ── Messages ─────────────────────────────────────────────────────────── */
.nvc-msg{
  padding:12px 16px;border-radius:8px;margin:12px 0;font-size:15px;
}
.nvc-msg.ok{background:#d4edda;border:1px solid #c3e6cb;color:#155724}
.nvc-msg.err{background:#f8d7da;border:1px solid #f5c6cb;color:var(--err)}
.nvc-msg.info{background:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}

/* ── Loading / spinner ────────────────────────────────────────────────── */
.nvc-loading{
  grid-column:1/-1;text-align:center;padding:32px;color:#888;
  display:flex;align-items:center;justify-content:center;gap:10px;
}
.nvc-spinner{
  width:24px;height:24px;border:3px solid #ddd;
  border-top-color:var(--p);border-radius:50%;
  animation:nvc-spin .7s linear infinite;
}
@keyframes nvc-spin{to{transform:rotate(360deg)}}

/* ── Confirmation screen ──────────────────────────────────────────────── */
.nvc-success-icon{font-size:64px;text-align:center;margin:8px 0}
.nvc-success-title{justify-content:center;color:var(--ok)!important}
.nvc-confirm-box{
  background:#d4edda;border:1px solid #c3e6cb;border-radius:8px;
  padding:16px 20px;margin:16px 0;font-size:15px;
}
.nvc-confirm-sub{text-align:center;color:#666;font-size:14px}

/* ── Notice (unconfigured) ────────────────────────────────────────────── */
.nvc-notice{
  padding:12px 16px;background:#fff3cd;border:1px solid #ffc107;
  border-radius:8px;color:#856404;font-size:14px;
}

/* ── Postcode widget ──────────────────────────────────────────────────── */
.nvc-pc-widget{max-width:520px}

/* ── Mobile tweaks ────────────────────────────────────────────────────── */
@media(max-width:520px){
  .nvc-panel{padding:18px 16px}
  .nvc-field-row{flex-direction:column;gap:10px}
  .nvc-field-sm,.nvc-field-lg{flex:1;min-width:unset}
  .nvc-products-grid{grid-template-columns:1fr}
  .nvc-btn-large{width:100%;justify-content:center}
}

/* Duration buttons */
.nvc-duration-opts { display:flex; gap:8px; flex-wrap:wrap; margin-top:8px; }
.nvc-dur-btn {
  padding:8px 16px; border:2px solid var(--bdr); border-radius:6px;
  background:#fff; cursor:pointer; font-size:14px; font-weight:600;
  transition:all .2s; color:#333;
}
.nvc-dur-btn:hover { border-color:var(--p); }
.nvc-dur-btn.active { background:var(--p); border-color:var(--p); color:#fff; }

/* Radio cards */
.nvc-radio-card {
  display:block; border:2px solid var(--bdr); border-radius:8px;
  padding:12px 16px; margin-bottom:8px; cursor:pointer; transition:all .2s;
}
.nvc-radio-card:hover { border-color:var(--p); }
.nvc-radio-card.selected { border-color:var(--p); background:color-mix(in srgb,var(--p) 5%,#fff); }
.nvc-radio-card input { margin-right:8px; accent-color:var(--p); }

/* Inline spinner */
.nvc-spinner-inline {
  display:inline-block; width:14px; height:14px;
  border:2px solid rgba(255,255,255,.4); border-top-color:#fff;
  border-radius:50%; animation:nvc-spin .7s linear infinite; margin-right:6px;
  vertical-align:middle;
}

/* Small hints */
.nvc-hint-small { font-size:12px; color:#888; display:block; margin-top:2px; }

/* Consent required box */
.nvc-consent-required { background:#fffde7; border:1px solid #ffe082; }

/* Section heads */
.nvc-section-head {
  font-size:14px; font-weight:700; color:var(--d);
  margin:20px 0 10px; border-bottom:1px solid var(--bdr); padding-bottom:6px;
}
