/* Common */

html {
    scroll-behavior: smooth;
}

p,
li,
h1,
h2,
h3,
h4,
h5,
h6 {
    text-wrap: pretty;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-wrap: balance;
    word-break: keep-all;
}

[id] {
    scroll-margin-top: var(--header-height, 9rem);
}

@media screen and (max-width: 767px) {
    [id] {
        scroll-margin-top: var(--header-height, 7rem);
    }
}

/* Page Templates */

.service-template-default,
.service-template-single-service,
.page-template-page-dark {
    background: var(--wp--preset--color--primary);
}

/* Forms */

.gform-theme {
    --shadow: 0px 1px 4px 0px rgba(25, 33, 61, 0.08);
    --gf-letter-spacing-primary: 0.5px;
    --gf-letter-spacing-secondary: -0.25px;
    --gf-letter-spacing-tertiary: 0.125px;
    --gf-ctrl-border-color: --wp--preset--color--light-grey;
    --gf-ctrl-bg-color-focus: var(--wp--preset--color--contrast-2);
    --gf-ctrl-label-font-weight-primary: 600;
    --gf-ctrl-shadow: var(--shadow);

    --gf-ctrl-btn-radius: 0.375rem;
    --gf-ctrl-btn-font-weight: 600;
    --gf-ctrl-btn-padding-x: 1.125rem !important;
    --gf-ctrl-btn-padding-y: 0.875rem;
    --gf-ctrl-btn-bg-color-focus-primary: var(--wp--preset--color--light-grey);
    --gf-ctrl-btn-color-hover-primary: var(--wp--preset--color--primary);
    --gf-ctrl-btn-bg-color-hover-primary: var(--wp--preset--color--light-grey);
    --gf-local-color: var(--wp--preset--color--contrast);

    --gf-ctrl-file-zone-icon-color: var(--wp--preset--color--primary);
    --gf-ctrl-btn-bg-color-ctrl: var(--wp--preset--color--primary);
    --gf-ctrl-btn-color-hover-ctrl: var(--wp--preset--color--primary);
    --gf-ctrl-btn-bg-color-hover-ctrl: var(--wp--preset--color--light-grey);

    --gf-form-gap-y: 1.5rem;
    --gf-form-gap-x: 2rem;
    --gf-form-footer-margin-y-start: 0;
    --gf-radius: 0.375rem;
}

.gfield input,
.gfield select,
.gfield textarea {
    border: 1px solid var(--wp--preset--color--light-grey) !important;
}

.gfield input {
    padding-block: 1rem;
}

/* Block Styles */

.is-style-scroll {
    animation: anim-mask-up;
    animation-timeline: scroll(self);
    animation-range: 0 1rem;
    mask-composite: exclude;
}

.is-style-overflow-hidden {
    overflow: hidden;
}

.is-style-tab-panel > .wp-block-group {
    scroll-margin-top: var(--menu-height);
}

.neurospine-card .neurospine-card-wrapper {
    box-shadow: 0px 1px 4px 0px #19213D14;
    overflow: hidden;
}

.neurospine-card .neurospine-card-wrapper .wp-block-post-title > a {
    text-decoration-line: none;
}

/* Helpers */

.position-relative {
    position: relative;
}

.z-index-0 {
    z-index: 0;
}

.bg-pos--bottom {
    background-position: bottom;
}

.bg-pos--bottom-left {
    background-position: bottom left;
}

.bg-pos--bottom-right {
    background-position: bottom right;
}

.bg-pos--center {
    background-position: center;
}

.bg-pos--center-left {
    background-position: center left;
}

.bg-pos--center-right {
    background-position: center right;
}

.bg-pos--top {
    background-position: top;
}

.bg-pos--top-left {
    background-position: top left;
}

.bg-pos--top-right {
    background-position: top right;
}

/* Menu */

.wp-block-menu {
    --menu-gap: 1rem;
}

.wp-block-menu .menu-item > a {
    color: inherit;
    text-decoration-color: transparent;
    text-underline-offset: 0.125em;
    transition: text-decoration-color 0.25s ease-out;
}

.wp-block-menu .menu-item > a:hover {
    text-decoration-color: currentColor;
}

.single-service .wp-block-menu .menu-item-type-post_type_archive.menu-item-object-service > a,
.single-career .wp-block-menu .menu-item-type-post_type_archive.menu-item-object-career > a,
.wp-block-menu .current-menu-item > a,
.wp-block-menu .current_page_parent > a,
.wp-block-menu .current-page-ancestor > a {
    text-decoration-color: var(--wp--preset--color--blue-cyan);
}

.wp-block-menu[data-location='top'] {
    font-size: 0.75rem;
}

.wp-block-menu[data-location='mobile'] {
    font-size: var(--wp--preset--font-size--medium);
}

.wp-block-menu[data-location='mobile'] .wp-block-menu-dialog {
    animation: mobile-reveal 0.375s ease-out forwards;
    background-color: var(--wp--preset--color--blue-3);
    color: var(--wp--preset--color--base);
    padding: 0;
}

.wp-block-menu[data-location='mobile'] .wp-block-menu-dialog .menu-item {
    animation: mobile-reveal-item 0.5s ease-out forwards;
}

.wp-block-menu[data-location='mobile'] .wp-block-menu-dialog .wp-block-menu-close {
    margin-block: 1rem;
}

.wp-block-menu[data-location='footer'] .menu {
    align-items: flex-start;
    justify-content: space-between;
}

.wp-block-menu[data-location='footer'] .sub-menu {
    padding-inline-start: 0;
}

.wp-block-menu[data-location='footer'] .menu {
    flex-grow: 1;
}

@media screen and (max-width: 599px) {
    .wp-block-menu[data-location='footer'] .menu {
        flex-direction: column;
    }
}

/* Header menu */

header > .wp-block-group > .wp-block-group,
.wp-block-menu[data-location='primary'],
.wp-block-menu[data-location='primary'] > .menu > .menu-item,
.wp-block-menu[data-location='primary'] > .menu {
    background-color: inherit;
    color: inherit;
}

.wp-block-menu[data-location='primary'] > .menu > .menu-item-has-children {
    position: relative;
}

.wp-block-menu[data-location='primary'] > .menu > .menu-item-has-children > .sub-menu {
    background-color: inherit;
    border: 1px solid currentColor;
    border-radius: 0.5em;
    display: none;
    flex-direction: column;
    gap: 0.5em;
    left: 0;
    line-height: 1.25;
    padding: 0.75em 0;
    position: absolute;
    top: calc(100% + 0.25em);
    text-align: left;
    min-width: 10em;
    z-index: 1;
}

.wp-block-menu[data-location='primary'] > .menu > .menu-item-has-children > .sub-menu::before {
    border-top-right-radius: 50%;
    bottom: 100%;
    content: '';
    display: block;
    height: 0.375em;
    left: 0;
    position: absolute;
    width: 100%;
}

.wp-block-menu[data-location='primary'] > .menu > .menu-item-has-children:focus-within > .sub-menu,
.wp-block-menu[data-location='primary'] > .menu > .menu-item-has-children > .sub-menu:hover,
.wp-block-menu[data-location='primary'] > .menu > .menu-item-has-children > a:focus + .sub-menu,
.wp-block-menu[data-location='primary'] > .menu > .menu-item-has-children > a:hover + .sub-menu {
    display: flex;
}

.wp-block-menu[data-location='primary'] > .menu > .menu-item-has-children > .sub-menu > .menu-item > a {
    display: block;
    padding: 0 0.75em;
    text-align: start;
    text-decoration-color: transparent;
    transition: text-decoration-color 0.25s ease-out;
}

.wp-block-menu[data-location='primary'] > .menu > .menu-item-has-children > .sub-menu > .menu-item > a:hover {
    text-decoration-color: currentColor;
}

.wp-block-menu[data-location='primary'] > .menu > .menu-item-has-children > a,
.wp-block-menu[data-location='primary'] > .menu > .menu-item > a[aria-controls] {
    padding-inline-end: 1ch;
    position: relative;
}

.wp-block-menu[data-location='primary'] > .menu > .menu-item-has-children > a::after,
.wp-block-menu[data-location='primary'] > .menu > .menu-item > a[aria-controls]::after {
    aspect-ratio: 1 / 1;
    background-color: currentColor;
    border-radius: 50%;
    bottom: 50%;
    content: '';
    display: block;
    height: 0.25em;
    left: calc(100% - 0.25em);
    position: absolute;
    transform: translateY(50%);
    transition: background-color 0.25s ease-out;
    width: 0.25em;
    z-index: 1;
}

.wp-block-menu[data-location='primary'] > .menu > .menu-item-has-children > a:hover::after,
.wp-block-menu[data-location='primary'] > .menu > .menu-item > a[aria-controls]:hover::after,
.wp-block-menu[data-location='primary'] > .menu > .menu-item:has(.megamenu-dropdown[open]) > a[aria-controls]::after {
    background-color: var(--wp--preset--color--blue-cyan);
}

.wp-block-acf-megamenu {
    position: relative;
}

.megamenu-dropdown {
    animation: reveal-megamenu 0.25s ease-out forwards;
    background-color: inherit;
    box-sizing: border-box;
    color: var(--wp--preset--color--base);
    border: none;
    left: 0;
    max-height: calc(100vh - (var(--menu-height) + var(--wp-admin--admin-bar--position-offset)));
    padding: 0;
    position: absolute;
    right: 0;
    text-align: initial;
    top: 100%;
    transform: translateX(-50%);
    width: 100%;
    z-index: 10;
}

.megamenu-dropdown-content {
    box-sizing: border-box;
    height: 100%;
    overflow-y: auto;
    max-height: 100%;
    width: 100%;
}

.megamenu-dropdown-close {
    align-items: center;
    appearance: none;
    aspect-ratio: 1;
    background-color: transparent;
    border: none;
    border-radius: 50%;
    box-shadow: none;
    color: inherit;
    cursor: pointer;
    display: flex;
    justify-content: center;
    position: absolute;
    right: 1rem;
    top: 1rem;
    transition: all 0.25s ease-out;
    transition-property: background-color, color;
}

.megamenu-dropdown-close:focus,
.megamenu-dropdown-close:hover {
    background-color: var(--wp--preset--color--base);
    color: var(--wp--preset--color--primary);
}

.megamenu-dropdown-close svg {
    color: inherit;
    fill: currentColor;
}

.megamenu-dropdown a {
    text-decoration: underline;
    text-decoration-color: transparent;
    transition: text-decoration-color 0.25s ease-out;
}

.megamenu-dropdown a:hover,
.megamenu-dropdown a:active {
    text-decoration-color: currentColor;
}

@media screen and (min-width: 781px) and (max-width: 1399px) {
    .megamenu-dropdown-close {
        bottom: 1rem;
        top: unset;
    }
}

@media screen and (max-width: 599px) {
    .wp-block-acf-megamenu {
        display: none;
    }
}

@keyframes reveal-megamenu {
    from {
        opacity: 0;
        transform: translateY(-0.25rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Post Contents */

.entry-content > p:first-of-type {
    font-size: var(--wp--preset--font-size--medium);
}

.entry-content > p:has(img.aligncenter) {
    text-align: center;
}

.entry-content > p:has(img.alignright) {
    text-align: right;
}

/* Team Members */

@media screen and (min-width: 600px) {
    .single-member .wp-block-post-content {
        overflow-y: auto;
        max-height: 50vh;
        padding-inline-end: 1.5em;
        scrollbar-color: var(--wp--preset--color--blue-cyan) var(--wp--preset--color--light-blue);
        scrollbar-width: thin;
    }
}

/* Buttons */

.wp-block-button__icon {
    height: auto;
    width: 1em;
}

.has-text-align-center.wp-element-button--has-icon {
    justify-content: center;
}

.has-text-align-right.wp-element-button--has-icon {
    justify-content: flex-end;
}

.is-style-button.has-text-align-center > .wp-block-post-excerpt__more-text {
    text-align: inherit;
}

.wp-block-button:not(.is-style-arrow) .wp-block-button__link {
    transition: all 0.25s ease-out;
    transition-property: background-color, border-color, color;
}

.wp-block-buttons:not(.is-style-tab-buttons) .wp-block-button:not(.is-style-arrow) .wp-block-button__link:not(.wp-element-button--has-icon):focus,
.wp-block-buttons:not(.is-style-tab-buttons) .wp-block-button:not(.is-style-arrow) .wp-block-button__link:not(.wp-element-button--has-icon):hover {
    background-color: var(--wp--preset--color--primary) !important;
    color: var(--wp--preset--color--base) !important;
}

.wp-block-buttons:not(.is-style-tab-buttons) .wp-block-button:not(.is-style-arrow) .wp-block-button__link.has-base-background-color:not(.wp-element-button--has-icon):focus,
.wp-block-buttons:not(.is-style-tab-buttons) .wp-block-button:not(.is-style-arrow) .wp-block-button__link.has-base-background-color:not(.wp-element-button--has-icon):hover {
    background-color: var(--wp--preset--color--primary) !important;
    color: var(--wp--preset--color--base) !important;
}
.wp-block-buttons:not(.is-style-tab-buttons) .wp-block-button.is-style-outline:not(.is-style-arrow) .wp-block-button__link.has-base-color:focus,
.wp-block-buttons:not(.is-style-tab-buttons) .wp-block-button.is-style-outline:not(.is-style-arrow) .wp-block-button__link.has-base-color:hover {
    background-color: var(--wp--preset--color--base) !important;
    color: var(--wp--preset--color--primary) !important;
}

.wp-block-buttons:not(.is-style-tab-buttons) .wp-block-button.is-style-outline:not(.is-style-arrow) .wp-block-button__link:not(.has-base-color) .wp-block-button__link.has-base-background-color:not(.wp-element-button--has-icon):focus,
.wp-block-buttons:not(.is-style-tab-buttons) .wp-block-button.is-style-outline:not(.is-style-arrow) .wp-block-button__link:not(.has-base-color).wp-block-button__link.has-base-background-color:not(.wp-element-button--has-icon):hover {
    background-color: var(--wp--preset--color--primary)!important;
    color: var(--wp--preset--color--base) !important;
}

.is-style-tab-buttons .is-style-fill .wp-block-button__link {
    background-color: var(--wp--preset--color--primary);
}

.is-style-tab-buttons .is-style-outline .wp-block-button__link[aria-expanded=true] {
    background-color: var(--wp--preset--color--light-grey) !important;
    border: 1px solid var(--wp--preset--color--light-grey);
    color: var(--wp--preset--color--primary);
}

.is-style-tab-buttons .is-style-outline .wp-block-button__link:not([aria-expanded=true]):focus,
.is-style-tab-buttons .is-style-outline .wp-block-button__link:not([aria-expanded=true]):hover {
    background-color: var(--wp--preset--color--primary) !important;
    color: var(--wp--preset--color--base) !important;
}

.wp-element-button--has-icon {
    align-items: center;
    display: flex;
    gap: 0.5em;
}

.wp-block-button__link.wp-element-button--has-icon.has-primary-background-color:focus,
.wp-block-button__link.wp-element-button--has-icon.has-primary-background-color:hover {
    background-color: var(--wp--preset--color--blue-4) !important;
}

.wp-block-button__link.wp-element-button--has-icon.has-base-background-color:focus,
.wp-block-button__link.wp-element-button--has-icon.has-base-background-color:hover {
    background-color: var(--wp--preset--color--photo-grey) !important;
}

.wp-block-button__link.wp-element-button--has-icon.has-blue-2-border-color:focus,
.wp-block-button__link.wp-element-button--has-icon.has-blue-2-border-color:hover {
    background-color: var(--wp--preset--color--light-grey);
    border-color: var(--wp--preset--color--light-grey) !important;
}

/* Details */

.wp-block-details.is-style-featured > summary {
    border-bottom: 1px solid transparent;
    list-style: none;
    position: relative;
    transition: border-bottom-color 0.25s ease-out;
}

.wp-block-details.is-style-featured > summary:hover,
.wp-block-details.is-style-featured[open] > summary {
    border-bottom-color: currentColor;
}

.wp-block-details.is-style-featured > summary::before,
.wp-block-details.is-style-featured > summary::after {
    background-color: currentColor;
    border-radius: 0.125em;
    content: '';
    display: inline-block;
    height: 0.125em;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 0.875em;
}

.wp-block-details.is-style-featured > summary::after {
    transform: translateY(-50%) rotate(-90deg);
    transition: transform 0.25s ease-out;
}

.wp-block-details[open].is-style-featured > summary::after {
    transform: translateY(-50%) rotate(0deg);
}

/* Accordions */

.wp-block-accordion-item {
    display: grid;
    grid-template-rows: max-content 0fr;
    transition: all 0.25s ease-out;
    transition-property: background-color, grid-template-rows;
}

.wp-block-accordion-item.is-open {
    grid-template-rows: max-content 1fr;
}

.wp-block-accordion-panel {
    overflow: hidden;
    padding-bottom: var(--wp--preset--spacing--40);
    transition: all 0.25s ease-out;
    transition-property: padding;
}

.wp-block-accordion-panel[inert] {
    display: block;
    padding: 0;
}

.wp-block-accordion-item + .wp-block-accordion-item {
    border-top: 0.125em solid currentColor;
}

.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title {
    text-decoration-color: transparent;
}

/* Social Icons */

.wp-social-link {
    border-radius: 0.5rem;
    transition: all 0.25s ease-out;
    transition-property: background-color, color, box-shadow, transform;
}

.wp-social-link:focus,
.wp-social-link:hover {
    border-radius: 0.5rem;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
}

/* Tag Cloud */

.tag-cloud-link {
    border: 1px solid var(--wp--preset--color--primary);
    border-radius: 0.25rem;
    transition: all 0.25s ease-out;
    transition-property: color, background-color;
}

.tag-cloud-link:focus,
.tag-cloud-link:hover {
    background-color: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--base);
}

.tag-cloud-link.current-term {
    background-color: var(--wp--preset--color--primary) !important;
    color: var(--wp--preset--color--base);
}

/* Taxonomy */

.taxonomy-location a,
.taxonomy-role-type a {
    text-decoration: none;
}

/* Media & Text */

.wp-block-media-text.has-media-on-the-right > .wp-block-media-text__content {
    padding-inline-start: 0;
}

.wp-block-media-text:not(.has-media-on-the-right) > .wp-block-media-text__content {
    padding-inline-end: 0;
}

@media screen and (min-width: 1280px) {
    .wp-block-media-text.extend-image-right .wp-block-media-text__media {
        margin-inline-end: calc(((100vw - var(--wp--style--global--content-size)) / 2)* -1);
    }
}

@media screen and (max-width: 600px) {
    .wp-block-media-text.extend-image-right .wp-block-media-text__media {
        grid-row: 2;
    }
    .wp-block-media-text.extend-image-right .wp-block-media-text__content {
        grid-row: 1;
    }
}

/* Pagination */

.wp-block-query-pagination-numbers {
  margin-inline: auto !important;
}

.wp-block-query-pagination a {
  text-decoration-line: none;
  transition: color 0.25s ease-out;
}

.wp-block-query-pagination-numbers .page-numbers {
  align-items: center;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background-color: var(--wp--preset--color--light-blue);
  display: inline-flex;
  justify-content: center;
  margin-inline: 0.25rem;
  min-width: 2rem;
}

/* External Links */

.type-external_link > .wp-block-post-link {
    transition: all 0.25s ease-out;
    transition-property: background-color, color;
}

.type-external_link > .wp-block-post-link:hover {
    background-color: var(--wp--preset--color--primary) !important;
    color: var(--wp--preset--color--base) !important;
}

/* Gallery */

.gallery {
    display: flex;
    flex-wrap: wrap;
}

.gallery-item {
    flex-grow: 1;
    margin-bottom: 0;
}

.gallery-icon {
    display: flex;
}

.gallery-item img {
    height: auto;
    object-fit: cover;
    width: auto;
    max-width: 100%;
}

.gallery-columns-1 {
    flex-direction: column;
}

.gallery-columns-2 > .gallery-item,
.wp-block-gallery.columns-2 > .wp-block-image {
    width: 50% !important;
}

.gallery-columns-3 > .gallery-item,
.wp-block-gallery.columns-3 > .wp-block-image {
    width: 33.332% !important;
    width: calc(100% / 3) !important;
}

.gallery-columns-4 > .gallery-item,
.wp-block-gallery.columns-4 > .wp-block-image {
    width: 25% !important;
}

.gallery-columns-5 > .gallery-item,
.wp-block-gallery.columns-5 > .wp-block-image {
    width: 20% !important;
}

.gallery-columns-6 > .gallery-item,
.wp-block-gallery.columns-6 > .wp-block-image {
    width: 16.666% !important;
    width: calc(100% / 6) !important;
}

.gallery-columns-7 > .gallery-item,
.wp-block-gallery.columns-7 > .wp-block-image {
    width: 14.285% !important;
    width: calc(100% / 7) !important;
}

.gallery-columns-8 > .gallery-item,
.wp-block-gallery.columns-8 > .wp-block-image {
    width: 12.5% !important;
    width: calc(100% / 8) !important;
}

@media screen and (max-width: 599px) {
    .gallery > .gallery-item {
        width: 100% !important;
    }
}

/* Blockquote */

.entry-content > blockquote {
    border-left: 4px solid var(--wp--preset--color--primary);
    font-size: var(--wp--preset--font-size--medium);
    margin-left: 0;
    padding-left: 1em;
}

/* Keyframe Animations */

@keyframes anim-mask-up {
    to {
        mask-size: 100% 120px, 100% 100%;
    }
}

@keyframes mobile-reveal {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes mobile-reveal-item {
    from {
        transform: translateY(-0.125rem);
    }
    to {
        transform: translateY(0);
    }
}
