/* Contact page: info cards, message form, hours panel and map. */
.zn-info { position: relative; height: 100%; padding: 50px 30px 44px; text-align: center; background: var(--surface); transition: all 0.4s; overflow: hidden; }
.zn-info::after { content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 3px; background: var(--primary); transform: scaleX(0); transition: transform 0.4s; }
.zn-info:hover { background: var(--white); box-shadow: 0 10px 60px rgba(0, 0, 0, 0.07); }
.zn-info:hover::after { transform: scaleX(1); }
.zn-info__icon { width: 80px; height: 80px; margin: 0 auto 24px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--secondary); color: var(--white); font-size: 34px; transition: all 0.4s; }
.zn-info:hover .zn-info__icon { background: var(--primary); }
.zn-info h2 { margin-bottom: 10px; font-size: 22px; }
.zn-info p { margin: 0; font-size: 16px; line-height: 28px; }
.zn-info a { color: var(--text); }
.zn-info a:hover { color: var(--primary); }

.zn-form .form-control {
    height: 56px;
    padding: 0 21px;
    border: 1px solid transparent;
    border-radius: 0;
    background: var(--surface);
    color: var(--secondary);
    font-family: var(--font);
    font-size: 16px;
    font-weight: 500;
}
.zn-form textarea.form-control { height: auto; min-height: 180px; padding-top: 17px; }
.zn-form .form-control:focus { border-color: var(--primary); box-shadow: none; background: var(--white); }
.zn-form .form-control::placeholder { color: var(--text); }
.zn-form .form-control.is-invalid { border-color: var(--primary); background-image: none; }
.zn-form .invalid-feedback { font-weight: 500; color: var(--primary-dark); }

/* Hours: solid brand blue, days and times in two clean columns. */
.zn-hours { height: 100%; padding: 52px 44px; border-radius: 6px; background: var(--secondary); color: rgba(255, 255, 255, 0.75); }
.zn-hours__eyebrow { display: block; margin-bottom: 10px; color: var(--primary); font-size: 14px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.zn-hours h2 { margin-bottom: 30px; color: var(--white); font-size: 32px; }
.zn-hours__list { margin: 0; }
.zn-hours__list div { display: flex; justify-content: space-between; gap: 16px; padding: 17px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.zn-hours__list div:first-child { border-top: 1px solid rgba(255, 255, 255, 0.14); }
.zn-hours__list dt { color: rgba(255, 255, 255, 0.75); font-weight: 500; }
.zn-hours__list dd { margin: 0; color: var(--white); font-weight: 600; text-align: right; }
.zn-hours__list .is-closed dd { color: rgba(255, 255, 255, 0.5); font-weight: 500; }
.zn-hours__note { margin-top: 32px; padding-left: 18px; border-left: 3px solid var(--primary); }
.zn-hours__note p { margin: 0 0 4px; font-size: 15px; }
.zn-hours__note a { color: var(--white); font-size: 22px; font-weight: 600; }
.zn-hours__note a:hover { color: var(--primary); }

.zn-map { line-height: 0; }
.zn-map iframe { display: block; width: 100%; height: 460px; border: 0; filter: grayscale(0.2); }

/* Honeypot: off screen for people and screen readers, still in the DOM for bots. */
.zn-form__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
