/* Location directory and detail pages. Existing site typography and colours retained. */
.location-page { --loc-ink:#09254a; --loc-blue:#0054c7; --loc-paper:#f1f6fa; color:var(--loc-ink); }
.location-page p { line-height:1.8; }
.locations-hero { padding:30px 0 68px; background:#071d3d; color:#fff; }
.locations-breadcrumb { display:flex; flex-wrap:wrap; gap:12px; font-size:13px; color:#bfd0e5; margin-bottom:48px; }
.locations-breadcrumb a { color:#bfd0e5; text-decoration:none; }
.locations-breadcrumb a:hover { color:#fff; text-decoration:underline; }
.locations-eyebrow { display:block; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; line-height:1.6; margin:0 0 16px; }
.locations-hero .locations-eyebrow { color:#79baff; }
.locations-hero h1 { max-width:900px; font-size:clamp(34px,4.5vw,60px); letter-spacing:-.035em; line-height:1.12; margin-bottom:24px; color:#fff; }
.locations-hero .locations-lead { max-width:810px; color:#d3deed; font-size:18px; line-height:1.8; margin-bottom:28px; }
.locations-hero-grid { display:grid; grid-template-columns:minmax(0,2.5fr) minmax(230px,1fr); gap:70px; align-items:center; }
.locations-network-note { border-left:1px solid #405673; padding:8px 0 8px 32px; }
.locations-network-count { display:flex; align-items:baseline; gap:12px; font-size:96px; font-weight:700; line-height:1; letter-spacing:-.06em; }
.locations-network-count span { font-size:15px; letter-spacing:0; font-weight:400; color:#d3deed; }
.locations-network-note p { color:#d3deed; margin:24px 0; font-size:15px; }
.locations-network-cities { font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:#79baff; }
.locations-button { display:inline-flex; align-items:center; justify-content:center; gap:26px; min-height:48px; padding:13px 22px; background:#fff; color:#09254a; text-decoration:none; font-weight:700; border:1px solid transparent; border-radius:3px; line-height:1.4; }
.locations-button:hover { background:#dcecff; color:#09254a; }
.locations-button-dark { background:#0054c7; color:#fff; }
.locations-button-dark:hover { background:#003c91; color:#fff; }
.location-page a:focus-visible, .location-page summary:focus-visible { outline:3px solid #3685df; outline-offset:5px; }
.locations-directory { padding-top:64px; padding-bottom:72px; scroll-margin-top:24px; }
.locations-section-heading { display:flex; justify-content:space-between; gap:24px; align-items:end; margin-bottom:30px; }
.locations-section-heading .locations-eyebrow { color:#0054c7; margin-bottom:10px; }
.location-page h2 { font-size:clamp(25px,3vw,34px); line-height:1.25; letter-spacing:-.025em; color:#09254a; }
.locations-section-heading h2 { max-width:560px; margin:0; }
.locations-section-heading > p { font-size:13px; color:#51627a; margin:0; }
.locations-directory-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid #d2dfeb; border-left:1px solid #d2dfeb; }
.locations-directory-card { display:flex; flex-direction:column; padding:32px; border-right:1px solid #d2dfeb; border-bottom:1px solid #d2dfeb; }
.locations-card-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:25px; }
.locations-card-number { font-size:23px; color:#5d6f86; }
.locations-card-top .locations-eyebrow { font-size:10px; color:#52657d; margin:0; text-align:right; }
.locations-card-area { font-size:13px; margin-bottom:8px; color:#0054c7; }
.locations-directory-card h3 { font-size:27px; line-height:1.2; letter-spacing:-.02em; margin-bottom:16px; }
.locations-directory-card h3 a { color:#09254a; text-decoration:none; }
.locations-directory-card h3 a:hover { text-decoration:underline; }
.locations-directory-card > p:not(.locations-card-area) { color:#465a73; font-size:15px; }
.locations-directory-card address { color:#364b65; font-size:13px; line-height:1.65; margin-top:auto; padding:12px 0 20px; }
.locations-card-actions { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; padding-top:20px; border-top:1px solid #d2dfeb; }
.locations-card-actions a, .locations-text-link { color:#0054c7; text-underline-offset:4px; font-size:14px; font-weight:700; }
.locations-factory-card { background:#eaf3fd; }
.locations-guidance { background:#f1f6fa; padding:64px 0; }
.locations-guidance-grid { display:grid; grid-template-columns:1fr 1.35fr; gap:70px; }
.locations-guidance h2 { max-width:380px; }
.locations-guidance h3 { font-size:21px; margin-bottom:12px; }
.locations-guidance p { font-size:15px; color:#415772; margin-bottom:28px; }
.locations-guidance a:not(.locations-button), .locations-faq a { color:#0054c7; text-underline-offset:3px; }
.locations-directory-faq { padding-top:64px; padding-bottom:72px; max-width:900px; }
.locations-faq h2 { margin-bottom:24px; }
.locations-faq details { border-bottom:1px solid #d2dfeb; padding:20px 0; }
.locations-faq summary { cursor:pointer; font-size:17px; font-weight:700; line-height:1.5; }
.locations-faq details p { font-size:15px; margin:14px 0 0; color:#465a73; }
.locations-detail-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr); gap:70px; padding-top:64px; padding-bottom:64px; align-items:start; }
.locations-editorial > section { margin-bottom:36px; }
.locations-editorial h2 { font-size:27px; margin-bottom:16px; }
.locations-editorial p { color:#465a73; font-size:16px; }
.locations-service-links { padding:0; margin:20px 0 0; list-style:none; display:flex; flex-wrap:wrap; gap:10px; }
.locations-service-links a { display:block; border:1px solid #c7d8e9; padding:10px 14px; text-decoration:none; color:#0054c7; font-size:14px; }
.locations-service-links a:hover { background:#edf5ff; }
.locations-visit { background:#f1f6fa; padding:28px; border-top:4px solid #0054c7; }
.locations-visit .locations-eyebrow { color:#0054c7; font-size:11px; margin-bottom:12px; }
.locations-visit h2 { font-size:25px; }
.locations-visit > p, .locations-visit address { font-size:14px; line-height:1.7; color:#465a73; }
.locations-map { width:100%; aspect-ratio:4/3; margin:22px 0 12px; }
.locations-map iframe { width:100%; height:100%; border:0; display:block; }
.locations-visit .locations-plus-code { font-size:12px; }
.locations-contact { border-top:1px solid #c7d8e9; padding-top:24px; margin-top:26px; }
.locations-contact h3 { font-size:20px; }
.locations-contact p { font-size:14px; color:#465a73; }
.locations-contact .locations-button { font-size:14px; width:100%; padding-inline:10px; }
.locations-email { display:block; color:#0054c7; margin-top:14px; font-size:13px; overflow-wrap:anywhere; }
.locations-others { background:#f1f6fa; padding:54px 0 64px; }
.locations-other-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.locations-other { display:block; padding:24px; background:#fff; border:1px solid #d2dfeb; color:#09254a; text-decoration:none; }
.locations-other:hover { border-color:#0054c7; color:#0054c7; }
.locations-other .locations-eyebrow { font-size:10px; color:#52657d; }
.locations-other h3 { font-size:22px; line-height:1.3; }
.locations-other p { font-size:13px; color:#465a73; margin-bottom:18px; }
.footer-maps-section { color:#fff; }
.footer-maps-section .map-label { font-size:20px; line-height:1.35; color:#fff; }
.footer-maps-section .map-responsive { width:100%; height:150px; }
.footer-maps-section iframe { width:100%; height:100%; border:0; display:block; }
.footer-maps-section p, .footer-maps-section address { font-size:13px; line-height:1.6; }
.footer-maps-section p a, .footer-locations-link { color:#78b8ff; text-underline-offset:3px; }
.footer-locations-heading { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-bottom:24px; }
.footer-locations-heading h2 { color:#fff; font-size:25px; margin:0; }
.footer-locations-link { font-size:14px; }
@media (max-width:991px) {
    .locations-hero-grid { grid-template-columns:minmax(0,1fr) 210px; gap:36px; }
    .locations-detail-grid { gap:30px; grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr); }
    .locations-guidance-grid { gap:36px; }
    .locations-other-grid { grid-template-columns:1fr; }
    .locations-other { display:grid; grid-template-columns:1fr auto; gap:0 16px; }
    .locations-other .locations-eyebrow, .locations-other h3 { grid-column:1; }
    .locations-other p { margin-bottom:0; }
    .locations-other > span:last-child { grid-column:2; grid-row:1/4; align-self:center; }
}
@media (max-width:767px) {
    .locations-hero { padding-bottom:44px; }
    .locations-breadcrumb { margin-bottom:32px; font-size:12px; }
    .locations-hero .locations-lead { font-size:16px; }
    .locations-hero-grid, .locations-detail-grid, .locations-guidance-grid { grid-template-columns:1fr; gap:32px; }
    .locations-network-note { display:none; }
    .locations-directory-grid { grid-template-columns:1fr; }
    .locations-directory-card { padding:24px; }
    .locations-directory-card h3 { font-size:25px; }
    .locations-section-heading { align-items:start; flex-direction:column; gap:16px; }
    .locations-section-heading > p br { display:none; }
    .locations-directory, .locations-detail-grid, .locations-directory-faq { padding-top:40px; padding-bottom:44px; }
    .locations-guidance, .locations-others { padding:40px 0; }
    .locations-visit { padding:24px; }
    .locations-editorial h2 { font-size:25px; }
    .footer-locations-heading { align-items:start; flex-direction:column; gap:10px; }
}
