/*
 * Public-site focus policy: no outer focus rings.
 * Important declarations in an explicit cascade layer outrank the site's
 * existing unlayered important rules, including selectors with #wrap/#content.
 * Keep this policy separate from normal component borders and error colors.
 */
@layer ds-focus-policy {
  html.ds-ui body :is(:focus, :focus-visible, :focus-within),
  html.ds-ui body input:is([type="checkbox"], [type="radio"]):focus-visible + label,
  html.ds-ui body .ds-consent-input:focus-visible + .ds-consent-card,
  html.ds-ui body .ds-visibility-input:focus-visible ~ .ds-visibility-button,
  html.ds-ui body .ds-phone-method input:focus-visible + span {
    outline:none!important;
    outline-offset:0!important;
  }

  /* Remove only the known 0 0 0 spread rings on form controls. Card elevation,
   * image-viewer surfaces and the normal shadows of action buttons stay intact.
   */
  html.ds-ui body .ds-partner-form .ds-control:focus,
  html.ds-ui body .ds-partner-form.ds-profile-editor select.ds-native-select:focus,
  html.ds-ui body .ds-select-trigger:is(:focus, :focus-visible),
  html.ds-ui body .ds-select-search input:focus,
  html.ds-ui body .ds-smart-select.is-open .ds-select-trigger,
  html.ds-ui body .ds-live-shop :is(
    .ds-shop-fields input:focus,
    .ds-shop-fields select:focus,
    .ds-shop-time-control:focus-within
  ),
  html.ds-ui body input.ds-phone-input.ds-phone-invalid {
    box-shadow:none!important;
  }

  /* Keyboard focus remains visible through text, without changing backgrounds,
   * field borders, validation colors or the photo itself. Pure icon/image links
   * contain no text, so this does not add a new frame or effect to their pixels.
   */
  html.ds-ui body a:not(:has(img)):focus-visible,
  html.ds-ui body :is(button, summary, [role="button"]):focus-visible,
  html.ds-ui body input:is([type="button"], [type="submit"], [type="reset"]):focus-visible,
  html.ds-ui body label:has(input:is([type="checkbox"], [type="radio"]):focus-visible),
  html.ds-ui body input:is([type="checkbox"], [type="radio"]):focus-visible + label,
  html.ds-ui body .ds-consent-input:focus-visible + .ds-consent-card,
  html.ds-ui body .ds-visibility-input:focus-visible ~ .ds-visibility-button,
  html.ds-ui body .ds-phone-method input:focus-visible + span {
    text-decoration-line:underline!important;
    text-underline-offset:3px!important;
    text-decoration-thickness:1px!important;
  }
}
