/* Contact page only. Shared type, page gutters, form fields and brand colors stay authoritative. */
.inner-page > .contact.contact-intro {
  grid-template-columns: minmax(0,1fr) minmax(0,520px);
  gap: clamp(40px,7vw,100px); align-items: start;
  margin-top: 28px; padding-block: 56px;
}
.contact-intro .contact-copy > p { max-width: 43ch; margin-top: 22px; }
.contact-intro .contact-channels { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin-top: 28px; }
.contact-intro .contact-channels .contact-number { display: inline-flex; font-size: clamp(2rem,1.8rem + .8vw,2.5rem); margin: 0 0 4px; }
.contact-intro .contact-whatsapp { margin: 0; gap: 10px; }
.contact-intro .contact-email { display: inline-flex; align-items: center; min-height: 44px; margin: 0; overflow-wrap: anywhere; }
.contact-intro .contact-email:hover { text-decoration: underline; text-underline-offset: .25em; }
.contact-form-anchor { width: 100%; max-width: 520px; min-width: 0; justify-self: end; scroll-margin-top: calc(116px + var(--dv-toolbar-height,0px)); }
.contact-form-anchor:focus-visible { outline: 3px solid var(--green); outline-offset: 6px; border-radius: 10px; }
.contact-intro .contact-form-anchor > .contact-form { max-width: none; }
.contact-visit { padding-block: 56px 72px; }
.contact-visit .location-heading { margin-bottom: 36px; }
#location-title { scroll-margin-top: calc(116px + var(--dv-toolbar-height,0px)); }
.contact-visit-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); gap: clamp(32px,4.5vw,64px); align-items: stretch; }
.contact-visit-info { min-width: 0; }
.contact-address { font-style: normal; font-size: var(--type-body); line-height: var(--leading-body); color: var(--ink); }
.contact-visit .contact-directions { margin-top: 10px; gap: 24px; }
.contact-directions svg { width: 20px; height: 20px; }
.contact-visit-hours { margin-top: 28px; }
.contact-visit .hours-strip { max-width: none; margin: 0; }
.contact-visit .hours-head { flex-direction: column; align-items: flex-start; gap: 8px; margin-bottom: 14px; }
.contact-visit .hours-head #hours-title { font-size: var(--type-small-heading); line-height: 1.3; }
.contact-visit .hours-status { font-size: var(--type-caption); line-height: 1.5; }
.contact-visit .hours-list li { gap: 12px; padding: 10px 0; }
.contact-visit .hours-range, .contact-visit .hours-time { font-size: var(--type-ui); line-height: 1.7; }
.contact-visit .hours-time { text-align: right; }
.contact-visit .location-map { position: relative; min-width: 0; min-height: 420px; border-radius: 8px; }
.contact-visit .location-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media(max-width:900px) {
  .inner-page > .contact.contact-intro { grid-template-columns: minmax(0,1fr); gap: 32px; padding-block: 44px; }
  .contact-form-anchor { max-width: none; justify-self: stretch; }
  .contact-visit-grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .contact-visit-info { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 32px; }
  .contact-visit-hours { margin-top: 0; }
  .contact-visit .location-map { min-height: 360px; }
}
@media(max-width:600px) {
  .inner-page > .contact.contact-intro { margin-top: 23px; padding-block: 36px; gap: 28px; }
  .contact-intro .contact-copy > p { margin-top: 18px; }
  .contact-intro .contact-channels { margin-top: 22px; gap: 4px; }
  .contact-visit { padding-block: 40px 48px; }
  .contact-visit .location-heading { margin-bottom: 26px; }
  .contact-visit-info { grid-template-columns: minmax(0,1fr); gap: 26px; }
  .contact-visit .location-map { min-height: 320px; }
  .contact-visit .hours-list li { padding-block: 11px; }
}
