.elementor-kit-7{--e-global-color-primary:#3A2518;--e-global-color-secondary:#7A4E2D;--e-global-color-text:#3B2F27;--e-global-color-accent:#B9824A;--e-global-color-vzlin:#F6F0E7;--e-global-color-vzblanc:#FFFFFF;--e-global-color-vzsable:#E6DACA;--e-global-color-vzmuted:#6E5E51;--e-global-color-vzprofond:#24170F;--e-global-color-vzligne:rgba(246,240,231,0.16);--e-global-typography-primary-font-family:"Cinzel";--e-global-typography-primary-font-size:40px;--e-global-typography-primary-font-weight:500;--e-global-typography-primary-line-height:1.18em;--e-global-typography-primary-letter-spacing:0px;--e-global-typography-secondary-font-family:"Cinzel";--e-global-typography-secondary-font-size:21px;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-line-height:1.32em;--e-global-typography-secondary-letter-spacing:0.2px;--e-global-typography-text-font-family:"Manrope";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.7em;--e-global-typography-accent-font-family:"Manrope";--e-global-typography-accent-font-size:15px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-line-height:1.2em;--e-global-typography-vzh1-font-family:"Cinzel";--e-global-typography-vzh1-font-size:64px;--e-global-typography-vzh1-font-weight:500;--e-global-typography-vzh1-line-height:1.08em;--e-global-typography-vzh1-letter-spacing:0px;--e-global-typography-vzeyebrow-font-family:"Manrope";--e-global-typography-vzeyebrow-font-size:12px;--e-global-typography-vzeyebrow-font-weight:700;--e-global-typography-vzeyebrow-text-transform:uppercase;--e-global-typography-vzeyebrow-line-height:1.4em;--e-global-typography-vzeyebrow-letter-spacing:2.8px;--e-global-typography-vzlead-font-family:"Manrope";--e-global-typography-vzlead-font-size:19px;--e-global-typography-vzlead-font-weight:400;--e-global-typography-vzlead-line-height:1.65em;--e-global-typography-vzsmall-font-family:"Manrope";--e-global-typography-vzsmall-font-size:14px;--e-global-typography-vzsmall-font-weight:400;--e-global-typography-vzsmall-line-height:1.6em;--e-global-typography-vzstat-font-family:"Cinzel";--e-global-typography-vzstat-font-size:52px;--e-global-typography-vzstat-font-weight:500;--e-global-typography-vzstat-line-height:1em;background-color:#F6F0E7;color:#3B2F27;font-family:"Manrope", Sans-serif;font-size:17px;font-weight:400;line-height:1.7em;}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{background-color:#3A2518;font-family:"Manrope", Sans-serif;font-size:15px;font-weight:600;letter-spacing:0.2px;color:#24170F;border-radius:999px 999px 999px 999px;padding:16px 30px 16px 30px;}.elementor-kit-7 button:hover,.elementor-kit-7 button:focus,.elementor-kit-7 input[type="button"]:hover,.elementor-kit-7 input[type="button"]:focus,.elementor-kit-7 input[type="submit"]:hover,.elementor-kit-7 input[type="submit"]:focus,.elementor-kit-7 .elementor-button:hover,.elementor-kit-7 .elementor-button:focus{background-color:#7A4E2D;color:#FFFFFF;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-kit-7 a{color:#7A4E2D;}.elementor-kit-7 a:hover{color:#B9824A;}.elementor-kit-7 h1{color:#3A2518;font-family:"Cinzel", Sans-serif;font-size:62px;font-weight:500;line-height:1.05em;}.elementor-kit-7 h2{color:#3A2518;font-family:"Cinzel", Sans-serif;font-size:44px;font-weight:500;line-height:1.1em;}.elementor-kit-7 h3{color:#3A2518;font-family:"Cinzel", Sans-serif;font-size:25px;font-weight:600;line-height:1.25em;}.elementor-kit-7 h4{color:#3A2518;font-family:"Manrope", Sans-serif;font-size:18px;font-weight:600;line-height:1.4em;}.elementor-kit-7 h5{color:#3A2518;font-family:"Manrope", Sans-serif;font-weight:600;}.elementor-kit-7 h6{color:#3A2518;font-family:"Manrope", Sans-serif;font-weight:600;}.elementor-kit-7 label{color:#3A2518;}.elementor-kit-7 input:not([type="button"]):not([type="submit"]),.elementor-kit-7 textarea,.elementor-kit-7 .elementor-field-textual{color:#2B211B;background-color:#FFFFFF;border-style:solid;border-width:1px 1px 1px 1px;border-color:#E6DACA;border-radius:10px 10px 10px 10px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-7{--e-global-typography-primary-font-size:32px;--e-global-typography-secondary-font-size:20px;--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:15px;--e-global-typography-vzh1-font-size:46px;--e-global-typography-vzeyebrow-font-size:12px;--e-global-typography-vzlead-font-size:18px;--e-global-typography-vzsmall-font-size:14px;--e-global-typography-vzstat-font-size:44px;font-size:16px;}.elementor-kit-7 h1{font-size:46px;}.elementor-kit-7 h2{font-size:36px;}.elementor-kit-7 h3{font-size:23px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-7{--e-global-typography-primary-font-size:26px;--e-global-typography-secondary-font-size:19px;--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:15px;--e-global-typography-vzh1-font-size:33px;--e-global-typography-vzeyebrow-font-size:11px;--e-global-typography-vzlead-font-size:17px;--e-global-typography-vzsmall-font-size:14px;--e-global-typography-vzstat-font-size:30px;font-size:16px;}.elementor-kit-7 h1{font-size:37px;}.elementor-kit-7 h2{font-size:30px;}.elementor-kit-7 h3{font-size:21px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* Veltz Menuiserie - CSS du kit (HDKN). Seul code global du site. */
::selection{background:#B9824A;color:#fff}
a:focus-visible,button:focus-visible,.elementor-button:focus-visible{outline:2px solid #B9824A;outline-offset:3px}
html{scroll-behavior:smooth}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.elementor-heading-title{text-wrap:balance}

/* Sections : support des décors, jamais de défilement latéral */
.vz-s{position:relative;isolation:isolate;overflow-x:clip}

/* Surtitre avec filet */
.vz-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:14px}
.vz-eyebrow .elementor-heading-title::before{content:"";width:34px;height:1px;background:currentColor;opacity:.8;flex:0 0 34px}

/* Veinage discret du bois sur les fonds */
.vz-grain-light{background-image:radial-gradient(1100px 520px at 85% -10%,rgba(185,130,74,.12),transparent 60%),repeating-linear-gradient(90deg,rgba(122,78,45,.035) 0 1px,transparent 1px 9px,rgba(122,78,45,.02) 9px 10px,transparent 10px 23px)}
.vz-grain-dark{background-image:radial-gradient(900px 480px at 15% 0%,rgba(185,130,74,.18),transparent 62%),repeating-linear-gradient(90deg,rgba(246,240,231,.035) 0 1px,transparent 1px 9px,rgba(246,240,231,.02) 9px 10px,transparent 10px 23px)}

/* Héros plein cadre : millésime en filigrane */
.vz-hero{overflow:hidden;overflow:clip}
.vz-hero>.e-con-inner{position:relative;z-index:1}
.vz-year{position:absolute!important;right:2%;bottom:-.14em;z-index:0;pointer-events:none;margin:0!important;width:auto!important;max-width:none!important}
.vz-year .elementor-heading-title{font-family:"Cinzel",serif!important;font-weight:600!important;font-size:clamp(120px,19vw,300px)!important;line-height:1!important;letter-spacing:.04em!important;color:transparent!important;background:linear-gradient(180deg,rgba(246,240,231,.16),rgba(246,240,231,.02) 88%);-webkit-background-clip:text;background-clip:text;white-space:nowrap}
@media(max-width:1024px){.vz-year{display:none}}

/* Images : cadre décalé couleur miel */
.vz-frame{position:relative}
.vz-frame::before{content:"";position:absolute;top:22px;left:22px;right:-22px;bottom:-22px;border:1px solid rgba(185,130,74,.6);border-radius:26px;z-index:-1;pointer-events:none}
.vz-frame-l::before{left:-22px;right:22px}
.vz-frame img{box-shadow:0 34px 70px -40px rgba(36,23,15,.65)}
@media(max-width:767px){.vz-frame::before{top:12px;left:12px;right:-12px;bottom:-12px;border-radius:20px}.vz-frame-l::before{left:-12px;right:12px}}

/* Tuiles image cliquables (savoir-faire) */
.vz-tile{position:relative;isolation:isolate;overflow:hidden;overflow:clip;text-decoration:none!important}
.vz-tile>.vz-tile-img{position:absolute!important;inset:0;z-index:-2;margin:0!important;width:100%!important;max-width:none!important;height:100%}
.vz-tile>.vz-tile-img>*,.vz-tile>.vz-tile-img img{display:block;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;border-radius:0!important}
.vz-tile>.vz-tile-img img{transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.vz-tile::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(36,23,15,.05) 20%,rgba(36,23,15,.55) 58%,rgba(36,23,15,.93) 100%);transition:opacity .5s ease}
.vz-tile:hover>.vz-tile-img img{transform:scale(1.07)}
@media(max-width:767px){.vz-tile::after{background:linear-gradient(180deg,rgba(36,23,15,.12) 0%,rgba(36,23,15,.66) 42%,rgba(36,23,15,.95) 100%)}}
.vz-tile .vz-more .elementor-heading-title{display:inline-flex;align-items:center;gap:10px}
.vz-tile .vz-more .elementor-heading-title::after{content:"→";transition:transform .35s ease}
.vz-tile:hover .vz-more .elementor-heading-title::after{transform:translateX(6px)}

/* Bande sobre sous le héros : règle graduée de menuisier */
.vz-rule{position:relative;border-bottom:1px solid #E6DACA}
.vz-rule::after{content:"";position:absolute;left:0;right:0;top:0;height:22px;pointer-events:none;z-index:1;background:repeating-linear-gradient(90deg,rgba(185,130,74,.85) 0 1px,transparent 1px 80px) 0 0/100% 22px no-repeat,repeating-linear-gradient(90deg,rgba(185,130,74,.6) 0 1px,transparent 1px 40px) 0 0/100% 14px no-repeat,repeating-linear-gradient(90deg,rgba(185,130,74,.38) 0 1px,transparent 1px 8px) 0 0/100% 8px no-repeat}
.vz-rule-list .elementor-icon-list-item{white-space:nowrap}
@media(max-width:767px){.vz-rule-list .elementor-icon-list-items{flex-direction:column;align-items:center;gap:8px}.vz-rule-list .elementor-icon-list-item{margin:0!important;padding:0!important}.vz-rule-list .elementor-icon-list-item::after{display:none!important}}

/* Millésime fantôme qui glisse au scroll */
.vz-ghost{position:absolute!important;top:7%;right:-3%;z-index:-1;pointer-events:none;margin:0!important;width:auto!important;max-width:none!important}
.vz-ghost .elementor-heading-title{font-family:"Cinzel",serif!important;font-weight:600!important;font-size:clamp(150px,25vw,400px)!important;line-height:1!important;letter-spacing:.02em!important;color:transparent!important;background:linear-gradient(180deg,rgba(122,78,45,.11),rgba(122,78,45,.02) 88%);-webkit-background-clip:text;background-clip:text;white-space:nowrap}
@media(max-width:767px){.vz-ghost{display:none}}

/* Étapes reliées par un filet */
.vz-step{position:relative}
.vz-step::before{content:"";position:absolute;top:34px;left:74px;right:-12px;height:1px;background:linear-gradient(90deg,rgba(185,130,74,.75),rgba(185,130,74,0));pointer-events:none}
.vz-step:last-child::before{display:none}
@media(max-width:1024px){.vz-step::before{display:none}}

/* Cartes */
.vz-card{transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s ease,border-color .35s ease}
.vz-card:hover{transform:translateY(-4px);box-shadow:0 24px 48px -28px rgba(58,37,24,.55);border-color:#B9824A!important}
a.vz-card,.vz-card a{text-decoration:none}
.vz-card .elementor-heading-title a{text-decoration:none}

/* Panneau d'appel à l'action : carte image avec filet intérieur */
.vz-cta-card{position:relative;isolation:isolate;overflow:hidden;overflow:clip}
.vz-cta-card>*{position:relative;z-index:2}
.vz-cta-card::after{content:"";position:absolute;inset:14px;border:1px solid rgba(246,240,231,.22);border-radius:22px;pointer-events:none;z-index:1}

/* Images arrondies avec ombre douce */
.vz-photo img{box-shadow:0 30px 60px -38px rgba(36,23,15,.6)}

/* Boutons */
.elementor-button{transition:transform .3s ease,box-shadow .3s ease,background-color .3s ease,color .3s ease,border-color .3s ease}
.elementor-widget-button .elementor-button:hover{transform:translateY(-2px);box-shadow:0 16px 34px -18px rgba(36,23,15,.7)}

/* Listes à filet miel dans les éditeurs de texte */
.elementor-widget-text-editor ul{list-style:none;padding-left:0;margin:0 0 1em}
.elementor-widget-text-editor ul li{position:relative;padding-left:24px;margin:0 0 .55em}
.elementor-widget-text-editor ul li::before{content:"";position:absolute;left:0;top:.8em;width:12px;height:1px;background:#B9824A}
.elementor-widget-text-editor p:last-child{margin-bottom:0}
.elementor-widget-text-editor h3{margin:1.4em 0 .5em}

/* Tableaux lisibles et défilants sur mobile */
.elementor-widget-text-editor table{width:100%;border-collapse:collapse;font-size:15px;margin:0 0 1em}
.elementor-widget-text-editor th,.elementor-widget-text-editor td{border-bottom:1px solid #E6DACA;padding:12px 14px;text-align:left;vertical-align:top}
.elementor-widget-text-editor th{color:#3A2518;font-weight:600;background:#F6F0E7}
@media(max-width:767px){.elementor-widget-text-editor table{display:block;overflow-x:auto;overflow-y:hidden;width:100%;max-width:100%;font-size:13px}.elementor-widget-text-editor th,.elementor-widget-text-editor td{padding:10px 12px;min-width:88px}}

/* En-tête collant */
.vz-header{transition:box-shadow .25s ease,background-color .25s ease}
.vz-header.elementor-sticky--effects{box-shadow:0 10px 30px -22px rgba(36,23,15,.55)}
/* Verre dépoli quand on fait défiler la page */
.vz-header.elementor-sticky--effects{background-color:rgba(246,240,231,.74)!important}
.vz-header.elementor-sticky--effects{-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5)}
/* Petits écrans d'ordinateur (1025 à 1279 px) : le menu se resserre, les boutons ne se tassent jamais */
.vz-header .elementor-button{white-space:nowrap}
.vz-header .elementor-widget-nav-menu{flex-shrink:1!important;min-width:0}
.vz-header .e-con-inner>.e-con:last-child{flex-shrink:0!important}
@media (min-width:1025px) and (max-width:1279px){
 .vz-header .elementor-nav-menu--main .elementor-item{padding-left:9px!important;padding-right:9px!important}
 .vz-header .vz-logo{width:150px!important;max-width:150px!important}
}
@media (min-width:1025px) and (max-width:1259px){.vz-header .e-con-inner>.e-con:last-child>.elementor-widget-button:first-child{display:none}}

/* Sommaire collant (mentions légales) et ancres sous l'en-tête collant */
.vz-sticky{position:sticky;top:112px;align-self:start}
@media(max-width:1024px){.vz-sticky{position:static}}
.elementor-element[id]{scroll-margin-top:120px}

/* Accent miel lisible sur fond clair (contraste AA) : miel foncé dans les sections claires, miel d'origine sur les fonds sombres */
.vz-s:not(.vz-hero,.vz-foot,.vz-grain-dark){--e-global-color-accent:#9E6A36}
.vz-grain-dark{--e-global-color-accent:#C9965F}
.vz-cta-card,.vz-tile,.vz-s .elementor-widget-button{--e-global-color-accent:#B9824A}

/* Lien d'adresse vers la fiche Google */
.vz-addr a{text-decoration:none}
.vz-addr a:hover{text-decoration:underline;text-underline-offset:3px}

/* Accordéon FAQ */
.vz-faq .elementor-accordion-item{border-width:0 0 1px!important;border-color:#E6DACA!important}
.vz-faq .elementor-accordion-item:first-child{border-top-width:1px!important}
.vz-faq .elementor-tab-title{padding-left:0!important;padding-right:0!important;transition:color .25s ease}
.vz-faq .elementor-tab-content{padding-left:0!important;padding-right:0!important;border-top:0!important}

/* Galerie de chantiers (photos de l'entreprise) : vignettes, filtres, légende au survol */
.vz-gal .elementor-gallery__titles-container{row-gap:10px}
.vz-gal .elementor-gallery-title{padding-left:0!important;padding-right:0!important}
.vz-gal .e-gallery-item{background:#EFE6D9;box-shadow:0 22px 44px -34px rgba(36,23,15,.6);view-timeline:--vzgal block}
.vz-gal .e-gallery--lazyload .e-gallery-image:not(.e-gallery-image-loaded){transform:none}
.vz-gal .elementor-gallery-item__title{font-size:14px!important;line-height:1.35!important}
.vz-gal .elementor-gallery-item__title::before{content:"";display:block;width:22px;height:1px;margin-bottom:10px;background:#B9824A}

/* Pied de page premium : filet lumineux, halos, veinage */
.vz-foot{position:relative;isolation:isolate;overflow:hidden;overflow:clip}
.vz-foot::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(185,130,74,0),rgba(185,130,74,.95) 50%,rgba(185,130,74,0)) top/100% 1px no-repeat,radial-gradient(640px 360px at 8% 0%,rgba(185,130,74,.2),transparent 70%),radial-gradient(780px 460px at 96% 108%,rgba(122,78,45,.38),transparent 70%),repeating-linear-gradient(90deg,rgba(246,240,231,.03) 0 1px,transparent 1px 9px,rgba(246,240,231,.016) 9px 10px,transparent 10px 23px)}
.vz-foot .elementor-icon-list-item a{transition:color .25s ease,transform .25s ease}
.vz-foot .vz-links .elementor-icon-list-item a:hover{transform:translateX(4px)}
.vz-watermark{pointer-events:none;user-select:none}
.vz-watermark.vz-watermark.vz-watermark.vz-watermark .elementor-heading-title{letter-spacing:.08em}
.vz-watermark .elementor-heading-title{font-family:"Cinzel",serif!important;font-weight:600!important;font-size:clamp(84px,21vw,300px)!important;line-height:.8!important;white-space:nowrap;color:transparent!important;background:linear-gradient(180deg,rgba(185,130,74,.34) 0%,rgba(185,130,74,.13) 55%,rgba(185,130,74,0) 94%);-webkit-background-clip:text;background-clip:text}
.vz-legal p{margin:0}
.vz-legal a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(246,240,231,.35)}
.vz-legal a:hover{color:#B9824A}

/* Signature HDKN : un seul bloc texte */
.vz-sign p{margin:0;white-space:nowrap}
.vz-sign a{color:#B9824A;font-weight:700;text-decoration:none}
.vz-sign a:hover{color:#F6F0E7}

/* ===== Effets au scroll (tout le site) =====
   Fil conducteur : la mise au point et le traçage, gestes de précision du menuisier.
   S'appliquent d'office aux sections du kit (classe vz-s) : aucune classe à poser page par page.
   CSS natif (scroll-driven animations). Sans support ou avec « réduire les animations » :
   page statique et lisible. Seul le contenu à venir s'anime, ce qui est passé reste net. */
@supports (animation-timeline: view()) {
@media (prefers-reduced-motion: no-preference) {
 /* Mise au point : les textes passent du flou au net en entrant dans l'écran */
 .vz-s:not(.vz-hero,.vz-foot) :is(.elementor-widget-heading,.elementor-widget-text-editor,.elementor-widget-button,.elementor-widget-icon-list):not(.vz-tile *,.vz-ghost,.vz-step>.elementor-widget:first-child){animation:vz-focus linear both;animation-timeline:view();animation-range:entry 0% entry 240px}
 @keyframes vz-focus{from{opacity:0;filter:blur(8px);translate:0 22px}to{opacity:1;filter:none;translate:0 0}}

 /* Règle graduée (accueil) : les graduations se tracent depuis le centre */
 .vz-rule::after{animation:vz-rule-draw linear both;animation-timeline:view();animation-range:entry 0% cover 55%}
 @keyframes vz-rule-draw{from{clip-path:inset(0 50% 0 50%)}to{clip-path:inset(0 0 0 0)}}

 /* Tuiles : lever de rideau, puis l'image glisse dans son cadre (parallaxe) */
 .vz-tile{view-timeline:--vztile block;animation:vz-curtain linear both;animation-timeline:view();animation-range:entry 0% cover 32%}
 @keyframes vz-curtain{from{clip-path:inset(22% 0 0 0 round 22px);opacity:.15;translate:0 48px}to{clip-path:inset(0 0 0 0 round 22px);opacity:1;translate:0 0}}
 .vz-tile>.vz-tile-img img{scale:1.16;animation:vz-drift-y linear both;animation-timeline:--vztile;animation-range:cover}
 @keyframes vz-drift-y{from{translate:0 -7%}to{translate:0 7%}}

 /* Photos encadrées : tirage, l'image se révèle de bas en haut, du sépia à la couleur */
 .vz-frame{view-timeline:--vzframe block}
 .vz-frame img{animation:vz-develop linear both;animation-timeline:--vzframe;animation-range:entry 0% cover 38%}
 @keyframes vz-develop{from{clip-path:inset(100% -90px -90px -90px);filter:sepia(.5) brightness(.85) contrast(.9)}to{clip-path:inset(-90px -90px -90px -90px);filter:none}}
 .vz-frame::before{animation:vz-frame-in linear both;animation-timeline:--vzframe;animation-range:entry 0% cover 30%}
 @keyframes vz-frame-in{from{opacity:0;translate:-14px -14px}to{opacity:1;translate:0 0}}

 /* 1923 en filigrane (accueil) : glisse lentement à contre-sens du scroll */
 .vz-ghost{animation:vz-drift-x linear both;animation-timeline:view();animation-range:cover}
 @keyframes vz-drift-x{from{translate:14% 0}to{translate:-22% 0}}

 /* Sections sombres : un rayon de lumière traverse le bois */
 .vz-grain-dark>.e-con-inner{position:relative;z-index:1}
 .vz-grain-dark::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(100deg,rgba(185,130,74,0) 32%,rgba(185,130,74,.14) 46%,rgba(246,240,231,.07) 50%,rgba(185,130,74,.14) 54%,rgba(185,130,74,0) 68%) no-repeat;background-size:260% 100%;animation:vz-sweep linear both;animation-timeline:view();animation-range:cover 5% cover 95%}
 @keyframes vz-sweep{0%{background-position:115% 0;opacity:0}22%{opacity:1}78%{opacity:1}100%{background-position:-15% 0;opacity:0}}

 /* Méthode : chaque étape s'imprime, puis le filet se trace vers la suivante */
 .vz-step{view-timeline:--vzstep block}
 .vz-step>.elementor-widget:first-child{animation:vz-stamp linear both;animation-timeline:--vzstep;animation-range:cover 8% cover 14%}
 .vz-step:nth-child(2)>.elementor-widget:first-child{animation-range:cover 18% cover 24%}
 .vz-step:nth-child(3)>.elementor-widget:first-child{animation-range:cover 28% cover 34%}
 .vz-step:nth-child(4)>.elementor-widget:first-child{animation-range:cover 38% cover 44%}
 @keyframes vz-stamp{from{opacity:0;scale:.6}to{opacity:1;scale:1}}
 .vz-step::before{transform-origin:0 50%;animation:vz-trace linear both;animation-timeline:--vzstep;animation-range:cover 13% cover 20%}
 .vz-step:nth-child(2)::before{animation-range:cover 23% cover 30%}
 .vz-step:nth-child(3)::before{animation-range:cover 33% cover 40%}
 @keyframes vz-trace{from{transform:scaleX(0)}to{transform:scaleX(1)}}
 @media (max-width:1024px){.vz-step:nth-child(n)>.elementor-widget:first-child{animation-range:entry 0% entry 200px}}

 /* Cartes image (appel à l'action, atelier) : ouverture depuis le centre */
 .vz-cta-card{animation:vz-open linear both;animation-timeline:view();animation-range:entry 0% cover 30%}
 @keyframes vz-open{from{clip-path:inset(0 7% 0 7% round 30px);opacity:.3}to{clip-path:inset(0 0 0 0 round 30px);opacity:1}}

 /* Galerie de chantiers : chaque photo se développe à son entrée, du sépia à la couleur */
 .vz-gal .e-gallery-image{animation:vz-print linear both;animation-timeline:--vzgal;animation-range:entry 0% entry 85%}
 @keyframes vz-print{from{opacity:0;scale:1.1;filter:sepia(.5) brightness(.88)}to{opacity:1;scale:1;filter:none}}

 /* Pied de page : les lettres de VELTZ s'assemblent */
 .vz-watermark .elementor-heading-title{animation:vz-assemble linear both;animation-timeline:view();animation-range:entry 0% entry 100%}
 @keyframes vz-assemble{from{letter-spacing:.45em;filter:blur(12px);opacity:.15}to{letter-spacing:.08em;filter:none;opacity:1}}

 /* Mobile : fondu et montée, sans flou (plus léger pour le téléphone) */
 @media (max-width:767px){
  .vz-s:not(.vz-hero,.vz-foot) :is(.elementor-widget-heading,.elementor-widget-text-editor,.elementor-widget-button,.elementor-widget-icon-list):not(.vz-tile *,.vz-ghost,.vz-step>.elementor-widget:first-child){animation-name:vz-focus-m}
  @keyframes vz-focus-m{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
 }
}}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}/* End custom CSS */