/* GGG eSite — Modals. Hidden on the live page until opened (the editor keeps showing it). */
body:not(.elementor-editor-active) .ggg-modal-src { display: none !important; }
dialog.ggg-modal { position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 16px; border: 0; background: var(--ggg-modal-overlay, rgba(0,0,0,.6)); display: grid; place-items: center; overflow-y: auto; overscroll-behavior: contain; z-index: 99999; }
dialog.ggg-modal:not([open]) { display: none; }
dialog.ggg-modal::backdrop { background: transparent; }
dialog.ggg-modal > .ggg-modal-src { display: var(--display, flex) !important; width: min(var(--ggg-modal-w, 640px), 100%); max-width: 100%; margin: auto; position: relative; }
/* The box's parts keep their height: an Elementor container's own min-height lets it shrink below its content, which
   then spilled out of the box (no background behind it). */
dialog.ggg-modal > .ggg-modal-src > * { flex-shrink: 0; }
/* Full height: the box fills the screen top to bottom; longer content scrolls INSIDE the box, so its background
   (the page's paper…) is always behind it. */
dialog.ggg-modal.ggg-modal--full { padding: 0; align-items: stretch; overflow: hidden; }
dialog.ggg-modal.ggg-modal--full > .ggg-modal-src { margin: 0 auto; height: 100vh; height: 100dvh; min-height: 0; max-height: 100dvh; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
/* The theme's button styles (filled, uppercase, padding…) must not reach the ×. */
dialog.ggg-modal > button.ggg-modal-x { position: fixed; top: 10px; right: 12px; width: 44px !important; height: 44px !important; min-width: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 50% !important; background: rgba(0,0,0,.28) !important; box-shadow: none !important; color: var(--ggg-modal-x, #fff) !important; font: 400 30px/44px system-ui, sans-serif !important; letter-spacing: 0 !important; text-transform: none !important; text-align: center; cursor: pointer; z-index: 2; }
dialog.ggg-modal > button.ggg-modal-x:hover, dialog.ggg-modal > button.ggg-modal-x:focus-visible { background: rgba(0,0,0,.5) !important; }
.admin-bar .ggg-modal-x { top: 42px; }
html.ggg-modal-lock, html.ggg-modal-lock body { overflow: hidden; }
dialog.ggg-modal[open].ggg-in-fade, dialog.ggg-modal[open].ggg-in-zoom, dialog.ggg-modal[open].ggg-in-up { animation: ggg-modal-fade .25s ease-out; }
dialog.ggg-modal[open].ggg-in-zoom > .ggg-modal-src { animation: ggg-modal-zoom .3s cubic-bezier(.2,.8,.3,1.1); }
dialog.ggg-modal[open].ggg-in-up > .ggg-modal-src { animation: ggg-modal-up .35s cubic-bezier(.2,.8,.3,1); }
@keyframes ggg-modal-fade { from { opacity: 0; } }
@keyframes ggg-modal-zoom { from { opacity: 0; transform: scale(.92); } }
@keyframes ggg-modal-up { from { opacity: 0; transform: translateY(40px); } }
@media (prefers-reduced-motion: reduce) { dialog.ggg-modal, dialog.ggg-modal > .ggg-modal-src { animation: none !important; } }
