/* contact */
.dm-contact,
.dm-contact-visit {
    padding: clamp(48px, 6vw, 88px) 0;
    color: var(--dm-ink);
}
.dm-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    grid-template-rows: auto 1fr;
    grid-template-areas: "info form" "hours form";
    column-gap: clamp(32px, 5vw, 80px);
    align-items: start;
}
.dm-contact-grid:not(:has(> .dm-contact-form)) {
    grid-template-rows: auto;
    grid-template-areas: "info hours";
}
.dm-contact-info { grid-area: info; }
.dm-contact-form { grid-area: form; }
.dm-contact-grid > .dm-contact-hours {
    grid-area: hours;
    margin-top: 36px;
}
.dm-contact-grid:not(:has(> .dm-contact-form)) > .dm-contact-hours { margin-top: 0; }

.dm-contact-kicker {
    margin: 0 0 12px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .14em;
    line-height: 1.3;
    text-transform: uppercase;
    color: var(--pColor);
}
:is(.dm-contact, .dm-contact-visit) :is(.dm-contact-title, .dm-contact-form-title) {
    margin: 0 0 28px;
    font-size: clamp(28px, 3vw, 40px);
    line-height: 1.15;
    color: var(--dm-ink);
    text-wrap: balance;
}
.dm-contact .dm-contact-form-title {
    margin-bottom: 24px;
    font-size: clamp(24px, 2.4vw, 30px);
}

/* details */
.dm-contact-list {
    display: grid;
    gap: 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.dm-contact-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin: 0;
    padding: 0;
}
.dm-contact-icon {
    flex: none;
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--pColor) 12%, transparent);
    color: var(--pColor);
}
.dm-contact-svg {
    display: block;
    width: 22px;
    height: 22px;
}
.dm-contact-item-copy {
    min-width: 0;
    padding-top: 2px;
}
.dm-contact-label {
    display: block;
    margin-bottom: 4px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    line-height: 1.3;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--dm-ink) 58%, transparent);
}
.dm-contact .dm-contact-value {
    display: block;
    font-size: 18px;
    line-height: 1.5;
    color: var(--dm-ink);
    overflow-wrap: anywhere;
}
.dm-contact a.dm-contact-value {
    font-weight: 600;
    text-decoration: none;
    transition: color .2s ease;
}
.dm-contact a.dm-contact-value:hover { color: var(--pColor); }
.dm-contact-address p { margin: 0; }
.dm-contact a.dm-contact-route {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--pColor);
    text-decoration: none;
}
.dm-contact-route .dm-contact-svg {
    width: 16px;
    height: 16px;
    transition: transform .2s ease;
}
.dm-contact-route:hover .dm-contact-svg { transform: translateX(3px); }

/* hours */
.dm-contact-hours {
    padding: clamp(22px, 2.4vw, 30px);
    border-radius: var(--dm-radius);
    background: var(--dm-soft);
}
.dm-contact .dm-contact-subtitle {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 10px;
    font-size: 20px;
    line-height: 1.3;
    color: var(--dm-ink);
}
.dm-contact-subtitle .dm-contact-svg { color: var(--pColor); }
.dm-contact-hours-list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.dm-contact-hours-list li {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin: 0;
    padding: 11px 0;
    border-bottom: 1px dashed color-mix(in srgb, var(--dm-ink) 18%, transparent);
    font-size: 16px;
    line-height: 1.4;
}
.dm-contact-hours-list li:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}
.dm-contact-hours-list li span:first-child { font-weight: 600; }
.dm-contact-hours-list li span:last-child { text-align: right; }
.dm-contact-hours-list li.is-closed span:last-child { color: color-mix(in srgb, var(--dm-ink) 55%, transparent); }
.dm-contact-hours-list li.dm-contact-note {
    display: block;
    font-size: 14px;
    color: color-mix(in srgb, var(--dm-ink) 70%, transparent);
}
.dm-contact-hours-raw > :last-child { margin-bottom: 0; }

/* map */
.dm-contact-visit { background: color-mix(in srgb, var(--pColor) 6%, var(--dm-light)); }
.dm-contact-visit-grid {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    gap: clamp(28px, 4vw, 64px);
    align-items: center;
}
.dm-contact-visit-grid > :only-child { grid-column: 1 / -1; }
.dm-contact-directions > :last-child { margin-bottom: 0; }
.dm-contact-map {
    overflow: hidden;
    border-radius: var(--dm-radius);
    box-shadow: 0 24px 50px -28px color-mix(in srgb, var(--dm-ink) 40%, transparent);
    line-height: 0;
}
.dm-contact-map iframe {
    display: block;
    width: 100%;
    height: clamp(320px, 38vw, 460px);
    border: 0;
}

/* offices */
.dm-contact--offices .dm-contact-title { margin-bottom: clamp(28px, 3vw, 44px); }
.dm-contact-offices {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
    gap: var(--dm-gap);
}
.dm-contact-office {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--dm-ink) 10%, transparent);
    border-radius: var(--dm-radius);
    background: var(--dm-light);
    box-shadow: 0 20px 44px -26px color-mix(in srgb, var(--dm-ink) 36%, transparent);
}
.dm-contact-office .dm-contact-map {
    border-radius: 0;
    box-shadow: none;
}
.dm-contact-office .dm-contact-map iframe { height: 260px; }
.dm-contact-office-body { padding: clamp(22px, 2.4vw, 32px); }
.dm-contact .dm-contact-office-name {
    margin: 0 0 22px;
    font-size: 24px;
    line-height: 1.25;
    color: var(--dm-ink);
}
.dm-contact-office .dm-contact-hours { margin-top: 26px; }
.dm-contact-office .dm-contact-subtitle { font-size: 17px; }

/* form card */
.dm-contact-form,
.dm-form-page > .gform_wrapper {
    position: relative;
    padding: clamp(26px, 3.4vw, 48px);
    border: 1px solid color-mix(in srgb, var(--dm-ink) 10%, transparent);
    border-radius: var(--dm-radius);
    background:
        linear-gradient(90deg, var(--pColor), var(--sColor)) top / 100% 5px no-repeat,
        var(--dm-light);
    box-shadow: 0 24px 50px -24px color-mix(in srgb, var(--dm-ink) 36%, transparent);
}
.dm-form-page > .gform_wrapper {
    max-width: 880px;
    margin: clamp(16px, 3vw, 40px) auto;
}
:is(.dm-contact-form, .dm-ct-form-card) .gform_wrapper {
    max-width: none;
    margin: 0;
}
:is(.dm-contact-grid, .dm-form-page) { isolation: isolate; }
body:not(.dm-fresh) :is(.dm-contact-form, .dm-form-page > .gform_wrapper)::before {
    content: "";
    position: absolute;
    inset: 22px -14px -14px 22px;
    z-index: -1;
    border-radius: var(--dm-radius);
    background: var(--aColor);
    opacity: .6;
    pointer-events: none;
}

/* form fields */
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper { color: var(--dm-ink); }
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 22px 18px;
    margin: 0;
    padding: 0;
    list-style: none;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > .gfield {
    grid-column: 1 / -1;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    float: none;
    clear: none;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > :is(.gf_left_half, .gf_right_half, .gfield--width-half) { grid-column: span 6; }
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > :is(.gf_left_third, .gf_middle_third, .gf_right_third, .gfield--width-third) { grid-column: span 4; }
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > :is(.gf_first_quarter, .gf_second_quarter, .gf_third_quarter, .gf_fourth_quarter, .gfield--width-quarter) { grid-column: span 3; }
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > .gfield--width-two-thirds { grid-column: span 8; }
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > .gfield--width-three-quarter { grid-column: span 9; }

#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gfield_label {
    display: block;
    margin: 0 0 8px;
    padding: 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--dm-ink);
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gfield_required {
    margin-left: 3px;
    color: var(--pColor);
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gfield_required .gfield_required { margin: 0; }

#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="image"], [type="file"], [type="hidden"]), select, textarea) {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    min-height: 54px;
    margin: 0;
    padding: 14px 16px;
    border: 1px solid color-mix(in srgb, var(--dm-ink) 16%, transparent);
    border-radius: calc(var(--dm-radius) * .55);
    background: color-mix(in srgb, var(--pColor) 5%, var(--dm-light));
    box-shadow: none;
    color: var(--dm-ink);
    font: inherit;
    font-size: 16px;
    letter-spacing: normal;
    line-height: 1.4;
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="image"], [type="file"], [type="hidden"]), select, textarea):focus {
    outline: 0;
    border-color: var(--pColor);
    background-color: var(--dm-light);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--pColor) 18%, transparent);
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper ::placeholder {
    color: color-mix(in srgb, var(--dm-ink) 45%, transparent);
    opacity: 1;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .ginput_container_textarea textarea {
    height: 150px;
    resize: vertical;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .ginput_container_select select {
    padding-right: 46px;
    appearance: none;
    cursor: pointer;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.ginput_container_select, .ginput_container_date) { position: relative; }
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.ginput_container_select, .ginput_container_date:where(:has(> input.datepicker:not(.datepicker_with_icon))))::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 16px;
    width: 18px;
    height: 18px;
    margin-top: -9px;
    background: var(--pColor);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
    pointer-events: none;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .ginput_container_date::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
}

/* note */
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > .gfield_html {
    position: relative;
    padding: 16px 18px 16px 50px;
    border-radius: calc(var(--dm-radius) * .55);
    background: color-mix(in srgb, var(--pColor) 8%, transparent);
    font-size: 14px;
    line-height: 1.6;
    color: color-mix(in srgb, var(--dm-ink) 82%, transparent);
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > .gfield_html::before {
    content: "";
    position: absolute;
    top: 17px;
    left: 18px;
    width: 20px;
    height: 20px;
    background: var(--pColor);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* choices */
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gfield_radio, .gfield_checkbox) {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gfield_radio, .gfield_checkbox) > :is(li, .gchoice) {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 12px 18px !important;
    border: 1px solid color-mix(in srgb, var(--dm-ink) 16%, transparent);
    border-radius: calc(var(--dm-radius) * .55);
    background: color-mix(in srgb, var(--pColor) 5%, var(--dm-light));
    overflow: visible;
    transition: border-color .2s ease, background-color .2s ease;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gfield_radio, .gfield_checkbox) > :has(input:checked) {
    border-color: var(--pColor);
    background: color-mix(in srgb, var(--pColor) 12%, var(--dm-light));
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gfield_radio, .gfield_checkbox) input {
    flex: none;
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--pColor);
    cursor: pointer;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gfield_radio, .gfield_checkbox) label {
    display: block;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.3;
    cursor: pointer;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gfield_radio, .gfield_checkbox) label::after {
    content: "";
    position: absolute;
    inset: 0;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gfield_description:not(.validation_message) {
    margin: 10px 0 0;
    padding: 0;
    font-size: 13px;
    line-height: 1.55;
    color: color-mix(in srgb, var(--dm-ink) 66%, transparent);
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gfield_description a {
    font-weight: 600;
    color: var(--pColor);
}

/* errors */
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > .gfield_error {
    border: 0;
    background: none;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > .gfield_error :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="image"], [type="file"], [type="hidden"]), select, textarea) { border-color: oklch(from var(--pColor) .55 .19 27); }
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > .gfield_error .gfield_label,
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .validation_message { color: oklch(from var(--pColor) .5 .19 27); }
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .validation_message {
    margin: 8px 0 0;
    padding: 0;
    border: 0;
    background: none;
    font-size: 13px;
    font-weight: 600;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(div.validation_error, .gform_validation_errors) {
    margin: 0 0 24px;
    padding: 14px 18px;
    border: 0;
    border-radius: calc(var(--dm-radius) * .55);
    background: color-mix(in srgb, oklch(from var(--pColor) .55 .19 27) 10%, transparent);
    box-shadow: none;
    color: oklch(from var(--pColor) .5 .19 27);
    font-size: 14px;
    font-weight: 600;
    text-align: left;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_validation_errors > * {
    margin: 0;
    color: inherit;
    font-size: inherit;
}

/* submit */
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gform_footer, .gform_page_footer) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 28px 0 0;
    border: 0;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gform_footer, .gform_page_footer) :is(input[type="submit"], input[type="button"], button) {
    width: 100%;
    min-height: 56px;
    margin: 0;
    padding: 16px 32px;
    border: 2px solid var(--pColor);
    border-radius: calc(var(--dm-radius) * 3);
    background: var(--pColor) !important;
    box-shadow: 0 14px 28px -14px color-mix(in srgb, var(--pColor) 80%, transparent);
    color: var(--dm-light) !important;
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1.2;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
#blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gform_footer, .gform_page_footer) :is(input[type="submit"], input[type="button"], button):hover {
    border-color: var(--sColor);
    background: var(--sColor) !important;
    transform: translateY(-2px);
}
#blog .dm-form-page .gform_wrapper :is(.gform_footer, .gform_page_footer) :is(input[type="submit"], input[type="button"], button) {
    width: auto;
    min-width: 240px;
}

/* soft */
.dm-layout-soft .dm-contact-kicker {
    display: inline-block;
    padding: 7px 14px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--pColor) 12%, transparent);
    font-size: 12px;
    letter-spacing: .08em;
}
.dm-layout-soft :is(.dm-contact, .dm-contact-visit) :is(.dm-contact-title, .dm-contact-form-title, .dm-contact-office-name) {
    font-weight: 700;
    letter-spacing: -.01em;
}
.dm-layout-soft .dm-contact-icon {
    border-radius: 16px;
    background: linear-gradient(135deg, var(--pColor), color-mix(in srgb, var(--pColor) 55%, var(--sColor)));
    box-shadow: 0 12px 22px -12px color-mix(in srgb, var(--pColor) 80%, transparent);
    color: var(--dm-light);
}
.dm-layout-soft .dm-contact-hours { border-radius: calc(var(--dm-radius) * 1.2); }
.dm-layout-soft .dm-contact-hours-list li { border-bottom: 1px solid color-mix(in srgb, var(--dm-ink) 9%, transparent); }
.dm-layout-soft .dm-contact-hours-list li:last-child { border-bottom: 0; }
.dm-layout-soft :is(.dm-contact-form, .dm-form-page > .gform_wrapper) {
    border: 0;
    border-radius: calc(var(--dm-radius) * 1.5);
    background:
        radial-gradient(60% 40% at 100% 0%, color-mix(in srgb, var(--pColor) 12%, transparent), transparent 70%),
        radial-gradient(50% 30% at 0% 100%, color-mix(in srgb, var(--aColor) 14%, transparent), transparent 70%),
        var(--dm-light);
    box-shadow:
        0 2px 6px color-mix(in srgb, var(--dm-ink) 6%, transparent),
        0 34px 70px -30px color-mix(in srgb, var(--dm-ink) 38%, transparent);
}
#blog.dm-layout-soft :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="image"], [type="file"], [type="hidden"]), select, textarea) {
    border-color: transparent;
    border-radius: 14px;
    background-color: color-mix(in srgb, var(--pColor) 8%, var(--dm-light));
}
#blog.dm-layout-soft :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="image"], [type="file"], [type="hidden"]), select, textarea):focus {
    border-color: var(--pColor);
    background-color: var(--dm-light);
}
#blog.dm-layout-soft :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gfield_radio, .gfield_checkbox) > :is(li, .gchoice) {
    border-color: transparent;
    border-radius: 999px;
    background: color-mix(in srgb, var(--pColor) 8%, var(--dm-light));
}
#blog.dm-layout-soft :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gfield_radio, .gfield_checkbox) > :has(input:checked) {
    border-color: var(--pColor);
    background: color-mix(in srgb, var(--pColor) 14%, var(--dm-light));
}
#blog.dm-layout-soft :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > .gfield_html {
    border-radius: 16px;
    background: var(--dm-soft);
}
#blog.dm-layout-soft :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gform_footer, .gform_page_footer) :is(input[type="submit"], input[type="button"], button) {
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}
.dm-layout-soft .dm-contact-visit {
    width: 92%;
    margin: 0 auto clamp(32px, 4vw, 56px);
    padding-inline: clamp(16px, 4vw, 48px);
    border-radius: calc(var(--dm-radius) * 1.5);
    background:
        radial-gradient(46% 70% at 100% 0%, color-mix(in srgb, var(--pColor) 20%, transparent), transparent 72%),
        var(--dm-soft);
}
.dm-layout-soft .dm-contact-visit .dm-contact-kicker { background: var(--dm-light); }
.dm-layout-soft .dm-contact-visit .dm-contact-map {
    border: 8px solid var(--dm-light);
    border-radius: calc(var(--dm-radius) * 1.2);
}
.dm-layout-soft .dm-contact-office {
    border: 0;
    border-radius: calc(var(--dm-radius) * 1.5);
    background: var(--dm-soft);
    box-shadow: none;
}
.dm-layout-soft .dm-contact-office .dm-contact-map {
    margin: 10px 10px 0;
    border-radius: var(--dm-radius);
}
.dm-layout-soft .dm-contact-office .dm-contact-hours { background: var(--dm-light); }

/* editorial */
.dm-layout-editorial .dm-contact-kicker {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 12px;
    letter-spacing: .18em;
    color: var(--dm-ink);
}
.dm-layout-editorial .dm-contact-kicker::before {
    content: "";
    flex: none;
    width: 40px;
    height: 2px;
    background: var(--pColor);
}
.dm-layout-editorial :is(.dm-contact, .dm-contact-visit) :is(.dm-contact-title, .dm-contact-form-title, .dm-contact-office-name, .dm-contact-subtitle) {
    font-weight: 400;
    letter-spacing: -.015em;
}
.dm-layout-editorial :is(.dm-contact, .dm-contact-visit) .dm-contact-title { font-size: clamp(32px, 3.4vw, 46px); }
.dm-layout-editorial .dm-contact-list {
    gap: 0;
    border-top: 1px solid var(--dm-ink);
}
.dm-layout-editorial .dm-contact-item {
    align-items: center;
    padding: 20px 0;
    border-bottom: 1px solid color-mix(in srgb, var(--dm-ink) 12%, transparent);
}
.dm-layout-editorial .dm-contact-icon {
    width: 46px;
    height: 46px;
    border: 1px solid color-mix(in srgb, var(--dm-ink) 14%, transparent);
    background: none;
    color: var(--dm-ink);
}
.dm-layout-editorial .dm-contact-label {
    font-size: 11px;
    letter-spacing: .18em;
}
.dm-layout-editorial .dm-contact .dm-contact-value { font-size: 20px; }
.dm-layout-editorial .dm-contact a.dm-contact-value {
    font-weight: 400;
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, var(--dm-ink) 25%, transparent);
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
}
.dm-layout-editorial .dm-contact a.dm-contact-value:hover { text-decoration-color: var(--pColor); }
.dm-layout-editorial .dm-contact a.dm-contact-route {
    font-size: 12px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--dm-ink);
}
.dm-layout-editorial .dm-contact-hours {
    padding: 22px 0 0;
    border-top: 2px solid var(--dm-ink);
    background: none;
}
.dm-layout-editorial .dm-contact .dm-contact-subtitle { font-size: 22px; }
.dm-layout-editorial .dm-contact-subtitle .dm-contact-svg { display: none; }
.dm-layout-editorial .dm-contact-hours-list li { border-bottom: 1px solid color-mix(in srgb, var(--dm-ink) 12%, transparent); }
.dm-layout-editorial .dm-contact-hours-list li:last-child { border-bottom: 0; }
.dm-layout-editorial .dm-contact-hours-list li span:first-child {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.dm-layout-editorial :is(.dm-contact-form, .dm-form-page > .gform_wrapper) {
    margin: 0 22px 22px 0;
    border: 1px solid var(--dm-ink);
    background: var(--dm-light);
    box-shadow: 22px 22px 0 -1px var(--dm-light), 22px 22px 0 0 color-mix(in srgb, var(--pColor) 70%, var(--dm-light));
}
#blog.dm-layout-editorial .dm-form-page > .gform_wrapper { margin: clamp(16px, 3vw, 40px) auto clamp(38px, 5vw, 62px); }
.dm-layout-editorial :is(.dm-contact-form, .dm-form-page > .gform_wrapper)::before {
    content: "";
    position: absolute;
    top: -1px;
    left: clamp(26px, 3.4vw, 48px);
    width: 48px;
    height: 3px;
    background: var(--pColor);
}
#blog.dm-layout-editorial :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gfield_label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--dm-ink) 72%, transparent);
}
#blog.dm-layout-editorial :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="image"], [type="file"], [type="hidden"]), select) {
    min-height: 48px;
    padding: 10px 0;
    border-width: 0 0 1px;
    border-color: color-mix(in srgb, var(--dm-ink) 30%, transparent);
    background: transparent;
}
#blog.dm-layout-editorial :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .ginput_container_select select { padding-right: 30px; }
#blog.dm-layout-editorial :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.ginput_container_select, .ginput_container_date)::after {
    right: 2px;
    background: var(--dm-ink);
}
#blog.dm-layout-editorial :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper textarea {
    border-color: color-mix(in srgb, var(--dm-ink) 30%, transparent);
    background: transparent;
}
#blog.dm-layout-editorial :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="image"], [type="file"], [type="hidden"]), select, textarea):focus {
    border-color: var(--dm-ink);
    background: transparent;
    box-shadow: 0 1px 0 0 var(--dm-ink);
}
#blog.dm-layout-editorial :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gfield_radio, .gfield_checkbox) > :is(li, .gchoice) {
    border-color: color-mix(in srgb, var(--dm-ink) 22%, transparent);
    background: transparent;
}
#blog.dm-layout-editorial :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gfield_radio, .gfield_checkbox) > :has(input:checked) {
    border-color: var(--dm-ink);
    background: color-mix(in srgb, var(--dm-ink) 5%, transparent);
}
#blog.dm-layout-editorial :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gfield_radio, .gfield_checkbox) input { accent-color: var(--dm-ink); }
#blog.dm-layout-editorial :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > .gfield_html {
    padding: 2px 0 2px 20px;
    border-left: 2px solid var(--pColor);
    background: none;
    font-size: 15px;
    font-style: italic;
}
#blog.dm-layout-editorial :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > .gfield_html::before { display: none; }
#blog.dm-layout-editorial :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gform_footer, .gform_page_footer) :is(input[type="submit"], input[type="button"], button) {
    border-color: var(--dm-ink);
    background: var(--dm-ink) !important;
    box-shadow: none;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .16em;
}
#blog.dm-layout-editorial :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper :is(.gform_footer, .gform_page_footer) :is(input[type="submit"], input[type="button"], button):hover {
    border-color: var(--pColor);
    background: var(--pColor) !important;
    transform: none;
}
.dm-layout-editorial .dm-contact-visit { background: var(--dm-ink); }
.dm-layout-editorial .dm-contact-visit-grid { --dm-ink: var(--dm-light); }
.dm-layout-editorial .dm-contact-visit .dm-contact-kicker::before { background: currentColor; }
.dm-layout-editorial .dm-contact-directions :is(p, li) { color: color-mix(in srgb, var(--dm-ink) 82%, transparent); }
.dm-layout-editorial .dm-contact-directions a { color: var(--dm-ink); }
.dm-layout-editorial .dm-contact-map {
    border-radius: 0;
    box-shadow: none;
}
.dm-layout-editorial .dm-contact-map iframe {
    filter: grayscale(1) contrast(1.05);
    transition: filter .4s ease;
}
.dm-layout-editorial .dm-contact-map:hover iframe { filter: none; }
.dm-layout-editorial .dm-contact-office {
    overflow: visible;
    border: 0;
    border-top: 2px solid var(--dm-ink);
    background: none;
    box-shadow: none;
}
.dm-layout-editorial .dm-contact-office .dm-contact-map { margin-top: 22px; }
.dm-layout-editorial .dm-contact-office-body { padding: 26px 0 0; }

@media screen and (max-width: 991px) {
    .dm-contact-grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto;
        grid-template-areas: "info" "form" "hours";
        row-gap: 40px;
    }
    .dm-contact-grid:not(:has(> .dm-contact-form)) { grid-template-areas: "info" "hours"; }
    .dm-contact-grid > .dm-contact-hours { margin-top: 0; }
    .dm-contact-visit-grid { grid-template-columns: minmax(0, 1fr); }
}
@media screen and (max-width: 640px) {
    #blog :is(.dm-contact-form, .dm-form-page, .dm-ct-form-card) .gform_wrapper .gform_fields > .gfield { grid-column: 1 / -1; }
    .dm-contact-form,
    .dm-form-page > .gform_wrapper { padding: 26px 20px; }
    #blog .dm-form-page .gform_wrapper :is(.gform_footer, .gform_page_footer) :is(input[type="submit"], input[type="button"], button) { width: 100%; }
    body:not(.dm-fresh) :is(.dm-contact-form, .dm-form-page > .gform_wrapper)::before { display: none; }
    .dm-layout-soft .dm-contact-visit { width: calc(100% - 24px); }
    .dm-layout-editorial :is(.dm-contact-form, .dm-form-page > .gform_wrapper) {
        margin-right: 12px;
        box-shadow: 12px 12px 0 -1px var(--dm-light), 12px 12px 0 0 color-mix(in srgb, var(--pColor) 70%, var(--dm-light));
    }
}
