/* ---------- floating contact buttons + message window ---------- */
.cfloat{position:fixed;right:max(20px,env(safe-area-inset-right,0px));bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:44;display:none;flex-direction:column;align-items:flex-end;gap:10px;
  opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .45s var(--ease),transform .45s var(--ease)}
.cfloat.on{opacity:1;transform:none;pointer-events:auto}
@media (min-width:960px){.cfloat{display:flex}}
.cfloat-btn{display:inline-flex;align-items:center;gap:12px;min-height:56px;padding:0 20px 0 16px;border-radius:999px;text-decoration:none;cursor:pointer;font:inherit;
  border:1px solid var(--stone);background:rgba(251,247,240,.94);color:var(--ink);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:0 18px 40px -22px rgba(43,36,31,.45),0 2px 6px -2px rgba(43,36,31,.12);transition:background .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease)}
.cfloat-btn:hover{border-color:var(--line);background:var(--white);transform:translateY(-1px);box-shadow:0 22px 44px -22px rgba(43,36,31,.5),0 2px 6px -2px rgba(43,36,31,.14)}
.cfloat-btn.call{background:var(--ink);border-color:var(--ink);color:var(--white)}
.cfloat-btn.call:hover{background:#40362F;border-color:#40362F}
.cfloat-btn .ico{flex:none;width:18px;height:18px}
.cfloat-btn.msg .ico{color:var(--brass)}
.cfloat-txt{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;text-align:left}
.cfloat-k{font-weight:600;font-size:14.5px}
.cfloat-v{font-size:12.5px;opacity:.72;letter-spacing:.01em}
@media (prefers-reduced-motion:reduce){.cfloat,.cfloat-btn{transition:none}}

/* mobile: the bottom bar holds both buttons; leave room for it at the end of the page */
@media (max-width:959.98px){body{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}}
.mbar button.pill{font:inherit;font-weight:600;font-size:15px}

/* message window */
.gmsg{border:0;padding:0;margin:auto;background:transparent;max-width:min(520px,calc(100vw - 24px));width:100%;max-height:calc(100dvh - 24px);overflow:visible;color:var(--ink)}
.gmsg::backdrop{background:rgba(43,36,31,.38);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.gmsg[open]{animation:gmsg-in .45s var(--ease)}
.gmsg[open]::backdrop{animation:gmsg-fade .45s var(--ease)}
@keyframes gmsg-in{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes gmsg-fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.gmsg[open],.gmsg[open]::backdrop{animation:none}}
.gmsg-card{position:relative;background:var(--ivory);border:1px solid var(--stone);border-radius:24px;padding:30px 22px 24px;box-shadow:0 40px 90px -40px rgba(43,36,31,.55);max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}
@media (min-width:600px){.gmsg-card{padding:40px 38px 32px}}
.gmsg-x{position:absolute;top:14px;right:14px;width:44px;height:44px;border-radius:50%;border:1px solid var(--stone);background:var(--paper);color:var(--ink);display:grid;place-items:center;cursor:pointer}
.gmsg-x:hover{background:var(--white)}
.gmsg-h{font-family:var(--f-display);font-weight:400;font-size:clamp(30px,6vw,40px);line-height:1.02;margin:0 0 10px;padding-right:44px}
.gmsg-sub{color:var(--body);margin:0 0 22px}
.gmsg-grid{display:grid;gap:12px;grid-template-columns:1fr}
@media (min-width:600px){.gmsg-grid{grid-template-columns:1fr 1fr}.gmsg-f.full{grid-column:1/-1}}
.gmsg-f{display:grid;gap:6px;font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--muted)}
.gmsg-f em{font-style:normal;font-weight:400}
.gmsg-f input,.gmsg-f select,.gmsg-f textarea{width:100%;min-height:52px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font:inherit;font-size:16px;font-weight:400;letter-spacing:0;transition:border-color .2s,background .2s}
.gmsg-f textarea{min-height:96px;resize:vertical}
.gmsg-f select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.gmsg-f input:focus,.gmsg-f select:focus,.gmsg-f textarea:focus{outline:none;border-color:var(--ink);background:var(--white)}
.gmsg-f input[aria-invalid=true]{border-color:#9b3d2e}
.gmsg-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.gmsg-err{margin:14px 0 0;color:#8a3324;font-size:14.5px}
.gmsg-send{width:100%;margin-top:18px}
.gmsg-send[disabled]{opacity:.6;cursor:progress}
.gmsg-note{margin:14px 0 0;text-align:center;font-size:14px;color:var(--muted)}
.gmsg-note a,.gmsg-sub a{color:var(--ink);font-weight:600}
.gmsg-done .pill{margin-top:4px}
body.gmsg-lock{overflow:hidden}