/* ========================================================================== */
/*                                   GENERAL                                  */
/* ========================================================================== */
:root {
  --button-font-size: 0.9rem;
  --button-line-height: 1.4em;
  --button-font-weight: 400;
  --button-letter-spacing: 0;
  --button-text-transform: none;
  --button-margin-top: 2.5rem;
  --button-margin-horizontal: 0;
  --button-margin-bottom: 0;
  --button-gap: 1rem;
  --button-padding-vertical: 0.425rem;
  --button-padding-horizontal: 1rem;
  --button-border-width: 4px;
  --button-border-radius: 2em;
  --button-box-shadow: none;
  --button-overlay-hover: rgba(0, 0, 0, 0.07);
  /* ----------------------------------- v1 ----------------------------------- */
  --button-text-color: var(--color-2);
  --button-background-color: transparent;
  --button-border-default: var(--button-border-width) solid var(--color-2);
  /* -------------------------------- v1 hover -------------------------------- */
  --button-text-color-hover: var(--color-white);
  --button-background-color-hover: var(--color-2);
  --button-border-default-hover: var(--button-border-width) solid var(--color-2);
  /* ----------------------------------- v2 ----------------------------------- */
  --button-text-color-v2: var(--color-white);
  --button-background-color-v2: var(--color-2);
  --button-border-default-v2: var(--button-border-width) solid var(--color-2);
  /* -------------------------------- v2 hover -------------------------------- */
  --button-text-color-v2-hover: var(--color-white);
  --button-background-color-v2-hover: var(--color-3);
  --button-border-default-v2-hover: var(--button-border-width) solid var(--color-3);
  /* ----------------------------------- v3 ----------------------------------- */
  --button-text-color-v3: var(--color-white);
  --button-background-color-v3: var(--color-3);
  --button-border-default-v3: var(--button-border-width) solid var(--color-3);
  /* -------------------------------- v3 hover -------------------------------- */
  --button-text-color-v3-hover: var(--color-white);
  --button-background-color-v3-hover: var(--color-2);
  --button-border-default-v3-hover: var(--button-border-width) solid var(--color-2);
}

@media only screen and (max-width: 991px) {
  :root {
    --button-font-size: 1.6rem;
    --button-padding-vertical: 0.5rem;
    --button-padding-horizontal: 1.5rem;
  }
}

#content .wsf-submit-button:is(:hover, :focus-visible),
#masthead .wso-menu-icon > a:is(:hover, :focus-visible),
#ast-mobile-popup .wso-menu-icon > a:is(:hover, :focus-visible),
#colophon .wso-menu-icon > a:is(:hover, :focus-visible),
:is(.wso-button, .button):where(:hover, :focus-visible),
.site-content .wso-location-accordion__btn:where(:hover, :focus-visible),
.site-header .wso-menu-cta > a:is(:hover, :focus-visible),
input[type=submit]:is(:hover, :focus-visible),
.nav-link:is(:hover, :focus-visible),
.nav-link.active {
  --button-text-color: var(--button-text-color-hover);
  --button-background-color: var(--button-background-color-hover);
  --button-border-default: var(--button-border-default-hover);
}

.secondary-button,
.wpgb-facet button.wpgb-button {
  --button-text-color: var(--button-text-color-v2);
  --button-background-color: var(--button-background-color-v2);
  --button-border-default: var(--button-border-default-v2);
}

.site .site-header .wso-menu-cta.secondary-button > a:is(:hover, :focus-visible),
.secondary-button:where(:hover, :focus-visible),
.wpgb-facet button.wpgb-button:is(:hover, :focus-visible) {
  --button-text-color: var(--button-text-color-v2-hover);
  --button-background-color: var(--button-background-color-v2-hover);
  --button-border-default: var(--button-border-default-v2-hover);
}

.tertiary-button {
  --button-text-color: var(--button-text-color-v3);
  --button-background-color: var(--button-background-color-v3);
  --button-border-default: var(--button-border-default-v3);
}

.site .site-header .wso-menu-cta.tertiary-button > a:is(:hover, :focus-visible),
.tertiary-button:where(:hover, :focus-visible) {
  --button-text-color: var(--button-text-color-v3-hover);
  --button-background-color: var(--button-background-color-v3-hover);
  --button-border-default: var(--button-border-default-v3-hover);
}

#content .wsf-submit-button:focus-visible,
.wso-button:focus-visible,
.wso-menu-cta > a:focus-visible,
#masthead .wso-menu-icon > a:focus-visible,
#ast-mobile-popup .wso-menu-icon > a:focus-visible,
#colophon .wso-menu-icon > a:focus-visible {
  outline: 2px solid var(--current-color-text) !important;
  outline-offset: 4px !important;
}

/* ========================================================================== */
/*                    Alignment fix for font baseline                         */
/* ========================================================================== */

#masthead .wso-menu-icon .menu-text,
#ast-mobile-popup .wso-menu-icon .menu-text,
#colophon .wso-menu-icon .menu-text,
.wso-button .button_label,
.wso-menu-cta .menu-text {
  display: inline-block;
  vertical-align: top;
  margin-top: .15em !important;
  margin-bottom: -.15em !important;
}

/* ========================================================================== */
/*                                VIDEO BUTTON                                */
/* ========================================================================== */
:root {
  --video-button-size: 5rem;
  --video-button-background: var(--color-white);
  --video-button-color-default: var(--color-2);
  --video-button-margin-bottom: 2rem;
}

@media (max-width: 991px) {
  :root {
    --video-button-size: 6rem;
  }
}

.wso-dark {
  --video-button-background: var(--color-white);
  --video-button-color-default: var(--color-2);
}

/* ========================================================================== */
/*                              HIGHLIGHT BUTTON                              */
/* ========================================================================== */
:root {
  --highlight-button-size: 13rem;
  --highlight-button-color: var(--color-black);
  --highlight-button-outer-border-width: 0;
  --highlight-button-rotation: 0deg;
  /* text */
  --highlight-button-text-1-font-family: var(--p-font-family);
  --highlight-button-text-1-font-size: .88rem;
  --highlight-button-text-1-line-height: 1.5;
  --highlight-button-text-1-text-transform: none;
  --highlight-button-text-1-letter-spacing: 0;
  --highlight-button-text-1-font-weight: 4500;
  --highlight-button-text-1-color-default: var(--highlight-button-color);
  --highlight-button-text-1-hyphens-default: var(--p-hyphens-default);
  --highlight-button-text-1-text-decoration: none;
  /* text in <strong> */
  --highlight-button-text-2-font-family: inherit;
  --highlight-button-text-2-font-size: 2.105em;
  --highlight-button-text-2-line-height: 1.1;
  --highlight-button-text-2-text-transform: inherit;
  --highlight-button-text-2-letter-spacing: inherit;
  --highlight-button-text-2-font-weight: 200;
  --highlight-button-text-2-color-default: inherit;
  --highlight-button-text-2-hyphens-default: inherit;
  --highlight-button-text-2-text-decoration: none;
  /* line spacer */
  --highlight-button-line-width: calc(var(--highlight-button-size) * 0.55);
  --highlight-button-line-margin-vertical: 1rem;
  --highlight-button-line-thickness: 1px;
  --highlight-button-line-color: currentColor;
}
@media only screen and (max-width: 991px) {
  :root {
    --highlight-button-size: 10rem;
    --highlight-button-text-1-font-size: 1.2rem;
  }
}
@media only screen and (max-width: 575px) {
  :root {
    --highlight-button-size: 8rem;
    --highlight-button-text-1-font-size: 1.1rem;
    --highlight-button-text-2-font-size: 1.5em;
    --highlight-button-line-width: 3em;
    --highlight-button-line-margin-vertical: 0.5rem;
  }
}

/* ========================================================================== */
/*                                   BUTTONS                                  */
/* ========================================================================== */
/* ------------------------------- button-list ------------------------------ */
.wso-buttons,
.wp-grid-builder .wpgb-card .wso-buttons {
  margin-top: var(--button-margin-top);
  margin-bottom: var(--button-margin-bottom);
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: var(--current-justify-content);
  flex-wrap: wrap;
  gap: var(--button-gap);
}

.wso-headlines + .wso-buttons {
  --button-margin-top: 0rem;
}

/* --------------------------------- button --------------------------------- */
.site-content .jig-loadMoreButton,
.site .site-header .ast-main-header-wrap .wso-menu-cta > a,
#masthead .wso-menu-icon > a,
#ast-mobile-popup .wso-menu-icon > a,
#colophon .wso-menu-icon > a,
.wpcf7 input[type=submit],
.wpgb-facet button.wpgb-button,
.nav-link,
#colophon .wso-button,
#content .wsf-submit-button,
form .wso-button,
.site-content a:is(.wso-button, .button),
.site-content .wso-location-accordion__btn,
.nav-tabs .nav-link {
  font-size: var(--button-font-size);
  line-height: var(--button-line-height);
  font-weight: var(--button-font-weight);
  letter-spacing: var(--button-letter-spacing);
  text-transform: var(--button-text-transform);
  margin: 0 var(--button-margin-horizontal) 0;
  padding: var(--button-padding-vertical) var(--button-padding-horizontal);
  color: var(--button-text-color) !important;
  background-color: var(--button-background-color);
  border: var(--button-border-default);
  border-radius: var(--button-border-radius);
  box-shadow: var(--button-box-shadow);
  transition: var(--transition-normal);
  text-decoration: none;
}

.site-content .jig-loadMoreButton:disabled,
.site .site-header .ast-main-header-wrap .wso-menu-cta > a:disabled,
.wpcf7 input[type=submit]:disabled,
.wpgb-facet button.wpgb-button:disabled,
.nav-link:disabled,
.site-content a:is(.wso-button, .button):disabled,
.site-content .wso-location-accordion__btn:disabled,
.accordion-button.collapsed:disabled,
.accordion-button:not(.collapsed):disabled,
.accordion-button:is(:hover, :focus):disabled,
.accordion-button.collapsed:is(:hover, :focus):disabled,
.nav-tabs .nav-link:disabled {
  filter: grayscale(1);
  opacity: 0.5;
}

.site-content .jig-loadMoreButton,
.site .site-header .ast-main-header-wrap .wso-menu-cta > a,
.wpcf7 input[type=submit],
.wpgb-facet button.wpgb-button,
.nav-link,
.site-content a:is(.wso-button, .button) {
  display: inline-block;
}

.visually-hidden {
  --button-font-size: 0;
  --button-line-height: 0;
  --button-letter-spacing: 0;
  --button-margin-top: 0rem;
  --button-margin-horizontal: 0;
  --button-margin-bottom: 0;
  --button-gap: 0;
  --button-padding-vertical: 0;
  --button-padding-horizontal: 0;
  --button-text-color: transparent;
  --button-background-color: transparent;
  --button-border-width: 0;
  --button-border-default: var(--button-border-width) solid transparent;
  --button-border-radius: 0rem;
  --button-box-shadow: none;
  --button-overlay-hover: transparent;
}

.site-content a:is(.wso-button, .button)::after {
  display: none;
}

.site-content a:is(.wso-button, .button) .button_label {
  padding: 0;
  text-decoration: none;
  display: inline-block !important;
  vertical-align: top !important;
}

/* Justified Image Grid Button */
.site-content .jig-loadMoreButton {
  position: relative;
  max-width: 100%;
  display: inline-block;
  border: none;
  border-radius: 0;
  box-shadow: none;
  color: var(--button-text-color);
  background: var(--button-background-color);
}

.jig-loadMoreButton-inner {
  position: relative;
  z-index: 1;
}

/* Button Hover */
.site-content .jig-loadMoreButton::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  transition: all var(--transition-short);
  background: var(--button-overlay-hover);
  opacity: 0;
}

.site-content .jig-loadMoreButton:is(:hover, :focus-visible)::after {
  opacity: 1;
}

/* ------------------------------ video button ------------------------------ */
.site-content .wso-video-button {
  transition: all var(--transition-short) ease-in-out;
  position: relative;
  display: inline-block;
  height: var(--video-button-size);
  width: var(--video-button-size);
  margin: auto auto var(--video-button-margin-bottom) auto;
  color: var(--video-button-color-default);
  border-radius: 50%;
  background: var(--video-button-background);
  padding: 0;
}

.site-content .wso-video-button:is(:hover, :focus-visible) {
  transform: scale(1.1);
  --video-button-color-default: var(--color-white);
  --video-button-background: var(--color-2);
}

.site-content .wso-video-button:focus-visible {
  outline: 2px solid var(--current-color-text);
  outline-offset: 4px;
}

.site-content .wso-image-wrapper .wso-video-button:focus-visible {
  outline: 2px solid var(--color-white);
}

.site-content .wso-video-button svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.site-content .wso-video-button svg #Vector {
  fill: transparent !important;
}

.site-content .wso-video-button svg #Vector_2 {
  transform-box: fill-box;
  transform-origin: 50% 50%;
  transform: scale(.85, .85) translate(3%, 4%);
  transition: transform .35s ease, opacity .35s ease, fill .35s ease;
}

.site-content .wso-column-image .wso-video-button {
  --video-button-margin-bottom: 0rem;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}

.site-content .wso-column-image .wso-video-button:hover, 
.site-content .wso-column-image .wso-video-button:focus-visible {
  transform: translate(-50%, -50%) scale(1.1);
}

/* ---------------------------- highlight button ---------------------------- */
.site .wso-highlight-button {
  margin: 0;
  padding: 0;
  border-radius: 50%;
  box-sizing: border-box;
  border: var(--highlight-button-outer-border-width) solid var(--highlight-button-color);
  rotate: var(--highlight-button-rotation);
  transition: transform .35s ease;

  display: flex;
  flex-direction: column;
  width: auto;  
  align-items: flex-start;
}

.site .wso-highlight-button .wso-column-attr {
  display: contents;
}

.site .wso-highlight-button .wso-highlight-button__content {
  position: relative !important;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  align-content: center;
  width: auto;
  height: auto;
  display: flex;
  align-items: center;
  align-content: center;
  aspect-ratio: 1/1;
  margin: 0;
  padding: 1.6rem 0 1.2rem;
  border-radius: 50%;
  box-sizing: border-box;
  text-align: center;
  font-family: var(--highlight-button-text-1-font-family);
  font-size: var(--highlight-button-text-1-font-size);
  line-height: var(--highlight-button-text-1-line-height);
  text-transform: var(--highlight-button-text-1-text-transform);
  letter-spacing: var(--highlight-button-text-1-letter-spacing);
  font-weight: var(--highlight-button-text-1-font-weight);
  color: var(--highlight-button-text-1-color-default);
  -webkit-hyphens: var(--highlight-button-text-1-hyphens-default);
  hyphens: var(--highlight-button-text-1-hyphens-default);
  -webkit-text-decoration: var(--highlight-button-text-1-text-decoration);
  text-decoration: var(--highlight-button-text-1-text-decoration);
  width: fit-content !important;
}

#content .wso-highlight-button__title {
  margin-bottom: -.125em !important;
  color: var(--highlight-button-color) !important;
  font-weight: 900 !important;
  line-height: .85 !important;
  padding: .5rem .45em;
}

.wso-highlight-button__content span {
  display: block;
  line-height: 1.3em !important;
}

.wso-highlight-button__prefix,
.wso-highlight-button__suffix {
  padding-left: 1em !important;
  padding-right: 1em !important;
  max-width: 11.25em;
}

.wso-highlight-button__content {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='183.001' height='183.001' viewBox='0 0 183.001 183.001' style='fill:%23ff0;'%3E%3Cpath d='M182.866,94.334c-.522,4.751-5.088,9.068-7.361,13.126-1.908,3.41-3.298,8.059-3.381,11.985-.137,6.625,2.415,11.498-1.356,17.912-4.308,7.322-14.318,7.98-20.347,14.531-4.722,5.127-5.834,13.151-10.966,17.327-8.035,6.551-16.518,1.405-25.674,3.595-8.561,2.044-13.332,10.278-22.493,10.19-8.498-.083-13.6-8.122-22.035-10.18-6.815-1.669-11.23.497-17.483-.078-12.659-1.161-12.893-15.507-20.976-22.683-5.868-5.214-14.342-5.692-18.464-12.756-4.278-7.326-.093-15.677-2.254-24.087-1.82-7.087-8.893-12.492-9.883-18.897-1.737-11.258,8.8-16.409,10.464-27.068.951-6.132-1.532-12.644.181-18.112,3.473-11.112,14.639-10.19,21.786-17.97,5.61-6.102,6.025-15.068,13.591-19.092,6.595-3.507,14.435-.332,21.63-1.541,10.947-1.839,16.317-13.712,28.542-9.722,2.507.819,4.908,2.566,7.113,3.99,4.044,2.605,6.634,4.805,11.698,5.736,7.302,1.351,14.937-2.122,21.649,1.522,7.956,4.322,8.225,13.98,14.674,20.204,6.492,6.273,16.151,6.136,20.064,15.058,3.009,6.854-.635,14.551,1.487,22.414,2.669,9.873,11.093,12.858,9.796,24.594Z'/%3E%3C/svg%3E");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.wso-highlight-button .wso-absolute-link {
  border-radius: 50%;
}

.wso-highlight-button:has(.wso-absolute-link):hover,
.wso-highlight-button:has(.wso-absolute-link):focus-within {
  transform: scale3d(1.05, 1.05, 1);  
}

.wso-highlight-button .wso-absolute-link:focus-visible {
  outline: 2px solid var(--color-white);
  outline-offset: 6px;
}

@media only screen and (max-width: 991px) {
  .site .wso-highlight-button p {
    padding: 1.6rem 2rem 1.2rem;
  }
}

/* ========================================================================== */
/*                                    CLOSE                                   */
/* ========================================================================== */
button.btn-close,
.btn-close {
  --bs-btn-close-color: var(--color-black);
  /*	--bs-btn-close-bg: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e);
  --bs-btn-close-opacity: 0.5;
  --bs-btn-close-hover-opacity: 0.75;
  --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
  --bs-btn-close-focus-opacity: 1;
  --bs-btn-close-disabled-opacity: 0.25;
  --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);
  */
  background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat;
  border-radius: 0;
}

/* ========================================================================== */
/*                                Arrow Button                                */
/* ========================================================================== */

.wso-arrow-button {
  display: inline-block;
  font-size: 1rem !important;
  border: none !important;
  outline: unset !important;
}

.wso-arrow-button__icon {
  display: block;
  position: relative;
  width: 2.889em;
  height: 2.889em;
  border-radius: 50%;
  background-color: var(--color-white);
  overflow: hidden;
  transition: background-color .35s ease !important;
}

.wso-arrow-button__icon::before,
.wso-arrow-button__icon::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  transition: opacity .35s ease;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 1.276em auto;
}

.wso-arrow-button__icon::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22.97' height='33.941' viewBox='0 0 22.97 33.941' style='fill:%23000000;'%3E%3Cpolygon points='6 33.941 22.97 16.971 6 0 6 2.828 19.112 15.942 0 15.942 0 17.942 19.17 17.942 6 31.113 6 33.941'/%3E%3C/svg%3E");
}

.wso-arrow-button__icon::after {
  opacity: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22.97' height='33.941' viewBox='0 0 22.97 33.941' style='fill:%23ffffff;'%3E%3Cpolygon points='6 33.941 22.97 16.971 6 0 6 2.828 19.112 15.942 0 15.942 0 17.942 19.17 17.942 6 31.113 6 33.941'/%3E%3C/svg%3E");
}

.wso-arrow-button:hover .wso-arrow-button__icon,
.wso-arrow-button:focus-visible .wso-arrow-button__icon {
  background-color: var(--color-2);
}

.wso-arrow-button:hover .wso-arrow-button__icon::before,
.wso-arrow-button:focus-visible .wso-arrow-button__icon::before {
  opacity: 0;
}

.wso-arrow-button:hover .wso-arrow-button__icon::after,
.wso-arrow-button:focus-visible .wso-arrow-button__icon::after {
  opacity: 1;
}

.wso-arrow-button:focus-visible .wso-arrow-button__icon {
  outline: 2px solid var(--color-white);
  outline-offset: 4px;
}

@media only screen and (max-width: 991px) {
  .wso-arrow-button__icon {
    width: 3.7em;
    height: 3.7em;
  }
  .wso-arrow-button__icon::before,
  .wso-arrow-button__icon::after {
    background-size: 1.35em auto;
  }
}