:root {
	--cubic-default: cubic-bezier(0.63, 0.03, 0, 1);
  --duration-default 0.7s;
}

body, .main-w{
	transition: background-color 0.2s ease, color 0.2s ease;
}

.main-w{
  --o: 0;
}

.main-w::after{
  content: '';
  position: absolute;
  inset: 0;
  z-index: 10;
  pointer-events: none;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0, 0.15);
  opacity: var(--o);
}

body[data-theme="dark"] .main-w::after{
  background: rgba(255,255,255, 0.3);
}

body[data-theme="light"],
body[data-theme="light"] .main-w{
	background-color: var(--color--white);
  color: var(--color--black);
}

body[data-theme="dark"],
body[data-theme="dark"] .main-w{
	background-color: var(--color--black);
  color: var(--color--white);
}

body[data-theme="dark"] .h-line{
	background: rgba(255,255,255,0.2);
}

body[data-theme="dark"] .nav-bg {
  background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

body[data-theme="light"] .nav-link__bg {
  background-color: #E7E7E7;
}

body:has([data-cursor]:hover) .cursor { 
  opacity: 1; 
}

body[data-theme="dark"] .blur-overlay{
	background-color: rgba(255,255,255,0.05);
}


html:not(.wf-design-mode) [data-load-img-mask],
html:not(.wf-design-mode) [data-load-fade],
html:not(.wf-design-mode) [data-load-odo]{
  opacity: 0;
}

.text-line{
  padding-bottom: 0.1em;
  margin-bottom: -0.1em;
}

.underline-link::before, .underline-link::after, .text-link::after{
  content: "";
  position:absolute;
  left:.8em;
  bottom: .4em;
  width:calc(100% - 1.6em);
  height:1px;
  background: currentColor;
  transform: scale(1, 1);
  transform-origin: left center;
  transition: transform 0s var(--cubic-default);
}

.underline-link::before{
 transform: scale(0, 1);
}

.text-link::after{
 transform: scale(0, 1);
 transition: transform 0.4s var(--cubic-default);
 transform-origin: right center;
}

.inline-link::after{
  content: "";
  position:absolute;
  left: 0px;
  bottom: 0px;
  width: 100%;
  height:1px;
  background: currentColor;
  transform: scale(0, 1);
  transform-origin: right center;
  transition: transform 0.4s var(--cubic-default);
}

.filter-list__btn .eyebrow{
  transition: transform 0.4s var(--cubic-default);
}

.work-grid-item__notice, .work-grid-item .img-wrap{
	transition: transform 0.6s var(--cubic-default)
}

html:not(.wf-design-mode) [data-load-text].underline-link::after{
	transform: scale(0, 1);
}

html:not(.wf-design-mode) [data-page-loaded="true"] [data-load-text].underline-link:not(:hover)::after{
	transform: scale(1, 1);
  transform-origin: left center;
  transition-duration: 0.4s;
}

.nav-link.w--current .nav-link__bg{
  transform: scale(1,1);
}



.home-hero__img{
  transition: all 0.5s var(--cubic-default);
}

.home-hero__img-inner{
  transition: transform 0.5s var(--cubic-default);
}


/* ————————— APPLY HOVERS ————————— */
@media (hover: hover){

 	.underline-link:hover::after{
  	transform: scale(0, 1);
  	transform-origin: right center;
    transition-duration: 0.4s;
  }
  
 	.underline-link:hover::before{
  	transform: scale(1, 1);
    transition-delay:0.2s;
    transition-duration: 0.4s;
  }
  
  .text-link:hover::after{
  	transform: scale(1, 1);
    transform-origin: left center;
  }
  
  .inline-link:hover::after{
    transform: scale(1, 1);
    transform-origin: left center;
  }
  
  .filter-list__btn:not(.is--active):hover .eyebrow{
    transform: translate(0px, -100%);
  }
  
  .work-grid-item:hover .img-wrap{
  	transform: scale(1.05);
  }
  
  .work-grid-item:hover .work-grid-item__notice{
  	transform: translate(-50%, 0%);
  }
  
  [data-theme-toggle]:hover .theme-button__icon{
  	transform: rotate(-180deg);
  }
  
  .nav-list:has( .nav-link:hover) .nav-link__bg{
  	transform: scale(1,1);
  }
  
  .home-hero__img:hover{
    clip-path: inset(0em);
  }
  
  .home-hero__img:hover .home-hero__img-inner{
    transform: scale(1);
  }

  
}

/* ————————— APPLY FOCUS STATES ————————— */
.underline-link:focus-visible,
.text-link:focus-visible,
.inline-link:focus-visible{
	outline: 1px solid currentColor;
  border-radius: 0.25em;
}
  
.text-link:focus-visible::after{
	transform: scale(1, 1);
	transform-origin: left center;
}

.inline-link:focus-visible::after{
	transform: scale(1, 1);
	transform-origin: left center;
}

[data-theme-toggle]:focus-visible .theme-button__icon{
	transform: rotate(-180deg);
}

.filter-list__btn:not(.is--active):focus-visible .eyebrow{
  transform: translate(0px, -100%);
}

.work-grid-item:focus-within .img-wrap{
	transform: scale(1.05);
}

.work-grid-item:focus-within .work-grid-item__notice{
	transform: translate(-50%, 0%);
}


[data-article-status="active"] .blur-overlay{
	opacity: 0.8;
  pointer-events: auto;
}

[data-article-status="active"] .floating-wrap{
	transform: translate(-50%, 0%);
}



/* ————————— NEWS GRID ————————— */
.wf-design-mode [data-barba-namespace="article"] .blur-overlay{
  opacity: 1;
}

.rt figure.w-richtext-align-center{
  margin: 0;
  width: 100%;
  max-width: none;
}

.rt figure.w-richtext-align-fullwidth{
  margin: 0;
  width: 100%;
  max-width: none !important;
  margin-left: -3.75em;
  width: calc(100% + 7.5em);
}

.rt figure div{
  width: 100%;
  max-width: none;
}

.news-grid-item:nth-of-type(7n + 1){
  grid-column: 1 / 9;
}

.news-grid-item:nth-of-type(7n + 2){
  grid-column: 9 / 12;
}

.news-grid-item:nth-of-type(7n + 3){
  grid-column: 17 / 23;
}

.news-grid-item:nth-of-type(7n + 4){
  grid-column: 1 / 6;
}

.news-grid-item:nth-of-type(7n + 5){
  grid-column: 6 / 11;
}

.news-grid-item:nth-of-type(7n + 6){
  grid-column: 6 / 17;
}

.news-grid-item:nth-of-type(7n + 7){
  grid-column: 21 / 25;
}

/* Active Classes */
.lightbox-wrap.is-active {
  display: flex;
}
.lightbox-img__item.is-active {
  visibility: visible;
}


/* Force containment of image */
.lightbox-img__item img { 
  object-fit: contain !important;
  min-width: auto;
  width: auto;
  max-height: 100%;
}


.cs-nav__dot {
    -webkit-animation-name: pulse;
    animation-name: pulse;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-duration: 1s;
    animation-duration: 1s
}

@-webkit-keyframes pulse {
    0% {
        opacity: 0
    }

    50% {
        opacity: 1
    }

    100% {
        opacity: 0
    }
}

@keyframes pulse {
    0% {
        opacity: 0
    }

    50% {
        opacity: 1
    }

    100% {
        opacity: 0
    }
}



/* ————————— WORK INFO ————————— */

[data-case-info] .overlay-wrap{
  transition: transform 1s cubic-bezier(.19, 1, .22, 1);
}

[data-case-info] .overlay-content{
  transition: all 1s cubic-bezier(.19, 1, .22, 1);
}

[data-case-info="not-active"] .overlay-wrap{
  transform: translate(0px, 100vh);
}

[data-case-info="not-active"] .overlay-content{
  clip-path: inset(100% 4em 0px 4em);
}

[data-case-info="not-active"] .overlay__toggle-icon{
  transform: rotate(-135deg);
}