/* All four locations stay visible; these rules are scoped to the directions page. */
.jj-site.is-sub .original-page-shell:has(.directions-page) { padding-bottom:80px; }
.jj-site.is-sub .original-content.location .sub_conts_tit,
.jj-site.is-sub .original-content.location .sub_tit { margin:70px 20px 0; }
.jj-site.is-sub .original-content.location .sub-cont-section { padding:40px 0 0; }
.jj-site.is-sub .original-content.location .inner { max-width:1440px; }
.jj-site.is-sub .original-content.location .mt50 { margin-top:0!important; }

.original-content.location .directions-page { width:100%; max-width:1400px; margin:0 auto; color:#25363b; }
.original-content.location .directions-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; align-items:stretch; }
.original-content.location .direction-card { display:flex; flex-direction:column; min-width:0; margin:0; padding:0; overflow:hidden; border:1px solid #dce5e7; border-radius:6px; background:#fff; box-shadow:0 4px 18px rgba(31,70,73,.045); }
.original-content.location .direction-card-header { display:flex; align-items:center; gap:12px; min-height:74px; padding:24px 26px 0; }
.original-content.location .direction-number { display:inline-flex; flex:0 0 34px; align-items:center; justify-content:center; width:34px; height:34px; border:1px solid #d1e9e2; border-radius:50%; background:#eff8f4; color:#158477; font-size:13px; font-weight:700; line-height:1; letter-spacing:.02em; }
.original-content.location .direction-title { min-width:0; margin:0; color:#1e3339; font-size:24px; font-weight:700; line-height:1.45; overflow-wrap:anywhere; word-break:keep-all; }
.original-content.location .direction-address { min-height:3.2em; margin:12px 26px 22px; color:#65757b; font-size:16px; font-weight:400; line-height:1.6; overflow-wrap:anywhere; word-break:keep-all; }
.original-content.location .direction-map { flex:0 0 280px; height:280px; margin-top:auto; overflow:hidden; border-top:1px solid #e5ebec; border-bottom:1px solid #e5ebec; background:#edf2ef; }
.original-content.location .direction-map iframe { display:block; width:100%; max-width:100%; height:280px; margin:0; border:0; }
.original-content.location .direction-details { padding:21px 26px 24px; background:#fff; }
.original-content.location .direction-contacts { display:flex; flex-wrap:wrap; gap:10px 28px; margin:0; padding:0; }
.original-content.location .direction-contacts > div { display:flex; align-items:baseline; gap:10px; min-width:0; }
.original-content.location .direction-contacts dt { flex:0 0 auto; margin:0; padding:0; color:#849196; font-size:12px; font-weight:700; line-height:1.6; letter-spacing:.045em; }
.original-content.location .direction-contacts dd { min-width:0; margin:0; padding:0; color:#344a51; font-size:16px; font-weight:500; line-height:1.6; overflow-wrap:anywhere; }
.original-content.location .direction-contacts a { color:inherit; text-decoration:none; text-underline-offset:3px; }
.original-content.location .direction-contacts a:hover { color:#147e78; text-decoration:underline; }
.original-content.location .direction-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:20px; }
.original-content.location .direction-actions a { display:flex; align-items:center; justify-content:center; gap:8px; min-width:0; min-height:44px; padding:10px 14px; border:1px solid #c6d8d8; border-radius:3px; background:#fff; color:#24656c; font-size:14px; font-weight:600; line-height:1.5; text-align:center; text-decoration:none; overflow-wrap:anywhere; transition:background-color .15s ease,color .15s ease,border-color .15s ease; }
.original-content.location .direction-actions .direction-route-link { border-color:#177f76; background:#177f76; color:#fff; }
.original-content.location .direction-actions .direction-map-link:hover { border-color:#177f76; background:#edf7f3; color:#12665f; }
.original-content.location .direction-actions .direction-route-link:hover { border-color:#10635b; background:#10635b; }
.original-content.location .direction-actions a:focus-visible,
.original-content.location .direction-contacts a:focus-visible { outline:3px solid #8bbb45; outline-offset:3px; }

@media (min-width:768px) and (max-width:1050px) {
  .original-content.location .directions-grid { gap:22px; }
  .original-content.location .direction-card-header { padding:21px 20px 0; }
  .original-content.location .direction-title { font-size:22px; }
  .original-content.location .direction-address { margin-left:20px; margin-right:20px; }
  .original-content.location .direction-details { padding:19px 20px 21px; }
  .original-content.location .direction-contacts { flex-direction:column; gap:8px; }
}

@media (max-width:767px) {
  .jj-site.is-sub .original-page-shell:has(.directions-page) { padding-bottom:55px; }
  .jj-site.is-sub .original-content.location .sub_conts_tit,
  .jj-site.is-sub .original-content.location .sub_tit { margin-top:45px; }
  .jj-site.is-sub .original-content.location .sub-cont-section { padding-top:28px; }
  .jj-site.is-sub .original-content.location .inner { padding-left:0; padding-right:0; }
  .original-content.location .directions-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
  .original-content.location .direction-card-header { gap:10px; min-height:0; padding:21px 20px 0; }
  .original-content.location .direction-title { font-size:21px; }
  .original-content.location .direction-address { min-height:0; margin:12px 20px 20px; font-size:15px; }
  .original-content.location .direction-map { flex-basis:240px; height:240px; }
  .original-content.location .direction-map iframe { height:240px; }
  .original-content.location .direction-details { padding:19px 20px 21px; }
  .original-content.location .direction-contacts { gap:8px 22px; }
  .original-content.location .direction-contacts dd { font-size:15px; }
  .original-content.location .direction-actions { margin-top:17px; }
  .original-content.location .direction-actions a { padding:10px; font-size:13px; }
}

@media (max-width:374px) {
  .original-content.location .direction-card-header { padding-left:16px; padding-right:16px; }
  .original-content.location .direction-title { font-size:20px; }
  .original-content.location .direction-address { margin-left:16px; margin-right:16px; }
  .original-content.location .direction-details { padding-left:16px; padding-right:16px; }
  .original-content.location .direction-contacts { flex-direction:column; }
}

@media (prefers-reduced-motion:reduce) {
  .original-content.location .direction-actions a { transition:none; }
}
