/* Contact page: a clear route from calling and visiting to leaving a message. */
.contact-layout-page > .container { max-width: 1180px; }
.contact-redesign { max-width: 1180px; padding-bottom: 94px; }
.contact-redesign .contact-intro { display: grid; grid-template-columns: 1.2fr 1fr; align-items: end; gap: 60px; margin: 45px 0 42px; }
.contact-redesign .contact-intro .eyebrow { margin-bottom: 19px; }
.contact-redesign h1 { font-size: clamp(48px, 4.7vw, 66px); line-height: 1.06; letter-spacing: -1.9px; margin: 0; color: var(--deep); }
.contact-redesign h1 em, .contact-redesign h2 em { color: #8a5b98; font-weight: 400; }
.contact-redesign .contact-intro-copy { padding-bottom: 4px; max-width: 410px; }
.contact-redesign .contact-intro-copy p { font-size: 17px; line-height: 1.8; color: #706078; margin: 0 0 17px; }
.contact-redesign .text-link { font-size: 14px; line-height: 1.6; min-height: 40px; }
.contact-redesign .contact-overview { display: grid; grid-template-columns: 1fr 1.07fr 1.03fr; gap: 19px; }
.contact-redesign .contact-info-panel { position: relative; min-width: 0; background: var(--paper); border: 1px solid #e4d9e6; border-radius: 12px; padding: 27px 27px 25px; }
.contact-redesign .contact-panel-icon { display: flex; width: 43px; height: 43px; align-items: center; justify-content: center; border: 1px solid #e4d6e9; border-radius: 50%; color: var(--purple); background: #f5eef6; margin-bottom: 24px; }
.contact-redesign .contact-panel-icon .icon { width: 21px; height: 21px; }
.contact-redesign .contact-info-panel .eyebrow { font-size: 10px; letter-spacing: 1.5px; line-height: 1.6; margin: 0 0 8px; }
.contact-redesign .contact-info-panel h2 { font-size: 30px; line-height: 1.15; letter-spacing: -.6px; color: var(--deep); margin: 0 0 20px; }
.contact-redesign .contact-call-panel { color: #fff8ff; background: radial-gradient(ellipse at 100% 0, #643173 0, transparent 72%), #3b1648; border-color: #3b1648; }
.contact-redesign .contact-call-panel .contact-panel-icon { color: #f2dff5; border-color: #ffffff40; background: #ffffff0b; }
.contact-redesign .contact-call-panel .eyebrow { color: #dbc3e4; }
.contact-redesign .contact-call-panel h2 { color: #fff8ff; }
.contact-redesign .contact-call-links { margin: 0 0 18px; }
.contact-redesign .contact-call-links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: clamp(18px, 1.8vw, 23px); font-weight: 500; line-height: 1.55; padding: 10px 0; border-bottom: 1px solid #ffffff2e; color: #fff; white-space: nowrap; }
.contact-redesign .contact-call-links a:first-child { padding-top: 0; }
.contact-redesign .contact-call-links a:hover { color: #e4c3ed; }
.contact-redesign .contact-call-links a .icon { width: 18px; height: 18px; flex-shrink: 0; }
.contact-redesign .contact-call-panel p { font-size: 14px; line-height: 1.8; color: #dcc7e1; margin: 0; }
.contact-redesign .contact-call-panel .text-link { color: #fff; margin-top: 12px; }
.contact-redesign .contact-address-panel address { font-style: normal; font-size: 16px; line-height: 1.85; color: #65546e; margin: 0 0 18px; }
.contact-redesign .contact-address-panel .text-link { color: var(--purple); }
.contact-redesign .contact-hours-list { margin: 0; }
.contact-redesign .contact-hours-list > div { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding: 5px 0; border-bottom: 1px solid #eee6ef; font-size: 13px; line-height: 1.6; }
.contact-redesign .contact-hours-list > div:last-child { border: 0; padding-bottom: 0; }
.contact-redesign .contact-hours-list dt { color: #75667c; }
.contact-redesign .contact-hours-list dd { margin: 0; font-variant-numeric: tabular-nums; color: #46354f; font-weight: 500; white-space: nowrap; }
.contact-redesign .contact-hours-list .is-closed dd { color: #8b7893; font-weight: 400; }
.contact-redesign .contact-hours-panel > p { font-size: 15px; color: #65546e; line-height: 1.85; }
.contact-redesign .contact-map-card { scroll-margin-top: 145px; margin-top: 42px; border: 1px solid #e3d7e5; border-radius: 12px; background: var(--paper); overflow: hidden; }
.contact-redesign .contact-map-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 27px 32px; }
.contact-redesign .contact-map-heading .eyebrow { margin: 0 0 7px; font-size: 10px; letter-spacing: 1.7px; }
.contact-redesign .contact-map-heading h2 { font-size: 37px; letter-spacing: -.8px; line-height: 1.15; margin: 0; }
.contact-redesign .contact-map-heading .button { font-size: 14px; padding: 13px 20px; gap: 20px; min-height: 48px; background: transparent; white-space: nowrap; }
.contact-redesign .contact-map-heading .button:hover { background: var(--purple); }
.contact-redesign .contact-map-frame { height: 410px; background: #eee6f0; border-block: 1px solid #e5dbe8; }
.contact-redesign .contact-map-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.contact-redesign .contact-map-caption { display: flex; align-items: center; gap: 10px; margin: 0; padding: 15px 32px; color: #77677f; font-size: 13px; line-height: 1.7; }
.contact-redesign .contact-map-caption .icon { width: 17px; height: 17px; color: #896193; flex-shrink: 0; }
.contact-redesign .contact-message-section { display: grid; grid-template-columns: .7fr 1.3fr; align-items: start; gap: 60px; margin-top: 74px; scroll-margin-top: 145px; }
.contact-redesign .contact-message-copy { padding: 27px 0 0; }
.contact-redesign .contact-message-copy .eyebrow { margin-bottom: 15px; }
.contact-redesign .contact-message-copy h2 { font-size: 53px; letter-spacing: -1.4px; line-height: 1.1; margin: 0 0 21px; }
.contact-redesign .contact-message-copy > p { color: #716078; font-size: 16px; line-height: 1.9; margin-bottom: 27px; }
.contact-redesign .contact-message-note { display: flex; gap: 14px; border-top: 1px solid #e1d5e5; padding-top: 24px; max-width: 290px; }
.contact-redesign .contact-message-note > .icon { width: 24px; height: 24px; color: #93649f; flex-shrink: 0; margin-top: 3px; }
.contact-redesign .contact-message-note p { font-size: 14px; color: #7a6882; line-height: 1.8; margin: 0; }
.contact-redesign .contact-message-copy > .text-link { margin-top: 20px; }
.contact-redesign .contact-message-card { position: relative; min-width: 0; padding: 32px; background: #f1eaf3; border: 1px solid #e5d8e9; border-radius: 12px; }
.contact-redesign .contact-required-note { font-size: 12px; color: #7b6683; margin: 0 0 22px; }
.contact-redesign .form-row { grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-redesign .field { margin-bottom: 21px; }
.contact-redesign .field > label { font-size: 13px; line-height: 1.6; color: #4f3a59; font-weight: 600; margin-bottom: 8px; }
.contact-redesign .field label > span { font-size: 11px; display: inline-block; color: #7a6385; font-weight: 400; margin-left: 4px; }
.contact-redesign .field input, .contact-redesign .field select, .contact-redesign .field textarea { background-color: var(--paper); border-color: #d9ccdf; border-radius: 5px; font-size: 16px; line-height: 1.5; min-height: 51px; padding: 12px 13px; }
.contact-redesign .field select { padding-right: 33px; }
.contact-redesign .field textarea { min-height: 150px; }
.contact-redesign .field input::placeholder, .contact-redesign .field textarea::placeholder { color: #8a7a91; }
.contact-redesign .field input:focus, .contact-redesign .field select:focus, .contact-redesign .field textarea:focus { border-color: #8d5aa0; box-shadow: 0 0 0 3px #773f8d13; }
.contact-redesign .consent { font-size: 12px; line-height: 1.85; color: #74607e; gap: 10px; margin: 0 0 23px; }
.contact-redesign .consent input { width: 18px; height: 18px; margin-top: 3px; }
.contact-redesign .button-full { width: 100%; min-height: 53px; font-size: 15px; justify-content: space-between; border-radius: 5px; }
.contact-redesign .form-result { font-size: 14px; }
.contact-redesign .form-footnote { margin: 0 0 22px; font-size: 12px; }
@media (max-width: 1100px) {
 .contact-redesign .contact-intro { gap: 35px; }
 .contact-redesign .contact-overview { gap: 14px; }
 .contact-redesign .contact-info-panel { padding: 24px 21px; }
 .contact-redesign .contact-info-panel h2 { font-size: 27px; }
 .contact-redesign .contact-hours-list > div { gap: 10px; font-size: 12px; }
 .contact-redesign .contact-message-section { grid-template-columns: .65fr 1.35fr; gap: 38px; }
 .contact-redesign .contact-message-card { padding: 28px; }
}
@media (max-width: 900px) {
 .contact-redesign .contact-intro { grid-template-columns: 1fr; gap: 22px; margin-top: 32px; }
 .contact-redesign .contact-intro-copy { max-width: 630px; }
 .contact-redesign .contact-intro-copy p br { display: none; }
 .contact-redesign .contact-overview { grid-template-columns: 1fr 1fr; gap: 18px; }
 .contact-redesign .contact-info-panel { padding: 26px; }
 .contact-redesign .contact-call-links a { font-size: 23px; }
 .contact-redesign .contact-hours-panel { grid-column: 1 / -1; }
 .contact-redesign .contact-hours-panel .contact-panel-icon { position: absolute; top: 26px; right: 26px; margin: 0; }
 .contact-redesign .contact-hours-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; }
 .contact-redesign .contact-hours-list > div { font-size: 14px; gap: 18px; padding-block: 7px; }
 .contact-redesign .contact-map-frame { height: 375px; }
 .contact-redesign .contact-message-section { grid-template-columns: 1fr; gap: 27px; margin-top: 53px; }
 .contact-redesign .contact-message-copy { padding: 0; }
 .contact-redesign .contact-message-copy h2 { font-size: 47px; }
 .contact-redesign .contact-message-copy > p { margin-bottom: 16px; max-width: 560px; }
 .contact-redesign .contact-message-copy > p br { display: none; }
 .contact-redesign .contact-message-note { padding-top: 16px; max-width: none; }
 .contact-redesign .contact-message-note p { padding-top: 2px; }
}
@media (max-width: 600px) {
 .contact-redesign { padding-bottom: 60px; }
 .contact-redesign .contact-intro { margin: 27px 0 30px; gap: 20px; }
 .contact-redesign .contact-intro .eyebrow { font-size: 11px; margin-bottom: 17px; }
 .contact-redesign h1 { font-size: clamp(39px, 9.7vw, 54px); letter-spacing: -1.3px; }
 .contact-redesign .contact-intro-copy p { font-size: 16px; margin-bottom: 11px; }
 .contact-redesign .contact-overview { grid-template-columns: 1fr; gap: 16px; }
 .contact-redesign .contact-info-panel { padding: 25px; }
 .contact-redesign .contact-panel-icon { margin-bottom: 20px; }
 .contact-redesign .contact-info-panel h2 { font-size: 30px; }
 .contact-redesign .contact-call-links a { font-size: 24px; }
 .contact-redesign .contact-call-panel p { max-width: 360px; }
 .contact-redesign .contact-hours-panel .contact-panel-icon { top: 25px; right: 25px; }
 .contact-redesign .contact-hours-list { display: block; }
 .contact-redesign .contact-hours-list > div { padding-block: 7px; }
 .contact-redesign .contact-hours-panel .eyebrow { max-width: calc(100% - 50px); font-size: 9px; }
 .contact-redesign .contact-hours-panel h2 { padding-right: 40px; font-size: 28px; }
 .contact-redesign .contact-map-card { margin-top: 30px; }
 .contact-redesign .contact-map-heading { padding: 23px; flex-wrap: wrap; gap: 17px; }
 .contact-redesign .contact-map-heading h2 { font-size: 34px; }
 .contact-redesign .contact-map-heading .button { min-height: 46px; padding: 11px 16px; font-size: 13px; }
 .contact-redesign .contact-map-frame { height: 340px; }
 .contact-redesign .contact-map-caption { padding: 15px 21px; align-items: flex-start; font-size: 12px; gap: 9px; }
 .contact-redesign .contact-map-caption .icon { margin-top: 3px; }
 .contact-redesign .contact-message-section { margin-top: 43px; gap: 24px; scroll-margin-top: 125px; }
 .contact-redesign .contact-message-copy h2 { font-size: 44px; margin-bottom: 17px; }
 .contact-redesign .contact-message-card { padding: 24px 20px; }
 .contact-redesign .form-row { grid-template-columns: 1fr; gap: 0; }
 .contact-redesign .field { margin-bottom: 20px; }
 .contact-redesign .field > label { font-size: 14px; }
 .contact-redesign .field input, .contact-redesign .field select, .contact-redesign .field textarea { font-size: 16px; }
 .contact-redesign .consent { font-size: 12px; }
}

/* Third-party map loads only after a deliberate visitor action. */
.contact-redesign .map-private {height:auto;min-height:410px;background:radial-gradient(ellipse at top right,#e4d6ec,transparent 65%),#f4eef6;display:grid;align-items:center}
.contact-redesign .map-permission {max-width:730px;text-align:center;margin:auto;padding:36px 28px;display:flex;align-items:center;flex-direction:column;gap:15px}
.contact-redesign .map-permission h3 {font-size:32px;margin:0}
.contact-redesign .map-permission p {font-size:15px;line-height:1.7;margin:0;color:#65546e}
.contact-redesign .map-permission-links {display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-size:13px;text-decoration:underline}
.contact-redesign .map-privacy-controls {display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 28px;border-top:1px solid #e5d9ea}
.contact-redesign .map-privacy-controls p {margin:0;font-size:13px;line-height:1.6;max-width:780px}
.contact-redesign .map-privacy-controls button {border:1px solid #5d037e;border-radius:4px;background:transparent;color:#5d037e;padding:10px 16px;font:inherit;font-size:14px;white-space:nowrap;cursor:pointer}
.contact-redesign .map-permission[hidden],.contact-redesign .map-privacy-controls[hidden],.contact-redesign .map-embed-target[hidden] {display:none}
.contact-redesign .map-embed-target iframe {display:block;width:100%;height:410px;border:0}
@media(max-width:600px){.contact-redesign .map-permission{padding:28px 20px}.contact-redesign .map-permission h3{font-size:28px}.contact-redesign .map-privacy-controls{flex-direction:column;align-items:flex-start;padding:18px}.contact-redesign .map-embed-target iframe{height:340px}.contact-redesign .map-private{min-height:340px}}
