/* ==========================================================================
   pds-contact — form panel plus the ways to reach us
   ========================================================================== */

.pds-contact__inner {
    display: flex;
    flex-direction: column;
    gap: clamp(2.5rem, 5vw, 3.75rem);
}

.pds-contact__body {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: clamp(1.75rem, 4vw, 3.5rem);
    align-items: start;
}

/* --- Form panel ------------------------------------------------------------ */

.pds-contact__panel {
    padding: clamp(1.5rem, 3.5vw, 2.75rem);
    border-radius: var(--pds-r-lg);
    background: var(--pds-paper);
    border: 1px solid var(--pds-line);
    box-shadow: var(--pds-shadow);
}

.pds--ink .pds-contact__panel {
    background: var(--pds-ink-soft);
    border-color: var(--pds-line-ink);
}

.pds-contact__panel-title {
    font-size: var(--pds-fs-h3);
    margin-block-end: .625rem;
}

.pds-contact__panel-text {
    font-size: var(--pds-fs-small);
    line-height: 1.6;
    color: var(--pds-body);
    max-inline-size: 52ch;
}

.pds--ink .pds-contact__panel-text {
    color: var(--pds-on-ink-soft);
}

.pds-contact__note {
    margin-block-start: 1rem;
    font-size: var(--pds-fs-eyebrow);
    color: var(--pds-muted);
}

.pds--ink .pds-contact__note {
    color: var(--pds-on-ink-faint);
}

.pds-contact__alert {
    padding: 1rem;
    border: 1px dashed var(--pds-line);
    border-radius: var(--pds-r-sm);
    background: var(--pds-bone);
    font-size: var(--pds-fs-small);
    color: var(--pds-muted);
}

/* --- Contact Form 7 --------------------------------------------------------
   CF7 emits its own markup; these rules pull it into the design system without
   touching the plugin. */

.pds-contact__form {
    margin-block-start: 1.5rem;
}

.pds-contact__form .wpcf7-form p {
    margin: 0 0 1rem;
}

.pds-contact__form label {
    display: block;
    font-size: var(--pds-fs-small);
    font-weight: 600;
    color: var(--pds-title);
}

.pds--ink .pds-contact__form label {
    color: #fff;
}

.pds-contact__form input[type="text"],
.pds-contact__form input[type="email"],
.pds-contact__form input[type="tel"],
.pds-contact__form input[type="url"],
.pds-contact__form input[type="date"],
.pds-contact__form input[type="number"],
.pds-contact__form select,
.pds-contact__form textarea {
    inline-size: 100%;
    min-block-size: 48px;
    margin-block-start: .375rem;
    padding: .75rem 1rem;
    border: 1.5px solid var(--pds-line);
    border-radius: var(--pds-r-sm);
    background: var(--pds-paper);
    color: var(--pds-title);
    font-family: var(--pds-text);
    font-size: var(--pds-fs-body);
    transition: border-color .25s var(--pds-ease), box-shadow .25s var(--pds-ease);
}

.pds-contact__form textarea {
    min-block-size: 140px;
    resize: vertical;
}

.pds-contact__form :is(input, select, textarea):focus {
    outline: none;
    border-color: var(--pds-purple);
    box-shadow: 0 0 0 3px rgba(106, 36, 140, .18);
}

.pds-contact__form :is(input, select, textarea)[aria-invalid="true"] {
    border-color: #B3261E;
}

.pds-contact__form input[type="submit"],
.pds-contact__form .wpcf7-submit {
    inline-size: auto;
    min-block-size: 52px;
    margin-block-start: .25rem;
    padding: 1rem 1.875rem;
    border: 1px solid var(--pds-purple);
    border-radius: 999px;
    background: var(--pds-purple);
    color: #fff;
    font-family: var(--pds-text);
    font-size: var(--pds-fs-small);
    font-weight: 600;
    cursor: pointer;
    transition: background-color .3s var(--pds-ease), border-color .3s var(--pds-ease),
                transform .3s var(--pds-ease), box-shadow .3s var(--pds-ease);
}

.pds-contact__form input[type="submit"]:hover {
    background: var(--pds-purple-dark);
    border-color: var(--pds-purple-dark);
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(106, 36, 140, .26);
}

.pds-contact__form .wpcf7-not-valid-tip {
    display: block;
    margin-block-start: .375rem;
    font-size: .8125rem;
    font-weight: 600;
    color: #B3261E;
}

.pds-contact__form .wpcf7-response-output {
    margin: 1rem 0 0;
    padding: .875rem 1rem;
    border: 1px solid var(--pds-line);
    border-radius: var(--pds-r-sm);
    font-size: var(--pds-fs-small);
    line-height: 1.5;
}

.pds-contact__form .wpcf7 form.sent .wpcf7-response-output {
    border-color: rgba(31, 122, 90, .4);
    background: rgba(31, 122, 90, .08);
    color: var(--pds-sage);
}

.pds-contact__form .wpcf7 form.invalid .wpcf7-response-output,
.pds-contact__form .wpcf7 form.unaccepted .wpcf7-response-output,
.pds-contact__form .wpcf7 form.failed .wpcf7-response-output {
    border-color: rgba(179, 38, 30, .4);
    background: rgba(179, 38, 30, .07);
    color: #B3261E;
}

/* Two-up rows on wider panels, via the wrapper class the form markup sets. */
@media (min-width: 640px) {

    .pds-contact__form .pds-form-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 0 1rem;
    }
}

/* --- Aside ------------------------------------------------------------------ */

.pds-contact__aside {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.pds-contact__channels {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pds-contact__channel {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.125rem;
    border-radius: var(--pds-r);
    border: 1px solid var(--pds-line);
    background: var(--pds-paper);
    text-decoration: none;
    color: inherit;
    transition: border-color .3s var(--pds-ease), transform .3s var(--pds-ease),
                box-shadow .3s var(--pds-ease);
}

.pds--ink .pds-contact__channel {
    background: rgba(255, 255, 255, .05);
    border-color: var(--pds-line-ink);
}

.pds-contact__channel:hover {
    border-color: var(--pds-purple);
    transform: translateY(-2px);
    box-shadow: var(--pds-shadow-sm);
}

.pds-contact__channel-body {
    display: flex;
    flex-direction: column;
    gap: .125rem;
    min-inline-size: 0;
}

.pds-contact__channel-label {
    font-size: var(--pds-fs-eyebrow);
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--pds-muted);
}

.pds--ink .pds-contact__channel-label {
    color: var(--pds-on-ink-faint);
}

.pds-contact__channel-body strong {
    font-family: var(--pds-display);
    font-size: 1.125rem;
    font-weight: 600;
    letter-spacing: -.02em;
    color: var(--pds-title);
    overflow-wrap: anywhere;
}

.pds--ink .pds-contact__channel-body strong {
    color: #fff;
}

.pds-contact__channel-note {
    font-size: var(--pds-fs-eyebrow);
    color: var(--pds-muted);
}

.pds-contact__channel-go {
    margin-inline-start: auto;
    color: var(--pds-purple);
    transition: transform .3s var(--pds-ease);
}

.pds-contact__channel:hover .pds-contact__channel-go {
    transform: translate(3px, -3px);
}

.pds--ink .pds-contact__channel-go {
    color: var(--pds-orange);
}

/* --- Hours & trust ---------------------------------------------------------- */

.pds-contact__hours,
.pds-contact__trust {
    padding: 1.25rem 1.375rem;
    border-radius: var(--pds-r);
    border: 1px solid var(--pds-line);
    background: var(--pds-paper);
}

.pds--ink .pds-contact__hours,
.pds--ink .pds-contact__trust {
    background: rgba(255, 255, 255, .05);
    border-color: var(--pds-line-ink);
}

.pds-contact__hours h3,
.pds-contact__trust h3 {
    font-size: 1rem;
    font-weight: 600;
    margin-block-end: .875rem;
}

.pds-contact__hours dl {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    margin: 0;
}

.pds-contact__hours dl > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-size: var(--pds-fs-small);
}

.pds-contact__hours dt {
    color: var(--pds-muted);
}

.pds-contact__hours dd {
    margin: 0;
    font-weight: 600;
    color: var(--pds-title);
}

.pds--ink .pds-contact__hours dd {
    color: #fff;
}

.pds-contact__trust ul {
    display: flex;
    flex-direction: column;
    gap: .625rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pds-contact__trust li {
    display: flex;
    align-items: flex-start;
    gap: .625rem;
    font-size: var(--pds-fs-small);
    line-height: 1.5;
}

.pds-contact__trust li > span {
    display: grid;
    place-items: center;
    flex: none;
    inline-size: 1.375rem;
    block-size: 1.375rem;
    margin-block-start: .0625rem;
    border-radius: 50%;
    background: var(--pds-purple-wash);
    color: var(--pds-purple);
}

.pds--ink .pds-contact__trust li > span {
    background: rgba(255, 255, 255, .1);
    color: var(--pds-orange);
}

/* --- Map --------------------------------------------------------------------- */

.pds-contact__map {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.pds-contact__map iframe {
    inline-size: 100%;
    block-size: 260px;
    border: 0;
    border-radius: var(--pds-r);
    filter: grayscale(.25) contrast(1.02);
}

/* --- Responsive --------------------------------------------------------------- */

@media (max-width: 960px) {

    .pds-contact__body {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 480px) {

    .pds-contact__form input[type="submit"],
    .pds-contact__form .wpcf7-submit {
        inline-size: 100%;
    }
}
