.s4pf-fitting {
    clear: both;
    margin: 0 0 28px;
    padding: 22px;
    border: 1px solid #dedede;
    border-radius: 6px;
    background: #fff;
}
.s4pf-fitting h3 {
    margin: 0 0 16px;
}
.s4pf-question {
    margin: 0 0 10px;
    font-weight: 600;
}
.s4pf-choice-row,
.s4pf-location-options {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 18px;
}
.s4pf-choice-row label,
.s4pf-option {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    flex: 1 1 220px;
    padding: 13px;
    border: 1px solid #ddd;
    border-radius: 5px;
    cursor: pointer;
}
.s4pf-choice-row label:has(input:checked),
.s4pf-option:has(input:checked) {
    border-color: #555;
    background: #fafafa;
}
.s4pf-option-copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.s4pf-option-copy small,
.s4pf-hours {
    color: #666;
    font-size: 13px;
}
.s4pf-appointment {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}
.s4pf-field label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
}
.s4pf-field input {
    width: 100%;
    min-height: 44px;
}
.s4pf-hours {
    grid-column: 1 / -1;
    margin: -4px 0 0;
}
.s4pf-notice {
    margin-top: 16px;
    padding: 12px 14px;
    border-left: 3px solid #888;
    background: #f6f6f6;
    font-size: 13px;
}
.s4pf-fitting [hidden] {
    display: none !important;
}
.s4pf-fitting input[type="radio"]{
    width:22px;
    height:22px;
}
#ui-datepicker-div {
    z-index: 999999 !important;
    padding: 10px;
    background: #fff;
    border: 1px solid #ccc;
    box-shadow: 0 4px 18px rgba(0,0,0,.12);
}
#ui-datepicker-div .ui-datepicker-header {
    display: flex;
    justify-content: space-between;
    padding: 6px;
}
#ui-datepicker-div table {
    border-collapse: collapse;
}
#ui-datepicker-div th,
#ui-datepicker-div td {
    padding: 3px;
    text-align: center;
}
#ui-datepicker-div a {
    display: block;
    padding: 5px;
    text-decoration: none;
}
#ui-datepicker-div .ui-state-disabled {
    opacity: .3;
}
@media (max-width: 600px) {
    .s4pf-fitting { padding: 16px; }
    .s4pf-appointment { grid-template-columns: 1fr; }
}

.s4pf-postcode-wrap { margin: 18px 0; }
.s4pf-postcode-wrap > label { display:block; font-weight:600; margin-bottom:6px; }
.s4pf-postcode-row { display:flex; flex-wrap:wrap; gap:8px; }
.s4pf-postcode-row input { flex:1 1 220px; min-height:44px; }
.s4pf-postcode-row button { min-height:44px; }
.s4pf-postcode-result { margin-top:9px; font-size:14px; }
.s4pf-postcode-result.is-success { color:#16733b; }
.s4pf-postcode-result.is-error { color:#b32d2e; }
.s4pf-sticky-total { position:fixed; z-index:99990; left:0; right:0; bottom:0; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px max(18px, calc((100vw - 1200px)/2)); background:#fff; border-top:1px solid #ddd; box-shadow:0 -3px 16px rgba(0,0,0,.10); }
.s4pf-sticky-total span { font-weight:600; }
.s4pf-sticky-amount { font-size:20px; }
body.woocommerce-checkout { padding-bottom:76px; }
.s4pf-product-message { clear:both; margin:16px 0; padding:13px 16px; border-left:3px solid #39845a; background:#f3f8f4; }
.s4pf-product-message p { margin:5px 0 0; }
@media (max-width:600px) { .s4pf-sticky-total { padding:11px 14px; } .s4pf-sticky-amount { font-size:18px; } }
