/* A quiet, optional inbox beside the existing contact links. */
button.message-open { border: 0; border-radius: 0; background: none; padding: 0; font: inherit; color: var(--ink); cursor: pointer; }
button.message-open:hover { text-decoration: underline; text-underline-offset: 4px; }
.message-overlay {
  box-sizing: border-box; position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none;
  margin: 0; padding: calc(var(--site-header-height) + 16px) 16px 16px; border: 0; background: transparent; color: inherit;
  overflow: hidden;
}
.message-overlay[open] { display: flex; align-items: center; justify-content: center; }
.message-overlay[data-dialog-fallback][open] {
  z-index: 1000;
  background: var(--liquid-dim, rgba(245, 246, 248, .72));
}
.message-dialog {
  box-sizing: border-box; width: min(640px, 100%); max-width: none; flex: none;
  position: relative; margin: 0; height: fit-content; max-height: 100%;
  display: flex; flex-direction: column; padding: 0; overflow: hidden;
  border: 1px solid var(--liquid-edge); border-radius: 28px;
  background: transparent; color: var(--ink); box-shadow: var(--liquid-shadow);
  font: 400 14px/1.6 var(--site-font);
}
.message-content { position: relative; z-index: 1; min-height: 0; padding: 36px; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; }
.message-overlay::backdrop { top: var(--site-header-height, 77px); background: var(--liquid-dim, rgba(245, 246, 248, .18)); }
.message-overlay[open] .message-dialog { animation: message-appear .38s cubic-bezier(.2, .8, .2, 1); transform-origin: 50% 0; }
/* Keep the vendor challenge inside the native modal's top layer, outside the
   glass panel's filtered and scrolling surface. */
.message-captcha-challenge { position: absolute; inset: 0; pointer-events: none; z-index: 2; }
.message-captcha-challenge > * { pointer-events: auto; }
.message-dialog::before, .message-dialog::after { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; }
.message-dialog::before {
  z-index: 0;
  background: radial-gradient(420px 280px at var(--liquid-light-x, 18%) var(--liquid-light-y, 0%), rgba(255, 255, 255, .19), transparent 75%), var(--liquid-fill);
  -webkit-backdrop-filter: var(--message-panel-filter, blur(var(--glass-blur)) saturate(1.35));
  backdrop-filter: var(--message-panel-filter, blur(var(--glass-blur)) saturate(1.35));
}
.message-dialog::after { z-index: 2; box-shadow: inset 0 1px 1px rgba(255, 255, 255, .5), inset 1px 0 1px rgba(255, 255, 255, .12), inset 0 -1px 1px rgba(0, 0, 0, .08); }
html[data-theme="dark"] .message-dialog::before { background: radial-gradient(420px 280px at var(--liquid-light-x, 18%) var(--liquid-light-y, 0%), rgba(255, 255, 255, .065), transparent 75%), var(--liquid-fill); }
html[data-theme="dark"] .message-dialog::after { box-shadow: inset 0 1px 1px rgba(255, 255, 255, .18), inset 1px 0 1px rgba(255, 255, 255, .04), inset 0 -1px 1px rgba(0, 0, 0, .25); }
@keyframes message-appear {
  0% { transform: translateY(-6px) scale(.975, .96); }
  65% { transform: translateY(1px) scale(1.002, 1.003); }
  100% { transform: none; }
}
.message-dialog *, .message-dialog *::before, .message-dialog *::after { box-sizing: border-box; }
.message-heading { margin-bottom: 26px; }
.message-heading h2 { margin: 0 0 8px; font-size: 26px; line-height: 1.2; letter-spacing: -.8px; font-weight: 500; }
.message-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.message-label { display: block; margin: 0; font-size: 12px; font-weight: 400; }
.message-sender-label, .message-body-label { margin-top: 22px; }
.message-optional { color: var(--muted); font-size: 11px; margin-left: 6px; }
.message-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 22px; }
.message-field-grid .message-label { min-width: 0; }
.message-dialog #message-sender, .message-dialog #message-email, .message-dialog #message-name, .message-dialog #message-organization, .message-dialog #message-body {
  display: block; width: 100%; min-width: 0; padding: 11px 13px; margin: 7px 0 0;
  border: 1px solid var(--liquid-rule); border-radius: 10px; background: var(--liquid-secondary);
  color: var(--ink); font: inherit; font-size: 16px; line-height: 1.6; box-shadow: none;
}
.message-dialog #message-body { resize: vertical; min-height: 170px; max-height: 45dvh; }
.message-dialog textarea::placeholder, .message-dialog input::placeholder { color: var(--muted); font-size: 14px; }
.message-dialog input:focus-visible, .message-dialog textarea:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.message-dialog input:invalid:not(:placeholder-shown), .message-dialog textarea:invalid:not(:placeholder-shown) { border-color: color-mix(in srgb, #b3261e 58%, var(--liquid-rule)); }
.message-dialog .message-note { margin: 10px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.message-dialog .message-preview { color: var(--ink); }
.message-verification { margin-top: 22px; }
[data-message-captcha] { min-height: 78px; }
[data-captcha-status]:empty { display: none; }
.message-actions { display: flex; align-items: center; gap: 12px; margin-top: 24px; }
.message-dialog .message-status { margin: 16px 0 0; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.message-status:empty { display: none; }
.message-send { flex: none; padding: 11px 19px; border: 1px solid var(--ink); border-radius: 10px; background: var(--ink); color: var(--paper); font-size: 12px; font-weight: 500; cursor: pointer; }
.message-send:disabled { opacity: .45; cursor: default; }
.message-cancel { padding: 11px 18px; border: 1px solid transparent; border-radius: 10px; background: transparent; font-size: 12px; color: var(--muted); cursor: pointer; }
.message-cancel:hover { color: var(--ink); background: var(--liquid-secondary); }
.message-dialog .message-service { margin: 20px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.message-service a { text-decoration: underline; text-underline-offset: 3px; }
.message-thanks { text-align: center; padding: 32px 0; }
.message-thanks h2 { margin: 0 0 12px; font-size: 30px; line-height: 1.2; letter-spacing: -.8px; font-weight: 500; }
.message-thanks p { margin: 0; color: var(--muted); font-size: 14px; }
.message-overlay[data-state="sent"] .message-dialog { animation: message-confirm .38s cubic-bezier(.2, .8, .2, 1); }
@keyframes message-confirm {
  0% { transform: translateY(-6px) scale(.975, .96); }
  65% { transform: translateY(1px) scale(1.002, 1.003); }
  100% { transform: none; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .message-dialog { background: var(--paper); }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more), (forced-colors: active) {
  .message-dialog { background: var(--paper); border-color: var(--ink); box-shadow: none; }
  .message-dialog::before, .message-dialog::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .message-overlay[open] .message-dialog,
  .message-overlay[data-state="sent"] .message-dialog { animation: none; }
}
@media (max-height: 760px) {
  .message-content { padding: 24px 28px; }
  .message-heading { margin-bottom: 18px; }
  .message-dialog #message-body { height: 140px; min-height: 112px; }
}
@media (max-width: 600px) {
  .message-dialog { border-radius: 22px; }
  .message-content { padding: 28px 22px; }
  .message-heading h2 { font-size: 24px; }
  .message-field-grid { grid-template-columns: 1fr; }
}
