/* Art & Design contextual contact overlay; narrowly scoped to avoid Porto styles. */
.adpg-contact-dialog {
  border: 0 !important; padding: 0 !important; margin: auto !important;
  width: min(92vw, 590px); max-width: 590px; max-height: min(90dvh, 900px);
  border-radius: 15px; background: #fff; color: #212121; overflow: auto;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .35); z-index: 2147483000;
}
.adpg-contact-dialog::backdrop { background: rgba(0, 0, 0, .75); backdrop-filter: blur(3px); }
.adpg-contact-dialog * { box-sizing: border-box; }
.adpg-contact-header {
  background: #0c0c0c; color: white; padding: 27px 30px 24px;
  display: flex; align-items: flex-start; gap: 15px; justify-content: space-between;
}
.adpg-contact-header h2 { color: #fff !important; font-size: clamp(21px, 3.3vw, 27px) !important; line-height: 1.25; font-weight: 700; margin: 8px 0 7px !important; }
.adpg-contact-header p { color: #ddd !important; font-size: 13px; line-height: 1.55; margin: 0; }
.adpg-contact-kicker { font-size: 10px; letter-spacing: .18em; color: #c5c5c5; font-weight: 700; }
.adpg-contact-close { flex: 0 0 auto; color: #fff !important; background: transparent !important; border: 1px solid rgba(255,255,255,.5) !important; border-radius: 50%; cursor: pointer; height: 34px; width: 34px; line-height: 1; font-size: 24px; display: grid; place-items: center; padding: 0 !important; }
.adpg-contact-close:hover, .adpg-contact-close:focus-visible { background: #333 !important; outline: 2px solid #fff; outline-offset: 2px; }
.adpg-contact-content { padding: 25px 30px 30px; }
.adpg-contact-context { padding: 14px 17px; margin-bottom: 19px; background: #f5f5f5; border-left: 3px solid #141414; display: grid; gap: 4px; }
.adpg-contact-context span { font-size: 10px; color: #777; letter-spacing: .1em; font-weight: 600; }
.adpg-contact-context strong { font-size: 15px; color: #111; line-height: 1.4; }
.adpg-contact-content .wpcf7 { margin: 0; }
.adpg-contact-content .wpcf7 form { margin: 0; }
.adpg-contact-content .wpcf7 form p { margin: 0 0 12px; }
.adpg-contact-content .wpcf7 form label { display: block; font-size: 13px; font-weight: 600; color: #262626; margin-bottom: 4px; }
.adpg-contact-content .wpcf7 input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.adpg-contact-content .wpcf7 textarea,
.adpg-contact-content .wpcf7 select {
  width: 100%; max-width: 100%; min-height: 42px; border: 1px solid #dedede;
  background: #fff; color: #171717; padding: 10px 12px; border-radius: 5px; font-size: 14px; box-shadow: none;
}
.adpg-contact-content .wpcf7 textarea { min-height: 96px; resize: vertical; }
.adpg-contact-content .wpcf7 input[type="submit"] { width: 100%; padding: 13px 17px; background: #121212; color: #fff; border: 1px solid #121212; border-radius: 5px; font-weight: 700; cursor: pointer; min-height: 45px; }
.adpg-contact-content .wpcf7 input[type="submit"]:hover { background: #333; }
.adpg-contact-content .wpcf7 input:focus-visible, .adpg-contact-content .wpcf7 textarea:focus-visible { outline: 2px solid #555; outline-offset: 2px; }
.adpg-contact-content .wpcf7-response-output { font-size: 13px; line-height: 1.5; }
@media (max-width: 580px) {
  .adpg-contact-dialog { width: 94vw; max-height: 90dvh; }
  .adpg-contact-header { padding: 21px 19px 19px; }
  .adpg-contact-content { padding: 19px; }
}
@media (prefers-reduced-motion: reduce) { .adpg-contact-dialog::backdrop { backdrop-filter: none; } }
