/* =====================================================================
   MR. DETAIL — PAINT PROTECTION FILM (PPF) QUOTE WIDGET
   Self-contained. Paste into any site (Wix/Shopify custom HTML block,
   or host this file and embed via <iframe>). No external dependencies
   except Google Fonts (loads fine once live on your site).

   ▶ EDIT BEFORE GOING LIVE — search "EDIT ME":
       1) PRICING   — the CONFIG block (numbers from your pricing sheet)
       2) BOOKING   — Calendly event URL + shop phone
   ===================================================================== */

:root{
  --ink:#16181d;          /* graphite ink */
  --ink-2:#20242c;
  --ink-3:#2b3038;
  --paper:#ffffff;        /* studio white */
  --paper-2:#f4f6f8;      /* panel */
  --line:#e3e7ee;         /* hairline */
  --cobalt:#2b4fff;       /* electric cobalt */
  --cobalt-deep:#1c39c9;
  --cobalt-wash:#eef1ff;
  --text:#16181d;
  --muted:#6c7480;
  --good:#13a05b;
  --radius:14px;
  --shadow:0 1px 2px rgba(16,18,22,.04), 0 12px 32px rgba(16,18,22,.10);
}

*{box-sizing:border-box;margin:0;padding:0}

.mdppf{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  color:var(--text);
  max-width:560px;
  margin:0 auto;
  padding:0;
  -webkit-font-smoothing:antialiased;
}
.mdppf *{font-family:inherit}

/* ---------- shell ---------- */
.mdppf-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
}

/* ---------- header ---------- */
.mdppf-head{
  background:var(--ink);
  color:#fff;
  padding:26px 28px 22px;
  text-align:center;
  position:relative;
}
.mdppf-medallion{
  width:58px;height:58px;border-radius:50%;
  margin:0 auto 12px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg,#272c34,#15171c);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 6px 18px rgba(0,0,0,.35);
}
.mdppf-medallion{overflow:hidden}
.mdppf-medallion img{width:100%;height:100%;object-fit:cover;display:block}
.mdppf-eyebrow{
  font-family:'Archivo',sans-serif;
  font-weight:600;font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:#9aa3b2;margin-bottom:6px;
}
.mdppf-title{
  font-family:'Archivo',sans-serif;
  font-weight:800;font-size:23px;letter-spacing:-.01em;line-height:1.1;
}
.mdppf-sub{font-size:13px;color:#aeb6c2;margin-top:7px;line-height:1.45}

/* ---------- progress ---------- */
.mdppf-prog{
  display:flex;gap:6px;padding:16px 28px 0;background:var(--paper);
}
.mdppf-prog span{
  height:3px;flex:1;border-radius:3px;background:var(--line);transition:background .4s ease;
}
.mdppf-prog span.on{background:var(--cobalt)}

/* ---------- step body ---------- */
.mdppf-body{padding:22px 28px 28px;min-height:280px;position:relative}
.mdppf-step{display:none;animation:fade .42s cubic-bezier(.2,.7,.2,1)}
.mdppf-step.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.mdppf-q{
  font-family:'Archivo',sans-serif;font-weight:700;font-size:18px;letter-spacing:-.01em;
  margin-bottom:3px;
}
.mdppf-hint{font-size:13px;color:var(--muted);margin-bottom:18px;line-height:1.45}

.mdppf-stepno{
  font-family:'Archivo',sans-serif;font-weight:600;font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--cobalt);margin-bottom:10px;display:block;
}

/* ---------- choice grid ---------- */
.mdppf-grid{display:grid;gap:10px}
.mdppf-grid.cols2{grid-template-columns:1fr 1fr}
.mdppf-grid.cols1{grid-template-columns:1fr}

.mdppf-opt{
  display:flex;align-items:center;gap:14px;
  border:1.5px solid var(--line);border-radius:12px;
  padding:15px 16px;cursor:pointer;background:var(--paper);
  text-align:left;width:100%;transition:border-color .16s,background .16s,transform .12s;
}
.mdppf-opt:hover{border-color:#c4ccd8;background:#fbfcfe}
.mdppf-opt:active{transform:scale(.992)}
.mdppf-opt.sel{border-color:var(--cobalt);background:var(--cobalt-wash)}
.mdppf-opt:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}

.mdppf-ic{
  flex:0 0 44px;height:44px;border-radius:10px;
  background:var(--paper-2);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--ink);
}
.mdppf-opt.sel .mdppf-ic{background:#fff;border-color:#c3ccfb;color:var(--cobalt)}
.mdppf-ic svg{display:block}
/* coverage cards use a larger media tile (photo or illustration) */
.mdppf-opt--cov{padding:12px 14px;gap:13px}
.mdppf-media{
  flex:0 0 120px;align-self:center;height:76px;border-radius:10px;overflow:hidden;
  background:#0c0d10;border:1px solid var(--line);color:#fff;
  display:flex;align-items:center;justify-content:center;
}
.mdppf-media img{width:100%;height:100%;object-fit:cover;display:block}
.mdppf-opt.sel .mdppf-media{border-color:#c3ccfb}
/* vehicle step: photo/illustration tiles */
.mdppf-opt--veh{flex-direction:column;align-items:stretch;padding:0;gap:0;overflow:hidden}
.mdppf-vic{width:100%;height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink)}
.mdppf-vic svg{width:42px;height:42px}
.mdppf-vic img{max-width:90%;max-height:88%;object-fit:contain;display:block}
.mdppf-opt--veh .mdppf-otxt{padding:11px 14px 13px}
.mdppf-opt--veh.sel .mdppf-vic{background:#fff}
@media(max-width:520px){.mdppf-media{flex-basis:104px;height:68px}}

.mdppf-otxt{flex:1;min-width:0}
.mdppf-olabel{display:block;font-family:'Archivo',sans-serif;font-weight:700;font-size:15px;line-height:1.2}
.mdppf-odesc{display:block;font-size:12.5px;color:var(--muted);margin-top:3px;line-height:1.4}
.mdppf-oprice{
  font-family:'Archivo',sans-serif;font-weight:700;font-size:13px;color:var(--ink);
  white-space:nowrap;padding-left:6px;
}
.mdppf-opt.sel .mdppf-oprice{color:var(--cobalt-deep)}
.mdppf-badge{
  display:inline-block;font-family:'Archivo',sans-serif;font-weight:700;
  font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
  background:var(--cobalt);color:#fff;border-radius:5px;padding:2px 6px;margin-left:7px;
  vertical-align:middle;
}

/* ---------- add-on toggles ---------- */
.mdppf-toggle{
  display:flex;align-items:center;gap:13px;
  border:1.5px solid var(--line);border-radius:12px;padding:13px 15px;
  cursor:pointer;background:var(--paper);transition:border-color .16s,background .16s;
}
.mdppf-toggle:hover{border-color:#c4ccd8}
.mdppf-toggle.on{border-color:var(--cobalt);background:var(--cobalt-wash)}
.mdppf-check{
  flex:0 0 22px;height:22px;border-radius:6px;border:1.5px solid #c4ccd8;background:#fff;
  display:flex;align-items:center;justify-content:center;transition:.16s;
}
.mdppf-toggle.on .mdppf-check{background:var(--cobalt);border-color:var(--cobalt)}
.mdppf-check svg{opacity:0;transition:.16s}
.mdppf-toggle.on .mdppf-check svg{opacity:1}
.mdppf-tlabel{flex:1;font-weight:600;font-size:14px}
.mdppf-tdesc{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-top:2px}
.mdppf-tprice{font-family:'Archivo',sans-serif;font-weight:700;font-size:13.5px;color:var(--ink)}

/* ---------- nav ---------- */
.mdppf-nav{display:flex;align-items:center;justify-content:space-between;margin-top:20px;gap:12px}
.mdppf-back{
  background:none;border:none;color:var(--muted);font-size:13.5px;font-weight:600;
  cursor:pointer;padding:8px 4px;display:inline-flex;align-items:center;gap:5px;
}
.mdppf-back:hover{color:var(--ink)}
.mdppf-back:disabled{opacity:0;pointer-events:none}
.mdppf-topback{background:none;border:none;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:5px;margin-bottom:14px}
.mdppf-topback:hover{color:var(--ink)}
.mdppf-ticket-nav{display:flex;justify-content:space-between;align-items:center;margin-top:14px}
.mdppf-ticket-nav .mdppf-topback,.mdppf-ticket-nav .mdppf-restart{margin:0;width:auto}
.mdppf-btn{
  background:var(--cobalt);color:#fff;border:none;border-radius:10px;
  font-family:'Archivo',sans-serif;font-weight:700;font-size:14.5px;letter-spacing:.01em;
  padding:13px 24px;cursor:pointer;transition:background .16s,transform .12s;
  display:inline-flex;align-items:center;gap:8px;
}
.mdppf-btn:hover{background:var(--cobalt-deep)}
.mdppf-btn:active{transform:scale(.98)}
.mdppf-btn:disabled{background:#c4ccd8;cursor:not-allowed}
.mdppf-ghost{
  background:none;border:none;color:var(--cobalt);font-weight:600;font-size:13px;
  cursor:pointer;padding:11px 8px;margin-top:12px;width:100%;text-align:center;
  border-top:1px dashed var(--line);border-radius:0;
}
.mdppf-ghost:hover{color:var(--cobalt-deep);text-decoration:underline}

/* ---------- work-order ticket ---------- */
.mdppf-ticket{animation:fade .5s cubic-bezier(.2,.7,.2,1)}
.mdppf-ticket-top{text-align:center;margin-bottom:4px}
.mdppf-ticket-eye{
  font-family:'Archivo',sans-serif;font-weight:600;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--cobalt);
}
.mdppf-ticket-h{font-family:'Archivo',sans-serif;font-weight:800;font-size:21px;margin-top:5px}
.mdppf-ticket-veh{font-size:13px;color:var(--muted);margin-top:3px}

.mdppf-lines{margin:20px 0 4px}
.mdppf-line{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:11px 0;border-bottom:1px solid var(--line);
}
.mdppf-line:first-child{border-top:1px solid var(--line)}
.mdppf-lname{font-size:13.5px;font-weight:500}
.mdppf-lname small{display:block;color:var(--muted);font-weight:400;font-size:11.5px;margin-top:2px}
.mdppf-lval{font-family:'Archivo',sans-serif;font-weight:700;font-size:14px;white-space:nowrap}

/* perforation + total */
.mdppf-perf{
  height:16px;margin:10px -28px 0;position:relative;
}
.mdppf-perf::before{
  content:"";position:absolute;left:28px;right:28px;top:50%;
  border-top:2px dashed var(--line);
}
.mdppf-total{
  display:flex;justify-content:space-between;align-items:flex-end;
  padding:14px 0 4px;
}
.mdppf-total-lab{font-family:'Archivo',sans-serif;font-weight:700;font-size:15px}
.mdppf-total-lab small{display:block;color:var(--muted);font-weight:400;font-size:11px;margin-top:2px;font-family:'Inter'}
.mdppf-total-num{
  font-family:'Archivo',sans-serif;font-weight:800;font-size:34px;letter-spacing:-.02em;
  color:var(--ink);line-height:1;
}
.mdppf-total-num .pre{font-size:16px;color:var(--muted);font-weight:600;vertical-align:8px;margin-right:1px}

.mdppf-disc{
  font-size:11.5px;color:var(--muted);line-height:1.5;margin-top:14px;
  background:var(--paper-2);border-radius:10px;padding:12px 14px;
}
.mdppf-cta{margin-top:18px}
.mdppf-book{
  width:100%;background:var(--cobalt);color:#fff;border:none;border-radius:11px;
  font-family:'Archivo',sans-serif;font-weight:700;font-size:16px;
  padding:16px;cursor:pointer;transition:background .16s,transform .12s;
}
.mdppf-book:hover{background:var(--cobalt-deep)}
.mdppf-book:active{transform:scale(.99)}
.mdppf-callrow{display:flex;gap:10px;margin-top:10px}
.mdppf-call{
  flex:1;text-align:center;text-decoration:none;
  border:1.5px solid var(--line);border-radius:11px;padding:13px;
  font-family:'Archivo',sans-serif;font-weight:700;font-size:14px;color:var(--ink);
  transition:border-color .16s,background .16s;
}
.mdppf-call:hover{border-color:#c4ccd8;background:#fbfcfe}
.mdppf-restart{
  background:none;border:none;color:var(--muted);font-size:12.5px;font-weight:600;
  cursor:pointer;margin-top:16px;width:100%;text-align:center;
}
.mdppf-restart:hover{color:var(--ink)}

/* consult-mode variant */
.mdppf-consult-note{
  text-align:center;font-size:13.5px;color:var(--muted);line-height:1.55;
  margin:18px 0 6px;padding:0 6px;
}

.mdppf-runbar{display:flex;align-items:center;justify-content:space-between;padding:13px 28px;border-top:1px solid var(--line);background:var(--paper-2)}
.mdppf-runbar[hidden]{display:none}
.mdppf-runbar-lab{font-family:'Archivo',sans-serif;font-weight:600;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.mdppf-runbar-val{font-family:'Archivo',sans-serif;font-weight:800;font-size:21px;color:var(--ink);line-height:1}
.mdppf-runbar-val .pre{font-size:12px;color:var(--muted);font-weight:600;margin-right:3px;vertical-align:2px}
.mdppf-ticket-top2{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.mdppf-ticket-date{font-size:12.5px;color:var(--muted);white-space:nowrap;padding-top:13px}
.mdppf-spec{margin:16px 0 6px}
.mdppf-spec-row{display:flex;justify-content:space-between;gap:14px;padding:7px 0;font-size:13.5px}
.mdppf-spec-row span:first-child{color:var(--muted)}
.mdppf-spec-row span:last-child{font-weight:600;text-align:right}
.mdppf-totalbar{display:flex;justify-content:space-between;align-items:center;background:var(--ink);color:#fff;border-radius:12px;padding:18px 22px;margin-top:8px}
.mdppf-totalbar-lab{font-family:'Archivo',sans-serif;font-weight:700;font-size:13px;letter-spacing:.07em;text-transform:uppercase;color:#c8cfdb}
.mdppf-totalbar-num{font-family:'Archivo',sans-serif;font-weight:800;font-size:30px;letter-spacing:-.02em;line-height:1}
.mdppf-disc2{font-size:11.5px;color:var(--muted);line-height:1.55;text-align:center;margin:14px 6px 0}
.mdppf-form{margin-top:20px}
.mdppf-form-h{font-family:'Archivo',sans-serif;font-weight:800;font-size:18px}
.mdppf-form-sub{font-size:13px;color:var(--muted);margin:3px 0 12px;line-height:1.45}
.mdppf-flabel{display:block;font-weight:600;font-size:12.5px;margin:13px 0 5px}
.mdppf-input,.mdppf-textarea{width:100%;border:1.5px solid var(--line);border-radius:11px;padding:13px 14px;font-size:14px;color:var(--text);background:#fff;font-family:inherit}
.mdppf-input::placeholder,.mdppf-textarea::placeholder{color:#aab2bf}
.mdppf-input:focus,.mdppf-textarea:focus{outline:none;border-color:var(--cobalt)}
.mdppf-textarea{resize:vertical;min-height:92px;line-height:1.5}
.mdppf-book{margin-top:20px}
.mdppf-callrow3{display:flex;gap:10px;margin-top:10px}
.mdppf-callrow3 .mdppf-call{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;background:#fff}
.mdppf-callrow3 .mdppf-call svg{flex:0 0 auto}
.mdppf-foot{
  text-align:center;font-size:11px;color:#9aa3b2;padding:14px;border-top:1px solid var(--line);
}
.mdppf-foot b{color:var(--muted);font-weight:600}

@media(max-width:520px){
  .mdppf-body{padding:20px 18px 24px}
  .mdppf-head{padding:24px 18px 20px}
  .mdppf-prog{padding:14px 18px 0}
  .mdppf-perf{margin-left:-18px;margin-right:-18px}
  .mdppf-perf::before{left:18px;right:18px}
  .mdppf-total-num{font-size:30px}
  .mdppf-grid.cols2{grid-template-columns:1fr}
  .mdppf-runbar{padding-left:18px;padding-right:18px}
  .mdppf-totalbar{padding:16px 18px}
  .mdppf-totalbar-num{font-size:26px}
}
@media(prefers-reduced-motion:reduce){
  .mdppf-step,.mdppf-ticket{animation:none}
}
