/*HOME*/

.home__contact-links {
	line-height: var(--lh-base);
}

.home__contact-links span {
	transition: color 0.2s ease-in-out;
}

@media (min-width: 768px) {
	.home__contact-links {
		max-width: var(--four-columns);
	}
}

.home_director_item.is-greyed h3,
.home__contact-links .is-greyed span {
	color: rgba(43, 43, 43, 0.3) !important;
}

@media (min-width: 768px) {
	.two-columns {
		flex-direction: unset !important;
		flex-wrap: wrap !important;
	}

	.home_director_item {
		flex-basis: 50% !important;
	}

	.home_directors_list {
		position: relative;
	}

	.home_directors_list.two-columns::before {
		content: '';
		position: absolute;
		top: 0;
		left: 50%;
		width: 1px;
		height: 100%;
		background: var(--color-grid);
		transform: translateX(-50%) scaleY(0);
		pointer-events: none;
		transition: transform 0.3s ease;
	}

	.active .home_directors_list.two-columns::before {
		transform: translateX(-50%) scaleY(1) !important;
	}
}

@media (min-width: 767px) {
	.ios .home_directors_footer::before {
		display: none !important;
	}
}
/*
		OTHER
		*/

* {
	margin: 0;
	padding: 0;
	font-feature-settings: 'kern' 1;
	-webkit-font-kerning: normal;
	font-kerning: normal;
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-weight: 400 !important;
	-webkit-text-size-adjust: none;
	text-indent: 0;
	letter-spacing: 0;
	word-spacing: 0;
}

html,
body {
	-webkit-tap-highlight-color: transparent;
	background: var(--color-background);
	background-color: var(--color-background);
	color: var(--color-black);
	font-family: var(--font-family-sans);
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	text-size-adjust: 100%;
	margin: 0;
	font-size: var(--text-base);
	-ms-scroll-chaining: none;
	overscroll-behavior: none;
	font-synthesis: none;
	min-height: 100dvh;
	height: 100%;
	max-height: 100% !important;
}

body {
	position: relative;
}

body::before {
	content: '';
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	background: var(--color-background);
	z-index: -1;
}

@supports (-webkit-touch-callout: none) {
	body,
	html {
		min-height: -webkit-fill-available;
		min-height: 100dvh;
	}

	.container {
		min-height: -webkit-fill-available;
		min-height: 100dvh;
	}
}

a,
a:visited,
a:focus,
a:hover {
	color: inherit;
	text-decoration: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: normal;
}

img {
	display: block;
	width: 100%;
}

img:not([src]):not([srcset]) {
	visibility: hidden;
}

header {
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	display: flex;
	width: 100%;
	justify-content: center;
	z-index: 999999;
	padding-top: 10px;
	margin-bottom: -53px;
}

@media (min-width: 768px) {
	header {
		margin-bottom: -63px;
	}
}

header .header_title {
	transition: opacity 0.3s ease;
}

header .header_title:hover {
	opacity: 0.5;
}

header .header_title svg {
	width: 68px !important;
}

.header_title {
	padding-top: calc(var(--padding) + 10px);
}

.container > main {
	min-height: var(--h-screen);
	min-height: 100dvh;
}

/**COOKIES*/

#cc-main {
	--cc-font-family: var(--font-family-sans) !important;
	--cc-modal-border-radius: 0 !important;
	--cc-btn-border-radius: 0 !important;
	--cc-modal-transition-duration: 0.25s;
	--cc-modal-margin: var(--padding) !important;
	--cc-z-index: 2147483647;
	--cc-separator-border-color: transparent;
	--cc-cookie-category-block-bg: var(--color-black);
	--cc-cookie-category-block-hover-bg: var(--color-black);
	--cc-cookie-category-expanded-block-bg: var(--color-black);
	--cc-cookie-category-expanded-block-hover-bg: var(--color-black);
	--cc-cookie-category-block-border: transparent;
	--cc-cookie-category-block-hover-border: transparent;
}

media-time-range {
	--media-range-track-border-radius: 0 !important;
	flex: 1 !important;
	width: 100% !important;
}

#cc-main * {
	font-weight: normal !important;
	font-size: var(--text-base) !important;
}

#cc-main h2 {
	font-size: var(--text-subtitle) !important;
	letter-spacing: var(--ls-subtitle) !important;
	text-align: center !important;
}

@media (min-width: 768px) {
	#cc-main h2 {
		letter-spacing: var(--ls-title) !important;
		text-align: center !important;
	}
}

@media (max-width: 640px) {
	#cc-main .pm {
		top: unset !important;
	}
}

#cc-main .cm {
	box-shadow: none !important;
	max-width: 328px !important;
}

#cc-main .cm__body {
	background-color: var(--color-containers) !important;
}

#cc-main .cm__desc {
	color: var(--color-black) !important;
	line-height: 1 !important;
	text-transform: uppercase !important;
	text-align: center !important;
}

#cc-main .cm__btns {
	border-top: none !important;
	border-color: transparent !important;
}

#cc-main .cm__btn {
	background-color: var(--color-black) !important;
	color: var(--color-containers) !important;
	text-transform: uppercase !important;
	transition: none !important;
	border: none !important;
	margin-top: 5px !important;
}

#cc-main .cm__btn-group {
	margin-top: 0 !important;
}

#cc-main .cm__btn:hover {
	border: none !important;
}

#cc-main .cm__btn--secondary {
	background-color: var(--color-grid) !important;
	color: var(--color-black) !important;
	border: none !important;
}

#cc-main .pm--box {
	background-color: var(--color-containers) !important;
	max-height: 75vh !important; /* Fallback for older browsers */
	max-height: 75dvh !important; /* Dynamic viewport height for modern browsers */
	max-height: calc(
		var(--vh) * 75
	) !important; /* JavaScript-driven fallback for better iOS support */
}

.pm__section-toggles * {
	color: var(--color-containers) !important;
}

.pm__section-toggles .pm__section-desc {
	color: var(--color-containers) !important;
	text-align: center !important;
}

#cc-main .pm__section--toggle {
	margin-bottom: 5px !important;
}

#cc-main .pm__section--toggle .pm__section-desc {
	opacity: 0.5 !important;
	text-align: left !important;
}

#cc-main .pm__section--toggle .pm__section-title {
	padding: var(--padding) !important;
}

#cc-main .pm__section {
	margin-bottom: 30px !important;
}

#cc-main .pm__header {
	padding-top: 20px !important;
	padding-bottom: 30px !important;
}

#cc-main .pm__close-btn {
	position: absolute !important;
	top: 0;
	right: 0;
	width: 14px !important;
	height: 14px !important;
	background: var(--color-grid) !important;
	border: none !important;
}

#cc-main .pm__section-desc {
	line-height: 1 !important;
}

#cc-main .pm__close-btn svg {
	transform: scale(0.75) !important;
	stroke-width: 4 !important;
}

.pm__section-arrow {
	display: none !important;
}

#cc-main .pm-overlay {
	background: rgba(43, 43, 43, 0.8) !important;
}

.pm-wrapper * {
	text-transform: uppercase !important;
}

#cc-main .pm__body {
	padding: 0px 20px !important;
}

#cc-main .pm__title {
	margin-right: 0 !important;
	justify-content: center !important;
}

.pm__section .pm__section-desc {
	color: var(--color-black) !important;
	text-align: center !important;
}

#cc-main .pm__footer,
#cc-main .pm__btn-group {
	flex-direction: column !important;
}

#cc-main .pm__btn {
	background-color: var(--color-black) !important;
	color: var(--color-containers) !important;
	text-transform: uppercase !important;
}

#cc-main .pm__btn--secondary {
	border: none !important;
	background-color: var(--color-grid) !important;
	color: var(--color-black) !important;
}

#cc-main .pm__footer {
	gap: 5px;
	padding: 20px !important;
}

#cc-main .pm__btn + .pm__btn,
#cc-main .pm__btn-group + .pm__btn-group {
	margin-left: 0 !important;
}

#cc-main .pm__btn-group {
	gap: 5px;
}

#cc-main .cm__footer {
	display: none !important;
}

#cc-main .pm__badge {
	background: transparent !important;
	height: auto !important;
	padding-right: 32px !important;
	opacity: 60% !important;
}

#cc-main .section__toggle:checked ~ .toggle__icon .toggle__icon-circle {
	transform: translate(0) !important;
}

#cc-main .toggle__label {
	display: none !important;
}

#cc-main .section__toggle-wrapper {
	right: var(--padding) !important;
	width: 100% !important;
	display: flex;
	justify-content: flex-end !important;
	align-items: center !important;
	box-shadow: unset !important;
	height: 100% !important;
}

#cc-main .section__toggle:checked ~ .toggle__icon {
	box-shadow: unset !important;
}

#cc-main .toggle__icon-circle,
#cc-main .section__toggle,
#cc-main .toggle__icon {
	width: 10px !important;
	height: 10px !important;
	box-shadow: unset !important;
}

#cc-main .toggle__icon-circle {
	border: 1px solid var(--color-grid) !important;
	background: transparent !important;
}

#cc-main .toggle__icon-off,
#cc-main .toggle__icon-on {
	display: flex !important;
	justify-content: center;
	align-items: center;
	border-radius: 50% !important;
}

#cc-main .toggle__icon-off {
	border: 1px solid var(--color-black) !important;
}

.toggle__icon-on svg {
	border: 1px solid var(--color-black) !important;
}

.toggle__icon-off {
	background-color: var(--color-black) !important;
}

.toggle__icon-off svg {
	display: none !important;
}

.toggle__icon-on {
	position: relative;
}

.toggle__icon-on svg {
	background-color: var(--color-grid) !important;
	border-radius: 50%;
	transform: scale(0.95) !important;
}

.toggle__icon-on svg path {
	display: none !important;
}

.legal__content ul {
	list-style-position: inside;
}

.legal__content p {
	margin-bottom: 1em;
}

media-controller {
	--control-background: none;
}

.swiper-container::part(container) {
	overflow: visible;
}

.swiper-wrapper {
	align-items: center;
}

.swiper-button-prev {
	height: 100% !important;
	top: 0 !important;
	cursor: w-resize !important;
}

.swiper-button-prev::after {
	display: none !important;
}

.swiper-button-next {
	height: 100% !important;
	top: 0 !important;
	cursor: e-resize !important;
}

.swiper-button-next::after {
	display: none;
}

.swiper-button-prev,
.swiper-button-next {
	display: block !important;
	width: 15% !important;
	margin-top: 0 !important;
}

.swiper-button-prev {
	left: 0 !important;
}

.swiper-button-next {
	right: 0 !important;
}

@media (min-width: 767px) {
	.swiper-button-prev,
	.swiper-button-next {
		/* Make buttons invisible but still functional for touch */
		opacity: 0;
		background: transparent;
		/* Ensure they still capture touch events */
		pointer-events: auto;
		z-index: 999 !important;
		width: 25% !important;
	}
}

media-controller {
	--media-control-background: transparent;
	--media-control-hover-background: transparent;
	--media-tooltip-display: none !important;
	--media-button-icon-width: 14px !important;
	--media-button-icon-height: 14px !important;
}

media-time-range {
	--media-range-thumb-opacity: 0 !important;
	flex: 1 !important;
	width: 100% !important;
}

media-play-button {
	padding-right: 2px !important;
}

.videoMob {
	position: absolute;
	inset: 0;
	min-width: 100vw;
	min-height: 100vh;
	overflow: hidden;
	-o-object-fit: cover;
	object-fit: cover;
}

.post_header.active::before {
	transform: scaleX(100%) !important;
}

.post_header.active::after {
	transform: scaleX(100%) !important;
}

.active .post_item::before {
	transform: scaleX(100%) !important;
}

.active .post_item::after {
	transform: scaleX(100%) !important;
}

.active::before {
	transform: scaleX(100%) !important;
	transition: transform 0.3s ease;
}

.active::after {
	transform: scaleX(100%) !important;
	transition: transform 0.3s ease;
}

.active .post_clients-title::after {
	transform: scaleX(100%) !important;
}

.active .previous::before,
.active .previous::after {
	transform: scaleX(100%) !important;
}

.padding__borders.active .padding__borders-top,
.padding__borders.active .padding__borders-bottom {
	transform: scaleX(1) !important;
}

.padding__borders.active .padding__borders-left,
.padding__borders.active .padding__borders-right {
	transform: scaleY(1) !important;
}

/* LEGAL */

.legal__content ul {
	list-style-position: inside;
}

/* Video player */
media-controller {
	--control-background: none;
}

/* Directors */

.swiper-container::part(container) {
	overflow: visible;
}

/* Prevent layout shifts during transitions */
.post_carousel {
	contain: layout style;
	min-height: 100px;
	will-change: transform;
}

.post_carousel .swiper {
	position: relative;
	width: 100%;
	height: 100%;
}

.swiper-wrapper {
	align-items: center;
	display: flex;
	position: relative;
	width: 100%;
	height: 100%;
	z-index: 1;
	transition-property: transform;
	box-sizing: content-box;
}

.swiper-slide {
	width: 66% !important;
	height: auto !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	overflow: hidden;
	/* Prevent swiper from blocking video controls */
	touch-action: pan-y pinch-zoom;
}

.swiper-slide media-controller {
	pointer-events: all;
	/* Critical: Allow video controls to receive touch events */
	touch-action: manipulation;
	-webkit-user-select: none;
	user-select: none;
}

.swiper-slide media-controller * {
	/* Ensure all control elements can receive touch events */
	touch-action: manipulation;
}

/* Prevent Swiper from interfering with video control interactions */
.swiper-slide media-control-bar,
.swiper-slide media-play-button,
.swiper-slide media-time-range,
.swiper-slide media-mute-button,
.swiper-slide media-fullscreen-button {
	pointer-events: all !important;
	touch-action: manipulation !important;
}

.swiper-slide img {
	display: block;
	width: 100%;
}

.swiper-slide picture {
	pointer-events: none;
}

picture {
	width: 100%;
	display: block;
}

.swiper-slide picture img {
	opacity: 0;
}

.lazy {
	opacity: 0;
	transition: opacity 0.3s ease;
}

.loaded {
	opacity: 1 !important;
}

@media (min-width: 768px) {
	.swiper-slide {
		width: 42% !important;
		height: auto !important;
		pointer-events: none !important;
	}
}

.swiper-button-prev {
	height: 100% !important;
	top: 0 !important;
	cursor: w-resize !important;

	&::after {
		display: none !important;
	}
}

.swiper-button-next {
	height: 100% !important;
	top: 0 !important;
	cursor: e-resize !important;

	&::after {
		display: none;
	}
}

/**MUX */

media-controller {
	--media-control-background: transparent;
	--media-control-hover-background: transparent;
}

media-time-range {
	--media-range-thumb-opacity: 0 !important;
	flex: 1 !important;
	width: 100% !important;
}

.videoMob {
	position: absolute;
	inset: 0;
	min-width: 100vw;
	min-height: 100vh;
	overflow: hidden;
	-o-object-fit: cover;
	object-fit: cover;
}

/* Directors */

.post_header.active::before {
	transform: scaleX(100%) !important;
}

.post_header.active::after {
	transform: scaleX(100%) !important;
}

.active .post_item::before {
	transform: scaleX(100%) !important;
}

.active .post_item::after {
	transform: scaleX(100%) !important;
}

.active::before {
	transform: scaleX(100%) !important;
	transition: transform 0.3s ease;
}

.active::after {
	transform: scaleX(100%) !important;
	transition: transform 0.3s ease;
}

.active .post_clients-title::after {
	transform: scaleX(100%) !important;
}

.active .previous::before,
.active .previous::after {
	transform: scaleX(100%) !important;
}

.padding__borders.active .padding__borders-top,
.padding__borders.active .padding__borders-bottom {
	transform: scaleX(1) !important;
}

.padding__borders.active .padding__borders-left,
.padding__borders.active .padding__borders-right {
	transform: scaleY(1) !important;
}

/*transition */

/* @-webkit-keyframes move-out {
	from {
		opacity: 1;
		transform: translateY(0) translateZ(0);
		-webkit-transform: translateY(0) translateZ(0);
	}
	to {
		opacity: 0;
		transform: translateY(30%) translateZ(0);
		-webkit-transform: translateY(30%) translateZ(0);
	}
}

@keyframes move-out {
	0% {
		opacity: 1;
		transform: translateY(0) translateZ(0);
		-webkit-transform: translateY(0) translateZ(0);
	}
	100% {
		opacity: 0;
		transform: translateY(30%) translateZ(0);
		-webkit-transform: translateY(30%) translateZ(0);
	}
}

@-webkit-keyframes move-in {
	0% {
		-webkit-clip-path: polygon(0% 100%, 100% 100%, 100% 100%, 0% 100%);
		clip-path: polygon(0% 100%, 100% 100%, 100% 100%, 0% 100%);
		opacity: 1;
		transform: translateZ(0);
		-webkit-transform: translateZ(0);
	}
	100% {
		-webkit-clip-path: polygon(0% 100%, 100% 100%, 100% 0%, 0% 0%);
		clip-path: polygon(0% 100%, 100% 100%, 100% 0%, 0% 0%);
		opacity: 1;
		transform: translateZ(0);
		-webkit-transform: translateZ(0);
	}
}

@keyframes move-in {
	0% {
		-webkit-clip-path: polygon(0% 100%, 100% 100%, 100% 100%, 0% 100%);
		clip-path: polygon(0% 100%, 100% 100%, 100% 100%, 0% 100%);
		opacity: 1;
		transform: translateZ(0);
		-webkit-transform: translateZ(0);
	}
	100% {
		-webkit-clip-path: polygon(0% 100%, 100% 100%, 100% 0%, 0% 0%);
		clip-path: polygon(0% 100%, 100% 100%, 100% 0%, 0% 0%);
		opacity: 1;
		transform: translateZ(0);
		-webkit-transform: translateZ(0);
	}
}

::view-transition-old(root) {
	-webkit-animation: 1.5s cubic-bezier(0.86, 0, 0.07, 1) both move-out;
	animation: 1.5s cubic-bezier(0.86, 0, 0.07, 1) both move-out;
	background-color: var(--color-background);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

::view-transition-new(root) {
	-webkit-animation: 1.5s cubic-bezier(0.86, 0, 0.07, 1) both move-in;
	animation: 1.5s cubic-bezier(0.86, 0, 0.07, 1) both move-in;
	background-color: var(--color-background);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
} */

/* Transition cursor styles */
.loading,
.loading * {
	cursor: wait !important;
	pointer-events: none !important; /* Prevent interactions during transition */
}

::-moz-selection {
	background: var(--color-grid);
	color: var(--color-background);
}

::selection {
	background: var(--color-grid);
	color: var(--color-background);
}

/* TEXTS */

.border-text {
	background-color: var(--color-containers);
	padding-left: 1px;
	padding-right: 1px;
	border-left: 1px solid var(--color-grid);
	border-right: 1px solid var(--color-grid);
	line-height: 1 !important;
	text-transform: uppercase !important;
	text-align: center;
}

/* safari fixer */

p,
h2,
h3,
h4,
span {
	font-synthesis: none;
	text-rendering: geometricPrecision;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-feature-settings: 'kern' 1;
	font-kerning: normal;
	/* Reset any inherited text metrics */
	text-indent: 0;
	letter-spacing: 0;
	word-spacing: 0;
}

.post_clients-paragraph p {
	padding-top: 2px;
}

/* .safari .post_excerpt p {
	padding-top: 2px !important;
}

.ios .post_excerpt p {
	padding-top: 0px !important;
	padding-bottom: 1px !important;
} */

.home__contact-links a span {
	line-height: 0.8;
}
