/* Bespoke Product Fields — Frontend Styles v3.0.0 */
.bpf-fields *,.bpf-fields *::before,.bpf-fields *::after{box-sizing:border-box}
.bpf-fields{margin:20px 0 24px;font-family:inherit}
.bpf-row{margin-bottom:18px}.bpf-row:last-child{margin-bottom:0}
.bpf-label{display:block;font-size:13px;font-weight:600;letter-spacing:.02em;margin-bottom:7px;color:inherit}
.bpf-required{color:#e0342a;margin-left:2px}
.bpf-sublabel{font-weight:400;font-size:12px;opacity:.55;margin-left:5px}
.bpf-help{display:block;font-size:12px;line-height:1.55;opacity:.55;margin-top:5px}
.bpf-fields input[type=text],.bpf-fields input[type=date],.bpf-fields input[type=number],.bpf-fields select,.bpf-fields textarea{display:block;width:100%;padding:10px 13px;border:1px solid rgba(0,0,0,.18);border-radius:8px;font-size:14px;font-family:inherit;color:inherit;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}
.bpf-fields input:focus,.bpf-fields select:focus,.bpf-fields textarea:focus{border-color:#1a1a1a;box-shadow:0 0 0 3px rgba(0,0,0,.06)}
.bpf-fields select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}
.bpf-fields textarea{resize:vertical;min-height:88px;line-height:1.6}
@media(max-width:480px){.bpf-fields input[type=text],.bpf-fields input[type=date],.bpf-fields input[type=number],.bpf-fields select,.bpf-fields textarea{font-size:16px}}
.bpf-checks{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.bpf-check-label{display:flex;align-items:flex-start;gap:10px;font-size:14px;font-weight:400;cursor:pointer;line-height:1.45;user-select:none}
.bpf-check-label input[type=checkbox]{width:17px;height:17px;flex-shrink:0;margin-top:1px;cursor:pointer;accent-color:#1a1a1a}
.bpf-check-label input[type=checkbox]:disabled+span{opacity:.3}
.bpf-radios{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.bpf-radio-label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:400;cursor:pointer;user-select:none}
.bpf-radio-label input[type=radio]{width:17px;height:17px;flex-shrink:0;cursor:pointer;accent-color:#1a1a1a}
.bpf-fields input[type=file].bpf-file-input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}
.bpf-upload-wrap{position:relative}
.bpf-upload-ui{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1.5px dashed rgba(0,0,0,.2);border-radius:8px;background:#fafaf8;cursor:pointer;font-size:13px;color:inherit;transition:border-color .15s,background .15s;user-select:none}
.bpf-upload-ui:hover{border-color:rgba(0,0,0,.38);background:#f5f4f0}
.bpf-upload-ui svg{flex-shrink:0;opacity:.45}
.bpf-upload-text{opacity:.55}
.bpf-upload-name{font-weight:500;color:#2e9e6f;word-break:break-all}
.bpf-upload-wrap.bpf-has-file .bpf-upload-ui{border-color:#2e9e6f;border-style:solid;background:#f0fdf6}
.bpf-upload-wrap.bpf-has-file .bpf-upload-text{display:none}
.bpf-upload-wrap.bpf-has-file .bpf-upload-ui svg{color:#2e9e6f;opacity:1}
.bpf-conditional{padding-left:14px;border-left:2px solid rgba(0,0,0,.07);margin-top:4px}
.bpf-variation-section{margin-top:4px}
.bpf-order-meta{margin:8px 0 4px}
.bpf-order-meta>div{font-size:12px;line-height:1.6}
.bpf-order-meta a{color:#2271b1;text-decoration:underline}

/* ── Colour swatches ── */
.bpf-swatches { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.bpf-swatch-label { display:flex; flex-direction:column; align-items:center; gap:4px; cursor:pointer; }
.bpf-swatch-label input[type="radio"] { position:absolute; opacity:0; width:0; height:0; }
.bpf-swatch-chip { display:block; width:36px; height:36px; border-radius:50%; border:2px solid rgba(0,0,0,.15); transition:border-color .15s,transform .15s; }
.bpf-swatch-label:hover .bpf-swatch-chip { border-color:rgba(0,0,0,.4); transform:scale(1.1); }
.bpf-swatch-label input:checked ~ .bpf-swatch-chip { border-color:#1a1a1a; border-width:3px; transform:scale(1.12); }
.bpf-swatch-name { font-size:11px; opacity:.6; }

/* ── Image tiles ── */
.bpf-tiles { display:grid; grid-template-columns:repeat(auto-fill,minmax(100px,1fr)); gap:10px; margin-top:8px; }
.bpf-tile-label { display:flex; flex-direction:column; align-items:center; gap:6px; cursor:pointer; padding:8px; border:1.5px solid rgba(0,0,0,.14); border-radius:8px; transition:border-color .15s; }
.bpf-tile-label:hover { border-color:rgba(0,0,0,.35); }
.bpf-tile-label input[type="radio"] { position:absolute; opacity:0; width:0; height:0; }
.bpf-tile-label input:checked ~ .bpf-tile-img,
.bpf-tile-label:has(input:checked) { border-color:#1a1a1a; }
.bpf-tile-label:has(input:checked) { border-color:#1a1a1a; background:#fafaf8; }
.bpf-tile-img img { width:80px; height:80px; object-fit:cover; border-radius:4px; display:block; }
.bpf-tile-name { font-size:12px; text-align:center; line-height:1.3; }

/* ── Address block ── */
.bpf-address-block { display:flex; flex-direction:column; gap:8px; }
.bpf-address-field { display:block; width:100%; padding:10px 13px; border:1px solid rgba(0,0,0,.18); border-radius:8px; font-size:14px; font-family:inherit; }
.bpf-address-field:focus { border-color:#1a1a1a; outline:none; box-shadow:0 0 0 3px rgba(0,0,0,.06); }
@media(max-width:480px){ .bpf-address-field { font-size:16px; } }

/* ── Info notice ── */
.bpf-notice-block { background:#f0f6ff; border-left:3px solid #2271b1; padding:10px 14px; border-radius:0 6px 6px 0; }
.bpf-notice-label { display:block; font-size:12px; font-weight:600; color:#1a4a7a; margin-bottom:3px; }
.bpf-notice-text { margin:0; font-size:13px; color:#1a4a7a; line-height:1.55; }

/* ── Inquiry notice ── */
.bpf-inquiry-notice { background:#fffbeb; border:1px solid #f59e0b; border-radius:8px; padding:16px 18px; margin-bottom:16px; }
.bpf-inquiry-message { margin:0 0 12px; font-size:14px; line-height:1.6; color:#92400e; }
.bpf-inquiry-btn { background:#f59e0b!important; color:#fff!important; border:none!important; border-radius:6px!important; }
.bpf-inquiry-btn:hover { background:#d97706!important; }
