.ifx-location-directory {
  --ld-ink: var(--ifx-indigo, #303366);
  --ld-muted: var(--ifx-muted-on-light, #636579);
  --ld-purple: #844195;
  --ld-line: #e3dce9;
  color: var(--ld-ink);
}
.ifx-location-directory *, .ifx-location-directory *::before, .ifx-location-directory *::after { box-sizing: border-box; }
.ifx-location-directory [hidden] { display: none !important; }
.ifx-location-directory a:where(:not(.if-button)) { color: inherit; }
.ifx-location-directory :is(a, button, select):focus-visible { outline: 3px solid var(--ld-purple); outline-offset: 4px; }
.ifx-ld__header { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: end; margin-bottom: 2.5rem; }
.ifx-ld__header h2 { margin: 0; max-width: 18ch; color: #151020; font-size: clamp(2rem, 4.1vw, 3.8rem); font-weight: 540; letter-spacing: -.055em; line-height: 1.06; text-wrap: balance; }
.ifx-ld__intro { color: var(--ld-muted); font-size: 1.1rem; line-height: 1.65; }
.ifx-ld__intro p { margin: 0 0 1rem; }
.ifx-ld__intro .ifx-ld__coverage { margin: 0; font-size: .9rem; line-height: 1.6; }
.ifx-ld__filters { display: flex; flex-wrap: wrap; align-items: end; gap: 1rem 1.5rem; padding: 1.3rem 1.5rem; border: 1px solid var(--ld-line); border-radius: 1rem; background: #fff; }
.ifx-ld__filters label { flex: 1 1 15rem; color: var(--ld-muted); font-size: .75rem; font-weight: 600; }
.ifx-ld__filters select { display: block; margin-top: .4rem; width: 100%; min-height: 46px; padding: .65rem 2rem .65rem .8rem; border: 1px solid var(--ld-line); border-radius: .5rem; background-color: #fbf9fc; color: var(--ld-ink); font: inherit; font-size: .95rem; }
.ifx-location-directory .ifx-ld__reset { padding: .65rem .25rem; min-height: 46px; border: 0; border-radius: .25rem; background: transparent; color: var(--ld-purple); font-size: .85rem; text-decoration: underline; text-underline-offset: .25em; cursor: pointer; }
.ifx-ld__count { min-width: 7rem; margin: 0; padding-bottom: .8rem; color: var(--ld-muted); font-size: .85rem; text-align: right; }
.ifx-ld__explorer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); align-items: center; gap: clamp(1.5rem, 5vw, 5rem); margin: 2.5rem 0 3.5rem; }
.ifx-ld__map-wrap { min-width: 0; }
.ifx-ld__map { position: relative; width: 100%; max-width: 32rem; margin: 0 auto; aspect-ratio: 3 / 4; }
.ifx-ld__map img { display: block; width: 100%; height: 100%; object-fit: contain; }
.ifx-ld__leaders { position: absolute; inset: 0; overflow: visible; width: 100%; height: 100%; pointer-events: none; }
.ifx-ld__leaders line { stroke: #665681; stroke-width: 1; }
.ifx-ld__leaders circle { fill: #665681; }
.ifx-location-directory .ifx-ld__pin { position: absolute; z-index: 2; display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: #fff; color: var(--ld-ink); box-shadow: 0 1px 8px #37284928; font-family: "Montserrat", Arial, sans-serif; font-size: 12px; font-weight: 700; text-decoration: none; transform: translate(-50%, -50%); transition: background .18s, color .18s, box-shadow .18s; }
.ifx-location-directory .ifx-ld__pin--office { background: var(--ld-ink); color: #fff; }
.ifx-location-directory .ifx-ld__pin:is(:hover, :focus-visible, [aria-current="true"]) { z-index: 3; background: var(--ld-purple); color: #fff; box-shadow: 0 0 0 4px #84419526; }
.ifx-ld__map-key { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; justify-content: center; margin: 0; color: var(--ld-ink); font-size: .77rem; }
.ifx-ld__key-dot { width: .7rem; height: .7rem; margin-left: .7rem; border: 1px solid var(--ld-ink); border-radius: 50%; background: #fff; }
.ifx-ld__key-dot--office { background: var(--ld-ink); }
.ifx-ld__map-note { margin: .75rem 0 0; text-align: center; color: var(--ld-muted); font-size: .75rem; }
.ifx-ld__featured { min-height: 21rem; padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid #ece5ef; border-radius: 1.35rem; background: linear-gradient(150deg, #fff 35%, #f0e9f6); box-shadow: 0 18px 55px #45305209; }
.ifx-ld__feature-label { margin: 0 0 1.5rem; color: var(--ld-purple); font-family: "Montserrat", Arial, sans-serif; font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.ifx-ld__country { margin: 0 0 .4rem; color: var(--ld-purple); font-family: "Montserrat", Arial, sans-serif; font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.ifx-location-directory .ifx-ld__city-name { margin: 0; color: var(--ld-ink); font-size: clamp(1.8rem, 2.5vw, 2.65rem); font-weight: 550; letter-spacing: -.055em; line-height: 1.12; }
.ifx-location-directory .ifx-ld__city-name a { color: inherit; font: inherit; letter-spacing: inherit; text-decoration: none; }
.ifx-location-directory .ifx-ld__city-name a:is(:hover, :focus-visible) { color: var(--ld-purple); text-decoration: underline; text-decoration-thickness: .05em; text-underline-offset: .12em; }
.ifx-ld__presence { display: flex; align-items: baseline; gap: .45rem; margin: .8rem 0 1rem; color: var(--ld-muted); font-size: .76rem; line-height: 1.5; }
.ifx-ld__presence--office { color: var(--ld-purple); font-weight: 600; }
.ifx-ld__presence-dot { display: inline-block; flex: 0 0 .45rem; width: .45rem; height: .45rem; border: 1px solid currentColor; border-radius: 50%; }
.ifx-ld__presence--office .ifx-ld__presence-dot { background: currentColor; }
.ifx-ld__description { margin: 0; color: var(--ld-muted); font-size: 1rem; line-height: 1.7; }
.ifx-ld__address { margin-top: 1rem; padding-left: .8rem; border-left: 2px solid #d9c9e4; color: var(--ld-muted); font-size: .78rem; font-style: normal; line-height: 1.6; }
.ifx-location-directory .ifx-ld__sectors { margin: 1.25rem 0 0; }
.ifx-ld__support-links { display: grid; gap: 1rem; margin-top: 1.2rem; }
.ifx-ld__support-links > .if-button { justify-self: start; }
.ifx-location-directory .ifx-ld__guide { margin-top: 1.6rem; }
.ifx-location-directory .if-button { max-width: 100%; white-space: normal; text-align: left; }
.ifx-ld__city-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.5rem; margin-top: 1.5rem; }
.ifx-ld__city-list a { display: flex; align-items: center; gap: .65rem; min-height: 44px; border-bottom: 1px solid var(--ld-line); padding: .6rem .2rem; font-size: .85rem; text-decoration: none; }
.ifx-ld__city-list a span { color: var(--ld-purple); font-family: "Montserrat", Arial, sans-serif; font-size: .65rem; font-weight: 700; }
.ifx-ld__city-list a:is(:hover, [aria-current="true"]) { color: var(--ld-purple); }
.ifx-ld__results-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1.5rem; padding-top: 2rem; border-top: 1px solid var(--ld-line); }
.ifx-ld__results-heading h3 { margin: 0; color: var(--ld-ink); font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 550; letter-spacing: -.04em; }
.ifx-ld__results-heading p { margin: 0; color: var(--ld-muted); font-size: .85rem; }
.ifx-ld__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.ifx-ld__card { position: relative; min-width: 0; padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid #ece5ef; border-radius: 1.15rem; background: #ffffffbd; scroll-margin-top: 7rem; }
.ifx-ld__card:focus-visible { outline: 3px solid var(--ld-purple); outline-offset: 4px; }
.ifx-ld__card .ifx-ld__city-name { padding-right: 2.6rem; }
.ifx-ld__card-number { position: absolute; top: 1.75rem; right: 1.75rem; color: var(--ld-muted); font-family: "Montserrat", Arial, sans-serif; font-size: 1rem; }
.ifx-ld__empty { margin: 2rem 0; padding: 2rem; border-radius: 1rem; background: #fff; color: var(--ld-muted); text-align: center; }
.ifx-location-office { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(2rem, 6vw, 6rem); padding: clamp(2rem, 4.5vw, 4rem); border-radius: 1.5rem; color: #fff; background: linear-gradient(125deg, #292650, #3e3564); }
.ifx-location-office__intro h2 { margin: 0 0 1rem; max-width: 18ch; color: #fff; font-size: clamp(2rem, 3.2vw, 3rem); font-weight: 540; line-height: 1.08; letter-spacing: -.045em; text-wrap: balance; }
.ifx-location-office__intro > p { max-width: 35rem; margin: 0 0 1.5rem; color: #e1dbea; line-height: 1.65; }
.ifx-location-office__intro .ifx-location-office__eyebrow, .ifx-location-office__badge { margin: 0 0 1rem; color: #dfb9ed; font-family: "Montserrat", Arial, sans-serif; font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.ifx-location-office .ifx-location-office__booking { max-width: 100%; white-space: normal; }
.ifx-location-office__details { padding: 1.5rem 0 1.5rem 2rem; border-left: 1px solid #ffffff2b; align-self: center; }
.ifx-location-office__details h3 { margin: 0 0 1rem; color: #fff; font-size: 1.8rem; font-weight: 550; letter-spacing: -.04em; }
.ifx-location-office__details address { margin: 0 0 1rem; color: #e1dbea; font-size: .9rem; font-style: normal; line-height: 1.7; }
.ifx-location-office__details a { display: block; width: fit-content; max-width: 100%; margin-top: .5rem; color: #fff; font-size: .9rem; overflow-wrap: anywhere; text-underline-offset: .25em; }
.ifx-location-office a:focus-visible { outline: 3px solid #dfb9ed; outline-offset: 4px; }
@media (max-width: 900px) {
  .ifx-ld__header { grid-template-columns: 1fr; gap: 1.5rem; }
  .ifx-ld__header h2 { max-width: 23ch; }
  .ifx-ld__explorer { gap: 1.5rem; }
  .ifx-ld__featured { padding: 1.5rem; }
  .ifx-ld__city-list { grid-template-columns: 1fr; margin-top: 1rem; }
}
@media (max-width: 680px) {
  .ifx-location-office { grid-template-columns: 1fr; gap: 1.5rem; }
  .ifx-location-office__details { padding: 1.5rem 0 0; border-top: 1px solid #ffffff2b; border-left: 0; }
  .ifx-ld__filters { padding: 1rem; gap: .8rem; }
  .ifx-ld__filters label { flex-basis: 100%; }
  .ifx-ld__count { flex: 1; }
  .ifx-ld__explorer { grid-template-columns: 1fr; margin: 1.2rem 0 2rem; }
  .ifx-ld__map { max-width: 25rem; }
  .ifx-ld__city-list { grid-template-columns: 1fr 1fr; }
  .ifx-ld__cards { grid-template-columns: 1fr; gap: 1rem; }
  .ifx-ld__results-heading { display: block; }
  .ifx-ld__results-heading p { margin-top: .5rem; }
  .ifx-ld__featured { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ifx-location-directory * { transition: none !important; scroll-behavior: auto !important; }
}

/* Shared related cards: inherit the existing card and button design tokens. */
.ifx-related-section, .ifx-related-cards {
  --ifx-ink: var(--if-ink, #130d1c);
  --ifx-deep: var(--if-deep, #252046);
  --ifx-indigo: var(--if-indigo, #322d5e);
  --ifx-violet: var(--if-violet, #8e44a0);
  --ifx-mist: var(--if-mist, #f7f1f8);
  --ifx-line: var(--if-line, rgba(50, 45, 94, .16));
  --ifx-white: var(--if-white, #fff);
  --ifx-radius: clamp(1.25rem, 2.5vw, 2.25rem);
  --ifx-ease: cubic-bezier(.22, 1, .36, 1);
  --ifx-type-card: var(--if-type-card, clamp(1.45rem, 2.15vw, 2.15rem));
  --ifx-type-label: var(--if-type-label, .72rem);
  --ifx-type-button: var(--if-type-button, .74rem);
  --ifx-cta-height: var(--if-cta-height, 3.2rem);
  --ifx-cta-padding: var(--if-cta-padding, .8rem 1.25rem);
  --ifx-cta-tracking: var(--if-cta-tracking, .05em);
  min-width: 0;
  width: 100%;
}
.ifx-related-section__header { max-width: 48rem; margin-bottom: 2rem; }
.ifx-related-section__header h2 { margin: 0 0 1rem; color: var(--ifx-ink); font-size: clamp(2rem, 3.5vw, 3rem); font-weight: 540; letter-spacing: -.045em; line-height: 1.1; }
.ifx-related-section__header > p:last-child { color: var(--if-muted, #625b68); line-height: 1.65; }
.ifx-related-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.ifx-related-card.ifx-card { min-height: 0; background: var(--if-white, #fff); }
.ifx-related-card .ifx-card__title { max-width: 17ch; margin: 0; color: inherit; font-size: var(--ifx-type-card); font-weight: 540; letter-spacing: -.045em; line-height: 1.05; text-transform: none; }
.ifx-related-card .ifx-card__media { height: auto; aspect-ratio: 16 / 10; }
.ifx-related-card .ifx-card__body { gap: 1.1rem; padding: clamp(1.3rem, 2.4vw, 2rem); }
.ifx-related-cards--standard .ifx-card__media { flex: 0 0 auto; width: 100%; overflow: hidden; }
.ifx-related-cards--standard .ifx-card__image { display: block; width: 100%; height: 100%; object-fit: cover; }
.ifx-related-cards--standard .ifx-card__body { height: auto; flex: 1 1 auto; }
.ifx-related-card .ifx-card__excerpt { margin: 0; }
.ifx-related-card .ifx-related-card__link { margin-top: auto; align-self: flex-start; max-width: 100%; white-space: normal; text-align: left; }
.ifx-related-card .ifx-related-card__link .if-icon { flex: none; transition: transform 220ms ease; }
.ifx-related-card .ifx-related-card__link:is(:hover, :focus-visible) .if-icon { transform: translate(2px, -2px); }
.ifx-related-cards--compact { grid-template-columns: minmax(0, 1fr); gap: .65rem; }
.ifx-related-cards--compact .ifx-related-card { border-radius: .8rem; }
.ifx-related-cards--compact .ifx-related-card--has-image { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); }
.ifx-related-cards--compact .ifx-card__media { height: 100%; aspect-ratio: auto; }
.ifx-related-cards--compact .ifx-card__body { display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: center; gap: .6rem 1rem; padding: .85rem 1rem; }
.ifx-related-cards--compact .ifx-card__title { max-width: none; font-size: 1rem; line-height: 1.3; font-weight: 550; letter-spacing: -.02em; }
.ifx-related-cards--compact .ifx-card__excerpt { grid-column: 1 / -1; grid-row: 2; font-size: .85rem; }
.ifx-related-cards--compact .ifx-related-card__link { grid-column: 2; grid-row: 1; align-self: center; margin: 0; width: 44px; min-height: 44px; height: 44px; padding: 0; border-radius: 50%; }
.ifx-related-cards--compact .ifx-related-card__link .if-icon { font-size: 1.15rem; }
.ifx-related-cards--compact .ifx-related-card:hover { box-shadow: 0 7px 20px rgba(19, 13, 28, .07); }
.ifx-related-cards--compact .ifx-related-card--row { color: var(--ifx-card-text); text-decoration: none; }
.ifx-related-cards--compact .ifx-related-card--row:focus-visible { outline: 3px solid var(--ifx-violet); outline-offset: 4px; border-color: color-mix(in srgb, var(--ifx-violet) 50%, transparent); box-shadow: 0 7px 20px rgba(19, 13, 28, .07); }
.ifx-related-card--row:is(:hover, :focus-visible) .ifx-related-card__link { color: var(--ifx-white); background: var(--ifx-indigo); box-shadow: 0 14px 34px rgba(19, 13, 28, .2); }
.ifx-related-card--row:is(:hover, :focus-visible) .ifx-related-card__link .if-icon { transform: translate(2px, -2px); }
@media (max-width: 900px) { .ifx-related-cards--standard { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .ifx-related-cards--standard { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) {
  .ifx-related-cards *, .ifx-related-card .ifx-related-card__link .if-icon { transition: none !important; transform: none !important; }
}
