/* ===========================================================
   ShopForMe — the request flow and tracking (mobile-first)
   =========================================================== */

.req-wrap{padding:26px 0 100px}
@media (min-width:1000px){
  .req-wrap{
    display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:48px;
    align-items:start;padding:44px 0 90px;
  }
}

.reqsec{border-top:1px solid var(--line);padding-top:22px;margin-top:32px}
.reqsec-head{display:flex;align-items:baseline;gap:11px;margin-bottom:18px;flex-wrap:wrap}
.reqsec-head .n{font-weight:900;color:var(--orange);font-size:1rem}
.reqsec-head h2{font-weight:700;letter-spacing:-.025em;font-size:1.22rem}
.reqsec-head p{margin-left:auto;font-size:.85rem;color:var(--ink-3)}
.opt{font-weight:400;color:var(--ink-4)}

.two{display:grid;gap:0}
@media (min-width:620px){ .two{grid-template-columns:1fr 1fr;gap:0 16px} }

/* ---------------- item rows ---------------- */
.items{display:flex;flex-direction:column;gap:12px}
.item{border:1px solid var(--line-2);border-radius:var(--r);background:var(--paper);overflow:hidden}
.item-top{display:flex;align-items:center;gap:10px;padding:9px 13px;border-bottom:1px solid var(--line);background:var(--sand)}
.item-top .idx{font-weight:700;font-size:.76rem;color:var(--ink-3);letter-spacing:.04em}
.item-top .rm{margin-left:auto;background:none;border:0;color:var(--ink-3);font-size:.85rem;cursor:pointer;text-decoration:underline;padding:6px 2px}
.item-top .rm:hover{color:var(--red)}
.item-body{padding:14px 13px 4px}
.item-row2{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px}
.item .more{display:none}
.item.expanded .more{display:block}
.item .toggle{background:none;border:0;color:var(--ink-2);font-size:.88rem;cursor:pointer;padding:4px 0 14px;text-decoration:underline}
.item .toggle:hover{color:var(--orange)}

.additem{
  margin-top:12px;border:1px dashed var(--line-2);background:var(--paper);border-radius:var(--r);
  min-height:52px;width:100%;cursor:pointer;font-weight:700;color:var(--ink-2);
}
.additem:hover{border-color:var(--ink);color:var(--ink)}

/* ---------------- photos ---------------- */
.drop{
  border:1px dashed var(--line-2);border-radius:var(--r);padding:26px 18px;text-align:center;
  background:var(--paper);cursor:pointer;transition:.14s;
}
.drop:hover,.drop.over{border-color:var(--ink);background:var(--sand)}
.drop p{font-size:.95rem;color:var(--ink-2)}
.drop .small{margin-top:4px}
.drop-ico{width:26px;height:26px;margin:0 auto 10px;color:var(--ink-3);stroke:currentColor;fill:none}
.camera-btn{margin-top:10px}
@media (min-width:760px){ .camera-btn{display:none} }
.thumbs{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.thumbs figure{position:relative;width:82px;height:82px;border:1px solid var(--line-2);border-radius:var(--r-sm);overflow:hidden;background:var(--sand)}
.thumbs img{width:100%;height:100%;object-fit:cover}
.thumbs .x{
  position:absolute;top:3px;right:3px;width:22px;height:22px;border:0;border-radius:var(--r-xs);
  background:rgba(20,22,26,.82);color:#fff;font-size:.8rem;cursor:pointer;line-height:1;
}
.thumbs .doc{display:grid;place-items:center;font-size:.68rem;color:var(--ink-3);padding:6px;text-align:center;height:100%}

/* ---------------- segmented control ---------------- */
.seg{display:flex;border:1px solid var(--line-2);border-radius:var(--r-sm);overflow:hidden}
.seg label{flex:1;position:relative}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{
  display:block;text-align:center;padding:15px 6px;font-size:.92rem;cursor:pointer;
  border-right:1px solid var(--line-2);transition:.12s;
}
.seg label:last-child span{border-right:0}
.seg input:checked + span{background:var(--ink);color:#fff;font-weight:700}
.seg input:focus-visible + span{outline:2px solid var(--orange);outline-offset:-2px}

/* ---------------- summary rail ---------------- */
.rail-box{border:1px solid var(--line-2);border-radius:var(--r);background:var(--paper);margin-top:30px}
@media (min-width:1000px){ .rail-box{position:sticky;top:96px;margin-top:0} }
.rail-box h3{font-weight:700;font-size:.9rem;padding:13px 15px;border-bottom:1px solid var(--line)}
.rail-list{padding:4px 15px}
.rail-list li{padding:10px 0;border-bottom:1px solid var(--line);font-size:.9rem;display:flex;gap:10px}
.rail-list li:last-child{border-bottom:0}
.rail-list .q{font-weight:700;font-size:.8rem;color:var(--ink-3);flex:none;padding-top:2px}
.rail-empty{padding:16px 15px;font-size:.88rem;color:var(--ink-3)}
.rail-foot{padding:14px 15px;border-top:1px solid var(--line);background:var(--sand);border-radius:0 0 var(--r) var(--r)}
.rail-foot .small{margin-top:8px;display:block}

.submitbar{margin-top:30px;display:flex;flex-direction:column;gap:11px;align-items:stretch}
.submitbar .btn{width:100%}
@media (min-width:620px){
  .submitbar{flex-direction:row;align-items:center;flex-wrap:wrap}
  .submitbar .btn{width:auto;min-width:190px}
  .submitbar .small{flex-basis:100%}
}

/* ---------------- sticky mobile submit ---------------- */
.stickybar{
  position:fixed;left:0;right:0;bottom:0;z-index:80;
  background:var(--paper);border-top:1px solid var(--line-2);
  padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom));
  display:flex;align-items:center;gap:12px;
  transform:translateY(110%);transition:transform .2s cubic-bezier(.2,.8,.3,1);
}
.stickybar.show{transform:none}
.stickybar > div{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.sb-n{font-weight:700;font-size:.94rem}
.sb-h{font-size:.78rem;color:var(--ink-3)}
.stickybar .btn{margin-left:auto;flex:none}
@media (min-width:1000px){ .stickybar{display:none} }

/* ---------------- success ---------------- */
.done{max-width:640px;margin:0 auto;padding:36px var(--gut) 80px}
@media (min-width:900px){ .done{padding-top:70px} }
.done .code-box{
  border:1.5px solid var(--ink);border-radius:var(--r);padding:18px;margin:22px 0;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.done .code-box .code{font-family:var(--mono);font-weight:500;font-size:1.45rem;letter-spacing:.02em}
.done .code-box .copy{margin-left:auto}
.done ol{counter-reset:s;border-top:1px solid var(--line);margin-top:10px}
.done ol li{counter-increment:s;padding:14px 0 14px 36px;border-bottom:1px solid var(--line);position:relative;color:var(--ink-2);font-size:.95rem}
.done ol li::before{
  content:counter(s,decimal-leading-zero);position:absolute;left:0;top:14px;
  font-weight:700;font-size:.8rem;color:var(--orange);
}
.done .actions{display:flex;flex-direction:column;gap:10px;margin-top:24px}
@media (min-width:560px){ .done .actions{flex-direction:row} }

/* ---------------- tracking ---------------- */
.track-form{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.track-form .input{flex:1;min-width:190px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em}
.track-form .btn{flex:none}
.timeline{border-top:1px solid var(--line);margin-top:22px}
.tl{display:grid;grid-template-columns:24px minmax(0,1fr);gap:14px;padding:15px 0;border-bottom:1px solid var(--line)}
.tl .bullet{width:12px;height:12px;border-radius:50%;border:2px solid var(--line-2);background:var(--paper);margin-top:5px}
.tl.done-step .bullet{background:var(--orange);border-color:var(--orange)}
.tl.current .bullet{background:var(--paper);border-color:var(--orange);box-shadow:0 0 0 4px var(--orange-wash)}
.tl h4{font-weight:700;font-size:1rem}
.tl.pending h4,.tl.pending p{color:var(--ink-4)}
.tl p{font-size:.9rem;color:var(--ink-3);margin-top:3px}
.tl .when{font-family:var(--mono);font-size:.76rem;color:var(--ink-4);margin-top:5px}

.quote-table{border:1px solid var(--line-2);border-radius:var(--r);margin-top:22px;overflow:hidden}
.quote-table .qr{display:flex;justify-content:space-between;gap:14px;padding:13px 16px;border-bottom:1px solid var(--line);font-size:.95rem}
.quote-table .qr:last-child{border-bottom:0}
.quote-table .qr.total{background:var(--sand);font-weight:900;font-size:1.08rem}
.quote-table .qr span:last-child{font-weight:700;white-space:nowrap}
