/* /contact: form beside a short list of other ways to reach us. */
.ct-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,4vw,56px);align-items:start}
.ct-panel{scroll-margin-top:calc(var(--head) + 16px)}
.ct-panel h2{font-size:clamp(1.4rem,2vw,1.7rem);line-height:1.15;margin-bottom:20px}
.ct-form .btn{align-self:flex-start}
.ct-form textarea.input{min-height:160px;resize:vertical}
.ct-form .hp-field input{min-height:24px}
.ct-form .field-error .ic,.ct-form .form-summary .ic{margin-top:2px}
.ct-form .form-summary,.ct-form .ct-fail{padding:16px 18px;border:1px solid #B42318;border-radius:12px;background:#FEF3F2;color:#7A271A;line-height:1.45}
.ct-form .form-summary p,.ct-form .ct-fail p{font-weight:600}
.ct-form .form-summary[hidden]{display:none}
.ct-form .form-summary ul{margin-top:6px;padding-left:1.2em;list-style:disc}
.ct-form .form-summary li+li{margin-top:4px}
.ct-form .form-summary a,.ct-form .ct-fail a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.ct-form .form-summary:focus-visible,.ct-form .ct-fail:focus-visible{outline:3px solid var(--blue-ink);outline-offset:2px}
.ct-after{padding-top:20px;border-top:1px solid var(--line)}
.ct-after h3{font:600 1rem/1.3 var(--font-body);color:var(--ink)}
.ct-after p{margin-top:6px;color:var(--muted);line-height:1.55}
.ct-sent{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.ct-sent .ct-sent-h{display:flex;gap:10px;align-items:flex-start;font:600 1.1rem/1.35 var(--font-head);color:var(--ink)}
.ct-sent-h .ic{flex:none;width:22px;height:22px;margin-top:2px}
.ct-sent p{color:var(--muted);line-height:1.55}
.ct-sent .link{display:inline-flex;align-items:center;min-height:44px}
.ct-side{display:flex;flex-direction:column;gap:16px}
.ct-side>h2{font-size:clamp(1.4rem,2vw,1.7rem);line-height:1.15;margin-bottom:4px}
.ct-card h3{font:600 1.08rem/1.3 var(--font-head);letter-spacing:-.015em}
.ct-card .link{align-self:flex-start;display:inline-flex;align-items:center;min-height:44px}
.ct-list{display:flex;flex-direction:column;gap:16px;margin:0}
.ct-list dt{font-size:.88rem;line-height:1.3;color:var(--muted)}
.ct-list dd{margin:2px 0 0;line-height:1.5;color:var(--ink)}
.ct-list .link{display:inline-flex;align-items:center;min-height:44px}
@media (max-width:900px){.ct-grid{grid-template-columns:minmax(0,1fr)}}
.ct-fix{margin:10px 0 0;padding-left:1.4rem;list-style:decimal;display:flex;flex-direction:column;gap:8px;line-height:1.55;color:var(--muted)}
.ct-fix li::marker{color:var(--ink);font-weight:600}
/* 30 Oct (r-b6dfae): map under the details, the demo booking calendar, then help and demos side by side. */
.ct-card h2{font:600 1.08rem/1.3 var(--font-head);letter-spacing:-.015em}
.ct-map-card{padding:12px 12px 8px;gap:4px}
.ct-map{display:block;width:100%;height:280px;border:0;border-radius:14px;background:var(--canvas)}
.ct-map-card .link{margin-left:8px}
.ct-demo{scroll-margin-top:var(--head)}
.ct-demo .sec-head{margin-bottom:clamp(24px,3vw,36px)}
.ct-cal{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#fff}
.ct-cal-frame{display:block;width:100%;height:720px;border:0}
.ct-cal-alt{margin-top:14px;color:var(--muted)}
.ct-cal-alt .link{display:inline-flex;align-items:center;gap:4px;min-height:44px}
.ct-help{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
@media (max-width:900px){.ct-help{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.ct-cal-frame{height:1040px}.ct-map{height:240px}}
