@charset "UTF-8";
/* framework 7.7.0 */

/*/css/base.min.css*/
:where(.tf_loader){width:1em;height:1em;overflow:hidden;display:inline-block;vertical-align:middle;position:relative}.tf_loader:before{content:'';width:100%;height:100%;position:absolute;top:0;left:0;text-indent:-9999em;border-radius:50%;box-sizing:border-box;border:.15em solid rgba(149,149,149,.2);border-left-color:rgba(149,149,149,.6);animation:tf_loader 1.1s infinite linear}@keyframes tf_loader{0{transform:rotate(0)}100%{transform:rotate(360deg)}}.tf_clear{clear:both}.tf_left{float:left}.tf_right{float:right}.tf_textl{text-align:left}.tf_textr{text-align:right}.tf_textc{text-align:center}.tf_textj{text-align:justify}.tf_text_dec{text-decoration:none}.tf_hide{display:none}.tf_hidden{visibility:hidden}.tf_block{display:block}.tf_inline_b{display:inline-block}.tf_vmiddle{vertical-align:middle}.tf_mw{max-width:100%}.tf_w{width:100%}.tf_h{height:100%}:where(.tf_overflow){overflow:hidden}.tf_box{box-sizing:border-box}:where(.tf_abs){position:absolute;inset:0}:where(.tf_abs_t){position:absolute;top:0;left:0}:where(.tf_abs_b){position:absolute;bottom:0;left:0}:where(.tf_abs_c){position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tf_rel{position:relative}:where(.tf_opacity){opacity:0}.tf_clearfix:after{content:"";display:table;clear:both}.loops-wrapper>.post,.woocommerce ul.loops-wrapper.products>li.product{float:left;box-sizing:border-box;margin-left:3.2%;margin-right:0;margin-bottom:2.5em;clear:none}.woocommerce .loops-wrapper.no-gutter.products>.product,body .loops-wrapper.no-gutter>.post{margin:0}.woocommerce .loops-wrapper.products.list-post>.product{margin-left:0}.tf_scrollbar{scroll-behavior:smooth;--tf_scroll_color:rgba(137,137,137,.2);--tf_scroll_color_hover:rgba(137,137,137,.4);scrollbar-color:var(--tf_scroll_color) transparent;scrollbar-width:thin}.tf_scrollbar::-webkit-scrollbar{width:var(--tf_scroll_w,10px);height:var(--tf_scroll_h,10px)}.tf_scrollbar::-webkit-scrollbar-thumb{background-color:var(--tf_scroll_color);background-clip:padding-box;border:2px solid transparent;border-radius:5px}.tf_scrollbar:hover{scrollbar-color:var(--tf_scroll_color_hover) transparent}.tf_scrollbar:hover::-webkit-scrollbar-thumb{background-color:var(--tf_scroll_color_hover)}.tf_close{position:relative;transition:transform .3s linear;cursor:pointer}.tf_close:after,.tf_close:before{content:'';height:100%;width:1px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(45deg);background-color:currentColor;transition:transform .25s}.tf_close:after{transform:translate(-50%,-50%) rotate(-45deg)}.tf_close:hover:after{transform:translate(-50%,-50%) rotate(45deg)}.tf_close:hover:before{transform:translate(-50%,-50%) rotate(135deg)}.tf_vd_lazy:fullscreen video{height:100%;object-fit:contain}

/*/wp-includes/css/dist/block-library/common.min.css*/
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-color]){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*/wp-content/plugins/themify-builder/css/modules/cover.css*/
.builder_row_cover{border-radius:inherit;contain:strict;transform:translateZ(0);z-index:0}.builder_row_cover:after,.builder_row_cover:before{border-radius:inherit;content:"";display:block;height:100%;left:0;position:absolute;top:0;transition:opacity .5s ease-in-out,background-color .5s ease-in-out;width:100%}.builder_row_cover:after{opacity:0}div:hover>.builder_row_cover:after{opacity:1}
/*/wp-content/plugins/themify-builder/css/modules/text.css*/
.drop-cap>:first-child:first-letter,.tb_text_dropcap>.tb_text_wrap:first-child:first-letter{background-color:var(--theme_accent,#0f70e8);color:#fff;float:left;font-size:2.85em;line-height:.4em;margin-right:.325em;margin-block:.15em .25em;padding:.425em .375em}.tb-text-more-link-indicator{background:rgba(55,55,55,.6);display:block;height:3px;margin:5px 0}
/*/wp-content/plugins/themify-builder/css/themify-builder-style.css*/
:root{--tb_rounded_corner:12px}.module_column,.module_row,.module_row .module,.module_subrow{box-sizing:border-box;min-width:0;position:relative}.module,.module-accordion i,:is(.module-buttons,.module_row,.module_subrow,.module_column,.module-image img):hover{transition:.5s ease;transition-property:background,font-size,line-height,color,padding,margin,border,border-radius,box-shadow,text-shadow,filter,transform}.entry-content>p:is(:first-of-type,:first-of-type+p):empty{margin:0;padding:0}.module_row{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;flex-wrap:wrap}.themify_builder_slider_wrap{transition:none}[data-tbfullwidthvideo]:is(.module_row,.module_subrow,.module_column){background-size:cover}.module_subrow,.row_inner{display:grid;--gutter:3.2%;--narrow:1.6%;--none:0;--align_start:start;--align_center:center;--align_end:end;--auto_height:stretch;--align_items:var(--auto_height);--align_content:var(--align_start);--colg:var(--gutter);--c1:1fr;--c2:1fr 1fr;--c3:1fr 1fr 1fr;--c4:1fr 1fr 1fr 1fr;--c5:1fr 1fr 1fr 1fr 1fr;--c6:1fr 1fr 1fr 1fr 1fr 1fr;--c1_2:1fr 2.1025fr;--c2_1:2.1025fr 1fr;--c1_3:1fr 3.2831fr;--c3_1:3.2831fr 1fr;--c1_1_2:1fr 1fr 2.1415fr;--c1_2_1:1fr 2.1415fr 1fr;--c2_1_1:2.1415fr 1fr 1fr;--col:repeat(auto-fit,minmax(1%,1fr));align-content:var(--align_content);align-items:var(--align_items);gap:var(--rowg,0) var(--colg);grid:var(--row,none)/var(--col);grid-auto-columns:1fr;grid-template-areas:var(--area);--area5_3:"col1 col1 col2 col2 col3 col3" "col4 col4 col5 col5 . .";--area5_1_2:"col1 col2 col2" "col3 col4 col5";--area5_2_1:"col1 col1 col2" "col3 col4 col5";--area5_1_3:"col1 col2 col2 col2" "col3 col4 col4 col4" "col5 col5 col5 col5";--area5_3_1:"col1 col1 col1 col2" "col3 col4 col4 col5";--area5_1_1_2:"col1 col2 col3 col3" "col4 col4 col5 col5";--area5_1_2_1:"col1 col2 col2 col3" "col4 col4 col5 col5";--area5_2_1_1:"col1 col1 col2 col3" "col4 col4 col5 col5";--aream2_auto:"col1" "col2";--aream3_auto:"col1" "col2" "col3";--aream4_auto:"col1" "col2" "col3" "col4";--aream5_auto:"col1" "col2" "col3" "col4" "col5";--areat6_auto:"col1 col2 col3" "col4 col5 col6";--aream6_auto:"col1 col2" "col3 col4" "col5 col6";--areat7_auto:"col1 col2" "col3 col4" "col5 col6" "col7 col7";--aream7_auto:"col1" "col2" "col3" "col4" "col5" "col6" "col7";--areat8_auto:"col1 col2" "col3 col4" "col5 col6" "col7 col7" "col8 col8";--aream8_auto:"col1" "col2" "col3" "col4" "col5" "col6" "col7" "col8"}.row_inner{margin:0 auto;width:min(1160px,100%)}.module_row.fullheight .module_subrow,.module_row.fullwidth>.row_inner{max-width:100%;width:100%}@supports(-webkit-touch-callout:none){.module_column,.module_row,.module_subrow{background-attachment:scroll!important}}.module_row.fullheight{min-height:100vh}.fullheight>.row_inner,.fullheight>.row_inner>.module_column{min-height:inherit}div.module_column{align-content:inherit;align-items:inherit;display:grid;float:none;margin-inline:0;max-width:none;width:auto}.col_align_middle,.fullheight>.tb_col_count_1{--align_content:var(--align_center)}.gutter-narrow{--colg:var(--narrow)}.gutter-none{--colg:var(--none)}.module_column:first-of-type{grid-area:col1}.module_column:nth-of-type(2){grid-area:col2}.module_column:nth-of-type(3){grid-area:col3}.module_column:nth-of-type(4){grid-area:col4}.module_column:nth-of-type(5){grid-area:col5}.module_column:nth-of-type(6){grid-area:col6}.module_column:nth-of-type(7){grid-area:col7}.module_column:nth-of-type(8){grid-area:col8}.module_column:nth-of-type(9){grid-area:col9}.module_column:nth-of-type(10){grid-area:col10}.module_column:nth-of-type(11){grid-area:col11}.module_column:nth-of-type(12){grid-area:col12}.module_column:nth-of-type(13){grid-area:col13}.module_column:nth-of-type(14){grid-area:col14}.module_column:nth-of-type(15){grid-area:col15}.module_column:nth-of-type(16){grid-area:col16}.tb_col_count_1>.module_column{grid-area:auto}.tb_col_count_2{--area:"col1 col2"}.tb_col_count_3{--area:"col1 col2 col3"}.tb_col_count_4{--area:"col1 col2 col3 col4"}.tb_col_count_5{--area:"col1 col2 col3 col4 col5"}.tb_col_count_6{--area:"col1 col2 col3 col4 col5 col6"}.tb_col_count_7{--area:"col1 col2 col3 col4 col5 col6 col7"}.tb_col_count_8{--area:"col1 col2 col3 col4 col5 col6 col7 col8"}.module:after{clear:both;content:"";display:table}.module_row ul.loops-wrapper{display:block;list-style:none;margin:0;padding:0}.tb_default_color{--tb_pr_color:#555;--tb_pr_bg:#f7f7f7;--tb_pr_hover_bg:#f1f1f1}.module_row .ui{background-color:var(--tb_pr_bg,#f7f7f7);color:var(--tb_pr_color,#555)}.ui.rounded{border-radius:var(--tb_app_r,0)}.ui.gradient{background-image:var(--tb_app_gr,none)}.ui:is(.shadow,.embossed){box-shadow:var(--tb_app_shadow,none)}.ui.builder_button{border:1px solid rgba(0,0,0,.05);border-radius:var(--tb_app_r,0);font-size:var(--tb_mb_f,1em);line-height:1.35;padding:.625em 1.25em;position:relative;transition:.3s linear;transition-property:color,background-color,padding,border,box-shadow}.builder_button:not(:is(.tf_flx,.tf_in_flx)){display:inline-block}.builder_button:hover{background-color:var(--tb_pr_hover_bg,#f1f1f1);text-decoration:none}.module_row .module .ui.builder_button{text-decoration:none}.ui.transparent{--tb_pr_bg:transparent;--tb_pr_hover_bg:transparent;--tb_pr_color:#555;--tb_app_r:0;--tb_app_gr:none;--tb_app_shadow:none;border:0;color:inherit}.transparent.gradient{--tb_app_gr:linear-gradient(180deg,hsla(0,0%,100%,.45) 0%,hsla(0,0%,100%,0))}.module-title{font-size:1.2em;margin:0 0 1.2em}.module img{border:0;vertical-align:bottom}.module-slider{margin-bottom:2.5em}.module-widget .widget{margin:0}.wp-caption{max-width:100%}.module-map button{border-radius:0}.module-map .gm-style-mtc img{margin-right:5px;vertical-align:baseline}.module-plain-text:after{display:contents!important}@media (max-width:1260px){.row_inner{max-width:94%}}@media (max-width:760px){.row_inner{max-width:90%}}.themify_builder div.builder-parallax-scrolling{transition:background-position-y 0s}@supports not(cursor:grab){.builder-parallax-scrolling{background-attachment:scroll!important}}
/*/wp-content/uploads/themify-css/themify-builder-138-generated.css*/
/* Generated from page: site */
.themify_builder_content-138 .tb_xl4v851>.builder_row_cover::before,.themify_builder_content-138 .tb_xl4v851>:is(.tf_lax, .tf_lax_done) > .builder_row_cover::before{background-position:0% 0%;background-color:rgba(0, 0, 0, .49)}
.themify_builder_content-138 .tb_xl4v851>.builder_row_cover,.themify_builder_content-138 .tb_xl4v851>:is(.tf_lax, .tf_lax_done) > .builder_row_cover{-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:repeat;mask-repeat:repeat}
.themify_builder_content-138 .tb_nhqc337.module-plain-text{padding-top:51px}
/*Builder Custom CSS START*/
/* =========================================================
   CV JULIEN JADOT — BASE COMMUNE
   Compatible WordPress + Themify Builder
========================================================= */

:root {
    --jj-blue: #00d2ff;
    --jj-blue-dark: #007acc;
    --jj-green: #39ff14;
    --jj-white: #ffffff;
    --jj-text-soft: #dbeafe;
    --jj-background: #07101f;
    --jj-glass: rgba(10, 15, 30, 0.88);
    --jj-border: rgba(255, 255, 255, 0.14);
    --jj-shadow: 0 18px 50px rgba(0, 0, 0, 0.55);
    --jj-radius: 20px;
    --jj-max-width: 1100px;
}

/* =========================================================
   MASQUER L'EN-TÊTE ET LE TITRE DU THÈME
========================================================= */

#header,
#site-logo,
.site-title,
.site-name,
.page-title {
    display: none !important;
}

html {
    scroll-behavior: smooth;
}

body {
    overflow-x: hidden;
}

/* Évite qu'une image ou une animation dépasse de l'écran */
img,
svg,
video,
iframe {
    max-width: 100%;
}

/* =========================================================
   STRUCTURE COMMUNE DES NOUVEAUX BLOCS
========================================================= */

.jj-section,
.jj-section *,
.jj-section *::before,
.jj-section *::after {
    box-sizing: border-box;
}

.jj-section {
    position: relative;
    width: 100%;
    padding: clamp(25px, 4vw, 55px) 0;
}

.jj-shell {
    width: min(var(--jj-max-width), calc(100% - 32px));
    margin-right: auto;
    margin-left: auto;
}

.jj-glass {
    background: var(--jj-glass) !important;
    border: 1px solid var(--jj-border) !important;
    border-radius: var(--jj-radius);
    box-shadow: var(--jj-shadow);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
}

/* =========================================================
   TITRE COMMUN DE TOUTES LES SECTIONS
========================================================= */

.jj-section-header {
    position: relative;
    width: 100%;
    min-height: 68px;
    margin: 0 0 30px;
    padding: 18px 26px;

    display: flex;
    align-items: center;

    overflow: hidden;
    background: var(--jj-glass) !important;
    border: 1px solid var(--jj-border) !important;
    border-radius: 16px;
    box-shadow: var(--jj-shadow);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
}

.jj-section-header::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 5px;
    background: linear-gradient(
        180deg,
        var(--jj-blue),
        var(--jj-blue-dark)
    );
    box-shadow: 0 0 18px rgba(0, 210, 255, 0.75);
}

.jj-section-title {
    display: flex !important;
    align-items: center;
    gap: 12px;

    margin: 0 !important;
    color: var(--jj-white) !important;
    font-size: 24px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    text-shadow: 0 2px 5px rgba(0, 0, 0, 0.85);
}

.jj-section-title::before {
    content: "";
    width: 10px;
    height: 10px;
    flex: 0 0 10px;

    border-radius: 50%;
    background: var(--jj-blue);
    box-shadow:
        0 0 8px var(--jj-blue),
        0 0 18px rgba(0, 210, 255, 0.6);
}

/* =========================================================
   BOUTONS COMMUNS
========================================================= */

.jj-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.jj-button {
    min-height: 50px;
    padding: 13px 23px;

    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;

    border: 1px solid transparent;
    border-radius: 999px;

    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-decoration: none !important;

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease,
        background 0.25s ease;
}

.jj-button:hover {
    transform: translateY(-3px);
}

.jj-button-primary {
    color: #ffffff !important;
    background: linear-gradient(
        90deg,
        var(--jj-blue-dark),
        var(--jj-blue)
    ) !important;
    box-shadow: 0 10px 25px rgba(0, 153, 220, 0.35);
}

.jj-button-primary:hover {
    color: #ffffff !important;
    box-shadow: 0 14px 32px rgba(0, 210, 255, 0.42);
}

.jj-button-secondary {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border-color: rgba(255, 255, 255, 0.18);
}

.jj-button-secondary:hover {
    color: #ffffff !important;
    border-color: rgba(0, 210, 255, 0.55);
    background: rgba(0, 210, 255, 0.1) !important;
}

.jj-button svg {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
}

/* =========================================================
   CARTES ET GRILLES COMMUNES
========================================================= */

.jj-card {
    background: var(--jj-glass) !important;
    border: 1px solid var(--jj-border) !important;
    border-radius: var(--jj-radius);
    box-shadow: var(--jj-shadow);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
}

.jj-grid {
    display: grid;
    gap: 24px;
}

.jj-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.jj-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* =========================================================
   CORRECTIF TEMPORAIRE POUR TES ANCIENS BLOCS
   Ils seront remplacés progressivement.
========================================================= */

body .hero-tech-container,
body .parcours-tech-container,
body .study-section-header,
body .snake-timeline-container,
body .soft-section-header,
body .tech-skills-grid,
body .project-section-header,
body .project-container,
body .passion-section-header,
body .passion-grid,
body .contact-section-header,
body .contact-grid {
    width: min(var(--jj-max-width), calc(100% - 32px)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
    box-sizing: border-box !important;
}

body .study-section-header,
body .soft-section-header,
body .project-section-header,
body .passion-section-header,
body .contact-section-header {
    padding: 18px 26px !important;
}

/* =========================================================
   SÉPARATION DES RANGÉES THEMIFY SUR MOBILE
========================================================= */

@media (max-width: 768px) {

    .themify_builder_row {
        position: relative !important;
        padding-bottom: 58px !important;
    }

    .themify_builder_row::after {
        content: "" !important;
        position: absolute !important;
        bottom: 22px !important;
        left: 20% !important;

        display: block !important;
        width: 60% !important;
        height: 2px !important;

        z-index: 20 !important;
        background: linear-gradient(
            90deg,
            transparent,
            rgba(0, 210, 255, 0.85),
            transparent
        ) !important;

        box-shadow: 0 0 12px rgba(0, 210, 255, 0.65);
    }

    .themify_builder_row:last-child::after {
        display: none !important;
    }
}

/* =========================================================
   ANCIENNES GRILLES — CORRECTION MOBILE IMMÉDIATE
========================================================= */

@media (max-width: 768px) {

    body .tech-skills-grid,
    body .passion-grid {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;

        gap: 14px !important;
        padding: 4px 12px 22px !important;

        overflow-x: auto !important;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 12px;

        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    body .tech-skills-grid::-webkit-scrollbar,
    body .passion-grid::-webkit-scrollbar {
        display: none;
    }

    body .tech-skills-grid .skill-card,
    body .passion-grid .passion-card {
        width: auto !important;
        min-width: 0 !important;
        flex: 0 0 min(86vw, 340px) !important;
        margin: 0 !important;
        scroll-snap-align: center;
    }

    /* Le contact reste vertical : plus simple à utiliser */
    body .contact-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;

        padding: 0 !important;
        overflow: visible !important;
    }

    body .contact-grid .contact-card-item {
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
    }
}

/* =========================================================
   ADAPTATION GÉNÉRALE TABLETTE ET MOBILE
========================================================= */

@media (max-width: 900px) {

    .jj-grid-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {

    .jj-section {
        padding: 22px 0;
    }

    .jj-shell {
        width: calc(100% - 24px);
    }

    .jj-section-header {
        min-height: 58px;
        margin-bottom: 20px;
        padding: 14px 16px;
        border-radius: 14px;
    }

    .jj-section-header::before {
        width: 4px;
    }

    .jj-section-title {
        gap: 10px;
        font-size: 18px !important;
        line-height: 1.3 !important;
        letter-spacing: 0.2px;
    }

    .jj-section-title::before {
        width: 8px;
        height: 8px;
        flex-basis: 8px;
    }

    .jj-grid-2,
    .jj-grid-3 {
        grid-template-columns: 1fr;
    }

    body .hero-tech-container,
    body .parcours-tech-container,
    body .study-section-header,
    body .snake-timeline-container,
    body .soft-section-header,
    body .tech-skills-grid,
    body .project-section-header,
    body .project-container,
    body .passion-section-header,
    body .passion-grid,
    body .contact-section-header,
    body .contact-grid {
        width: calc(100% - 24px) !important;
    }

    body .study-section-header,
    body .soft-section-header,
    body .project-section-header,
    body .passion-section-header,
    body .contact-section-header {
        padding: 14px 16px !important;
    }

    body .study-title,
    body .soft-title,
    body .project-title,
    body .passion-title,
    body .contact-title {
        font-size: 18px !important;
        line-height: 1.3 !important;
    }
}

@media (max-width: 420px) {

    .jj-shell {
        width: calc(100% - 18px);
    }

    .jj-button {
        width: 100%;
    }
}

/* =========================================================
   ACCESSIBILITÉ : RÉDUIRE LES ANIMATIONS SI DEMANDÉ
========================================================= */

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }

    .jj-section *,
    .jj-section *::before,
    .jj-section *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
/*Builder Custom CSS END*/