/* Shared responsive rules for the imported pages and native widgets. */
@media (max-width: 921px) {
  #masthead #ast-mobile-header .ast-builder-grid-row {display:flex!important;justify-content:space-between;gap:16px;min-width:0}
  #masthead .site-header-section {min-width:0;flex:0 1 auto}
  #masthead .ast-mobile-header-content {max-height:calc(100dvh - 82px);overflow-y:auto}
  #masthead #ast-hf-mobile-menu {width:100%;flex-direction:column;align-items:stretch!important}
  #masthead #ast-hf-mobile-menu .menu-item {width:100%;min-width:0}
  #masthead #ast-hf-mobile-menu .sub-menu {max-width:100%;box-sizing:border-box}
  #masthead #ast-hf-mobile-menu .menu-link {white-space:normal;overflow-wrap:anywhere;letter-spacing:.04em!important}
}
@media (max-width: 767px) {
  body {min-width:0}
  #content, #content .ast-container, #primary, #main {min-width:0;max-width:100%}
  #content .e-con, #content .e-con-inner, #content .elementor-widget, .footer-section .e-con {min-width:0}
  #content .e-con, .footer-section .e-con {--container-widget-width:100%;--container-widget-flex-grow:0}
  #content .elementor-heading-title, #content p, .bb-content, .bb-contact, .bb-study-page {overflow-wrap:break-word}
  #content img, #content video, #content iframe {max-width:100%}
  #content img {height:auto}
  #content input:not([type=checkbox]):not([type=radio]), #content textarea, #content select {max-width:100%;min-width:0;box-sizing:border-box;font-size:16px}
  .squares-left-box, .squares-right-box, #custom-cursor-holder {display:none!important}
  /* Contact information remains available in the footer without covering content. */
  .floating-contact-info {display:none!important}
  .floating-info-footer {position:relative!important;inset:auto!important;transform:none!important;width:100%!important;max-width:100%!important;padding:16px 20px!important}
  .floating-info-footer-list ul.elementor-icon-list-items {display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:10px!important;margin:0!important}
  .floating-info-footer-list .elementor-inline-item {margin:0!important;max-width:100%}
  .floating-info-footer-list .elementor-icon-list-text {font-size:13px!important;letter-spacing:.04em!important;overflow-wrap:anywhere}
  #brainbrick-chatbot-wrapper {right:16px!important;bottom:calc(16px + env(safe-area-inset-bottom))!important}
  #bb-chat-trigger {width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important}
  #bb-chat-window {position:fixed!important;right:12px!important;bottom:calc(76px + env(safe-area-inset-bottom))!important;width:calc(100vw - 24px)!important;max-width:390px;height:min(560px,calc(100dvh - 100px))!important;max-height:calc(100dvh - 100px)}
  #ast-scroll-top {right:76px!important;bottom:20px!important}
  /* The hero must grow with its text and image rather than crop the next section. */
  .elementor-17 .elementor-element-6dafb36.ei-slider {height:auto!important;min-height:0!important;overflow:hidden}
  .elementor-17 .ei-slide {position:relative!important;left:auto!important;transform:none!important;height:auto!important;min-height:0!important}
  .elementor-17 .ei-slide>.e-con-inner {flex-direction:column!important;gap:24px!important;padding:28px 20px!important}
  .elementor-17 .elementor-element-9ce48f9, .elementor-17 .elementor-element-d688f18 {width:100%!important;padding:0!important;margin:0!important}
  .elementor-17 .elementor-element-9ce48f9 h1 {font-size:28px!important;line-height:1.2!important}
  .elementor-17 .elementor-element-9ce48f9 h2 {font-size:20px!important;line-height:1.5!important}
  .elementor-17 .elementor-element-9ce48f9 h5 {font-size:17px!important;line-height:1.4!important}
  .elementor-17 .elementor-element-912c9e9 img {display:block;width:min(100%,340px)!important;height:auto!important;margin:auto!important}
  #content .elementor-button {max-width:100%;white-space:normal}
  #content .elementor-button-text {overflow-wrap:break-word}
  #newsletter {width:100%;box-sizing:border-box}
  #newsletter-form>div {display:grid!important;grid-template-columns:1fr 1fr;gap:10px!important}
  #newsletter-email {grid-column:1/-1;width:100%;min-width:0!important;margin:0}
  #newsletter button {min-height:44px;white-space:normal}
  #bb_booking_form {width:100%;max-width:900px;min-width:0;box-sizing:border-box}
  #bb_booking_form *, #bb_booking_form *::before, #bb_booking_form *::after {box-sizing:border-box}
  #bb_step1>div:nth-child(2), #bb_step2>div:first-child {grid-template-columns:minmax(0,1fr)!important;gap:24px!important}
  #bb_step1>div:nth-child(2)>div, #bb_step2>div:first-child>div {min-width:0}
  #bb_time_grid {grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #bb_time_grid button {min-height:48px;min-width:0;white-space:normal;line-height:1.4;word-break:normal}
  #bb_cal_grid {grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:3px!important}
  #bb_cal_grid button {min-width:0;padding:8px 0!important;min-height:36px}
  #bb_tz_widget {max-width:100%}
  #bb_tz_panel {width:min(260px,calc(100vw - 64px))!important}
  #bb_step2>div:last-child {gap:12px;flex-wrap:wrap}
  #bb_booking_form input:not([type=hidden]) {width:100%;min-width:0;font-size:16px!important}
}
@media (prefers-reduced-motion: reduce) {
  #content .elementor-invisible {visibility:visible!important}
}
@media (max-width:921px) {
  #masthead, #masthead * {box-sizing:border-box}
  #masthead #ast-mobile-header .ast-primary-header-bar {width:100%;margin:0!important}
  #masthead #ast-mobile-header .ast-builder-grid-row {margin:0!important;grid-template-columns:minmax(0,1fr) auto}
}
