/* Scoped to the contact modal; typography follows the active theme. */
.twd-contact-dialog {
  box-sizing: border-box;
  width: min(600px, calc(100% - 28px));
  max-height: calc(100dvh - 28px);
  margin: auto;
  padding: 24px;
  border: 1px solid #dce1e3;
  border-radius: 20px;
  color: var(--black, #151515);
  background: var(--white, #fff);
  font-family: inherit;
  font-size: 15px;
  line-height: 1.5;
  text-align: left;
  overflow: auto;
  overscroll-behavior: contain;
}
.twd-contact-dialog::backdrop { background: rgb(0 0 0 / 65%); }
.twd-contact-dialog *, .twd-contact-dialog *::before, .twd-contact-dialog *::after { box-sizing: border-box; }
.twd-contact-header { position: relative; padding-right: 30px; }
.twd-contact-dialog .twd-contact-eyebrow { margin: 0 0 8px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent, #005c67); }
.twd-contact-dialog h2 { margin: 0 0 8px; font: 500 clamp(34px, 6vw, 42px)/1.06 var(--title-font, 'Times New Roman', Times, serif); letter-spacing: -.025em; color: var(--black, #151515); }
.twd-contact-dialog #twd-contact-intro { margin: 0 0 12px; font-size: 14px; }
.twd-contact-dialog .twd-contact-close { position: absolute; top: -10px; right: -12px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 0; color: inherit; background: transparent; font: 300 30px/1 sans-serif; cursor: pointer; }
.twd-contact-form { display: grid; gap: 6px; margin: 0; }
.twd-contact-form label { margin: 6px 0 0; font-size: 12px; font-weight: 600; }
.twd-contact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 8px; }
.twd-contact-field { display: grid; align-content: start; gap: 6px; min-width: 0; }
.twd-contact-field label { margin: 0; }
.twd-contact-dialog :is(input, textarea, select) { width: 100%; min-width: 0; min-height: 44px; margin: 0; padding: 11px 12px; border: 1px solid #cbd1d4; border-radius: 8px; background: #fff; color: var(--black, #151515); font: inherit; font-size: 16px; box-shadow: none; }
.twd-contact-dialog select { appearance: none; -webkit-appearance: none; padding-right: 44px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23596166' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 15px center; background-size: 16px; }
.twd-contact-dialog textarea { resize: vertical; min-height: 88px; }
.twd-contact-dialog :is(input, textarea, select, button, a):focus-visible { outline: 2px solid var(--accent, #005c67); outline-offset: 3px; }
.twd-contact-dialog .twd-contact-event { margin: 2px 0 0; font-size: 12px; color: var(--muted, #596166); }
.twd-contact-dialog [hidden] { display: none; }
.twd-contact-dialog .twd-contact-privacy, .twd-contact-dialog .twd-contact-alternative { margin: 10px 0 0; font-size: 12px; line-height: 1.6; }
.twd-contact-dialog a { display: inline; color: var(--accent, #005c67); text-decoration: underline; text-underline-offset: 3px; }
.twd-contact-dialog .twd-contact-status { margin: 4px 0; font-size: 14px; font-weight: 500; }
.twd-contact-dialog .twd-contact-status:empty { display: none; }
.twd-contact-dialog .twd-contact-submit { display: flex; justify-content: space-between; align-items: center; gap: 24px; width: 100%; min-height: 48px; margin-top: 8px; padding: 13px 18px; border: 0; border-radius: 99px; background: var(--black, #151515); color: #fff; font: inherit; font-size: 14px; cursor: pointer; }
.twd-contact-dialog button:disabled { opacity: .65; cursor: default; }
.twd-contact-dialog .twd-contact-trap, .twd-contact-dialog .twd-contact-sr { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 600px) {
  .twd-contact-dialog { padding: 20px; border-radius: 16px; }
  .twd-contact-dialog #twd-contact-intro { margin-bottom: 8px; }
}
@media (max-width: 420px) {
  .twd-contact-fields { grid-template-columns: minmax(0, 1fr); gap: 10px; }
}
@media (max-height: 700px) {
  .twd-contact-dialog { padding-block: 18px; }
  .twd-contact-dialog .twd-contact-eyebrow { margin-bottom: 4px; }
  .twd-contact-dialog h2 { font-size: 34px; }
}
@media (forced-colors: active) {
  .twd-contact-dialog select { appearance: auto; -webkit-appearance: auto; background-image: none; }
}

.twd-contact-dialog .twd-contact-submit:not(:disabled):hover { background: var(--accent, #005c67); }
.twd-contact-dialog .twd-contact-submit span { color: #fff; }

/* Close control: no frame on pointer focus; keyboard focus changes its color. */
.twd-contact-dialog .twd-contact-close,
.twd-contact-dialog .twd-contact-close:hover,
.twd-contact-dialog .twd-contact-close:active,
.twd-contact-dialog .twd-contact-close:focus,
.twd-contact-dialog .twd-contact-close:focus-visible {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  outline: none;
  -webkit-tap-highlight-color: transparent;
}
.twd-contact-dialog .twd-contact-close:focus-visible {
  color: var(--accent, #005c67);
  text-decoration: underline;
  text-underline-offset: 5px;
}

/* Pointer focus after a tap, including focus restored when a popup closes.
   The class is removed on keyboard navigation; input fields keep their focus. */
html.twd-touch-focus :is(a, button):is(:focus, :focus-visible) {
  outline: none !important;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent;
}

html.twd-touch-focus :is(.twd-contact-close, .twd-newsletter-close):is(:focus, :focus-visible) {
  color: inherit;
  text-decoration: none;
}
