.site-header .site-message-button {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-width: 0;
  min-height: 44px;
  padding: 11px 15px;
  border: 1px solid #d9c7b5;
  border-radius: 10px;
  background: #f5ece2;
  color: #61452f;
  font: 600 13px/1.4 Manrope, system-ui, sans-serif;
  text-align: center;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease;
}
.site-header .site-message-button:hover { background: #ecddcc; border-color: #ba9675; }
.site-header .site-message-button svg { flex: 0 0 18px; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.site-header .site-message-button:focus-visible { outline: 3px solid #a86d47; outline-offset: 3px; }
html.contact-is-open, body.contact-is-open { overflow: hidden; }
.contact-dialog {
  box-sizing: border-box;
  width: min(720px, calc(100vw - 32px));
  max-width: none;
  max-height: calc(100vh - 40px);
  max-height: calc(100dvh - 40px);
  margin: auto;
  padding: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid #e0d2c3;
  border-radius: 22px;
  background: #fffcf8;
  color: #2e241c;
  box-shadow: 0 30px 100px #1b171652;
  font: 400 14px/1.6 Manrope, system-ui, -apple-system, 'Segoe UI', sans-serif;
  scrollbar-width: thin;
  scrollbar-color: #ccb8a3 transparent;
}
.contact-dialog:not([open]), .contact-dialog [hidden] { display: none !important; }
.contact-dialog::backdrop { background: #151b22a6; backdrop-filter: blur(7px); }
.contact-dialog *, .contact-dialog *::before, .contact-dialog *::after { box-sizing: border-box; }
.contact-dialog button, .contact-dialog input, .contact-dialog textarea { font: inherit; }
.contact-dialog button { cursor: pointer; }
.contact-dialog button:disabled { cursor: wait; opacity: .6; }
.contact-dialog :focus-visible { outline: 3px solid #a86d47; outline-offset: 3px; }
.contact-dialog a { color: #865431; text-underline-offset: 3px; }
.contact-dialog__header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 28px 32px 23px; border-bottom: 1px solid #eadfd4; background: #f8f1e9; }
.contact-dialog h2 { margin: 0; color: #30251c; font-size: 27px; font-weight: 700; line-height: 1.25; letter-spacing: -.8px; }
.contact-icon-button { display: grid; place-items: center; flex: 0 0 40px; width: 40px; height: 40px; padding: 9px; border: 1px solid #ddcfc1; border-radius: 50%; background: transparent; color: #765e4b; }
.contact-icon-button:hover { background: #eadccc; }
.contact-icon-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.contact-dialog__body { padding: 24px 32px 28px; }
.contact-form { margin: 0; }
.contact-fields { display: grid; gap: 17px; min-width: 0; margin: 0; padding: 0; border: 0; }
.contact-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; color: #423326; font-size: 13px; font-weight: 600; }
.contact-required { color: #9c6944; }
.contact-field input, .contact-field textarea { width: 100%; min-width: 0; margin: 0; padding: 11px 13px; border: 1px solid #ddcfc1; border-radius: 9px; background: #fff; color: #30251c; font-size: 15px; font-weight: 400; line-height: 1.5; box-shadow: 0 1px 3px #5d3d2210; transition: border-color .18s ease, box-shadow .18s ease; }
.contact-field input { min-height: 47px; }
.contact-field textarea { min-height: 120px; max-height: 380px; resize: vertical; }
.contact-field input::placeholder, .contact-field textarea::placeholder { color: #a08e7e; opacity: 1; }
.contact-field input:focus, .contact-field textarea:focus { outline: none; border-color: #ae8059; box-shadow: 0 0 0 3px #ae80591c; }
.contact-field input:disabled, .contact-field textarea:disabled { color: #756353; background: #f8f3ed; opacity: 1; }
.contact-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.contact-field__caption { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.contact-counter { align-self: center; color: #9b8674; font-size: 10px; font-weight: 400; }
.contact-dialog .contact-help { margin: 0; color: #8a7563; font-size: 11px; line-height: 1.55; font-weight: 400; }
.contact-dialog .contact-channels-help { margin-top: -10px; }
.contact-attachments { min-width: 0; }
.contact-attachments__heading { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 7px; font-size: 13px; font-weight: 600; }
.contact-dropzone { position: relative; display: flex; align-items: center; justify-content: center; gap: 13px; min-height: 86px; margin-bottom: 8px; padding: 16px; border: 1px dashed #cdb59d; border-radius: 11px; background: #f9f4ed; transition: background .18s ease, border-color .18s ease; }
.contact-dropzone.is-dragging { background: #eee0ce; border: 2px solid #a97850; }
.contact-dropzone__icon { width: 28px; height: 28px; flex: 0 0 28px; fill: none; stroke: #9d7856; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.contact-dropzone__copy { color: #8a7563; font-size: 12px; }
.contact-dropzone__copy p { margin: 3px 0 0; color: #9b8776; font-size: 11px; }
.contact-file-picker, .contact-text-button { min-height: 26px; padding: 2px 0; border: 0; border-radius: 3px; background: none; color: #82532e; text-decoration: underline; text-underline-offset: 3px; }
.contact-file-picker { font-weight: 700 !important; }
.contact-file-list { display: grid; gap: 9px; margin: 11px 0 0; padding: 0; list-style: none; }
.contact-file-list:empty { display: none; }
.contact-file { min-width: 0; padding: 11px 12px; border: 1px solid #e3d6c9; border-radius: 10px; background: #fff; }
.contact-file__row { display: flex; align-items: center; gap: 11px; min-width: 0; }
.contact-file__badge { display: grid; place-items: center; flex: 0 0 39px; width: 39px; height: 39px; border-radius: 9px; background: #f3eade; color: #927154; font-size: 10px; font-weight: 800; }
.contact-file__text { flex: 1; min-width: 0; }
.contact-file__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin: 0; color: #503c2c; font-size: 12px; font-weight: 600; }
.contact-file__status { margin: 2px 0 0; color: #99816b; font-size: 10px; line-height: 1.4; }
.contact-file__remove { flex-basis: 32px; width: 32px; height: 32px; padding: 7px; border-color: transparent; }
.contact-file__preview { margin-top: 8px; color: #8a684c; font-size: 11px; }
.contact-file__preview summary { width: fit-content; padding: 3px 0; cursor: pointer; }
.contact-file__preview img, .contact-file__preview video { display: block; max-width: 100%; max-height: 260px; margin: 10px auto 0; border-radius: 7px; background: #241f1b; object-fit: contain; }
.contact-file__preview video { width: 100%; }
.contact-file__preview audio { display: block; width: 100%; max-width: 100%; margin-top: 10px; }
.contact-consent { display: flex; align-items: flex-start; gap: 10px; margin-top: 3px; color: #887360; font-size: 10px; line-height: 1.65; cursor: pointer; }
.contact-consent input { flex: 0 0 17px; width: 17px; height: 17px; margin: 2px 0 0; padding: 0; appearance: auto; border-radius: 3px; accent-color: #9a6c45; }
.contact-consent a { color: #795537; }
.contact-feedback { margin: 18px 0 0; padding: 12px 14px; border: 1px solid #dccab7; border-radius: 8px; color: #775739; background: #f4eadc; font-size: 12px; overflow-wrap: anywhere; }
.contact-feedback.is-error { border-color: #e3b6a6; background: #fff1eb; color: #994b32; }
.contact-upload { margin-top: 16px; }
.contact-upload__heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 5px; color: #87694f; font-size: 12px; }
.contact-upload progress { display: block; width: 100%; height: 6px; overflow: hidden; border: 0; border-radius: 4px; color: #a77a53; background: #eee2d4; accent-color: #a77a53; }
.contact-upload progress::-webkit-progress-bar { background: #eee2d4; border-radius: 4px; }
.contact-upload progress::-webkit-progress-value { background: #a77a53; border-radius: 4px; }
.contact-upload progress::-moz-progress-bar { background: #a77a53; border-radius: 4px; }
.contact-form__footer { display: flex; align-items: center; justify-content: flex-end; margin-top: 22px; padding-top: 20px; border-top: 1px solid #e9ded2; }
.contact-submit, .contact-secondary { display: inline-flex; align-items: center; justify-content: center; gap: 13px; min-height: 47px; padding: 12px 20px; border: 1px solid #7d583b; border-radius: 9px; background: #805b3e; color: #fffaf4; font-size: 12px !important; font-weight: 700 !important; line-height: 1.5; text-align: center; transition: background .18s ease; }
.contact-submit:hover:not(:disabled) { background: #68472e; }
.contact-submit svg { flex: 0 0 18px; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.contact-secondary { border-color: #dac8b6; background: transparent; color: #826247; }
.contact-secondary:hover { background: #f4eadf; }
.contact-success { padding: 23px 0 17px; text-align: center; }
.contact-success__icon { display: grid; place-items: center; width: 70px; height: 70px; margin: 0 auto 21px; border: 1px solid #c7d6bc; border-radius: 50%; background: #edf3e8; color: #628050; }
.contact-success__icon svg { width: 29px; height: 29px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.contact-success h3 { margin: 0; font-size: 24px; font-weight: 700; letter-spacing: -.7px; }
.contact-success p { max-width: 420px; margin: 13px auto 0; color: #8a7563; }
.contact-success .contact-success__receipt { width: fit-content; margin-top: 20px; padding: 6px 12px; border-radius: 6px; color: #886a50; background: #f4ece2; font-size: 11px; letter-spacing: .4px; }
.contact-success__actions { display: flex; justify-content: center; gap: 10px; margin-top: 28px; }
.contact-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 1100px) {
  .top-bar.site-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 20px; }
  .site-header .site-name { grid-column: 1; grid-row: 1; margin-bottom: 8px; }
  .site-header .site-message-button { grid-column: 2; grid-row: 1; margin-bottom: 8px; }
  .site-header .top-nav { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 620px) {
  .top-bar.site-header { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .site-header .site-name { max-width: none; }
  .site-header .site-message-button { grid-column: 1; grid-row: 2; justify-self: stretch; margin: 4px 0 10px; min-height: 40px; padding: 8px 12px; }
  .site-header .top-nav { grid-row: 3; }
  .contact-dialog { width: calc(100vw - 20px); max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); border-radius: 17px; }
  .contact-dialog__header { padding: 21px 18px 18px; gap: 12px; }
  .contact-dialog h2 { font-size: 23px; letter-spacing: -.6px; }
  .contact-dialog__body { padding: 20px 18px 22px; }
  .contact-field-grid { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  .contact-field input, .contact-field textarea { font-size: 16px; }
  .contact-form__footer { flex-direction: column; align-items: stretch; }
  .contact-dropzone { padding: 13px 10px; gap: 9px; }
  .contact-dropzone__copy > span { display: none; }
  .contact-success__actions { flex-direction: column; }
  .contact-success h3 { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header .site-message-button, .contact-dialog * { transition: none; }
}
@media print {
  .site-message-button, .contact-dialog { display: none !important; }
}
