body.cms-popup-open { overflow: hidden; }
.cms-popup { width: min(420px, calc(100vw - 32px)); max-width: none; max-height: calc(100dvh - 40px); margin: auto; padding: 0; border: 1px solid #d6c8bc; border-radius: 3px; background: #f8f5ee; color: #493b37; box-shadow: 0 18px 70px #21141140; font: inherit; overflow: auto; overscroll-behavior: contain; }
.cms-popup::backdrop { background: #251a1966; }
.cms-popup-header { display: flex; justify-content: space-between; align-items: center; min-height: 52px; padding: 0 8px 0 18px; }
.cms-popup-heading { margin: 0; font-family: inherit; font-weight: 500; font-size: 11px; line-height: 1.4; letter-spacing: .08em; }
.cms-popup-close { display: grid; place-items: center; width: 44px; height: 44px; border: 0; padding: 0; background: transparent; color: inherit; font-family: inherit; font-weight: 300; font-size: 27px; line-height: 1; cursor: pointer; }
.cms-popup-visual { display: block; width: 100%; border: 0; background: #f2eee7; }
.cms-popup-image { display: block; width: 100%; height: auto; max-height: calc(100dvh - 180px); object-fit: contain; margin: 0; }
.cms-popup-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 4px 16px; border-top: 1px solid #dfd5cb; font-size: 12px; line-height: 1.5; }
.cms-popup-hide { display: flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; }
.cms-popup-hide input { width: 16px; height: 16px; accent-color: #60443c; }
.cms-popup-footer-close { min-height: 44px; border: 0; padding: 0 4px; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.cms-popup :focus-visible { outline: 2px solid #806350; outline-offset: -3px; }
@media (prefers-reduced-motion: no-preference) { .cms-popup[open] { animation: cms-popup-enter 180ms cubic-bezier(.2,.7,.2,1); } @keyframes cms-popup-enter { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } } }
