/* Site-wide promos (inc/promos.php): "Have a question?" pop-up and the house tour badge. */

/* Pop-up */
.bt-promo { position:fixed; inset:0; z-index:9000; background:rgba(0,0,0,.45); display:flex; align-items:center; justify-content:center; padding:16px; }
.bt-promo[hidden] { display:none; }
.bt-promo__card { position:relative; width:min(380px,100%); max-height:calc(100vh - 32px); overflow:auto; background:var(--c-primary); color:#fff; border-radius:var(--r-l); box-shadow:0 24px 60px rgba(0,0,0,.3); animation:bt-promo-in .25s ease-out; }
.bt-promo__img { display:block; width:100%; height:auto; aspect-ratio:508/300; object-fit:cover; }
.bt-promo__body { padding:28px 30px 32px; text-align:center; }
.bt-promo .bt-promo__title { margin:0 0 10px; font-size:1.75rem; font-weight:500; line-height:1.2; color:#fff; }
.bt-promo .bt-promo__text { margin:0 0 24px; font-size:1.0625rem; line-height:1.55; color:rgba(255,255,255,.9); }
.bt-promo .bt-promo__btn { min-height:50px; padding:0 28px; font-size:1.0625rem; color:var(--c-primary); white-space:normal; text-align:center; }
.bt-promo .bt-promo__btn:hover { background:var(--c-surface-alt, #f2f5f8); color:var(--c-primary); }
.bt-promo__close { position:absolute; top:12px; right:12px; width:40px; height:40px; border:0; border-radius:50%; background:rgba(0,0,0,.45); color:#fff; font-size:1.75rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.bt-promo__close:hover { background:rgba(0,0,0,.7); }
.bt-promo__close:focus-visible, .bt-promo__btn:focus-visible { outline:3px solid #fff; outline-offset:3px; }
html.bt-promo-open { overflow:hidden; }
@keyframes bt-promo-in { from { opacity:0; transform:translateY(12px) scale(.98); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .bt-promo__card { animation:none; } }

/* House tour badge */
.bt-tourbadge { position:fixed; right:0; bottom:72px; z-index:800; }
.bt-tourbadge__link { display:flex; align-items:center; text-decoration:none; color:#fff; }
.bt-tourbadge__img { position:relative; z-index:1; width:132px; height:132px; border-radius:50%; object-fit:cover; border:4px solid #fff; box-shadow:0 8px 24px rgba(0,0,0,.2); margin-right:-26px; background:#fff; }
.bt-tourbadge__txt { display:flex; flex-direction:column; background:var(--c-primary); padding:14px 22px 14px 40px; min-height:112px; justify-content:center; box-shadow:0 8px 24px rgba(0,0,0,.15); }
.bt-tourbadge__pc { font-size:.75rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; opacity:.85; }
.bt-tourbadge__title { font-size:1.375rem; font-weight:600; line-height:1.15; max-width:5.5em; }
.bt-tourbadge__date { font-size:1rem; margin-top:4px; }
.bt-tourbadge__date sup { font-size:.65em; }
.bt-tourbadge__link:hover .bt-tourbadge__title { text-decoration:underline; }
.bt-tourbadge__close { position:absolute; top:-10px; right:8px; z-index:2; width:28px; height:28px; border:0; border-radius:50%; background:#fff; color:var(--c-black); font-size:1.125rem; line-height:1; cursor:pointer; box-shadow:0 2px 8px rgba(0,0,0,.25); display:flex; align-items:center; justify-content:center; }
.bt-tourbadge__close:focus-visible, .bt-tourbadge__link:focus-visible { outline:3px solid var(--c-primary); outline-offset:3px; }

/* Phones: a compact pill that doesn't cover the page */
@media (max-width:640px) {
  .bt-tourbadge { right:12px; bottom:12px; }
  .bt-tourbadge__link { border-radius:var(--r-pill); background:var(--c-primary); box-shadow:0 6px 18px rgba(0,0,0,.25); padding:5px 16px 5px 5px; }
  .bt-tourbadge__img { width:46px; height:46px; border-width:2px; margin-right:10px; box-shadow:none; }
  .bt-tourbadge__txt { flex-direction:row; flex-wrap:wrap; align-items:baseline; gap:0 6px; background:none; padding:0; min-height:0; box-shadow:none; }
  .bt-tourbadge__pc { display:none; }
  .bt-tourbadge__title { font-size:1rem; max-width:none; }
  .bt-tourbadge__date { font-size:.9375rem; margin:0; }
  .bt-tourbadge__close { top:-8px; right:-6px; width:26px; height:26px; }
  .bt-promo__body { padding:22px 22px 26px; }
  .bt-promo .bt-promo__title { font-size:1.5rem; }
}
