/*!
Theme Name: RTF VISION THEME
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: rtfvision-theme
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

rtfvision-theme is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*
  Josh's Custom CSS Reset
  https://www.joshwcomeau.com/css/custom-css-reset/
*/

:root {
	--font-inter: 'Inter', sans-serif;
	--font-syne: 'Syne', sans-serif;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

* {
	margin: 0;
}

html {
	font-size: 62.5%;
}

html,
body {
	height: 100%;
}

body {
	font-size: 1.6rem;
	line-height: 2.2rem;
	color: white;
	font-family: var(--font-inter);
	font-optical-sizing: auto;
	font-weight: 300;
	font-style: normal;
	background-color: black;
	-webkit-font-smoothing: antialiased;
}

/* img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
} */

input,
button,
textarea,
select {
	font: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-syne);
	font-optical-sizing: auto;
	font-weight: 700;
	font-style: normal;
	overflow-wrap: break-word;
}

h1 {
	font-size: 7.2rem;
	line-height: 7.2rem;
}

@media only screen and (max-width: 900px) {
	h1 {
		font-size: 6.2rem;
		line-height: 6.2rem;
	}
}

@media only screen and (max-width: 600px) {
	h1 {
		font-size: 4.2rem;
		line-height: 4.2rem;
	}
}

h2 {
	font-size: 5.2rem;
	line-height: 5.2rem;
}

@media only screen and (max-width: 600px) {
	h2 {
		font-size: 4.2rem;
		line-height: 4.2rem;
	}
}

h3 {
	font-size: 2rem;
	margin-bottom: 1rem;
}

#root,
#app {
	isolation: isolate;
}

.btn-rtf {
	display: inline-block;
	padding: 1rem 1.6rem;
	color: #fff;
	border: 1px solid white;
	text-decoration: none;
	border-radius: 50px;
	transition: background-color 0.3s;
}

.btn-rtf:hover {
	background-color: #333;
}

/*------------------------------------*/
/*--- HEADER ---*/
/*------------------------------------*/


.site-header {
	padding: 3rem 6rem;
}

@media only screen and (max-width: 900px) {
	.site-header {
		padding: 3rem;
	}
}

@media only screen and (max-width: 600px) {
	.site-header {
		padding: 3rem 2rem;
	}
}

.header-container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0 auto;
	gap: 1rem;
}

.site-branding {
	flex: 1;
}

.main-navigation {
	flex: 2;
	text-align: center;
}

.main-navigation ul {
	display: flex;
	justify-content: center;
	gap: 4rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.main-navigation ul li a {
	text-transform: uppercase;
	color: white;
	text-decoration: none;
}

.header-contact {
	flex: 1;
	text-align: right;
}

/*------------------------------------*/
/*--- MAIN ---*/
/*------------------------------------*/

.site-main {
	padding: 3rem 6rem;
}

@media only screen and (max-width: 900px) {
	.site-main {
		padding: 3rem;
	}
}

@media only screen and (max-width: 600px) {
	.site-header {
		padding: 3rem 2rem;
	}
}

.hero {
	margin-top: 21rem;
	text-align: center;
}

.slogan {
	max-width: 114rem;
	margin: auto;
}

.reveal-text .line {
	overflow: hidden;
	display: block;
}

.reveal-text .line>* {
	display: inline-block;
	will-change: transform, opacity;
}

.p-intro {
	margin: 5rem 0;
}

.p-intro p,
.hero .btn-rtf {
	opacity: 0;
	transform: translateY(20px);
}

.video {
	position: relative;
	height: calc(100vh - 12rem);
	width: 100%;
	margin-top: 10rem;
	overflow: hidden;
}

.video__frame {
	position: absolute;
	top: 0;
	left: 50%;
	width: 1140px;
	height: calc(100vh - 12rem);
	transform: translate(-50%, 0);
	will-change: width, height, transform;
}

.video__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* .js .video__frame {
	opacity: 0;
	transform: translateY(24px);
} */

.services,
.portfolio,
.contact {
	margin-top: 16rem;
	text-align: center;
}

.portfolio,
.about,
.contact {
	padding: 0 7.4rem;
}

@media only screen and (max-width: 1080px) {

	.portfolio,
	.about,
	.contact {
		padding: 0;
	}
}

.services span,
.portfolio span,
.about span,
.contact span {
	display: block;
	text-transform: uppercase;
	margin-bottom: 2rem;
}

.services h2,
.services h2,
.contact h2 {
	max-width: 96rem;
	margin: auto;
}

.p-classic {
	margin: 3rem 0;
}

.p-classic p {
	display: block;
	margin-block-start: 1em;
	margin-block-end: 1em;
	margin-inline-start: 0px;
	margin-inline-end: 0px;
	unicode-bidi: isolate;
}

.services-wrapper {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 2rem;
	padding: 4rem 2rem;
	max-width: 149.6rem;
	margin: 0 auto;
}

@media only screen and (max-width: 1080px) {
	.services-wrapper {
		padding: 4rem 0rem;
	}
}

@media only screen and (max-width: 600px) {
	.services-wrapper {
		grid-template-columns: 1fr;
		padding: 4rem 0rem;
	}
}

.service-block {
	text-align: left;
	padding: 2rem;
	background-color: #1F2937;
	border-radius: 16px;
}

.service-icon {
	margin-bottom: 1.5rem;
}

.services .line {
	display: block;
	overflow: hidden;
}

.services .service-block {
	will-change: transform, opacity;
}

.contact_infos,
.socials {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 2.4rem;
	margin: 5.2rem 0 3.4rem;
}

.portfolio-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 2rem;
	margin-top: 6rem;
}

/* Carte */
.portfolio-item {
	position: relative;
}

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

.pi__frame {
	position: relative;
	overflow: hidden;
}

.pi__img {
	display: block;
	width: 110%;
	height: 110%;
	object-fit: cover;
	transform: translateY(0);
	will-change: transform;
}

.portfolio-title {
	margin-top: 2.4rem;
}

.portfolio .line {
	display: block;
	overflow: hidden;
}

.portfolio .portfolio-item {
	will-change: transform, opacity;
}

/* 
.portfolio-category {
	font-size: 1.4rem;
	color: #666;
	margin-top: 0.25rem;
} */

.contact .line {
	display: block;
	overflow: hidden;
}

.contact .btn-rtf,
.contact .socials a {
	will-change: transform, opacity;
}

.contact .contact_infos {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
}

.contact .socials {
	display: flex;
	gap: 1.2rem;
	align-items: center;
	margin-top: 1.2rem;
}

.about {
	display: flex;
	gap: 4rem;
	margin: 21rem 0;
}

@media only screen and (max-width: 1080px) {
	.about {
		flex-direction: column;
		text-align: center;
	}
}

.about-title,
.about-vision {
	width: 40%;
}

.about-competences {
	width: 20%;
}

@media only screen and (max-width: 1080px) {

	.about-title,
	.about-vision,
	.about-competences {
		width: 100%;
	}
}

/* .about-title {
	max-width: 58.5rem;
} */

/*------------------------------------*/
/*--- FOOTER ---*/
/*------------------------------------*/

.site-footer {
	margin: 18rem 6rem;
	font-size: 1.4rem;
	color: rgba(255, 255, 255, 0.5);
	border-top: 1px solid rgba(255, 255, 255, 0.3);
}

.footer-container {
	padding: 3rem 0rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
	margin: 0 auto;
}

.footer-left,
.footer-right {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.footer-right a {
	color: rgba(255, 255, 255, 0.5);
	text-decoration: none;
}