/* Naica-specific accessibility and stability layer. */

.visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

img,
video {
	max-width: 100%;
	height: auto;
}

/* Keep logos and decorative words proportional when their height is constrained. */
.tt-logo img {
	width: auto;
	height: auto;
	object-fit: contain;
}

.txtprez img {
	width: auto;
	max-width: 100%;
	object-fit: contain;
}

/* Heading emphasis keeps the display typeface without browser italics. */
h1 em,
h2 em,
h3 em,
h4 em,
h5 em,
h6 em {
	font-style: normal;
}

/* Leave room for the lower parts of large letters. */
.ph-caption-title {
	line-height: 1.08;
	padding-bottom: 0.08em;
	overflow: visible;
}

/* Align blog titles with the location/date/author information. */
#page-header.project-info-list-on .ph-caption {
	margin-left: 10%;
}

#page-header.project-info-list-on .ph-category {
	margin-left: 0;
}

/* Keep every zooming image clipped to the same rounded shape. */
.pgi-image-wrap,
.pgi-image-holder,
.pgi-image-inner,
.pgi-image,
.tt-gallery-item,
.tt-gallery .tt-gallery-item-inner,
.tt-gallery-image-wrap,
.tt-gallery-image {
	border-radius: 20px;
	overflow: hidden;
}

.pgi-title {
	line-height: 1.2;
	padding-bottom: 0.14em;
	overflow: visible;
}

.portfolio-grid.pgi-cap-inside .portfolio-grid-item {
	position: relative;
	overflow: visible;
	isolation: isolate;
}

.portfolio-grid.pgi-cap-inside .pgi-image-wrap {
	position: relative;
	z-index: 1;
}

.portfolio-grid.pgi-cap-inside .pgi-caption {
	z-index: 5;
	overflow: visible;
}

.portfolio-grid.pgi-cap-inside .pgi-caption-inner {
	overflow: visible;
}

.portfolio-grid.pgi-cap-inside .pgi-categories-wrap {
	overflow: visible;
}

@media (min-width: 768px) {
	.portfolio-grid.pgi-hover [class*="ttgr-gap-"]:not(.ttgr-gap-1) .pgi-image-holder {
		clip-path: inset(0 round 20px);
	}

	.portfolio-grid.pgi-hover [class*="ttgr-gap-"]:not(.ttgr-gap-1) .pgi-image-wrap:hover .pgi-image-holder {
		clip-path: inset(3% round 20px);
	}

	.tt-gallery.ttga-hover [class*="ttgr-gap-"]:not(.ttgr-gap-1) .tt-gallery-item-inner {
		clip-path: inset(0 round 20px);
	}

	.tt-gallery.ttga-hover [class*="ttgr-gap-"]:not(.ttgr-gap-1) .tt-gallery-item:hover .tt-gallery-item-inner {
		clip-path: inset(3% round 20px);
	}

	.home-page .portfolio-grid .pgi-image {
		transition: transform 0.9s cubic-bezier(0.165, 0.84, 0.44, 1);
	}

	.home-page .portfolio-grid .pgi-image-wrap:hover .pgi-image {
		transform: scale(1.05);
	}
}

.home-page .hijoannie {
	top: 245px;
}

.home-intro-section {
	padding-bottom: 320px;
}

.home-intro-signature {
	margin: 0;
	color: #fff;
}

.portfolio-interactive .pi-item-title {
	line-height: 1.12;
	padding-bottom: 0.12em;
	overflow: visible;
}

.form-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.contact-form-status {
	min-height: 1.5em;
	margin-top: 20px;
	color: #fff;
}

.contact-form-status.is-error {
	color: #ffb4b4;
}

.cercle .st0 {
	fill: none;
	stroke: #1a44c0;
	stroke-width: 0.9;
	stroke-linecap: round;
	stroke-miterlimit: 10;
	-webkit-animation: none;
	animation: none;
}

body.is-page-loaded .cercle .st0 {
	-webkit-animation: dash 3s linear forwards;
	animation: dash 3s linear forwards;
}

:focus-visible {
	outline: 3px solid #0040ff;
	outline-offset: 4px;
}

@media (max-width: 767px) {
	.txtprez {
		box-sizing: border-box;
		width: 100%;
		padding-right: 32px;
		padding-left: 32px;
	}

	.home-page .hijoannie {
		top: 45px;
	}

	.home-page .scroll-down-circle svg {
		-webkit-animation: sdc-rotation 8s infinite linear;
		animation: sdc-rotation 8s infinite linear;
		transform-box: fill-box;
		transform-origin: 50% 50%;
		will-change: transform;
	}

	.home-intro-section {
		padding-bottom: 300px;
	}

	.home-intro-signature {
		display: none;
	}

	.portfolio-grid.pgi-cap-inside .pgi-caption {
		display: block;
		top: 16px;
		right: auto;
		bottom: auto;
		left: 0;
		padding-right: 8%;
		padding-left: 18px;
	}

	.portfolio-grid.pgi-cap-inside .pgi-title {
		position: relative;
		left: -28px;
		margin-left: 0;
	}

	.portfolio-grid.pgi-cap-inside .pgi-categories-wrap {
		display: block;
	}

	.seo-text {
		box-sizing: border-box;
		width: 100%;
		margin: 60px 0 0;
		padding-right: 20px;
		padding-left: 20px;
	}

	#page-header.project-info-list-on .ph-caption {
		box-sizing: border-box;
		width: 90%;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto !important;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	#magic-cursor,
	#page-transition {
		display: none !important;
	}

	.home-page .scroll-down-circle svg {
		-webkit-animation: sdc-rotation 8s infinite linear !important;
		animation: sdc-rotation 8s infinite linear !important;
	}
}
