.cbm{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}
.cbm[hidden]{display:none!important}
.cbm-backdrop{position:absolute;inset:0;background:rgba(13,36,28,.55);backdrop-filter:blur(3px)}
.cbm-card{position:relative;width:100%;max-width:460px;max-height:92vh;overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-lift);padding:28px 26px 26px;animation:cbmPop .28s var(--ease)}
@keyframes cbmPop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.cbm-x{position:absolute;top:10px;right:12px;width:44px;height:44px;border:0;background:none;font-size:30px;line-height:1;color:var(--muted);cursor:pointer;border-radius:var(--r-s)}
.cbm-x:hover,.cbm-x:focus-visible{color:var(--brand)}
.cbm-stamp{position:absolute;top:18px;right:56px;width:52px;height:52px;border:2px solid var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:var(--accent);transform:rotate(12deg);pointer-events:none}
.cbm-title{font-family:Alegreya,serif;font-size:1.7rem;color:var(--ink);margin:0 40px 6px 0}
.cbm-sub{color:var(--muted);font-size:.92rem;margin:0 0 10px}
.cbm-call{font-size:.95rem;margin:0 0 18px}
.cbm-call a{color:var(--brand);font-weight:700;text-decoration:none}
.cbm-call a:hover{text-decoration:underline}
.cbm-label{display:block;font-weight:700;font-size:.85rem;color:var(--ink);margin:14px 0 6px;text-transform:uppercase;letter-spacing:.06em}
.cbm-input{width:100%;border:1.5px dashed var(--line);border-radius:var(--r-m);background:var(--card);padding:12px 14px;font:inherit;color:var(--ink);transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}
.cbm-input:focus{outline:none;border-style:solid;border-color:var(--brand);box-shadow:0 0 0 3px rgba(4,120,87,.15)}
.cbm-phone{display:flex;align-items:stretch}
.cbm-flag{display:flex;align-items:center;gap:7px;padding:0 12px;background:var(--tint);border:1.5px dashed var(--line);border-right:0;border-radius:var(--r-m) 0 0 var(--r-m);font-weight:800;color:var(--ink);white-space:nowrap}
.cbm-flag svg{border-radius:2px;box-shadow:0 0 0 1px rgba(22,53,42,.2)}
.cbm-input-tel{border-radius:0 var(--r-m) var(--r-m) 0;letter-spacing:.06em;font-weight:700;font-size:1.05rem}
.cbm-area{resize:vertical;min-height:74px}
.cbm-hp{position:absolute;left:-9999px;top:-9999px}
.cbm-err{background:#fdecea;border-left:3px solid #c0392b;color:#7c2418;padding:10px 12px;border-radius:0 var(--r-s) var(--r-s) 0;font-size:.9rem;margin:14px 0 0}
.cbm-ok{background:var(--tint);border-left:3px solid var(--brand);color:var(--ink);padding:12px 14px;border-radius:0 var(--r-s) var(--r-s) 0;font-weight:700;margin:14px 0 0}
.cbm-send{width:100%;margin-top:18px;font-size:1.05rem;padding:14px}
.cbm-send[disabled]{opacity:.6;cursor:wait}
@media (max-width:420px){.cbm{padding:8px}.cbm-card{padding:22px 16px 18px}.cbm-stamp{display:none}}
@media (prefers-reduced-motion:reduce){.cbm-card{animation:none}}

.cbm-ts{margin:0 0 10px}
.cbm-ts:empty{margin:0}
.rvm-stars{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px;margin:2px 0 4px}
.rvm-star-cb{position:absolute;width:1px;height:1px;opacity:0;clip-path:inset(50%)}
.rvm-star{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--line);cursor:pointer;border-radius:var(--r-s);transition:color .15s var(--ease)}
.rvm-star:hover,.rvm-star:hover~.rvm-star{color:var(--accent)}
.rvm-star-cb:checked+.rvm-star,.rvm-star-cb:checked~.rvm-star{color:var(--accent)}
.rvm-star-cb:focus-visible+.rvm-star{outline:3px solid var(--brand);outline-offset:2px}
.rvm-area{min-height:112px}
.rvm-consent{display:grid;grid-template-columns:22px 1fr;align-items:start;gap:11px;margin:16px 0 4px;font-size:.9rem;line-height:1.45;color:var(--muted);cursor:pointer}
.rvm-consent input{width:22px;height:22px;margin:0;accent-color:var(--brand);cursor:pointer}
.rvm-note{margin:12px 0 0;font-size:.82rem;line-height:1.45;color:var(--muted)}
@media (prefers-reduced-motion:reduce){.rvm-star{transition:none}}
