/* Target navigation links */
.wp-block-navigation-item__content {
    position: relative;
    text-decoration: none;
}

/* Underline hidden by default */
.wp-block-navigation-item__content::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -6px;
    width: 0%;
    height: 2px;
    background-color: #FCB040;
    transition: width 0.3s ease;
}

/* Show underline on hover */
.wp-block-navigation-item__content:hover::after {
    width: 100%;
}


/* =========================================================
   SHAPE-STYLE TRANSPARENT HEADER FOR WORDPRESS BLOCK THEMES
   Header is transparent over the cover image.
   On scroll, header fades into a premium glass background.
========================================================= */

:root {
  --header-bg-scrolled: rgba(255, 255, 255, 0.94);
  --header-text-top: #ffffff;
  --header-text-scrolled: #111111;
  --header-border-scrolled: rgba(0, 0, 0, 0.08);
  --header-shadow-scrolled: 0 8px 30px rgba(0, 0, 0, 0.10);

  /* Social icons stay this colour at all times */
  --header-social-icon-color: #FCB040;
}

/* ---------- Header sits over the cover block ---------- */

.wp-site-blocks > header,
header.wp-block-template-part,
.wp-block-template-part:has(header) {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;

  background: transparent !important;
  box-shadow: none !important;
  border-bottom: 1px solid transparent !important;

  transition:
    background-color 0.35s ease,
    box-shadow 0.35s ease,
    border-color 0.35s ease,
    backdrop-filter 0.35s ease,
    -webkit-backdrop-filter 0.35s ease;
}

/* Fix header position while logged into WordPress */
body.admin-bar .wp-site-blocks > header,
body.admin-bar header.wp-block-template-part,
body.admin-bar .wp-block-template-part:has(header) {
  top: 32px;
}

@media screen and (max-width: 782px) {
  body.admin-bar .wp-site-blocks > header,
  body.admin-bar header.wp-block-template-part,
  body.admin-bar .wp-block-template-part:has(header) {
    top: 46px;
  }
}

/* ---------- Remove gaps above the hero cover ---------- */

.wp-site-blocks,
.wp-site-blocks main,
.wp-block-post-content,
.entry-content,
main.wp-block-group {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Make the first cover block join the header visually */
.hero-cover,
.wp-site-blocks main > .wp-block-cover:first-child,
.wp-block-post-content > .wp-block-cover:first-child,
.entry-content > .wp-block-cover:first-child {
  margin-top: 0 !important;
  min-height: 100vh;
}

/* Optional dark overlay for readability */
.hero-cover::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.25);
  z-index: 1;
  pointer-events: none;
}

/* Keep hero content above the overlay */
.hero-cover > * {
  position: relative;
  z-index: 2;
}

/* ---------- Header top state: transparent + white text ---------- */

.wp-site-blocks > header:not(.is-scrolled),
.wp-site-blocks > header:not(.is-scrolled) a,
.wp-site-blocks > header:not(.is-scrolled) p,
.wp-site-blocks > header:not(.is-scrolled) span,
.wp-site-blocks > header:not(.is-scrolled) .wp-block-site-title,
.wp-site-blocks > header:not(.is-scrolled) .wp-block-site-title a,
.wp-site-blocks > header:not(.is-scrolled) .wp-block-navigation-item__content,
.wp-site-blocks > header:not(.is-scrolled) .wp-block-navigation__responsive-container-open,
header.wp-block-template-part:not(.is-scrolled),
header.wp-block-template-part:not(.is-scrolled) a,
header.wp-block-template-part:not(.is-scrolled) p,
header.wp-block-template-part:not(.is-scrolled) span,
header.wp-block-template-part:not(.is-scrolled) .wp-block-site-title,
header.wp-block-template-part:not(.is-scrolled) .wp-block-site-title a,
header.wp-block-template-part:not(.is-scrolled) .wp-block-navigation-item__content,
header.wp-block-template-part:not(.is-scrolled) .wp-block-navigation__responsive-container-open,
.wp-block-template-part:not(.is-scrolled):has(header),
.wp-block-template-part:not(.is-scrolled):has(header) a,
.wp-block-template-part:not(.is-scrolled):has(header) p,
.wp-block-template-part:not(.is-scrolled):has(header) span,
.wp-block-template-part:not(.is-scrolled):has(header) .wp-block-site-title,
.wp-block-template-part:not(.is-scrolled):has(header) .wp-block-site-title a,
.wp-block-template-part:not(.is-scrolled):has(header) .wp-block-navigation-item__content,
.wp-block-template-part:not(.is-scrolled):has(header) .wp-block-navigation__responsive-container-open {
  color: var(--header-text-top) !important;
  transition: color 0.35s ease;
}

/* SVG logo/icon turns white at the top */
.wp-site-blocks > header:not(.is-scrolled) svg,
.wp-site-blocks > header:not(.is-scrolled) svg path,
header.wp-block-template-part:not(.is-scrolled) svg,
header.wp-block-template-part:not(.is-scrolled) svg path,
.wp-block-template-part:not(.is-scrolled):has(header) svg,
.wp-block-template-part:not(.is-scrolled):has(header) svg path {
  fill: var(--header-text-top) !important;
  stroke: var(--header-text-top) !important;
  transition: fill 0.35s ease, stroke 0.35s ease;
}

/* Image logo turns white at the top */
.wp-site-blocks > header:not(.is-scrolled) img,
header.wp-block-template-part:not(.is-scrolled) img,
.wp-block-template-part:not(.is-scrolled):has(header) img {
  filter: brightness(0) invert(1);
  transition: filter 0.5s ease;
}

/* ---------- Header scrolled state: premium SHAPE-style glass ---------- */

.wp-site-blocks > header.is-scrolled,
header.wp-block-template-part.is-scrolled,
.wp-block-template-part.is-scrolled:has(header) {
  background: var(--header-bg-scrolled) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--header-border-scrolled) !important;
  box-shadow: var(--header-shadow-scrolled) !important;
}

/* Text returns to normal colour after scroll */
.wp-site-blocks > header.is-scrolled,
.wp-site-blocks > header.is-scrolled a,
.wp-site-blocks > header.is-scrolled p,
.wp-site-blocks > header.is-scrolled span,
.wp-site-blocks > header.is-scrolled .wp-block-site-title,
.wp-site-blocks > header.is-scrolled .wp-block-site-title a,
.wp-site-blocks > header.is-scrolled .wp-block-navigation-item__content,
.wp-site-blocks > header.is-scrolled .wp-block-navigation__responsive-container-open,
header.wp-block-template-part.is-scrolled,
header.wp-block-template-part.is-scrolled a,
header.wp-block-template-part.is-scrolled p,
header.wp-block-template-part.is-scrolled span,
header.wp-block-template-part.is-scrolled .wp-block-site-title,
header.wp-block-template-part.is-scrolled .wp-block-site-title a,
header.wp-block-template-part.is-scrolled .wp-block-navigation-item__content,
header.wp-block-template-part.is-scrolled .wp-block-navigation__responsive-container-open,
.wp-block-template-part.is-scrolled:has(header),
.wp-block-template-part.is-scrolled:has(header) a,
.wp-block-template-part.is-scrolled:has(header) p,
.wp-block-template-part.is-scrolled:has(header) span,
.wp-block-template-part.is-scrolled:has(header) .wp-block-site-title,
.wp-block-template-part.is-scrolled:has(header) .wp-block-site-title a,
.wp-block-template-part.is-scrolled:has(header) .wp-block-navigation-item__content,
.wp-block-template-part.is-scrolled:has(header) .wp-block-navigation__responsive-container-open {
  color: var(--header-text-scrolled) !important;
}

/* SVG logo/icon returns to normal dark colour after scroll */
.wp-site-blocks > header.is-scrolled svg,
.wp-site-blocks > header.is-scrolled svg path,
header.wp-block-template-part.is-scrolled svg,
header.wp-block-template-part.is-scrolled svg path,
.wp-block-template-part.is-scrolled:has(header) svg,
.wp-block-template-part.is-scrolled:has(header) svg path {
  fill: var(--header-text-scrolled) !important;
  stroke: var(--header-text-scrolled) !important;
}

/* Image logo returns to normal after scroll */
.wp-site-blocks > header.is-scrolled img,
header.wp-block-template-part.is-scrolled img,
.wp-block-template-part.is-scrolled:has(header) img {
  filter: none;
}

/* ---------- Navigation hover polish ---------- */

.wp-site-blocks > header a,
header.wp-block-template-part a,
.wp-block-template-part:has(header) a {
  text-decoration: none;
  transition: color 0.5s ease, opacity 0.5s ease;
}

.wp-site-blocks > header a:hover,
header.wp-block-template-part a:hover,
.wp-block-template-part:has(header) a:hover {
  opacity: 0.72;
}

/* ---------- Mobile menu fix ---------- */

.wp-block-navigation__responsive-container.is-menu-open {
  background: #ffffff !important;
  color: #111111 !important;
}

.wp-block-navigation__responsive-container.is-menu-open a,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  color: #111111 !important;
}

.wp-block-navigation__responsive-container-close svg,
.wp-block-navigation__responsive-container-close svg path {
  fill: #111111 !important;
  stroke: #111111 !important;
}

/* =========================================================
   HEADER HOVER STATE
   When hovering over transparent header, make it look normal
========================================================= */

/* Header background fades in on hover */
.wp-site-blocks > header:hover,
.wp-site-blocks > header:focus-within,
header.wp-block-template-part:hover,
header.wp-block-template-part:focus-within,
.wp-block-template-part:hover:has(header),
.wp-block-template-part:focus-within:has(header) {
  background: var(--header-bg-scrolled) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--header-border-scrolled) !important;
  box-shadow: var(--header-shadow-scrolled) !important;
}

/* Text changes back to normal colour on hover */
.wp-site-blocks > header:hover,
.wp-site-blocks > header:hover a,
.wp-site-blocks > header:hover p,
.wp-site-blocks > header:hover span,
.wp-site-blocks > header:hover .wp-block-site-title,
.wp-site-blocks > header:hover .wp-block-site-title a,
.wp-site-blocks > header:hover .wp-block-navigation-item__content,
.wp-site-blocks > header:hover .wp-block-navigation__responsive-container-open,

.wp-site-blocks > header:focus-within,
.wp-site-blocks > header:focus-within a,
.wp-site-blocks > header:focus-within p,
.wp-site-blocks > header:focus-within span,
.wp-site-blocks > header:focus-within .wp-block-site-title,
.wp-site-blocks > header:focus-within .wp-block-site-title a,
.wp-site-blocks > header:focus-within .wp-block-navigation-item__content,
.wp-site-blocks > header:focus-within .wp-block-navigation__responsive-container-open,

header.wp-block-template-part:hover,
header.wp-block-template-part:hover a,
header.wp-block-template-part:hover p,
header.wp-block-template-part:hover span,
header.wp-block-template-part:hover .wp-block-site-title,
header.wp-block-template-part:hover .wp-block-site-title a,
header.wp-block-template-part:hover .wp-block-navigation-item__content,
header.wp-block-template-part:hover .wp-block-navigation__responsive-container-open,

header.wp-block-template-part:focus-within,
header.wp-block-template-part:focus-within a,
header.wp-block-template-part:focus-within p,
header.wp-block-template-part:focus-within span,
header.wp-block-template-part:focus-within .wp-block-site-title,
header.wp-block-template-part:focus-within .wp-block-site-title a,
header.wp-block-template-part:focus-within .wp-block-navigation-item__content,
header.wp-block-template-part:focus-within .wp-block-navigation__responsive-container-open {
  color: var(--header-text-scrolled) !important;
}

/* SVG logo/icons return to normal colour on hover */
header.wp-block-template-part:hover svg,
header.wp-block-template-part:hover svg path,
header.wp-block-template-part:focus-within svg,
header.wp-block-template-part:focus-within svg path,
.wp-block-template-part:hover:has(header) svg,
.wp-block-template-part:hover:has(header) svg path,
.wp-block-template-part:focus-within:has(header) svg,
.wp-block-template-part:focus-within:has(header) svg path {
  fill: var(--header-text-scrolled) !important;
  stroke: var(--header-text-scrolled) !important;
}

/* Image logo returns to normal on hover */
.wp-site-blocks > header:hover img,
.wp-site-blocks > header:focus-within img,
header.wp-block-template-part:hover img,
header.wp-block-template-part:focus-within img,
.wp-block-template-part:hover:has(header) img,
.wp-block-template-part:focus-within:has(header) img {
  filter: none !important;
}

/* =========================================================
   FORCE SCROLLED HEADER BACK TO ORIGINAL / NORMAL STATE
   Uses body.header-has-scrolled from JavaScript
========================================================= */

body.header-has-scrolled .wp-site-blocks > header,
body.header-has-scrolled header.wp-block-template-part,
body.header-has-scrolled .wp-block-template-part:has(header) {
  background: var(--header-bg-scrolled) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--header-border-scrolled) !important;
  box-shadow: var(--header-shadow-scrolled) !important;
}

/* Text returns to original / normal colour */
body.header-has-scrolled .wp-site-blocks > header,
body.header-has-scrolled .wp-site-blocks > header a,
body.header-has-scrolled .wp-site-blocks > header p,
body.header-has-scrolled .wp-site-blocks > header span,
body.header-has-scrolled .wp-site-blocks > header .wp-block-site-title,
body.header-has-scrolled .wp-site-blocks > header .wp-block-site-title a,
body.header-has-scrolled .wp-site-blocks > header .wp-block-site-tagline,
body.header-has-scrolled .wp-site-blocks > header .wp-block-navigation-item__content,
body.header-has-scrolled .wp-site-blocks > header .wp-block-navigation__responsive-container-open,

body.header-has-scrolled header.wp-block-template-part,
body.header-has-scrolled header.wp-block-template-part a,
body.header-has-scrolled header.wp-block-template-part p,
body.header-has-scrolled header.wp-block-template-part span,
body.header-has-scrolled header.wp-block-template-part .wp-block-site-title,
body.header-has-scrolled header.wp-block-template-part .wp-block-site-title a,
body.header-has-scrolled header.wp-block-template-part .wp-block-site-tagline,
body.header-has-scrolled header.wp-block-template-part .wp-block-navigation-item__content,
body.header-has-scrolled header.wp-block-template-part .wp-block-navigation__responsive-container-open {
  color: var(--header-text-scrolled) !important;
}

/* SVG icons/logos return to normal */
body.header-has-scrolled .wp-site-blocks > header svg,
body.header-has-scrolled .wp-site-blocks > header svg path,
body.header-has-scrolled header.wp-block-template-part svg,
body.header-has-scrolled header.wp-block-template-part svg path,
body.header-has-scrolled .wp-block-template-part:has(header) svg,
body.header-has-scrolled .wp-block-template-part:has(header) svg path {
  fill: var(--header-text-scrolled) !important;
  stroke: var(--header-text-scrolled) !important;
}

/* Image logo returns to normal */
body.header-has-scrolled .wp-site-blocks > header img,
body.header-has-scrolled header.wp-block-template-part img,
body.header-has-scrolled .wp-block-template-part:has(header) img {
  filter: none !important;
}

/* Keep Essential Blocks social icons orange */
body.header-has-scrolled .eb-social-icon,
body.header-has-scrolled .eb-social-links-wrapper i,
body.header-has-scrolled .eb-social-links-wrapper span,
body.header-has-scrolled .eb-social-links-wrapper svg,
body.header-has-scrolled .eb-social-links-wrapper svg path,
body.header-has-scrolled .wp-block-social-links svg,
body.header-has-scrolled .wp-block-social-links svg path {

}
.wp-site-blocks > header.header-past-cover,
header.wp-block-template-part.header-past-cover,
.wp-block-template-part.header-past-cover:has(header) {
  transform: translateY(-110%);
  opacity: 0;
  pointer-events: none;
}
/* =========================================================
   GLOBAL HERO + HEADER CONSISTENCY ACROSS ALL PAGES
========================================================= */

/* Make every page's hero act like the homepage hero */
.entry-content .wp-block-cover:first-of-type,
.wp-block-post-content .wp-block-cover:first-of-type {
  margin-top: 0 !important;
  min-height: 100vh;
}

/* Remove spacing above the first hero on all page templates */
.wp-site-blocks,
.wp-site-blocks main,
.wp-block-post-content,
.entry-content,
main.wp-block-group {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* If the first thing inside content is a group wrapping the hero, remove its top spacing */
.entry-content > .wp-block-group:first-child,
.wp-block-post-content > .wp-block-group:first-child,
.wp-site-blocks main > .wp-block-group:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Keep hero overlay behaviour consistent */
.hero-cover::before,
.wp-site-blocks main .wp-block-cover:first-of-type::before,
.entry-content .wp-block-cover:first-of-type::before,
.wp-block-post-content .wp-block-cover:first-of-type::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

/* Force the same header wrapper on every template */
.wp-site-blocks > header,
header.wp-block-template-part,
.wp-block-template-part:has(header) {
  width: 100%;
  z-index: 9999;
}

/* =========================================================
   GLOBAL HEADER BEHAVIOUR ACROSS ALL PAGES
   - Transparent over first cover block
   - Normal after scroll
   - Hides after cover when scrolling down
   - Shows again when scrolling up
   - Smooth transition
========================================================= */

/* Smooth header movement */
.wp-site-blocks > header,
header.wp-block-template-part,
.wp-block-template-part:has(header) {
  will-change: transform, opacity, background-color;
  transform: translate3d(0, 0, 0);
  opacity: 1;

  transition:
    transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.35s ease,
    background-color 0.35s ease,
    box-shadow 0.35s ease,
    border-color 0.35s ease,
    backdrop-filter 0.35s ease,
    -webkit-backdrop-filter 0.35s ease !important;
}

/* Hide header smoothly after the hero when scrolling down */
.wp-site-blocks > header.header-past-cover,
header.wp-block-template-part.header-past-cover,
.wp-block-template-part.header-past-cover:has(header) {
  transform: translate3d(0, -115%, 0) !important;
  opacity: 0 !important;
  pointer-events: none;
}

/* Show header again when scrolling up */
.wp-site-blocks > header:not(.header-past-cover),
header.wp-block-template-part:not(.header-past-cover),
.wp-block-template-part:not(.header-past-cover):has(header) {
  transform: translate3d(0, 0, 0);
  opacity: 1;
}

/* Make the first cover block on every page behave like a hero */
body.has-hero-cover .entry-content .wp-block-cover:first-of-type,
body.has-hero-cover .wp-block-post-content .wp-block-cover:first-of-type,
body.has-hero-cover main .wp-block-cover:first-of-type,
body.has-hero-cover .global-hero-cover {
  margin-top: 0 !important;
  min-height: 100vh;
}

/* Remove top gaps on all templates */
.wp-site-blocks,
.wp-site-blocks main,
.wp-block-post-content,
.entry-content,
main.wp-block-group {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Remove spacing if the hero is wrapped in a group */
.entry-content > .wp-block-group:first-child,
.wp-block-post-content > .wp-block-group:first-child,
.wp-site-blocks main > .wp-block-group:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Pages without a cover should use the normal header immediately */
body.no-hero-cover .wp-site-blocks > header,
body.no-hero-cover header.wp-block-template-part,
body.no-hero-cover .wp-block-template-part:has(header) {
  background: var(--header-bg-scrolled) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--header-border-scrolled) !important;
  box-shadow: var(--header-shadow-scrolled) !important;
}

/* Pages without a cover use normal text colour */
body.no-hero-cover .wp-site-blocks > header,
body.no-hero-cover .wp-site-blocks > header a,
body.no-hero-cover .wp-site-blocks > header p,
body.no-hero-cover .wp-site-blocks > header span,
body.no-hero-cover .wp-site-blocks > header .wp-block-site-title,
body.no-hero-cover .wp-site-blocks > header .wp-block-site-title a,
body.no-hero-cover .wp-site-blocks > header .wp-block-navigation-item__content,
body.no-hero-cover .wp-site-blocks > header .wp-block-navigation__responsive-container-open,

body.no-hero-cover header.wp-block-template-part,
body.no-hero-cover header.wp-block-template-part a,
body.no-hero-cover header.wp-block-template-part p,
body.no-hero-cover header.wp-block-template-part span,
body.no-hero-cover header.wp-block-template-part .wp-block-site-title,
body.no-hero-cover header.wp-block-template-part .wp-block-site-title a,
body.no-hero-cover header.wp-block-template-part .wp-block-navigation-item__content,
body.no-hero-cover header.wp-block-template-part .wp-block-navigation__responsive-container-open {
  color: var(--header-text-scrolled) !important;
}

/* Pages without a cover use normal logo colour */
body.no-hero-cover .wp-site-blocks > header img,
body.no-hero-cover header.wp-block-template-part img,
body.no-hero-cover .wp-block-template-part:has(header) img {
  filter: none !important;
}

body.no-hero-cover .wp-site-blocks > header svg,
body.no-hero-cover .wp-site-blocks > header svg path,
body.no-hero-cover header.wp-block-template-part svg,
body.no-hero-cover header.wp-block-template-part svg path,
body.no-hero-cover .wp-block-template-part:has(header) svg,
body.no-hero-cover .wp-block-template-part:has(header) svg path {
  fill: var(--header-text-scrolled) !important;
  stroke: var(--header-text-scrolled) !important;
}
/* =========================================================
   HIDE FEATURED IMAGE PINNED AT TOP
========================================================= */

/* Hide WordPress Featured Image block */
.wp-block-post-featured-image {
  display: none !important;
}

/* Remove spacing left behind by the featured image */
.wp-block-post-featured-image + *,
main > .wp-block-post-featured-image + *,
.entry-content > .wp-block-post-featured-image + *,
.wp-block-post-content > .wp-block-post-featured-image + * {
  margin-top: 0 !important;
}

/* Make sure the real hero/cover still starts at the top */
.entry-content .wp-block-cover:first-of-type,
.wp-block-post-content .wp-block-cover:first-of-type,
main .wp-block-cover:first-of-type,
.hero-cover,
.global-hero-cover {
  margin-top: 0 !important;
}
body.page-id-206
.wp-block-essential-blocks-image-gallery
.eb-gallery-link-wrapper {
  position: relative;
  transition:
    transform 180ms ease,
    filter 180ms ease;
}

body.page-id-206
.wp-block-essential-blocks-image-gallery
.eb-gallery-img-content:has(
  .eb-img-gallery-action:not([data-fslightbox])[href]:not([href="#"])
)
.eb-gallery-link-wrapper {
  cursor: pointer;
}

body.page-id-206
.wp-block-essential-blocks-image-gallery
.project-click-feedback {
  position: absolute;
  inset: 0;
  z-index: 100;
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;

  color: #fff;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.02em;

  background: rgba(15, 18, 20, 0.72);
  backdrop-filter: blur(2px);

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transition:
    opacity 160ms ease,
    visibility 160ms ease;
}

body.page-id-206
.wp-block-essential-blocks-image-gallery
.is-project-opening
.eb-gallery-link-wrapper {
  transform: scale(0.975);
  filter: brightness(0.9);
}

body.page-id-206
.wp-block-essential-blocks-image-gallery
.is-project-opening
.project-click-feedback {
  opacity: 1;
  visibility: visible;
}

body.page-id-206
.wp-block-essential-blocks-image-gallery
.project-click-spinner {
  width: 20px;
  height: 20px;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: project-click-spin 650ms linear infinite;
}

@keyframes project-click-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.page-id-206
  .wp-block-essential-blocks-image-gallery
  .eb-gallery-link-wrapper {
    transition: none;
  }

  body.page-id-206
  .wp-block-essential-blocks-image-gallery
  .is-project-opening
  .eb-gallery-link-wrapper {
    transform: none;
  }

  body.page-id-206
  .wp-block-essential-blocks-image-gallery
  .project-click-spinner {
    animation: none;
  }
}
.wp-block-cover:has(> .wp-block-cover__image-background)
> .wp-block-cover__background {
  opacity: 0.5 !important;
  pointer-events: none;
  will-change: opacity;
}