.campaign-popup[hidden] { display: none!important; }
.campaign-popup { position: fixed; z-index: 1100; inset: 50% auto auto 50%; margin: 0; padding: 0; border: 0; transform: translate(-50%,-50%); width: calc(100% - 32px); max-width: 460px; min-height: min(60vh,560px); min-height: min(60dvh,560px); max-height: 70vh; max-height: 70dvh; overflow: auto; overscroll-behavior: contain; box-sizing: border-box; border-radius: 16px; background: #fffaf3; color: #3f332d; box-shadow: 0 8px 32px #3f332d33; font-family: var(--font-mincho); } /* taste-skill-ignore: shadow belongs to a genuinely floating dismissible overlay. */
.campaign-popup[open] { animation: campaign-popup-enter .3s ease-out both; }
.campaign-popup::backdrop { background: rgba(40,31,26,.32); animation: campaign-backdrop-enter .3s ease-out both; }
@keyframes campaign-popup-enter { from { opacity: 0; transform: translate(-50%,calc(-50% + 12px)); } to { opacity: 1; transform: translate(-50%,-50%); } }
@keyframes campaign-backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
@media(prefers-reduced-motion:reduce) { .campaign-popup[open], .campaign-popup::backdrop { animation: none; } }
.campaign-popup__close { position: sticky; top: 4px; display: block; z-index: 2; width: 44px; height: 44px; margin: 4px 4px -44px auto; padding: 0; border: 0; border-radius: 50%; background: #fffaf3; color: #3f332d; font: 30px/1 sans-serif; cursor: pointer; }
.is-lp .campaign-popup .offer__card { display: flex; flex-direction: column; justify-content: center; gap: 8px; min-height: inherit; width: 100%; padding: 32px 16px 24px; margin: 0; background: #fffaf3!important; box-sizing: border-box; }
.is-lp .campaign-popup h2.offer__title { margin: 0 36px 10px; padding: 0; font-size: 24px; line-height: 1.3; letter-spacing: 0; }
.campaign-popup .offer__title::before, .campaign-popup .offer__title::after { display: none; }
.campaign-popup .offer__menu { margin: 8px 0; padding: 8px 4px; font-size: 15px; line-height: 1.4; }
.campaign-popup .offer__before { margin: 6px 0; font-size: 14px; line-height: 1.3; }
.campaign-popup .offer__before-num { font-size: 1.25em; }
.campaign-popup .offer__price-wrap { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 8px 0; padding: 0; }
.is-lp .campaign-popup .salon-offer-limit { flex: 0 0 54px; width: 54px; height: 54px; margin: 0 4px 0 0; font-size: 10px; }
.is-lp .campaign-popup .salon-offer-limit strong { font-size: 20px; }
.is-lp .campaign-popup .offer__price-label { font-size: 14px; }
.campaign-popup .offer__price-arrow { font-size: 8px; }
.is-lp .campaign-popup .offer__price-num { margin: 0; font-size: 22px; line-height: 1.1; }
.is-lp .campaign-popup .offer__price-num-main { font-size: 215%; }
.campaign-popup .salon-offer-note { margin: 8px 0; font-size: 11px; line-height: 1.5; text-align: center; }
.campaign-popup .offer__btn { display: block; margin: 10px 0 0; padding: 0; }
.campaign-popup .offer__btn-item { width: 100%; margin: 0; }
.campaign-popup .offer__btn-item > a.salon-line-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 48px; padding: 12px 8px; box-sizing: border-box; font-size: 16px; }
.campaign-popup .salon-line-btn::before { display: none!important; }
.is-lp.campaign-popup-open #wrapper > .footer-btn__contact { display: none!important; }
.campaign-popup__close:hover { background: #f2e8db; }
.campaign-popup__close:focus-visible { outline: 3px solid #3f332d; outline-offset: -3px; }
@media(max-width:359px) { .is-lp .campaign-popup .offer__card { padding-right: 12px; padding-left: 12px; } .is-lp .campaign-popup h2.offer__title { font-size: 21px; margin-right: 28px; margin-left: 28px; } .is-lp .campaign-popup .offer__price-num { font-size: 19px; } .campaign-popup .offer__price-wrap { gap: 4px; } .campaign-popup .offer__btn-item > a.salon-line-btn { font-size: 14px; } }
