/* GLOBAL */

html,
body {
	overflow-x: hidden;
}

/* HOME INTRO – TITLE */

.home-intro-title {
	padding-top: calc(var(--header-height, 96px) + 4rem);
	padding-bottom: 4rem;
}

.home-intro-h1 {
	margin: 0 0 2rem 0;
	color: var(--Negro-texto, #27282b);
	font-family: "Optima Nova Light";
	font-size: 6rem;
	font-weight: 400;
	line-height: normal;
}

.home-intro-sub {
	max-width: 640px;
	color: var(--Negro-texto, #27282b);
	font-family: "Optima Nova Light";
	font-size: 36px;
	line-height: 46px;
}

@media (max-width: 991.98px) {
	.home-intro-h1 {
		font-size: 3.5rem;
	}

	.home-intro-sub {
		font-size: 24px;
		line-height: 32px;
	}
}

/* HOME INTRO – VIDEO + MASK */

.intro-sequence {
	position: relative;
	padding-bottom: 6rem;
}

.intro-stage {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--color-white, #fdfdfd);
}

@media (max-width: 991.98px) {
	.intro-stage {
		margin-bottom: 10vh;
	}
}

.intro-video {
	position: relative;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 1;
}

/* FLOATING TEXT */

/* INTRO VIDEO TEXT OVERLAY */

.intro-overlay-text {
	top: 2rem;
	z-index: 3;

	color: var(--Negro-texto, #27282b);
	font-family: "Optima Nova Light";
	font-size: 36px;
	font-weight: 400;
	line-height: 46px;
}

@media (max-width: 991.98px) {
	.intro-overlay-text {
		font-size: 24px;
		line-height: 32px;
	}
}

/* SHOWCASE – BASE */

.home-showcase {
	padding: 8rem 0;
}

.showcase-item {
	position: relative;
	margin-bottom: 10rem;
}

.showcase-link {
	display: block;
	text-decoration: none;
	color: inherit;
}

/* ALIGNMENTS */

.align-left .showcase-link {
	text-align: left;
}

.align-right .showcase-link {
	text-align: right;
}

.align-center .showcase-link {
	text-align: center;
}

/* SHOWCASE – TITLES (SCROLL COLOR) */

.showcase-title-wrap {
	position: relative;
	z-index: 10;
}

.showcase-title {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	pointer-events: none;

	font-family: "Optima Nova Light";
	font-size: 64px;
	font-weight: 400;
	line-height: normal;
	text-transform: uppercase;

	/* start black */
	color: var(--Negro-texto, #27282b);

	/* make the scroll color feel smooth */
	transition: color 0.08s linear;
}

/* SHOWCASE – MEDIA */

.showcase-media {
	position: relative;
	max-width: 50%;
}

.showcase-media-big {
	position: relative;
	max-width: 70%;
}

.showcase-title-wrap-50 {
	max-width: 50%;
}

@media (max-width: 991.98px) {
	.showcase-title-wrap-50 {
		max-width: 100%;
	}
}

.align-left .showcase-media {
	margin-left: 0;
}

.align-right .showcase-media {
	margin-left: auto;
}

.align-center .showcase-media {
	margin-left: auto;
	margin-right: auto;
}

.showcase-media img {
	width: 100%;
	display: block;
}

/* === FIXED ASPECT RATIOS FOR SHOWCASE ITEMS === */

.showcase-media.ratio-1-1 {
	aspect-ratio: 1 / 1;
}
.showcase-media.ratio-3-4 {
	aspect-ratio: 3 / 4;
}

.showcase-media.ratio-16-9 {
	aspect-ratio: 16 / 9;
}

.showcase-media video,
.showcase-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* DISCOVER LABEL */

.showcase-discover {
	position: absolute;
	bottom: 1.5rem;
	left: 50%;
	transform: translateX(-50%);

	color: var(--Crema, #fffffc);
	font-family: "Inter";
	font-size: 16px;
	font-weight: 400;
	line-height: normal;
	letter-spacing: 0.04em;

	padding: 0.25rem 0.75rem;
	border-bottom: 2px solid var(--Crema, #fffffc);
	text-transform: uppercase;
	pointer-events: none;
}

.showcase-media {
	z-index: 2;
	margin-top: -6rem;
}

/* SHOWCASE – FOOTER TEXT (STATIC) */

.showcase-footer {
	margin-top: 6rem;
	margin-bottom: 6rem;
	padding-bottom: 6rem;
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;

	color: var(--Negro-Pizarra, #191615);
	text-align: center;
	font-family: "Optima Nova Light";
	font-size: 48px;
	font-weight: 400;
	line-height: 110%;
}

/* SPECIALTY NOTES */

.home-specialty-notes {
	padding: 3rem 0;
}

.specialty-inner {
	max-width: 960px;
	margin: 0 auto;
	position: relative;
}

/* LINK */

.specialty-link {
	display: block;
	text-decoration: none;
	color: inherit;
}

/* TITLE – SAME BEHAVIOR AS SHOWCASE TITLES */

.home-specialty-notes .showcase-title-wrap {
	position: relative;
	z-index: 10;
}

/* identical mechanics to .showcase-title */
.specialty-title {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	pointer-events: none;

	font-family: "Optima Nova Light";
	font-size: 64px;
	font-weight: 400;
	line-height: normal;

	/* start black */
	color: var(--Negro-texto, #27282b);

	/* smooth scroll-driven color change */
	transition: color 0.08s linear;

	text-align: center;
	margin: 0;
}

/* IMAGE – ALIGNED RIGHT (DESKTOP) */

.specialty-image {
	position: relative;
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 4rem;
}

/* PLACEHOLDER */

.image-placeholder {
	width: 100%;
	aspect-ratio: 3 / 4;
	background: #ddd;
}

/* COPY – CENTERED */

.specialty-copy {
	max-width: 680px;
	margin-left: 0;
	margin-right: auto;
	text-align: center;

	color: var(--Negro-texto, #27282b);
	font-family: "Optima Nova Light";
	font-size: 35px;
	font-weight: 400;
	line-height: 46px;
}

.home-intro-overlay-text,
#home-intro-static-text {
	text-align: left;
	margin-right: 0;
}

.specialty-copy a {
	color: var(--Negro-texto, #27282b);
	/* H3 */
	font-family: "Optima Nova Light";
	font-size: 36px;
	font-style: normal;
	font-weight: 400;
	line-height: 46px; /* 127.778% */
	text-decoration-line: underline;
	text-decoration-style: solid;
	text-decoration-skip-ink: auto;
	text-decoration-thickness: auto;
	text-underline-offset: auto;
	text-underline-position: from-font;
}

/* MOBILE OVERRIDES */

@media (max-width: 991.98px) {
	.specialty-image {
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}
}

/* VIDEO – PLAY CURSOR */

.intro-video-wrapper {
	position: relative;
	cursor: none;
}

.intro-video-play-cursor {
	position: absolute;
	top: 0;
	left: 0;

	width: 64px;
	height: 64px;

	border-radius: 50%;
	background: rgba(0, 0, 0, 0.6);

	pointer-events: none;
	opacity: 0;
	transition: opacity 0.2s ease;
	z-index: 5;
}

.intro-video-play-cursor.is-visible {
	opacity: 1;
}

.intro-video-play-cursor::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-40%, -50%);
	border-style: solid;
	border-width: 10px 0 10px 16px;
	border-color: transparent transparent transparent #fff;
}

@media (hover: none) {
	.intro-video-play-cursor {
		display: none !important;
	}
}

/* VIDEO MODAL */

.video-modal {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.95);
	z-index: 99999;
	display: none;
	align-items: center;
	justify-content: center;
}

.video-modal.is-open {
	display: flex;
}

.video-modal-inner {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.video-modal video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: black;
	pointer-events: auto;
}

/* CLOSE */

.video-modal-close {
	position: absolute;
	top: 2rem;
	right: 2rem;
	z-index: 10;

	font-size: 3rem;
	background: none;
	border: none;
	color: #ffffff;
	mix-blend-mode: difference;
	cursor: pointer;
	line-height: 1;

	pointer-events: auto;
}

/* SHOWCASE – WORK LINK */

.showcase-work-link {
	margin-top: 4rem;
	text-align: center;
}

.showcase-work-link a {
	color: var(--Negro-Pizarra, #191615);
	font-family: "Inter";
	font-size: 16px;
	font-style: normal;
	font-weight: 300;
	line-height: 25px;
	text-decoration-line: underline;
	text-decoration-style: solid;
	text-decoration-skip-ink: auto;
	text-decoration-thickness: auto;
	text-underline-offset: auto;
	text-underline-position: from-font;
	text-transform: uppercase;
}

/* SHOWCASE – SPACING CONTROL */

/* extra breathing room between consecutive items */
.showcase-item.align-center {
	padding-top: 5rem;
}

/* MOBILE – FORCE FULL WIDTH IMAGES */

@media (max-width: 991.98px) {
	/* SHOWCASE IMAGES */
	.showcase-media {
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}

	/* SPECIALTY IMAGE */
	.specialty-image {
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}

	/* remove negative overlap on mobile */
	.showcase-media {
		margin-top: 0;
	}
}

/* SHOWCASE – FIRST ITEM TITLE OFFSET (RESPONSIVE) */

/* Desktop */
@media (min-width: 992px) {
	.home-showcase .showcase-item:first-of-type .showcase-title {
		padding-left: 4rem;
	}
}

/* Mobile */
@media (max-width: 991.98px) {
	.home-showcase .showcase-item:first-of-type .showcase-title {
		padding-left: 1rem;
	}
}

/* MOBILE TYPOGRAPHY – EXISTING CLASSES */

@media (max-width: 991.98px) {
	/* HERO */

	.home-intro-h1 {
		font-size: 2.5rem;
		line-height: normal;
	}

	.home-intro-sub {
		font-size: 1.5rem;
		line-height: 2rem;
	}

	/* FLOATING INTRO TEXT */

	.intro-float-text {
		font-size: 1.5rem;
		line-height: 2rem;
	}

	/* SHOWCASE TITLES */

	.showcase-title {
		font-size: 3rem;
		line-height: normal;
	}

	/* SPECIALTY NOTES TITLE */

	.specialty-title {
		font-size: 4rem;
		line-height: normal;
	}

	/* FOOTER STATEMENT */

	.showcase-footer {
		font-size: 3rem;
		line-height: 110%;
	}

	/* BODY / COPY */

	.specialty-copy {
		font-size: 2.25rem;
		line-height: 2.875rem;
	}

	/* UI / SMALL TEXT */

	.showcase-discover,
	.showcase-work-link a {
		font-size: 1rem;
		line-height: 1.5625rem;
	}
}

/* DAF FORMS – FULLSCREEN MODALS (NAMESPACED) Root scope: .daf-forms-modal */

.daf-forms-modal {
	background: white;
	font-family: "Inter";
}

/* ---------- Modal layout ---------- */

.daf-forms-modal .modal-dialog {
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	max-width: none;
}

.daf-forms-modal .modal-content {
	height: 100%;
	border: none;
	border-radius: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	background: white;
}

.daf-forms-modal .modal-body {
	width: 100%;
	height: 100%;
	padding: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	background: white;
}

/* ---------- Contact Form 7 inputs ---------- */

.daf-forms-modal input.wpcf7-form-control.wpcf7-text,
.daf-forms-modal textarea.wpcf7-form-control.wpcf7-textarea {
	appearance: none;
	outline: 0;
	font: inherit;
	font-family: "Inter";
	background-color: transparent;
	padding: 1rem 0;
	color: #000000;
	border-radius: 0;
	cursor: pointer;
	border: 1px solid #000000;
	border-top: 0;
	border-left: 0;
	border-right: 0;
	border-bottom-width: 0.1rem;
	width: 100%;
	font-size: 1.8125rem;
	line-height: 2.025rem;
	text-transform: uppercase;
}

.daf-forms-modal textarea.wpcf7-form-control.wpcf7-textarea {
	height: 8rem;
}

/* ---------- CF7 validation & responses ---------- */

.daf-forms-modal .wpcf7-not-valid-tip {
	display: none !important;
}

.daf-forms-modal .wpcf7-response-output {
	border-color: #000000;
	background-color: #ffffff;
	padding: 2rem 0.5rem;
	color: #000000;
	text-align: center;
	font-family: "Inter";
}

.daf-forms-modal .wpcf7 form.sent {
	background-color: white;
}

/* ---------- CF7 spinner ---------- */

.daf-forms-modal .wpcf7-spinner {
	visibility: hidden;
	background-color: #d1d1d1;
	opacity: 0.75;
	width: 24px;
	height: 24px;
	border-radius: 100%;
	display: block !important;
	margin: 1rem auto;
}

.daf-forms-modal form.submitting .wpcf7-spinner {
	visibility: visible;
}

/* ---------- Tabs / buttons (newsletter + contact) ---------- */

.daf-forms-modal .daf-form-tab-btn {
	margin: 0;
	padding: 1rem 2rem;
	background: transparent;
	color: #000000;
	font-family: "Inter";
	text-transform: uppercase;
	letter-spacing: 5px;
	border: 1px solid #000000;
	border-top: 0;
	border-left: 0;
	border-right: 0;
	width: 100%;
	cursor: pointer;
	transition: all 0.3s linear;
}

.daf-forms-modal .daf-form-tab-btn:hover {
	background: #000000;
	color: #ffffff;
}

.daf-forms-modal .daf-form-tab-btn.is-active {
	background: #000000;
	color: #ffffff;
}

/* ---------- Newsletter specific ---------- */

.daf-forms-modal .daf-newsletter-input {
	appearance: none;
	outline: 0;
	font: inherit;
	font-family: "Inter";
	background-color: transparent;
	padding: 0;
	color: #000000;
	border-radius: 0;
	border: 1px solid #000000;
	border-top: 0;
	border-left: 0;
	border-right: 0;
	border-bottom-width: 0.1rem;
	width: 85%;
	font-size: 1.8125rem;
	line-height: 4.025rem;
	text-transform: uppercase;
}

.daf-forms-modal .daf-newsletter .wpcf7-not-valid-tip {
	display: none !important;
}

.daf-forms-modal .daf-newsletter .wpcf7-response-output {
	margin-top: 1rem;
	border-color: #000000;
	color: #000000;
	background: transparent;
}

/* ---------- Disclaimers ---------- */

.daf-forms-modal .daf-form-disclaimer {
	color: #000000;
	font-family: "Inter";
	font-size: 0.75rem;
	line-height: normal;
	text-align: center;
}

/* ---------- Responsive ---------- */

@media (max-width: 800px) {
	.daf-forms-modal input.wpcf7-form-control.wpcf7-text,
	.daf-forms-modal textarea.wpcf7-form-control.wpcf7-textarea {
		font-size: 1.4rem;
		line-height: 1.6rem;
	}

	.daf-forms-modal .daf-form-tab-btn {
		margin: 1rem 0;
		padding: 0.5rem 2rem;
	}
}

/* ---------- MODAL INNER CENTERING ---------- */

.daf-forms-modal__inner {
	min-height: 100vh;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ---------- CF7 SUBMIT BUTTON ---------- */

.daf-forms-modal .wpcf7-submit {
	margin-top: 2rem;
	padding: 0.75rem 4rem;
	background: transparent;
	color: #000000;
	font-family: "Inter";
	text-transform: uppercase;
	letter-spacing: 4px;
	border: 1px solid #000000;
	border-top: none;
	border-left: none;
	border-right: none;
	cursor: pointer;
	transition: all 0.3s linear;
}

.daf-forms-modal .wpcf7-submit:hover {
	background: #000000;
	color: #ffffff;
}

.daf-forms-modal .wpcf7-submit:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* ---------- CLOSE BUTTON (INVERTED) ---------- */

.daf-forms-modal .btn-close {
	filter: invert(1);
	opacity: 1;
}

.daf-forms-modal .btn-close:hover {
	opacity: 0.6;
}

/* SHOWCASE MEDIA – TOP + BOTTOM GRADIENT OVERLAY */

.showcase-media {
	position: relative;
	overflow: hidden; /* ensures overlay stays clipped */
}

.showcase-media::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	pointer-events: none;

	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.1) 40%, rgba(0, 0, 0, 0) 65%), linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.1) 40%, rgba(0, 0, 0, 0) 65%);
}
.showcase-discover {
	z-index: 4;
}

/* INTRO STAGE */
.home-intro-stage-row {
	position: relative;
}

/* OVERLAY TEXT */

.home-intro-overlay-text-wrap {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 5;
	pointer-events: none;
	padding: 0;
}

/* Keep grid structure inside overlay */

.home-intro-overlay-text-wrap .row {
	margin-left: 0;
	margin-right: 0;
}

/* Video column transition */

.home-intro-video-col {
	transition: all 0.5s ease;
}

@media (max-width: 991.98px) {
	.home-intro-overlay-text-wrap {
		top: 45%;
		left: 45%;
		right: auto;
		transform: translate(-50%, -50%);
		width: 90%;
		text-align: center;
	}

	.home-intro-overlay-text-wrap .row {
		justify-content: center;
	}

	.home-intro-overlay-text-wrap .col-12,
	.home-intro-overlay-text-wrap .col-lg-4 {
		max-width: 100%;
		flex: 0 0 100%;
		text-align: center;
	}
}

@media (max-width: 991.98px) {
	.home-intro-overlay-text-wrap .specialty-copy {
		font-size: 2rem;
		line-height: 2rem;
	}
}
