/**
 * One Elementor – front-end widget styles.
 */

/* ======= One Button (hero butn-light layout) ======= */
.one-button {
	position: relative;
	display: block;
	line-height: 1.2em;
}

.one-button__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 24px;
	font-family: "Oswald", sans-serif;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 1px;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	color: #fff;
	background: transparent;
	border: 1px solid #fff;
	overflow: hidden;
	box-sizing: border-box;
	transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

.one-button__link::after {
	content: "";
	width: 0;
	height: 100%;
	position: absolute;
	bottom: 0;
	left: 100%;
	z-index: 1;
	background: #fff;
	pointer-events: none;
	transition: all 0.3s ease;
}

.one-button--no-fill .one-button__link::after {
	display: none;
}

.one-button__link:hover::after,
.one-button__link:focus::after {
	width: 100%;
	left: 0;
}

.one-button__content {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

.one-button__text {
	position: relative;
	z-index: 2;
	transition: color 0.3s ease;
}

.one-button__icon {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	transition: color 0.3s ease, fill 0.3s ease;
}

.one-button__icon i,
.one-button__icon svg {
	display: block;
	width: 1em;
	height: 1em;
}

.one-button__icon svg {
	fill: currentColor;
}

/* Alignment (prefix_class on widget wrapper) */
.one-button-align-left .one-button,
.one-button-align-tablet-left .one-button,
.one-button-align-mobile-left .one-button {
	text-align: left;
}

.one-button-align-center .one-button,
.one-button-align-tablet-center .one-button,
.one-button-align-mobile-center .one-button {
	text-align: center;
}

.one-button-align-right .one-button,
.one-button-align-tablet-right .one-button,
.one-button-align-mobile-right .one-button {
	text-align: right;
}

.one-button-align-justify .one-button__link,
.one-button-align-tablet-justify .one-button__link,
.one-button-align-mobile-justify .one-button__link {
	width: 100%;
}

/* ======= One Navigation ======= */
.one-nav {
	position: relative;
	display: block;
	width: 100%;
	background: transparent;
	overflow: hidden;
	--one-nav-divider: rgba(255, 255, 255, 0.35);
	--one-nav-divider-width: 1px;
}

.one-nav__list {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	margin: 0;
	padding: 0;
	list-style: none;
	width: 100%;
}

.one-nav__item {
	display: flex;
	min-width: 0;
}

.one-nav--equal .one-nav__item {
	flex: 1 1 0;
}

.one-nav__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	box-sizing: border-box;
	padding: 14px 16px;
	font-family: "Oswald", sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.3;
	text-transform: uppercase;
	text-decoration: none;
	text-align: center;
	color: #fff;
	background: #272727;
	border: 0;
	transition: color 0.25s ease, background-color 0.25s ease;
}

.one-nav--dividers .one-nav__item:not(:last-child) .one-nav__link {
	border-inline-end: var(--one-nav-divider-width) solid var(--one-nav-divider);
}

.one-nav__text {
	display: block;
}

.one-nav__toggle,
.one-nav__select {
	display: none;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	font-family: "Oswald", sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #fff;
	background: #272727;
	border: 0;
	appearance: none;
	cursor: pointer;
}

.one-nav__toggle {
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	text-align: left;
}

.one-nav__toggle-text {
	flex: 1 1 auto;
	min-width: 0;
}

.one-nav__toggle-icon {
	position: relative;
	flex: 0 0 auto;
	width: 18px;
	height: 12px;
}

.one-nav__toggle-icon::before,
.one-nav__toggle-icon::after {
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background: currentColor;
	transition: transform 0.25s ease, top 0.25s ease;
}

.one-nav__toggle-icon::before {
	top: 2px;
}

.one-nav__toggle-icon::after {
	top: 8px;
}

.one-nav.is-open .one-nav__toggle-icon::before {
	top: 5px;
	transform: rotate(45deg);
}

.one-nav.is-open .one-nav__toggle-icon::after {
	top: 5px;
	transform: rotate(-45deg);
}

.one-nav__select {
	padding-right: 2.5rem;
	background-image: linear-gradient(45deg, transparent 50%, currentColor 50%),
		linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position: calc(100% - 18px) calc(50% - 2px), calc(100% - 12px) calc(50% - 2px);
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
}

.one-nav__select option {
	color: #111;
	background: #fff;
}

/* --- Breakpoint: tablet --- */
@media (max-width: 1024.98px) {
	.one-nav--bp-tablet.one-nav--toggle .one-nav__toggle {
		display: flex;
	}

	.one-nav--bp-tablet.one-nav--toggle .one-nav__list {
		display: none;
		flex-direction: column;
	}

	.one-nav--bp-tablet.one-nav--toggle.is-open .one-nav__list {
		display: flex;
	}

	.one-nav--bp-tablet.one-nav--toggle .one-nav__item {
		flex: none;
		width: 100%;
	}

	.one-nav--bp-tablet.one-nav--toggle.one-nav--dividers .one-nav__item:not(:last-child) .one-nav__link,
	.one-nav--bp-tablet.one-nav--stack.one-nav--dividers .one-nav__item:not(:last-child) .one-nav__link {
		border-inline-end: 0;
		border-bottom: var(--one-nav-divider-width) solid var(--one-nav-divider);
	}

	.one-nav--bp-tablet.one-nav--dropdown .one-nav__select {
		display: block;
	}

	.one-nav--bp-tablet.one-nav--dropdown .one-nav__list {
		display: none;
	}

	.one-nav--bp-tablet.one-nav--stack .one-nav__list {
		flex-direction: column;
	}

	.one-nav--bp-tablet.one-nav--stack .one-nav__item {
		flex: none;
		width: 100%;
	}
}

/* --- Breakpoint: mobile --- */
@media (max-width: 767.98px) {
	.one-nav--bp-mobile.one-nav--toggle .one-nav__toggle {
		display: flex;
	}

	.one-nav--bp-mobile.one-nav--toggle .one-nav__list {
		display: none;
		flex-direction: column;
	}

	.one-nav--bp-mobile.one-nav--toggle.is-open .one-nav__list {
		display: flex;
	}

	.one-nav--bp-mobile.one-nav--toggle .one-nav__item {
		flex: none;
		width: 100%;
	}

	.one-nav--bp-mobile.one-nav--toggle.one-nav--dividers .one-nav__item:not(:last-child) .one-nav__link,
	.one-nav--bp-mobile.one-nav--stack.one-nav--dividers .one-nav__item:not(:last-child) .one-nav__link {
		border-inline-end: 0;
		border-bottom: var(--one-nav-divider-width) solid var(--one-nav-divider);
	}

	.one-nav--bp-mobile.one-nav--dropdown .one-nav__select {
		display: block;
	}

	.one-nav--bp-mobile.one-nav--dropdown .one-nav__list {
		display: none;
	}

	.one-nav--bp-mobile.one-nav--stack .one-nav__list {
		flex-direction: column;
	}

	.one-nav--bp-mobile.one-nav--stack .one-nav__item {
		flex: none;
		width: 100%;
	}
}

/* Screen reader helper if theme lacks it */
.one-nav .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ======= One Project ======= */
.one-project {
	--g9-archive-gutter: 30px;
	--one-project-gap: 30px;
	position: relative;
	width: 100%;
}

.one-project .g9-project-grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--one-project-gap);
	column-gap: var(--one-project-gap);
	row-gap: var(--one-project-gap);
}

/* Override archive page padding-trick so Elementor column count works cleanly */
.one-project.g9-archive--projects .g9-project-card,
.one-project.g9-archive--projects .g9-project-card:nth-child(n) {
	padding-left: 0;
	padding-right: 0;
}

.one-project__empty {
	margin: 0;
	padding: 1.5rem 0;
	color: #999;
	text-align: center;
}

.one-project__editor-note {
	padding: 1.25rem;
	border: 1px dashed #555;
	color: #999;
	font-size: 13px;
	text-align: center;
}

/* Fallback card styles if theme archive.css is not loaded */
.one-project .g9-project-card {
	margin: 0;
}

.one-project .g9-project-card__link {
	position: relative;
	display: block;
	overflow: hidden;
	color: inherit;
	text-decoration: none;
}

.one-project .g9-project-card__media {
	display: block;
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #1a1a1a;
}

.one-project .g9-project-card__image,
.one-project .g9-project-card__media img.g9-project-card__image,
.one-project .g9-project-card__placeholder {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center;
	transition: transform 0.8s ease, filter 0.8s ease;
}

.one-project .g9-project-card__placeholder {
	background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%);
}

.one-project .g9-project-card__link:hover .g9-project-card__image {
	transform: scale(1.08);
	filter: brightness(0.55);
}

.one-project .g9-project-card__con {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 1.5rem 1.25rem;
	text-align: center;
	background: rgba(15, 15, 15, 0.55);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.4s ease, visibility 0.4s ease;
}

.one-project .g9-project-card__link:hover .g9-project-card__con,
.one-project .g9-project-card__link:focus-visible .g9-project-card__con {
	opacity: 1;
	visibility: visible;
}

.one-project .g9-project-card__cat {
	display: block;
	margin: 0 0 0.55rem;
	font-family: "Oswald", sans-serif;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: #bea658;
	transform: translateY(10px);
	transition: transform 0.4s ease 0.05s;
}

.one-project .g9-project-card__title {
	display: block;
	margin: 0 0 0.85rem;
	font-family: "Oswald", sans-serif;
	font-size: clamp(1rem, 1.5vw, 1.2rem);
	font-weight: 400;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #fff;
	line-height: 1.35;
	transform: translateY(10px);
	transition: transform 0.4s ease 0.1s;
}

.one-project .g9-project-card__line {
	display: block;
	width: 50px;
	height: 1px;
	margin: 0 0 0.85rem;
	background: #bea658;
	transform: scaleX(0);
	transition: transform 0.4s ease 0.15s;
}

.one-project .g9-project-card__arrow {
	display: inline-flex;
	color: #fff;
	transform: translateY(10px);
	transition: transform 0.4s ease 0.2s, color 0.25s ease;
}

.one-project .g9-project-card__link:hover .g9-project-card__cat,
.one-project .g9-project-card__link:hover .g9-project-card__title,
.one-project .g9-project-card__link:hover .g9-project-card__arrow,
.one-project .g9-project-card__link:focus-visible .g9-project-card__cat,
.one-project .g9-project-card__link:focus-visible .g9-project-card__title,
.one-project .g9-project-card__link:focus-visible .g9-project-card__arrow {
	transform: translateY(0);
}

.one-project .g9-project-card__link:hover .g9-project-card__line,
.one-project .g9-project-card__link:focus-visible .g9-project-card__line {
	transform: scaleX(1);
}

.one-project .g9-project-card__link:hover .g9-project-card__arrow {
	color: #bea658;
}


/* ======= One Featured (4-col mosaic layout) ======= */
/*
 * Row 1: CTA 25% | CTA 25% | CTA 50%
 * Row 2: Content 50% | CTA 25% | CTA 25%
 */
.one-featured {
	--one-featured-line: #323232;
	--one-featured-row-height: 280px;
	position: relative;
	width: 100%;
}

.one-featured__inner {
	position: relative;
	width: 100%;
}

.one-featured__lines {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.one-featured__line {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 0;
	border-left: 1px solid var(--one-featured-line);
}

.one-featured__line--0 { left: 0; }
.one-featured__line--25 { left: 25%; }
.one-featured__line--50 { left: 50%; }
.one-featured__line--75 { left: 75%; }
.one-featured__line--100 { left: 100%; }

.one-featured__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: var(--one-featured-row-height);
	gap: 0;
	isolation: isolate;
}

/* Slot map */
.one-featured__cta--c1 { grid-column: 1; grid-row: 1; }
.one-featured__cta--c2 { grid-column: 2; grid-row: 1; }
.one-featured__cta--c3 { grid-column: 3 / 5; grid-row: 1; }
.one-featured__content { grid-column: 1 / 3; grid-row: 2; }
.one-featured__cta--c4 { grid-column: 3; grid-row: 2; }
.one-featured__cta--c5 { grid-column: 4; grid-row: 2; }

.one-featured__cta,
.one-featured__content {
	position: relative;
	display: block;
	overflow: hidden;
	min-width: 0;
	min-height: var(--one-featured-row-height);
	height: 100%;
	text-decoration: none;
	color: inherit;
	opacity: 0;
	transform: translateY(22px);
	transition:
		opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: calc(var(--one-featured-i, 0) * 0.1s);
}

.one-featured.is-inview .one-featured__cta,
.one-featured.is-inview .one-featured__content,
.one-featured--editor .one-featured__cta,
.one-featured--editor .one-featured__content,
.elementor-editor-active .one-featured__cta,
.elementor-editor-active .one-featured__content {
	opacity: 1;
	transform: translateY(0);
}

/* Staggered inner content (eyebrow → title → desc → btn) */
.one-featured__reveal {
	opacity: 0;
	transform: translateY(16px);
	transition:
		opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: calc(
		(var(--one-featured-i, 0) * 0.1s) + (var(--one-featured-reveal, 0) * 0.09s) + 0.12s
	);
}

.one-featured.is-inview .one-featured__reveal,
.one-featured--editor .one-featured__reveal,
.elementor-editor-active .one-featured__reveal {
	opacity: 1;
	transform: translateY(0);
}

.one-featured__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background-color: #151515;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center center;
	transform: scale(1);
	transform-origin: center center;
	transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1), filter 0.6s ease;
}

.one-featured__media--placeholder {
	background-image: linear-gradient(135deg, #2a2a2a 0%, #161616 100%);
}

.one-featured__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.55) 0%, transparent 60%);
	transition: opacity 0.45s ease;
}

.one-featured__caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	padding: 1.35rem 1.25rem 1.4rem;
	box-sizing: border-box;
}

.one-featured__cta-eyebrow {
	display: block;
	margin: 0 0 0.35rem;
	font-family: "Oswald", sans-serif;
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: #fff;
}

.one-featured__cta-title {
	display: block;
	margin: 0;
	font-family: "Oswald", sans-serif;
	font-size: clamp(0.95rem, 1.4vw, 1.15rem);
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-transform: uppercase;
	color: #fff;
}

.one-featured__cta:hover .one-featured__media,
.one-featured__cta:focus-visible .one-featured__media {
	transform: scale(1.06);
	filter: brightness(0.85);
}

.one-featured__cta:hover .one-featured__overlay,
.one-featured__cta:focus-visible .one-featured__overlay {
	opacity: 0.85;
}

/* Content block */
.one-featured__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	box-sizing: border-box;
	padding: 2.5rem;
	background: #1c1c1c;
}

.one-featured__eyebrow {
	display: block;
	margin: 0 0 0.55rem;
	font-family: "Oswald", sans-serif;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #bea658;
}

.one-featured__heading {
	margin: 0 0 1.1rem;
	font-family: "Oswald", sans-serif;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-transform: uppercase;
	color: #bea658;
}

.one-featured__desc {
	margin: 0 0 1.75rem;
	max-width: 34em;
	font-family: "Averta NM", sans-serif;
	font-size: 15px;
	line-height: 1.75;
	color: #999;
}

.one-featured__desc p {
	margin: 0 0 0.75em;
	color: inherit;
}

.one-featured__desc p:last-child {
	margin-bottom: 0;
}

.one-featured__desc a {
	color: #bea658;
}

.one-featured__btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 12px 24px;
	border: 1px solid #fff;
	border-radius: 0;
	background: transparent;
	color: #fff;
	font-family: "Oswald", sans-serif;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 1px;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	overflow: hidden;
	transition: color 0.3s ease, border-color 0.3s ease;
}

.one-featured__btn::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 100%;
	z-index: 1;
	width: 0;
	height: 100%;
	background: #fff;
	pointer-events: none;
	transition: all 0.3s ease;
}

.one-featured__btn-text,
.one-featured__btn-icon {
	position: relative;
	z-index: 2;
	transition: color 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
}

.one-featured__btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.5rem;
	height: 1.5rem;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: 0.65rem;
	line-height: 1;
}

.one-featured__btn-icon i,
.one-featured__btn-icon svg {
	display: block;
	width: 0.7em;
	height: 0.7em;
}

.one-featured__btn-icon svg {
	fill: currentColor;
}

.one-featured__btn:hover::after,
.one-featured__btn:focus-visible::after {
	width: 100%;
	left: 0;
}

.one-featured__btn:hover,
.one-featured__btn:focus-visible {
	color: #272727;
	border-color: #fff;
}

.one-featured__btn:hover .one-featured__btn-icon {
	transform: translateX(3px);
}

@media (max-width: 991.98px) {
	.one-featured__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: var(--one-featured-row-height);
	}

	.one-featured__cta--c1 { grid-column: 1; grid-row: 1; }
	.one-featured__cta--c2 { grid-column: 2; grid-row: 1; }
	.one-featured__cta--c3 { grid-column: 1 / 3; grid-row: 2; }
	.one-featured__content { grid-column: 1 / 3; grid-row: 3; }
	.one-featured__cta--c4 { grid-column: 1; grid-row: 4; }
	.one-featured__cta--c5 { grid-column: 2; grid-row: 4; }

	.one-featured__line--25,
	.one-featured__line--75 { display: none; }
	.one-featured__line--50 { left: 50%; }
}

@media (max-width: 767.98px) {
	.one-featured__grid {
		display: flex;
		flex-direction: column;
		grid-auto-rows: unset;
	}

	.one-featured__content {
		order: -1;
		min-height: var(--one-featured-row-height);
	}

	.one-featured__cta {
		min-height: var(--one-featured-row-height);
		height: var(--one-featured-row-height);
		aspect-ratio: auto;
	}

	.one-featured__lines {
		display: none;
	}
}

/* ==========================================================================
 * One About – 2×2 items left + content right
 * ========================================================================== */
.one-about {
	--one-about-line: #3a3a3a;
	--one-about-row-height: 220px;
	--one-about-items-gap: 0px;
	position: relative;
	width: 100%;
}

.one-about__inner {
	position: relative;
	width: 100%;
}

.one-about__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: stretch;
	isolation: isolate;
}

.one-about__items {
	position: relative;
	min-height: calc(var(--one-about-row-height) * 2 + var(--one-about-items-gap));
	opacity: 0;
	transform: translateY(22px);
	transition:
		opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: calc(var(--one-about-i, 0) * 0.1s);
}

.one-about__items-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(2, var(--one-about-row-height));
	gap: var(--one-about-items-gap);
	height: 100%;
	min-height: calc(var(--one-about-row-height) * 2 + var(--one-about-items-gap));
}

.one-about__lines {
	position: absolute;
	inset: 0;
	z-index: 3;
	pointer-events: none;
}

.one-about__line {
	position: absolute;
	background: var(--one-about-line);
}

.one-about__line--v {
	top: 0;
	bottom: 0;
	left: 50%;
	width: 1px;
	transform: translateX(-50%);
}

.one-about__line--h {
	left: 0;
	right: 0;
	top: 50%;
	height: 1px;
	transform: translateY(-50%);
}

.one-about__item {
	position: relative;
	display: block;
	overflow: hidden;
	min-width: 0;
	min-height: var(--one-about-row-height);
	height: 100%;
	text-decoration: none;
	color: inherit;
}

.one-about__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background-color: #272727;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center center;
	transform: scale(1);
	transform-origin: center center;
	transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1), filter 0.6s ease;
}

.one-about__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background-color: rgba(0, 0, 0, 0.35);
	transition: opacity 0.45s ease;
}

.one-about__caption {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem 1.75rem;
	box-sizing: border-box;
	text-align: center;
}

.one-about__item-title {
	display: block;
	margin: 0;
	max-width: 16em;
	font-family: "Oswald", sans-serif;
	font-size: clamp(0.85rem, 1.2vw, 1rem);
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.45;
	text-transform: uppercase;
	color: #fff;
}

.one-about__item:hover .one-about__media,
.one-about__item:focus-visible .one-about__media {
	transform: scale(1.06);
	filter: brightness(0.88);
}

.one-about__content {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	box-sizing: border-box;
	min-height: calc(var(--one-about-row-height) * 2 + var(--one-about-items-gap));
	padding: 3rem;
	background: #3a3a3a;
	opacity: 0;
	transform: translateY(22px);
	transition:
		opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: calc(var(--one-about-i, 0) * 0.1s);
}

.one-about.is-inview .one-about__items,
.one-about.is-inview .one-about__content,
.one-about--editor .one-about__items,
.one-about--editor .one-about__content,
.elementor-editor-active .one-about__items,
.elementor-editor-active .one-about__content {
	opacity: 1;
	transform: translateY(0);
}

.one-about__reveal {
	opacity: 0;
	transform: translateY(16px);
	transition:
		opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: calc(
		(var(--one-about-i, 0) * 0.1s) + (var(--one-about-reveal, 0) * 0.09s) + 0.12s
	);
}

.one-about.is-inview .one-about__reveal,
.one-about--editor .one-about__reveal,
.elementor-editor-active .one-about__reveal {
	opacity: 1;
	transform: translateY(0);
}

.one-about__heading {
	margin: 0 0 1.25rem;
	font-family: "Oswald", sans-serif;
	font-size: clamp(1.75rem, 3vw, 2.35rem);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-transform: uppercase;
	color: #bea658;
}

.one-about__desc {
	margin: 0 0 1.75rem;
	font-family: "Averta NM", sans-serif;
	font-size: 15px;
	line-height: 1.8;
	color: #cfcfcf;
}

.one-about__desc p {
	margin: 0 0 0.85em;
	color: inherit;
}

.one-about__desc p:last-child {
	margin-bottom: 0;
}

.one-about__desc a {
	color: #bea658;
}

.one-about__btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 12px 22px;
	border: 1px solid #d0d0d0;
	border-radius: 0;
	background: #d0d0d0;
	color: #272727;
	font-family: "Oswald", sans-serif;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 1px;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	overflow: hidden;
	transition: color 0.3s ease, border-color 0.3s ease;
}

.one-about__btn::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 100%;
	z-index: 1;
	width: 0;
	height: 100%;
	background: #bea658;
	pointer-events: none;
	transition: all 0.3s ease;
}

.one-about__btn-text,
.one-about__btn-icon {
	position: relative;
	z-index: 2;
	transition: color 0.3s ease, transform 0.3s ease;
}

.one-about__btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.5rem;
	height: 1.5rem;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: 0.65rem;
	line-height: 1;
}

.one-about__btn-icon i,
.one-about__btn-icon svg {
	display: block;
	width: 0.7em;
	height: 0.7em;
}

.one-about__btn-icon svg {
	fill: currentColor;
}

.one-about__btn:hover::after,
.one-about__btn:focus-visible::after {
	width: 100%;
	left: 0;
}

.one-about__btn:hover .one-about__btn-icon {
	transform: translateX(3px);
}

@media (max-width: 991.98px) {
	.one-about__layout {
		grid-template-columns: 1fr;
	}

	.one-about__content {
		order: -1;
		min-height: 0;
	}

	.one-about__items,
	.one-about__items-grid {
		min-height: calc(var(--one-about-row-height) * 2 + var(--one-about-items-gap));
	}
}

@media (max-width: 575.98px) {
	.one-about__items-grid {
		grid-template-columns: 1fr;
		grid-template-rows: repeat(4, var(--one-about-row-height));
	}

	.one-about__items,
	.one-about__items-grid {
		min-height: calc(var(--one-about-row-height) * 4 + var(--one-about-items-gap) * 3);
	}

	.one-about__line--v {
		display: none;
	}

	.one-about__line--h {
		top: 25%;
	}

	.one-about__items::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 50%;
		z-index: 3;
		height: 1px;
		background: var(--one-about-line);
		pointer-events: none;
	}

	.one-about__items::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 75%;
		z-index: 3;
		height: 1px;
		background: var(--one-about-line);
		pointer-events: none;
	}

	.one-about:not(.one-about--lines)::before,
	.one-about:not(.one-about--lines)::after,
	.one-about:not(.one-about--lines) .one-about__items::before,
	.one-about:not(.one-about--lines) .one-about__items::after {
		display: none;
	}
}

/* ==========================================================================
 * One Partners – logo grid + mobile slider
 * ========================================================================== */
.one-partners {
	--one-partners-cols: 6;
	--one-partners-size: 140px;
	--one-partners-gap: 0px;
	position: relative;
	width: 100%;
}

/* Inherit column + gap from parent Container Line Background */
.one-partners-match-lines-yes .one-partners {
	--one-partners-cols: calc(var(--one-el-lines-v, 5) + 1);
	--one-partners-gap: var(--one-el-lines-gap, 0px);
}

.one-partners-match-lines-yes .one-partners__grid {
	gap: var(--one-el-lines-gap, 0px);
}

.one-partners__inner {
	width: 100%;
}

.one-partners__heading {
	margin: 0 0 2.25rem;
	text-align: center;
	font-family: "Oswald", sans-serif;
	font-size: clamp(1.5rem, 2.8vw, 2.15rem);
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
	color: #fff;
	opacity: 0;
	transform: translateY(18px);
	transition:
		opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.one-partners.is-inview .one-partners__heading,
.one-partners--editor .one-partners__heading,
.elementor-editor-active .one-partners__heading {
	opacity: 1;
	transform: translateY(0);
}

.one-partners__viewport {
	width: 100%;
}

.one-partners__grid {
	display: grid;
	grid-template-columns: repeat(var(--one-partners-cols), minmax(0, 1fr));
	gap: var(--one-partners-gap);
	width: 100%;
	margin: 0;
	border: 0;
}

.one-partners__cell {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	box-sizing: border-box;
	padding: 0;
	background: #fff;
	border: 0;
	text-decoration: none;
	color: inherit;
	overflow: hidden;
	opacity: 0;
	transform: translateY(18px) scale(0.96);
	transition:
		opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
		filter 0.35s ease;
	transition-delay: calc(0.12s + var(--one-partners-i, 0) * 0.07s);
}

.one-partners.is-inview .one-partners__cell,
.one-partners--editor .one-partners__cell,
.elementor-editor-active .one-partners__cell {
	opacity: 1;
	transform: translateY(0) scale(1);
}

.one-partners__cell:hover {
	filter: brightness(0.96);
	z-index: 1;
}

.one-partners__logo {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	max-height: none;
	object-fit: cover;
	object-position: center center;
	pointer-events: none;
	transform: scale(1);
	transform-origin: center center;
	transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s ease;
}

.one-partners__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-family: "Oswald", sans-serif;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #888;
	text-align: center;
}

.one-partners__cell:hover .one-partners__logo {
	transform: scale(1.08);
	filter: brightness(0.92);
}

@media (max-width: 767.98px) {
	.one-partners__viewport {
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		cursor: grab;
		touch-action: pan-x;
	}

	.one-partners__viewport::-webkit-scrollbar {
		display: none;
	}

	.one-partners__viewport.is-dragging {
		cursor: grabbing;
		scroll-snap-type: none;
	}

	.one-partners__grid {
		display: flex;
		width: max-content;
		max-width: none;
		margin-inline: 0;
	}

	.one-partners__cell {
		flex: 0 0 var(--one-partners-size);
		width: var(--one-partners-size);
		height: var(--one-partners-size);
		aspect-ratio: auto;
		scroll-snap-align: start;
	}
}

/* ==========================================================================
 * Elementor Container – Line Background (real DOM layer, not ::before)
 * ========================================================================== */
.one-el-lines,
.one-el-lines-yes {
	--one-el-lines-v: 5;
	--one-el-lines-h: 0;
	--one-el-lines-cols: 6;
	--one-el-lines-gap: 0px;
	--one-el-lines-color: #323232;
	--one-el-lines-w: 1px;
	--one-el-lines-opacity: 1;
	--one-el-lines-z: 1;
	--one-el-lines-speed: 8s;
	--one-el-lines-accent: #bea658;
	position: relative;
	isolation: isolate;
}

.one-el-lines__layer {
	position: absolute;
	inset: 0;
	z-index: var(--one-el-lines-z, 1);
	pointer-events: none;
	overflow: hidden;
	opacity: var(--one-el-lines-opacity, 1);
}

.one-el-lines__line {
	position: absolute;
	background: var(--one-el-lines-color, #323232);
}

.one-el-lines__line--v {
	top: 0;
	bottom: 0;
	width: var(--one-el-lines-w, 1px);
	transform: translateX(-50%);
}

.one-el-lines__line--h {
	left: 0;
	right: 0;
	height: var(--one-el-lines-w, 1px);
	transform: translateY(-50%);
}

/* Keep content above the line layer */
.one-el-lines > .e-con-inner,
.one-el-lines-yes > .e-con-inner {
	position: relative;
	isolation: isolate;
}

.one-el-lines > .e-con-inner > .elementor-element,
.one-el-lines-yes > .e-con-inner > .elementor-element,
.one-el-lines > .elementor-element,
.one-el-lines-yes > .elementor-element,
.one-el-lines > .elementor-widget,
.one-el-lines-yes > .elementor-widget,
.one-el-lines > .e-child,
.one-el-lines-yes > .e-child {
	position: relative;
	z-index: 2;
}

/* Draw in */
.one-el-lines-fx--draw .one-el-lines__line--v {
	transform: translateX(-50%) scaleY(0);
	transform-origin: top center;
}

.one-el-lines-fx--draw .one-el-lines__line--h {
	transform: translateY(-50%) scaleX(0);
	transform-origin: left center;
}

.one-el-lines-fx--draw.is-inview .one-el-lines__line--v,
.one-el-lines-fx--draw.one-el-lines--editor .one-el-lines__line--v,
.elementor-editor-active .one-el-lines-fx--draw .one-el-lines__line--v {
	animation: one-el-lines-draw-v calc(var(--one-el-lines-speed) * 0.35) cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.one-el-lines-fx--draw.is-inview .one-el-lines__line--h,
.one-el-lines-fx--draw.one-el-lines--editor .one-el-lines__line--h,
.elementor-editor-active .one-el-lines-fx--draw .one-el-lines__line--h {
	animation: one-el-lines-draw-h calc(var(--one-el-lines-speed) * 0.35) cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.one-el-lines-fx--draw .one-el-lines__line {
	animation-delay: calc(var(--one-el-line-i, 0) * 0.06s);
}

@keyframes one-el-lines-draw-v {
	from { transform: translateX(-50%) scaleY(0); }
	to { transform: translateX(-50%) scaleY(1); }
}

@keyframes one-el-lines-draw-h {
	from { transform: translateY(-50%) scaleX(0); }
	to { transform: translateY(-50%) scaleX(1); }
}

/* Sweep light */
.one-el-lines-fx--sweep .one-el-lines__layer::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		90deg,
		transparent 0%,
		color-mix(in srgb, var(--one-el-lines-accent) 45%, transparent) 50%,
		transparent 100%
	);
	background-size: 40% 100%;
	background-repeat: no-repeat;
	animation: one-el-lines-sweep var(--one-el-lines-speed) linear infinite;
	pointer-events: none;
}

@keyframes one-el-lines-sweep {
	from { background-position: -40% 0; }
	to { background-position: 140% 0; }
}

/* Running dash */
.one-el-lines-fx--run .one-el-lines__line--v {
	background-image: linear-gradient(
		to bottom,
		var(--one-el-lines-accent) 0 12px,
		var(--one-el-lines-color) 12px 28px
	);
	background-size: 100% 28px;
	background-repeat: repeat-y;
	animation: one-el-lines-run-v var(--one-el-lines-speed) linear infinite;
}

.one-el-lines-fx--run .one-el-lines__line--h {
	background-image: linear-gradient(
		to right,
		var(--one-el-lines-accent) 0 12px,
		var(--one-el-lines-color) 12px 28px
	);
	background-size: 28px 100%;
	background-repeat: repeat-x;
	animation: one-el-lines-run-h var(--one-el-lines-speed) linear infinite;
}

@keyframes one-el-lines-run-v {
	from { background-position: 0 0; }
	to { background-position: 0 28px; }
}

@keyframes one-el-lines-run-h {
	from { background-position: 0 0; }
	to { background-position: 28px 0; }
}

/* Pulse */
.one-el-lines-fx--pulse .one-el-lines__layer {
	animation: one-el-lines-pulse var(--one-el-lines-speed) ease-in-out infinite;
}

@keyframes one-el-lines-pulse {
	0%,
	100% {
		opacity: var(--one-el-lines-opacity, 1);
		filter: none;
	}
	50% {
		opacity: calc(var(--one-el-lines-opacity, 1) * 0.4);
		filter: drop-shadow(0 0 6px var(--one-el-lines-accent));
	}
}

/* ==========================================================================
 * One CTA – equal image grid (title below)
 * ========================================================================== */
.one-cta {
	--one-cta-cols: 4;
	--one-cta-gap: 24px;
	--one-cta-ratio: 0.72;
	position: relative;
	width: 100%;
}

.one-cta__grid {
	display: grid;
	grid-template-columns: repeat(var(--one-cta-cols), minmax(0, 1fr));
	gap: var(--one-cta-gap);
	isolation: isolate;
}

.one-cta__item {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	text-decoration: none;
	color: inherit;
	opacity: 0;
	transform: translateY(22px);
	transition:
		opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: calc(var(--one-cta-i, 0) * 0.08s);
}

.one-cta.is-inview .one-cta__item,
.one-cta--editor .one-cta__item,
.elementor-editor-active .one-cta__item {
	opacity: 1;
	transform: translateY(0);
}

.one-cta__reveal {
	opacity: 0;
	transform: translateY(14px);
	transition:
		opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
		color 0.35s ease;
	transition-delay: calc((var(--one-cta-i, 0) * 0.08s) + 0.14s);
}

.one-cta.is-inview .one-cta__reveal,
.one-cta--editor .one-cta__reveal,
.elementor-editor-active .one-cta__reveal {
	opacity: 1;
	transform: translateY(0);
}

.one-cta__media-wrap {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
	aspect-ratio: 1 / var(--one-cta-ratio);
	background: #151515;
}

.one-cta__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background-color: #151515;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center center;
	transform: scale(1);
	transform-origin: center center;
	transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.one-cta__media--placeholder {
	background-image: linear-gradient(135deg, #2a2a2a 0%, #161616 100%);
}

.one-cta__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background-color: rgba(0, 0, 0, 0.25);
	opacity: 0;
	transition: opacity 0.45s ease;
}

.one-cta__title {
	display: block;
	margin: 14px 0 0;
	padding: 0;
	font-family: "Oswald", sans-serif;
	font-size: clamp(0.8rem, 1.15vw, 0.95rem);
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.35;
	text-transform: uppercase;
	text-align: center;
	color: #bea658;
}

@media (max-width: 1024px) {
	.one-cta {
		--one-cta-cols: 2;
	}
}

@media (max-width: 575.98px) {
	.one-cta {
		--one-cta-cols: 1;
		--one-cta-gap: 20px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.one-cta__item,
	.one-cta__reveal,
	.one-cta__media,
	.one-cta__overlay {
		transition: none !important;
		transition-delay: 0s !important;
	}

	.one-cta__item,
	.one-cta__reveal {
		opacity: 1;
		transform: none;
	}
}

