/* Restricted to matched posts; unrelated footer banners retain their existing CSS. */
.kaz-labo-banner { display: none; }
@media screen and (max-width: 767px) {
  #scrollCta.kaz-labo-has-banner:not(.kaz-labo-expired) {
    width: 100%; max-width: none; left: 0; right: 0; bottom: 0;
    margin: 0; padding: 0; opacity: 1; transform: none; pointer-events: auto;
    transition: none; z-index: 999;
  }
  #scrollCta.kaz-labo-has-banner:not(.kaz-labo-expired) > .kaz-labo-legacy { display: none; }
  #scrollCta.kaz-labo-has-banner:not(.kaz-labo-expired) > .kaz-labo-banner {
    box-sizing: border-box; display: block; position: relative; width: 100%;
    padding: 6px 12px calc(6px + env(safe-area-inset-bottom, 0px));
    background: #f1f5fa; box-shadow: 0 -3px 14px rgba(21,61,100,.12);
  }
  #scrollCta .kaz-labo-banner__link {
    box-sizing: border-box; display: flex; flex-direction: column; align-items: center;
    justify-content: center; gap: 4px; min-height: 80px; width: 100%;
    padding: 6px; border: 1px solid #153d64; border-radius: 14px;
    color: #153d64; background: #fff; border-color: #236bab; box-shadow: 0 3px 0 #c6d6e6, 0 5px 12px rgba(21,61,100,.15);
    text-align: center; text-decoration: none; line-height: 1.35;
    font-family: inherit; -webkit-tap-highlight-color: rgba(255,255,255,.18);
  }
  #scrollCta .kaz-labo-banner__school { display: block; font-size: 22px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; word-break: normal; }
  #scrollCta .kaz-labo-banner__action { display: block; font-size: 26px; font-weight: 700; line-height: 1.2; white-space: nowrap; color: #236bab; }
  #scrollCta .kaz-labo-banner__action > span { padding-left: 3px; font-size: 28px; line-height: .8; }
  #scrollCta .kaz-labo-banner__link:focus-visible { outline: 3px solid #e8a923; outline-offset: 3px; }
  #scrollCta .kaz-labo-banner__link:active { transform: translateY(2px); box-shadow: 0 1px 0 #c6d6e6; }
  /* Compact visible close control; the transparent 44px touch target is retained. */
  #scrollCta .kaz-labo-banner__close {
    box-sizing: border-box; position: absolute; top: -38px; right: 3px; width: 44px; height: 44px;
    display: block; margin: 0; padding: 0; border: 0; border-radius: 50%;
    -webkit-appearance: none; appearance: none; background: none; color: transparent;
    font: 0/1 sans-serif; text-shadow: none; box-shadow: none; cursor: pointer;
  }
  #scrollCta .kaz-labo-banner__close::before {
    content: "×"; box-sizing: border-box; position: absolute; top: 9px; left: 9px;
    display: grid; place-items: center;
    width: 26px; height: 26px; border: 1px solid #d4dee8; border-radius: 50%;
    background: #fff; color: #64798b; font: 400 14px/1 Arial, sans-serif;
    box-shadow: 0 1px 3px rgba(21,61,100,.10); pointer-events: none;
  }
  #scrollCta .kaz-labo-banner__close:focus-visible { outline: none; }
  #scrollCta .kaz-labo-banner__close:focus-visible::before { outline: 2px solid #236bab; outline-offset: 3px; }
  #scrollCta .kaz-labo-banner__close:active::before { background: #f1f5fa; }
  body.kaz-labo-mobile-active { padding-bottom: var(--kaz-labo-banner-space, 150px) !important; }
  html.kaz-popup-open #scrollCta.kaz-labo-has-banner:not(.kaz-labo-expired) { visibility: hidden; pointer-events: none; }
  #scrollCta.kaz-labo-dismissed:not(.kaz-labo-expired) { display: none !important; }
}
@media (prefers-reduced-motion: reduce) { #scrollCta .kaz-labo-banner__link { transition: none; } }
