/*!
Copyright 2023 Adobe. All rights reserved.
This file is licensed to you under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. You may obtain a copy
of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under
the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
OF ANY KIND, either express or implied. See the License for the specific language
governing permissions and limitations under the License.
*/

.spectrum{
  --system-spectrum-radio-button-border-color-default:var(--spectrum-gray-600);
  --system-spectrum-radio-button-border-color-hover:var(--spectrum-gray-700);
  --system-spectrum-radio-button-border-color-down:var(--spectrum-gray-800);
  --system-spectrum-radio-button-border-color-focus:var(--spectrum-gray-700);
  --system-spectrum-radio-emphasized-button-checked-border-color-default:var(--spectrum-accent-color-900);
  --system-spectrum-radio-emphasized-button-checked-border-color-hover:var(--spectrum-accent-color-1000);
  --system-spectrum-radio-emphasized-button-checked-border-color-down:var(--spectrum-accent-color-1100);
  --system-spectrum-radio-emphasized-button-checked-border-color-focus:var(--spectrum-accent-color-1000);
}

.spectrum--express{
  --system-spectrum-radio-button-border-color-default:var(--spectrum-gray-800);
  --system-spectrum-radio-button-border-color-hover:var(--spectrum-gray-900);
  --system-spectrum-radio-button-border-color-down:var(--spectrum-gray-900);
  --system-spectrum-radio-button-border-color-focus:var(--spectrum-gray-900);
}

.spectrum-Radio{
  --spectrum-radio-neutral-content-color:var(--spectrum-neutral-content-color-default);
  --spectrum-radio-neutral-content-color-hover:var(--spectrum-neutral-content-color-hover);
  --spectrum-radio-neutral-content-color-down:var(--spectrum-neutral-content-color-down);
  --spectrum-radio-neutral-content-color-focus:var(--spectrum-neutral-content-color-key-focus);
  --spectrum-radio-focus-indicator-thickness:var(--spectrum-focus-indicator-thickness);
  --spectrum-radio-focus-indicator-gap:var(--spectrum-focus-indicator-gap);
  --spectrum-radio-focus-indicator-color:var(--spectrum-focus-indicator-color);
  --spectrum-radio-disabled-content-color:var(--spectrum-disabled-content-color);
  --spectrum-radio-disabled-border-color:var(--spectrum-disabled-content-color);
  --spectrum-radio-emphasized-accent-color:var(--spectrum-accent-color-900);
  --spectrum-radio-emphasized-accent-color-hover:var(--spectrum-accent-color-1000);
  --spectrum-radio-emphasized-accent-color-down:var(--spectrum-accent-color-1100);
  --spectrum-radio-emphasized-accent-color-focus:var(--spectrum-accent-color-1000);
  --spectrum-radio-border-width:var(--spectrum-border-width-200);
  --spectrum-radio-button-background-color:var(--spectrum-gray-75);
  --spectrum-radio-button-checked-border-color-default:var(--spectrum-neutral-background-color-selected-default);
  --spectrum-radio-button-checked-border-color-hover:var(--spectrum-neutral-background-color-selected-hover);
  --spectrum-radio-button-checked-border-color-down:var(--spectrum-neutral-background-color-selected-down);
  --spectrum-radio-button-checked-border-color-focus:var(--spectrum-neutral-background-color-selected-focus);
  --spectrum-radio-text-to-control:var(--spectrum-text-to-control-100);
  --spectrum-radio-label-top-to-text:var(--spectrum-component-top-to-text-100);
  --spectrum-radio-label-bottom-to-text:var(--spectrum-component-bottom-to-text-100);
  --spectrum-radio-font-size:var(--spectrum-font-size-100);
  --spectrum-radio-line-height:var(--spectrum-line-height-100);
  --spectrum-radio-animation-duration:var(--spectrum-animation-duration-100);
  --spectrum-radio-height:var(--spectrum-component-height-100);
  --spectrum-radio-button-control-size:var(--spectrum-radio-button-control-size-medium);
  --spectrum-radio-button-top-to-control:var(--spectrum-radio-button-top-to-control-medium);
}

.spectrum-Radio:lang(ja), .spectrum-Radio:lang(zh), .spectrum-Radio:lang(ko){
    --spectrum-radio-line-height-cjk:var(--spectrum-cjk-line-height-100);
  }

.spectrum-Radio--sizeS{
  --spectrum-radio-height:var(--spectrum-component-height-75);
  --spectrum-radio-button-control-size:var(--spectrum-radio-button-control-size-small);

  --spectrum-radio-text-to-control:var(--spectrum-text-to-control-75);
  --spectrum-radio-label-top-to-text:var(--spectrum-component-top-to-text-75);
  --spectrum-radio-label-bottom-to-text:var(--spectrum-component-bottom-to-text-75);
  --spectrum-radio-button-top-to-control:var(--spectrum-radio-button-top-to-control-small);

  --spectrum-radio-font-size:var(--spectrum-font-size-75);
}

.spectrum-Radio--sizeM{
  --spectrum-radio-height:var(--spectrum-component-height-100);
  --spectrum-radio-button-control-size:var(--spectrum-radio-button-control-size-medium);

  --spectrum-radio-text-to-control:var(--spectrum-text-to-control-100);
  --spectrum-radio-label-top-to-text:var(--spectrum-component-top-to-text-100);
  --spectrum-radio-label-bottom-to-text:var(--spectrum-component-bottom-to-text-100);
  --spectrum-radio-button-top-to-control:var(--spectrum-radio-button-top-to-control-medium);

  --spectrum-radio-font-size:var(--spectrum-font-size-100);
}

.spectrum-Radio--sizeL{
  --spectrum-radio-height:var(--spectrum-component-height-200);
  --spectrum-radio-button-control-size:var(--spectrum-radio-button-control-size-large);

  --spectrum-radio-text-to-control:var(--spectrum-text-to-control-200);
  --spectrum-radio-label-top-to-text:var(--spectrum-component-top-to-text-200);
  --spectrum-radio-label-bottom-to-text:var(--spectrum-component-bottom-to-text-200);
  --spectrum-radio-button-top-to-control:var(--spectrum-radio-button-top-to-control-large);

  --spectrum-radio-font-size:var(--spectrum-font-size-200);
}

.spectrum-Radio--sizeXL{
  --spectrum-radio-height:var(--spectrum-component-height-300);
  --spectrum-radio-button-control-size:var(--spectrum-radio-button-control-size-extra-large);

  --spectrum-radio-text-to-control:var(--spectrum-text-to-control-300);
  --spectrum-radio-label-top-to-text:var(--spectrum-component-top-to-text-300);
  --spectrum-radio-label-bottom-to-text:var(--spectrum-component-bottom-to-text-300);
  --spectrum-radio-button-top-to-control:var(--spectrum-radio-button-top-to-control-extra-large);

  --spectrum-radio-font-size:var(--spectrum-font-size-300);
}

@media (forced-colors: active){
  .spectrum-Radio{
    --highcontrast-radio-neutral-content-color:CanvasText;
    --highcontrast-radio-neutral-content-color-hover:CanvasText;
    --highcontrast-radio-neutral-content-color-down:CanvasText;
    --highcontrast-radio-neutral-content-color-focus:CanvasText;
    --highcontrast-radio-button-border-color-default:ButtonText;
    --highcontrast-radio-button-border-color-hover:Highlight;
    --highcontrast-radio-button-border-color-down:ButtonText;
    --highcontrast-radio-button-border-color-focus:Highlight;
    --highcontrast-radio-emphasized-accent-color:ButtonText;
    --highcontrast-radio-emphasized-accent-color-hover:Highlight;
    --highcontrast-radio-emphasized-accent-color-down:ButtonText;
    --highcontrast-radio-emphasized-accent-color-focus:Highlight;
    --highcontrast-radio-button-checked-border-color-default:Highlight;
    --highcontrast-radio-button-checked-border-color-hover:Highlight;
    --highcontrast-radio-button-checked-border-color-down:Highlight;
    --highcontrast-radio-button-checked-border-color-focus:Highlight;
    --highcontrast-radio-disabled-content-color:GrayText;
    --highcontrast-radio-disabled-border-color:GrayText;
     --highcontrast-radio-focus-indicator-color:CanvasText;
  }
      .spectrum-Radio .spectrum-Radio-button::after{
        forced-color-adjust:none;
      }
}

.spectrum-Radio{
  display:inline-flex;
  align-items:flex-start;
  position:relative;
  vertical-align:top;

  min-block-size:var(--mod-radio-height, var(--spectrum-radio-height));
  max-inline-size:100%;
}

.spectrum-Radio:active .spectrum-Radio-button::before,
.spectrum-Radio.is-active .spectrum-Radio-button::before{
      border-color:var(--highcontrast-radio-button-border-color-down,
                        var(--mod-radio-button-border-color-down,
                            var(--spectrum-radio-button-border-color-down)));
    }

.spectrum-Radio:active .spectrum-Radio-input:checked + .spectrum-Radio-button::before,
.spectrum-Radio.is-active .spectrum-Radio-input:checked + .spectrum-Radio-button::before{
      border-color:var(--highcontrast-radio-button-checked-border-color-down,
                      var(--mod-radio-button-checked-border-color-down,
                          var(--spectrum-radio-button-checked-border-color-down)));
    }

.spectrum-Radio:active .spectrum-Radio-label,
.spectrum-Radio.is-active .spectrum-Radio-label{
      color:var(--highcontrast-radio-neutral-content-color-down,
                var(--mod-radio-neutral-content-color-down,
                    var(--spectrum-radio-neutral-content-color-down)));
    }

.spectrum-Radio:focus .spectrum-Radio-button::before{
      border-color:var(--highcontrast-radio-button-border-color-focus,
                        var(--mod-radio-button-border-color-focus,
                            var(--spectrum-radio-button-border-color-focus)));
    }

.spectrum-Radio:focus .spectrum-Radio-button::after{
      border-style:solid;
      border-color:var(--highcontrast-radio-focus-indicator-color,
                        var(--mod-radio-focus-indicator-color,
                            var(--spectrum-radio-focus-indicator-color)));
      border-width:var(--mod-radio-focus-indicator-thickness,
                        var(--spectrum-radio-focus-indicator-thickness));

      inline-size:calc(var(--spectrum-radio-button-control-size) + (var(--spectrum-radio-focus-indicator-gap) * 2));
      block-size:calc(var(--spectrum-radio-button-control-size) + (var(--spectrum-radio-focus-indicator-gap) * 2));
    }

.spectrum-Radio:focus .spectrum-Radio-input:checked + .spectrum-Radio-button::before{
      border-color:var(--highcontrast-radio-button-checked-border-color-focus,
                        var(--mod-radio-button-checked-border-color-focus,
                            var(--spectrum-radio-button-checked-border-color-focus)));
    }

.spectrum-Radio:focus .spectrum-Radio-label{
      color:var(--highcontrast-radio-neutral-content-color-focus,
                var(--mod-radio-neutral-content-color-focus,
                    var(--spectrum-radio-neutral-content-color-focus)));
    }

.spectrum-Radio.is-readOnly .spectrum-Radio-input:read-only{
      cursor:initial;
    }

.spectrum-Radio.is-readOnly .spectrum-Radio-button{
      position:fixed;
      inset-inline-end:100%;
      inset-block-end:100%;
      clip:rect(1px, 1px, 1px, 1px);
      clip-path:inset(50%);
    }

.spectrum-Radio.is-readOnly .spectrum-Radio-label, .spectrum-Radio.is-readOnly .spectrum-Radio-input:disabled ~ .spectrum-Radio-label, .spectrum-Radio.is-readOnly .spectrum-Radio-input:checked:disabled ~ .spectrum-Radio-label,
.spectrum-Radio.is-readOnly .spectrum-Radio-input.is-disabled ~ .spectrum-Radio-label,
.spectrum-Radio.is-readOnly .spectrum-Radio-input:checked.is-disabled ~ .spectrum-Radio-label{
      margin-inline-start:auto;
      color:inherit;
    }

.spectrum-Radio--emphasized .spectrum-Radio-input:checked + .spectrum-Radio-button::before{
    border-color:var(--highcontrast-radio-emphasized-accent-color,
                      var(--mod-radio-emphasized-accent-color,
                          var(--spectrum-radio-emphasized-accent-color)));
  }

@media (hover: hover){

.spectrum-Radio:hover .spectrum-Radio-button::before,
.spectrum-Radio.is-hover .spectrum-Radio-button::before{
      border-color:var(--highcontrast-radio-button-border-color-hover,
                      var(--mod-radio-button-border-color-hover,
                        var(--spectrum-radio-button-border-color-hover)));
    }

.spectrum-Radio:hover .spectrum-Radio-input:checked+.spectrum-Radio-button::before,
.spectrum-Radio.is-hover .spectrum-Radio-input:checked+.spectrum-Radio-button::before{
      border-color:var(--highcontrast-radio-button-checked-border-color-hover,
                        var(--mod-radio-button-checked-border-color-hover,
                            var(--spectrum-radio-button-checked-border-color-hover)));
    }

.spectrum-Radio:hover .spectrum-Radio-label,
.spectrum-Radio.is-hover .spectrum-Radio-label{
      color:var(--highcontrast-radio-neutral-content-color-hover,
                var(--mod-radio-neutral-content-color-hover,
                    var(--spectrum-radio-neutral-content-color-hover)));
    }

.spectrum-Radio--emphasized:hover .spectrum-Radio-input:checked+.spectrum-Radio-button::before,
.spectrum-Radio--emphasized.is-hover .spectrum-Radio-input:checked+.spectrum-Radio-button::before{
    border-color:var(--highcontrast-radio-emphasized-accent-color-hover,
                      var(--mod-radio-emphasized-accent-color-hover,
                          var(--spectrum-radio-emphasized-accent-color-hover)));
  }
}

.spectrum-Radio--emphasized:active .spectrum-Radio-input:checked + .spectrum-Radio-button::before,
.spectrum-Radio--emphasized.is-active .spectrum-Radio-input:checked + .spectrum-Radio-button::before{
    border-color:var(--highcontrast-radio-emphasized-accent-color-down,
                      var(--mod-radio-emphasized-accent-color-down,
                          var(--spectrum-radio-emphasized-accent-color-down)));
  }

.spectrum-Radio--emphasized:focus .spectrum-Radio-input:checked + .spectrum-Radio-button::before{
    border-color:var(--highcontrast-radio-emphasized-accent-color-focus,
                      var(--mod-radio-emphasized-accent-color-focus,
                          var(--spectrum-radio-emphasized-accent-color-focus)));
  }

.spectrum-Radio .spectrum-Radio-input:disabled + .spectrum-Radio-button::before, .spectrum-Radio .spectrum-Radio-input:checked:disabled + .spectrum-Radio-button::before,
.spectrum-Radio .spectrum-Radio-input.is-disabled + .spectrum-Radio-button::before,
.spectrum-Radio .spectrum-Radio-input:checked.is-disabled + .spectrum-Radio-button::before{
      border-color:var(--highcontrast-radio-disabled-border-color,
                        var(--mod-radio-disabled-border-color,
                            var(--spectrum-radio-disabled-border-color)));
    }

.spectrum-Radio .spectrum-Radio-input:disabled ~ .spectrum-Radio-label, .spectrum-Radio .spectrum-Radio-input:checked:disabled ~ .spectrum-Radio-label,
.spectrum-Radio .spectrum-Radio-input.is-disabled ~ .spectrum-Radio-label,
.spectrum-Radio .spectrum-Radio-input:checked.is-disabled ~ .spectrum-Radio-label{
    color:var(--highcontrast-radio-disabled-content-color,
              var(--mod-radio-disabled-content-color,
                  var(--spectrum-radio-disabled-content-color)));
  }

.spectrum-Radio-input{
  font-family:inherit;
  font-size:100%;
  line-height:var(--mod-radio-line-height,
                  var(--spectrum-radio-line-height));
  margin:0;
  overflow:visible;
  box-sizing:border-box;
  padding:0;

  position:absolute;
  inline-size:100%;
  block-size:100%;

  opacity:0;
  z-index:1;

  cursor:pointer;
}

.spectrum-Radio-input:disabled,
.spectrum-Radio-input.is-disabled{
    cursor:default;
  }

.spectrum-Radio-input:checked + .spectrum-Radio-button::before{
      border-width:calc((var(--spectrum-radio-button-control-size) / 2) - (var(--spectrum-radio-button-selection-indicator) / 2));
      border-color:var(--highcontrast-radio-button-checked-border-color-default,
                        var(--mod-radio-button-checked-border-color-default,
                            var(--spectrum-radio-button-checked-border-color-default)));
    }

.spectrum-Radio-input:focus-visible + .spectrum-Radio-button::after,
.spectrum-Radio-input.is-focus-visible + .spectrum-Radio-button::after{
      border-width:var(--mod-radio-focus-indicator-thickness,
                        var(--spectrum-radio-focus-indicator-thickness));
      border-color:var(--highcontrast-radio-focus-indicator-color,
                        var(--mod-radio-focus-indicator-color,
                            var(--spectrum-radio-focus-indicator-color)));
      border-style:solid;

      inline-size:calc(var(--spectrum-radio-button-control-size) + (var(--spectrum-radio-focus-indicator-gap) * 2));
      block-size:calc(var(--spectrum-radio-button-control-size) + (var(--spectrum-radio-focus-indicator-gap) * 2));
    }

.spectrum-Radio-label{
  text-align:start;
  margin-inline-start:var(--mod-radio-text-to-control,
                          var(--spectrum-radio-text-to-control));
  margin-block-start:var(--spectrum-radio-label-top-to-text);
  margin-block-end:var(--spectrum-radio-label-bottom-to-text);

  font-size:var(--mod-radio-font-size,
                var(--spectrum-radio-font-size));
  color:var(--highcontrast-radio-neutral-content-color,
            var(--mod-radio-neutral-content-color,
                var(--spectrum-radio-neutral-content-color)));
  line-height:var(--mod-radio-line-height,
                  var(--spectrum-radio-line-height));

  transition:color var(--mod-radio-animation-duration,
                        var(--spectrum-radio-animation-duration)) ease-in-out;
}

.spectrum-Radio-label:lang(ja), .spectrum-Radio-label:lang(zh), .spectrum-Radio-label:lang(ko){
    line-height:var(--mod-radio-line-height-cjk, var(--spectrum-radio-line-height-cjk));
  }

.spectrum-Radio-button{
  position:relative;
  box-sizing:border-box;
  inline-size:var(--mod-radio-button-control-size,
                  var(--spectrum-radio-button-control-size));
  block-size:var(--mod-radio-button-control-size,
                  var(--spectrum-radio-button-control-size));
  margin-block-start:var(--mod-radio-button-top-to-control,
                          var(--spectrum-radio-button-top-to-control));

  flex-grow:0;
  flex-shrink:0;
}

.spectrum-Radio-button::before{
    display:block;
    z-index:0;
    content:"";
    box-sizing:border-box;
    position:absolute;

    inline-size:var(--mod-radio-button-control-size,
              var(--spectrum-radio-button-control-size));
    block-size:var(--mod-radio-button-control-size,
                var(--spectrum-radio-button-control-size));

    background-color:var(--highcontrast-radio-button-background-color,
                          var(--mod-radio-button-background-color,
                              var(--spectrum-radio-button-background-color)));

    border-radius:50%;
    border-width:var(--mod-radio-border-width,
                      var(--spectrum-radio-border-width));
    border-color:var(--highcontrast-radio-button-border-color-default,
                      var(--mod-radio-button-border-color-default,
                          var(--spectrum-radio-button-border-color-default)));
    border-style:solid;

    transition:border var(--mod-radio-animation-duration,
                          var(--spectrum-radio-animation-duration)) ease-in-out, box-shadow var(--mod-radio-animation-duration,
                              var(--spectrum-radio-animation-duration)) ease-in-out;
  }

.spectrum-Radio-button::after{
    border-radius:50%;

    content:"";
    display:block;
    position:absolute;
    inset-inline-start:50%;
    inset-block-start:50%;
    transform:translateX(-50%) translateY(-50%);

    transition:opacity var(--mod-radio-animation-duration,
                            var(--spectrum-radio-animation-duration)) ease-out, margin var(--mod-radio-animation-duration,
                          var(--spectrum-radio-animation-duration)) ease-out;
  }

[dir="rtl"] .spectrum-Radio-button::after{
      transform:translateX(50%) translateY(-50%);
    }

.spectrum-Radio-button::after:dir(rtl){
      transform:translateX(50%) translateY(-50%);
    }

.spectrum-Radio{
  --spectrum-radio-button-border-color-default:var(--system-spectrum-radio-button-border-color-default);
  --spectrum-radio-button-border-color-hover:var(--system-spectrum-radio-button-border-color-hover);
  --spectrum-radio-button-border-color-down:var(--system-spectrum-radio-button-border-color-down);
  --spectrum-radio-button-border-color-focus:var(--system-spectrum-radio-button-border-color-focus);
}

.spectrum-Radio--emphasized{
  --spectrum-radio-button-checked-border-color-default:var(--system-spectrum-radio-emphasized-button-checked-border-color-default);
  --spectrum-radio-button-checked-border-color-hover:var(--system-spectrum-radio-emphasized-button-checked-border-color-hover);
  --spectrum-radio-button-checked-border-color-down:var(--system-spectrum-radio-emphasized-button-checked-border-color-down);
  --spectrum-radio-button-checked-border-color-focus:var(--system-spectrum-radio-emphasized-button-checked-border-color-focus);
}
