/*
 * Privé Lounge V1.14.3
 * Event terms/application modal interaction rebuild.
 * The overlay itself is the ONLY scroll container. This avoids Safari/iPad
 * nested-scroll and clipped fixed-position failures inside the app shell.
 */

html.prive-modal-open,
body.prive-modal-open{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
body.prive-modal-open{touch-action:auto!important}

/* Full viewport, opaque, scrollable overlay. */
.prive-event-apply-modal{
  position:fixed!important;
  inset:0!important;
  z-index:2147483600!important;
  width:100%!important;
  height:100dvh!important;
  min-height:100vh!important;
  margin:0!important;
  padding:18px!important;
  display:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  touch-action:pan-y!important;
  background:#f4f0f8!important;
  background-image:none!important;
  opacity:1!important;
  isolation:isolate!important;
  transform:none!important;
  filter:none!important;
  contain:none!important;
}
body.prive-theme-dark .prive-event-apply-modal{
  background:#070412!important;
  background-image:none!important;
}
.prive-event-apply-modal[hidden]{display:none!important}
.prive-event-apply-modal.is-open:not([hidden]){display:block!important}

/* Opaque click target behind the card. */
.prive-event-modal-backdrop{
  position:fixed!important;
  inset:0!important;
  z-index:0!important;
  width:100vw!important;
  height:100dvh!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:#f4f0f8!important;
  background-image:none!important;
  opacity:1!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
body.prive-theme-dark .prive-event-modal-backdrop{background:#070412!important}

/* The card grows naturally. There is NO max-height and NO nested scrollbar. */
.prive-event-modal-card{
  position:relative!important;
  z-index:2!important;
  display:block!important;
  width:min(960px,calc(100vw - 36px))!important;
  min-height:calc(100dvh - 36px)!important;
  height:auto!important;
  max-height:none!important;
  margin:0 auto!important;
  padding:0!important;
  overflow:visible!important;
  border:1px solid #ddd5e4!important;
  border-radius:24px!important;
  background:#fff!important;
  background-image:none!important;
  color:#211a28!important;
  opacity:1!important;
  box-shadow:0 34px 110px rgba(19,9,31,.34)!important;
  transform:none!important;
  filter:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  contain:none!important;
}
body.prive-theme-dark .prive-event-modal-card{
  background:#110c27!important;
  background-image:none!important;
  color:#f8f5ff!important;
  border-color:rgba(232,219,255,.18)!important;
  box-shadow:0 44px 140px rgba(0,0,0,.76)!important;
}

/* Normal document flow inside the card. Overlay does the scrolling. */
.prive-event-modal-scroll{
  position:relative!important;
  z-index:1!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  min-height:calc(100dvh - 36px)!important;
  max-height:none!important;
  margin:0!important;
  padding:34px 36px 34px!important;
  overflow:visible!important;
  overscroll-behavior:auto!important;
  -webkit-overflow-scrolling:auto!important;
  touch-action:auto!important;
  scrollbar-gutter:auto!important;
  background:#fff!important;
  background-image:none!important;
  color:#211a28!important;
  opacity:1!important;
  outline:none!important;
}
body.prive-theme-dark .prive-event-modal-scroll{
  background:#110c27!important;
  background-image:none!important;
  color:#f8f5ff!important;
}

/* Close stays reachable while the overlay scrolls. */
.prive-event-modal-card>.prive-modal-close{
  position:sticky!important;
  z-index:80!important;
  top:12px!important;
  float:right!important;
  width:42px!important;
  height:42px!important;
  margin:12px 12px -54px 0!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid #ded7e3!important;
  border-radius:50%!important;
  background:#fff!important;
  color:#17111e!important;
  font-size:24px!important;
  line-height:1!important;
  box-shadow:0 8px 24px rgba(15,8,22,.20)!important;
  cursor:pointer!important;
}
body.prive-theme-dark .prive-event-modal-card>.prive-modal-close{
  background:#fbf8fd!important;
  color:#160f1e!important;
  border-color:rgba(255,255,255,.30)!important;
}
.prive-event-modal-scroll>.sc-card-kicker:first-child,
.prive-event-modal-scroll>h2{padding-right:56px!important}

/* Terms expand into the same overlay scroll. */
.prive-terms-details,
.prive-terms-details .prive-legal-scroll,
.prive-terms-details .prive-legal-scroll pre{
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
}
.prive-terms-details .prive-legal-scroll{
  -webkit-overflow-scrolling:auto!important;
  touch-action:auto!important;
}

/* Acceptance is permanently reachable at the bottom of the viewport while the
   attendee reads the long agreement. */
.prive-event-modal-acceptance{
  position:sticky!important;
  z-index:60!important;
  bottom:0!important;
  margin:24px -36px 0!important;
  padding:16px 36px 18px!important;
  border-top:1px solid #ddd5e4!important;
  background:rgba(255,255,255,.98)!important;
  color:#211a28!important;
  box-shadow:0 -18px 36px rgba(19,9,31,.10)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
body.prive-theme-dark .prive-event-modal-acceptance{
  background:rgba(17,12,39,.99)!important;
  color:#f8f5ff!important;
  border-top-color:rgba(232,219,255,.16)!important;
  box-shadow:0 -18px 42px rgba(0,0,0,.32)!important;
}
.prive-event-modal-acceptance .sc-check{
  margin:0 0 8px!important;
}
.prive-event-modal-acceptance-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin-top:10px!important;
}
.prive-event-modal-acceptance-actions small{
  color:#6c6274!important;
  line-height:1.4!important;
}
body.prive-theme-dark .prive-event-modal-acceptance-actions small{color:#c9bfd3!important}
.prive-event-modal-acceptance-actions .sc-button{margin-left:auto!important;min-width:230px!important}

/* Organiser preview cannot accept by design; make this unmissable. */
.prive-event-modal-acceptance.is-preview .sc-check{opacity:.72!important}
.prive-event-modal-acceptance.is-preview .sc-button{min-width:190px!important}

/* Ensure long form controls are not hidden under the sticky footer. */
.prive-event-application-form{padding-bottom:10px!important}

@media(max-width:760px){
  .prive-event-apply-modal{padding:6px!important}
  .prive-event-modal-card{
    width:calc(100vw - 12px)!important;
    min-height:calc(100dvh - 12px)!important;
    border-radius:16px!important;
  }
  .prive-event-modal-scroll{
    min-height:calc(100dvh - 12px)!important;
    padding:28px 17px 28px!important;
  }
  .prive-event-modal-acceptance{
    bottom:0!important;
    margin:20px -17px 0!important;
    padding:14px 17px 16px!important;
  }
  .prive-event-modal-acceptance-actions{align-items:stretch!important;flex-direction:column!important}
  .prive-event-modal-acceptance-actions .sc-button{width:100%!important;min-width:0!important;margin:0!important}
}
.prive-event-modal-preview-buttons{display:flex!important;align-items:center!important;gap:8px!important;margin-left:auto!important}
.prive-event-modal-preview-buttons .sc-button{min-width:0!important;margin:0!important;white-space:nowrap!important}
@media(max-width:760px){.prive-event-modal-preview-buttons{width:100%!important;flex-direction:column!important}.prive-event-modal-preview-buttons .sc-button{width:100%!important}}
