/* JONGUEE NAA — pages du constructeur (sections → colonnes → widgets).
   Les réglages de chaque élément sont ajoutés par la page dans un <style> généré
   (lib/builder.php) : ici, seulement la mécanique commune. */
.jb{--jb-gap:24px;position:relative}
.jb-s{position:relative;isolation:isolate}
.jb-s::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit}
.jb-s::after{position:absolute;inset:0;z-index:-1;pointer-events:none;background-color:currentColor;opacity:.08;
  -webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-size:56px;mask-size:56px}
.jb-s__in{position:relative;display:flex;flex-wrap:wrap;gap:var(--jb-gap);width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);box-sizing:border-box}
.jb-s--full>.jb-s__in{max-width:none}
.jb-c{position:relative;display:flex;flex-direction:column;flex:1 1 0;min-width:0;gap:20px;box-sizing:border-box}
.jb-w{position:relative;min-width:0;box-sizing:border-box}
.jb-w__in{min-width:0}

/* Widgets */
.jb-heading{margin:0;overflow-wrap:break-word}
.jb-heading a{color:inherit;text-decoration:none}
.jb-text{overflow-wrap:break-word}
.jb-text>:first-child{margin-top:0}
.jb-text>:last-child{margin-bottom:0}
.jb-text a{color:var(--u-ink,var(--ink));text-decoration:underline;text-underline-offset:3px}
.jb-text img{max-width:100%;height:auto}
.jb-img{margin:0}
.jb-img img{display:inline-block;max-width:100%;height:auto;vertical-align:middle;transition:transform .7s var(--ease),filter .5s,box-shadow .4s}
.jb-img a{display:inline-block;max-width:100%}
.jb-img figcaption{margin-top:8px;font-size:.88em;color:var(--muted)}
.jb-img--zoom{overflow:hidden}
.jb-img--gray img{filter:grayscale(1)}
@media (hover:hover) and (pointer:fine){
  .jb-img--zoom:hover img{transform:scale(1.05)}
  .jb-img--lift:hover img{transform:translateY(-6px);box-shadow:var(--shadow-sm)}
  .jb-img--gray:hover img{filter:none}
}
.jb-btn{max-width:100%}
.jb-btn--lg{min-height:58px;padding:0 32px;font-size:16px}
.jb-spacer{height:50px}
.jb-w--divider .jb-w__in{display:flex}
.jb-divider{display:block;width:100%;height:0;border-top:var(--jb-dw,1px) solid;color:var(--line-2)}
.jb-divider--dashed{border-top-style:dashed}
.jb-divider--dotted{border-top-style:dotted}
.jb-divider--double{border-top-style:double;border-top-width:max(3px,var(--jb-dw,3px))}
.jb-divider--pagne{border:0;height:max(10px,var(--jb-dw,14px));background:currentColor;
  -webkit-mask:var(--m-chevrons) 0 50%/auto 100% repeat-x;mask:var(--m-chevrons) 0 50%/auto 100% repeat-x}
.jb-products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.6vw,24px)}
.jb-products--vide{min-height:40px}

/* Animations d'entrée : même mécanique que le reste du site (data-reveal, app.js). */
.js .jb-anim-fade[data-reveal]{transform:none}
.js .jb-anim-zoom[data-reveal]{transform:scale(.94)}
.js .jb-anim-left[data-reveal]{transform:translateX(-36px)}
.js .jb-anim-right[data-reveal]{transform:translateX(36px)}
.js .jb [data-reveal].is-in{transform:none}

/* Affichage selon l'appareil (dans l'éditeur, html.jbe : l'élément reste visible, hachuré) */
@media (min-width:1025px){html:not(.jbe) .jb-hide-d{display:none!important}}
@media (min-width:768px) and (max-width:1024px){
  html:not(.jbe) .jb-hide-t{display:none!important}
  .jb-products{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:767px){
  html:not(.jbe) .jb-hide-m{display:none!important}
  .jb-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
}
@media (prefers-reduced-motion:reduce){
  .js .jb [data-reveal]{transform:none}
  .jb-img img{transition:none}
}

/* ── Icône et boîte d'icône ── */
.jb-icon{--jb-isz:40px;display:inline-flex;align-items:center;justify-content:center;color:var(--u-ink,var(--ink));line-height:0;text-decoration:none;box-sizing:content-box;transition:color .25s,background-color .25s}
.jb-icon svg{width:var(--jb-isz);height:var(--jb-isz);fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.jb-icon--plein{padding:calc(var(--jb-isz) * .45);border-radius:50%;background:var(--jb-ibg,var(--sand))}
.jb-icon--contour{padding:calc(var(--jb-isz) * .45);border-radius:50%;border:1.5px solid var(--jb-ibg,currentColor)}
.jb-ibox{display:flex;flex-direction:column;gap:18px}
.jb-ibox--left{flex-direction:row;align-items:flex-start}
.jb-ibox--right{flex-direction:row-reverse;align-items:flex-start}
.jb-ibox--left .jb-ibox__i,.jb-ibox--right .jb-ibox__i{flex:none}
.jb-ibox__b{min-width:0}
.jb-ibox__t{margin:0 0 8px;font:600 1.3rem/1.2 var(--f-display);overflow-wrap:break-word}
.jb-ibox__t a{color:inherit;text-decoration:none}
.jb-ibox__d{margin:0;color:var(--ink-2)}

/* ── Vidéo ── */
.jb-video{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:var(--r);background:#120b08}
.jb-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ── Carrousel ── */
.jb-car{--jb-nav:var(--ink);position:relative}
.jb-car__track{--jb-per:3;--jb-cgap:16px;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--jb-per) - 1) * var(--jb-cgap)) / var(--jb-per));gap:var(--jb-cgap);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:2px}
.jb-car__track::-webkit-scrollbar{display:none}
.jb-car__track:focus-visible{outline:2px solid var(--jb-nav);outline-offset:4px}
.jb-car__slide{min-width:0;margin:0;scroll-snap-align:start}
.jb-car__slide img{display:block;width:100%;height:auto;border-radius:var(--r-sm)}
.jb-car__slide a{display:block}
.jb-car__slide figcaption{margin-top:10px;font-size:.92em;color:var(--ink-2)}
.jb-car__nav{position:absolute;top:50%;z-index:2;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:rgba(255,253,249,.92);color:var(--jb-nav);box-shadow:var(--shadow-sm);cursor:pointer;transform:translateY(-50%);transition:transform .2s cubic-bezier(.23,1,.32,1),opacity .2s}
.jb-car__nav:active{transform:translateY(-50%) scale(.94)}
.jb-car__nav--prev{left:10px}
.jb-car__nav--next{right:10px}
.jb-car.is-static .jb-car__nav,.jb-car.is-static .jb-car__dots{display:none}
.jb-car__dots{display:flex;justify-content:center;gap:2px;margin-top:12px}
.jb-car__dots button{display:grid;place-items:center;width:28px;height:24px;padding:0;border:0;background:none;cursor:pointer}
.jb-car__dots button::before{content:"";width:8px;height:8px;border-radius:99px;background:var(--jb-nav);opacity:.25;transition:width .25s cubic-bezier(.23,1,.32,1),opacity .25s}
.jb-car__dots button.is-on::before{width:22px;opacity:1}
@media (max-width:1024px){.jb-car__track{--jb-per:2}}
@media (max-width:767px){.jb-car__track{--jb-per:1}.jb-car__nav{width:38px;height:38px}}

/* ── Accordéon ── */
.jb-acc{display:flex;flex-direction:column}
.jb-acc__item{border-bottom:1px solid var(--line-2)}
.jb-acc__item:first-child{border-top:1px solid var(--line-2)}
.jb-acc__t{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 2px;cursor:pointer;list-style:none}
.jb-acc__t::-webkit-details-marker{display:none}
.jb-acc__t:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:6px}
.jb-acc__h{margin:0;font:600 1.15rem/1.3 var(--f-display)}
.jb-acc__i{position:relative;flex:none;width:16px;height:16px}
.jb-acc--plus .jb-acc__i::before,.jb-acc--plus .jb-acc__i::after{content:"";position:absolute;left:0;top:7px;width:16px;height:2px;border-radius:2px;background:currentColor;transition:transform .25s cubic-bezier(.23,1,.32,1)}
.jb-acc--plus .jb-acc__i::after{transform:rotate(90deg)}
.jb-acc--plus .jb-acc__item[open] .jb-acc__i::after{transform:rotate(0)}
.jb-acc--chevron .jb-acc__i::before{content:"";position:absolute;left:3px;top:2px;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .25s cubic-bezier(.23,1,.32,1)}
.jb-acc--chevron .jb-acc__item[open] .jb-acc__i::before{transform:translateY(4px) rotate(-135deg)}
.jb-acc__c{padding:0 2px 20px;color:var(--ink-2)}
.jb-acc__c>:first-child{margin-top:0}
.jb-acc__c>:last-child{margin-bottom:0}
.jb-acc__item[open] .jb-acc__c{animation:jb-acc .3s cubic-bezier(.23,1,.32,1)}
@keyframes jb-acc{from{opacity:0;transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){
  .jb-acc__item[open] .jb-acc__c{animation:none}
  .jb-car__track{scroll-behavior:auto}
}

/* Kit (pages des grands moments) */
.jb-kit{display:grid;gap:0;height:100%;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg,20px);background:var(--white)}
.jb-kit--left{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
.jb-kit__img{background:var(--sand)}
.jb-kit__img img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.jb-kit--left .jb-kit__img img{aspect-ratio:auto;min-height:100%}
.jb-kit__corps{display:flex;flex-direction:column;gap:10px;padding:22px 22px 24px}
.jb-kit__t{margin:0;font:500 1.45rem/1.15 var(--f-display)}
.jb-kit__prix{margin:0;font:600 1.1rem/1.2 var(--f-body);color:var(--u-ink,#b05529)}
.jb-kit__desc{margin:0;color:var(--ink-2);font-size:15px;line-height:1.55}
.jb-kit__h{margin:6px 0 0;font:600 13px/1.2 var(--f-future);color:var(--ink-2)}
.jb-kit__contenu{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:15px}
.jb-kit__contenu li{position:relative;padding-left:18px}
.jb-kit__contenu li::before{content:"";position:absolute;left:2px;top:.6em;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.45}
.jb-kit__btn{margin-top:auto;align-self:flex-start}
.jb-kit__contenu+.jb-kit__btn,.jb-kit__desc+.jb-kit__btn,.jb-kit__prix+.jb-kit__btn{margin-top:14px}
@media (max-width:767px){.jb-kit--left{grid-template-columns:minmax(0,1fr)}.jb-kit--left .jb-kit__img img{aspect-ratio:4/3}}
