/* Shared visibility and keyboard contract, after each page's visual styles. */
:root { --control-target: 44px; }
.calendly-modal:not(.open), .modal:not(.open), .chatbox:not(.chatbox--open) {
  visibility: hidden;
  pointer-events: none;
}
.calendly-modal.open, .modal.open, .chatbox.chatbox--open { visibility: visible; }
.modal-close, .calendly-close, .legal-close, .video-dialog-close,
.chatbox__full, .chatbox__close, .send-btn, .chip-btn, .carousel-arrows button {
  min-width: var(--control-target);
  min-height: var(--control-target);
}
.chat-input { font: inherit; font-size: 16px; }
.chat-input:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.input-area:focus-within { border-color: var(--accent); }
.chat-input::placeholder { color: var(--muted); }
.carousel-nav { position: relative; inset: auto; justify-content: center; gap: 0; }
.carousel-nav .dot {
  width: var(--control-target); height: var(--control-target); padding: 0;
  background: transparent; box-shadow: none;
  display: inline-flex; align-items: center; justify-content: center;
}
.carousel-nav .dot::before {
  content: ''; width: 10px; height: 10px; border-radius: 50%; background: var(--muted);
}
.carousel-nav .dot.active::before { background: var(--accent); }
.carousel-nav .dot:focus-visible { outline: 2px solid var(--accent); outline-offset: -4px; }
/* Text KPIs are measuring criteria, not percentage counters. */
.metrics .metric { min-width: 0; }
.metrics .metric strong { font-size: clamp(1.25rem, 2.3vw, 1.8rem); overflow-wrap: anywhere; }
