.has-local-promotion{--local-banner-height:64px}
.has-local-promotion #nav-menu{margin-top:var(--local-banner-height)}
.has-local-promotion .nav-header-spacer{padding-top:calc(70px + var(--local-banner-height))}
.local-promotion{position:fixed;top:0;left:0;z-index:12;width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:20px;padding:10px 48px;background:#e4fbee;color:#4a4a4a;font-family:Montserrat,sans-serif;line-height:1.4;max-height:min(144px,30vh);overflow:auto}
.local-promotion[hidden]{display:none}
.local-promotion__text{margin:0;font-size:16px;font-weight:600;text-align:left}
.local-promotion__link{background:#00d68b;color:#fff!important;border:1px solid #00d68b;border-radius:999px;padding:9px 24px;flex-shrink:0;white-space:nowrap;font-size:14px;font-weight:700;text-decoration:none;line-height:1.5}
.local-promotion__link:hover{background:#00a36a;border-color:#00a36a}
.local-promotion__close{position:absolute;right:12px;top:8px;border:0;background:transparent;color:#4a4a4a;cursor:pointer;font-size:26px;line-height:30px;width:32px;height:32px;padding:0}
.local-promotion button:focus-visible,.local-promotion a:focus-visible{outline:3px solid #27394a;outline-offset:3px}
/* All campaigns share the gift-card typography and CTA geometry, including
   the French insurance banner. Content can wrap; height is measured locally. */
@media(min-width:768px){
 .has-local-promotion{--local-banner-height:calc(36px + 2vw)}
 .local-promotion{flex-wrap:wrap;gap:2vw;padding:1vw 50px}
 .local-promotion__text{flex-shrink:0;max-width:calc(100% - 4vw);font-size:20px;font-weight:700;line-height:1.125}
 .local-promotion__link{padding:8px 18px;line-height:18px}
 .local-promotion__close{right:0;top:calc(50% - 25px);width:50px;height:50px;line-height:50px;font-size:24px}
}
/* The original mobile widgets each add 8px composite padding plus 1vw
   widget padding. Preserve that geometry without their external engine. */
@media(max-width:767px){
 .has-local-promotion{--local-banner-height:150px}
 .local-promotion{flex-direction:column;gap:calc(2vw + 16px);padding:calc(1vw + 8px) calc(50px + 2vw + 8px);max-height:min(192px,30vh)}
 .local-promotion__text{font-size:18px;font-weight:700;line-height:1.125;text-align:left;width:auto;max-width:100%}
 .local-promotion__link{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;font-size:12px;line-height:.875;min-height:36px;padding:8px 18px}
 .local-promotion__close{right:0;top:0;width:50px;height:50px;line-height:50px;font-size:24px}
}
@media(max-width:380px){.local-promotion{padding-right:calc(25px + 2vw + 8px);padding-left:calc(25px + 2vw + 8px)}}
