#service-orders{scroll-margin-top:24px}
#service-orders p{line-height:1.8;overflow-wrap:anywhere}
#service-orders-message{font-weight:700}
#service-requests-message,#request-mode-status{font-weight:700}
#request-mode-panel{margin:20px 0;padding:18px;border:1px solid #9cafb6;border-radius:8px;color:#18324b;background:#f3f7fa}
#request-mode-panel legend{font-weight:700;padding:0 6px}
.request-mode-choice{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:10px 0;line-height:1.6;cursor:pointer}
.request-mode-choice input{width:20px;height:20px;flex:0 0 20px;margin-top:3px;accent-color:#0b2d62}
.request-mode-choice:focus-within{outline:3px solid #d96508;outline-offset:3px;border-radius:4px}
.service-request h4{margin:0 0 10px;font-size:1.05rem;overflow-wrap:anywhere}
.service-request li{line-height:1.7}
#request-receipt{margin-top:18px;padding:16px;border-left:4px solid #0b2d62;background:#f3f7fa;color:#18324b}
#request-receipt:focus{outline:3px solid #d96508;outline-offset:3px}
#request-receipt p{overflow-wrap:anywhere;line-height:1.8}
#request-mode-refresh:focus-visible{outline:3px solid #d96508;outline-offset:3px}
@media(max-width:760px){#request-mode-panel{padding:14px}#request-mode-refresh{width:100%}}
#service-orders-notice{padding:14px 16px;background:#fff3e8;border-left:4px solid #b34d00;color:#18324b}
.service-order{padding:18px 0;border-top:1px solid #d7e1e6}
.service-order h3{margin:0 0 8px}
.service-order-reference{font-size:14px;color:#335365}
.service-order-amount{font-weight:700}
.service-order-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}
#service-orders-login a,.service-order-actions a{display:inline-flex;align-items:center;min-height:44px;padding:10px 14px;border:1px solid #9cafb6;border-radius:7px;font-weight:700;line-height:1.5}
#service-orders-refresh:focus-visible,#service-orders a:focus-visible{outline:3px solid #d96508;outline-offset:3px}
@media(max-width:760px){#service-orders-refresh,.service-order-actions a{width:100%}.service-order-actions{display:grid}.service-order{padding:16px 0}}
@media(prefers-reduced-motion:reduce){#service-orders,#service-orders *{scroll-behavior:auto;animation:none;transition:none}}

/* R339: scope choice controls to cart; do not inherit text-field geometry. */
#request-mode-panel .request-mode-choice,#renovationRequest .renovation-check{flex-direction:row;min-height:44px;align-items:flex-start;cursor:pointer;color:#18324b}
#request-mode-panel .request-mode-choice span{min-width:0;flex:1}
#request-mode-panel input[type="radio"],#renovationRequest .renovation-check input[type="checkbox"],#booking .consent input[type="checkbox"],#annual-purchase .consent input[type="checkbox"]{width:20px;height:20px;min-width:20px;min-height:20px;flex:0 0 20px;padding:0;margin:3px 0 0;accent-color:#0b2d62}
#booking .consent,#annual-purchase .consent{min-height:44px}
#catalogue .product button,.primary{background:#0b2d62;color:#fff;border-color:#0b2d62}
#catalogue .product button:hover,.primary:hover{background:#123e7c;color:#fff;border-color:#123e7c}
#catalogue .product button:disabled,.primary:disabled{opacity:1;background:#e2e8f0;color:#334155;border-color:#94a3b8;cursor:not-allowed}
#request-mode-panel :focus-visible,#renovationRequest .renovation-check input:focus-visible{outline:3px solid #0b4f83;outline-offset:3px}

/* Keep 18px reference price text above normal-text contrast minimum. */
.price,.total strong{color:#9b4300}

/* P2 cart feedback: presentation only; existing R339 controls/contrast remain. */
#catalogue .product-add-feedback{margin:10px 0 0;color:#1e5c36;font-size:.875rem;font-weight:700;line-height:1.6;overflow-wrap:anywhere}
#catalogue .product-add-feedback:empty{margin:0}
#booking .booking-field-error,#cartItems .booking-field-error,#catalogue .booking-field-error{margin:0;color:#9f1239;font-size:.875rem;line-height:1.6;overflow-wrap:anywhere}
#booking .consent+.booking-field-error{margin:6px 0 16px 30px}
#booking [aria-invalid="true"],#cartItems [aria-invalid="true"],#catalogue [aria-invalid="true"]{border-color:#9f1239;outline:2px solid #9f1239;outline-offset:2px}
#booking-error-summary{padding:16px;border:2px solid #9f1239;background:#fff5f7;color:#831843;margin-bottom:24px}
#booking-error-summary h3{margin:0 0 8px}
#booking-error-summary ul{margin:0;padding-left:22px}
#booking-error-summary a{display:inline-block;min-height:44px;padding:8px 0;line-height:1.6;overflow-wrap:anywhere;color:#831843}
