video.background {
	position: absolute;
    top: 0;
    right: 0;
    width: 50vw;
    mix-blend-mode: plus-lighter;
    z-index: 3;
}

.wall-slider .glide__slide .title {
	margin-bottom: 20px;
}
.wall-slider .glide__slide p {
	margin-bottom: 30px;
}

@media(min-width:1440px) {
	.product-wall .video-slider .container {
		padding-left:10%;
	}
	
	.product-grid-section > .container {
		padding-left:10%;
		padding-right:10%;
	}
}

@media(min-width:1600px) {
	.product-wall .video-slider .container {
		padding-left:14%;
	}
	
	.product-grid-section > .container {
		padding-left:14%;
		padding-right:14%;
	}
}

.product-wall .video-slider .container {
	flex-grow:1;
}

.product-grid-section .product-grid .grid-item .inner {
	height:100%;
	border: var(--color-gray) 2.5px solid;
	position:relative;
	overflow: hidden;
	display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.product-grid-section .product-grid .grid-item.shimmer .inner:before {
	animation: gridShimmer 1s ease;
	animation-fill-mode: forwards;
}

.product-grid-section .product-grid .grid-item.shimmer.reveal .inner:before {
	animation: gridShimmerReveal 0.5s;
	animation-fill-mode: forwards;
}

.product-grid-section .product-grid .grid-item.hide {
	visibility:hidden;
	width:0;
	height:0;
	overflow:hidden;
	flex-basis:0;
	display: none;
}


@keyframes gridShimmer {
	0% {
		clip-path: polygon(0% 0%, 0% 0%, 0% 0%, 0% 0%);
	}
	40% {
		clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
	}
	60% {
		clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
	}
	100% {
		clip-path: polygon(100% 100%, 100% 100%, 100% 100%, 100% 100%);
	}
}

/*@keyframes gridShimmerReveal {
	0% {
		clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
	}
	100% {
		clip-path: polygon(100% 100%, 100% 100%, 100% 100%, 100% 100%);
	}
}*/

.product-grid-section .product-grid .grid-item.color-callouts-orange .inner { border-color:var(--color-orange); }
.product-grid-section .product-grid .grid-item.color-callouts-orange-drk .inner { border-color:var(--color-orange-drk); }
.product-grid-section .product-grid .grid-item.color-callouts-blue .inner { border-color:var(--color-blue); }
.product-grid-section .product-grid .grid-item.color-callouts-blue-drk .inner { border-color:var(--color-blue-drk); }
.product-grid-section .product-grid .grid-item.color-callouts-gray-brand .inner { border-color:var(--color-gray-brand); }
.product-grid-section .product-grid .grid-item.color-callouts-gray-lt .inner { border-color:var(--color-gray-lt); }
.product-grid-section .product-grid .grid-item.color-callouts-black-off .inner { border-color:var(--color-black-off); }

.product-grid-section .product-grid .grid-item .product-image {
	position: static;
    width: 100%;
    height: 430px;
    overflow: hidden;
    margin-top: -15%;
    margin-left: -7%;
}

.product-grid-section .product-grid .grid-item .product-image .image-inner {
	width:100%;
	height:100%;
}

.product-grid-section .product-grid .grid-item .product-image img {
	width:100%;
	height:100%;
	object-fit:contain;
	object-position: top left;
}

.product-grid-section .product-grid .grid-item .text {
	z-index:1;
	width:100%;
	padding:30px;
}

.product-grid-section .product-grid .grid-item .text .title {
	font-size:2rem;
}

.product-grid-section .product-grid .grid-item .text .config-count {
	font-size:14px;
}

.product-grid-section .product-grid .grid-item .text-mask {
	display:none;
}

.product-grid .primary-specs {
  display: flex;
  gap: 10px 30px;
  margin: 10px 0 25px 0;
  flex-wrap: wrap;
}

.product-grid .primary-spec {
	grid-template-columns: unset;
	display: flex;
	gap:10px;
}

.product-grid .spec-label {
  column-gap: 10px;
}

.grid-item .text-inner p {
	font-size: .95em;
}

.grid-item .short-description {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.filters {
	position: relative;
}

.filters .placeholder {
	width: 100%;
	height: 100%;
}

.filter-container {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
}

.filters .h6 {
	font-size:14px;
}

.filter-header {
	display:flex;
	justify-content:space-between;
	align-items:flex-end;
	margin-bottom:6px;
}

.filter-header .title {
	margin:0;
	line-height:1;
}

.filter-header svg {
	display:block;
	width:20px;
	margin-bottom:2px;
}

.filter-nav {
	margin-top:24px;
}

.filter-nav li {
	font-size:14px;
	line-height:2;
	cursor:pointer;
	position:relative;
}

.filter-nav ul li,
.filter-nav li {
	transition: .28s ease;
}

.filter-nav ul li:hover {
	opacity: .5;
}

.filter-nav > li {
	font-size:16px;
	margin:20px 0 30px;
	border-top: var(--color-gray-lt) 2px solid;
}

.filter-nav > li > span {
	display:block;
	position:relative;
	z-index:1;
}

.filter-nav li ul li span {
	display:inline-block;
	position:relative;
	z-index:1;
}

.filter-nav li ul li span:after {
	content:'';
	display:block;
	height:2px;
	width:0%;
	background:var(--color-gray);
	position:absolute;
	left:0;
	bottom:5px;
	transition:width 0.15s ease;
}

.filter-nav li ul li:hover span:after, .filter-nav li ul li.selected span:after {
	width:100%;
}

.filter-nav > li .caret {
	content:'';
	display:block;
	position:absolute;
	background-image:url(/resources/img/caret.svg);
	background-size:contain;
	background-repeat:no-repeat;
	background-position:center;
	width:12px;
	height:8px;
	top:12px;
	right:0px;
	transform:rotate(180deg);
	transition: transform 0.28s ease;
}

.filter-nav > li ul {
	opacity:0;
	visibility:hidden;
	max-height:0;
	transition: visibility 0s ease 300ms, opacity 300ms, max-height 300ms cubic-bezier(0.23, 1, 0.32, 1);
}

.filter-nav > li.selected > ul {
	opacity:1;
	visibility:visible;
	max-height:300px;
	transition: visibility 0s ease 0s, opacity 300ms, max-height 1s cubic-bezier(0.23, 1, 0.32, 1);
}

.filter-nav > li.selected .caret {
	transform:rotate(0deg);
}

.wall-slider .glide__slide .title {
	text-transform:none;
	line-height:1;
}

.wall-slider .glide__slide .copy {
	max-width:420px;
}

.tech-text { color:#fff; }

#selected-filters {
	display:flex;
	flex-flow:wrap;
}

#selected-filters .item {
	background:var(--color-black-off);
	color:#fff;
	font-size:10px;
	height:22px;
	border-radius:20px;
	padding:0 8px 0 10px;
	display:flex;
	align-items: center;
	margin:6px 6px 0 0;
}

#selected-filters .item .close {
	width:12px;
	height:12px;
	background-image:url(/resources/img/icon-close.svg);
	background-repeat:no-repeat;
	background-size:8px auto;
	background-position:center;
	margin-left:10px;
	cursor:pointer;
}

.product-grid-section .product-grid {
	min-height:600px;
}

@media(min-width:767px) {
	
	.product-grid-section .product-grid-column {
		flex-grow:1;
	}
	
	.product-grid-section .product-grid {
		
		display:flex;
		flex-flow:wrap;
		justify-content:space-between;
	}
	
	.product-grid-section .product-grid .grid-item .text .title-wrap {
		display: flex;
	    align-items: baseline;
	    flex-flow: wrap;
	    gap: 5px 20px;
		margin-bottom: 10px;
	}
	
	.product-grid-section .product-grid .grid-item .text .title {
		font-size:3.25rem;
	}
	
	.product-grid-section .product-grid .grid-item .text {
		padding:40px;
	}
	
	.product-grid-section .product-grid .grid-item {
		flex:0 1 50%;
	}
	
	.product-grid-section .product-grid .grid-item:nth-child(2n+2) .ratio-inner {
		padding-right:25px;
	}
	
	.product-grid-section .product-grid .grid-item:nth-child(2n+3) .ratio-inner {
		padding-left:25px;
	}
	
	/* .product-grid-section .product-grid .grid-item:first-child,
	.product-grid-section .product-grid .grid-item:nth-last-child(1):nth-child(even) {
		flex:0 0 100%;
	}
	
	.product-grid-section .product-grid .grid-item:first-child .inner:before,
	.product-grid-section .product-grid .grid-item:nth-last-child(1):nth-child(even) .inner:before {
		background-image:url(/resources/img/gridwall-transition-lg.svg);
	}
	
	.product-grid-section .product-grid .grid-item:first-child:before,
	.product-grid-section .product-grid .grid-item:nth-last-child(1):nth-child(even):before {
		padding-top:92%;
	}
	
	.product-grid-section .product-grid .grid-item:first-child .ratio-inner,
	.product-grid-section .product-grid .grid-item:nth-last-child(1):nth-child(even) .ratio-inner {
		flex:0 0 100%;
		padding:0;
	}
	
	.product-grid-section .product-grid .grid-item:first-child .ratio-inner .product-image,
	.product-grid-section .product-grid .grid-item:nth-last-child(1):nth-child(even) .ratio-inner .product-image {
		top:6%;
		height:74%;
		overflow:visible;
	}
	
	.product-grid-section .product-grid .grid-item:first-child .ratio-inner .product-image img,
	.product-grid-section .product-grid .grid-item:nth-last-child(1):nth-child(even) .ratio-inner .product-image img {
		width:100%;
		height:100%;
		object-fit:contain;
		object-position: center center;
		margin-top:0%;
		margin-left:0%;
		filter: drop-shadow(0px 5px 75px rgba(0,0,0,0.25));
	}
	
	.product-grid-section .product-grid .grid-item:first-child .text-inner,
	.product-grid-section .product-grid .grid-item:nth-last-child(1):nth-child(even) .text-inner {
		display:flex;
		gap:45px;
		align-items:center;
		max-width:870px;
		margin:0 auto;
	}
	
	.product-grid-section .product-grid .grid-item:first-child .text p,
	.product-grid-section .product-grid .grid-item:nth-last-child(1):nth-child(even) .text p {
		margin:0;
	}
	
	.product-grid-section .product-grid .grid-item:first-child .text-mask,
	.product-grid-section .product-grid .grid-item:nth-last-child(1):nth-child(even) .text-mask {
		display:block;
		position:absolute;
		top:0;
		left:0;
		width:100%;
		height:100%;
		z-index:0;
		background:#fff;
	}
	
	.product-grid-section .product-grid .grid-item:first-child .text-mask span,
	.product-grid-section .product-grid .grid-item:nth-last-child(1):nth-child(even) .text-mask span {
		display:block;
		text-align:center;
		font-family: futura-pt-bold;
		font-weight: 700;
		font-size: 60vw;
		line-height:1;
		color:#000;
	}
	
	.product-grid-section .product-grid .grid-item:first-child .text-mask img,
	.product-grid-section .product-grid .grid-item .text-mask video,
	.product-grid-section .product-grid .grid-item:nth-last-child(1):nth-child(even) .text-mask img {
		display:block;
		position:absolute;
		object-fit:cover;
		top:0;
		left:0;
		width:100%;
		height:100%;
		mix-blend-mode: lighten;
	} */
}

@media(min-width:1200px) {
	
	.product-grid-section > .container {
		display:flex;
		gap:50px;
	}
	
	.product-grid-section .filters {
/*		background:var(--color-gray-lt);*/
		flex:0 0 195px;
		max-height:200px;
		position: sticky;
        top: 130px;
	}
	
	.wall-slider .glide__slide .h4 {
		font-size:2.3rem;
	}
	
	.wall-slider .glide__slide .title {
		font-size:5rem;
	}
	
}

@media(max-width:1439px) {
	.tech-text { display:none; }
}

@media(max-width:1300px) {
	video.background {
		width: 60vw;
	}
}

@media(max-width:1199px) {
	.filter-container {
	    position: static;
	}
	video.background {
		width: 75vw;
	}
}

@media(max-width:1024px) {
	.product-grid p {
		font-size: .9em;
	}
}

@media(max-width:959px) {
	.video-slide .background:before, .full-viewport:before {
		opacity: 1;
	}
	video.background {
		width: 90vw;
	}
	.filter-nav {
		max-height:0;
		opacity:0;
		overflow:hidden;
		transition: max-height 0.5s ease, opacity 0.5s ease;
	}
	
	.filter-nav.open {
		opacity:1;
		max-height:1000px;
	}
	.product-grid-section .product-grid .grid-item:nth-child(2n+2) .ratio-inner {
		padding-right:10px;
	}
	
	.product-grid-section .product-grid .grid-item:nth-child(2n+3) .ratio-inner {
		padding-left:10px;
	}
	.product-grid-section .product-grid .grid-item:before {
		padding-top: 650px;
	}
	.product-grid-section .product-grid .grid-item .product-image {
		height: 410px;
	}
	.wall-slider.video-slider .slide-content-layer .text {
	    max-width: 525px;
	}
}
@media(max-width:767px) {
	.product-grid-section .product-grid .grid-item:before {
	    padding-top: 550px;
	}
	.product-grid-section .product-grid .grid-item {
		width: calc(100vw - 60px);
	    max-width: 350px;
	    margin: unset;
	}
	.product-grid-section .product-grid .grid-item.single-variant {
		width: calc(100vw - 40px);
		flex: unset;
	}
	.product-grid-section .product-grid .grid-item:first-of-type {
		margin-left: 20px;
	}
	.product-grid-section .product-grid .grid-item:last-of-type {
		margin-right: 20px;
	}
	.product-grid-section .product-grid .grid-item .ratio-inner {
		padding: unset !important;
	}
	.product-grid-column, .product-grid {
		display: flex;
	}
	.product-grid-column {
		overflow: scroll;
		scrollbar-width: none;
	  -ms-overflow-style: none;
	  -webkit-overflow-scrolling: touch;
		width: 100vw;
	    margin-left: -20px;
	}
	.product-grid-column::-webkit-scrollbar {
	  display: none;
	}
	.family-variants .product-grid {
		gap: 20px;
		flex-flow: unset !important;
	}
	.product-grid-section .product-grid .grid-item .product-image {
	    height: 300px;
	}
	.grid-item .text-inner p {
		font-size: .925em;
		line-height: 1.3em;
	}
	.title-wrap {
		margin-bottom: 10px;
	}
	.product-grid-section .product-grid .grid-item .text .config-count {
		margin-top: 5px;
	}
	.video-slider .slide-content-layer {
		bottom: 50px;
	}
	.video-slider .glide__bullets {
		margin-bottom: 0;
	}
	.wall-slider .glide__slide .title {
		margin-bottom: 15px;
	}
	.wall-slider .glide__slide p {
		margin-bottom: 20px;
	}
}
@media(max-width:415px) {
	.product-grid-section .product-grid .grid-item .text {
		padding-right: 10px;
	}
}


/* Hero with oversized numeric mask (e.g., 80) */
.family-hero { position: relative; }
.family-hero .hero-visual {
  position: relative;
}
.family-hero .text-mask {
  position:relative;
  inset:0;
  z-index:0;
  background:#fff;
  pointer-events:none;
  /* overflow:hidden; */
}
.family-hero .text-mask span {
	display: block;
	text-align: center;
	font-family: futura-pt-bold;
	font-weight: 700;
	letter-spacing: -.02em;
	font-size: clamp(220px, 50vw, 850px);
	line-height: .95;
	color: #111;
	/* position: absolute;
	top: 0;
	bottom: 0;
	left: -.05em;
	right: 0; */
	margin: auto;
	line-height: .8em;
}
.family-hero .text-mask img,
.family-hero .text-mask video {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center; mix-blend-mode:lighten; opacity:.92;
}
.family-hero .hero-image {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index:1;
	display:flex;
	align-items:center;
	justify-content:center;
}
.family-hero .hero-image img {
	display:block;
	width: clamp(200px, 45%, 450px);
	padding-top: 2%;
	height:auto;
	object-fit:contain;
	filter: drop-shadow(0 10px 70px rgba(0,0,0,.5));
}

/* Override PDP transforms that skew the family hero image */
.product-family .family-hero .hero-image img {
  transform:none !important;
  object-position:center !important;
  margin:0 auto;
}

.product-family .columns {
	max-width: 1650px;
	margin: 0 auto 150px auto;
	gap: 60px;
}

.product-family .column-right {
	max-width: 30%;
  padding-top: clamp(0px, 22vw, 400px);
  padding-right:  var(--gutter-lg);
}

.product-family .product-title-header {
	display: flex;
	align-items: baseline;
	gap: 10px 30px;
	flex-flow: wrap-reverse;
}

.product-family .product-title-header .title {
	margin-right: unset;
}

.product-family .intro {
	font-weight: 700;
}

.product-family .column-left {
	max-width: 70%;
    padding-top: 200px;
    height: fit-content;
    position: sticky;
    top: 0;
}
.product-family .column-left {
/* height: inherit; */
}

.product-family .hero-visual,
.product-family .text-mask {
	height: 100%;
}

.product-family .features {
	margin-top: 60px;
	gap: 20px;
}

.product-family .features p {
	margin: unset;
}


/* Family variant grid overrides: keep a tidy multi-column grid
   and disable the special first-card treatment used by product wall */
.family-variants .product-grid { display:flex; flex-flow:wrap; justify-content:flex-start; gap:30px; }
/* Use calc to account for 2 gaps (30px each) across 3 columns */
.family-variants .product-grid .grid-item { flex:0 1 calc((100% - 60px)/3); }

/* Remove 2-column spacing rules from product wall */
.family-variants .product-grid .grid-item .ratio-inner { padding:0 !important; position: static;}
.family-variants .product-grid .grid-item:nth-child(2n+2) .ratio-inner { padding-right:0 !important; }
.family-variants .product-grid .grid-item:nth-child(2n+3) .ratio-inner { padding-left:0 !important; }

/* Use default product-wall image positioning for consistent look */

/* Title + small-caps accents for count, matching family page tone */
.family-variants .product-grid .grid-item .text .title { font-size:2.25rem; display: flex; flex-wrap: wrap; }
.family-variants .product-grid .grid-item .text .config-count { font-size:14px; }

@media (max-width: 1199px) {
  /* Two columns with one gap between them */
  .family-variants .product-grid .grid-item { flex:0 1 calc((100% - 30px)/2); }
}
@media (max-width: 767px) {
  .family-variants .product-grid { gap:20px; }
}
.features .label {
    display: block;
}

/* grid changes for productWall, slightly different grid than gimbalFamily */
@media (max-width: 2000px) {
	.product-wall .product-grid .grid-item { flex:0 1 calc((100% - 30px)/2); }
}

@media (max-width: 1024px) {
	.product-family .columns {
		flex-direction: column;
		margin-bottom: 80px;
		padding-top: 100px;
	}	
	.product-family .column-left,
	.product-family .column-right {
		max-width: unset;
		width: 100%;
		position: static;
		padding-top: 0px;
	}
	.product-family .column-left {
		padding-left: 0;
	}
	.product-family .column-right {
		padding: 0 var(--gutter-lg);
	}
	.family-hero .text-mask span {
		font-size: clamp(100px, 80vw, 650px);
	}
	.family-hero .hero-image img {
		width: clamp(150px, 48%, 367px);
	}
}
@media (max-width: 960px) {
	.product-family .column-right {
		padding: 0 var(--gutter-sm);
	}
}
