/* Normal weight; Normal style */
@font-face {
    font-family: 'Nexa';
    font-weight: normal;
    font-style: normal;
    src: url('https://files.cargocollective.com/c124257/NexaRustSans-Book1.ttf') format('truetype');
}

/* Bold weight; Normal style */
@font-face {
    font-family: 'Nexa B';
    font-weight: bold;
    font-style: normal;
    src: url('https://files.cargocollective.com/c124257/NexaRustSans-Black.ttf') format('truetype');
}

/**
 * KIT KLEIN 2026 - HOMEPAGE FULL WIDTH (NO BARS)
 */

/* 1. LARGEUR TOTALE */
.maincontainer {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.homevid_link {
    position: relative !important;
    width: 100% !important;
    height: 60px !important; 
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    transition: height 0.6s cubic-bezier(0.19, 1, 0.22, 1);
    background: #fff;
    border: none !important;
}

/* OUVERTURE FINE 10vw */
.homevid_link:hover {
    height: 20vw !important; 
}

/* 2. LA VIDÉO (Calcul pour remplir 100% de la largeur) */
.homevid_link iframe {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    
    /* On force la largeur sur tout l'écran */
    width: 100vw !important; 
    /* On définit une hauteur 16/9 pour éviter les bandes noires du player */
    height: 56.25vw !important; 
    
    transform: translate(-50%, -50%) !important; 
    z-index: 1;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.5s ease;
}

.homevid_link:hover iframe {
    opacity: 1;
}

/* 3. L'OVERLAY SYNCHRO */
.homevid__overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 10;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(255, 255, 255, 1);
    transition: background 0.5s ease;
}

.homevid_link:hover .homevid__overlay {
    background: rgba(0, 0, 0, 0.25) !important;
}

/* 4. LE TITRE (Réduit 1.1em) */
.homevid__title {
    font-family: "Nexa B", sans-serif !important;
    font-size: 1.1em !important; 
    color: #000 !important;
    text-transform: uppercase;
    letter-spacing: 2px;
    line-height: 1 !important;
    transition: color 0.4s ease;
    z-index: 11;
}

.homevid_link:hover .homevid__title {
    color: #fff !important;
}

/* CLIC */
.homevid_link a {
    position: absolute !important;
    top: 0 !important; left: 0 !important;
    width: 100% !important; height: 100% !important;
    z-index: 20 !important;
}

/* CLEANUP */
.homevid__description, .homevid_link br, .homevid__overlay__blur p {
    display: none !important;
}

/**
 * General
 */

.body {
    background-color: #fff;
    color: #000;
}

a:active {
    opacity: 0.7;
}

.page a.active {
    opacity: .4;
}

i,
em {
    font-style: italic;
}

b,
strong {
    font-weight: bolder;
}

sub,
sup {
    position: relative;
    vertical-align: baseline;
}

sub {
    top: 0.3em;
}

sup {
    top: -0.4em;
}

s {
    text-decoration: line-through;
}

img {
    border: 0;
    padding: 0;
}

ul,
ol {
    margin: 0;
    padding: 0 0 0 1em;
}

blockquote {
    margin: 0;
    padding: 0 0 0 2em;
}

hr {
    background: rgba(127, 127, 127, 0.2);
    border: 0;
    height: 1px;
    display: block;
}

.content img {
    float: none;
    margin-bottom: .5em;
}

.gallery_image_caption {
    margin-top: 1.2rem;
    margin-bottom: 0.5rem;
    font-size: 1.5rem;
    font-weight: 400;
    color: rgba(0, 0, 0, 0.35);
    font-family: "Nexa", Icons;
    font-style: normal;
    line-height: 1.3;
}

/**
 * Loading Animation
 */

.loading[data-loading] {
    position: fixed;
    bottom: 8px; 
    left: 8px;
}

/**
 * Editor styles
 */

[data-predefined-style="true"] bodycopy {
    font-size: 1.2rem;
    font-weight: 300;
    color: rgba(101, 101, 101, 1);
    font-family: "Nexa B", Icons;
    font-style: normal;
    line-height: 1;
}

[data-predefined-style="true"] bodycopy a {
    color: rgb(0, 0, 0);
    border-bottom: 0px solid rgba(255, 255, 255, 0.75);
    text-decoration: blink;
}

[data-predefined-style="true"] bodycopy a:hover {

}

bodycopy a.image-link,
bodycopy a.icon-link,
bodycopy a.image-link:hover,
bodycopy a.icon-link:hover {
    border-bottom: 0;
    padding-bottom: 0;
}

[data-predefined-style="true"] h1 {
    font-family: "Nexa", Icons;
    font-style: normal;
    font-weight: 500;
    padding: 0;
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.1;
    color: rgba(0, 0, 0, 1);
    font-variation-settings: 'slnt' 0, 'MONO' 0;
}

[data-predefined-style="true"] h1 a {
    font-family: "Nexa B", Icons;
    font-style: normal;
    padding: 0;
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.1;
}

[data-predefined-style="true"] h2 {
    font-family: "Nexa B", Icons;
    font-style: normal;
    padding: 0;
    margin: 0;
    color: rgba(0, 0, 0, 1);
    font-size: 1rem;
    line-height: 1.1;
    font-variation-settings: 'slnt' 0, 'MONO' 0;
}

[data-predefined-style="true"] h2 a {
    color: rgba(0, 0, 0, 0.85);
}

[data-predefined-style="true"] small {
    display: inline-block;
    font-size: 0.7rem;
    line-height: 0.9;
    font-family: "Monument Grotesk Variable", Icons;
    font-style: normal;
    font-weight: 400;
    color: rgba(0, 0, 0, 1);
    font-variation-settings: 'slnt' 0, 'MONO' 0;
}

[data-predefined-style="true"] small a {
    color: rgb(0, 0, 0);
    border-bottom-width: 0em;
}

/**
 * Breakpoints
 */


[data-css-preset] .page {
    background-color: initial /*!page_bgcolor*/;
}

.mobile .page,
[data-css-preset].mobile .page {
    position: relative;
    max-width: 100%;
    width: 100%;
    background-color: transparent /*!page_bgcolor*/;
}

[data-css-preset] .container {
    margin-left: auto /*!content_center*/;
    margin-right: auto /*!content_center*/;
    text-align: center /*!text_center*/;
}

[data-css-preset] body {
    background-color: rgba(255, 255, 255, 0)/*!body_bgcolor*/;
}

[data-css-preset] .container_width {
    width: 100%/*!content_center*/;
}

[data-css-preset] .content_padding {
    padding-top: 0rem /*!main_margin*/;
    padding-bottom: 0rem /*!main_margin*/;
    padding-left: 0rem /*!main_margin*/;
    padding-right: 0rem /*!main_margin*/;
}

[data-css-preset] text-limit {
    display: inline-block /*!text_width*/;
    max-width: 66rem/*!text_width*/;
}

/**
 * Thumbnails
 */

div[thumbnails] {
    justify-content: flex-start;
}

[data-css-preset] .thumbnails {
    background-color: #fff/*!thumbnails_bgcolor*/;   
}

[data-css-preset] .thumbnails_width {
    width: 50%/*!thumbnails_width*/;
}

[data-css-preset] [thumbnails-pad] {
    padding: 0rem/*!thumbnails_padding*/;
}

[data-css-preset] [thumbnails-gutter] {
    margin: 0rem/*!thumbnails_padding*/;
}

[data-css-preset] [responsive-layout] [thumbnails-pad] {
    padding: 0rem/*!responsive_thumbnails_padding*/; 
}

[data-css-preset] [responsive-layout] [thumbnails-gutter] {
    margin: 0rem/*!responsive_thumbnails_padding*/; 
}

.thumbnails .thumb_image {
    outline: 0px solid rgba(0,0,0,.12);
    outline-offset: -1px;
}

.thumbnails .title {
    margin-top: 0.3rem;
    margin-bottom: 0.8rem;
    font-size: 1rem;
    font-weight: 500;
    color: rgba(0, 0, 0, 0.75);
    font-family: Oswald, Icons;
    font-style: normal;
    line-height: 1.1;
}

.thumbnails .tags {
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    font-size: 1.3rem;
    font-weight: 400;
    color: rgba(0, 0, 0, 0.25);
    font-family: Karla, Icons;
    font-style: normal;
    line-height: 1.2;
}

.thumbnails .tags a {
    border-bottom: 0;
    color: rgba(0, 0, 0, 0.35);
    text-decoration: none;
}

.thumbnails .has_title .tags {
    margin-top: 0rem;
}

/**
 * Site Menu
 */

[data-css-preset] #site_menu_button {
    color: rgba(107, 107, 107, 0.75);
    line-height: 1;
    font-size: 12px /*!site_menu_button*/;
    padding: 6px;
    line-height: 1;
    background: rgba(0, 0, 0, 1);
    position: fixed;
    top: 3rem /*!site_menu_button*/;
    left: 3rem /*!site_menu_button*/;
}

body.mobile #site_menu_button {
    margin: -6px;
    font-size: 34px;
}

#site_menu_button.custom_icon {
    width: 40px;
    height: auto;
}

#site_menu_button.active {
    display: none;
}


/**
 * Site Menu
 */

#site_menu {
    font-family: "Social Condensed Variable", Icons;
    background: rgba(255, 255, 255, 0.9);
    font-size: 15px;
    font-style: normal;
    font-weight: 400;
    padding: 20px 30px 90px 30px;
    max-width: 300px;
    min-width: 300px;
    text-align: left;
    display: flex;
    justify-content: flex-start;
    font-variation-settings: 'wdth' 75, 'slnt' 0;
}

body.mobile #site_menu {
    width: 100%;
}

#site_menu .page-link a {
    color: rgba(0, 0, 0, 1);
}

#site_menu .set-link > a {
    color: rgba(85, 85, 85, 1);
    font-weight: bold;
}

#site_menu a:active {
    opacity: 1;
}

#site_menu a.active {
    color: rgba(255, 0, 0, 1);
    opacity: 1;
}

#site_menu .close {
    display: none;
    color: rgba(255, 255, 255, 0.1);
    line-height: .85em;
    font-size: 45px;
}

body.mobile #site_menu .close {
    display: block;
    font-size: 50px;
    line-height: 1em;
}

#site_menu .break {
    height: 5px;
}

#site_menu .indent {
    margin-left: 0px;
}

/*
 * Shop Button
 */

[data-css-preset] #shop_button {
    color: rgba(0, 0, 0, 0.85);
    background: transparent;
    font-size: 36px;
    font-style: normal;
    font-weight: 400;
    line-height: 1;
    position: fixed;
    padding: 6px;
    top: 5rem /*!shop_button*/;
    right: 3rem /*!shop_button*/;
}

#shop_button.text {
    font-size: 1.4rem;
    font-weight: 400;
    color: rgba(0, 0, 0, 0.75);
    font-family: Karla, Icons;
    padding: 0;
    line-height: 1.3;
}

#shop_button.custom_icon {
    width: 40px;
    height: auto;
}

body.mobile #shop_button:not(.text) {
    margin: -6px;
    font-size: 40px;
}

/*
 * Shop Product Widget
 */

.shop_product {
    width: 100%;
    max-width: 22rem;
    position: relative;
    display: block;
}

.shop_product .price {
    font-family: Karla, Icons;
    font-size: 1.4rem;
    line-height: 1;
    color: rgba(0, 0, 0, 0.75);
    display: block;
    margin-bottom: 1rem;
    font-style: normal;
    font-weight: 400;
}

.shop_product .dropdown {
    font-family: Karla, Icons;
    font-size: 1.4rem;
    display: inline-block;
    width: 100%;
    border: 1px solid rgba(0,0,0,.2);
    background:  white url(https://static.cargo.site/assets/images/select-line-arrows.svg) no-repeat right;
    margin-bottom: 1rem;
    line-height: 1.2;
    padding: .7rem 2.5rem .7rem 1rem;
    font-style: normal;
    font-weight: 400;
}

.shop_product .button {
    font-family: Karla, Icons;
    font-size: 1.4rem;
    background: rgba(0, 0, 0, 0.75);
    color: rgba(255,255,255,1);
    flex: 0 0 50%;
    text-align: left;
    display: inline-block;
    line-height: 1;
    padding: .8rem 1rem;
    font-style: normal;
    font-weight: 400;
}

/*
 * Image Zoom
 */

.content img.image-zoom:active {
  opacity: .7;
}

/**
 * Quick View
 */

[data-css-preset] .quick-view {
    padding-top: 0rem /*!quick_view_padding*/;
    padding-bottom: 0rem /*!quick_view_padding*/;
    padding-left: 0rem /*!quick_view_padding*/;
    padding-right: 0rem /*!quick_view_padding*/;
    height: 100% /*!quick_view_height*/;
    width: 100% /*!quick_view_width*/;
}

body.mobile .quick-view {
    width: 100%;
    height: 100%;
    margin: 0;
}


[data-css-preset] .quick-view-background {
    background: rgba(0, 0, 0, 0.9) /*!quick_view_bgcolor*/;
}

.quick-view-caption {
    font-family: Karla, Icons;
    transition: 100ms opacity ease-in-out;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 3.5rem 0;
    text-align: center;
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 400;
}

.quick-view-caption span {
    padding: 0.5rem 1rem;
    display: inline-block;
    background: rgba(0,0,0,0.5);
    color: white;
}


/**
 * Quick View Navigation 
 */

.quick-view-navigation .left-arrow {
    left: 10px;
}

.quick-view-navigation .right-arrow {
    right: 10px;
}

.quick-view-navigation .left-arrow,
.quick-view-navigation .right-arrow {
    /* Change height/width together to scale */
    height: 36px;
    width: 36px;
}

.quick-view-navigation .left-arrow .inner-color,
.quick-view-navigation .right-arrow .inner-color {
    stroke: #fff;
    stroke-width: 1.5px;
}

.quick-view-navigation .left-arrow .outer-color,
.quick-view-navigation .right-arrow .outer-color {
    stroke: #000;
    stroke-width: 2.5px;
    opacity: 0.6;
}

.quick-view-navigation .close-button {  
    top: 10px;
    right: 10px;
    /* Change height/width together to scale */
    width: 36px;
    height: 36px;
}

.quick-view-navigation .close-button .inner-color {
    stroke: #fff;
    stroke-width: 1.5px;
}

.quick-view-navigation .close-button .outer-color {
    stroke: #000;
    stroke-width: 2.5px;
    opacity: 0.6;
}

/** 
 * Image Gallery Navigation Arrows 
 */
 
.image-gallery-navigation .left-arrow,
.image-gallery-navigation .right-arrow {
    /* Change height/width together to scale */
    height: 36px;
    width: 36px;
}

.image-gallery-navigation .left-arrow .inner-color,
.image-gallery-navigation .right-arrow .inner-color {
    stroke: #fff;
    stroke-width: 1.5px;
}

.image-gallery-navigation .left-arrow .outer-color,
.image-gallery-navigation .right-arrow .outer-color {
    stroke: #000;
    stroke-width: 2.5px;
    opacity: 0.6;
}

/** 
 * Image Gallery Navigation Arrows 
 */
 
.image-galleryHP-navigation .left-arrow,
.image-galleryHP-navigation .right-arrow {
    /* Change height/width together to scale */
    height: 36px;
    width: 36px;
}

.image-galleryHP-navigation .left-arrow .inner-color,
.image-galleryHP-navigation .right-arrow .inner-color {
    stroke: #fff;
    stroke-width: 1.5px;
}

.image-galleryHP-navigation .left-arrow .outer-color,
.image-galleryHP-navigation .right-arrow .outer-color {
    stroke: #000;
    stroke-width: 2.5px;
    opacity: 0.6;
}
/**
 * Wallpaper Backdrop Navigation Arrows 
 */

.wallpaper-navigation .left-arrow,
.wallpaper-navigation .right-arrow {
   /* Change height/width together to scale */
   width: 36px;
   height: 36px;
}

.wallpaper-navigation .left-arrow .inner-color,
.wallpaper-navigation .right-arrow .inner-color {
   stroke: #fff;
    stroke-width: 1.5px;
}

.wallpaper-navigation .left-arrow .outer-color,
.wallpaper-navigation .right-arrow .outer-color {
    stroke: #000;
    stroke-width: 2.5px;
    opacity: 0.6;
}


/**
 * Feed
 */

.feed .content_container .page {
    border-top: 0px dashed rgba(0, 0, 0, 0.2);
}

.feed .content_container .page_container:first-child .page {
    border-top: 0;
}



/*
 * Audio Player
 */

.audio-player {
    max-width: 36rem;
    height: 3.3rem;
    outline: 1px solid rgba(0,0,0,0.15);
    color: rgba(0, 0, 0, 0.6);
    background: #fff;
    font-size: 1.2rem;
    line-height: 1.3;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif, "Sans Serif", Icons;
    font-style: normal;
    font-weight: 400;
    text-align: left;
    margin: 1px 1px 1em 1px;
}

body.mobile .audio-player {
    max-width: 100%;
}

.audio-player .separator {
    width: 1px;
    background-color: rgba(0,0,0,0.15);
}

.audio-player .button {
    background: transparent;
    cursor: pointer;
    fill: rgba(0, 0, 0, 0.85);
}

.audio-player .icon {
    fill: rgba(0, 0, 0, 0.85);
    padding: 30%;
    width: 100%;
    margin: auto;
}

.audio-player .buffer {
    background: rgba(0,0,0,0.03);
}

.audio-player .progress {
    background: rgba(0,0,0,0.1);
}

.audio-player .progress-indicator {
    border: 1px solid rgba(0, 0, 0, 0.7);
    width: 1px;
    height: 100%;
    right: 0;
    position: absolute;
    cursor: ew-resize;
}

.audio-player .note-icon {
    height: 100%;
    width: 3.8rem;
    padding: 1rem;
    fill: rgba(0, 0, 0, 0.5);
}

.audio-player .current-time {
    padding-left: 1rem;
}

.audio-player .total-time {
    padding-right: 1rem;
}

/**
 * KIT KLEIN 2026 - FIX SYNCHRO OVERLAY/VIDEO
 */

/* 1. CAGE COMMUNE (80vw) */
.triptych-container, [thumbnails] {
    display: flex !important;
    width: 80vw !important; 
    max-width: 1200px !important;
    position: relative !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    margin: 60px 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

/* 2. TRIPTYQUE (Page Projet) */
.triptych-container {
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 1.5%;
}
.vimeo-vert { flex: 0 0 19% !important; aspect-ratio: 9 / 16 !important; }
.vimeo-horiz { flex: 0 0 58% !important; aspect-ratio: 16 / 9 !important; }
.triptych-container iframe { width: 100% !important; height: 100% !important; border: none !important; }

/* 3. LA LISTE (L'Alignement Synchrone) */
[thumbnails] {
    flex-direction: column !important;
    border: none !important;
}

.thumbnail {
    position: relative !important;
    width: 100% !important;
    height: 30px !important; /* Hauteur fermée */
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important; /* C'est ICI que l'ouverture se joue */
    background: #ffffff !important;
    border: none !important;
    /* La SEULE transition de hauteur est ici */
    transition: height 0.6s cubic-bezier(0.19, 1, 0.22, 1) !important;
}

/* OUVERTURE FENTE FINE */
.thumbnail:hover { 
    height: 8vw !important; 
}

/* L'OVERLAY (Suppression du décalage de timing) */
.thumbnail .title {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    
    /* MAGIE : Il fait toujours 100% de la hauteur de la vignette */
    /* Donc il suit le parent sans AUCUN décalage possible */
    height: 100% !important; 
    
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    
    z-index: 20 !important;
    background: transparent !important; /* Fond blanc par défaut */
    
    /* On ne transitionne QUE le background, plus la hauteur */
    transition: background 0.4s ease !important;
    
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
}

/* ÉTAT HOVER : On change juste la couleur du voile */
.thumbnail:hover .title {
    background: rgba(0, 0, 0, 0.25) !important;
}

/* TYPO 11px */
.thumbnail .title * {
    color: #000 !important;
    font-family: "Nexa B", sans-serif !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    line-height: 1 !important;
}
.thumbnail:hover .title * { color: #ffffff !important; }

/* LA VIDÉO DANS LA VIGNETTE */
.js-video-overlay, .js-video-overlay iframe {
    width: 100% !important;
    height: 25vw !important; 
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 1 !important;
    border: none !important;
}

/* NETTOYAGE */
.thumb_image { opacity: 0 !important; }
.thumbnail .tags, .thumbnail .caption, .thumbnail br { display: none !important; }


/**
 * KIT KLEIN - METADATA 6 COLONNES
 */

.project-metadata {
    display: grid !important;
    /* Force 6 colonnes pour plus d'air */
    grid-template-columns: repeat(6, 1fr) !important;
    /* Gap équilibré : 30px vertical / 15px horizontal */
    gap: 30px 15px !important; 
    width: 80vw !important;
    max-width: 1200px !important;
    margin: 40px auto 20px auto !important;
    padding: 0 !important;
}

/* TABLETTE : On bascule sur 3 colonnes (2 étages de 3) sous 1024px */
@media screen and (max-width: 1024px) {
    .project-metadata {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

/* MOBILE : On bascule sur 2 colonnes sous 768px */
@media screen and (max-width: 768px) {
    .project-metadata {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px 10px !important;
    }
}

.meta-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    text-align: left !important;
}

.meta-label {
    font-family: "Nexa B", sans-serif !important;
    font-size: 9px !important; /* Taille augmentée */
    color: #909090 !important;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    margin-bottom: 6px;
    white-space: nowrap;
}

.meta-value {
    font-family: "Nexa B", sans-serif !important;
    font-size: 11px !important; /* Taille augmentée (retour au standard propre) */
    color: #000 !important;
    text-transform: uppercase;
    line-height: 1.3 !important;
    font-weight: bold;
}

.meta-value b, .meta-value a {
    color: inherit !important;
    text-decoration: none !important;
}

/**
 * KIT KLEIN - FIX GALERIE & ALIGNEMENT 80%
 */

/* LE CONTENEUR MAÎTRE (Le couloir de 80%) */
.project-wrapper-80 {
    width: 80vw !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    position: relative !important;
}

/* LA GALERIE (Version robuste) */
.image-gallery-custom {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    gap: 20px !important;
    width: 100% !important;
    margin: 40px 0 !important;
}

/* LES VIDÉOS DE LA GALERIE (Carrées) */
.image-gallery-custom iframe {
    flex: 1 1 30% !important; /* 3 vidéos par ligne environ */
    min-width: 280px !important; /* Sécurité pour qu'elles ne soient pas minuscules */
    aspect-ratio: 1 / 1 !important; /* Force le format carré */
    height: auto !important;
    border: none !important;
}

/* --- RÉDUCTION DE L'ESPACE FINAL --- */

/* 1. On réduit drastiquement la hauteur du spacer */
.page-footer-spacer {
    height: 20px !important; /* On passe de 15vh à 20px */
    display: block !important;
}

/* 2. On s'assure que la liste des projets n'ajoute pas de marge en haut */
[thumbnails] {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* 3. Ajustement de la ligne si besoin */
.project-footer-divider {
    margin: 40px auto 10px auto !important; /* On remet une marge positive propre au-dessus */
}
/**
 * LIGNE DE SÉPARATION SERRÉE
 */
.project-footer-divider {
    width: 80vw !important;
    max-width: 1200px !important;
    height: 1px !important;
    background-color: #000 !important;
    /* 40px au-dessus, 20px en dessous */
    margin: -30px auto 10px auto !important; 
    display: block !important;
    border: none !important;
}

/* On s'assure que les hashtags collent aussi un peu plus */
[thumbnails] {
    margin-top: 0 !important;
}

/**
 * TRIPTYQUE 3 STORIES (9:16)
 */
.triptych-stories {
    display: flex !important;
    width: 80vw !important;
    max-width: 1200px !important;
    margin: 60px auto !important; /* Centré avec espace haut/bas */
    justify-content: space-between !important;
    gap: 2% !important; /* Espace entre les stories */
}

.story-vimeo {
    flex: 1 !important; /* Les 3 colonnes font la même taille */
    aspect-ratio: 9 / 16 !important;
    background: #000; /* Fond noir pendant le chargement */
    position: relative !important;
    overflow: hidden !important;
}

.triptych-stories iframe {
    position: absolute !important;
    top: 0; left: 0;
    width: 100% !important;
    height: 100% !important;
    border: none !important;
}

/* Optimisation Mobile : on les empile ou on les réduit ? */
@media screen and (max-width: 768px) {
    .triptych-stories {
        gap: 1% !important;
    }
}

/**
 * STORY CENTRÉE - VERSION PROPRE
 */
.single-story-centered {
    width: 25vw !important;
    max-width: 500px !important;
    aspect-ratio: 9 / 16 !important;
    margin: 60px auto !important;
    position: relative !important;
    background: #000; /* Le fond noir évite le flash blanc au chargement */
    
    /* On utilise un contour interne (outline) plutôt qu'une bordure */
    /* L'outline-offset de -1px force le trait à rester à l'intérieur */
    outline: 2px solid #eeeeee !important;
    outline-offset: 0px !important;
}

.single-story-centered iframe {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    border: none !important;
}

/**
 * WRAPPER STANDARD POUR PAGES PROJET
 */
.project-main-wrapper {
    width: 80vw !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    display: block;
}

/* On force les images et galeries à prendre toute la largeur du wrapper */
.project-main-wrapper img, 
.project-main-wrapper .image-gallery,
.project-main-wrapper .video-container {
    width: 100% !important;
    height: auto !important;
    margin-bottom: 20px !important;
}

/* Style pour ton titre H1 (Brussels Ketjep) */
.project-main-wrapper h1 {
    font-family: "Nexa B", sans-serif !important;
    font-size: 14px !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 40px !important;
    line-height: 1.4;
}

.project-main-wrapper h1 a {
    text-decoration: none !important;
    border-bottom: 1px solid #000;
}
/**
 * REGLAGE DES COUCHES VISUELLES
 */

/* 1. L'OVERLAY DE TITRE (HOME & LISTES) */
.homevid__overlay, .thumbnail .title {
    background: rgba(255, 255, 255, 1) !important; /* Blanc quand fermé */
    z-index: 20 !important; /* Au-dessus de l'image et de la vidéo */
    transition: background 0.5s ease, color 0.4s ease !important;
}

/* 2. LE VOILE NOIR AU SURVOL (RETOUR À L'OPACITÉ 0.25) */
.homevid_link:hover .homevid__overlay, 
.thumbnail:hover .title {
    background: rgba(0, 0, 0, 0.25) !important; /* Le noir transparent qui manquait */
}

/* 3. CADRAGE DE L'IMAGE FIXE */
/* On évite le zoom agressif en forçant le ratio cover sans déformation */
.static-placeholder {
    background-size: cover !important;
    background-position: center center !important;
    opacity: 1 !important;
}

/* 4. NETTOYAGE DES MINIATURES NATIVES */
.thumb_image { 
    display: none !important; /* On n'utilise que l'image injectée par le script */
}

/* 5. PRIORITÉ AU CLIC */
.homevid_link a, .thumbnail a {
    z-index: 50 !important; /* Toujours en première couche pour naviguer */
}

/* Typo Blanche au survol */
.homevid_link:hover .homevid__title,
.thumbnail:hover .title * {
    color: #ffffff !important;
}
/* --- FIX FINAL : ZOOM LISTES & VOILE NOIR --- */

/* Empêche l'image de zoomer à l'infini dans les fentes de projets */
.thumbnail .static-placeholder {
    height: 100% !important;
    width: 100% !important;
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
    background-size: cover !important;
}

/* Rétablit le voile noir transparent au survol (0.25) */
.homevid_link:hover .homevid__overlay, 
.thumbnail:hover .title {
    background: rgba(0, 0, 0, 0.25) !important;
}

/* Force les titres en blanc au survol pour la lisibilité */
.homevid_link:hover .homevid__title,
.thumbnail:hover .title * {
    color: #ffffff !important;
}

/* Priorité au clic pour la navigation */
.thumbnail a { z-index: 50 !important; }
/* --- CSS DE SYNCHRONISATION --- */

/* L'image statique reste opaque par défaut */
.static-placeholder {
    opacity: 1;
}

/* Le voile noir premium reste actif au survol */
.homevid_link:hover .homevid__overlay, 
.thumbnail:hover .title {
    background: rgba(0, 0, 0, 0.25) !important;
    z-index: 20 !important;
}

/* Les titres passent en blanc au survol */
.homevid_link:hover .homevid__title,
.thumbnail:hover .title * {
    color: #ffffff !important;
}

/* On s'assure que le lien de navigation reste tout au-dessus */
.thumbnail a, .homevid_link a { 
    z-index: 50 !important; 
}
/* --- LE SWAP INTELLIGENT --- */

/* L'image est au-dessus par défaut */
.static-placeholder {
    opacity: 1 !important;
    z-index: 10 !important;
}

/* LA MAGIE : L'image ne disparaît que SI la vidéo est chargée ET qu'on survole */
.video-ready:hover .static-placeholder {
    opacity: 0 !important;
}

/* Si on survole mais que ce n'est pas prêt, l'image RESTE à 1 */
.thumbnail:not(.video-ready):hover .static-placeholder,
.homevid_link:not(.video-ready):hover .static-placeholder {
    opacity: 1 !important;
}

/* Le voile noir et le titre par-dessus tout (z-index 20) */
.homevid_link:hover .homevid__overlay, 
.thumbnail:hover .title {
    background: rgba(0, 0, 0, 0.25) !important;
    z-index: 20 !important;
}

.homevid_link:hover .homevid__title,
.thumbnail:hover .title * {
    color: #ffffff !important;
}

/* Le lien invisible pour le clic (z-index 30) */
.thumbnail a, .homevid_link a { z-index: 30 !important; }
/* --- LE SWAP AU DÉLAI --- */

.static-placeholder {
    opacity: 1 !important;
    z-index: 10 !important;
}

/* L'image s'efface SI 2 secondes se sont écoulées ET qu'on survole */
.video-ready:hover .static-placeholder {
    opacity: 0 !important;
}

/* On s'assure qu'il n'y a plus de fond noir forcé */
.js-video-overlay {
    background: transparent !important;
}

/* Overlays de texte (le voile à 0.25) */
.homevid_link:hover .homevid__overlay, 
.thumbnail:hover .title {
    background: rgba(0, 0, 0, 0.25) !important;
    z-index: 20 !important;
}

.homevid_link:hover .homevid__title,
.thumbnail:hover .title * {
    color: #ffffff !important;
}

/* Le lien invisible pour la navigation */
.thumbnail a, .homevid_link a { z-index: 30 !important; }
/* --- CSS PROPRE : HOME DIRECT / LISTES BUFFER --- */
.static-placeholder { opacity: 1 !important; z-index: 10 !important; }
.js-video-overlay { z-index: 5 !important; }

/* Home : Transition immédiate (ton ancien effet) */
.homevid_link:hover .static-placeholder { opacity: 0 !important; }
.homevid_link:hover .js-video-overlay { opacity: 1 !important; }

/* Listes Projets : On attend que le JS donne le feu vert (video-ready) */
.thumbnail.video-ready:hover .static-placeholder { opacity: 0 !important; }
.thumbnail.video-ready:hover .js-video-overlay { opacity: 1 !important; }

/* Design Overlays */
.homevid_link:hover .homevid__overlay, .thumbnail:hover .title { background: rgba(0, 0, 0, 0.25) !important; z-index: 20 !important; }
.homevid_link:hover .homevid__title, .thumbnail:hover .title * { color: #fff !important; }
.thumbnail a, .homevid_link a { z-index: 30 !important; }
/* --- KILL CARGO NATIVE VIDEO ENGINE --- */

/* On supprime les lecteurs et conteneurs vidéos natifs de Cargo */
.thumbnail .js-video-player,
.thumbnail .thumb_video,
.thumbnail iframe:not([src*="vimeo.com"]), /* Sécurité pour ne garder que nos iframes */
.homevid_link .js-video-player {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* On s'assure qu'aucun autre élément ne crée de transparence parasite */
.thumbnail .thumb_image_container {
    background: none !important;
}
/* --- FIX FINAL GHOSTING --- */

/* On force la disparition du placeholder quand la vidéo est visible */
.static-placeholder {
    opacity: 1 !important;
    z-index: 10 !important;
    transition: opacity 0.3s ease !important;
}

.js-video-overlay {
    z-index: 5 !important;
}

/* On nettoie les résidus natifs de Cargo */
.thumbnail .js-video-player, .homevid_link .js-video-player {
    display: none !important;
    opacity: 0 !important;
}
/* --- NETTOYAGE DES STORIES 9/16 --- */

.story-vimeo {
    flex: 1 !important;
    aspect-ratio: 9 / 16 !important;
    background: #ffffff !important; /* On passe sur le blanc du site */
    position: relative !important;
    overflow: hidden !important;
}

.story-vimeo iframe {
    position: absolute !important;
    top: 50%;
    left: 50%;
    width: 101% !important; /* On dépasse légèrement pour "manger" le bord */
    height: 101% !important;
    transform: translate(-50%, -50%) scale(1.02) !important; /* Le zoom de sécurité */
    border: none !important;
}
/**
 * KIT KLEIN 2026 - VARIANTE TRIPTYQUE 4/5 (INSTA/PORTRAIT)
 */

.triptych-4-5 {
    display: flex !important;
    width: 80vw !important; /* On reste sur ton standard de 80% */
    max-width: 1200px !important;
    margin: 60px auto !important;
    justify-content: space-between !important;
    gap: 2% !important;
}

.item-4-5 {
    flex: 1 !important;
    aspect-ratio: 4 / 5 !important; /* Le ratio exact 1080x1350 */
    background: #ffffff !important;
    position: relative !important;
    overflow: hidden !important;
}

.item-4-5 iframe {
    position: absolute !important;
    top: 50%;
    left: 50%;
    width: 101% !important; 
    height: 101% !important;
    transform: translate(-50%, -50%) scale(1.02) !important; /* Le "trucage" anti-filet noir */
    border: none !important;
}
/* --- ENGINE RESPONSIVE : TRIPTYQUES & STORIES --- */

/* 1. Autoriser le passage à la ligne */
.triptych-stories, .triptych-4-5 {
    flex-wrap: wrap !important;
    transition: width 0.4s ease;
}

/* 2. TABLETTE (Sous 1024px) : On élargit un peu le couloir pour gagner de la place */
@media screen and (max-width: 1024px) {
    .triptych-stories, .triptych-4-5, .project-main-wrapper {
        width: 90vw !important;
    }
}

/* 3. MOBILE (Sous 768px) : L'empilage "Cargo Style" */
@media screen and (max-width: 768px) {
    .triptych-stories, .triptych-4-5 {
        flex-direction: column !important; /* On empile au lieu d'aligner */
        align-items: center !important;
        gap: 50px !important; /* Bel espace entre les vidéos pour respirer */
    }

    .story-vimeo, .item-4-5 {
        flex: 0 0 100% !important;
        width: 100% !important;
        /* On limite la largeur max pour éviter qu'une story 9:16 ne fasse 3km de haut */
        max-width: 450px !important; 
        margin: 0 auto !important;
    }

    /* On ajuste aussi les metadata pour le mobile */
    .project-metadata {
        grid-template-columns: repeat(2, 1fr) !important;
        width: 90vw !important;
    }
}
/* --- MODULE COMBO : VERSION CLICK & SPACE --- */

.combo-container {
    width: 80vw !important;
    max-width: 1200px !important;
    margin: 60px auto !important; /* On centre avec de l'air haut/bas */
    display: flex;
    flex-direction: column;
    gap: 40px !important; /* L'espace que tu voulais entre le 16/9 et les 9/16 */
}

.combo-main-16-9 {
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    position: relative;
    background: #fff;
}

.combo-duo-row {
    display: flex;
    justify-content: space-between;
    gap: 2% !important; /* Espace horizontal entre les deux verticales */
    width: 100%;
}

.combo-item-9-16 {
    flex: 1;
    aspect-ratio: 9 / 16 !important;
    position: relative;
    background: #fff;
    overflow: hidden;
}

.combo-container iframe {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    border: none !important;
}

/* RESPONSIVE MOBILE */
@media screen and (max-width: 768px) {
    .combo-container { gap: 30px !important; }
    .combo-duo-row {
        flex-direction: column !important;
        gap: 30px !important;
    }
    .combo-item-9-16 {
        width: 100% !important;
        max-width: 450px !important;
        margin: 0 auto;
    }
}
/* --- MODULE DUO HORIZONTAL : 2 X 16/9 --- */

.duo-horiz-container {
    width: 80vw !important;
    max-width: 1200px !important;
    margin: 40px auto !important;
    display: flex;
    justify-content: space-between;
    gap: 2% !important;
}

.duo-item-16-9 {
    flex: 1;
    aspect-ratio: 16 / 9 !important;
    position: relative;
    background: #fff;
    overflow: hidden;
}

.duo-horiz-container iframe {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    border: none !important;
}

/* RESPONSIVE MOBILE */
@media screen and (max-width: 768px) {
    .duo-horiz-container {
        flex-direction: column !important;
        gap: 30px !important;
    }
    .duo-item-16-9 {
        width: 100% !important;
    }
}
/* --- STYLE PAGE ABOUT : MINIMALIST ARIAL V2 --- */

.about-text-clean {
    max-width: 640px; 
    margin: 80px auto !important; 
    text-align: left;
}

.about-text-clean p {
    font-family: "Arial", "Helvetica", sans-serif !important; 
    font-size: 14px; 
    line-height: 1.7 !important; 
    color: #1a1a1a; 
    letter-spacing: -0.01em;
    margin-bottom: 28px; 
    /* J'ai supprimé le text-transform: lowercase qui effaçait tout */
}

.about-text-clean p strong {
    font-family: "Arial", "Helvetica", sans-serif !important;
    font-weight: 700;
    color: #000;
}

/* RESPONSIVE MOBILE */
@media screen and (max-width: 768px) {
    .about-text-clean {
        width: 100% !important;
        padding: 0 20px;
        margin: 50px auto !important;
    }
}