.fbl-locations { margin: 28px 0; padding: 0; border: 1px solid var(--fbl-line,#e1e8f0); border-radius: 24px; background: #fff; color: var(--fbl-ink,#12213d); scroll-margin-top: 30px; }
.fbl-locations [hidden] { display: none !important; }
.fbl-departments{margin-top:18px;border:1px solid #d6e4f1;border-radius:10px;background:#f5f9fd}
.fbl-departments>summary{display:flex;align-items:center;gap:8px;min-height:48px;padding:11px 12px;color:#175b99;font-size:13px;font-weight:700;line-height:1.5;cursor:pointer;list-style:none}
.fbl-departments>summary::-webkit-details-marker{display:none}
.fbl-departments>summary::after{content:'+';margin-left:auto;font-size:19px}
.fbl-departments[open]>summary::after{content:'−'}
.fbl-department-total{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;padding:0 5px;border-radius:20px;background:#e1edf8;color:#155690;font-size:12px}
.fbl-department-list{padding:0 12px 12px}
.fbl-department{padding:14px 0;border-top:1px solid #dbe6f1;scroll-margin-top:35px}
.fbl-department:last-child{padding-bottom:0}
.fbl-department:target{outline:2px solid #2271b1;outline-offset:5px;border-radius:4px}
.fbl-locations .fbl-department h4{margin:0 0 8px;color:#183b61;font-size:15px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.fbl-locations .fbl-department p{margin:0 0 10px;color:#506781;font-size:13px;line-height:1.65;overflow-wrap:anywhere}
.fbl-department-actions{display:grid;gap:7px}
.fbl-department-actions a{display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 10px;border:1px solid #cbdcec;border-radius:7px;background:#fff;color:#155b9e;font-size:13px;font-weight:600;line-height:1.5;text-decoration:none}
.fbl-department-actions a span{min-width:0;overflow-wrap:anywhere}
.fbl-department-actions a:hover{background:#e8f2fc;border-color:#8ab8df;color:#124975;text-decoration:none}
.fbl-locations .fbl-locations-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0; padding: 24px 32px; border-radius: 24px; cursor: pointer; list-style: none; }
.fbl-locations-heading::-webkit-details-marker { display: none; }
.fbl-locations-heading::marker { content: ''; }
.fbl-locations-heading:hover { background: #f8fafc; }
.fbl-locations .fbl-locations-heading:focus-visible { outline-offset: -4px; }
.fbl-locations-controls { display: flex; align-items: center; gap: 18px; flex-shrink: 0; }
.fbl-locations-toggle { display: inline-flex; align-items: center; gap: 9px; color: #0058c9; font-size: 13px; font-weight: 700; white-space: nowrap; }
.fbl-locations-toggle .fbl-locations-when-open { display: none; }
.fbl-locations-disclosure[open] > .fbl-locations-heading .fbl-locations-when-open { display: inline; }
.fbl-locations-disclosure[open] > .fbl-locations-heading .fbl-locations-when-closed { display: none; }
.fbl-locations-disclosure[open] > .fbl-locations-heading .fbl-locations-toggle svg { transform: rotate(180deg); }
.fbl-locations-disclosure[open] > .fbl-locations-heading { border-radius: 24px 24px 0 0; }
.fbl-locations-panel { padding: 24px 32px 32px; border-top: 1px solid var(--fbl-line,#e1e8f0); }
.fbl-locations-disclosure:not([open]) > .fbl-locations-panel { display: none; }
.fbl-locations .fbl-eyebrow { color: #996000; font-size: 12px; font-weight: 750; text-transform: uppercase; letter-spacing: .09em; }
.fbl-locations h2 { margin: 5px 0 0; color: var(--fbl-ink,#12213d); font-size: clamp(24px,3vw,30px); line-height: 1.25; }
.fbl-locations .fbl-locations-intro { margin: 0 0 20px; color: var(--fbl-copy,#4e6072); font-size: 15px; }
.fbl-location-total { flex-shrink: 0; border-radius: 30px; background: #edf4fa; padding: 8px 14px; font-size: 13px; font-weight: 700; }
.fbl-location-filters { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1fr) auto; align-items: end; gap: 14px; padding: 18px; background: #f6f8fb; border: 1px solid #e8edf3; border-radius: 14px; }
.fbl-location-filters label { display: block; margin: 0; min-width: 0; font-size: 13px; font-weight: 650; }
.fbl-location-filters label span { display: block; margin-bottom: 6px; }
.fbl-location-filters input,.fbl-location-filters select { display: block; width: 100%; min-width: 0; min-height: 46px; height: auto; margin: 0; padding: 11px 12px; border: 1px solid #cbd6e2; border-radius: 8px; background-color: #fff; color: #243750; font: inherit; font-size: 15px; line-height: 1.4; box-shadow: none; }
.fbl-locations button { cursor: pointer; font-family: inherit; text-transform: none; letter-spacing: normal; box-shadow: none; }
.fbl-locations .fbl-clear { min-height: 46px; margin: 0; padding: 10px 8px; color: #38506a; font-size: 13px; font-weight: 650; border: 0; border-radius: 8px; background: transparent; text-decoration: underline; text-underline-offset: 3px; }
.fbl-locations .fbl-location-status { color: #5e6f81; margin: 17px 0; font-size: 13px; }
.fbl-branch-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.fbl-branch-card { display: flex; flex-direction: column; min-width: 0; padding: 22px; border: 1px solid #dce5ef; border-radius: 18px; background: #fff; box-shadow: 0 4px 15px rgba(18,33,61,.035); scroll-margin-top: 26px; }
.fbl-branch-card:target { outline: 3px solid var(--fbl-accent,#ff5500); outline-offset: 3px; }
.fbl-branch-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 18px; }
.fbl-branch-icon { display: flex; align-items: center; justify-content: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 12px; color: #bd4100; background: #fff2e9; }
.fbl-locations .fbl-branch-icon svg { width: 21px; height: 21px; }
.fbl-branch-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.fbl-branch-badges span { padding: 4px 8px; border-radius: 6px; color: #4b6074; background: #f0f4f8; font-size: 11px; font-weight: 650; line-height: 1.5; }
.fbl-branch-badges .fbl-head-office { color: #146442; background: #e9f7ef; }
.fbl-locations .fbl-branch-card h3 { margin: 0 0 4px; color: var(--fbl-ink,#12213d); font-size: 20px; line-height: 1.35; overflow-wrap: anywhere; }
.fbl-locations .fbl-branch-town { margin: 0 0 9px; color: #5d7186; font-size: 13px; font-weight: 600; }
.fbl-locations .fbl-branch-address { margin: 7px 0 17px; color: #4e6072; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.fbl-branch-hours { margin-bottom: 18px; font-size: 13px; }
.fbl-branch-hours summary { cursor: pointer; color: #3b526b; font-weight: 600; padding: 6px 0; }
.fbl-branch-hours summary svg { vertical-align: middle; margin: 0 4px; }
.fbl-branch-hours p { margin: 8px 0 0; padding: 12px; background: #f6f8fb; border-radius: 8px; color: #4e6072; white-space: normal; overflow-wrap: anywhere; }
.fbl-branch-actions { display: flex; flex-direction: column; gap: 8px; margin-top: auto; }
.fbl-branch-actions a { display: flex; justify-content: center; align-items: center; gap: 8px; min-height: 44px; padding: 10px; border: 1px solid #dae3ed; border-radius: 9px; font-size: 13px; font-weight: 650; color: #314a63; background: #fff; text-decoration: none; line-height: 1.5; }
.fbl-branch-actions a span { min-width: 0; overflow-wrap: anywhere; }
.fbl-branch-actions .fbl-branch-call { background: #ca4500; color: #fff; border-color: #ca4500; }
.fbl-branch-actions .fbl-branch-whatsapp { background: #11864b; color: #fff; border-color: #11864b; }
.fbl-branch-actions a:hover { filter: brightness(.94); text-decoration: none; }
.fbl-branch-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; border-top: 1px solid #e6ecf2; padding-top: 12px; margin-top: 18px; }
.fbl-branch-footer a,.fbl-branch-footer button { display: inline-flex; gap: 5px; align-items: center; min-height: 36px; border: 0; border-radius: 5px; padding: 3px 0; margin: 0; color: #385470; background: transparent; font-size: 12px; font-weight: 650; line-height: 1.5; text-decoration: none; }
.fbl-branch-footer a:hover,.fbl-branch-footer button:hover { color: #12213d; text-decoration: underline; }
.fbl-locations svg { width: 17px; height: 17px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.fbl-branch-map { margin-top: 14px; border-radius: 10px; overflow: hidden; background: #f0f4f8; }
.fbl-branch-map iframe { display: block; width: 100%; height: 230px; border: 0; }
.fbl-no-locations { padding: 36px 18px; text-align: center; border: 1px dashed #ccd7e3; border-radius: 12px; }
.fbl-no-locations p { margin: 6px 0 0; color: #5e6f81; font-size: 14px; }
.fbl-more-wrap { text-align: center; }
.fbl-locations .fbl-show-more { display: inline-block; margin: 24px 0 0; padding: 12px 22px; min-height: 44px; color: #243c57; background: #f3f7fb; border: 1px solid #ccd8e5; border-radius: 10px; font-size: 14px; font-weight: 650; }
.fbl-locations :is(a,button,input,select,summary):focus-visible { outline: 3px solid #276da5; outline-offset: 3px; }
@media (max-width: 1000px) { .fbl-branch-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 640px) {
  .fbl-locations { border-radius: 18px; }
  .fbl-locations .fbl-locations-heading { flex-wrap: wrap; gap: 14px; padding: 20px 16px; border-radius: 18px; }
  .fbl-locations-disclosure[open] > .fbl-locations-heading { border-radius: 18px 18px 0 0; }
  .fbl-locations-controls { width: 100%; justify-content: space-between; gap: 10px; }
  .fbl-locations-panel { padding: 20px 16px 22px; }
  .fbl-location-filters { grid-template-columns: minmax(0,1fr); padding: 14px; }
  .fbl-location-filters input,.fbl-location-filters select { font-size: 16px; }
  .fbl-locations .fbl-clear { justify-self: start; min-height: 40px; padding: 6px 0; }
  .fbl-branch-grid { grid-template-columns: minmax(0,1fr); gap: 14px; }
  .fbl-branch-card { padding: 20px; }
}
