/* Flooring Pack Calculator v2 – all rules scoped to .fpc / .fpc-modal */
.flooring-calculator.fpc{margin:20px 0;padding:22px;background:#f8f9fa;border:1px solid #dee2e6;border-radius:10px;color:#111;font-family:inherit;text-align:left}
.fpc *,.fpc-modal *{box-sizing:border-box}
.fpc [hidden],.fpc-modal[hidden]{display:none!important}
.fpc .fpc-title{margin:0 0 18px;font-size:18px;font-weight:600;line-height:1.3}
.fpc .fpc-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.fpc .fpc-label,.fpc label{font-size:14px;font-weight:700;margin:0}
.fpc .fpc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fpc .fpc-toggle{display:inline-flex;border:1px solid #111;border-radius:999px;overflow:hidden}
.fpc button.fpc-unit{min-height:44px;padding:0 18px;border:0;border-radius:0;background:#fff;color:#111;font:inherit;font-size:13px;font-weight:700;cursor:pointer;text-transform:none;letter-spacing:0;line-height:1}
.fpc button.fpc-unit.is-active{background:#111;color:#fff}
.fpc input.fpc-input{display:block;width:100%;height:48px;padding:0 14px;margin:0;border:1px solid #ced4da;border-radius:6px;background:#fff;color:#111;font:inherit;font-size:16px;box-shadow:none}
.fpc input.fpc-input.fpc-small{display:inline-block;width:84px;height:44px;padding:0 8px;font-size:15px;text-align:center}
.fpc input:focus-visible,.fpc select:focus-visible,.fpc button:focus-visible,.fpc-modal button:focus-visible{outline:2px solid #111;outline-offset:2px}
.fpc button.fpc-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:6px 0 10px;padding:0;border:0;background:none;color:#111;font:inherit;font-size:14px;font-weight:700;text-decoration:underline;cursor:pointer;text-transform:none;letter-spacing:0;text-align:left}
.fpc .fpc-quick{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px;padding:12px 14px;background:#fff;border:1px dashed #c3cad1;border-radius:8px}
.fpc .fpc-quick-l{font-size:13px;font-weight:600;color:#5b6470}
.fpc .fpc-quick-t{font-size:13px;color:#5b6470}
.fpc .fpc-quick strong{font-size:15px}
.fpc button.fpc-btn,.fpc a.fpc-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;text-transform:none;letter-spacing:0;line-height:1.2}
.fpc .fpc-btn-line{margin-left:auto;background:#fff;color:#111;border:1px solid #111}
.fpc .fpc-btn-dark{background:#000;color:#fff;border:0}
.fpc .fpc-btn-text{background:transparent;color:inherit;border:0;text-decoration:underline!important;padding:0 10px}
.fpc .fpc-btn-red{background:transparent;color:#7f1d1d;border:1px solid #7f1d1d}
.fpc .fpc-waste{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;margin:0 0 18px;padding:14px;background:#fff;border:1px solid #111;border-radius:8px}
.fpc .fpc-waste input[type=checkbox],.fpc .fpc-spare input[type=checkbox]{width:22px;height:22px;margin:2px 0 0;accent-color:#111;flex:none}
.fpc .fpc-waste-txt{flex:1 1 200px;min-width:0}
.fpc .fpc-waste-txt label{display:block;margin-bottom:2px}
.fpc .fpc-waste-txt span{display:block;font-size:13px;line-height:1.45;color:#5b6470}
.fpc select.fpc-select{height:44px;padding:0 12px;margin:0;border:1px solid #ced4da;border-radius:6px;background:#fff;color:#111;font:inherit;font-size:14px;font-weight:600;width:auto}
.fpc .fpc-results{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:16px;font-size:15px}
.fpc .fpc-line{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}
.fpc .fpc-line strong{text-align:right}
.fpc .fpc-green{color:#1e7e34}
.fpc .fpc-note{margin:2px 0 12px;padding:10px 12px;background:#eef7f0;border-radius:6px;font-size:13px;line-height:1.45;color:#1b5e2d}
.fpc .fpc-results hr{margin:10px 0;border:0;border-top:1px solid #dee2e6}
.fpc .fpc-total{font-size:18px;align-items:baseline;margin-bottom:0}
.fpc .fpc-total strong{font-size:24px;color:#1e7e34}
.fpc .fpc-alert{margin-top:14px;padding:14px;border-radius:8px}
.fpc .fpc-alert strong{display:block;font-size:14px;margin-bottom:4px}
.fpc .fpc-alert p{margin:0 0 12px;font-size:13px;line-height:1.5}
.fpc .fpc-alert-amber{background:#fff4e0;border:1px solid #f0c987;color:#7a4300}
.fpc .fpc-alert-red{background:#fdecec;border:1px solid #f1b3b3;color:#7f1d1d}
.fpc .fpc-alert-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.fpc .fpc-spare{display:flex;align-items:center;gap:12px;margin-top:14px;min-height:44px}
.fpc .fpc-spare label{font-weight:400;font-size:14px;line-height:1.4}
.fpc .fpc-spare label span{color:#5b6470}

/* Packs box next to Add to basket */
.fpc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.woocommerce div.product form.cart .quantity.fpc-qty-wrap{position:relative}
.woocommerce div.product form.cart .quantity .fpc-qty-label{display:block;margin:0 0 6px;font-size:13px;font-weight:700;line-height:1.2;text-align:left;white-space:nowrap}
.woocommerce div.product form.cart .quantity .fpc-qty-sub{margin-left:2px;font-size:12px;font-weight:400;color:#5b6470}
.woocommerce div.product form.cart .quantity input.qty.fpc-locked{width:136px!important;padding-left:38px!important;padding-right:38px!important;background-color:#f1f3f5!important;font-weight:700;text-align:center!important;cursor:not-allowed}
.woocommerce div.product form.cart .quantity .fpc-lock{position:absolute;top:0;left:0;display:block;width:16px;height:16px;color:#5b6470;line-height:0}

/* Pop-up */
body.fpc-modal-open{overflow:hidden}
.fpc-modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:16px}
.fpc-modal__backdrop{position:absolute;inset:0;background:rgba(17,17,17,.62)}
.fpc-modal__dialog{position:relative;width:100%;max-width:800px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;-webkit-overflow-scrolling:touch;background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.35);outline:0}
.fpc-modal button.fpc-modal__x{position:absolute;top:12px;right:12px;z-index:2;width:44px;height:44px;padding:0;border:1px solid #dee2e6;border-radius:999px;background:#fff;color:#111;font-size:26px;line-height:1;cursor:pointer}
.fpc-modal .rfe-calc{margin:0;border:0;box-shadow:none;background:#fff;max-width:none;padding:28px}
.fpc-modal .rfe-calc h3.rfe-title,.fpc-modal .rfe-calc p.rfe-sub{text-align:left;padding-right:48px}

/* ---------- Mobile ---------- */
@media (max-width:767px){
  .flooring-calculator.fpc{padding:16px 14px}
  /* 16px stops iPhones zooming the page when a box is tapped */
  .fpc input.fpc-input,.fpc input.fpc-input.fpc-small,.fpc select.fpc-select,
  .fpc-modal .rfe-calc input,.fpc-modal .rfe-calc select{font-size:16px}
  .fpc .fpc-head{align-items:center}
  .fpc .fpc-quick{gap:8px}
  .fpc input.fpc-input.fpc-small{flex:1 1 70px;width:auto;min-width:64px}
  .fpc .fpc-btn-line{flex:1 1 100%;margin-left:0}
  .fpc .fpc-waste select.fpc-select{width:100%}
  .fpc .fpc-waste>div:last-child{flex:1 1 100%}
  .fpc .fpc-alert-actions .fpc-btn-dark{flex:1 1 100%}
  .fpc .fpc-line{font-size:14px}
  .fpc .fpc-total strong{font-size:22px}
}
@media (max-width:600px){
  /* pop-up becomes a full-screen panel on phones */
  .fpc-modal{padding:0}
  .fpc-modal__dialog{max-width:none;height:100%;max-height:100%;border-radius:0}
  .fpc-modal .rfe-calc{padding:56px 14px 20px}
  .fpc-modal .rfe-calc h3.rfe-title{padding-right:56px}
  .fpc-modal button.fpc-modal__x{position:fixed;top:10px;right:10px}
  .fpc-modal .rfe-calc .rfe-pick{position:sticky;bottom:0;background:#fff;margin:20px -14px -20px;padding:12px 14px;box-shadow:0 -6px 16px rgba(0,0,0,.08)}
  .fpc-modal .rfe-calc .rfe-pick .rfe-btn{flex:1 1 100%}
}
