@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100..700;1,100..700&family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap');

/* ===== LOADING SCREEN ===== */
#loadingScreen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background-image: linear-gradient(120deg, rgb(255, 247, 230) 0%, rgb(239, 245, 255) 100%);
    transition: transform .4s cubic-bezier(0.83, 0, 0.17, 1);
    transform: translateX(0%);
}

#loadingScreen.hidden {
    transform: translateX(-100%);
    pointer-events: none;
}

#loadingScreen.initial {
    transform: translateX(100%);
    transition: none;
}

@keyframes logo-loader {
    0%{opacity: .1;}
    50%{opacity: .2;}
    100%{opacity: .1;}
}

.loading-navbar .nav-logo h2 {
    font-size: var(--title);
    font-weight: 500;
    color: black;
    opacity: .3;
    margin: 0;
    mix-blend-mode: multiply;
    transition: .2s ease-in-out;
}

.loading-navbar .nav-logo h2 span {
    font-weight: 300;
}

.loading-navbar .nav-logo h2 img {
    height: 32px;
}

#loadingScreen .bar {
    width: calc(100% - 20px);
    height: 2px;
    background-color: rgba(0, 0, 0, .05);
    border-radius: 10px;
    overflow: hidden;
    margin-top: 10px;
    margin-left: 10px;
}

#loadingScreen .bar > div {
    width: 0%;
    height: 100%;
    background-color: var(--color-accent-hover);
    border-radius: 10px;
    transition: .2s ease-in-out;
    overflow: hidden;
}


/* ===== RESET & BASE STYLES ===== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --color-background: #FAFAFA;

    /* Colors */
    --color-black: #0F0F10;
    --color-white: #FAFAFA;
    --color-grey: #6B6B6B;
    --color-accent-dim: #DAE5FB;
    --color-accent: #2563eb;
    --color-accent-hover: #1147BB;


    --title: clamp(18px, 2vw, 32px);
    --subtitle: clamp(16px, 1.6vw, 24px);
    --paragraph: clamp(14px, 1.2vw, 24px);
    --subparagraph: clamp(14px, 1vw, 18px);
    
    /* Typography */
    --font-primary: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    
    /* Grid System */
    --grid-columns: 5;
    --container-margin: 50px;
    
    /* Spacing */
    --spacing-md: 24px;
    --spacing-xl: 48px;
    --spacing-xxl: 64px;
}

body {
    font-family: var(--font-primary);
    font-weight: 400;
    line-height: 1.6;
    color: var(--color-grey-900);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
    background-color: var(--color-background);
    user-select: none;
    overflow-y: visible;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
    letter-spacing: 0.01em;
}

section:not(.hero-section) {
    padding: var(--spacing-xl) var(--container-margin);
    border-top: 1px solid var(--color-grey-200);
    background-color: var(--color-background);
}

section h2 {
    font-size: 2.5rem;
    margin-bottom: var(--spacing-xl);
    text-align: center;
}

a {
    color: var(--color-accent);
    text-decoration: none;
}

a:hover {
    color: var(--color-accent-hover);
}

b {
    font-weight: 600;
}

/* ===== GRID OVERLAY (for development) ===== 
body::before {
    content: '';
    position: fixed;
    top: 0;
    left: var(--container-margin);
    right: var(--container-margin);
    bottom: 0;
    background-image: repeating-linear-gradient(to right, transparent, transparent calc(100% / var(--grid-columns) - 1px), rgba(0,0,0,.1) calc(100% / var(--grid-columns) - 1px), rgba(0,0,0,.1) calc(100% / var(--grid-columns)));
    pointer-events: none;
    z-index: 1000;
    opacity: .8;
}
    


/* ===== NAVIGATION ===== */
.ajax-content {
    overflow: visible;
}


.main-nav {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 999;
    width: 100vw;
    height: 60px;
    transition: .2s ease;
}

.main-nav.solid {
    background-color: var(--color-background);
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
}

.nav-container {
    width: 100%;
    height: 100%;
    padding: 0 var(--container-margin);
    display: flex;
    align-items: center;
}

.nav-logo {
    flex-basis: 40%; /* 2/5 columns */
}

.nav-logo a {
    text-decoration: none;
    color: black;
    cursor: pointer;
}

.nav-logo img {
    height: 24px;
    margin-top: 24px;
    margin-right: 10px;
    margin-left: 10px;
    opacity: .4;
    mix-blend-mode: luminosity;
    transition: .1s ease;
}

.nav-logo:hover img {
    opacity: .8;
}

.nav-logo img.mobile {
    height: 16px;
    margin-top: 5px;
}

.main-nav.solid .nav-logo img {
    opacity: .6;
    margin-top: 10px;
}


.main-nav.solid .nav-logo:hover img {
    opacity: 1;
    margin-top: 10px;
}


.nav-logo h2 {
    font-size: 1.5rem;
    font-weight: 500;
    letter-spacing: -0.03rem;
    color: inherit;
    margin: 0;
}

.nav-logo h2 span {
    font-weight: 300;
}

.nav-item {
    flex-basis: 20%; /* 1/5 columns */
    max-height: 0;
    text-indent: 10px;
}

.nav-item a {
    width: 100%;
    top: 0px;
    position: absolute;
    text-indent: 15px;
    text-decoration: none;
    color: black;

    font-weight: 400;
    opacity: .8;
    font-size: var(--subparagraph);
    text-shadow: 0 0px 10px rgba(255, 255, 255, 0.5);
    padding: 18px 0;
    display: block;
    transition: .1s ease;
    cursor: pointer;
}

.nav-item:hover a {
    opacity: 1;
    color: var(--color-accent-hover);
}

.nav-section-container {
    text-indent: 13px;
    display: flex;
    box-sizing: border-box;
    width: calc(60vw - 60px);
    mix-blend-mode: luminosity;
    position: fixed;
    box-sizing: border-box;
    left: calc(40vw + 12px);
    top: 0;
    z-index: 10;
}

.nav-section-container > div {
    background-color: rgb(252, 255, 228);
    height: 80px;
    box-sizing: border-box;
    overflow: hidden;
    flex-basis: 33.33%;
    transition: .15s ease-out;
    border-radius: 0 0 5px 5px;
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);
}

.nav-section-container > div.hidden {
    height: 0;
}

.nav-section-container > div p {
    margin-top: 45px;
    font-size: .9rem;
    color: var(--color-grey);
}

.main-nav .burger {
    position: fixed;
    right: 20px;
    top: 5px;
    width: 24px;
    box-sizing: content-box;
    padding: 24px;
    float: right;

    display: none;
    z-index: 999;
}

.main-nav .burger-content {
    display: none;
}


/* ===== BUTTONS ===== */
.cta-button {
    background-color: var(--color-accent);
    color: var(--color-white);
    border: none;
    padding: 1rem 2.5rem;
    font-size: 1.1rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-block;
}

.cta-button:hover {
    color: var(--color-accent-hover);
    background-color: var(--color-white);
    transform: translateY(-2px);
}

.cta-button:active {
    color: var(--color-accent);
}

/* ===== FOOTER ===== */
.footer {
    background-color: var(--color-background);
    color: black;
    padding: 60px 50px 40px;
    position: relative;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.footer-container {
    margin-bottom: 40px;
    margin-bottom: 10vh;
    display: flex;
    align-items: top;
    flex-direction: row;
}

.footer-column {
    width: 20%;
    display: inline-block;
    box-sizing: border-box;
}

.footer-column:first-of-type {
    width: 40%;
}

.footer-column h3, .footer-column h4 {
    margin-bottom: 1.5vh;
    font-size: clamp(14px, 1vw, 18px);
    font-weight: 500;
    opacity: .8;
    cursor: default;
}

.footer-column h3 span {
    font-weight: 400;
}

.footer-column > img {
    height: clamp(14px, 1vw, 30px);
    opacity: .8;
    transform: translateY(3px);
    margin-bottom: 1.5vh;
}

.footer-column p {
    font-size: clamp(14px, 1vw, 18px);
    opacity: .6;
}

.footer-column a.cta {
    display: inline-block;
    margin-top: 25px;
    padding: 10px 20px;
    border: 1px solid rgba(0, 0, 0, 0.2);
    background-color: rgba(0, 0, 0, 0.05);
    color: rgba(0, 0, 0, 0.6);
    border-radius: 5px;
    text-decoration: none;
    font-size: clamp(14px, 1vw, 18px);
    transition: .1s ease;
    cursor: pointer;
}

.footer-column a.cta:hover {
    background-color: var(--color-white);
    color: var(--color-accent-hover);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
    border: 1px solid transparent;
}

.footer-column ul {
    color: black;
    font-size: clamp(14px, 1vw, 18px);
    list-style: none;
    padding: 0;
}

.footer-column ul li a {
    text-decoration: none;
    padding: .5vh 0;
    display: inline-block;
    transition: color 0.3s;
    color: black;
    opacity: .6;
    cursor: pointer;
}

.footer-column ul li a:hover {
    opacity: 1;
}

.footer-column ul li a:active {
    color: var(--color-accent-hover);
}

.footer-column ul li a img {
    height: clamp(14px, 1vw, 18px);
    transform: translateY(calc(0.2 * clamp(14px, 1vw, 18px))) translateX(5px);
}

.footer-bottom {
    position: absolute;
    bottom: 0;
    left: 0;
    justify-content: space-between;
    display: flex;
    padding: 20px 50px;
    font-size: clamp(9px, .9vw, 16px);
    font-weight: 500;
    width: 100%;
    cursor: default;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.footer-bottom img {
    height: clamp(9px, .6vw, 10px);
}

.footer-bottom p a {
    color: black;
    transition: .2s ease;
}

.footer-bottom p a:hover {
    opacity: .6;
}


/* ===== GENERIC PAGE SECTIONS ===== */
.projects-section, .about-section, .services-detail-section, .contact-section {
    min-height: 60vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* ===== PAGE SPECIFIC: HOME ===== */

/* --- Hero Section --- */
.hero-section {
    position: relative;
    height: 95vh;
    width: 100vw;
    padding: 0 var(--container-margin);
    border-top: none;
    overflow: hidden;
}

.hero-section::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
background-image: 
  repeating-linear-gradient(
    to right,
    transparent 0,
    transparent 50px,          /* marge gauche */
    rgba(0,0,0,0.1) 50px,      /* ligne 1px */
    rgba(0,0,0,0.1) 51px,      /* ligne 1px arrêtée */
    transparent 51px,
    transparent calc(51px + (100% - 100px) * 0.2),  /* 1ère section 20% */
    
    rgba(0,0,0,0.1) calc(51px + (100% - 100px) * 0.2), /* ligne 2 */
    rgba(0,0,0,0.1) calc(52px + (100% - 100px) * 0.2),
    transparent calc(52px + (100% - 100px) * 0.2),
    transparent calc(52px + (100% - 100px) * 0.4),   /* 2ème section 20% */
    
    rgba(0,0,0,0.1) calc(52px + (100% - 100px) * 0.4), /* ligne 3 */
    rgba(0,0,0,0.1) calc(53px + (100% - 100px) * 0.4),
    transparent calc(53px + (100% - 100px) * 0.4),
    transparent calc(53px + (100% - 100px) * 0.6),   /* 3ème section 20% */
    
    rgba(0,0,0,0.1) calc(53px + (100% - 100px) * 0.6), /* ligne 4 */
    rgba(0,0,0,0.1) calc(54px + (100% - 100px) * 0.6),
    transparent calc(54px + (100% - 100px) * 0.6),
    transparent calc(54px + (100% - 100px) * 0.8),   /* 4ème section 20% */
    
    rgba(0,0,0,0.1) calc(54px + (100% - 100px) * 0.8), /* ligne 5 */
    rgba(0,0,0,0.1) calc(55px + (100% - 100px) * 0.8),
    transparent calc(55px + (100% - 100px) * 0.8),
    transparent calc(100% - 50px),  /* marge droite */
    
    rgba(0,0,0,0.1) calc(100% - 50px),
    rgba(0,0,0,0.1) calc(100% - 49px),
    transparent calc(100% - 50px)
  ),

  linear-gradient(to bottom, transparent 50%, rgba(0,0,0,.6) 80%),
  var(--hero-bg-url);

    background-size: cover;
    background-position: center;
    mix-blend-mode: multiply;
    z-index: -1;
}

.hero-section .text {
    text-align: left;
    position: fixed;
    bottom: 10vh;
    width: 100%;
    color: var(--color-white);
}

.hero-content h1 {
    text-shadow: none;
    text-align: left;
    font-size: clamp(16px, 1.8vw, 48px);
    font-weight: 400;
    margin: 0;
}

.hero-content h1.left {
    font-size: calc(var(--title) * 1.2);
    font-weight: 500;
    text-align: left;
    letter-spacing: -.3px;
}

.hero-content h1.left span {
    font-size: var(--paragraph);
    font-weight: 400;
    letter-spacing: normal;
    width: calc(100% - 300px);
    opacity: 1;
    text-align: left;
    display: block;
}


.hero-content p.line {
    font-size: var(--paragraph);
    font-weight: 400;
    letter-spacing: normal;
    box-sizing: border-box;
    text-align-last: left;
    width: calc(100% - 300px);
    margin: 0;
    padding: 0;
    margin-top: 0;
    transition: margin-bottom 0.4s ease-out;
    opacity: 1;
    max-width: inherit;
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

.hero-content .smartlink {
    padding: 0 10px 10px 10px;
    position: fixed;
    z-index: 0;
    right: calc(50px);
    height: auto;
    width: calc(20vw - 20px);
    bottom: calc(10vh + 80px + var(--paragraph));
    background: rgba(255, 255, 255, .6);
    border-radius: 6px;

    backdrop-filter: blur(5px) saturate(180%);
    -webkit-backdrop-filter: blur(5px) saturate(180%);
}

.hero-content .smartlink.hidden {
    display: none;
}

.hero-content .smartlink h2 {
    font-size: calc(var(--subparagraph) * 1);
    font-weight: 500;
    opacity: .6;
    margin: 0;
    margin-left: 12px;
    line-height: calc(var(--subparagraph) * 2.5);
}

.hero-content .smartlink .list {
    border-radius: 6px;
    background-color: var(--color-white);
    height: auto;
    margin: 0;
}

.hero-content .smartlink .list a {
    padding: 8px 12px;
    height: auto;
    font-size: calc(var(--subparagraph) * .9);
    border-bottom: 1px solid var(--color-grey-200);
    display: block;
    cursor: pointer;
    transition: .1s ease;
}

.hero-content .smartlink .list a:hover {
    background: rgba(0, 0, 0, .05);
}

.hero-content .smartlink .list a:not(:last-of-type) {
    border-bottom: 1px dashed rgba(0, 0, 0, .4);
}

.hero-content .smartlink .list a svg {
    float: right;
    margin: 12px 5px 0 5px;
    transition: .1s ease;
}

.hero-content .smartlink .list a:hover svg {
    transform: translateX(3px) translateY(-3px);
    fill: var(--color-accent-hover);
}

.hero-content .smartlink .list a h4 {
    font-size: var(--subparagraph);
    font-weight: 500;
    color: var(--color-accent);
}

.hero-content .smartlink .list a:hover h4 {
    color: var(--color-accent-hover);
} 

.hero-content .smartlink .list a p {
    font-size: calc(var(--subparagraph) * .8);
    margin: 0;
    color: var(--color-black);
}

.hero-content .cta-button {
    text-align: left;
    text-indent: 0;
    font-weight: 400;
    padding: 15px 20px;
    font-size: var(--paragraph);
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    border: none;
    box-shadow: none;
    border-radius: 0;
    position: fixed;
    right: calc(50px);
    width: calc(20vw - 20px);
    bottom: calc(10vh + 0px);
    z-index: 0;
    transition: .1s ease;
    overflow: visible;
    backdrop-filter: blur(5px) saturate(180%);
    -webkit-backdrop-filter: blur(5px) saturate(180%);

    background: rgba(255, 255, 255, .6);
    color: var(--color-black);
    box-shadow: 0px 8px 24px rgba(0, 0, 0, 0.3);
}

.hero-content .cta-button svg {
    fill: var(--color-black);
    opacity: .8;
}

.hero-content .cta-button:hover svg {
    fill: var(--color-accent-hover);
}

.hero-content .cta-button::after {
    content: "> Extension d'une maison dans le Nord";
    position: absolute;
    left: 0;
    overflow: visible;
    white-space: nowrap;
    font-size: calc(var(--subparagraph)*.8);
    font-weight: 400;
    bottom: -25px;
    margin-left: 20px;
    color: var(--color-white);
    opacity: .8;
}

.hero-content .cta-button.new-project::after {
    content: "Parler d'un nouveau projet";
}

.hero-content .cta-button:hover {
    color: var(--color-accent-hover);
    background: var(--color-white);
    box-shadow: 0px 4px 12px rgba(0, 0, 0, .2);
    text-shadow: none;
    transform: none;
}

.hero-content h1 span {
    font-weight: 600;
    display: block;
}

.hero-content p {
    font-size: 1.25rem;
    max-width: 650px;
    margin: 0 auto var(--spacing-xl);
    color: var(--color-grey-700);
}






/* Segmentation section */
.segmentation-section:not(.hero-section) {
    position: relative;
    overflow: hidden;
    height: auto;
    padding: 8vh 50px;
    width: 100%;
    text-align: center;
    border-top: 1px solid rgba(0, 0, 0, .1);
    padding-top: 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: default;
}

.segmentation-section::before {
    display: none;
}

.segmentation-section > h4 {
    width: 100%;
    text-align: left;
    font-size: var(--subtitle);
    font-weight: 500;
    margin-bottom: 10px;
}

.segmentation-section > p {
    width: 100%;
    text-align: left;
    font-size: var(--paragraph);
    color: var(--color-grey);
    font-weight: 400;
    margin-bottom: 40px;
}


.segmentation-section:not(.hero-section) .segments-wrapper {
    display: flex;
    flex-direction: row;
    justify-content: center;
    width: 100%;
    border: 2px solid rgba(0, 0, 0, .1);
    border-radius: 6px;
}

.segmentation-section:not(.hero-section) .segments-wrapper div {
    padding: 20px 40px;
    text-align: left;
    width: 50%;
}

.segmentation-section:not(.hero-section) .segments-wrapper div h4 {
    font-size: var(--paragraph);
    font-weight: 500;
    margin-bottom: 30px;
}

.segmentation-section:not(.hero-section) .segments-wrapper div ul {
    height: 300px;
}

.segmentation-section:not(.hero-section) .segments-wrapper div ul li {
    margin-bottom: 10px;
    font-size: var(--subparagraph);
    color: var(--color-grey);
    list-style: none;
    position: relative;
    padding-left: 0;
}

.segmentation-section:not(.hero-section) .segments-wrapper div ul li strong {
    color: var(--color-black);
    font-weight: 500;
}

.segmentation-section:not(.hero-section) .segments-wrapper div a {
    cursor: pointer;
    padding: 5px 0;
    display: inline-block;
    padding: 10px;
    width: calc(100% + 20px);
    margin-left: -10px;
    margin-bottom: -10px;
    border-radius: 6px;
    transition: .1s ease;
}

.segmentation-section:not(.hero-section) .segments-wrapper div a:hover {
    color: var(--color-accent-hover);
    background: var(--color-white);
    box-shadow: 0 5px 20px rgba(115, 132, 213, 0.3);
}

.segmentation-section:not(.hero-section) .segments-wrapper div a svg {
    fill: var(--color-accent);
    transition: .1s ease;
    margin-bottom: -6px;
}

.segmentation-section:not(.hero-section) .segments-wrapper div a:hover svg {
    transform: translateX(5px);
    fill: var(--color-accent-hover);
}

.segmentation-section:not(.hero-section) .segments-wrapper div:not(.segmentation-section:not(.hero-section) .segments-wrapper div:first-of-type) {
    border-left: 2px solid rgba(0, 0, 0, .1);
}












/* HP Portfolio section */
.projects-wide-section:not(.hero-section) {
    position: relative;
    overflow: hidden;
    height: auto;
    padding: 8vh 0;
    padding-top: 30px;
    padding-bottom: 20vh;
    width: 100%;
    text-align: left;
    cursor: default;
    display: flex;
    flex-direction: column;
}

.projects-wide-section::before {
    display: none;
}

.projects-wide-section > h4 {
    text-align: left;
    width: 80%;
    font-size: var(--paragraph);
    color: var(--color-grey);
    font-weight: 500;
    margin: 0 0 20px 50px;
}

.projects-wide-section > p {
    text-align: left;
    font-size: var(--paragraph);
    color: var(--color-grey);
    font-weight: 400;
    margin-bottom: 40px;
    margin-left: 50px;
    width: 70%;
}


.projects-wide-section > div {
    width: 100%;
    padding: 0 50px;
}

.projects-wide-section > div:first-of-type {
    margin-top: -10vh;
}

.projects-wide-section .list > div {
  cursor: crosshair;
}

.projects-wide-section div .bar {
    text-transform: uppercase;
    font-size: var(--subparagraph);
    font-weight: 400;
    width: 100%;
    border-bottom: 2px solid rgba(0, 0, 0, .1);
    margin-top: 10px;
    margin-bottom: 0;
    justify-content: space-between;
    display: flex;
    padding: 0;
}

.projects-wide-section div .bar span {
    margin-top: 10px;
    color: var(--color-grey);
}


.projects-wide-section div .card {
    width: 100%;
    height: 60vh;
    margin-top: 10vh;
    background-position: center;
    background-size: cover;
    background-color: rgba(0, 0, 0, .1);
}


.projects-wide-section div .info {
    display: flex;
    flex-direction: row;
    margin: 10px 0;
}

.projects-wide-section div .info div {
    text-align: left;
}

.projects-wide-section div .info div > span {
    font-weight: 400;
    text-transform: uppercase;
    font-size: calc(var(--subparagraph) * 1);
}

.projects-wide-section div .info div p {
    font-size: var(--paragraph);
}

.projects-wide-section div .info div.name p {
    white-space: nowrap;
    overflow: hidden;
    /* Le masque magique */
    -webkit-mask-image: linear-gradient(to right, black 70%, transparent 100%);
    mask-image: linear-gradient(to right, black 70%, transparent 100%);
    width: calc(100% - 20px)
}


.projects-wide-section div .info div p span {
    color: var(--color-grey);
    margin-left: 10px;
}

.projects-wide-section div .info div.name {
    width: 70%;
}

.projects-wide-section div .info div.location {
    width: 10%;
    overflow: visible;
    white-space: nowrap;
}

.projects-wide-section div .info div.date {
    width: 20%;
    text-align: right;
}




/* HP Portfolio section */
.timeline-section:not(.hero-section) {
    position: relative;
    padding: 8vh 0;
    padding-top: 20vh;
    padding-bottom: 0;
    width: 100%;
    text-align: center;
    cursor: default;
}

.timeline-section::before {
    display: none;
}

.timeline-section {
    display: flex;
    flex-direction: column;
    position: relative;
    height: 250vh;
}

.timeline-section .fixed-wrapper {
    position: sticky;
    top: 60vh; /* Fixe l'élément au milieu de l'écran pendant le scroll */
    height: 50vh;
    width: 100%;
    z-index: 50;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.timeline-section .line {
    width: 100%;
    height: 3px;
    background: var(--color-accent-dim);
}
.timeline-section .line .bar {
    width: 40%;
    height: 100%;
    background: var(--color-accent);
}

.timeline-section .timeline-container {
    width: 80%;
    height: 300px;
    margin: 0 auto;
    position: relative;
    display: flex;
    justify-content: center;
}

.timeline-section .timeline-container > div {
    text-align: left;
    padding: 0 10px;
    padding-top: 30px;
}

.timeline-section .timeline-container > div::before {
    content: "";
    width: 16px;
    height: 16px;
    position: absolute;
    background: var(--color-white);
    border: 3px solid var(--color-accent-dim);
    transform: translateY(-42px);
    border-radius: 50px;
}

.timeline-section .timeline-container > div.active {
    opacity: 1;
}

.timeline-section .timeline-container > div.active::before {
    background: var(--color-accent);
    border: 3px solid var(--color-accent);
}

.timeline-section .timeline-container > div .step-number {
    font-size: calc(var(--subparagraph) * .9);
    font-weight: 500;
    color: var(--color-grey);
    font-weight: 400;
}

.timeline-section .timeline-container > div .step-content h5 {
    font-size: var(--paragraph);
    font-weight: 500;
    color: var(--color-black);
    margin-bottom: 10px;
}

.timeline-section .timeline-container > div .step-content p {
    font-size: var(--subparagraph);
    color: var(--color-grey);
    line-height: 1.6;
    transform: translateY(-5px);
    opacity: 0;
    transition: .1s ease;
}

.timeline-section .timeline-container > div img {
    height: 40vh;
    position: absolute;
    top: -50vh;
    box-shadow: 0 10px 30px rgba(10, 0, 149, 0.2);
    border-radius: 6px;
    transition: .1s ease;
    opacity: 0;
    overflow: hidden;
    transform: translateY(20px);
}

.timeline-section .timeline-container > div.highlighted img {
    opacity: 1;
    transform: translateY(0px);
}


.timeline-section:not(.visible) .timeline-container > div img {
    display: none;
}


.timeline-section .timeline-container > div.active .step-content h5 {
    color: var(--color-accent);
}

.timeline-section .timeline-container > div.highlighted .step-content p {
    opacity: 1;
    transform: translateY(0);
}







.faq-section:not(.hero-section) {
    position: relative;
    overflow: hidden;
    height: auto;
    padding: 0 150px;
    padding-top: 15vh;
    width: 100%;
    text-align: left;
    cursor: default;
    display: flex;
    flex-direction: column;
}

.faq-section:not(.hero-section)  > h4 {
    text-align: left;
    width: 80%;
    font-size: var(--paragraph);
    font-weight: 500;
    margin-bottom: 10px;
    margin-left: 20px;
    color: gray;
}

.faq-section .list {
    padding-bottom: 30px;
}

.faq-section .list > div {
    padding: 20px;
    text-align: left;
    width: 100%;
    border-top: 1px solid rgba(0, 0, 0, .1);
    transition: .2s ease;
    cursor: pointer;
}

.faq-section .list > div.selected + div {
    border-top: 1px solid transparent;
}

.faq-section .list > div h5 {
    font-size: var(--paragraph);
    font-weight: 500;
    color: var(--color-black);
    width: 50%;
    display: inline-block;
}

.faq-section .list > div.selected h5, 
.faq-section .list > div:hover h5 {
    color: var(--color-accent-hover);
}

.faq-section .list > div svg {
    float: right;
    box-sizing: content-box;
    width: 18px;
    height: 18px;
    padding: 10px;
    border-radius: 30px;
    transition: .1s ease;
}

.faq-section .list > div:hover svg,
.faq-section .list > div.selected svg {
    fill: var(--color-accent-hover);
    background-color: var(--color-accent-dim);
}

.faq-section .list > div.selected svg {
    transform: rotate(90deg);
    margin-top: -10px;
}

.faq-section .list > div p {
    font-size: var(--paragraph);
    font-weight: 400;
    color: var(--color-grey);
    width: calc(100% - 100px);
    overflow: hidden;
    max-height: 0;
    transition: .2s ease;
}

.faq-section .list > div.selected p {
    max-height: 60px;
}


.faq-section .list > div.selected {
    border-top: 1px solid transparent;
    border-radius: 6px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, .2);
}








/* HP Portfolio section */
.testimonial-section:not(.hero-section) {
    position: relative;
    overflow: hidden;
    height: auto;
    padding: 8vh 0;
    padding-top: 15vh;
    width: 100%;
    text-align: left;
    cursor: default;
    display: flex;
    flex-direction: column;
}

.testimonial-section::before {
    display: none;
}

.testimonial-section .list {
    display: flex;
    flex-direction: row;
    padding: 0;
    width: max-content; /* S'adapte à la largeur du contenu doublé */
    animation: scrollInfinite 30s linear infinite; /* Vitesse lente et constante */
}

/* Pause au survol */
.testimonial-section .list:hover {
    animation-play-state: paused;
}

.testimonial-section .list > div {
    width: 40vw; /* Largeur fixe pour garder une cohérence */
    flex-shrink: 0; /* Empêche l'écrasement des cartes */
    padding: 10px;
    margin: 0 15px;
    background-color: var(--color-white);
    border: 1px solid rgba(0, 0, 0, .1); /* Plus "Archi" que l'ombre portée massive */
    border-radius: 160px;
}

@keyframes scrollInfinite {
    0% {
        /* Position de départ */
        transform: translateX(0);
    }
    100% {
        /* On décale exactement de la moitié de la largeur totale de .list */
        /* Puisque tu as doublé le contenu, -50% correspond à la fin du 1er groupe */
        transform: translateX(-50%);
    }
}

.testimonial-section .list div .img {
    background-color: rgba(0, 0, 0, .1);
    margin: 0;
    margin-right: 20px;
    background-position: center;
    background-size: cover;
    width: 60px;
    height: 60px;
    border-radius: 60px;
    float: left;
}


.testimonial-section .list div p {
    font-size: var(--subparagraph);
    color: var(--color-black);
    font-weight: 500;
    line-height: 1.6;
}

.testimonial-section .list div p::before {
    content: '“';
    color: var(--color-accent-hover);
    vertical-align: top;
    margin-left: -10px;
    margin-right: 2px;
}

.testimonial-section .list div p::after {
    content: '”';
    color: var(--color-accent-hover);
    vertical-align: bottom;
    margin-left: 2px;
    margin-right: -10px;
}

.testimonial-section .list div strong {
    font-size: var(--subparagraph);
    color: var(--color-grey);
    font-weight: 400;
    line-height: 1.6;
}



.testimonial-section h4 {
    font-size: var(--title);
    font-weight: 500;
    text-align: left;
    margin-left: 50px;
    margin-top: 50px;
}

.testimonial-section > p {
    font-size: var(--paragraph);
    font-weight: 500;
    text-align: left;
    margin-left: 50px;
    margin-top: 10px;
    width: 60%;
    color: var(--color-grey);
}


.testimonial-section a {
    font-weight: 500;
    font-size: var(--paragraph);
    cursor: pointer;
    padding: 5px 0;
    display: flex;
    flex-direction: row;
    width: max-content;
    padding: 10px;
    width: 60vw;
    margin-left: 40px;
    margin-top: 20px;
    border-radius: 6px;
    transition: .1s ease;
}

.testimonial-section a:hover {
    color: var(--color-accent-hover);
    background: var(--color-white);
    box-shadow: 0 5px 20px rgba(115, 132, 213, 0.3);
}

.testimonial-section a svg {
    fill: var(--color-accent);
    transition: .1s ease;
    margin-top: 2px;
    margin-left: 10px;
}

.testimonial-section a:hover svg {
    transform: translateX(5px);
    fill: var(--color-accent-hover);
}










/* HP Portfolio section */
.pricing-section:not(.hero-section) {
    position: relative;
    padding: 8vh 0;
    padding-bottom: 0;
    width: 100%;
    text-align: center;
    background-color: rgb(239, 239, 242);
    cursor: default;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.pricing-section > h4 {
    text-align: left;
    width: 80vw;
    font-size: var(--paragraph);
    color: grey;
    font-weight: 500;
    margin: 0 0 20px 0;
}

.pricing-section > p {
    text-align: left;
    font-size: var(--paragraph);
    color: var(--color-grey);
    font-weight: 400;
    margin-bottom: 40px;
    width: 80vw;
}

.pricing-section > p strong {
    font-weight: 500;
    color: var(--color-black);
}



section.pricing-section thead .price {
    text-align: right;
    transform: translateX(-20px);
}

/* Table Style */
section.pricing-section table.bpu-table {
  width: 80vw;
  text-align: left;
  border: 1px solid rgba(0, 0, 0, .1);
    border-collapse: collapse;
}

/* En-têtes */
section.pricing-section table.bpu-table th {
  font-size: 11px;
  font-weight: 400;
  color: #666;
  padding: 15px 10px;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(0, 0, 0, .1);
}

/* Cellules */
section.pricing-section table.bpu-table td {
  padding: 20px 10px;
  border-bottom: 1px solid rgba(0, 0, 0, .1);
  vertical-align: top;
  cursor: crosshair;
}

section.pricing-section table.bpu-table tr.row-module:hover {
  background-color: white;
}

section.pricing-section table.bpu-table tr:last-of-type td {
    border-bottom: none;
}

section.pricing-section table.bpu-table tr.row-base {
    background-color: rgba(0, 0, 0, .05);
}

section.pricing-section table.bpu-table td svg {
    display: inline-block;
    height: 18px;
    fill: var(--color-grey);
}

/* Codes (F-01, M-01) */
section.pricing-section table.bpu-table td.ref {
  width: 150px;
}

/* Titres des offres */
section.pricing-section table.bpu-table td.designation {
  width: 350px;
  font-weight: 500;
}

/* Descriptions techniques */
section.pricing-section table.bpu-table td.specs {
  max-width: calc(80vw - 500px);
  white-space: wrap;
}

/* Prix */
section.pricing-section table.bpu-table td.price {
    white-space: nowrap;
    text-align: right;
    padding-right: 30px;
    text-transform: uppercase;
}

section.pricing-section table.bpu-table tr:hover td.service-description {
  color: #ccc;
}

/* Footer de la section (Notes et CTA) */
section.pricing-section .pricing-footer {
  margin-top: 20px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
}

section.pricing-section .disclaimer {
  font-size: calc(var(--subparagraph) * .9);
  padding: 10px 0;
  color: gray;
}

section.pricing-section .disclaimer span {
    opacity: .6;
}

section.pricing-section .cta-container {
  text-align: center;
}

section.pricing-section .table-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

section.pricing-section .cta-app {
    font-size: var(--paragraph);
    font-weight: 500;
    cursor: pointer;
    padding: 5px 0;
    display: flex;
    flex-direction: row;
    padding: 10px;
    padding-right: 20px;
    margin-left: -10px;
    margin-bottom: -10px;
    border-radius: 6px;
    transition: .1s ease;
    margin-bottom: 30px;
}

section.pricing-section .cta-app:hover {
    color: var(--color-accent-hover);
    background: var(--color-white);
    box-shadow: 0 5px 20px rgba(115, 132, 213, 0.3);
}

section.pricing-section .cta-app svg {
    fill: var(--color-accent);
    transition: .1s ease;
    margin-top: calc(var(--paragraph) * .2);
    margin-left: 10px;
}

section.pricing-section .cta-app:hover svg {
    transform: translateX(5px);
    fill: var(--color-accent-hover);
}


/* Image flottante au survol du tableau */
.floating-image {
    position: absolute;
    pointer-events: none;
    z-index: 9999;
    width: 30vw;
    height: 30vh;
    background-size: cover;
    background-position: center;
    top: 0;
    left: 0;
    box-shadow: 0 10px 40px rgba(0,0,0,0.1);
    opacity: 0;
}

.floating-image.visible {
    opacity: 1;
}

/* Texte flottant "voir le projet" */
.floating-text {
    position: absolute;
    pointer-events: none;
    z-index: 9998;
    top: 0;
    left: 0;
    font-size: var(--subparagraph);
    font-weight: 500;
    color: var(--color-accent-hover);
    background: rgba(255, 255, 255, 0.8);
    padding: 4px 0;
    white-space: nowrap;
    transition: max-width 0.1s ease, padding .1s ease, opacity .1s ease;
    backdrop-filter: blur(5px) saturate(180%);
    max-width: 0;
    overflow: hidden;
    opacity: .5;
}

.floating-text svg {
    fill: var(--color-accent-hover);
    margin-left: 0px;
    margin-bottom: -4px;
    height: 18px;
}

.floating-text.visible {
    max-width: 200px;
    padding: 4px 8px;
    opacity: 1;
}





/* --- Benefices CMY --- */
.value-proposition-section:not(.hero-section) {
    position: relative;
    overflow: hidden;
    padding: var(--container-margin) 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: default;
    z-index: 10;
    border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.value-proposition-section .wrapper {
    max-width: 1100px;
    display: flex;
    align-items: left;
    flex-direction: column;
}

.value-proposition-section h4 {
    font-size: var(--paragraph);
    font-weight: 500;
    margin-bottom: 1vh;
    float: left;
    white-space: wrap;
    color: var(--color-grey);
    mix-blend-mode: darken;
}

.value-proposition-section p {
    font-size: var(--subtitle);
    font-weight: 500;
    margin-bottom: 1vh;
    text-align: justify;
    white-space: wrap;
    mix-blend-mode: darken;
    color: var(--color-black);
}

.value-proposition-section p b {
    font-weight: 500;
    color: var(--color-accent);
}







.image-section:not(.hero-section) {
    position: relative;
    overflow: hidden;
    padding: 0 0;
    text-align: left;
    align-items: center;
    cursor: default;
    z-index: 10;
    border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.image-section .img {
    width: 100%;
    height: 40vh;
    background-size: cover;
    background-position: center;
    border-radius: 6px;
}





/* --- steps section --- */
.steps-section:not(.hero-section) {
    position: relative;
    overflow: hidden;
    padding: var(--container-margin) calc(20vw + 30px);
    text-align: left;
    align-items: center;
    cursor: default;
    z-index: 10;
}

.steps-section:not(.hero-section) h2 {
    font-size: var(--title);
    font-weight: 500;
    margin-bottom: 1vh;
    text-align: left;
    white-space: wrap;
    opacity: .9;
    mix-blend-mode: darken;
}

.steps-section:not(.hero-section) p {
    font-size: var(--paragraph);
    margin-top: 0px;
    margin-bottom: 0px;
    color: var(--color-grey);
    opacity: 1;
    mix-blend-mode: darken;
}


.steps-section .steps-wrapper {
    display: flex;
    justify-content: left;
    flex-direction: row;

    position: relative;
    z-index: 1;
    width: 100%;
    margin-top: 30px;
    box-sizing: border-box;
    transition: .2s ease;
    border-radius: 16px;
    border: 2px solid rgba(0, 0, 0, 0.1);
}

section.steps-section .steps-wrapper .mobile-texts {
    display: none;
}

.steps-section .steps-wrapper .side {
    width: 40%;
    padding: 10px 0;
    display: flex;
    flex-direction: column;
}

.steps-section .steps-wrapper .side div {
    padding: 25px 20px 15px 20px;
    margin-left: 10px;
    z-index: 2;
    border-radius: 6px;
    cursor: pointer;
    transition: .1s ease;
}

.steps-section .steps-wrapper .side div:hover h4 {
    color: var(--color-accent);
}

.steps-section .steps-wrapper .side div.active {
    box-shadow: 0 5px 20px rgba(0, 0, 0, .2);
    background: var(--color-white);
}

.steps-section .steps-wrapper .side div.active h4 {
    color: var(--color-accent-hover);
}

.steps-section .steps-wrapper .side div.active p {
    color: var(--color-accent-hover);
    opacity: .8;
}

.steps-section .steps-wrapper .side div.active svg {
    fill: var(--color-accent);
    opacity: 1;
}

.steps-section .steps-wrapper .side div:not(.steps-section .steps-wrapper .side div:last-child)::before {
    content: "";
    width: 2px;
    border-left: 2px dashed rgba(0, 0, 0, 0.2);
    position: absolute;
    height: 30px;
    display: block;
    margin-top: 32px;
    margin-left: 12px;
    z-index: 0;
}

.steps-section .steps-wrapper .side div:not(.steps-section .steps-wrapper .side div:last-child).active::before {
    height: 10px;
    margin-top: 52px;
    margin-left: 12px;
}

.steps-section .steps-wrapper .side div svg {
    float: left;
    margin-right: 18px;
    margin-bottom: 10px;
    opacity: .3;
    fill: var(--color-gray);
}

.steps-section .steps-wrapper .side div h4 {
    font-weight: 500;
    margin-top: -12px;
    color: var(--color-black);
}

.steps-section .steps-wrapper .side div p {
    font-size: calc(var(--subparagraph)*.8);
    margin-top: 0px;
    color: var(--color-grey);
}

.steps-section .steps-wrapper .images {
    width: 67%;
    overflow: hidden;
}

.steps-section .steps-wrapper .images div {
    width: 100%;
    height: 0;
    background-size: cover;
    background-position: center;
    border-radius: 6px;
    transition: .2s ease;
    mix-blend-mode: multiply;
}

.steps-section .steps-wrapper .images div.active {
    height: 100%;
}

.steps-section .step {
    position: relative;
    overflow: hidden;
    height: calc(10vw + 250px);
    width: 100%;
    text-align: center;
}

.steps-section .step h3 {
    font-size: var(--subtitle);
    font-weight: 500;
    margin-bottom: 2vh;
}

.steps-section .step p {
    font-size: var(--paragraph);
    opacity: .8;
    mix-blend-mode: luminosity;
}




/* --- Benefices CMY --- */
.benefices-section:not(.hero-section) {
    position: relative;
    overflow: hidden;
    height: auto;
    padding: 12vh 0;
    width: 100%;
    text-align: center;
    box-shadow: inset 0 0 50px rgba(0, 0, 0, 0.1);
    cursor: default;
}

.benefices-section h2 {
    font-size: var(--subtitle);
    font-weight: 500;
    width: 60vw;
    margin-left: calc(20vw - 23px);
    margin-bottom: 30px;
    text-align: left;
    white-space: wrap;
    opacity: .9;
    mix-blend-mode: darken;
}

.benefices-section h2 span {
    font-weight: 600;
}

.benefices-cmy-wrapper {
    display: flex;
    justify-content: center;
    text-align: left;
    position: relative;
    z-index: 1;
    opacity: .8;
    mix-blend-mode: luminosity;
    transition: .2s ease;
}

.benefice-cmy {
    flex-basis: 25%;
    box-sizing: border-box;
    padding-right: 2vw;
}

.benefice-cmy h3 {
    font-weight: 600;
    font-size: var(--subtitle);
    margin-bottom: clamp(9px, 1vh, 16px);
}

.benefice-cmy p {
    font-size: var(--paragraph);
}

.benefice-cmy p span {
    font-size: var(--subparagraph);
    opacity: .6;
    display: block;
    margin-top: clamp(9px, 1vh, 64px);
}


.benefices-section:hover .benefices-cmy-wrapper, 
.benefices-section:hover .benefices-cmy-wrapper {
    opacity: .8;
}

.cmy-disc {
    position: absolute;
    border-radius: 50%;
    z-index: 1;
    transition: transform 0.1s ease-out;
    width: 60vw;
    height: 60vw;
    max-width: 80vw;
    max-height: 80vw;
    top: 50%;
    left: 50%;
    margin: -16.5vw 0 0 -16.5vw;
    filter: contrast(180%) brightness(100%);
    opacity: .1;
    mix-blend-mode: multiply;
}

#cyan-disc {
    background: radial-gradient(circle at center, var(--color-accent-hover) 0, var(--color-background) 30vw), url(/assets/svg/noise.svg);
    transform: translate(-20vh, -20%);
    left: -10vw;
    margin-top: -90vh;
}
#magenta-disc {
    background: radial-gradient(circle at center, #7198eb 0, var(--color-background) 20vw), url(/assets/svg/noise.svg);
    transform: translate(20%, 0%);
    margin-top: -50vh;
}
#yellow-disc {
    background: radial-gradient(circle at center, var(--color-accent) 0, var(--color-background) 20vw), url(/assets/svg/noise.svg);
    transform: translate(0%, 20%);
    opacity: .1;
}














/* --- Services Table --- */
.services-section {
    background-color: var(--color-background);
    filter: brightness(100%);
    position: relative;
}

.services-section > h2 {
    font-size: var(--subtitle);
    color: var(--color-black);
    font-weight: 500;
    width: 60vw;
    margin-left: calc(20vw - 25px);
    margin-bottom: 10px;
    text-align: left;
    white-space: wrap;
    mix-blend-mode: luminosity;
}

.services-section > p {
    font-size: var(--paragraph);
    font-weight: 400;
    margin-left: calc(20vw - 25px);
    margin-bottom: 30px;
    color: var(--color-grey);
}

.services-table-wrapper {
    overflow-x: auto;
}

.services-table-wrapper {
    width: calc(60vw - 65px);
    margin-left: calc(20vw - 25px);
    text-align: left;
    min-width: 700px;
    border-radius: 6px;
    box-sizing: border-box;
    border: 2px solid rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.services-table-wrapper .duo {
    width: 100%;
    /*border-bottom: 2px solid rgba(0, 0, 0, 0.15);*/
    overflow: visible;
}

.services-table-wrapper .duo > .single {
    width: 33.33%;
    float: left;
}

.services-table-wrapper .duo > .packs {
    width: 66.66%;
    border-left: 2px solid rgba(0, 0, 0, 0.1);
    float: right;
}

.services-table-wrapper > .partnership {
    width: 100%;
}

.services-table-wrapper .duo > div,
.services-table-wrapper > div:not(.duo) {
    box-sizing: border-box;
    padding: 20px;
}

.services-table-wrapper .duo > div > h4,
.services-table-wrapper > div:not(.duo) > h4 {
    font-size: var(--subtitle);
    font-weight: 500;
    opacity: .9;
    color: var(--color-black);
}

.services-table-wrapper .duo > div > p,
.services-table-wrapper > div:not(.duo) > p {
    font-size: var(--subparagraph);
    padding: clamp(12px, 2vh, 10px) 0;
    font-weight: 400;
    margin-bottom: 3vw;
    color: var(--color-grey);
}

.services-table-wrapper .duo > div > .card,
.services-table-wrapper > div:not(.duo) > .card {
    background: var(--color-background);
    padding: 10px;
    padding-bottom: 20px;
    box-sizing: border-box;
    border-radius: 0 0 6px 6px;
    margin-top: calc(1.2vw + 8px);
    border: 2px solid rgba(0, 0, 0, 0.1);
    border-top: none;
    transition: box-shadow .2s ease;
    cursor: pointer;
    perspective: 1000px;
    transform-style: preserve-3d;
}

.services-table-wrapper .duo > div > .card:hover {
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
    border: 2px solid transparent;
    border-top: none;
}

.services-table-wrapper .duo > div > .card:active,
.services-table-wrapper > div:not(.duo) > .card:active {
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}


.services-table-wrapper .duo > div > .card .bar,
.services-table-wrapper > div:not(.duo) > .card .bar {
    font-size: clamp(14px, .9vw, 18px);
    font-weight: 500;
    line-height: 1.2vw;
    width: calc(100% + 23px);
    background: transparent;
    padding: 4px 10px;
    border: 2px solid rgba(0, 0, 0, 0.1);
    box-sizing: border-box;
    margin-left: -11.5px;
    color: rgba(0, 0, 0, 0.6);
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-radius: 6px 6px 0 0;
    margin-top: calc(-1.2vw - 18px);
    border-bottom: none;
}

.services-table-wrapper .duo > div > .card:hover .bar,
.services-table-wrapper > div:not(.duo) > .card:hover .bar {
    background-color: var(--color-white);
    border: 2px solid transparent;
    border-bottom: none;
}





.services-table-wrapper .duo .single .card {
    border-top-left-radius: 6px;
}

.services-table-wrapper .duo .single .card .elements {
    border: 2px solid rgba(0, 0, 0, 0.1);
    width: 100%;
    height: 200px;
    margin: 10px 0;
    border-radius: 6px;
}

.services-table-wrapper .duo .single .options h4 {
    font-weight: 500;
    font-size: .9vw;
    margin-left: 40px;
    margin: 2vh 0 .5vh 40px;
    opacity: .4;
}

.services-table-wrapper .duo .single .options ul {
    list-style: square;
    margin-left: 40px;
    font-size: clamp(9px, .9vw, 18px);
}

.services-table-wrapper .duo .single .card ul {
    list-style: square;
    margin-left: 30px;
    font-size: clamp(9px, .9vw, 18px);
}

.services-table-wrapper .duo .single .card ul li {
    padding-left: 10px;
}

.services-table-wrapper .duo .single .card .cta {
    font-size: clamp(9px, .9vw, 18px);
    padding: 8px 0;
    border-radius: 5px;
    border: 2px dashed rgba(0, 0, 0, 0.4);
    opacity: .8;
    margin-top: 5px;
    cursor: pointer;
    transition: .1s ease;
}

.services-table-wrapper .duo .single .card:hover .cta {
    border: 2px solid rgba(0, 0, 0, 0.2);
    background: rgba(0, 0, 0, 0.1);
}

.services-table-wrapper .duo .single .card .cta svg {
    width: 18px;
    height: 18px;
    margin-left: 8px;
    margin-right: 10px;
    transform: translateY(3px);
}

.services-table-wrapper .duo .single .card .bar {
    width: auto;
    padding-left: 20px;
    float: right;
    margin-right: -10px;
    text-align: right;
    display: block;
    color: var(--color-accent);
    background-color: var(--color-accent-dim);
}

.services-table-wrapper .duo .single .card .bar span {
    text-align: right;
}

.services-table-wrapper .duo .packs .card .bar span b {
    font-weight: 500;
}


.services-table-wrapper .duo .packs .card {
    cursor: pointer;
    padding-bottom: 3vh;
}

.services-table-wrapper .duo .packs .card .elements {
    border: 2px solid rgba(0, 0, 0, 0.1);
    width: calc(20vw - 55px);
    height: calc(100% - 20px);
    margin: 10px 0;
    margin-right: 0px;
    border-radius: 6px;
    position: absolute;
    float: left;
}

.services-table-wrapper .duo .packs .card h4 {
    font-size: clamp(9px, .9vw, 18px);
    font-weight: 400;
    margin-left: calc(20vw - 55px + 15px + 30px);
    margin-top: 1vh;
    opacity: .6;
}

.services-table-wrapper .duo .packs .card ul {
    list-style-type: square;
    margin-top: .5vh;
    margin-left: calc(20vw - 55px + 15px);
    font-size: clamp(9px, .9vw, 18px);
}

.services-table-wrapper .duo .packs .card ul li {
    margin-left: 30px;
    font-weight: 400;
}

.services-table-wrapper .duo .packs .card ul li b {
    font-weight: 500;
}

.services-table-wrapper .duo .packs .options {
    border-left: 2px dashed rgba(0, 0, 0, 0.2);
    box-sizing: content-box;
    margin-left: calc(20vw - 45px);
    padding: 2vh 0;
    mix-blend-mode: overlay;
    max-height: 0px;
    overflow: hidden;
	transition: max-height .2s ease;
}

.services-table-wrapper .duo .packs .options:last-of-type {
    border: none;
}


.services-table-wrapper > .partnership:not(.duo) > p {
    width: 66.66%;
    margin-bottom: 0;
}

.services-table-wrapper > .partnership:not(.duo) > .card .bar {
    width: calc(40% - 20px);
    float: right;
    margin-right: -10px;
}

.services-table-wrapper > .partnership:not(.duo) > .card {
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
}

.services-table-wrapper .partnership:not(.duo) > .card:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.services-table-wrapper .partnership:not(.duo) > .card:active {
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.services-table-wrapper .partnership .card .elements {
    border: 2px solid rgba(0, 0, 0, 0.1);
    width: 100%;
    height: 15vh;
    margin: 10px 0;
    border-radius: 6px;
}

























.vision-section .hero {
    width: 100vw;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
}

.vision-section:not(.hero-section) .hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
background-image: 
  repeating-linear-gradient(
    to right,
    transparent 0,
    transparent 50px,          /* marge gauche */
    rgba(0,0,0,0.1) 50px,      /* ligne 1px */
    rgba(0,0,0,0.1) 51px,      /* ligne 1px arrêtée */
    transparent 51px,
    transparent calc(51px + (100% - 100px) * 0.2),  /* 1ère section 20% */
    
    rgba(0,0,0,0.1) calc(51px + (100% - 100px) * 0.2), /* ligne 2 */
    rgba(0,0,0,0.1) calc(52px + (100% - 100px) * 0.2),
    transparent calc(52px + (100% - 100px) * 0.2),
    transparent calc(52px + (100% - 100px) * 0.4),   /* 2ème section 20% */
    
    rgba(0,0,0,0.1) calc(52px + (100% - 100px) * 0.4), /* ligne 3 */
    rgba(0,0,0,0.1) calc(53px + (100% - 100px) * 0.4),
    transparent calc(53px + (100% - 100px) * 0.4),
    transparent calc(53px + (100% - 100px) * 0.6),   /* 3ème section 20% */
    
    rgba(0,0,0,0.1) calc(53px + (100% - 100px) * 0.6), /* ligne 4 */
    rgba(0,0,0,0.1) calc(54px + (100% - 100px) * 0.6),
    transparent calc(54px + (100% - 100px) * 0.6),
    transparent calc(54px + (100% - 100px) * 0.8),   /* 4ème section 20% */
    
    rgba(0,0,0,0.1) calc(54px + (100% - 100px) * 0.8), /* ligne 5 */
    rgba(0,0,0,0.1) calc(55px + (100% - 100px) * 0.8),
    transparent calc(55px + (100% - 100px) * 0.8),
    transparent calc(100% - 50px),  /* marge droite */
    
    rgba(0,0,0,0.1) calc(100% - 50px),
    rgba(0,0,0,0.1) calc(100% - 49px),
    transparent calc(100% - 50px)
  );

    background-size: cover;
    background-position: center;
    mix-blend-mode: multiply;
    z-index: 0;
}

.vision-section .hero h1 {
    font-weight: 500;
    color: var(--color-black);
    font-size: calc(var(--title) * 1.2);
    line-height: calc(var(--title) * 2.2);
    width: 100%;
    text-align: left;
    padding-left: calc(20vw);
    box-sizing: border-box;
    transform: translateY(-5vh);
}

.vision-section .hero h1 b {
    font-weight: 600;
    border-bottom: 1px dashed rgba(0, 0, 0, 0.2);
    transition: .2s ease;
}

.vision-section .hero h1 b:hover {
    padding-bottom: 3px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}

.vision-section .images img {
    position: absolute;
    width: 20vw;
    opacity: .2;
    filter: saturate(180%) brightness(120%) blur(10px);
    mix-blend-mode: multiply;
    transition: .2s ease;
    border-radius: 5px;
}

.vision-section .images img:hover {
    filter: saturate(180%) brightness(120%) blur(0);
    opacity: .4;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.5);
}

.vision-section .images img:nth-child(1) {
    top: 0;
    left: 200px;
    width: 30vw;

}

.vision-section .images img:nth-child(2) {
    right: 5vw;
    top: 20vh;
    width: 30vw;
}

.vision-section .images img:nth-child(3) {
    left: -5vw;
    top: 50vh;
    width: 25vw;
}



.vision-section .history {
    background: var(--color-background);
    z-index: 999;
    display: flex;
    flex-direction: row;
    padding: 0;
    padding-bottom: 10vh;
}

.vision-section .history .text {
    width: 60vw;
    box-sizing: border-box;
    padding: 30px 0;
    color: var(--color-black);
}

.vision-section .history .text p b {
    font-weight: 500;
}

.vision-section .history .text h4 {
    font-weight: 500;
    font-size: var(--subtitle);
    margin-bottom: 20px;
    color: var(--color-black);
}

.vision-section .history .text p {
    font-size: 18px;
    margin-bottom: 30px;
    width: calc(100% - 30px);
}

.vision-section .history .text .socials {
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    padding: 5px;
    padding-top: 0;
    display: inline-block;
    height: 75px;
}

.vision-section .history .text .socials h5 {
    opacity: .6;
    font-weight: 500;
    padding: 5px 0;
}

.vision-section .history .text .socials ul {
    list-style: none;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    padding: 0;
    margin: 0;
}

.vision-section .history .text .socials ul li {
    margin-right: 15px;
    transition: .1s ease;
    padding: 5px 2px;
    cursor: pointer;
    border-radius: 5px;
}

.vision-section .history .text .socials ul li:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    opacity: .8;
}

.vision-section .history .text .socials ul li:last-of-type {
    margin-right: 0;
}

.vision-section .history .text .socials ul li.facebook {
    background: #b4ccff;
}

.vision-section .history .text .socials ul li.linkedin {
    background: #bfe6fa;
}

.vision-section .history .text .socials ul li.instagram {
    background: #ffd4e3;
}

.vision-section .history .text .socials ul li a {
    color: black;
    text-transform: lowercase;
    font-size: 14px;
    margin-left: 10px;
}

.vision-section .history .text .socials ul li a img {
    width: 18px;
    height: 18px;
    margin: 0 5px;
    transform: translateY(4px);
}

.vision-section .history .text a.cta {
    display: flex;
    align-items: center;
    justify-content: center;
    float: left;
    padding: 10px 30px;
    color: rgba(0, 0, 0, 0.6);
    border-radius: 10px;
    margin-right: 20px;
    background: rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(0, 0, 0, 0.1);
    font-size: 18px;
    font-weight: 500;
    height: 75px;
    transition: .1s ease;
}

.vision-section .history .text a.cta:hover {
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
    background: var(--color-white);
    color: var(--color-accent-hover);
}

.vision-section .history .text a.cta:active {
    color: var(--color-accent);
}




.vision-section .history .image {
    width: 40vw;
    padding: 30px;
    box-sizing: border-box;
}

.vision-section .history .image img {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    object-fit: cover;
    object-position: center;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 5px;
}


.vision-section .values {
    box-sizing: border-box;
    padding: 5vh 0;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.vision-section .values h4 {
    font-weight: 500;
    font-size: 30px;
    margin-bottom: 20px;
    text-align: left;
}


.vision-section .values .cards {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    box-sizing: border-box;
    padding: 0;
    flex-direction: row;
    
}
.vision-section .values .cards div {
    width: 100%;
    background: var(--color-background);
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    padding: 20px;
    box-sizing: border-box;
}

.vision-section .values .cards div:hover {
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
}

.vision-section .values .cards div img {
    width: 100%;
    height: 15vw;
    margin-bottom: 15px;
    filter: saturate(180%) brightness(120%);
    background-color: rgba(0, 0, 0, 0.05);
}

.vision-section .values .cards div h5 {
    font-weight: 500;
    font-size: 20px;
    margin-bottom: 10px;
}

.vision-section .values .cards div p {
    font-size: 16px;
    text-align: justify;
}

.vision-section .values .cta-wrapper {
    width: 100%;
    display: flex;
    justify-content: left;
    padding: 5vh 0;
}

.vision-section .values a.cta {
    display: flex;
    align-items: center;
    justify-content: center;
    float: left;
    padding: 10px 30px;
    color: rgba(0, 0, 0, 0.6);
    border-radius: 10px;
    margin-right: 20px;
    background: rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(0, 0, 0, 0.1);
    font-size: 18px;
    font-weight: 500;
    height: 75px;
    transition: .1s ease;
    cursor: pointer;
}

.vision-section .values a.cta:hover {
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
    background: var(--color-accent);
    color: var(--color-white);
}




.vision-section .unicity {
    box-sizing: border-box;
    padding: 5vh 0;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    text-align: left;
}

.vision-section .unicity h4 {
    font-weight: 500;
    font-size: 30px;
    margin-bottom: 20px;
}


.vision-section .unicity ul {
    list-style: none;
    text-align: left;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
}

.vision-section .unicity ul li {
    padding: 10px 0;
    width: 40%;
}

.vision-section .unicity ul li h5 {
    font-size: 20px;
    font-weight: 500;
}
















section.project-section {
    width: 100%;
    padding: 0;
}


.project-section .hero {
    width: 100vw;
    height: 95vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.project-section .images {
    width: 100%;
    background-color: var(--color-white);
    z-index: 1;
}

.project-section .images .img {
    width: 100vw;
    padding: 0;
    position: relative;
    overflow: hidden;
    height: 130vh; /* Ou ta hauteur définie */
    margin-bottom: 0;
}

.project-section .images .img:last-of-type {
    border: none;
}

.caption {
    position: relative;
    z-index: 2;
    /* Tes styles de caption */
}

.project-section .images .img img {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%; /* Plus grande pour avoir de la marge de mouvement */
    object-fit: cover;
    will-change: transform; /* Optimisation GPU */

    background: rgba(0,0,0,.1);
}

.project-section .images .caption {
    padding: 0 100px;
    padding-bottom: 50px;
    position: relative; /* On le sort du flux pour le superposer */
    left: 0;
    width: 100%;
    padding: 0 100px 50px 100px; /* On garde tes espacements */
    box-sizing: border-box;
}

.project-section .images .caption svg {
    transform: rotate(90deg) scale(2) translateX(-15px) translateY(-4px);
    fill: var(--color-white);
}

.project-section .images .caption h4 {
    font-size: var(--subparagraph);
    color: var(--color-black);
    font-weight: 500;
    margin-top: -10px;
}

.project-section .images .caption p {
    font-size: var(--subparagraph);
    color: var(--color-grey);
    font-weight: 400;
    margin-top: 5px;
}

.project-section .metadata {
    position: absolute;
    width: calc(100vw - 200px);
    left: 100px;
    background: var(--color-background);
    border-radius: 0px;
    transform: translateY(-100px);
    padding: 20px;
    display: flex;
    flex-direction: row;
}

.project-section .metadata .left {
    height: 100%;
    width: 50%;
}

.project-section .metadata .right {
    height: 100%;
    width: 50%;
}


.project-section .metadata span {
    font-size: var(--subparagraph);
    color: rgba(0, 0, 0, 0.6);
    text-transform: uppercase;
    font-weight: 500;
}

.project-section .metadata h4 {
    font-weight: 500;
    font-size: var(--title);
}

.project-section .metadata p {
    color: rgba(0, 0, 0, 0.6);
    font-size: var(--paragraph);
    width: 100%;
    margin: 5px 0;
    line-height: 25px;
}


.project-section .table {
    display: grid;
    /* Les 3 premières colonnes s'adaptent au contenu, la 4ème (si existante) aussi */
    /* 'max-content' force la colonne à prendre la largeur du texte le plus long sans wrapper */
    grid-template-columns: max-content max-content max-content 1fr; 
    
    border: 1px solid rgba(0, 0, 0, 0.2);
    margin-top: 80px;
    width: calc(100% - 200px);
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 80px;
    box-sizing: border-box;
    border-radius: 6px;
    overflow: hidden;
}

.project-section .table > div {
    padding: 15px 20px;
    display: flex;
    flex-direction: column;
    border-right: 1px solid rgba(0, 0, 0, 0.2);
    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
    /* Empêche le texte de se coller au bord si la cellule est très serrée */
    min-width: 120px; 
}

/* --- Gestion des lignes --- */

/* Le défi (project_goal) prend les 3 colonnes de la nouvelle ligne */
.project-section .table > .project_goal {
    grid-column: span 3;
    border-right: none !important;
    border-bottom: none;
}

/* On enlève la bordure droite du 3ème élément (Phase) pour la propreté */
.project-section .table > div:nth-last-child(2) {
    border-right: none;
}

/* --- RESPONSIVE --- */

@media (max-width: 1024px) {
    .project-section .table {
        width: calc(100% - 40px);
        margin-left: 20px;
        /* Passage en 2 colonnes sur tablette */
        grid-template-columns: repeat(2, 1fr);
    }
    
    /* On remet des bordures en bas pour l'aspect grille */
    .project-section .table > div {
        border-bottom: 1px solid rgba(0, 0, 0, 0.2);
    }
}

@media (max-width: 600px) {
    .project-section .table {
        /* Passage en 1 seule colonne sur mobile */
        grid-template-columns: 1fr;
    }
}

.project-section .table > div span:not(.dynamic) {
    font-size: var(--subparagraph);
    color: var(--color-grey);
    text-transform: uppercase;
    font-weight: 400;
    display: block;
}

.project-section .table > div span.dynamic {
    font-size: var(--paragraph);
    color: var(--color-black);
    font-weight: 500;
    min-width: 200px;
    display: block;
}







.project-section .metadata .card {
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 0 0 10px 10px;
    padding: 15px;
    box-sizing: border-box;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    margin-bottom: 20px;
    margin-top: 60px;
    cursor: pointer;
}

.project-section .metadata .card:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.project-section .metadata .card .bar {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2vw;
    width: calc(100% + 12px);
    background: #e8e8e8;
    padding: 4px 10px;
    box-sizing: content-box;
    margin-left: -16px;
    color: rgba(0, 0, 0, 0.6);
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-radius: 10px 10px 0 0;
    margin-top: calc(-1.2vw - 10px - 10px);
}


.project-section .metadata .card .elements {
    border: 2px solid rgba(0, 0, 0, 0.1);
    width: 100%;
    height: 100px;
    margin-top: 10px;
    border-radius: 5px;
}


.project-section .metadata .invite {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    padding-top: 20px;
}

.project-section .metadata .invite h5 {
    font-weight: 500;
    font-size: 16px;
    margin-bottom: 10px;
}

.project-section .metadata .invite p {
    font-size: 14px;
    margin-bottom: 10px;
}

.project-section .metadata .invite a.cta {
    display: flex;
    align-items: center;
    justify-content: center;
    float: left;
    padding: 10px 20px;
    color: rgba(0, 0, 0, 0.6);
    border-radius: 5px;
    margin-right: 20px;
    width: 100%;
    background: rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(0, 0, 0, 0.1);
    font-size: 14px;
    font-weight: 500;
    height: 50px;
    transition: .1s ease;
    cursor: pointer;
}

.project-section .metadata .invite a.cta:hover {
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
    background: var(--color-white);
    color: var(--color-accent-hover);
}

.project-section .metadata .invite a.cta:active {
    color: var(--color-accent);
}



.project-section .metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    padding: 0 100px;
    margin-top: 50px;
}


.project-section .metrics > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.project-section .metrics > div h1 {
    font-size: calc(2 * var(--title));
    color: var(--color-black);
    font-weight: 400;
    margin: 0;
}

.project-section .metrics > div p {
    font-size: var(--paragraph);
    color: var(--color-grey);
    font-weight: 400;
    margin-top: -10px;
}

.project-section .metrics > div p span {
    color: var(--color-black);
    font-weight: 500;
}

.project-section .testimonial {
    margin: 50px 200px;
    border-radius: 16px;
    padding: 10px;
    width: calc(100vw - 400px);
    min-height: 120px;
    box-shadow: 0 10px 50px rgba(0, 0, 0, .2);
}

.project-section .testimonial .img {
    float: left;
    width: 100px;
    height: 100px;
    background-color: rgba(0, 0, 0, 0.1);
    background-position: center;
    background-size: cover;
    border-radius: 160px;
    margin-right: 20px;
}

.project-section .testimonial p {
    font-size: var(--paragraph);
    color: var(--color-black);
    font-weight: 500;
    text-align: left;
}

.project-section .testimonial p::before {
    content: '“';
    color: var(--color-accent);
    vertical-align: top;
    margin-left: -10px;
    margin-right: 2px;
}

.project-section .testimonial p::after {
    content: '”';
    color: var(--color-accent);
    vertical-align: bottom;
    margin-left: 2px;
    margin-right: -10px;
}



.project-section .testimonial a {
    font-size: var(--paragraph);
    color: var(--color-grey);
    font-weight: 400;
    margin-top: 6px;
    display: block;
}

.project-section .testimonial a[href] {
    color: var(--color-accent);
    text-decoration: none;
    transition: .1s ease;
}

.project-section .testimonial a[href]:hover {
    color: var(--color-accent-hover);
}



.projects-section {
    display: block;
    text-align: left;
    width: 100%;
    height: auto;
    z-index: 10;
    position: relative;
    background-color: var(--color-white);
}

.projects-section::before {
    display: none;
}

.projects-section > h2 {
    font-size: var(--title);
    color: var(--color-black);
    font-weight: 500;
    text-align: left;
    margin-left: calc(20vw - 25px);
    margin-top: 50px;
    margin-bottom: 0px;
}

.projects-section > p {
    font-size: var(--paragraph);
    margin-top: 10px;
    margin-left: calc(20vw - 25px);
    width: calc(60vw);
    color: var(--color-grey);
}

.projects-section .list {
    margin-top: 10px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px; /* espace entre les éléments, ajuste si besoin */
}


.projects-section .list div {
    cursor: pointer;
}

.projects-section .list div .card {
    height: 40vh;
    width: 100%;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 6px;
    transition: .1s ease;
    background-position: center;
    background-size: cover;
}

.projects-section .list div:hover .card {
    transform: scale(1.02);
    box-shadow: 0 5px 10px rgba(0,0,0,.1);
}

.projects-section .list div h4 {
    font-size: var(--paragraph);
    font-weight: 500;
    margin-top: 5px;
    margin-left: 5px;
}

.projects-section .list div p {
    margin-top: 0px;
    color: rgba(0, 0, 0, 0.6);
    font-weight: 500;
    font-size: 14px;
    margin-left: 5px;
}

.projects-section .list div .bar {
    width: 100%;
    text-align: right;
}

.projects-section .list div .bar span {
    background: rgba(0, 0, 0, 0.1);
    font-size: 14px;
    padding: 2px 12px;
    border-radius: 5px 5px 0 0;
    display: inline-block;
    transition: .1s ease;
    margin-right: 10px;
    transform: translateY(10px);
    opacity: 0;
}

.projects-section .list div:hover .bar span {
    opacity: 1;
    transform: translateY(-2px);
}


.projects-section .list div.cta .card {
    border: 2px dashed var(--color-accent-hover);
}

.projects-section .list div.cta:hover .card {
    transform: none;
    box-shadow: none;
    border: 2px dashed var(--color-accent);
}

.projects-section .list div.cta .bar {
    opacity: 0;
}

.projects-section .list div.cta h4 {
    color: var(--color-accent-hover);
}

.projects-section .list div.cta p {
    color: var(--color-black);
    opacity: .4;
}

.projects-section .list div.cta:hover h4 {
    color: var(--color-accent);
}

.projects-section .list div.cta:hover p {
    color: var(--color-accent);
    opacity: .6;
}





.cgv-section,
.legal-section {
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.cgv-section > .section .preambule,
.legal-section > .section .preambule {
    margin-top: 50px;
}

.cgv-section > div,
.legal-section > div {
    border-bottom: 1px solid rgba(0, 0, 0, .2);
    padding-bottom: 30px;
    margin-bottom: 30px;
    width: 100%;
    max-width: 800px;
}

.cgv-section h2,
.legal-section h2 {
    text-align: left;
    font-size: var(--subtitle);
    font-weight: 400;
    margin-top: 0;
    margin-bottom: 0;
}

.cgv-section h3,
.legal-section h3 {
    font-size: var(--paragraph);
    font-weight: 500;
    margin-top: 20px;
    margin-bottom: 10px;
}

.cgv-section p,
.legal-section p {
    font-size: var(--subparagraph);
    margin-bottom: 20px;
    text-align: justify;
}

.cgv-section ul,
.legal-section ul {
    color: var(--color-grey);
    list-style-type: square;
    list-style-position: inside;
    margin-bottom: 20px;
}











section.target-section {
    display: block;
    text-align: left;
    width: 100%;
    height: 90vh;
    z-index: 10;
    position: fixed;
    top: 0;
    background-position: center;
    background-size: cover;
    background-image: url(/assets/illustrations/TAP-rhino.png);
    display: flex;
    justify-content: center;
    flex-direction: column;
    overflow: hidden;
    z-index: 0;
    position: relative;
}

section.target-section::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 90vh;
    background-image: url(/assets/illustrations/TAP-postprod.png);
    background-position: center;
    background-size: cover;
    pointer-events: none;
    z-index: 0;
    opacity: 1;
    clip-path: polygon(var(--reveal-x, 100vw) 0%, 100vw 0%, 100vw 100vw, var(--reveal-x, 100vw) 100vw);
    transition: clip-path .1s ease;
}

section.target-section::before {
    display: none;
}


section.target-section .hero-content {
    background-color: var(--color-white);
    margin-bottom: -55vh;
    display: flex;
    position: absolute;
    z-index: 3;
    width: calc(100% - 100px);
    flex-direction: column;
    justify-content: left;
    box-sizing: border-box;
    padding: 50px;
    padding-bottom: 100px;
    transition: none;
    transform: translateY(50px);
    border-radius: 6px;
}

section.target-section .hero-content span {
    text-transform: uppercase;
    font-size: var(--subparagraph);
}

section.target-section .hero-content h1 {
    font-size: var(--title);
    font-weight: 500;
    text-align: left;
    margin: 0;
    padding-top: 0;
    padding-bottom: 20px;
}


section.target-section .hero-content p {
    font-size: var(--paragraph);
    font-weight: 500;
    text-align: left;
    margin: 0;
    max-width: 1000px;
    width: 100%;
    color: gray;
}

section.specs-section {
    display: block;
    text-align: left;
    width: 100%;
    z-index: 10;
    position: relative;
    padding: 50px 100px;
    display: flex;
    justify-content: center;
    flex-direction: column;
    overflow: hidden;
    z-index: 10;
}


section.specs-section::before {
    display: none;
}




section.specs-section > h4 {
    text-align: left;
    width: 80vw;
    font-size: var(--subtitle);
    font-weight: 500;
    margin: 30px 0 10px 0;
}

section.specs-section > p {
    text-align: left;
    font-size: var(--paragraph);
    color: var(--color-grey);
    font-weight: 400;
    margin-bottom: 40px;
    width: 40vw;
}



section.specs-section .specs-grid {
    display: flex;
    flex-direction: row;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 16px;
}

section.specs-section .specs-grid > div {
    flex-basis: 33.33%;
    padding: 10px;
    box-sizing: border-box;
}

section.specs-section .specs-grid > div:not(:first-of-type) {
    border-left: 1px solid rgba(0, 0, 0, 0.1);
}

section.specs-section .specs-grid > div .img {
    width: 100%;
    height: 40vh;
    margin-bottom: 10px;
    background-color: rgba(0, 0, 0, .1);
    border-radius: 6px;
}

section.specs-section .specs-grid > div h4 {
    font-size: var(--paragraph);
    font-weight: 500;
    margin-bottom: 5px;
    padding: 0 6px;
}

section.specs-section .specs-grid > div p {
    font-size: var(--subparagraph);
    font-weight: 400;
    margin-bottom: 5px;
    color: var(--color-grey);
    padding: 0 6px;
    text-align: justify;
}






section.missions-section {
    display: block;
    text-align: left;
    width: 100%;
    z-index: 10;
    position: relative;
    display: flex;
    justify-content: center;
    flex-direction: column;
    overflow: hidden;
    z-index: 10;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}


section.missions-section::before {
    display: none;
}


section.missions-section > h4 {
    text-align: left;
    width: 80vw;
    font-size: var(--subtitle);
    font-weight: 500;
    margin: 30px 0 10px 0;
}

section.missions-section > p {
    text-align: left;
    font-size: var(--paragraph);
    color: var(--color-grey);
    font-weight: 400;
    margin-bottom: 40px;
    width: 40vw;
}


section.missions-section .list > div {
    width: 100%;
    height: 70vh;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 16px;
    box-sizing: border-box;
    padding: 10px;
    display: flex;
    flex-direction: row;
    justify-content: left;
    margin-bottom: 30px;
}

section.missions-section .list > div .left {
    width: calc(100% - 400px);
    height: 100%;
    border-radius: 6px;
    background-color: rgba(0, 0, 0, .1);
}

section.missions-section .list > div .right {
    width: 400px;
    height: 100%;
    padding: 0 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: left;
    justify-content: center;
}

section.missions-section .list > div .right span {
    font-size: var(--subparagraph);
    text-transform: uppercase;
    color: var(--color-grey);
}

section.missions-section .list > div .right p {
    font-size: var(--paragraph);
    color: black;
    margin-bottom: 30px;
    text-align: justify;
}




section.config-section {
    display: block;
    text-align: left;
    width: 100%;
    margin-bottom: 0;
    padding-bottom: 0;
    z-index: 10;
    position: relative;
    display: flex;
    justify-content: center;
    flex-direction: column;
    overflow: hidden;
    z-index: 10;
}


section.config-section::before {
    display: none;
}



section.config-section > h4 {
    text-align: left;
    width: 80vw;
    font-size: var(--subtitle);
    font-weight: 500;
    margin: 30px 0 10px 0;
}

section.config-section > p {
    text-align: left;
    font-size: var(--paragraph);
    color: var(--color-grey);
    font-weight: 400;
    margin-bottom: 40px;
    width: 40vw;
}


section.config-section .list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 30px;
    padding: 0;
    align-items: stretch;
}

section.config-section .config-card {
    border: 1px solid rgba(0, 0, 0, .1);
    display: flex;
    flex-direction: column;
    border-radius: 6px;
    cursor: crosshair;
    display: block;
}

section.config-section .config-card:hover {
    border-color: var(--color-accent);
}

/* Titres des Packs */
section.config-section .card-header h4 {
    font-size: var(--paragraph);
    font-weight: 500;
    padding: 15px 40px;
    padding-top: 40px;
    color: var(--color-black);
}

section.config-section .config-card:hover h4 {
    color: var(--color-accent-hover);

}

section.config-section .card-header p {
    font-size: var(--subparagraph);
    color: var(--color-grey);
    padding: 15px 40px;
    padding-top: 0;

}

/* Liste des missions incluses */
section.config-section .card-list {
    list-style: none;
    padding: 0;
    margin: 0 0 50px 0;
    height: 20vh;
    flex-grow: 1;
}

section.config-section .card-list li {
    font-size: var(--subparagraph);
    color: var(--color-black);
    padding: 15px 40px;
    border-bottom: 1px solid rgba(0, 0, 0, .1);
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

section.config-section .card-list li strong {
    color: var(--color-grey);
    font-family: "IBM Plex Mono";
    font-weight: 500;
}

section.config-section .card-list li span {
    color: var(--color-grey);
}

/* Affichage du prix */
section.config-section .card-footer .total-price {
    font-family: monospace;
    font-size: 1.4rem;
    color: var(--color-black);
    display: block;
    margin-top: 20px;
}

/* --- VARIATION : PACK FEATURED (CONCOURS) --- */

section.config-section .config-card.featured {
    border: 1px solid var(--color-accent);
    position: relative;
}


section.config-section .config-card.featured:hover {
    border-color: var(--color-accent-hover);
}

section.config-section .config-card.featured::after {
    content: "RECOMMANDÉ";
    position: absolute;
    top: -10px;
    right: 20px;
    padding: 0 10px;
    background-color: var(--color-white);
    color: var(--color-accent);
    font-size: calc(var(--subparagraph) * .8);
}

/* --- VARIATION : CUSTOM BUILD (LE FAUX PACK) --- */

section.config-section .config-card.custom-build {
    border: 1px dashed rgba(0, 0, 0, .2);
}

section.config-section .config-card.custom-build:hover {
    border: 1px dashed var(--color-accent-hover);
}

section.config-section .config-card.custom-build .card-content-custom p {
    font-size: var(--subparagraph);
    color: var(--color-grey);
    margin-bottom: 40px;
    padding: 0 40px;
}

section.config-section .config-card .btn-custom {
    display: flex;
    justify-content: space-between;
    padding: 15px 25px;
    margin: 20px;
    width: calc(100% - 40px);
    border: 1px solid rgba(0, 0, 0, .1);
    color: var(--color-black);
    text-decoration: none;
    font-size: var(--subparagraph);
    text-align: center;
    border-radius: 6px;
    transition: .1s ease;
}

section.config-section .config-card:hover .btn-custom {
    background: var(--color-accent-dim);
    color: var(--color-accent-hover);
}

/* Mobile Adjustments */
@media (max-width: 768px) {
    section.config-section {
        grid-template-columns: 1fr;
        padding: 40px 20px;
    }
}











/* ===== MEDIA QUERIES ===== */
@media (max-width: 900px) {

    section.steps-section:not(.hero-section) {
        padding: var(--container-margin) 50px;
    }
    
    section.benefices-section:not(.hero-section) {
        height: auto;
    }

    section.benefices-section h2 {
        text-align: center;
        margin-left: 0;
        width: 100%;
    }

    .benefices-cmy-wrapper div.benefice-cmy {
        flex-basis: 30%;
    }
    
    .services-table-wrapper {
        margin-left: 0;
        width: 100%;
    }

    .services-section > h2 {
        margin-left: 0;
        margin-bottom: 30px;
    }

    .projects-section .list {
        grid-template-columns: repeat(2, 1fr);
        margin-top: 0;
    }

    .projects-section h2 {
        margin-top: 0;
    }
}

@media (max-width: 600px) {
    :root {
        --container-margin: 20px;
    }

    .main-nav .nav-container {
        display: flex;

     }

    .main-nav .nav-logo {
        width: auto;
        flex-basis: auto;
        float: none;
        margin-left: 0px;
    }

    .main-nav .nav-logo img {
        margin-left: 0;
    }
    
    .main-nav h2 {
        width: auto;
        display: inline-block;
        position: absolute;
        z-index: 2;
        top: 8px;
        transition: .1s ease;
    }

    .main-nav.solid h2 {
        top: 10px;
    }

    .main-nav .nav-item {
        display: none;
    }

    .main-nav .burger {
        display: block;
        transition: .1s ease;
        top: 10px;
        right: 0;
    }

    .main-nav.solid .burger {
        top: 0px;
    }

    .main-nav .burger .bar {
        width: 100%;
        height: 2px;
        background-color: #000000;
        margin: 3px 0;
        transition: transform .15s ease-in-out, opacity 0.15s ease-in-out;
        transform-origin: center;
    }

    /* État 'actif' : Transformation en croix */
    .main-nav .burger.active .bar-1 {
    transform: translateY(5px) rotate(45deg);
    }

    .main-nav .burger.active .bar-2 {
    opacity: 0; /* La barre du milieu disparaît */
    }

    .main-nav .burger.active .bar-3 {
    transform: translateY(-5px) rotate(-45deg);
    }

    .main-nav .burger-content {
        display: block;
        width: 100vw;
        box-sizing: border-box;
        padding: 0 20px;
        background-color: var(--color-background);
        position: absolute;
        left: 0;
        top: 0;
        box-shadow: 0 20px 20px rgba(0, 0, 0, 0.2);
        max-height: 300px;
        overflow: hidden;
        white-space: nowrap;
        transition: .3s ease-out;
        z-index: 1;
        mix-blend-mode: luminosity;
    }

    .main-nav .burger-content.hidden {
        max-height: 0;
        box-shadow: 0 0px 0px rgba(0, 0, 0, 0);
    }

    #overlay {
        position: fixed;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.2);
        backdrop-filter: blur(20px) saturate(180%);
        -webkit-backdrop-filter: blur(20px) saturate(180%);
        z-index: 2;
        transition: .2s ease;
    }

    #overlay.hidden {
        backdrop-filter: blur(0px) saturate(100%);
        -webkit-backdrop-filter: blur(0px) saturate(100%);
        background-color: rgba(0, 0, 0, 0);
    }

    .main-nav .burger-content ul {
        list-style: none;
        padding-bottom: 20px;
        margin-top: 80px;
        width: 50%;
    }

    .main-nav .burger-content ul li {
        font-weight: 500;
        font-size: 18px;
        padding: 5px 0;
        opacity: .8;
        width: auto;
    }

    .main-nav .burger-content ul li:active {
        opacity: 1;
        color: var(--color-accent-hover);
    }

    .main-nav .burger-content .socials {
        float: right;
        margin-top: -55px;
        display: flex;
        flex-direction: row;
    }

    .main-nav .burger-content .socials svg {
        height: 24px;
        width: 24px;
        padding: 5px;
        box-sizing: content-box;
        fill: black;
        opacity: .4;
    }

    .main-nav .burger-content .socials svg:active {
        opacity: 1;
    }









    section {
        overflow-x: hidden;
    }

    .hero-section {
        width: 100vw;
        overflow: hidden;
        box-sizing: border-box;
    }

    .hero-section::before {
        position: fixed;
        background-image:   linear-gradient(to bottom, transparent, rgba(0,0,0,.4) 70%), var(--hero-bg-url);
    }

    .hero-section .text {
        bottom: 0;
        margin: 0;
        width: calc(100vw - 40px);
        bottom: 150px;
        position: absolute;
    }

    .hero-content h2.left {
        margin-left: 0;
        text-align: left;
        font-size: calc(var(--title) * 1.5);
        line-height: calc(var(--title) * 1.8);
        letter-spacing: normal;
    }

    .hero-content h2.left span {
        width: 100%;
        margin-top: 10px;
        font-size: var(--subtitle);
        line-height: calc(var(--subtitle) * 1.8);
    }
    
    .hero-content .smartlink {
        display: none;
    }

    .hero-content .cta-button {
        text-indent: 20px;
        position: absolute;
        margin: 0;
        bottom: 7vh;
        right: auto;
        left: 0;
        margin-left: 20px;
        width: calc(100% - 40px);
    }

    .hero-content .cta-button::after {
        bottom: -25px;
        opacity: 1;
        width: 100%;
        margin-left: 0;
        text-align: center;
    }

    .hero-content .cta-button span {
        text-indent: 0;
        font-weight: 500;
    }

    .hero-content h1 {
        font-size: 2.2rem;
    }






    section.value-proposition-section:not(.hero-section) {
        padding: 8vh 20px;
        border: none;
    }

    section.value-proposition-section p {
        font-size: calc(var(--title) * 1.1);
    }



    

    section.faq-section:not(.hero-section) {
        padding: 5vh 20px;
        border: none;
    }

    section.faq-section .list > div.selected p {
        max-height: 200px;
    }

    section.faq-section .list > div h5 {
        width: calc(100% - 50px);
    }

    section.faq-section .list > div:hover:not(.selected) h5 {
        color: var(--color-black);
    }

    section.faq-section .list > div svg {
        margin-top: -5px;
    }
    
    section.faq-section .list > div:hover:not(.selected) svg {
        fill: var(--color-black);
        background-color: transparent;
    }



    section.benefices-section:not(.hero-section) {
        background: linear-gradient(120deg, rgb(255, 247, 244) 0%, rgb(243, 245, 255) 100%);
        height: auto;
        padding: 0px;
        margin: 0;
    }

    .benefices-section .cmy-disc {
        display: none;
    }

    .benefices-section h2 {
        width: 100%;
        margin: 0;
        font-weight: 500;
        text-align: left;
        margin-left: 20px;
    }

    .benefices-section h2 span {
        font-weight: 700;
    }

    .benefices-section .benefices-cmy-wrapper {
        display: flex;
        flex-direction: column;
        opacity: 1;
        margin: 0px;
        padding: 0 10px;
        margin-top: 20px;
        mix-blend-mode: luminosity;
    }

    .benefices-section .benefice-cmy {
        padding: 20px;
        width: 100%;
        text-align: left;
        border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    }

    .benefices-section .benefice-cmy h3 {
        font-size: 18px;
        opacity: 1;
        margin-bottom: 5px;
    }

    .benefices-section .benefice-cmy p {
        font-size: 14px;
        opacity: .8;
        width: 100%;
    }

    .benefices-section .benefice-cmy:last-of-type {
        border: none;
    }

    .projects-wide-section.homepage {
        padding: 0;
        padding-top: 30px;
        padding-bottom: 5vh;
        border: none;
    }

    .projects-wide-section > h4 {
        width: calc(100vw - 60px);
        margin-left: 30px;
    }

    .projects-wide-section > p {
        width: calc(100vw - 60px);
        margin-left: 30px;
        text-align: justify;
        margin-bottom: 100px;
    }

    .projects-wide-section.homepage .list {
        grid-template-columns: 1fr;
        padding: 0 20px;
        margin-bottom: 5vh;
        border: none;
    }

    .projects-wide-section.homepage .list div .card {
        height: 50vh;
        margin-top: 30px;
        background-repeat: no-repeat;
    }

     .projects-wide-section.homepage .list div .info .name {
        width: 80%;
        overflow: visible;
            /* Le masque magique */
    -webkit-mask-image: linear-gradient(to right, black 30%, transparent 100%);
    mask-image: linear-gradient(to right, black 30%, transparent 100%);
     }


    .projects-wide-section.homepage .list div .info .date {
        display: none;
     }

    .projects-wide-section.homepage .list div .info .location {
        width: auto;
        text-align: right;
        overflow: visible;
        white-space: nowrap;
        position: absolute;
        right: 30px;
     }

    .segmentation-section > h4,
    .segmentation-section > p {
        width: calc(100% - 60px);
        margin-left: 0px;
    }

    .segmentation-section > p {
        text-align: justify;
        margin-bottom: 30px;
    }

    .segmentation-section:not(.hero-section) .segments-wrapper {
        flex-direction: column;
        padding: 0;
        margin: 0;
        margin-top: 20px;
        width: calc(100% - 20px);
    }

    .segmentation-section:not(.hero-section) .segments-wrapper div {
        width: 100%;
        border: none;
    }

    .segmentation-section:not(.hero-section) .segments-wrapper div ul {
        height: auto;
    }

    .segmentation-section:not(.hero-section) .segments-wrapper div:not(.segmentation-section:not(.hero-section) .segments-wrapper div:first-of-type) {
        border-top: 2px solid rgba(0, 0, 0, 0.1);
        border-left: none;
        padding-top: 5vh;
        margin-top: 2vh;
    }



    .timeline-section .fixed-wrapper{
        transition: opacity .1s ease, margin-left .2s ease;
        margin-left: -100vw;
        opacity: 0;
    }

    .timeline-section.visible .fixed-wrapper {
        margin-left: 0;
        opacity: 1;
    }


    .timeline-section.visible .fixed-wrapper {
        top: 20vh;
    }

    .timeline-section .line {
        transform: rotate(90deg) translateY(calc(50vh + 20px)) translateX(-30px);
        width: 100vh;
        margin-top: 100px;
        position: absolute;
        transition: transform .2s ease;
    }

    .timeline-section.visible .line {
        transform: rotate(90deg) translateY(calc(50vh - 40px)) translateX(-30px);
    }

    .timeline-section .timeline-container {
        flex-direction: column;
        width: calc(100% - 80px);
        margin-left: 60px;
        position: fixed;
        bottom: 20vh;
    }
    
    .timeline-section .timeline-container > div::before {
        transform: translateX(-40px);
    }

    .timeline-section .timeline-container > div {
        padding-top: 10px;
    }

    
    .timeline-section .timeline-container > div img {
        display: none;
    }

    .timeline-section .timeline-container > div .step-content h5 {
        margin-bottom: 0;
    }



/* On cache l'en-tête du tableau */

section.pricing-section table.bpu-table {
    width: calc(100vw - 40px);
}


  .bpu-table thead {
    display: none;
  }

  /* Chaque ligne devient une carte */
  .bpu-table tr {
    display: flex;
    flex-direction: column;
    padding: 20px;
    border-bottom: 1px solid rgba(0, 0, 0, .1);
  }

  /* Chaque cellule s'affiche l'une sous l'autre */
section.pricing-section table.bpu-table td {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    padding: 4px 0 !important;
    border: none !important;
  }

  /* On stylise les colonnes pour qu'elles restent claires */
section.pricing-section table.bpu-table td.ref { /* CODE (F-01...) */
    color: var(--color-grey);
  }

section.pricing-section table.bpu-table td.designation { /* MISSION */
    text-transform: uppercase;
  }

section.pricing-section table.bpu-table td.specs { /* DESCRIPTION */
    margin-bottom: 10px;
    color: var(--color-grey);
  }

section.pricing-section table.bpu-table td.price { /* PRIX */
    text-align: right; /* Le prix ressort à droite */
  }



section.pricing-section .table-footer .disclaimer {
    width: calc(100vw - 40px);
}





.testimonial-section .list div {
    width: 80vw;
    max-height: 80px;
}

.testimonial-section > h4 {
    margin-left: 30px;
}

.testimonial-section > p {
    margin-left: 30px;
    width: calc(100vw - 60px);
    text-align: justify;
}

.testimonial-section .list div strong {
    margin-top: 0;
    display: block;
}

.testimonial-section > a {
    width: calc(100vw - 40px);
    margin-left: 20px;
}






    section.steps-section:not(.hero-section) {
        padding: 0 20px;
    }

    section.steps-section > h2 {
        margin: 20px 0;
        width: 100%;
        text-align: left;
    }


    section.steps-section .steps-wrapper {
        flex-direction: column;
        padding: 0;
        margin: 0;
        margin-bottom: var(--container-margin);
    }


    section.steps-section .steps-wrapper .side {
        width: 100%;
        display: flex;
        flex-direction: row;
    }

    section.steps-section .steps-wrapper .side h4,
    section.steps-section .steps-wrapper .side p {
        display: none;
    }

    section.steps-section .steps-wrapper .side div {
        padding: 15px;
        width: auto;
        text-align: center;
    }

    section.steps-section .steps-wrapper .side div svg {
        margin: 0;
    }

    section.steps-section .steps-wrapper .side div:not(.steps-section .steps-wrapper .side div:last-child)::before {
        transform: rotate(90deg);
        position: absolute;
        top: 0;
        margin-left: 40px;
        height: 20px;
    }

    section.steps-section .steps-wrapper {
        margin-top: 20px;
    }

    section.steps-section .steps-wrapper .mobile-texts {
        display: flex;
        flex-direction: column;
        width: 100%;
        margin-bottom: 20px;
    }

    section.steps-section .steps-wrapper .mobile-texts div {
        max-height: 0;
        width: 100%;
        overflow: hidden;
        box-sizing: border-box;
        padding: 0 20px;
        transition: .1s ease;
        opacity: 0;
    }

    section.steps-section .steps-wrapper .mobile-texts div.active {
        max-height: 200px;
        opacity: 1;
    }

    section.steps-section .steps-wrapper .mobile-texts div h4 {
        font-size: var(--subtitle);
        font-weight: 500;
    }
    
    section.steps-section .steps-wrapper .mobile-texts div p {
        font-size: var(--paragraph);
        font-weight: 400;
    }

    section.steps-section .steps-wrapper .images {
        height: 60vw;
        width: 100%;
    }

    section.steps-section .steps-wrapper .side div:not(.steps-section .steps-wrapper .side div:last-child).active::before {
        margin-top: 37px;
        margin-left: 45px;
    }








    .services-section {
        margin: 0;
        width: 100vw;
        overflow: visible;
    }

    .services-section h2 {
        font-size: 20px;
        margin: 0;
        width: 100%;
    }

    .services-section p {
        font-size: var(--paragraph);
        margin-left: 0;
    }


    section.services-section .services-table-wrapper {
        margin: 0;
        padding: 0;
        display: block;
        width: 100%;
        margin-top: 20px;
        position: relative;
        min-width: auto;
    }

    .services-table-wrapper .duo {
        display: flex;
        flex-direction: column;
        width: 100%;
        position: relative;
    }

    .services-table-wrapper .duo .single {
        display: block;
        width: 100%;
        position: relative;
    }

    .services-table-wrapper .duo .single p {
        margin-bottom: 40px;
        width: 100%;
        text-align: justify;
    }

    .services-table-wrapper .duo .single .card .bar,
    .services-table-wrapper .duo .single .card:hover .bar {
        font-size: 14px;
        line-height: 20px;
        margin-top: -38px;
    }

    .services-table-wrapper  .duo .single .card ul {
        font-size: 14px;
    }

    .services-table-wrapper  .duo .single .card ul li {
        padding: 5px 0;
    }

    .services-table-wrapper .duo .single .card .cta {
        font-size: 14px;
    }

    .services-table-wrapper .duo .single .options h4 {
        font-size: 14px;
    }

    .services-table-wrapper .duo .single .options ul {
        font-size: 14px;
    }

    .services-table-wrapper  .duo .single .options ul li {
        padding: 5px 0;
    }

    .services-table-wrapper .duo .packs {
        width: 100%;
        border-left: none;
        border-top: 2px solid rgba(0, 0, 0, 0.15);
    }

    .services-table-wrapper .duo .packs > p {
        margin-bottom: 40px;
        width: 100%;
    }

    .services-table-wrapper .duo .packs .card .bar {
        font-size: 12px;
        line-height: 20px;
        font-weight: 500;
    }

    .services-table-wrapper .duo .packs .card .bar span {
        display: block;
    }

    .services-table-wrapper .duo .packs .card .bar span b {
        display: none;
    }

    .services-table-wrapper .duo .packs .card .elements {
        width: 100%;
        position: relative;
        height: 100px;
    }

    .services-table-wrapper .duo .packs .card h4 {
        margin-left: 30px;
        font-size: 14px;
    }

    .services-table-wrapper .duo .packs .card ul {
        margin-left: 0;
        font-size: 14px;
    }
    
    .services-table-wrapper .duo .packs .card ul li {
        padding: 3px 0;
    }

    .services-table-wrapper > .partnership:not(.duo) p {
        width: 100%;
        text-align: justify;
        margin-bottom: 30px;
    }

    .services-table-wrapper > .partnership:not(.duo) .card .bar {
        line-height: 20px;
        font-size: 14px;
        width: 100%;
    }
















    .vision-section:not(.hero-section) .hero {
        justify-content: left;
        margin-left: 10px;
        padding: 20vh 0;
        height: auto;
    }

    .vision-section:not(.hero-section) .hero::before {
        background-image: none;
    }

    .vision-section:not(.hero-section) .hero h1 {
        font-size: 24px;
        margin-left: 0px;
        padding-left: 0;
        width: calc(100% - 40px);
        transform: translateY(2vh);
        text-align: left;
    }

    .vision-section:not(.hero-section) .hero h1 br {
        display: none;
    }


    .vision-section .history {
        flex-direction: column;
        padding: 0 10px;
        border-top: 1px solid rgba(0, 0, 0, .1);
    }

    .vision-section .history .text {
        width: 100%;
    }

    .vision-section .history .text p {
        width: 100%;
        text-align: justify;
    }

    .vision-section .history .text .socials {
        height: auto;
        width: 100%;
        margin-top: 10px;
    }

    .vision-section .history .text a.cta {
        width: 100%;
        margin-top: 20px;
    }

    .vision-section .history .image {
        width: 100%;
        height: 40vh;
        padding: 0;
        margin-top: 20px;
        margin-bottom: 40px;
    }


    .vision-section .values .cards {
        flex-direction: column;
    }

    .vision-section .values .cards > div img {
        height: 30vh;
        width: 100%;
        margin-bottom: 10px;
    }

    .vision-section .values a.cta {
        width: 100%;
        margin-right: 0;
    }

    .vision-section .unicity ul li {
        width: 100%;
        padding: 20px 0;
    }







    section.projects-section.homepage {
        padding-top: 0;
    }

    .projects-section > h2 {
        font-size: 18px;
        margin: 0;
        margin-top: 50px;
    }

    .projects-section > p {
        font-size: 18px;
        margin: 0;
        margin-top: 5px;
        width: 80vw;
        text-align: justify;
    }

    .projects-section .list {
        grid-template-columns: repeat(1, 1fr);
        gap: 10px;
        margin-top: 30px;
    }

    .projects-section .list div .bar span {
        opacity: 1;
        transform: none;
    }

    .projects-section .list div.cta .card {
        height: 20vh;
    }







    section.project-section .metadata {
        width: 100%;
        left: 0;
        margin-bottom: 0;
        padding-bottom: 0;
        border-radius: 0;
        box-shadow: none;
        flex-direction: column;
        position: relative;
    }

    section.project-section .metadata > div.left,
    section.project-section .metadata > div.right {
        width: 100%;
    }

    section.project-section .metadata h4 {
        font-size: var(--title);
    }

    section.project-section .metadata p {
        font-size: var(--subtitle);
        width: 100%;
        text-align: justify;
        margin-top: 10px;
    }

    section.project-section .metadata .card .bar {
        padding: 15px 10px;
    }


    section.project-section .table {
        display: flex;
        flex-direction: column;
        padding-top: 0;
        margin-top: 0;
    }

    section.project-section .table > div {
        width: 100%;
        border-right: none;
    }
    
    section.project-section .images {
        width: 100%;
        padding: 0;
        margin: 0;
        margin-top: 10px;
    }

    section.project-section .images .img {
        height: 60vw;
    }

    section.project-section .images .img img {
        height: auto;
    }

    section.project-section .images .caption {
        padding: 0 50px;
        padding-bottom: 50px;
    }


    section.project-section .metrics {
        padding: 0;
        margin-top: 0;
        display: flex;
        flex-direction: column;
        align-items: left;
    }
    
    section.project-section .metrics > div {
        margin: 20px 50px;
        margin-right: 0;
        flex-direction: row;
        align-items: last baseline;
        justify-content: left;
    }

    section.project-section .metrics > div h1 {
        font-size: calc(var(--title) * 2.8);
        margin-right: 10px;
    }

    section.project-section .metrics div p {
        transform: translateY(-2px);
        font-size: var(--title);
    }

    section.project-section .metrics div p span {
        display: inline-block;
    }

    section.project-section .testimonial {
        margin: 50px 20px;
        width: calc(100% - 40px);
    }

    section.project-section .testimonial p {
        font-size: var(--subtitle);
        text-align: left;
    }







    

    section.legal-section {
        width: calc(100vw - 20px);
        margin-left: 10px;
        text-align: justify;
    }










    .footer {
        overflow-x: hidden;
        padding: 40px;
    }

    .footer-column {
        width: 33.33%;
    }

    .footer-column li {
        padding: 10px 0;
    }

    .footer-column.logo,
    .footer-column.company {
        display: none;
    }

    .footer-column.contact {
        width: 66.66%;
    }

    .footer-bottom {
        display: flex;
        flex-direction: column;
        padding: 20px 30px;
    }

    .footer-bottom p {
        text-align-last: justify;
        margin: 5px;
    }


}