/* Prevent background scroll */
html.fda-modalOpen, html.fda-modalOpen body{ overflow:hidden; }

/* Overlay */
.fda-modalOverlay{
  position:fixed; inset:0;
  background:rgba(10,10,20,.65);
  backdrop-filter: blur(6px);
  z-index:9998;
}

/* Modal shell */
.fda-modal{
  position:fixed; left:50%; top:50%;
  transform:translate(-50%,-50%);
  width:min(1200px, calc(100vw - 48px));
  max-height:calc(100vh - 48px);
  background:#fff;
  overflow:visible;
  z-index:9999;
  box-shadow:0 24px 80px rgba(0,0,0,.35);
}

/* Close button */
.fda-modalClose{
  position:absolute; top:-10px; right:-10px;
  width:60px; height:60px;
  border:0;
  background:#E2E2EC;
  color:#3B3A48;
  font-size:50px !important;
  line-height:50px;
  cursor:pointer;
  z-index:2;

}


/* 2-col layout */
.fda-modalGrid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  min-height:520px;
}

.fda-modalMedia{
  background: #0f1020;
  color:#fff;
  position:relative;
}
.fda-modalMediaInner{
  position:absolute; inset:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:40px;
  background-image:linear-gradient(63deg, rgba(27,47,113, 0) 0%, rgba(27,47,113, 0.75) 100%);
  background-color:rgb(51,13,73);

}
.fda-modalHeadline{ font-size:42px; line-height:1.05; font-weight:700; max-width:14ch; }
.fda-modalSubhead{ margin-top:12px; font-size:16px; opacity:.9; max-width:48ch; }

.fda-modalBody{
  padding:40px;
  overflow:auto;
}

/* A11y helper */
.fda-srOnly{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

/* Responsive */
@media (max-width: 860px){
  .fda-modalGrid{ grid-template-columns:1fr; }
  .fda-modalMedia{ min-height:auto; }
  .fda-modalMediaInner{
    position:relative;
    padding:32px 24px;
  }
  .fda-modalHeadline{ font-size:32px; max-width:none; }
  .fda-modalSubhead{ font-size:15px; }
  .fda-modalBody{ padding:24px; }

  .fda-modal{
    width:calc(100vw - 24px);
    max-height:calc(100vh - 24px);
    overflow-y:auto;
  }
  .fda-modalClose{
    top:8px; right:8px;
    width:44px; height:44px;
    font-size:32px !important;
    line-height:44px;
    background:rgba(255,255,255,.95);
    border-radius:4px;
  }
}



/* ===== Bookings modal variant =====
 * Mobile-first: the booking flow needs every pixel on phones, so fullscreen.
 * Tablet/desktop: bounded centered modal that's still tall enough to fit the
 * booking flow without an extra inner scrollbar.
 */

/* Mobile-first: fullscreen */
.fda-modal--bookings{
  position:fixed; left:0; top:0;
  transform:none;
  width:100vw;
  height:100vh; max-height:100vh;
  overflow:hidden;
}
.fda-modal--bookings:not([hidden]){
  display:flex; flex-direction:column;
}
.fda-modalBody--bookings{
  flex:1 1 auto;
  padding:0;
  background:#fff;
  overflow:hidden;
}
.fda-bookingsFrame{
  display:block;
  width:100%; height:100%;
  border:0;
}

/* Tablet+ : centered, larger, with breathing room around the edges */
@media (min-width: 769px){
  .fda-modal--bookings{
    left:50%; top:50%;
    transform:translate(-50%, -50%);
    width:min(960px, calc(100vw - 48px));
    height:min(1100px, calc(100vh - 48px));
  }
}

/* Cloudflare Turnstile widget (contact form) */
.fda-turnstile{
  min-height:65px; /* reserve widget height so the form doesn't jump */
  margin:12px 0 4px;
}
