@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Poppins:wght@100;200;300;400;600;700;800;900&display=swap');

/* ############# */
/* global */
/* ############# */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: 'Poppins', sans-serif;
    text-decoration: none;
    outline: none;
    border: none;
    scroll-behavior: smooth;
}

:root {
    --violet: #552be4;
    --fonce-violet: #6a3abb;
    --ligth: #f9fbfd;
    --gris: #aaaaaa;
    --dark: #070707;
}

.body {
    color: var(--dark);
    height: 150dvh;
    background: linear-gradient(-20deg, var(--fonce-violet), var(--violet), var(--violet), var(--dark));
}

.body-p {
    background-color: var(--ligth);
}

img {
    height: 100%;
}

.strong {
    font-size: clamp(1.2rem, 1.3vw, 1.7rem);
    color: var(--dark);
    font-weight: 600;
}

.bouton-txt {
    font-size: clamp(1rem, 1.1vw, 1.5rem);
    font-weight: 800;
}

.tout-petit-txt {
    font-size: clamp(1rem, 1.1vw, 1.5rem);
    font-weight: 300;
}

.petit-txt {
    font-size: clamp(1rem, 1.1vw, 1.5rem);
    font-weight: 300;
}

.paragraphe {
    font-size: clamp(1.2rem, 1.3vw, 1.7rem);
    font-weight: 400;
    color: var(--gris);
}

.sous-titre {
    font-size: clamp(1.8rem, 2.5vw, 2.5rem);
    font-weight: 300;
}

.logo-JV {
    font-size: clamp(1.8rem, 2.5vw, 2.5rem);
    font-weight: 600;
}

.titre {
    font-family: 'Poppins', sans-serif;
    font-size: clamp(2.5rem, 5vw, 5rem);
    font-weight: 800;
    text-shadow: 0em 0em .2em rgba(0, 0, 0, 0.2);
}

.uppercase {
    text-transform: uppercase;
}

.underline {
    text-decoration: underline;
}

.underline-violet {
    text-decoration: underline;
    text-decoration-color: var(--violet);
}

.italic {
    font-style: italic;
}

.center {
    text-align: center;
}

.violet {
    color: var(--violet);
}

.fonce {
    color: var(--fonce-violet);
}

.blanc {
    color: var(--ligth);
}

.gris {
    color: var(--gris);
}

.dark {
    color: var(--dark);
}

.vert {
    color: #418A2F;
}

.vert-fonce {
    color: #16330F;
}

.tiret {
    display: flex;
    align-items: start;
}

li .paragraphe {
    color: var(--dark);
    display: flex;
    align-items: center;
    gap: .4rem;
}

ul {
    list-style: none;
}

.btn-c {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ligth);
    position: relative;
    overflow: hidden;
    width: min-content;
    white-space: nowrap;
    height: clamp(2.4rem, 3.5vw, 4rem);
    padding: 0 clamp(1rem, 1.5vw, 2rem);
    border-radius: clamp(.65rem, 1vw, 1.5rem);
    background-image: linear-gradient(to right, var(--violet), var(--fonce-violet));
    border: solid max(.05vw, .05rem);
    scale: 1;
    box-shadow: 0 0 2em rgba(85, 43, 228, 0.2);
    transition: scale .3s ease, box-shadow .3s ease .2s;
}

.btn-c:hover {
    scale: 0.95;
    box-shadow: 0 0 2em rgba(85, 43, 228, 0.7);
}

.btn-c p {
    opacity: 0;
}

.btn-c::before {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    font-size: clamp(1rem, 1.1vw, 1.5rem);
    font-weight: 800;
    transition: top .3s ease-in-out;
}

nav .btn-c::before,.solutions .btn-c::before{
    content: "Réservez votre RDV";
}
.hero .width .btn-c::before{
    content: "Voir l'offre";
}
.hero .width-p .btn-c::before{
    content: "Commencer l'expérience";
}

.portfolio .btn-c::before{
    content: "C'est par ici !";
}
#formule .btn-c::before{
    content: "Prendre RDV";
}
.processus .btn-c::before{
    content: "Réservez votre Appel Gratuit";
}
footer .width-f .btn-c::before{
    content: "Retour à l'accueil";
}
#jvcreation .btn-c::before{
    content: "Acheter un site";
}

nav .btn-c::after,.solutions .btn-c::after{
    content: "Réservez votre RDV";
}
.hero .width .btn-c::after{
    content: "Voir l'offre";
}
.hero .width-p .btn-c::after{
    content: "Commencer l'expérience";
}
.portfolio .btn-c::after{
    content: "C'est par ici !";
}
#formule .btn-c::after{
    content: "Prendre RDV";
}
.processus .btn-c::after{
    content: "Réservez votre Appel Gratuit";
}
footer .width-f .btn-c::after{
    content: "Retour à l'accueil";
}
#jvcreation .btn-c::after{
    content: "Acheter un site";
}
.btn-c:hover::before {
    top: -150%;
}

.btn-c::after {
    position: absolute;
    top: 150%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    font-size: clamp(1rem, 1.1vw, 1.5rem);
    font-weight: 800;
    color: var(--ligth);
    transition: top .3s ease-in-out;
}

.btn-c:hover::after {
    top: 50%;
}

.btn {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.card {
    border-radius: clamp(.65rem, 1vw, 1.5rem);
    padding: .9rem;
    border: solid max(.05vw, .05rem);
    border-color: transparent;
}

.card> :first-child {
    border-radius: clamp(.5rem, .8vw, .85rem);
}

.sticker {
    padding: .5rem 1rem;
    border-radius: 10rem;
    border: solid max(.05vw, .05rem);
    width: min-content;
}

.sticker p {
    white-space: nowrap;
}

.portfolio .card img,
.presentation img,
#velos .index-1 .card img,
#velos .index-2 img,
#velos .index-3 img,
#karting img,
#jvcreation img,
#justcook img {
    height: 100%;
    width: 100%;
    border-radius: clamp(.5rem, .8vw, .85rem);
    object-fit: cover;
}

.width {
    max-width: 1900px;
    padding: 5rem min(5vw, 6rem);
    width: 100%;
}

.width-p {
    max-width: 1900px;
    padding: 5rem min(5vw, 6rem);
    width: 100%;
}

.width-f {
    max-width: 1900px;
    padding: 5rem 0;
    width: 100%;
}
.header,
nav,
.hero,
.social-proof,
.portfolio,
.problemes,
.solutions,
#formule,
.processus,
footer,
.presentation,
#velos,
#karting,
#jvcreation,
#justcook {
    display: flex;
    justify-content: center;
}

.social-proof .width,
.social-proof .box-parent,
.problemes .box-parent,
#formule .gauche,
.processus .box,
.processus .box .header,
#velos .header {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero .width,
.portfolio .width,
.problemes .width,
.solutions .width,
#formule .width,
.processus .width,
.hero .width-p,
.presentation .width-p,
#velos .width-p,
#velos .box-parent,
#karting .width-p,
#jvcreation .width-p,
#jvcreation .width-p> :first-child,
#justcook .width-p,
#justcook .width-p> :first-child {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3rem;
}

.portfolio .box-parent,
#formule .box-parent,
#velos .index-1,
.karting-header,
#jvcreation .box-parent,
#justcook .box-parent {
    display: flex;
    align-items: stretch;
    justify-content: space-evenly;
    flex-wrap: wrap;
    gap: 1.5rem;
}

.fade-up-scroll {
    animation: fade-up linear;
    animation-timeline: view();
    animation-range: cover contain 50%;
}

@keyframes fade-up {
    from {
        transform: translateY(30%);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes fade-down {
    from {
        transform: translateY(-30%);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* ############# */
/* nav */
/* ############# */
nav .width {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 3rem min(5vw, 6rem) 1rem;
}

nav .box-parent {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
}

@media (max-width: 429px) {
    nav .btn-c {
        display: none;
    }
}

nav h2 {
    line-height: 1.2;
}

/* ############# */
/* hero */
/* ############# */
.hero .width {
    padding: 3rem min(5vw, 6rem) 1rem;
}

.hero h3 {
    opacity: 0;
    animation: fade-down .5s ease 1.5s forwards;
}

h1 {
    opacity: 0;
    animation: fade-up .5s ease .5s forwards;
}

/* ############# */
/* social-proof */
/* ############# */
.social-proof .width {
    flex-direction: column;
    padding-left: 0;
    padding-right: 0;
}

.slider {
    gap: 1.5rem;
    overflow: hidden;
    display: flex;
    justify-content: space-between;
    flex-wrap: nowrap;
    width: 100%;
}

.slider-haut .box-parent {
    display: inline-block;
    display: flex;
    gap: 1.5rem;
    animation: 33s slideright infinite linear;
}

.slider-bas .box-parent {
    display: inline-block;
    display: flex;
    gap: 1.5rem;
    animation: 33s slideleft infinite linear;
}

.social-proof .box-parent {
    gap: 1.5rem;
}

.social-proof img {
    height: 10rem;
    border-radius: clamp(.65rem, 1vw, 1.5rem);
    box-shadow: 0 0 1em rgba(0, 0, 0, 0.2);
    background-color: var(--dark);
    transition: scale .3s ease;
}

.social-proof img:hover {
    scale: 0.95;
    box-shadow: 0 0 1em rgba(255, 255, 255, 0.4);
}

@keyframes slideright {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-100%);
    }
}

@keyframes slideleft {
    from {
        transform: translateX(-100%);
    }

    to {
        transform: translateX(0);
    }
}

.social-proof .btn-c {
    border-color: var(--ligth);
}

.social-proof .btn-c:hover {
    border-color: var(--dark);
}


/* ############# */
/* portfolio */
/* ############# */

.portfolio {
    background-color: var(--ligth);
}

.portfolio .pp {
    height: clamp(7rem, 5vw, 15rem);
    border-radius: 50%;
    width: min-content;
    margin-left: 5rem;
}
@media (max-width: 997px) {
    .portfolio .pp {
        margin-left: 0;
    }
}
.portfolio .box-parent {
    width: 100%;
}

.portfolio .box-parent> :first-child {
    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: center;
    gap: 3rem;
    width: max(60%, 335px);
}

.portfolio .card {
    width: max(30%, 335px);
    aspect-ratio: 5 / 8;
    height: min-content;
    background-color: rgba(86, 43, 228, 0.05);
    border-color: rgba(86, 43, 228, 0.2);
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
}

.portfolio .card div {
    position: relative;
    overflow: hidden;
}

.portfolio .card> :first-child {
    background-image: url(img/justcook-branding2.png);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.portfolio .card> :first-child::before {
    position: absolute;
    z-index: 100;
    content: "";
    height: 100%;
    width: 100%;
    background-color: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(10px);
}

.portfolio .box-parent-card {
    position: absolute;
    z-index: 1000;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.portfolio .box-parent-card .btn{
    padding: 3rem;
}

/* ############# */
/* solutions */
/* ############# */
.solutions {
    background-color: var(--ligth);
    position: relative;
}

.solutions .box-parent {
    display: flex;
    align-items: start;
    justify-content: space-evenly;
    flex-wrap: wrap;
    gap: 1.5rem;
    width: 100%;
    margin-top: 50vh;
}

.solutions .box {
    width: max(330px, 30%);
    display: flex;
    align-items: center;
    justify-content: start;
    flex-direction: column;
    height: min(300vh, 225rem);
}

.solutions .box1 {
    gap: min(210vh, 157.5rem);
}

.solutions .box2 {
    margin-top: min(70vh, 52.5rem);
    gap: min(140vh, 105rem);
}

.solutions .box3 {
    margin-top: min(140vh, 105rem);
    gap: min(70vh, 52.5rem);
}

.solutions h3 {
    position: sticky;
    top: min(40%, 30rem);
}

.solutions .content {
    border-radius: clamp(.65rem, 1vw, 1.5rem);
    padding: 1.5rem;
    background-color: var(--ligth);
    box-shadow: 0 0 2em rgba(85, 43, 228, .1);
    position: sticky;
    top: min(50%, 35rem);
}

/* ############# */
/* formule */
/* ############# */
#formule {
    background: linear-gradient(135deg, var(--fonce-violet), var(--violet), var(--dark));
}

#formule .gauche {
    flex-direction: column;
    width: max(330px, 40%);
}

#formule .box {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    width: max(340px, 35%);
    border-radius: clamp(.975rem, 1.5vw, 4.5rem);
    padding: 1.5rem;
    background-color: var(--ligth);
    box-shadow: 0 0 4em rgba(85, 43, 228, .7);
}

#formule .box .description {
    font-size: clamp(1.2rem, 1.3vw, 1.7rem);
    font-weight: 400;
    color: var(--dark);
}

#formule .btn-c {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

#formule .btn-c:hover {
    scale: 1;
}

@media (max-width: 800px) {
    #formule .box {
        animation: fade-up linear;
        animation-timeline: view();
        animation-range: cover contain 50%;
    }
}

@media (min-width: 801px) {
    .left {
        animation: left linear;
        animation-timeline: view();
        animation-range: cover contain 50%;
    }
}

@keyframes left {
    from {
        transform: translateX(30%);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* ############# */
/* processus */
/* ############# */
.processus {
    background-color: var(--ligth);
}

.processus .box-parent {
    display: flex;
    align-items: start;
    justify-content: space-between;
    width: 100%;
    padding: 20vh 0;
}

.count,
.processus .vide {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    height: min(400vh, 300rem);
    padding: 0 0 50vh 0;
    width: 10%;
}

.count div {
    width: 1rem;
    height: 5rem;
    position: sticky;
    top: 5%;
}

.processus .content {
    width: max(340px, 40%);
    height: min(25vh, 16rem);
    perspective: 1000px;
    position: sticky;
    top: 40%;
}

.molette {
    width: 100%;
    height: 100%;
    position: relative;
    transform-style: preserve-3d;
    transition: transform 0.5s ease;
}

.molette.deux-box {
    transform: rotateX(120deg);
}

.molette.trois-box {
    transform: rotateX(240deg);
}

.processus .box {
    position: absolute;
    flex-direction: column;
    width: 100%;
    border-radius: clamp(.65rem, 1vw, 1.5rem);
    padding: 1.5rem;
    background-color: var(--violet);
    box-shadow: 0 0 2em rgba(0, 0, 0, 0.3);
}

.process-box1 {
    transform: rotateX(0deg) translateZ(10rem);
}

.process-box2 {
    transform: rotateX(-120deg) translateZ(10rem);
}

.process-box3 {
    transform: rotateX(-240deg) translateZ(10rem);
}

.processus .box .header {
    gap: 1.5rem;
}

/* ############# */
/* footer */
/* ############# */
footer {
    background: var(--dark);
}

.slider {
    position: relative;
    overflow: hidden;
    display: flex;
    justify-content: space-between;
    flex-wrap: nowrap;
    width: 100%;
    gap: 1.5rem;
    padding: 1.5rem;
}

.ombre1,
.ombre2 {
    position: absolute;
    height: 80%;
    width: 10rem;
    z-index: 200;
}

.ombre1 {
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: linear-gradient(to right, var(--dark), rgba(7, 7, 7, 0.9), rgba(7, 7, 7, 0.3), rgba(7, 7, 7, 0.05));
}

.ombre2 {
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    background: linear-gradient(to left, var(--dark), rgba(7, 7, 7, 0.9), rgba(7, 7, 7, 0.3), rgba(7, 7, 7, 0.05));
}

.slider .box {
    position: relative;
    display: inline-block;
    white-space: nowrap;
    display: flex;
    gap: 1.5rem;
    animation: 33s slideright infinite linear;
    z-index: 1;
}

footer .box-parent {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 min(5vw, 6rem);
}

@keyframes slideright {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-100%);
    }
}

/*infos légales*/

.mentions-legales {
    background-color: var(--ligth);
    border-radius: 3rem 3rem 0 0;
}

.mentions-legales .width {
    display: flex;
    justify-content: center;
    flex-direction: column;
    gap: 3rem;
}

/* Portfolio */
/* Portfolio */
/* Portfolio */
/* Portfolio */
/* Portfolio */
/* Portfolio */
/* Portfolio */
/* Portfolio */
/* Portfolio */
/* Portfolio */
/* Portfolio */
/* Portfolio */
/* Portfolio */
/* Portfolio */

/* hero  */
/* hero  */
/* hero  */
.hero .width-p {
    padding: 0;
}

.hero .pp {
    width: 90%;
    display: flex;
    align-items: end;
    justify-content: space-between;
}

.hero .pp img:nth-child(1) {
    opacity: 0;
}

.hero img {
    height: clamp(7rem, 5vw, 15rem);
    border-radius: 50%;
    margin-right: 5rem;
}
@media (max-width: 997px) {
    .hero img {
        margin-right: 0;
    }
}
@media (max-width: 500px) {
    .pp p {
        opacity: 0;
    }

    .h1-voyage h1> :last-child {
        display: none;
    }
}

.h1-voyage {
    width: max(80%, 335px);
    display: flex;
    justify-content: start;
}

/* presentation */
/* presentation */
/* presentation */

.presentation .width-p {
    margin-bottom: 100vh;
}

.presentation .frise {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

@media (max-width: 900px) {
    .presentation .frise {
        display: none;
    }
}

.frise a {
    position: relative;
}

.frise a:hover::before,
.frise a:hover::after {
    width: 50%;
}

.frise a::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0%;
    height: 2px;
    background-color: var(--violet);
    transition: width .2s ease-out;
}

.frise a::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 50%;
    width: 0%;
    height: 2px;
    background-color: var(--violet);
    transition: width .2s ease-out;
}

.card-box-parent {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1.5rem;
    width: 100%;
}

.card-box-parent::before {
    position: absolute;
    content: "";
    height: 90%;
    width: 90%;
    border-radius: 50%;
    filter: blur(50px);
    background: radial-gradient(circle,
            rgba(85, 43, 228, 0.7) 0%,
            /* Centre bien visible */
            rgba(85, 43, 228, 0.45) 40%,
            /* Transition douce */
            rgba(85, 43, 228, 0.2) 70%,
            /* Très faible opacité */
            rgba(85, 43, 228, 0) 100%
            /* Disparition totale */
        );
}

.card-box-parent .card {
    position: relative;
    width: max(45%, 335px);
    aspect-ratio: 8 / 5;
    background-color: rgba(86, 43, 228, 0.05);
    border-color: rgba(86, 43, 228, 0.2);
}

.presentation #index-1 {
    height: 100%;
    width: 100%;
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    grid-template-rows: 1fr;
    gap: .9rem;
}

.presentation #index-1 .colonne1 {
    overflow: hidden;
    display: grid;
    grid-template-rows: 1fr;
    gap: .9rem;
}

.presentation #index-1 .colonne2 {
    overflow: hidden;
    display: grid;
    grid-template-rows: 1fr 2fr;
    gap: .9rem;
}

.presentation #index-1 .colonne1 div,
.presentation #index-1 .colonne2 div {
    overflow: hidden;
}

.presentation #index-2 {
    height: 100%;
    width: 100%;
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-template-rows: 1fr;
    gap: .9rem;
}

.presentation #index-2 .colonne1 {
    overflow: hidden;
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: .9rem;
}

.presentation #index-2 .colonne2 {
    overflow: hidden;
    display: grid;
    grid-template-rows: 1fr 2fr;
    gap: .9rem;
}

.presentation #index-2 .colonne1 div,
.presentation #index-2 .colonne2 div {
    overflow: hidden;
}

.presentation #index-3 {
    height: 100%;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    overflow: hidden;
}

.presentation #index-4 {
    height: 100%;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    gap: .9rem;
}

.presentation #index-4 .colonne1 {
    overflow: hidden;
    display: grid;
    grid-template-rows: 1fr 1.5fr;
    gap: .9rem;
}

.presentation #index-4 .colonne2 {
    overflow: hidden;
    display: grid;
    grid-template-rows: 1fr;
}

.presentation #index-4 .colonne1 div,
.presentation #index-4 .colonne2 div {
    overflow: hidden;
}

/* velos */
/* velos */
/* velos */
#velos {
    background: linear-gradient(-20deg, var(--ligth), var(--ligth), #fcf64c, var(--ligth), var(--ligth), var(--ligth));
}

#velos .width-p {
    position: relative;
}

#velos * {
    position: relative;
}

#velos .width-p::before {
    position: absolute;
    content: "";
    width: 80%;
    aspect-ratio: 1/1;
    top: -5%;
    left: -40%;
    border-radius: 50%;
    filter: blur(50px);
    background: radial-gradient(circle,
            rgba(252, 246, 76, 1) 0%,
            /* Centre bien visible */
            rgba(252, 246, 76, 0.6) 40%,
            /* Transition douce */
            rgba(252, 246, 76, 0.2) 70%,
            /* Très faible opacité */
            rgba(252, 246, 76, 0) 100%
            /* Disparition totale */
        );
}

#velos .sticker {
    background-image: linear-gradient(to right, var(--ligth), #fcf64cb6, var(--ligth));
    border-color: var(--gris);
}

#velos .sticker p {
    color: var(--dark);
}

#velos .width-p {
    margin-bottom: 100vh;
}

#velos .header {
    width: 100%;
}

#velos .header div:nth-child(1) {
    width: max(75%, 335px);
}

#velos .header div:nth-child(2) {
    width: 25%;
}

#velos .box-parent {
    width: 100%;
}

#velos .index-1 .card,
#velos .index-2 .card {
    width: max(30%, 335px);
    aspect-ratio: 5 / 8;
    height: min-content;
    background-color: rgba(249, 251, 253, 0.5);
    border-color: rgba(177, 177, 177, 0.4);
}

#velos .index-1 .box-right,
#velos .index-2 .box-left {
    display: flex;
    flex-direction: column;
    align-items: end;
    justify-content: space-around;
    width: max(60%, 330px);
    padding: 10% 0;
}

#velos .index-1 .card div {
    height: 100%;
    width: 100%;
}

#velos .index-1,
#velos .index-2 {
    width: 100%;
}

#velos .index-1 .box-right img {
    transform: translateX(-100%);
    height: clamp(10.5rem, 7.5vw, 22.5rem);
    border-radius: 50%;
}

@media (max-width: 1300px) {
    #velos .index-1 .box-right img {
        display: none;
    }
}

#velos .index-2 {
    display: flex;
    align-items: stretch;
    justify-content: space-evenly;
    flex-wrap: wrap-reverse;
    gap: 1.5rem;
}

#velos .index-2 .card {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 2fr;
    gap: .9rem;
}

#velos .index-2 .card div {
    overflow: hidden;
}

#velos .index-3 {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

#velos .index-3 .card {
    width: max(65%, 335px);
    aspect-ratio: 8 / 5;
    height: min-content;
    background-color: rgba(249, 251, 253, 0.5);
    border-color: rgba(177, 177, 177, 0.4);
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr;
    gap: .9rem;
}

#velos .index-3 .card .ligne1,
#velos .index-3 .card .ligne2 {
    overflow: hidden;
    display: grid;
    gap: .9rem;
}

#velos .index-3 .card .ligne1 {
    grid-template-columns: 1.5fr 1fr;
}

#velos .index-3 .card .ligne2 {
    grid-template-columns: 1fr 1fr;
}

#velos .index-3 .card .ligne1 div,
#velos .index-3 .card .ligne2 div {
    overflow: hidden;
}



/* karting */
/* karting */
/* karting */

#karting {
    background-color: var(--ligth);
    background-image: none;
    transition: background-color 0.3s ease;
}

#karting .width-p {
    margin-bottom: 250vh;
}

#karting .header {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    height: 400vh;
    width: 100%;
}

#karting .sticker {
    position: sticky;
    top: 35%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: max(73%, 330px);
    aspect-ratio: 10/1.8;
    margin-bottom: 10vh;
    transform: scale(0.25);
    background: linear-gradient(10deg, var(--ligth), #FE2B20, var(--ligth));
    overflow: hidden;
}

#karting .sticker::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: black;
    opacity: var(--overlay-opacity, 0);
    transition: opacity 0.6s ease;
    pointer-events: none;
    z-index: 2;
}

#karting .sticker p {
    font-size: min(6vw, 6rem);
    font-weight: 300;
}

.karting-header-box-parent {
    height: 150vh;
}

.karting-header {
    position: sticky;
    top: 20%;
    width: 100%;
}

.karting-header>:first-child {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: max(40%, 330px);
}

.karting-header .card {
    display: grid;
    grid-column: 1fr 1fr;
    width: max(50%, 335px);
    aspect-ratio: 8 / 5;
    background-color: rgba(249, 251, 253, 0.05);
    border-color: rgba(249, 251, 253, 0.5);
}

.karting-header iframe {
    height: 100%;
    width: 100%;
}

#karting .box-parent {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 100vh;
}


#karting .box-parent .card {
    position: sticky;
    top: 20%;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 10fr;
    gap: .9rem;
    width: max(50%, 335px);
    max-height: fit-content;
    aspect-ratio: 8 / 5;
    background-color: rgba(7, 7, 7, 0.1);
    border-color: rgba(249, 251, 253, 0.5);
}

@media (max-width: 850px) {
    #karting .box-parent .card {
        top: 40%;
    }
}

#karting .box-parent .card div {
    overflow: hidden;
}

#karting .box-parent .card> :first-child {
    display: flex;
    align-items: center;
    justify-content: center;
}

#karting .box-parent> :first-child {
    margin-top: 100vh;
}

#card-1-karting {
    opacity: 1;
    transition: opacity 0.3s ease-in-out;
}

#card-1-karting.active {
    opacity: 0;
}

#card-2-karting {
    opacity: 1;
    transition: opacity 0.4s ease-in-out;
}

/* jvcreation */
/* jvcreation */
/* jvcreation */

#jvcreation .width-p {
    margin-bottom: 100vh;
}

#jvcreation .sticker {
    background-image: linear-gradient(to right, var(--violet), var(--fonce-violet));
    color: var(--ligth);
}

#jvcreation .header {
    display: flex;
    flex-direction: column;
    justify-content: start;
    height: 100vh;
}

#jvcreation .header p {
    position: sticky;
    top: 30%;
}

#jvcreation .box-parent {
    width: 100%;
}

#jvcreation .clients-box-parent {
    width: max(40%, 335px);
}

#jvcreation .box-parent .clients {
    position: sticky;
    top: 30%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    margin-top: 100vh;
}

#jvcreation .box-parent .clients .card {
    background-color: var(--ligth);
    border-color: rgba(86, 43, 228, 0.2);
}

#jvcreation .box-parent .clients:nth-child(2) {
    opacity: 0;
}


#jvcreation .box-parent> :last-child {
    position: sticky;
    top: 20%;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    gap: .9rem;
    width: max(50%, 335px);
    aspect-ratio: 8 / 5;
    height: min-content;
    background-color: #f1f0fc;
    border-color: rgba(86, 43, 228, 0.2);
}
#jvcreation .box-parent> :last-child a{
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translateX(-50%) translateY(-50%);
}

#jvcreation .box-parent> :last-child div {
    overflow: hidden;
}


#jvcreation .width-p> :last-child {
    position: relative;
    height: 300vh;
}

#jvcreation .width-p> :last-child p {
    position: sticky;
    top: 40%;
    /* Position sticky définie à 40% du haut */
    opacity: 0;
    /* Opacité de départ */
    transition: opacity 1s ease-out 1s;
    /* Transition fluide de l'opacité */
}

#jvcreation .width-p> :last-child p.active {
    opacity: 1;
    /* Opacité à 1 lorsque l'élément devient actif */
}

/* justcook */
/* justcook */
/* justcook */
#justcook {
    background-color: var(--ligth);
    /* couleur claire par défaut */
    transition: background-color 0.5s ease;
}

#justcook.active {
    background-color: #C3E1BB;
}

#justcook .header {
    margin-bottom: 100vh;
}

#justcook .sticker {
    background-color: #C3E1BB;
    color: #16300f;
}

#justcook .box-parent {
    position: relative;
    width: 100%;
}

#justcook .box-parent> :first-child {
    overflow: hidden;
    position: sticky;
    top: 10%;
    width: max(26%, 250px);
    aspect-ratio: 4 / 8;
    height: min-content;
}

@media (max-width: 676px) {
    #justcook .box-parent> :first-child {
        top: 0.5%;
    }

    #justcook .presentation-jc div {
        top: 60%;
    }
}

@media (min-width: 677px) {
    #justcook .presentation-jc div {
        top: 35%;
    }
}

#justcook .card {
    transform: translateX(-100%);
    height: 100%;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    gap: .9rem;
    transition: transform .3s ease;
}

#justcook .card.active {
    transform: translateX(0);
    /* On réinitialise la translation sur X pour que la carte soit visible */
}

#justcook video {
    height: 100%;
    width: 100%;
    border-radius: clamp(.5rem, .8vw, .85rem);
    object-fit: cover;
}

#justcook .card::before {
    content: "";
    background: url("img/justcook.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    position: absolute;
    right: calc(-100% + .9rem);
    top: .9rem;
    height: calc(100% - 1.8rem);
    width: calc(100% - 1.8rem);
    border-radius: clamp(.5rem, .8vw, .85rem);
    object-fit: cover;
}

#justcook .presentation-jc {
    width: max(50%, 335px);
}

#justcook .presentation-jc ul {
    list-style: inside;
}

#justcook .presentation-jc div {
    position: sticky;
    margin-top: 100vh;
}

/* Style par défaut */
.presentation-jc #index1,
.presentation-jc #index2,
.presentation-jc #index3 {
    opacity: 1;
    transition: opacity 0.3s ease-in-out;
}

.presentation-jc #index4 {
    opacity: 0;
}

/* Classes actives indépendantes */
.presentation-jc #index1.active-index1 {
    opacity: 0;
}

.presentation-jc #index2.active-index2 {
    opacity: 0;
}

.presentation-jc #index3.active-index3 {
    opacity: 0;
}

#justcook .width-p> :last-child {
    margin-top: 100vh;
}