/* V3.20.5 — Audit de sécurité responsive (9 pages)
   Conserve le header validé, corrige uniquement son pictogramme et les marges de sécurité. */
.jbx-burger::before,.jbx-burger::after{content:none!important;display:none!important}
.jbx-burger{font-size:0!important;line-height:0!important;display:none;align-items:center;justify-content:center;touch-action:manipulation}
.jbx-burger-bars{pointer-events:none;position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.jbx-burger-bars>span{display:block;width:19px;height:2px;border-radius:5px;background:#fff;transform-origin:center;transition:transform .23s ease,opacity .18s ease}
.jbx-burger[aria-expanded="true"] .jbx-burger-bars>span:first-child{transform:translateY(6px) rotate(45deg)}
.jbx-burger[aria-expanded="true"] .jbx-burger-bars>span:nth-child(2){opacity:0}
.jbx-burger[aria-expanded="true"] .jbx-burger-bars>span:last-child{transform:translateY(-6px) rotate(-45deg)}
.jbx-burger:focus-visible{outline:2px solid #ffe8d0!important;outline-offset:4px!important}
@media(max-width:1480px){.jbx-burger{display:flex!important}}
@media(min-width:1481px){.jbx-burger{display:none!important}}
/* Ancres de rubriques : tenir compte du bandeau fixe */
html{scroll-padding-top:105px}
:where(main,section,footer) [id],main[id],section[id],footer[id]{scroll-margin-top:105px}
.jbx-links{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
@media(max-width:760px){
 html{scroll-padding-top:96px}
 :where(main,section,footer) [id],main[id],section[id],footer[id]{scroll-margin-top:96px}
 /* Respecter au moins 20px autour des contenus sur iPhone */
 main .wrap,main .container,main .beyond-wrap{max-width:calc(100% - 40px)!important;margin-left:auto;margin-right:auto}
 main img,main video,main iframe{max-width:100%}
 main :is(h1,h2,h3,p,li){overflow-wrap:break-word}
 /* Les pages qui commencent directement par un hero ont besoin d'un dégagement
    car le header flottant, contrairement à l'ancien header sticky, ne réserve pas d'espace. */
 main>.hero:first-child>.wrap{padding-top:max(120px, calc(110px + env(safe-area-inset-top,0px)))!important}
 /* La page Notre histoire place sa typographie dans une couche superposée. */
 main>.history-hero:first-child .hero-copy{padding-top:max(130px,calc(120px + env(safe-area-inset-top,0px)))!important}
 /* Liens de navigations accessibles au doigt et sans dépassement vertical. */
 .jbx-links{max-height:calc(100dvh - 90px);max-height:calc(100svh - 90px);overflow-x:hidden;overflow-y:auto}
 .jbx-links>a{overflow-wrap:anywhere}
}
@media(max-width:360px){
 main .wrap,main .container,main .beyond-wrap{max-width:calc(100% - 36px)!important}
 .jbx-head{padding-left:10px!important;padding-right:10px!important}
 .jbx-inner{gap:8px!important;padding-inline:9px!important}
 .jbx-logo{font-size:17px!important;gap:7px!important}
 .jbx-logo img{width:35px!important;height:35px!important}
 .jbx-burger{flex-basis:42px!important;min-width:42px!important}
}
@media(prefers-reduced-motion:reduce){.jbx-burger-bars>span{transition:none}}

@media(max-width:760px){
 /* Agenda / Carnet : leur hero possède déjà un espacement vertical interne. */
 body[data-jbt-page="agenda-mariage"] main>.hero:first-child>.wrap,
 body[data-jbt-page="carnet-inspiration"] main>.hero:first-child>.wrap{padding-top:55px!important}
 /* Notre histoire : préserver l'image plein cadre et sa composition éditoriale. */
 body[data-jbt-page="notre-histoire"] main>.history-hero:first-child .hero-copy{padding-top:58px!important}
}

@media(max-width:760px){
 main>.hero:first-child>.wrap,
 main>.history-hero:first-child .container{width:calc(100% - 40px)!important;max-width:calc(100% - 40px)!important}
}
