/* ================================================================
   JVMH | pages Elementor du nouveau design (sections « jv-sec »)
   Reproduit le design du thème sur la structure Elementor :
   section > .elementor-container > .elementor-column > .elementor-widget-wrap > widgets
   ================================================================ */
body.jvmh-jv-page{padding-top:0;background:var(--bg)}

/* ---------- socle ---------- */
.jv-sec{position:relative;font-family:var(--sans);color:var(--ink);font-size:17px;line-height:1.7}
.jv-sec.elementor-section{margin:0!important}
.jv-sec > .elementor-container{max-width:var(--maxw)!important;padding-inline:var(--gutter)}
.jv-sec.elementor-section-full_width > .elementor-container{max-width:none!important;padding-inline:0}
.jv-sec .elementor-column > .elementor-widget-wrap{padding:0!important}
.jv-sec .elementor-widget:not(:last-child){margin-block-end:0}
.jv-sec .elementor-widget-wrap > .elementor-widget{margin-bottom:0}
.jv-sec .elementor-heading-title{font-family:var(--display);font-weight:400;line-height:1.12;color:inherit;letter-spacing:.005em}
.jv-sec .elementor-widget-text-editor{color:inherit}
.jv-sec .elementor-widget-text-editor p:last-child{margin-bottom:0}
.jv-raw > .elementor-container{max-width:none!important;padding:0!important}
.jv-raw .elementor-shortcode{display:block}
.jv-h2 .elementor-heading-title{font-size:clamp(1.9rem,3.1vw,3rem)}
.jv-h3 .elementor-heading-title{font-size:clamp(1.25rem,1.7vw,1.5rem);color:var(--accent-strong);margin-top:1.4em}

/* ---------- boutons (widget Bouton) ---------- */
.jv-btn .elementor-button{display:inline-flex;align-items:center;gap:.7em;padding:15px 28px;border-radius:var(--radius);background:var(--accent-strong)!important;color:#fff!important;font-family:var(--display);font-size:.92rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;line-height:1.2;border:0;fill:#fff;transition:background .4s var(--ease),transform .4s var(--ease)}
.jv-btn .elementor-button:hover{background:var(--navy)!important}
.jv-btn .elementor-button:active{transform:scale(.98)}
.jv-btn .elementor-button-text::after{content:"\2192";margin-left:.7em}
.jv-btn-light .elementor-button{background:transparent!important;color:#fff!important;border:1px solid rgba(249,247,245,.6)}
.jv-btn-light .elementor-button:hover{background:#fff!important;color:var(--ink)!important}
.jv-btn-light .elementor-button-text::after{content:none}
.jv-link .elementor-button{background:none!important;padding:0 0 4px;border-radius:0;border-bottom:1px solid var(--accent);color:var(--ink)!important;font-family:var(--display);font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;transition:color .3s}
.jv-link .elementor-button-text::after{content:"\2192";margin-left:.6em;display:inline-block;transition:transform .4s var(--ease)}
.jv-link .elementor-button:hover{color:var(--accent-strong)!important}
.jv-link .elementor-button:hover .elementor-button-text::after{transform:translateX(5px)}
.jv-link-light .elementor-button{color:var(--on-dark)!important}
.elementor-widget-button.elementor-widget__width-auto{margin-right:12px!important}

/* ---------- images (widget Image) ---------- */
.jv-fig{margin-top:36px!important;overflow:hidden;background:var(--surface-2)}
.jv-fig img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;display:block}

/* ---------- fil d'Ariane ---------- */
.jv-crumbs .crumbs{margin-bottom:18px}

/* ================= prestations / grandes villes ================= */
.c-hero.jv-sec{display:flex;align-items:flex-end}
.c-hero.jv-sec > .elementor-container{position:static;width:100%;max-width:var(--maxw)!important;margin:0 auto;padding-inline:var(--gutter)}
.c-hero .c-hero-in,.c-hero .c-hero-in > .elementor-widget-wrap{position:static}
.jv-sec .c-hero-in > .elementor-widget-wrap{padding:140px 0 clamp(56px,8vh,96px)!important;align-items:center}
.c-hero .c-hero-media{position:absolute!important;inset:0;width:auto!important;z-index:0}
.c-hero .c-hero-in > .elementor-widget-wrap > .elementor-widget:not(.c-hero-media){position:relative;z-index:2}
.c-h1 .elementor-heading-title{font-size:clamp(2.4rem,5.4vw,5rem)!important;line-height:1.04!important;max-width:20ch;margin:6px 0 30px;color:#fff}

.chips.jv-sec > .elementor-container{max-width:var(--maxw)!important;padding-inline:var(--gutter);margin:0 auto}
.jv-chips ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:rgba(134,151,166,.25)}
.jv-chips li{background:var(--navy);padding:24px 18px;display:flex;gap:12px;align-items:flex-start;font-size:.98rem;line-height:1.4;color:var(--on-dark)}
.jv-chips li::before{content:"";flex:none;width:12px;height:7px;margin-top:.35em;border-left:2px solid #D99559;border-bottom:2px solid #D99559;transform:rotate(-45deg)}

.toc-sec > .elementor-container{max-width:none!important;padding:0!important}

.chap.jv-sec > .elementor-container{align-items:stretch}
.jv-sec .chap-head > .elementor-widget-wrap{position:sticky;top:150px;align-self:flex-start;padding-right:clamp(28px,4vw,80px)!important}
.chap-title .elementor-heading-title{font-size:clamp(1.8rem,2.8vw,2.7rem)!important;line-height:1.15!important;scroll-margin-top:150px}
.chap-title .elementor-heading-title::before{content:"";display:block;width:44px;height:2px;background:var(--accent);margin-bottom:20px}
.chap-body .elementor-widget + .elementor-widget{margin-top:26px!important}
.chap-body .elementor-widget.jv-btn{margin-top:30px!important}
.jv-sec.chap-plain .chap-body{display:flex}
.chap-plain .chap-body > .elementor-widget-wrap{display:flex!important;flex-wrap:wrap;align-items:center;gap:24px}
.chap-plain .chap-body .jv-fig{flex:1 1 100%}
.chap-plain .jv-fig img{aspect-ratio:21/8}

.approach.jv-sec{overflow:hidden;background-color:var(--navy-deep)}
.approach.jv-sec::before{content:"";position:absolute;inset:0;z-index:0;background:rgba(21,43,77,.88)}
.approach.jv-sec > .elementor-container{position:relative;z-index:1;max-width:var(--maxw)!important;margin:0 auto;padding-inline:var(--gutter)}
.jv-sec .ap-copy > .elementor-widget-wrap{padding-right:clamp(28px,5vw,96px)!important}
.ap-title .elementor-heading-title{font-size:clamp(1.8rem,3vw,2.8rem);color:var(--on-dark);margin-bottom:22px}
.approach .ap-copy .elementor-widget + .elementor-widget{margin-top:18px!important}

.zone.jv-sec > .elementor-container{align-items:flex-start}
.zone-title .elementor-heading-title{font-size:clamp(1.6rem,2.6vw,2.4rem)}
.zone-title .elementor-heading-title::before{content:"";display:block;width:44px;height:2px;background:var(--accent);margin-bottom:18px}
.svc-links .sl-title .elementor-heading-title{font-size:clamp(1.9rem,3.1vw,3rem);margin-bottom:8px}
.svc-links .sl-sub .elementor-heading-title{font-size:clamp(1.15rem,1.6vw,1.4rem);color:var(--accent-strong);margin-bottom:30px}
.svc-links .prose{max-width:72ch;margin:6px 0 30px!important}
.svc-list ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.svc-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:26px 24px;background:var(--bg);font-family:var(--display);font-size:1.2rem;color:var(--ink);transition:background .4s,color .3s}
.svc-list a::after{content:"\2192";color:var(--accent);transition:transform .4s var(--ease)}
.svc-list a:hover{background:#fff;color:var(--accent-strong)}
.svc-list a:hover::after{transform:translateX(6px)}

/* ================= présentation / réalisations / contact / mentions ================= */
.p-hero.jv-sec > .elementor-container{align-items:center}
.jv-sec .p-hero-copy > .elementor-widget-wrap{padding-right:clamp(28px,5vw,90px)!important}
.p-h1 .elementor-heading-title{font-size:clamp(2rem,3.6vw,3.4rem);line-height:1.1;margin-bottom:24px}
.p-hero.simple .p-h1 .elementor-heading-title{font-size:clamp(2.2rem,4.4vw,4rem)}
.p-sub .elementor-heading-title{font-size:clamp(1.15rem,1.6vw,1.45rem);color:var(--accent-strong);margin:-8px 0 18px}
.p-hero .jv-btn{margin-top:26px!important}
.split.jv-sec > .elementor-container{align-items:flex-start}
.jv-sec .split-copy > .elementor-widget-wrap{padding-right:clamp(28px,5vw,90px)!important}
.split-title .elementor-heading-title{font-size:clamp(1.7rem,2.6vw,2.4rem);margin-bottom:20px}
.mr-title .elementor-heading-title{font-size:clamp(1.5rem,2.4vw,2.2rem);margin-bottom:36px;max-width:30ch}
.gal-sec{padding-bottom:clamp(70px,9vw,130px)}
.legal-sec{padding-bottom:clamp(70px,9vw,130px)}
.legal-sec .jv-fig{margin:0 0 36px!important}
.legal-sec .prose{max-width:74ch}
.contact-page.jv-sec > .elementor-container{align-items:flex-start}
.jv-sec .ct-copy > .elementor-widget-wrap{padding-right:clamp(28px,5vw,90px)!important}
.contact-page .form-card h2{font-family:var(--display);font-weight:400;font-size:clamp(1.3rem,1.9vw,1.7rem);margin-bottom:22px}

/* ================= accueil ================= */
.promo.jv-sec > .elementor-container{max-width:var(--maxw)!important;padding:24px var(--gutter)!important;margin:0 auto;align-items:center}
.promo-txt p{margin:0}
.promo-txt strong{font-family:var(--display);font-weight:400;font-size:clamp(1.1rem,1.7vw,1.45rem);display:block}
.promo-txt em{font-style:normal;color:#D99559}
.promo-txt small{opacity:.75;font-size:.92rem}
.promo-r > .elementor-widget-wrap{justify-content:flex-end}
.promo-r .elementor-widget{width:auto!important}

.intro.jv-sec > .elementor-container{align-items:center}
.jv-sec .intro-copy > .elementor-widget-wrap{padding-right:clamp(28px,5vw,100px)!important}
.intro .jv-h2 .elementor-heading-title{margin-bottom:26px}
.intro-h3 .elementor-heading-title{color:var(--accent-strong);font-size:clamp(1.2rem,1.7vw,1.5rem);margin-bottom:6px}
.intro-tag .elementor-heading-title{font-size:1.3rem;margin-bottom:24px}
.intro-txt p{color:var(--muted);margin-bottom:14px;max-width:56ch}
.intro .jv-link{margin-top:22px!important}

.method.jv-sec > .elementor-container{min-height:100dvh;align-items:center;max-width:var(--maxw)!important;margin:0 auto;padding-inline:var(--gutter)}
.jv-sec .m-head > .elementor-widget-wrap{padding-right:clamp(28px,5vw,110px)!important}
.method .jv-h2 .elementor-heading-title{color:var(--on-dark)}
.method .rail{position:relative;padding-left:36px;display:grid;gap:clamp(18px,2.8vh,32px)}
.method .rail p{margin:0;padding-left:26px;position:relative}
.method .rail p::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:10px;border:1px solid var(--accent);transform:rotate(45deg)}

.dreams-title .elementor-heading-title{margin-bottom:clamp(36px,5vw,64px)}
.dreams-title .elementor-heading-title span{display:block;color:var(--accent-strong)}
.marquee-sec > .elementor-container{max-width:none!important;padding:0!important}
.marquee-sec .marquee{margin-top:0}

.offer.jv-sec > .elementor-container{align-items:flex-start}
.jv-sec .offer-media > .elementor-widget-wrap{padding-right:clamp(28px,5vw,100px)!important;position:sticky;top:110px;align-self:flex-start}
.offer-img img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.offer .jv-h2 .elementor-heading-title{margin-bottom:18px}
.offer-h3 .elementor-heading-title{color:var(--accent-strong);font-size:clamp(1.2rem,1.7vw,1.5rem);margin-bottom:34px}
.offer-label .elementor-heading-title{font-size:1rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:18px}
.feats-list ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.feats-list li{padding:26px;background:var(--bg);font-size:1.05rem;line-height:1.45;position:relative}
.feats-list li::before{content:"";display:block;width:24px;height:2px;background:var(--accent);margin-bottom:14px}
.feats-list li:nth-child(5){grid-column:1/-1;background:var(--navy);color:var(--on-dark)}
.feats-list li:nth-child(6){grid-column:1/-1}

.services.jv-sec .jv-h2{max-width:var(--maxw);margin:0 auto clamp(30px,4vw,54px)!important;padding-inline:var(--gutter);width:100%}

.why-h3 .elementor-heading-title{color:var(--accent-strong);font-size:clamp(1.2rem,1.7vw,1.5rem);margin-top:14px}

.cta.jv-sec::before{content:"";position:absolute;inset:0;z-index:0;background:rgba(21,43,77,.86)}
.cta.jv-sec > .elementor-container{position:relative;z-index:1;max-width:var(--maxw)!important;margin:0 auto;padding-inline:var(--gutter)}
.cta.jv-sec .elementor-widget-wrap{justify-content:center;text-align:center}
.cta-title .elementor-heading-title{font-size:clamp(2.3rem,5.6vw,5rem);color:var(--on-dark);margin-bottom:22px}
.cta-txt{width:100%}
.cta-txt p{max-width:58ch;margin:0 auto 38px;opacity:.82;font-size:1.12rem;color:var(--on-dark)}

/* ---------- tablette / mobile ---------- */
@media (max-width:1100px){
  .jv-chips ul{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:767px){
  .jv-sec .elementor-column{width:100%!important}
  .jv-sec .chap-head > .elementor-widget-wrap{position:relative;top:0;padding-right:0!important;margin-bottom:18px}
  .jv-sec .ap-copy > .elementor-widget-wrap,.jv-sec .p-hero-copy > .elementor-widget-wrap,.jv-sec .split-copy > .elementor-widget-wrap,
  .jv-sec .ct-copy > .elementor-widget-wrap,.jv-sec .intro-copy > .elementor-widget-wrap,.jv-sec .m-head > .elementor-widget-wrap,
  .jv-sec .offer-media > .elementor-widget-wrap{padding-right:0!important;position:relative;top:0}
  .ap-form,.p-hero-media,.ct-form,.intro-media,.offer-copy{margin-top:36px}
  .jv-chips ul{grid-template-columns:1fr 1fr}
  .feats-list ul{grid-template-columns:1fr}
  .promo-r > .elementor-widget-wrap{justify-content:flex-start;margin-top:12px}
  .method.jv-sec > .elementor-container{min-height:auto;padding-block:90px}
  .method .rail p{opacity:1}
}
