/* BSIT Cookie Consent - banner + modal styling (no third-party) */

.cc-banner{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:99999;
  background:#fff;
  color:#111;
  border-top:1px solid rgba(0,0,0,.12);
  box-shadow:0 -10px 30px rgba(0,0,0,.12);
  display:none;
}
.cc-inner{
  max-width:1200px;
  margin:0 auto;
  padding:14px 16px;
  display:flex;
  gap:12px;
  align-items:center;
}
.cc-text{ flex:1; line-height:1.5; font-size:14px; }
.cc-link{ color:#111; text-decoration:underline; font-weight:700; }

.cc-actions-inline{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }

.cc-btn{
  border:1px solid #111;
  border-radius:10px;
  padding:10px 14px;
  cursor:pointer;
  font-weight:700;
  font-size:14px;
  background:transparent;
  color:#111;
}
.cc-accept{ background:#efb405; border-color:#efb405; color:#111; }
.cc-reject{ background:#fff; }
.cc-manage{ border-color:transparent; padding:10px 6px; text-decoration:underline; }

/* Modal backdrop + dialog */
.cc-modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.55);
  display:none;
  z-index:100000;
}
.cc-modal{
  background:#fff;
  color:#111;
  max-width:720px;
  width:calc(100% - 26px);
  margin:10vh auto;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 18px 50px rgba(0,0,0,.25);
}
.cc-modal header{ padding:16px 18px; background:#f6f6f6; font-weight:800; }
.cc-modal .cc-body{ padding:16px 18px; }
.cc-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  border:1px solid rgba(0,0,0,.10);
  border-radius:12px;
  padding:12px 14px;
  margin-bottom:10px;
}
.cc-row small{ color:#555; display:block; margin-top:4px; }
.cc-actions{ display:flex; gap:10px; justify-content:flex-end; padding:14px 18px; border-top:1px solid rgba(0,0,0,.10); }

/* Toggle */
input[type="checkbox"].cc-switch{ display:none; }
.cc-toggle{ width:44px; height:24px; border-radius:999px; background:#ddd; position:relative; cursor:pointer; display:inline-block; }
.cc-toggle:before{ content:""; position:absolute; top:2px; left:2px; width:20px; height:20px; border-radius:50%; background:#fff; transition:all .2s ease; }
input.cc-switch:checked + .cc-toggle{ background:#efb405; }
input.cc-switch:checked + .cc-toggle:before{ transform:translateX(20px); }
.cc-disabled{ opacity:.6; pointer-events:none; }

/* Reopen trigger (kept hidden by default; JS may show it) */
.cc-reopen{
  position:fixed;
  right:16px;
  bottom:16px;
  background:#efb405;
  color:#111;
  border-radius:999px;
  padding:10px 14px;
  font-weight:800;
  cursor:pointer;
  z-index:99998;
  border:0;
  /* Keep the floating button hidden (requested). */
  display:none !important;
}

@media (max-width:640px){
  .cc-inner{ flex-direction:column; align-items:flex-start; }
  .cc-actions-inline{ width:100%; justify-content:flex-start; }
}

/* --------------------------------------------------------------------------
   Global z-index stacking
   Goal: Any modal/lightbox/popup must appear ABOVE floating UI elements:
   - cookie banner
   - back-to-top button
   - "Apply for internships" floating button
   - chat widgets (Tawk.to etc.)
   -------------------------------------------------------------------------- */

:root{
  /* Keep below the 32-bit signed int cap used by many libs */
  --bsit-z-modal: 2147483600;
  --bsit-z-backdrop: 2147483500;
  --bsit-z-float: 2147482000;
  --bsit-z-cookie: 2147481500;
  --bsit-z-chat: 2147481400;
  /* Page transition overlay should sit above every floating widget */
  --bsit-z-transition: 2147483640;
}

/* Page transition overlay should cover everything (including floating widgets) */
.bsit-page-transition{
  z-index: var(--bsit-z-transition) !important;
}

/* During page transitions, hide all floating widgets to avoid visual leaks */
html.bsit-pt-lock .to-top,
html.bsit-pt-lock #bsitInternshipFloat,
html.bsit-pt-lock .wa-float,
html.bsit-pt-lock .cc-banner,
html.bsit-pt-lock .cc-modal-backdrop,
html.bsit-pt-lock .cc-reopen,
html.bsit-pt-lock #tawkchat-container,
html.bsit-pt-lock #tawkchat-container iframe,
html.bsit-pt-lock .tawk-min-container,
html.bsit-pt-lock .tawk-button,
html.bsit-pt-lock .tawk-chat-bubble,
html.bsit-pt-lock .tawk-to,
html.bsit-pt-lock .tawk-widget{
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Bootstrap modals (site-wide) */
.modal,
.modal.show,
.modal.in{
  z-index: var(--bsit-z-modal) !important;
}
.modal-backdrop{
  z-index: var(--bsit-z-backdrop) !important;
}

/* Common lightbox/popup libraries (safe no-ops if not present) */
.mfp-bg{ z-index: calc(var(--bsit-z-backdrop) - 20) !important; }
.mfp-wrap{ z-index: calc(var(--bsit-z-modal) - 10) !important; }
.fancybox-container,
.fancybox__container{ z-index: var(--bsit-z-modal) !important; }
.lg-backdrop{ z-index: calc(var(--bsit-z-backdrop) - 10) !important; }
.lg-outer{ z-index: calc(var(--bsit-z-modal) - 5) !important; }
.swal2-container{ z-index: var(--bsit-z-modal) !important; }

/* BSIT custom lightboxes (portfolio + videos) */
.bsit-lightbox,
.bsit-video-lightbox{
  z-index: var(--bsit-z-modal) !important;
}

/* Floating UI elements should stay ABOVE normal content but BELOW modals */
.to-top{ z-index: var(--bsit-z-float) !important; }
#bsitInternshipFloat{ z-index: var(--bsit-z-float) !important; }
/* WhatsApp floating button (keep below modals/lightboxes/page-transition) */
.wa-float{ z-index: var(--bsit-z-float) !important; }

/* Cookie banner + cookie preferences modal */
.cc-banner{ z-index: var(--bsit-z-cookie) !important; }
.cc-modal-backdrop{ z-index: calc(var(--bsit-z-cookie) + 10) !important; }
.cc-reopen{ z-index: calc(var(--bsit-z-cookie) - 1) !important; }

/* Chat widgets (best-effort; they often inject inline z-index) */
#tawkchat-container,
#tawkchat-container iframe,
.tawk-min-container,
.tawk-button,
.tawk-chat-bubble,
.tawk-to,
.tawk-widget,
/* Common chat providers (best-effort) */
.crisp-client,
.crisp-client iframe,
#crisp-chatbox,
#chatra,
#chatra__iframe,
#intercom-container,
.intercom-lightweight-app,
.intercom-app,
.intercom-launcher,
.intercom-lightweight-app iframe,
.intercom-app iframe,
#hubspot-messages-iframe-container,
#hubspot-messages-iframe-container iframe,
#drift-widget-container,
.drift-widget-container,
.drift-widget,
.drift-widget iframe,
#tidio-chat,
#tidio-chat iframe,
.tidio-chat,
.fb_dialog,
.fb_dialog iframe,
.fb_customer_chat_bubble,
.joinchat,
.joinchat__button,
.joinchat__tooltip,
.chaty-widget,
.chaty-widget-wrap,
#chaty-widget,
#chaty-widget iframe,
.whatsapp_chat_support,
.ht-ctc-chat,
.ht-ctc-chat-style,
#zsiq_float,
.zsiq_float,
#zopim,
.zopim,
#fc_frame,
#fc_frame iframe,
.freshchat-container{
  z-index: var(--bsit-z-chat) !important;
}

/* Other common chat widgets (best-effort) */
#hubspot-messages-iframe-container,
#hubspot-messages-iframe-container iframe,
.crisp-client,
.crisp-client iframe,
#crisp-chatbox,
#chatra,
#chatra__iframe,
.intercom-lightweight-app,
.intercom-app,
.intercom-launcher,
.intercom-lightweight-app iframe,
.intercom-app iframe,
#intercom-container,
#drift-widget-container,
.drift-widget-container,
.drift-widget,
.fb_dialog,
.fb_dialog iframe,
.fb_customer_chat_bubble,
#tidio-chat,
#tidio-chat iframe,
.tidio-chat,
.zsiq_float,
#zsiq_float,
.zopim,
#zopim,
#zopim iframe,
.freshchat-container,
#fc_frame,
#fc_frame iframe,
.joinchat,
.joinchat__button,
.chaty-widget,
.chaty-widget-wrap,
#chaty-widget,
#chaty-widget iframe,
.whatsapp_chat_support,
.wptwa-container,
.wptwa-toggle,
.ht-ctc-chat,
.ht-ctc-chat-style,
.wp-chatbot,
.wp-chatbot-container,
.wp-chatbot-chat-container{
  z-index: var(--bsit-z-chat) !important;
}

