/* Contact page: live status banner, "How can we help?", channel cards, visit planner extras, the message / call-back form. Built by site/js/contact.js. */

/* ---------- banner: live status ---------- */
.ct-hero { display: grid; grid-template-columns: minmax(0, 1fr) 410px; gap: 44px; align-items: center; }
.ct-live { padding: 24px 24px 22px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 24px; background: linear-gradient(160deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .04)); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 30px 60px -34px rgba(0, 0, 0, .7); }
.ct-live-top { display: flex; align-items: center; gap: 12px; margin: 0; }
.ct-live-top b { font-size: 1.5rem; letter-spacing: -0.01em; color: #fff; }
.ct-dot { position: relative; flex: none; width: 14px; height: 14px; border-radius: 50%; background: #9aa5bb; }
.ct-live[data-open="1"] .ct-dot { background: #35c47c; }
.ct-live[data-open="1"] .ct-dot::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 2px solid #35c47c; opacity: 0; animation: ct-ping 2.4s ease-out infinite; }
.ct-live[data-open="0"] .ct-dot { background: #e0a43a; }
@keyframes ct-ping { 0% { transform: scale(.6); opacity: .8; } 70%, 100% { transform: scale(1.5); opacity: 0; } }
.ct-live-detail { margin: 8px 0 0; font-size: 1.02rem; line-height: 1.5; color: rgba(255, 255, 255, .85); }
.ct-day { position: relative; height: 10px; margin: 36px 0 0; border-radius: 999px; background: rgba(255, 255, 255, .16); }
.ct-day-win { position: absolute; top: 0; bottom: 0; left: 29.1667%; width: 58.3333%; border-radius: 999px; background: linear-gradient(90deg, #f1b62c, var(--gold)); }
.ct-day-now { position: absolute; top: 50%; left: 0; width: 18px; height: 18px; margin: -9px 0 0 -9px; border: 3px solid #fff; border-radius: 50%; background: #9aa5bb; box-shadow: 0 6px 14px -4px rgba(0, 0, 0, .6); transition: left .6s cubic-bezier(.2, .8, .2, 1); }
.ct-day-now[data-open="1"] { background: #35c47c; }
.ct-day-now[data-open="0"] { background: #e0a43a; }
.ct-day-now::after { content: "Now " attr(data-t); position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: .76rem; font-weight: 800; color: #fff; }
.ct-day-ends { position: relative; height: 22px; margin-top: 8px; font-size: .76rem; font-weight: 700; color: rgba(255, 255, 255, .65); }
.ct-day-ends span { position: absolute; transform: translateX(-50%); }
.ct-live-act { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.ct-live-act .btn { flex: 1 1 auto; }

/* ---------- how can we help ---------- */
.ct-intents { display: flex; flex-wrap: wrap; gap: 10px; }
.ct-route { display: flex; align-items: center; gap: 20px; margin-top: 18px; padding: 22px 24px; animation: svx-in .35s cubic-bezier(.2, .8, .2, 1); }
.ct-route-t { flex: 1; min-width: 0; }
.ct-route-t h3 { margin-bottom: 4px; font-size: 1.25rem; }
.ct-route-t p { margin: 0; color: var(--muted); }
.ct-route-act { display: flex; flex-wrap: wrap; gap: 10px; }
.ct-fast { margin: 16px 0 0; font-size: .95rem; font-weight: 700; color: var(--navy-900); }

/* ---------- channels ---------- */
.ct-channels { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ct-ch { display: flex; flex-direction: column; gap: 10px; padding: 22px; border: 1px solid var(--line); border-radius: 20px; background: #fff; transition: border-color .2s, transform .25s cubic-bezier(.2, .8, .2, 1), box-shadow .25s; }
.ct-ch:hover { border-color: var(--gold); transform: translateY(-3px); box-shadow: 0 24px 44px -30px rgba(10, 31, 68, .5); }
.ct-ch h3 { font-size: 1.15rem; }
.ct-ch-state { min-height: 2.9em; margin: 0; font-size: .9rem; line-height: 1.45; color: var(--muted); }
.ct-ch-lines { list-style: none; margin: 0 0 6px; padding: 0; display: grid; gap: 8px; }
.ct-ch-lines li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-weight: 700; overflow-wrap: anywhere; }
.ct-ch-lines a { color: var(--navy-900); text-decoration-color: var(--gold); text-underline-offset: 3px; }
.ct-ch .btn { margin-top: auto; }

/* ---------- the visit planner and hours ---------- */
.vp-purpose { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.vp-purpose .rq-chip { padding: 0 12px; font-size: .86rem; }
.vp-ready { margin-top: 16px; padding: 16px 18px; border: 1px solid rgba(230, 168, 23, .5); border-radius: 14px; background: #fffaf0; animation: svx-in .3s cubic-bezier(.2, .8, .2, 1); }
.vp-ready h3 { margin-bottom: 10px; font-size: .98rem; }
.vp-ready .ticks { gap: 8px; font-size: .94rem; }
.ct-week { list-style: none; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin: 0 0 18px; padding: 0; }
.ct-week li { display: grid; gap: 2px; padding: 10px 4px; border: 1px solid var(--line); border-radius: 12px; background: #fff; text-align: center; }
.ct-week b { font-size: .86rem; color: var(--navy-900); }
.ct-week span { font-size: .75rem; line-height: 1.25; color: var(--muted); }
.ct-week .is-today { border-color: var(--navy-900); background: var(--navy-900); }
.ct-week .is-today b { color: var(--gold); }
.ct-week .is-today span { color: rgba(255, 255, 255, .8); }
.ct-links + .ct-links { margin-top: 10px; }
.ct-links a.copy { text-decoration: none; }

/* ---------- the form ---------- */
.ct-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-bottom: 14px; padding: 4px; border-radius: 14px; background: var(--sand); }
.ct-seg button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 10px; border: 0; border-radius: 11px; background: none; font: 700 .94rem "Jakarta", system-ui, sans-serif; color: var(--navy-900); cursor: pointer; transition: background .2s, color .2s, box-shadow .2s; }
.ct-seg button .ic { width: 18px; height: 18px; color: var(--gold-ink); }
.ct-seg button[aria-selected="true"] { background: var(--navy-900); color: #fff; box-shadow: 0 8px 16px -10px rgba(10, 31, 68, .8); }
.ct-seg button[aria-selected="true"] .ic { color: var(--gold); }
.ct-expect { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: .92rem; font-weight: 600; color: var(--muted); }
.ct-expect::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 50%; background: #9aa5bb; }
.ct-expect[data-open="1"]::before { background: #35c47c; box-shadow: 0 0 0 4px rgba(53, 196, 124, .2); }
.ct-expect[data-open="0"]::before { background: #e0a43a; }
.ct-topics { margin-bottom: 18px; }
.ct-topics legend { margin-bottom: 8px; padding: 0; font-weight: 700; font-size: .92rem; color: var(--navy-900); }
.ct-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ct-chips .rq-chip { padding: 0 13px; font-size: .86rem; }
.ct-msg-foot { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 8px 14px; margin-top: 8px; }
.ct-msg-foot .count { margin: 0; margin-left: auto; }
.count.warn { color: #b26a00; font-weight: 700; }
.ct-phrases { display: flex; flex-wrap: wrap; gap: 6px; }
.ct-phrases button { min-height: 32px; padding: 5px 12px; border: 1px dashed var(--line-strong); border-radius: 999px; background: none; font: 600 .8rem "Jakarta", system-ui, sans-serif; color: var(--muted); cursor: pointer; transition: border-color .2s, color .2s, background .2s; }
.ct-phrases button:hover { border-style: solid; border-color: var(--navy-900); color: var(--navy-900); background: #fff; }
.ct-quick-act { display: flex; flex-wrap: wrap; gap: 10px; }

@media (max-width: 1020px) {
  .ct-hero { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .ct-channels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .ct-channels { grid-template-columns: minmax(0, 1fr); }
  .ct-ch-state { min-height: 0; }
  .ct-route { flex-direction: column; align-items: flex-start; }
  .ct-route-act { width: 100%; }
  .ct-route-act .btn { flex: 1 1 auto; }
  .ct-live { padding: 20px 18px; }
  .ct-week { gap: 4px; }
  .ct-week span { display: none; }
  .ct-seg button { font-size: .88rem; }
}
@media (prefers-reduced-motion: reduce) {
  .ct-live[data-open="1"] .ct-dot::after { animation: none; }
  .ct-ch { transition: none; }
}

@media (max-width: 820px) { .ct-phrases button { min-height: 40px; } }
