/* Contact-only map, relocated FAQ and existing patient-resource layout. */
.page-contact .contact-introduction { padding-bottom: clamp(3rem, 5vw, 5rem); }
.page-contact .contact-introduction h1 { max-width: 1100px; }
.page-contact .contact-introduction .booking-status { max-width: 720px; margin-top: 2.5rem; }
.page-contact .office-location { background: #141516; padding-top: clamp(4rem, 7vw, 6rem); }
.office-location-heading { display: flex; justify-content: space-between; align-items: end; gap: 3rem; margin-bottom: 2.5rem; }
.office-location-heading .eyebrow { color: #B09B87; }
.office-location-heading > p { max-width: 30rem; color: #C8CBC6; }
.office-map-tile { border: 1px solid #4D4B40; border-radius: 2px; overflow: hidden; background: #202323; }
.office-map-tile iframe { display: block; width: 100%; height: 450px; border: 0; }
.office-map-note { color: #A7ADA5; font-size: .7rem; margin-top: 1rem; max-width: none; }
.office-information { display: grid; grid-template-columns: 1.25fr 1fr auto; gap: 2rem; align-items: start; padding-top: 2.5rem; }
.office-information h3 { font-size: 1.8rem; margin-bottom: .8rem; }
.office-information address { font-style: normal; font-size: .9rem; color: #C8CBC6; }
.office-information a { overflow-wrap: anywhere; }
.office-information .button { white-space: nowrap; }
.office-practical-details { display: grid; gap: 1.5rem; }
.office-practical-details .eyebrow { margin-bottom: .4rem; color: #B09B87; }
.office-practical-details p, .office-practical-details a { font-size: .8rem; }
.office-map-unavailable { min-height: 240px; display: grid; align-items: center; border: 1px solid #4D4B40; padding: 2rem; color: #C8CBC6; }
.office-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.page-contact .faq { background: #1B1E1F; }
.page-contact .faq h2 { font-size: clamp(2.4rem, 3.5vw, 3.7rem); overflow-wrap: anywhere; }
.faq-introduction { margin-top: 1.5rem; color: #C8CBC6; font-size: .9rem; }
.page-contact .faq summary { align-items: start; min-height: 72px; }
.page-contact .faq summary > span { width: 18px; height: 18px; margin-top: .2rem; position: relative; transform: none; }
.page-contact .faq details[open] summary > span { transform: none; }
.page-contact .faq summary > span::before, .page-contact .faq summary > span::after { content: ''; position: absolute; background: #B09B87; inset: 8px 2px auto; height: 1px; }
.page-contact .faq summary > span::after { transform: rotate(90deg); transition: transform .22s; }
.page-contact .faq details[open] summary > span::after { transform: rotate(0deg); }
.page-contact .faq .faq-answer { overflow: hidden; }
.page-contact .faq details p { color: #C8CBC6; }
@media (max-width: 1000px) {
    .office-information { grid-template-columns: 1fr 1fr; }
    .office-information > .button { justify-self: start; }
}
@media (max-width: 760px) {
    .office-location-heading { display: block; }
    .office-location-heading > p { margin-top: 1.5rem; }
    .office-map-tile iframe { height: 325px; }
    .office-information { grid-template-columns: 1fr; gap: 1.75rem; }
    .office-information .button { max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .page-contact .faq summary > span::after { transition: none; } }
