/* ShopNFly booking form — shared by [snf_shipment_form] and the admin Add/Edit Shipment screen. */
.snf-bf{
  --snf-bf-navy:#0D2040;
  --snf-bf-orange:#FF5900;
  --snf-bf-mist:#F3F6FA;
  --snf-bf-line:#D8E0EA;
  --snf-bf-input:#C5D0DE;
  --snf-bf-soft:#51627A;
  --snf-bf-danger:#B42318;
  box-sizing:border-box;
  max-width:980px;
  margin:32px auto;
  padding:0 16px;
  color:var(--snf-bf-navy);
  font-family:inherit;
  font-size:15px;
  line-height:1.5;
}
.snf-bf *,.snf-bf *::before,.snf-bf *::after{box-sizing:border-box}

.snf-bf-panel{position:relative;background:#fff;border:1px solid var(--snf-bf-line);border-top:4px solid var(--snf-bf-navy);border-radius:14px;overflow:hidden;margin:0}

/* Header */
.snf-bf-head{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:26px 32px 22px}
.snf-bf-head img{display:block;width:180px;max-width:45%;height:auto}
.snf-bf-head h2{margin:0 0 4px;font-size:26px;line-height:1.2;font-weight:700;color:var(--snf-bf-navy)}
.snf-bf-head p{margin:0;color:var(--snf-bf-soft);font-size:14px}

/* Steps: the form is a sequence, so each section carries its step number */
.snf-bf-step{display:grid;grid-template-columns:40px minmax(0,1fr);gap:20px;margin:0;padding:28px 32px 30px;border-top:1px solid var(--snf-bf-line)}
.snf-bf-step-num{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:2px solid var(--snf-bf-navy);border-radius:50%;background:#fff;color:var(--snf-bf-navy);font-weight:700;font-size:15px;line-height:1;transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.snf-bf-step:focus-within .snf-bf-step-num{background:var(--snf-bf-orange);border-color:var(--snf-bf-orange);color:#fff}
.snf-bf-step-head{margin:0 0 18px}
.snf-bf-step-head h3{margin:5px 0 2px;font-size:19px;line-height:1.3;font-weight:700;color:var(--snf-bf-navy)}
.snf-bf-step-head p{margin:0;color:var(--snf-bf-soft);font-size:14px}
.snf-bf-step--office{background:#FAFBFD}

/* Fields */
.snf-bf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.snf-bf-field{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;border:0}
.snf-bf-full{grid-column:1/-1}
.snf-bf-field>label,.snf-bf-label,.snf-bf-field>legend{display:block;margin:0;padding:0;font-size:14px;font-weight:600;line-height:1.4;color:var(--snf-bf-navy)}
.snf-bf-field>legend{margin-bottom:8px}
.snf-bf-req{color:var(--snf-bf-orange);font-weight:700}

.snf-bf input[type=text],.snf-bf input[type=email],.snf-bf input[type=tel],.snf-bf input[type=number],.snf-bf input[type=date],.snf-bf select,.snf-bf textarea{
  display:block;width:100%;max-width:none;min-height:46px;margin:0;padding:11px 13px;
  border:1px solid var(--snf-bf-input);border-radius:8px;background:#fff;box-shadow:none;
  color:var(--snf-bf-navy);font:inherit;font-size:15px;line-height:1.4;
}
.snf-bf select{padding-right:34px}
.snf-bf textarea{min-height:110px;resize:vertical}
.snf-bf input::placeholder,.snf-bf textarea::placeholder{color:#8A97A8}
.snf-bf input:focus,.snf-bf select:focus,.snf-bf textarea:focus{outline:0;border-color:var(--snf-bf-orange);box-shadow:0 0 0 3px rgba(255,89,0,.16)}
.snf-bf-help{margin:0;font-size:13px;line-height:1.45;color:var(--snf-bf-soft)}

/* Errors */
.snf-bf .has-error input,.snf-bf .has-error select,.snf-bf .has-error textarea{border-color:var(--snf-bf-danger)}
.snf-bf-error-text{margin:0;font-size:13px;font-weight:600;color:var(--snf-bf-danger)}
.snf-bf-summary{margin:0 32px 24px;padding:16px 18px;border:1px solid #F1C0B8;border-radius:8px;background:#FFF4F2;color:var(--snf-bf-danger)}
.snf-bf--admin .snf-bf-summary{margin-top:24px}
.snf-bf-summary:focus{outline:2px solid var(--snf-bf-danger);outline-offset:2px}
.snf-bf-summary ul{margin:8px 0 0;padding-left:20px}
.snf-bf-summary li{margin:2px 0}
.snf-bf-summary a{color:var(--snf-bf-danger);text-decoration:underline}

/* Service type: selectable cards */
.snf-bf-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.snf-bf-service{position:relative;display:block;margin:0;cursor:pointer}
.snf-bf-service input{position:absolute;top:0;left:0;width:1px;height:1px;margin:0;opacity:0}
.snf-bf-service-body{display:flex;align-items:flex-start;gap:12px;height:100%;padding:14px;border:1.5px solid var(--snf-bf-line);border-radius:10px;background:#fff;transition:border-color .15s ease,background-color .15s ease,color .15s ease}
.snf-bf-service-icon{display:flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;border-radius:8px;background:var(--snf-bf-mist);color:var(--snf-bf-navy);transition:background-color .15s ease,color .15s ease}
.snf-bf-service-text strong{display:block;font-size:15px;line-height:1.3;font-weight:700}
.snf-bf-service-text small{display:block;margin-top:3px;font-size:13px;line-height:1.4;color:var(--snf-bf-soft)}
.snf-bf-service:hover .snf-bf-service-body{border-color:var(--snf-bf-navy)}
.snf-bf-service input:checked+.snf-bf-service-body{border-color:var(--snf-bf-navy);background:var(--snf-bf-navy);color:#fff}
.snf-bf-service input:checked+.snf-bf-service-body .snf-bf-service-icon{background:var(--snf-bf-orange);color:#fff}
.snf-bf-service input:checked+.snf-bf-service-body small{color:rgba(255,255,255,.78)}
.snf-bf-service input:focus-visible+.snf-bf-service-body{outline:3px solid rgba(255,89,0,.5);outline-offset:2px}
.snf-bf-services.has-error .snf-bf-service-body{border-color:var(--snf-bf-danger)}
.snf-bf-services .snf-bf-error-text{margin-top:8px}

/* Declaration */
.snf-bf-checks{display:flex;flex-direction:column;gap:10px}
.snf-bf-check{display:flex;align-items:flex-start;gap:12px;margin:0;padding:12px 14px;border:1px solid var(--snf-bf-line);border-radius:8px;background:#fff;font-size:14px;font-weight:400;line-height:1.45;cursor:pointer}
.snf-bf-check input{flex:0 0 18px;width:18px;height:18px;margin:1px 0 0;accent-color:var(--snf-bf-orange)}
.snf-bf-check:has(input:checked){border-color:var(--snf-bf-navy);background:var(--snf-bf-mist)}
.snf-bf .has-error .snf-bf-check{border-color:var(--snf-bf-danger)}
.snf-bf-notice{margin:0;padding:14px 16px;border-radius:8px;background:var(--snf-bf-mist);color:var(--snf-bf-soft);font-size:13px;line-height:1.55}

/* Footer and buttons */
.snf-bf-footer{display:flex;align-items:center;flex-wrap:wrap;gap:18px;padding:24px 32px 28px;border-top:1px solid var(--snf-bf-line);background:var(--snf-bf-mist)}
.snf-bf-footer p{margin:0;font-size:14px;color:var(--snf-bf-soft)}
.snf-bf .snf-bf-btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;margin:0;padding:0 30px;border:2px solid var(--snf-bf-navy);border-radius:8px;background:var(--snf-bf-navy);color:#fff;font:inherit;font-size:16px;font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}
.snf-bf .snf-bf-btn:hover,.snf-bf .snf-bf-btn:focus-visible{border-color:var(--snf-bf-orange);background:var(--snf-bf-orange);color:#fff}
.snf-bf .snf-bf-btn:focus-visible{outline:3px solid rgba(255,89,0,.35);outline-offset:2px}
.snf-bf .snf-bf-btn[disabled]{opacity:.7;cursor:wait}
.snf-bf .snf-bf-btn-secondary{align-self:flex-start;margin-top:10px;padding:8px 14px;border:1.5px solid var(--snf-bf-navy);border-radius:8px;background:#fff;color:var(--snf-bf-navy);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.snf-bf .snf-bf-btn-secondary:hover,.snf-bf .snf-bf-btn-secondary:focus-visible{border-color:var(--snf-bf-orange);background:var(--snf-bf-orange);color:#fff}
.snf-bf-link{color:var(--snf-bf-navy);font-weight:600;text-decoration:underline}

/* Spam trap — hidden from people and assistive tech */
.snf-bf-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Success */
.snf-bf-success{padding:36px 32px}
.snf-bf-success h2{margin:0 0 6px;font-size:26px;line-height:1.2;color:var(--snf-bf-navy)}
.snf-bf-success p{margin:0 0 10px;color:var(--snf-bf-soft)}
.snf-bf-success .snf-bf-tracking-id{display:inline-block;margin:4px 0 18px;padding:10px 18px;border:2px dashed var(--snf-bf-orange);border-radius:8px;color:var(--snf-bf-navy);font-size:24px;font-weight:800;letter-spacing:1px}
.snf-bf-success .snf-bf-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-top:18px}

/* Admin-only: notes, photos, email option */
.snf-bf-notes{display:flex;flex-direction:column;gap:10px}
.snf-bf-note{padding:10px;border:1px solid var(--snf-bf-line);border-radius:8px;background:#fff}
.snf-bf .snf-bf-note textarea{min-height:64px}
.snf-bf-note-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px;font-size:12px;color:var(--snf-bf-soft)}
.snf-bf-note-remove{padding:4px;border:0;background:none;color:var(--snf-bf-danger);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.snf-bf-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-bottom:12px}
.snf-bf-photo{overflow:hidden;border:1px solid var(--snf-bf-line);border-radius:8px;background:var(--snf-bf-mist)}
.snf-bf-photo img{display:block;width:100%;height:110px;object-fit:cover}
.snf-bf-photo label{display:flex;align-items:center;gap:6px;margin:0;padding:7px 9px;font-size:13px;cursor:pointer}
.snf-bf-photo.is-removing{border-color:var(--snf-bf-danger)}
.snf-bf-photo.is-removing img{opacity:.35}
.snf-bf-file{padding:16px;border:1.5px dashed #B8C4D4;border-radius:10px;background:#fff}
.snf-bf-file .snf-bf-help{margin-top:8px}
.snf-bf-photo-count{font-weight:600;color:var(--snf-bf-navy)}
.snf-bf-inline-check{display:flex;align-items:center;gap:10px;font-weight:600;cursor:pointer}
.snf-bf-inline-check input{width:18px;height:18px;margin:0;accent-color:var(--snf-bf-orange)}

/* Contact form: single section without step numbers */
.snf-bf-plain{padding:26px 32px 30px;border-top:1px solid var(--snf-bf-line)}
.snf-bf--contact{max-width:760px}

/* Admin screen placement */
.snf-bf--admin{max-width:1100px;margin:0;padding:0}
.snf-bf--admin .snf-bf-footer{background:#fff}

@media (max-width:860px){
  .snf-bf-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .snf-bf{margin:20px auto;padding:0 10px}
  .snf-bf-head,.snf-bf-step,.snf-bf-footer,.snf-bf-success,.snf-bf-plain{padding-left:18px;padding-right:18px}
  .snf-bf-step{grid-template-columns:1fr;gap:10px}
  .snf-bf-grid,.snf-bf-service-grid{grid-template-columns:1fr}
  .snf-bf-summary{margin-left:18px;margin-right:18px}
  .snf-bf .snf-bf-btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .snf-bf *{transition:none!important}
}

/* Thank-you panel */
.snf-bf-success{text-align:center;padding-top:40px;padding-bottom:40px}
.snf-bf-success:focus{outline:none}
.snf-bf-success-icon{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;background:#e9f7ef;color:#127a3e;display:flex;align-items:center;justify-content:center}
.snf-bf-success h2{margin:0 0 6px}
.snf-bf-success-lead{font-size:18px;font-weight:600;color:var(--snf-bf-navy);margin:0 0 18px}
.snf-bf-success .snf-bf-actions{justify-content:center}
