
/* ===== Round-2 client updates (Oct 2026) ===== */
/* sticky mobile CTA bar */
.r2-sticky { display: none; }
@media (max-width: 760px) {
  .r2-sticky {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 250;
    display: flex; gap: 0.6rem;
    padding: 0.7rem 16px calc(0.7rem + env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, 0.94);
    -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
    border-top: 1px solid var(--line);
    box-shadow: 0 -12px 30px -18px rgba(20, 22, 28, 0.35);
    transform: translateY(110%);
    transition: transform 0.35s var(--ease);
  }
  .r2-sticky.is-on { transform: none; }
  body.nav-open .r2-sticky, body.modal-open .r2-sticky { transform: translateY(110%); }
  .r2-sticky .ct-btn { flex: 1; justify-content: center; padding: 0.85rem 0.8rem; font-size: 0.9rem; white-space: nowrap; }
  .r2-sticky .ct-btn-ghost { background: #fff; }
  .ct-footer { padding-bottom: calc(2.2rem + 4.6rem); }
}
/* "One team" hub: calltime logo instead of the headset icon */
.svc-op-dot .r2-op-logo { width: 3.3rem; height: auto; display: block; filter: brightness(0) invert(1); }
.svc-op-dot { background: linear-gradient(145deg, #2a2d3a 0%, var(--ink) 100%); }
/* compact platform cards (Business Phone Systems + Contact Centre) */
.svc-vendors.r2-compact { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.svc-vendors.r2-compact.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.svc-vendors.r2-compact .svc-vendor-media .svc-img { aspect-ratio: 16 / 8; }
.svc-vendors.r2-compact .svc-vendor-media .svc-img.is-contain img { padding: 2.6rem 10% 6%; }
.svc-vendors.r2-compact .svc-vendor-logo { height: 1.45rem; top: 0.9rem; left: 1rem; }
.svc-vendors.r2-compact .svc-vendor-body { padding: 1rem 1.1rem 1.15rem; gap: 0.35rem; }
.svc-vendors.r2-compact .svc-vendor-body h3 { font-size: 1.02rem; }
.svc-vendors.r2-compact .svc-vendor-body p { font-size: 0.84rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.svc-vendors.r2-compact .svc-vendor-go { font-size: 0.84rem; }
.r2-wordmark { position: absolute; top: 0.85rem; left: 1rem; z-index: 2; font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; color: #fff; letter-spacing: -0.01em; display: inline-flex; align-items: center; gap: 0.45rem; }
.r2-ms { display: grid; grid-template-columns: 7px 7px; gap: 1.5px; }
.r2-ms i { width: 7px; height: 7px; display: block; }
.svc-vendor.r2-more { justify-content: center; align-items: flex-start; padding: 1.6rem 1.4rem; background: linear-gradient(155deg, var(--red-soft) 0%, var(--violet-soft) 60%, var(--azure-soft) 100%); border-style: dashed; }
.svc-vendor.r2-more h3 { font-size: 1.15rem; margin-bottom: 0.4rem; }
.svc-vendor.r2-more p { font-size: 0.88rem; color: var(--body); font-weight: 400; margin-bottom: 0.8rem; }
.svc-vendor.r2-more .svc-vendor-go { display: inline-flex; }
@media (max-width: 1000px) { .svc-vendors.r2-compact, .svc-vendors.r2-compact.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .svc-vendors.r2-compact, .svc-vendors.r2-compact.cols-4 { grid-template-columns: 1fr; } }
/* enquiry form extras (select, file upload, notes) */
.ct-book-field select {
  font: inherit; font-size: 0.94rem; padding: 0.75rem 2.2rem 0.75rem 0.9rem;
  border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--paper); color: var(--ink);
  -webkit-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6169' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 0.8rem center; background-size: 16px;
}
.ct-book-field select:focus { outline: none; border-color: var(--red); background-color: var(--white); }
.ct-book-field label .req { color: var(--red); }
.ct-book-field .r2-hint { font-size: 0.76rem; color: var(--muted); }
.r2-file { display: flex; align-items: center; gap: 0.7rem; padding: 0.8rem 0.9rem; border: 1.5px dashed var(--line); border-radius: var(--r-sm); background: var(--paper); cursor: pointer; font-size: 0.88rem; color: var(--body); transition: border-color 0.25s; }
.r2-file:hover { border-color: var(--red); }
.r2-file input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.r2-file svg { width: 18px; height: 18px; color: var(--red); flex: none; }
.r2-file b { color: var(--ink); font-weight: 600; }
