/* Contact-page styles stay within main; the shared header and footer are unchanged. */
.contacts-page .contacts-reach{padding:32px 0 40px;}
.contacts-page .contacts-departments{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:18px;}
.contacts-page .contacts-department{min-width:0; padding:24px; border:1px solid var(--border); border-top:3px solid var(--accent); border-radius:var(--radius); background:var(--bg);}
.contacts-page .contacts-department h2{margin:0 0 18px; font-size:22px; line-height:1.25;}
.contacts-page .contacts-phone{display:inline-block; font-size:clamp(22px, 2vw, 26px); font-weight:700; line-height:1.4; white-space:nowrap;}
.contacts-page .contacts-department p{margin:16px 0 0; color:var(--muted);}
.contacts-page .contacts-email{display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:24px; padding:24px; border-radius:var(--radius); background:var(--panel);}
.contacts-page .contacts-email > div{min-width:0;}
.contacts-page .contacts-email h2{margin:0 0 8px; font-size:18px; line-height:1.3;}
.contacts-page .contacts-email__address{font-size:clamp(20px, 2vw, 26px); font-weight:600; overflow-wrap:anywhere;}
.contacts-page .contacts-email .btn{flex-shrink:0;}
.contacts-page .contacts-location{padding:36px 0 40px;}
.contacts-page .contacts-location h2,.contacts-page .contacts-details h2{margin:0 0 24px; font-size:28px; line-height:1.25;}
.contacts-page .contacts-location__layout{display:grid; grid-template-columns:minmax(0, .8fr) minmax(0, 1.5fr); gap:40px;}
.contacts-page .contacts-location__details h3{margin:0 0 8px; font-size:16px; color:var(--muted); font-weight:500;}
.contacts-page .contacts-location__details address{margin:0 0 28px; font-style:normal; font-size:22px; line-height:1.4;}
.contacts-page .contacts-location__details p{margin:0; font-size:20px;}
.contacts-page .contacts-route-photos{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; margin-top:24px;}
.contacts-page .contacts-route-photo{min-width:0; margin:0;}
.contacts-page .contacts-route-photo__placeholder,.contacts-page .contacts-route-photo__link{display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:4 / 3; border:1px solid var(--border); border-radius:var(--radius); background:var(--bg); overflow:hidden;}
.contacts-page .contacts-route-photo__placeholder{padding:16px; color:var(--muted); font-size:14px; text-align:center;}
.contacts-page .contacts-route-photo__link{cursor:zoom-in;}
.contacts-page .contacts-route-photo__link img{width:100%; height:100%; object-fit:contain;}
.contacts-page .contacts-route-photo figcaption{margin-top:8px; font-size:14px; line-height:1.5; overflow-wrap:anywhere;}
.contacts-page .contacts-photo-viewer{width:min(1100px, calc(100% - 32px)); max-width:calc(100% - 32px); max-height:calc(100dvh - 32px); padding:16px; border:1px solid var(--border); border-radius:var(--radius); color:var(--text); background:var(--bg);}
.contacts-page .contacts-photo-viewer::backdrop{background:rgba(27,31,36,.7);}
.contacts-page .contacts-photo-viewer__close{display:block; margin-left:auto; margin-bottom:12px;}
.contacts-page .contacts-photo-viewer figure{margin:0;}
.contacts-page .contacts-photo-viewer img{width:100%; height:auto; max-height:calc(100dvh - 180px); object-fit:contain;}
.contacts-page .contacts-photo-viewer figcaption{margin-top:12px; overflow-wrap:anywhere;}
.contacts-page .contacts-photo-viewer button:focus-visible{outline:2px solid var(--accent); outline-offset:4px;}
.contacts-page .contacts-location__map{min-width:0;}
.contacts-page .contacts-map{overflow:hidden; border:1px solid var(--border); border-radius:var(--radius); background:var(--bg);}
.contacts-page .contacts-map iframe{display:block; width:100%; height:360px; border:0;}
.contacts-page .contacts-map-link{display:inline-block; margin-top:12px; padding:8px 0;}
.contacts-page .contacts-details[hidden]{display:none;}
.contacts-page .contacts-details__list{display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 2fr); gap:12px 24px;}
.contacts-page .contacts-details__list dt{color:var(--muted);}
.contacts-page .contacts-details__list dd{margin:0; overflow-wrap:anywhere;}
.contacts-page a:focus-visible{outline:2px solid var(--accent); outline-offset:4px;}
@media (max-width:1000px){
  .contacts-page .contacts-department{padding:20px 16px;}
  .contacts-page .contacts-phone{font-size:22px;}
}
@media (max-width:800px){
  .contacts-page .contacts-departments{grid-template-columns:minmax(0, 1fr); gap:16px;}
  .contacts-page .contacts-department{padding:24px;}
  .contacts-page .contacts-phone{font-size:26px;}
  .contacts-page .contacts-location__layout{grid-template-columns:minmax(0, 1fr); gap:24px;}
}
@media (max-width:540px){
  .contacts-page .contacts-reach,.contacts-page .contacts-location{padding:28px 0;}
  .contacts-page .contacts-department{padding:20px;}
  .contacts-page .contacts-phone{font-size:24px;}
  .contacts-page .contacts-email{flex-direction:column; align-items:flex-start; gap:18px; padding:20px;}
  .contacts-page .contacts-location h2{font-size:26px;}
  .contacts-page .contacts-map iframe{height:300px;}
  .contacts-page .contacts-route-photos{grid-template-columns:minmax(0, 1fr);}
  .contacts-page .contacts-details__list{grid-template-columns:minmax(0, 1fr); gap:8px;}
}
