.hub-row{grid-template-columns:minmax(0,6fr) minmax(0,6fr)}
.hub-h1{font-size:clamp(36px,4.2vw,64px);line-height:.98}

/* ---------- chat demo ---------- */
@property --fill{syntax:'<percentage>';inherits:false;initial-value:0%}
.stars{font-size:15px;line-height:1;letter-spacing:1px;background:linear-gradient(90deg,#E8A317 var(--fill),var(--line-2) var(--fill));-webkit-background-clip:text;background-clip:text;color:transparent}
.ra-chat{margin:0;min-width:0}
.ra-chat__card{position:relative;height:520px;overflow:hidden;background:var(--card);border-radius:16px;box-shadow:var(--sh-3);color:var(--ink)}
@media (min-width:900px){.ra-chat__card{height:500px}}
.ra-chat__inner{position:absolute;inset:0;display:flex;flex-direction:column}
.rc2-head{display:flex;align-items:center;gap:8px;padding:14px 20px;border-bottom:1px solid var(--line);font-weight:650;font-size:15px;color:var(--ink)}
.rc2-head svg{width:18px;height:18px;color:var(--accent)}
.rc2-thread{flex:1;min-height:0;padding:16px 20px 0;display:flex;flex-direction:column;gap:12px;overflow:hidden}
.rc2-q{align-self:flex-end;max-width:86%;padding:10px 14px;border-radius:16px 16px 4px 16px;background:var(--accent);color:var(--on-accent);font-size:15px;line-height:1.4}
.rc2-dots{display:flex;gap:5px;padding:4px 2px}
.rc2-dots i{width:7px;height:7px;border-radius:50%;background:var(--ink-3);animation:rc2-dot 1s ease-in-out infinite}
.rc2-dots i:nth-child(2){animation-delay:150ms}
.rc2-dots i:nth-child(3){animation-delay:300ms}
@keyframes rc2-dot{0%,80%,100%{opacity:.35;transform:none}40%{opacity:1;transform:translateY(-3px)}}
.ra-chat.js .rc2-dots:not(.is-on){display:none}
.rc2-intro{font-size:15px;line-height:1.45;color:var(--ink-2)}
.rc2-list{list-style:none;padding:0;margin:-4px 0 0;display:grid;gap:4px}
.rc2-item{padding:8px 10px;border-radius:10px;box-shadow:inset 0 0 0 1px transparent;transition:background-color .2s,box-shadow .2s}
.rc2-item b{display:block;font-size:15.5px;line-height:1.3;color:var(--ink);font-weight:650}
.rc2-item.is-hover{background:var(--bg-2)}
.rc2-item.is-sel{background:var(--accent-t);box-shadow:inset 0 0 0 1.5px var(--accent)}
.rc2-rate{display:flex;align-items:center;gap:8px;margin-top:2px;font-size:14px;line-height:1.4;color:var(--ink-3)}
.rc2-input{display:flex;align-items:flex-end;gap:8px;margin:12px 16px 16px;padding:6px 6px 6px 16px;border-radius:24px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line-2)}
.rc2-field{flex:1;min-width:0;padding:6px 0;font-size:15px;line-height:1.4}
.rc2-ph{color:var(--ink-3)}
.ra-chat.is-typing .rc2-ph{display:none}
.rc2-caret{display:inline-block;width:2px;height:1.15em;margin-left:1px;vertical-align:text-bottom;background:var(--ink);opacity:0}
.ra-chat.is-typing .rc2-caret{opacity:1}
.rc2-send{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--on-accent)}
.rc2-send svg{width:18px;height:18px}
.rc2-place{position:absolute;left:0;right:0;bottom:0;z-index:1;background:var(--card);border-radius:16px 16px 0 0;box-shadow:0 -10px 30px rgba(13,21,48,.16)}
.ra-chat.js .rc2-place:not(.is-on){transform:translateY(105%)}
.rc2-map{position:relative;height:92px;overflow:hidden;border-radius:16px 16px 0 0;background:var(--bg-3)}
.rc2-roads{position:absolute;inset:0;width:100%;height:100%}
.rc2-roads path{stroke:var(--card)}
.rc2-roads rect{fill:var(--ok-t)}
.rc2-pin{position:absolute;left:50%;top:20px;width:28px;height:36px;margin-left:-14px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}
.rc2-pin path{fill:var(--accent)}
.rc2-pbody{padding:14px 20px 18px}
.rc2-pname{display:block;font-family:var(--f-display);font-weight:650;font-stretch:88%;font-size:22px;line-height:1.15;letter-spacing:-.02em;color:var(--ink)}
.rc2-place .rc2-rate{margin-top:6px;font-size:15px}
.rc2-place .stars{font-size:17px}
.rc2-meta{display:block;margin-top:4px;font-size:14px;line-height:1.4;color:var(--ink-3)}
.rc2-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.rc2-btn{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:999px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink);font-weight:650;font-size:14px;transition:background-color .2s,transform .15s}
.rc2-btn.primary{background:var(--accent);color:var(--on-accent);box-shadow:none}
.rc2-btn.primary.is-hover{background:var(--accent-2)}
.rc2-btn.is-press{transform:scale(.96)}
.rc2-btn.primary.is-done{background:var(--ok);color:#FFFFFF}
.rc2-done{margin-top:10px;font-size:14px;font-weight:650;line-height:1.4;color:var(--ok)}
.ra-chat.js .rc2-h:not(.is-on){opacity:0;visibility:hidden}
.rc2-cursor{position:absolute;left:0;top:0;z-index:3;width:24px;height:24px;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}
.ra-chat.js .rc2-cursor:not(.is-on){opacity:0}
.rc2-ripple{position:absolute;left:-18px;top:-18px;z-index:2;width:36px;height:36px;border-radius:50%;background:var(--accent-t2);opacity:0;pointer-events:none}
.rc2-crm{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;background:var(--card)}
.ra-chat.js .rc2-crm:not(.is-on){transform:translateX(101%)}
.rc2-crm-head{display:flex;align-items:center;gap:8px;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--bg-2);font-weight:650;font-size:15px;color:var(--ink)}
.rc2-crm-head svg{width:18px;height:18px;flex:none;color:var(--accent)}
.rc2-lead{margin:16px 20px 0;padding:12px 16px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line-2)}
.rc2-lead b{display:block;font-size:15.5px;line-height:1.3}
.rc2-lead span{display:block;font-size:14px;line-height:1.4;color:var(--ink-3)}
.ra-chat .rc2-lead .rc2-tag{display:inline-block;margin-top:8px;padding:2px 10px;border-radius:999px;background:var(--accent-t);color:var(--accent);font-weight:650}
.rc2-steps{list-style:none;margin:14px 20px 0;padding:0;display:grid;gap:7px}
.rc2-steps li{display:flex;align-items:center;gap:10px;font-size:15px;line-height:1.3;color:var(--ink-3);transition:color .2s}
.rc2-tick{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;box-shadow:inset 0 0 0 2px var(--line-2);color:#FFFFFF;transition:background-color .2s,box-shadow .2s}
.rc2-tick svg{width:12px;height:12px;opacity:0;transition:opacity .15s}
.rc2-steps li.is-done{color:var(--ink)}
.rc2-steps li.is-done .rc2-tick{background:var(--accent);box-shadow:none}
.rc2-steps li.is-done .rc2-tick svg{opacity:1}
.rc2-badge{display:flex;align-items:center;gap:10px;margin:16px 20px 0;padding:12px 16px;border-radius:12px;background:var(--ok-t);color:var(--ok);font-weight:650;font-size:15.5px;line-height:1.3}
.rc2-badge svg{width:22px;height:22px;flex:none}
.ra-chat .rc2-crm-foot{margin:12px 20px 0;font-size:14px;font-weight:650;line-height:1.4;color:var(--accent)}
.ra-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;font-size:13px;color:var(--ink-3)}
.text-btn{border:0;background:none;padding:10px 0;font:600 13px/1 var(--f-text);color:var(--ink-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.text-btn:hover{color:var(--accent)}
@media (max-width:599px){.rc2-head,.rc2-thread,.rc2-pbody,.rc2-crm-head{padding-left:16px;padding-right:16px}.rc2-lead,.rc2-steps,.rc2-badge,.ra-chat .rc2-crm-foot{margin-left:16px;margin-right:16px}}
@media (max-width:1080px){.hub-row{grid-template-columns:1fr}}
