/* One calm focus treatment for the public website and all mounted document tools. */
:root{--cso-focus-border:#557e49;--cso-focus-ring:#315e43;--cso-focus-glow:rgb(85 126 73 / 12%)}
body:is(.cso-site,.cso-module) :is(input:not([type=hidden],[type=checkbox],[type=radio],[type=range],[type=color],[type=file],[type=button],[type=submit],[type=reset],[type=image]),select,textarea):focus{
 border-color:var(--cso-focus-border)!important;outline:none!important;outline-offset:2px!important;box-shadow:0 0 0 3px var(--cso-focus-glow)!important;
}
/* Only keyboard navigation gets a separate outline; typing in a clicked field keeps the softer glow. */
html[data-cso-focus-modality=keyboard] body:is(.cso-site,.cso-module) :is(input,select,textarea,a,button,summary,[contenteditable=true],[tabindex]):focus-visible,
html:not([data-cso-focus-modality]) body:is(.cso-site,.cso-module) :is(input,select,textarea,a,button,summary,[contenteditable=true],[tabindex]):focus-visible{
 outline:2px solid var(--cso-focus-ring)!important;outline-offset:3px!important;
}
html[data-cso-focus-modality=keyboard] body:is(.cso-site,.cso-module) :is(input,select,textarea):focus-visible,
html:not([data-cso-focus-modality]) body:is(.cso-site,.cso-module) :is(input,select,textarea):focus-visible{box-shadow:none!important}
html[data-cso-focus-modality=pointer] body:is(.cso-site,.cso-module) :is(input,select,textarea,a,button,summary,[contenteditable=true],[tabindex]):focus{outline:none!important}
body:is(.cso-site,.cso-module) :is(input,select,textarea)[aria-invalid=true],
body:is(.cso-site,.cso-module) :is(.field.invalid,.pp-field.invalid) :is(input,select,textarea),
body:is(.cso-site,.cso-module) .invalid .input-prefix{--cso-focus-border:var(--cps-error-ink,#922b3e);--cso-focus-ring:var(--cps-error-ink,#922b3e);--cso-focus-glow:rgb(146 43 62 / 10%)}
/* Prefix fields and search widgets have one shared frame, rather than nested rings. */
body:is(.cso-site,.cso-module) :is(.input-prefix,.cso-catalog-search,.cso-footer-search-form):focus-within{border-color:var(--cso-focus-border)!important;outline:none!important;box-shadow:0 0 0 3px var(--cso-focus-glow)!important}
html[data-cso-focus-modality=keyboard] body:is(.cso-site,.cso-module) :is(.input-prefix,.cso-catalog-search,.cso-footer-search-form):has(input:focus-visible){outline:2px solid var(--cso-focus-ring)!important;outline-offset:3px!important;box-shadow:none!important}
html[data-cso-focus-modality] body:is(.cso-site,.cso-module) :is(.input-prefix,.cso-catalog-search,.cso-footer-search-form) input:focus{outline:none!important;box-shadow:none!important}
body:is(.cso-site,.cso-module) .cso-footer-search-form:has(button:focus){outline:none!important;box-shadow:none!important}
/* Radio segments expose the focus on their visible label. */
html[data-cso-focus-modality=pointer] body:is(.cso-site,.cso-module) .segmented input:focus+span{outline:none!important}
html[data-cso-focus-modality=keyboard] body:is(.cso-site,.cso-module) .segmented input:focus-visible+span,
html:not([data-cso-focus-modality]) body:is(.cso-site,.cso-module) .segmented input:focus-visible+span{outline:2px solid var(--cso-focus-ring)!important;outline-offset:3px!important}
/* Programmatically focused feedback is already identified by its border, color and icon. */
html body:is(.cso-site,.cso-module) :is([data-message-type],[role=alert],[role=status],.form-message,.notice,.classic-status,.classic-action-error,.calculation-status,.payment-status):not(a,button,input,select,textarea):focus{outline:none!important;box-shadow:none!important}
/* Light rings stay legible on dark branded panels; light cards retain a dark ring. */
body:is(.cso-site,.cso-module) :is(.cso-footer-enhanced,.cso-utility,.retrieval-hero,.review-hero,.cso-checkout-hero){--cso-focus-ring:#d5e4bf}
body:is(.cso-site,.cso-module) :is(.cso-footer-invitation,.cso-footer-search-form button,.retrieval-paper){--cso-focus-ring:#315e43}
@media(forced-colors:active){
 html body:is(.cso-site,.cso-module) :is(input,select,textarea,a,button,summary,[contenteditable=true]):focus-visible{outline:2px solid Highlight!important;outline-offset:3px!important;box-shadow:none!important}
 html body:is(.cso-site,.cso-module) .segmented input:focus-visible+span{outline:2px solid Highlight!important}
}
