/* Generated 390px mobile baseline; rebuild with build-mobile-rem.py. */
.location-page{overflow-x: clip;}
.location-page [hidden]{display: none !important;}
.location-page a:focus-visible, .location-page button:focus-visible{outline: rgb(47, 107, 255) solid 0.1875rem; outline-offset: 0.25rem;}
.skip-link{position: fixed; top: 0.5rem; left: 0.75rem; z-index: 200; padding: 0.75rem 1.25rem; background: rgb(255, 255, 255); color: rgb(21, 62, 146); transform: translateY(-150%);}
.skip-link:focus{transform: none;}
.subpage-hero--location .subpage-hero-media img{object-position: center 62%;}
.subpage-hero--location .subpage-hero-media::before{background: linear-gradient(90deg, rgba(8, 14, 23, 0.8), rgba(8, 14, 23, 0.62) 39%, rgba(8, 14, 23, 0.32) 72%), linear-gradient(0deg, rgba(6, 11, 18, 0.4), rgba(6, 11, 18, 0.04));}
.location-section{padding: 5rem 0 1.875rem; scroll-margin-top: 6.25rem;}
.location-heading{display: flex; align-items: baseline; justify-content: space-between; gap: 1.5rem; margin-bottom: 2rem;}
.location-heading h2{font-size: 1.875rem; line-height: 1.4; font-weight: 650; letter-spacing: -0.04em; word-break: keep-all;}
.location-heading h2 span{color: rgb(36, 95, 207);}
.location-heading > p{color: rgb(119, 128, 140); font-size: max(13px,0.875rem); word-break: keep-all;}
.location-grid{display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(19.375rem, 1fr); border-top: 1px solid rgb(36, 52, 72); border-bottom: 1px solid rgb(220, 226, 233); padding: 1.875rem 0; gap: 2.5rem;}
.location-map{min-width: 0; background: rgb(242, 244, 246); display: flex; flex-direction: column; border-radius: 0.375rem; overflow: hidden;}
.location-map iframe{display: block; width: 100%; min-height: 24.375rem; flex: 1 1 0%; border: 0; background: rgb(237, 240, 242);}
.map-help{padding: 0.8125rem 1.125rem; font-size: max(10px,0.6875rem); color: rgb(116, 126, 138); background: rgb(245, 246, 248); line-height: 1.7;}
.map-help a{color: rgb(66, 88, 116); text-decoration: underline; text-underline-offset: 0.1875rem;}
.location-info{padding: 0.75rem 0.25rem 0.5rem; display: flex; flex-direction: column; align-items: stretch;}
.info-label{display: block; font-size: max(10px,0.75rem); color: rgb(109, 120, 134); margin-bottom: 0.875rem;}
.location-address address{font-style: normal; font-size: 1.375rem; line-height: 1.7; font-weight: 500; word-break: keep-all; letter-spacing: -0.025em;}
.location-address address strong{font-weight: 650;}
.copy-address{display: inline-flex; align-items: center; gap: 0.4375rem; background: transparent; border: 0; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: max(10px,0.75rem); color: rgb(69, 96, 127); cursor: pointer; padding: 0.5rem 0; margin-top: 0.4375rem;}
.copy-address svg{width: 0.9375rem; height: 0.9375rem; fill: none; stroke: currentcolor; stroke-width: 1.5;}
.copy-address:hover{color: rgb(36, 95, 207);}
.copy-status{font-size: max(10px,0.75rem); color: rgb(40, 91, 175); line-height: 1.6; min-height: 1.25rem; max-width: 100%; overflow-wrap: anywhere;}
.location-contact{border-top: 1px solid rgb(226, 231, 237); padding-top: 1.5rem; margin-top: 0.75rem; margin-bottom: 1.875rem;}
.location-contact .info-label{margin-bottom: 0.5rem;}
.location-phone{display: flex; justify-content: space-between; align-items: center; font-size: 2rem; line-height: 1.3; letter-spacing: -0.025em; font-weight: 650; color: rgb(34, 59, 93);}
.location-phone .ico{width: 1.3125rem; height: 1.3125rem; stroke-width: 1.5;}
.location-contact p{font-size: max(10px,0.75rem); color: rgb(120, 129, 140); margin-top: 0.6875rem; word-break: keep-all;}
.location-map-links{display: flex; gap: 0.625rem; margin-top: auto;}
.map-link{display: flex; justify-content: space-between; align-items: center; gap: 0.875rem; flex: 1 1 0%; min-height: 3.0625rem; padding: 0.8125rem 1.0625rem; font-size: max(10px,0.8125rem); font-weight: 600; color: rgb(48, 73, 99); border: 1px solid rgb(207, 216, 227); border-radius: 0.3125rem; transition: background 0.2s, border-color 0.2s;}
.map-link-primary{background: rgb(37, 78, 135); border-color: rgb(37, 78, 135); color: rgb(255, 255, 255);}
.map-link:hover{background: rgb(237, 242, 249); border-color: rgb(139, 164, 200);}
.map-link-primary:hover{background: rgb(25, 62, 113); border-color: rgb(25, 62, 113);}
.visit-guide{display: grid; grid-template-columns: 16.25rem minmax(0, 1fr); gap: 3.25rem; padding-top: 4.0625rem;}
.visit-heading h2{font-size: 1.625rem; font-weight: 630; letter-spacing: -0.035em; margin-bottom: 0.75rem;}
.visit-heading p{font-size: max(10px,0.8125rem); color: rgb(122, 131, 144); line-height: 1.7; word-break: keep-all;}
.visit-row{display: grid; grid-template-columns: 9.0625rem minmax(0, 1fr); gap: 1.5rem; padding: 1.6875rem 0; border-bottom: 1px solid rgb(227, 231, 237);}
.visit-row:first-child{padding-top: 0.25rem;}
.visit-row:last-child{border-bottom: 0;}
.visit-row h3{display: flex; align-items: center; gap: 0.75rem; font-size: max(13px,0.9375rem); line-height: 1.8; font-weight: 600; color: rgb(40, 63, 92);}
.visit-row h3 svg{width: 1.4375rem; height: 1.4375rem; flex: 0 0 auto; fill: none; stroke: rgb(81, 115, 147); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;}
.visit-row strong{font-size: max(13px,1rem); line-height: 1.7; font-weight: 560; word-break: keep-all; overflow-wrap: anywhere;}
.visit-row p{font-size: max(13px,0.875rem); line-height: 1.8; color: rgb(104, 116, 132); margin-top: 0.4375rem; word-break: keep-all; overflow-wrap: anywhere;}
.visit-row .visit-note{font-size: max(10px,0.75rem); color: rgb(133, 142, 153); margin-top: 0.3125rem;}
.visit-row a{color: rgb(54, 91, 138); text-decoration: underline; text-underline-offset: 0.1875rem;}
.visit-route-links{display: flex; flex-wrap: wrap; gap: 0.625rem; margin: 1.125rem 0 0.75rem;}
.visit-row .visit-route-links a{display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 2.75rem; padding: 0.6875rem 1rem; border: 1px solid rgb(202, 213, 227); border-radius: 0.3125rem; background: rgb(255, 255, 255); color: rgb(48, 78, 118); font-size: max(10px,0.8125rem); font-weight: 600; text-decoration: none; transition: background 0.2s, border-color 0.2s;}
.visit-row .visit-route-links a:hover{background: rgb(237, 242, 249); border-color: rgb(133, 159, 190);}
.next-page{padding: 3.5rem 0 4.125rem; background: rgb(255, 255, 255);}
.next-page a{display: grid; grid-template-columns: 9.375rem 1fr auto; align-items: center; gap: 1.875rem; padding: 1.8125rem 0; border-top: 1px solid rgb(34, 42, 55); border-bottom: 1px solid rgb(215, 217, 218);}
.next-page small{color: rgb(133, 140, 149); font-size: max(10px,0.6875rem); font-weight: 750;}
.next-page strong{font-size: 1.6875rem; letter-spacing: -0.035em;}
.next-page .arrow{font-size: 1.5625rem; transition: transform 0.2s, color 0.2s;}
.next-page a:hover .arrow{color: var(--blue); transform: translateX(0.375rem);}
.location-branches{display: flex; align-items: center; justify-content: space-between; gap: 1rem 1.75rem; margin-top: 2.625rem; padding: 1.0625rem 1.625rem; border-radius: 0.375rem; background: rgb(245, 246, 248);}
.location-branches h2{flex: 0 0 auto; font-size: max(10px,0.8125rem); font-weight: 500; color: rgb(112, 125, 141);}
.location-branches ul{display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.75rem; list-style: none; margin: 0; padding: 0;}
.location-branches a{display: inline-flex; align-items: center; justify-content: space-between; gap: 1.25rem; min-height: 2.75rem; padding: 0.625rem 0.875rem; border-radius: 0.25rem; color: rgb(71, 93, 119); font-size: max(10px,0.8125rem); font-weight: 550; white-space: nowrap; transition: background 0.2s, color 0.2s;}
.location-branches a span{color: rgb(136, 150, 166); font-size: max(10px,0.75rem);}
.location-branches a:hover{background: rgb(255, 255, 255); color: rgb(36, 95, 207);}
.location-branches a:hover span{color: rgb(36, 95, 207);}

.location-grid{grid-template-columns: 1fr; gap: 1.5rem;}
.location-info{display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.75rem; padding: 0;}
.location-contact{border-top: 0; padding-top: 0; margin: 0;}
.location-map-links{grid-column: 1 / -1; max-width: 27.5rem; margin-top: 0;}
.location-map iframe{min-height: 23.75rem;}
.visit-guide{grid-template-columns: 1fr; gap: 1.75rem;}
.location-heading{align-items: flex-start; flex-direction: column; gap: 0.75rem;}
.visit-heading p{margin: 0;}
.subpage-hero--location .subpage-hero-media img{object-position: 55% center;}
.location-section{padding: 3rem 0 3.125rem; scroll-margin-top: 5rem;}
.location-heading{margin-bottom: 1.4375rem; gap: 0.625rem;}
.location-heading h2{font-size: 1.5625rem;}
.location-heading > p{font-size: max(10px,0.75rem);}
.location-grid{padding: 1.375rem 0 1.75rem; gap: 1.5625rem;}
.location-map iframe{min-height: 18.125rem; height: 18.125rem; flex: 0 0 auto;}
.map-help{padding: 0.6875rem 0.8125rem; font-size: 0.625rem;}
.location-info{display: flex; gap: 0; padding: 0 0.125rem;}
.location-address address{font-size: 1.375rem;}
.info-label{font-size: max(10px,0.6875rem); margin-bottom: 0.5625rem;}
.location-contact{border-top: 1px solid rgb(226, 231, 237); padding-top: 1.3125rem; margin-top: 0.625rem; margin-bottom: 1.5rem;}
.location-phone{font-size: 1.875rem;}
.location-map-links{max-width: none; width: 100%; gap: 0.5625rem;}
.map-link{padding: 0.8125rem 0.9375rem; font-size: max(10px,0.8125rem);}
.visit-guide{padding-top: 2.5rem; gap: 1.5625rem;}
.visit-heading h2{font-size: 1.4375rem; margin-bottom: 0.5rem;}
.visit-heading p{font-size: max(10px,0.75rem);}
.visit-row{grid-template-columns: 1fr; gap: 0.75rem; padding: 1.5rem 0;}
.visit-row h3{font-size: max(13px,0.875rem); gap: 0.625rem;}
.visit-row h3 svg{width: 1.3125rem; height: 1.3125rem;}
.visit-row strong{font-size: max(13px,0.9375rem);}
.visit-row p{font-size: max(10px,0.8125rem);}
.visit-row .visit-note{font-size: max(10px,0.6875rem);}

.next-page{padding: 2.625rem 0;}
.next-page a{grid-template-columns: 1fr auto; gap: 0.5rem; padding: 1.375rem 0;}
.next-page small{grid-column: 1 / -1;}
.next-page strong{font-size: 1.375rem;}
.next-page .arrow{grid-area: 2 / 2;}
.location-section{padding-bottom: 1.25rem;}
.visit-route-links{gap: 0.5rem; margin-top: 0.9375rem;}
.visit-row .visit-route-links a{flex: 1 1 0%; gap: 0.5625rem; padding: 0.6875rem 0.75rem; font-size: max(10px,0.75rem); white-space: nowrap;}
.location-branches{align-items: flex-start; flex-direction: column; gap: 0.625rem; padding: 1.25rem; margin-top: 1.625rem;}
.location-branches ul{gap: 0.25rem 0.375rem;}
.location-branches a{gap: 0.875rem; padding: 0.625rem 0.75rem; font-size: max(10px,0.75rem);}
.location-branches h2{font-size: max(10px,0.75rem);}
@media (prefers-reduced-motion: reduce){.location-page *{transition: none !important; scroll-behavior: auto !important;}}
