/* Jenny Nails Spa Popup & Announcement Manager 1.2.0 */
.jns-am-root{--jns-am-gold:#cfa921;--jns-am-brown:#49372f;--jns-am-ivory:#fbf8f3;--jns-am-blush:#f7eee8;--jns-am-text:#6a5a50;font-family:inherit;box-sizing:border-box;color:var(--jns-am-brown);}
.jns-am-root *,.jns-am-root *::before,.jns-am-root *::after{box-sizing:border-box}
.jns-am-root[hidden]{display:none!important}
.jns-am-root .jns-am-panel{background:var(--jns-am-ivory);color:var(--jns-am-brown);}
.jns-am-root .jns-am-copy{min-width:0}
.jns-am-root .jns-am-eyebrow{display:block;color:#816419;font-weight:750;font-size:11px;letter-spacing:.15em;text-transform:uppercase;margin:0 0 10px;line-height:1.4}
.jns-am-root h2,.jns-am-root .jns-am-heading{color:var(--jns-am-brown);font-size:clamp(23px,2.7vw,34px);font-weight:750;line-height:1.15;margin:0 0 12px;font-family:inherit;letter-spacing:-.025em}
.jns-am-root .jns-am-description{color:var(--jns-am-text);font-size:15px;line-height:1.7;overflow-wrap:anywhere}
.jns-am-root .jns-am-description p{margin:0 0 .7em;padding:0;line-height:inherit;font-size:inherit;color:inherit}
.jns-am-root .jns-am-description p:last-child{margin-bottom:0}
.jns-am-root .jns-am-description a{color:#816419;text-decoration:underline}
.jns-am-root .jns-am-close{appearance:none;-webkit-appearance:none;border:1px solid #e9ddce;background:#fff;color:var(--jns-am-brown);position:absolute;right:14px;top:14px;z-index:5;width:35px;height:35px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%;padding:8px;box-shadow:0 2px 6px #3323130b;transition:background .15s,border-color .15s,transform .15s}
.jns-am-root .jns-am-close:hover{background:var(--jns-am-blush);border-color:var(--jns-am-gold);transform:scale(1.04)}
.jns-am-root .jns-am-close svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.jns-am-root :focus-visible{outline:3px solid #9e7920;outline-offset:3px}
.jns-am-root .jns-am-cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none!important;border-radius:7px;background:var(--jns-am-gold);color:#292116!important;font-size:12px;font-weight:750;letter-spacing:.07em;line-height:1.3;padding:13px 22px;min-height:44px;margin-top:20px;box-shadow:0 4px 12px #59441221;transition:background .15s,transform .15s}
.jns-am-root .jns-am-cta:hover{background:#e1be4d;color:#292116!important;transform:translateY(-1px)}
.jns-am-modal{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:clamp(12px,3vw,28px);isolation:isolate}
.jns-am-modal .jns-am-backdrop{position:absolute;inset:0;background:rgba(35,25,23,.65);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);}
.jns-am-modal .jns-am-panel{position:relative;z-index:1;border:1px solid rgba(207,169,33,.34);border-radius:20px;box-shadow:0 26px 90px #1a10104d;max-width:min(var(--jns-am-max-width,560px),calc(100vw - 20px));width:100%;max-height:min(var(--jns-am-max-height,90dvh),calc(100dvh - 20px));overflow-y:auto;overscroll-behavior:contain;text-align:center;}
.jns-am-modal .jns-am-panel::before{content:"";display:block;height:4px;background:linear-gradient(90deg,#f1dcc7,#cfa921,#f1dcc7)}
.jns-am-modal .jns-am-copy{padding:35px clamp(22px,5vw,46px) 38px}
.jns-am-modal .jns-am-image{margin:0;display:block;line-height:0;max-width:100%;overflow:visible}
.jns-am-modal .jns-am-image img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain}
.jns-am-modal.jns-am-image-cover .jns-am-image{height:var(--jns-am-cover-height,240px);overflow:hidden}
.jns-am-modal.jns-am-image-cover .jns-am-image img{height:100%;width:100%;object-fit:cover}
.jns-am-modal .jns-am-image+.jns-am-copy{padding-top:25px}
/* Image-only: preserve the complete picture, no duplicated text/CTA, viewport-safe on phones. */
.jns-am-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;border:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
.jns-am-image-only .jns-am-panel{width:fit-content;max-width:min(var(--jns-am-max-width,560px),calc(100vw - 20px));max-height:min(var(--jns-am-max-height,90dvh),calc(100dvh - 20px));overflow:visible}
.jns-am-image-only .jns-am-panel::before{height:0}
.jns-am-image-only .jns-am-image{margin:0;line-height:0;overflow:hidden;border-radius:inherit}
.jns-am-image-only .jns-am-image img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(min(var(--jns-am-max-height,90dvh),100dvh - 20px) - 3px);object-fit:contain}
.jns-am-image-only .jns-am-image-click{display:block;cursor:pointer;line-height:0;border-radius:inherit;overflow:hidden}
.jns-am-image-only .jns-am-image-click:focus-visible{outline:4px solid #b78b1c;outline-offset:3px}
.jns-am-image-only .jns-am-close{background:#fffdfa;border:2px solid #cfa921;box-shadow:0 2px 9px #291b1d40;right:12px;top:12px}

.jns-am-modal .jns-am-image+.jns-am-copy .jns-am-eyebrow{margin-bottom:7px}
.jns-am-bar{background:linear-gradient(90deg,#fbf8f3,#f7eee8);border-top:1px solid #e9ddce;border-bottom:1px solid #dfc99f;width:100%;position:relative;z-index:21474800;}
.jns-am-bar .jns-am-panel{position:relative;max-width:1200px;margin:0 auto;min-height:76px;padding:16px 65px 16px 24px;display:flex;align-items:center;justify-content:center;text-align:center;background:transparent;gap:30px}
.jns-am-bar .jns-am-copy{display:flex;align-items:center;gap:15px;flex-wrap:wrap;justify-content:center}
.jns-am-bar .jns-am-eyebrow{margin:0;white-space:nowrap;font-size:10px}
.jns-am-bar .jns-am-heading{display:inline;color:var(--jns-am-brown);font-size:16px;letter-spacing:0;margin:0}
.jns-am-bar .jns-am-description{display:inline;font-size:13px;line-height:1.45}
.jns-am-bar .jns-am-description p{display:inline;margin:0}
.jns-am-bar .jns-am-cta{margin:0;padding:10px 15px;min-height:37px;font-size:11px;white-space:nowrap}
.jns-am-bar .jns-am-close{top:50%;right:15px;transform:translateY(-50%);}
.jns-am-bar .jns-am-close:hover{transform:translateY(-50%) scale(1.04)}
body.jns-am-modal-open{overflow:hidden!important}
@media(max-width:650px){
 .jns-am-modal{padding:12px}
 .jns-am-modal .jns-am-panel{max-width:min(var(--jns-am-mobile-width,94vw),calc(100vw - 16px));max-height:min(var(--jns-am-max-height,90dvh),calc(100dvh - 16px));border-radius:15px}
 .jns-am-modal .jns-am-copy{padding:54px 21px 30px}
 .jns-am-modal h2{font-size:26px}
 .jns-am-modal.jns-am-image-cover .jns-am-image{height:min(var(--jns-am-cover-height,240px),45dvh)}
 .jns-am-modal .jns-am-image+.jns-am-copy{padding-top:20px}
 .jns-am-image-only .jns-am-panel{max-width:min(var(--jns-am-mobile-width,94vw),calc(100vw - 16px))}
 .jns-am-image-only .jns-am-image img{max-height:calc(min(var(--jns-am-max-height,90dvh),100dvh - 16px) - 3px)}
 .jns-am-root .jns-am-description{font-size:14px}
 .jns-am-modal .jns-am-cta{width:100%;min-height:45px}
 .jns-am-bar .jns-am-panel{padding:13px 53px 13px 15px;min-height:65px;gap:7px}
 .jns-am-bar .jns-am-copy{gap:5px 9px}
 .jns-am-bar .jns-am-heading{font-size:14px}
 .jns-am-bar .jns-am-description{font-size:12px;width:100%;}
 .jns-am-bar .jns-am-cta{font-size:10px;padding:9px 12px}
 .jns-am-bar .jns-am-close{right:9px}
}
@media(max-width:360px){.jns-am-modal .jns-am-copy{padding-left:16px;padding-right:16px}.jns-am-modal .jns-am-panel h2{font-size:23px}.jns-am-bar .jns-am-panel{padding-left:8px;padding-right:43px}}
/* Campaign-specific animation system; affects the panel only, not its cover/photo fit. */
.jns-am-root.is-opening .jns-am-panel,
.jns-am-root.is-closing .jns-am-panel{transform-origin:50% 50%;backface-visibility:hidden;animation-fill-mode:both;animation-timing-function:ease-out;}
.jns-am-root.is-opening .jns-am-panel{animation-duration:var(--jns-am-open-duration,500ms);animation-name:jns-am-open-slide;}
.jns-am-root.is-closing .jns-am-panel{animation-duration:var(--jns-am-close-duration,350ms);animation-name:jns-am-close-fade;animation-timing-function:ease-in;pointer-events:none;}
.jns-am-root.is-closing .jns-am-close{pointer-events:none;}
.jns-am-root.is-opening[data-open-animation="none"] .jns-am-panel,
.jns-am-root.is-closing[data-close-animation="none"] .jns-am-panel{animation:none;}
.jns-am-root.is-opening[data-open-animation="fade"] .jns-am-panel{animation-name:jns-am-open-fade;}
.jns-am-root.is-opening[data-open-animation="slide"] .jns-am-panel{animation-name:jns-am-open-slide;}
.jns-am-root.is-opening[data-open-animation="zoom"] .jns-am-panel{animation-name:jns-am-open-zoom;}
.jns-am-root.is-opening[data-open-animation="flip"] .jns-am-panel{animation-name:jns-am-open-flip;}
.jns-am-root.is-opening[data-open-animation="shake"] .jns-am-panel{animation-name:jns-am-open-shake;}
.jns-am-root.is-opening[data-open-animation="swing"] .jns-am-panel{animation-name:jns-am-open-swing;}
.jns-am-root.is-opening[data-open-animation="flash"] .jns-am-panel{animation-name:jns-am-open-flash;}
.jns-am-root.is-closing[data-close-animation="fade"] .jns-am-panel{animation-name:jns-am-close-fade;}
.jns-am-root.is-closing[data-close-animation="slide"] .jns-am-panel{animation-name:jns-am-close-slide;}
.jns-am-root.is-closing[data-close-animation="zoom"] .jns-am-panel{animation-name:jns-am-close-zoom;}
.jns-am-root.is-closing[data-close-animation="flip"] .jns-am-panel{animation-name:jns-am-close-flip;}
.jns-am-root.is-closing[data-close-animation="shake"] .jns-am-panel{animation-name:jns-am-close-shake;}
.jns-am-root.is-closing[data-close-animation="swing"] .jns-am-panel{animation-name:jns-am-close-swing;}
.jns-am-root.is-closing[data-close-animation="flash"] .jns-am-panel{animation-name:jns-am-close-flash;}
/* Fade the background gently on close; opening keeps the previous background styling. */
.jns-am-modal.is-closing .jns-am-backdrop{animation:jns-am-close-fade var(--jns-am-close-duration,350ms) ease-in both;pointer-events:none;}
@keyframes jns-am-open-fade{from{opacity:0;}to{opacity:1;}}
@keyframes jns-am-close-fade{from{opacity:1;}to{opacity:0;}}
@keyframes jns-am-open-slide{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}
@keyframes jns-am-close-slide{from{opacity:1;transform:translateY(0);}to{opacity:0;transform:translateY(34px);}}
@keyframes jns-am-open-zoom{from{opacity:0;transform:scale(.78);}to{opacity:1;transform:scale(1);}}
@keyframes jns-am-close-zoom{from{opacity:1;transform:scale(1);}to{opacity:0;transform:scale(.78);}}
@keyframes jns-am-open-flip{0%{opacity:0;transform:perspective(850px) rotateY(-90deg) scale(.96);}70%{opacity:1;}100%{transform:perspective(850px) rotateY(0) scale(1);opacity:1;}}
@keyframes jns-am-close-flip{0%{opacity:1;transform:perspective(850px) rotateY(0);}100%{opacity:0;transform:perspective(850px) rotateY(90deg);}}
@keyframes jns-am-open-shake{0%{opacity:0;transform:translateX(0) scale(.96);}20%{opacity:1;transform:translateX(-9px);}40%{transform:translateX(9px);}60%{transform:translateX(-6px);}80%{transform:translateX(4px);}100%{opacity:1;transform:translateX(0) scale(1);}}
@keyframes jns-am-close-shake{0%{opacity:1;transform:translateX(0);}20%{transform:translateX(-8px);}40%{transform:translateX(8px);}60%{transform:translateX(-6px);}80%{opacity:.85;transform:translateX(5px);}100%{opacity:0;transform:translateX(0);}}
@keyframes jns-am-open-swing{0%{opacity:0;transform:rotate(-13deg) translateY(-12px);}35%{opacity:1;transform:rotate(7deg);}65%{transform:rotate(-4deg);}85%{transform:rotate(2deg);}100%{opacity:1;transform:rotate(0);}}
@keyframes jns-am-close-swing{0%{opacity:1;transform:rotate(0);}25%{transform:rotate(7deg);}55%{transform:rotate(-9deg);}100%{opacity:0;transform:rotate(17deg) translateY(15px);}}
/* Flash is intentionally gentle to limit harsh visual flicker. */
@keyframes jns-am-open-flash{0%{opacity:0;}20%{opacity:1;}36%{opacity:.5;}52%{opacity:1;}68%{opacity:.75;}100%{opacity:1;}}
@keyframes jns-am-close-flash{0%{opacity:1;}23%{opacity:.55;}45%{opacity:1;}67%{opacity:.45;}100%{opacity:0;}}
@media(prefers-reduced-motion:reduce){.jns-am-root.is-opening .jns-am-panel,.jns-am-root.is-closing .jns-am-panel,.jns-am-root.is-closing .jns-am-backdrop{animation:none!important}.jns-am-root .jns-am-close,.jns-am-root .jns-am-cta{transition:none!important}}

