/* ==========================================================================
   Listing page redesign — "Coworking Listing Redesign" mockup.

   Scope: the page head, the results area, the listing cards, the compare
   surfaces and the map panel. The filter bar is deliberately untouched and
   keeps its existing styles.
   ========================================================================== */

:root {
  --lr-navy: #03356b;
  --lr-orange: #ff8a00;
  --lr-ink: #1a2b3b;
  --lr-muted: #54606f;
  --lr-line: #e1eaf3;
  --lr-line-soft: #f1f4f8;
  --lr-tint: #edf1f5;
  --lr-open: #2e9e5b;
  --lr-open-bg: #e8f5ee;
  --lr-closed: #8a95a1;
  --lr-closed-bg: #f1f4f8;
}

/* --------------------------------------------------------------------------
   Page head
   -------------------------------------------------------------------------- */

.listing-head {
  position: relative;
  overflow: hidden;
  background: var(--lr-navy);
}

.listing-head__glow {
  position: absolute;
  top: -160px;
  right: -80px;
  width: 460px;
  height: 460px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(255, 138, 0, 0.18) 0%,
    rgba(255, 138, 0, 0) 62%
  );
  pointer-events: none;
}

/* The mockup's 1440 content shell, shared by the page head and the results
   area so both keep the same left edge. */
.listing-shell {
  max-width: 1440px !important;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 28px !important;
  padding-right: 28px !important;
}

.listing-head__inner {
  position: relative;
  padding-top: 26px;
  padding-bottom: 30px;
}

@media (max-width: 575.98px) {
  .listing-shell {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

.listing-head__row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.listing-head__title {
  color: #fff;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 8px;
}

.listing-head__summary {
  color: rgba(255, 255, 255, 0.7);
  font-size: 14.5px;
  margin: 0;
}

.listing-head__cta {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: var(--lr-orange);
  color: var(--lr-navy);
  font-size: 14px;
  font-weight: 700;
  padding: 12px 26px;
  border-radius: 50px;
  white-space: nowrap;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

.listing-head__cta:hover,
.listing-head__cta:focus-visible {
  background: #fff;
  color: var(--lr-navy);
}

/* Breadcrumb, recoloured for the navy ground. */
.listing-head__crumbs {
  margin-bottom: 12px;
}

.listing-head__crumbs .breadcrumb {
  margin-bottom: 0;
  gap: 4px;
  font-size: 12.5px;
}

.listing-head__crumbs .breadcrumb li p {
  margin-bottom: 0;
  font-size: 12.5px;
  color: #fff;
}

.listing-head__crumbs .breadcrumb li p.text-muted {
  color: rgba(255, 255, 255, 0.45) !important;
  padding-left: 2px;
  padding-right: 2px;
}

.listing-head__crumbs .breadcrumb-item {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.75) !important;
  padding: 0 2px;
}

.listing-head__crumbs .breadcrumb-item:hover {
  color: var(--lr-orange) !important;
}

/* --------------------------------------------------------------------------
   Results header + split layout
   -------------------------------------------------------------------------- */

.listing-results-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.listing-results-head__count {
  font-size: 14px;
  color: var(--lr-muted);
}

.listing-results-head__count strong {
  color: var(--lr-navy);
  font-weight: 700;
}

.listing-results-head__note {
  font-size: 12.5px;
  color: var(--lr-muted);
}

.listing-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 480px;
  gap: 24px;
  align-items: start;
}

.listing-split__main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* The CTA strips between cards bring their own bottom margin. */
.listing-split__main > div > .listing-cta {
  margin-top: 16px;
  margin-bottom: 0 !important;
}

.listing-split__aside {
  position: sticky;
  top: 88px;
  min-width: 0;
}

@media (max-width: 1399.98px) {
  .listing-split {
    grid-template-columns: minmax(0, 1fr) 380px;
  }
}

@media (max-width: 991.98px) {
  .listing-split {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   Listing card
   -------------------------------------------------------------------------- */

.lcard {
  background: #fff;
  border: 1.5px solid var(--lr-line);
  border-radius: 16px;
  overflow: hidden;
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.lcard--active {
  border-color: var(--lr-navy);
  box-shadow: 0 10px 28px rgba(3, 53, 107, 0.12);
}

.lcard__media {
  position: relative;
  min-height: 236px;
  background-color: var(--lr-tint);
  overflow: hidden;
}

.lcard__photo,
.lcard__media picture,
.lcard__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lcard__media picture img {
  height: 100%;
}

.lcard__scrim {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 64px;
  background: linear-gradient(
    180deg,
    rgba(3, 53, 107, 0.45) 0%,
    rgba(3, 53, 107, 0) 100%
  );
  pointer-events: none;
}

.lcard__premium {
  position: absolute;
  top: 12px;
  left: 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--lr-orange);
  color: var(--lr-navy);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 50px;
}

.lcard__save {
  position: absolute;
  top: 11px;
  right: 11px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.9);
  color: var(--lr-muted);
  backdrop-filter: blur(4px);
  transition: background 0.2s ease, color 0.2s ease;
}

.lcard__save--on {
  background: var(--lr-orange);
  color: var(--lr-navy);
}

/* Bottom-left corner badge: photo count, or the discount flash on day-pass and
   meeting-room cards. */
.lcard__badge {
  position: absolute;
  bottom: 12px;
  border-radius: 50px;
  padding: 5px 11px;
  font-size: 11px;
  font-weight: 500;
}

.lcard__badge--left { left: 12px; }
.lcard__badge--right { right: 12px; }

.lcard__badge--dark {
  background: rgba(3, 53, 107, 0.82);
  color: #fff;
  backdrop-filter: blur(4px);
}

.lcard__badge--positive {
  background: var(--lr-open);
  color: #fff;
  font-size: 11.5px;
  font-weight: 700;
  padding: 5px 12px;
}

.lcard__body {
  padding: 18px 22px;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.lcard__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 10px;
}

.lcard__head-main {
  min-width: 0;
}

.lcard__title-row {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
  margin-bottom: 5px;
}

.lcard__title {
  font-size: 19px;
  font-weight: 700;
  color: var(--lr-navy);
  line-height: 1.2;
  text-decoration: none;
}

.lcard__title:hover,
.lcard__title:focus-visible {
  color: var(--lr-orange);
}

.lcard__pill {
  font-size: 10.5px;
  font-weight: 600;
  padding: 4px 11px;
  border-radius: 50px;
  white-space: nowrap;
}

/* Open now, Ready To Move, Fully Furnished. */
.lcard__pill--positive {
  color: var(--lr-open);
  background: var(--lr-open-bg);
}

/* Closed, or a grade the mockup leaves unemphasised. */
.lcard__pill--muted,
.lcard__pill--neutral {
  color: var(--lr-closed);
  background: var(--lr-closed-bg);
}

/* Grade A, and the room type on meeting-room cards. */
.lcard__pill--accent {
  color: var(--lr-navy);
  background: var(--lr-tint);
}

/* Warm shell, bare shell — work still to do before moving in. */
.lcard__pill--warning {
  color: #8a5a1e;
  background: #fff7ed;
}

.lcard__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  font-size: 12.5px;
  color: var(--lr-muted);
}

.lcard__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.lcard__meta-item svg {
  color: var(--lr-orange);
  flex: 0 0 auto;
}

.lcard__compare {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11.5px;
  font-family: inherit;
  color: var(--lr-muted);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  white-space: nowrap;
  user-select: none;
}

.lcard__compare-box {
  width: 17px;
  height: 17px;
  border: 1.5px solid #c3ccd6;
  background: #fff;
  border-radius: 4px;
  font-size: 10px;
  color: #fff;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.lcard__compare-box--on {
  border-color: var(--lr-navy);
  background: var(--lr-navy);
}

.lcard__compare:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.lcard__chips {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.lcard__chip {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--lr-navy);
  background: var(--lr-tint);
  padding: 5px 12px;
  border-radius: 6px;
}

.lcard__plans {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 14px;
}

.lcard__plan {
  border: 1px solid var(--lr-tint);
  border-radius: 10px;
  padding: 9px 12px;
  min-width: 0;
}

.lcard__plan-label {
  display: block;
  font-size: 10.5px;
  color: var(--lr-muted);
  letter-spacing: 0.4px;
  margin-bottom: 2px;
}

.lcard__plan-price {
  display: block;
  font-size: 14px;
  font-weight: 700;
  color: var(--lr-navy);
  white-space: nowrap;
}

.lcard__plan-unit {
  font-size: 10.5px;
  font-weight: 400;
  color: var(--lr-muted);
}

/* --------------------------------------------------------------------------
   Spec strip — commercial, managed and meeting-room cards
   -------------------------------------------------------------------------- */

.lcard__specs {
  display: grid;
  border: 1px solid var(--lr-tint);
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 12px;
}

.lcard__specs--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lcard__specs--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lcard__specs--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.lcard__spec {
  padding: 9px 13px;
  border-right: 1px solid var(--lr-tint);
  min-width: 0;
}

.lcard__spec:last-child {
  border-right: none;
}

.lcard__spec-label {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.3px;
  color: var(--lr-muted);
  margin-bottom: 3px;
}

.lcard__spec-value {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-size: 14px;
  font-weight: 700;
  color: var(--lr-navy);
  line-height: 1.25;
}

.lcard__spec-link {
  border: none;
  background: none;
  padding: 0;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--lr-orange);
  cursor: pointer;
}

.lcard__spec-link:hover {
  text-decoration: underline;
}

/* --------------------------------------------------------------------------
   Price grid — day-pass "Pass types", virtual-office "Available plans"
   -------------------------------------------------------------------------- */

.lcard__grid-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.lcard__grid-title {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--lr-muted);
}

.lcard__grid-count {
  font-size: 10.5px;
  color: #8a95a1;
}

.lcard__cells {
  display: grid;
  border: 1px solid var(--lr-tint);
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 14px;
}

.lcard__cells--1 { grid-template-columns: minmax(0, 1fr); }
.lcard__cells--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lcard__cells--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lcard__cells--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.lcard__cells--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.lcard__cell {
  padding: 10px 13px;
  border-right: 1px solid var(--lr-tint);
  min-width: 0;
}

.lcard__cell:last-child {
  border-right: none;
}

.lcard__cell-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.3px;
  color: var(--lr-muted);
  line-height: 1.35;
  margin-bottom: 3px;
}

.lcard__cell-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex: 0 0 auto;
}

.lcard__cell-dot--open,
.lcard__cell-dot--other { background: var(--lr-navy); }
.lcard__cell-dot--premium { background: var(--lr-orange); }
.lcard__cell-dot--lounge { background: #7d9cc0; }

.lcard__cell-price {
  display: flex;
  align-items: baseline;
  gap: 5px;
  flex-wrap: wrap;
  font-size: 14px;
  font-weight: 700;
  color: var(--lr-navy);
  line-height: 1.25;
}

.lcard__cell-unit {
  font-size: 10.5px;
  font-weight: 400;
  color: var(--lr-muted);
}

.lcard__cell-note {
  display: block;
  font-size: 10.5px;
  margin-top: 2px;
}

.lcard__cell-note--positive { color: var(--lr-open); }
.lcard__cell-note--warning { color: #8a5a1e; }
.lcard__cell-note--negative { color: #c0392b; }

/* --------------------------------------------------------------------------
   Meeting-room equipment and slot strip
   -------------------------------------------------------------------------- */

.lcard__equipment {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.lcard__equipment-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--lr-tint);
  color: var(--lr-navy);
}

.lcard__slots {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.lcard__slots-label {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--lr-muted);
  margin-right: 2px;
}

.lcard__slot {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--lr-open);
  background: var(--lr-open-bg);
  border: 1px solid #c3e6d1;
  padding: 5px 11px;
  border-radius: 6px;
  white-space: nowrap;
}

.lcard__slot--taken {
  color: #9aa4af;
  background: var(--lr-line-soft);
  border-color: #e6ecf2;
  text-decoration: line-through;
}

.lcard__footer {
  margin-top: auto;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding-top: 14px;
  border-top: 1px solid var(--lr-line-soft);
}

.lcard__price-label {
  display: block;
  font-size: 11px;
  color: var(--lr-muted);
  letter-spacing: 0.4px;
  margin-bottom: 1px;
}

.lcard__price-line {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}

.lcard__price-was {
  font-size: 13px;
  color: #8a95a1;
  text-decoration: line-through;
}

.lcard__price-now {
  font-size: 23px;
  font-weight: 700;
  color: var(--lr-navy);
  line-height: 1;
}

.lcard__price-unit {
  font-size: 12.5px;
  color: var(--lr-muted);
}

.lcard__price-note {
  display: block;
  font-size: 11.5px;
  color: var(--lr-muted);
  margin-top: 3px;
}

.lcard__price-off {
  font-size: 11px;
  font-weight: 700;
  color: var(--lr-open);
  background: var(--lr-open-bg);
  padding: 3px 8px;
  border-radius: 5px;
}

.lcard__actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
}

.lcard__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13.5px;
  font-weight: 600;
  padding: 11px 22px;
  border-radius: 9px;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.lcard__btn--ghost {
  border: 1px solid var(--lr-line);
  background: #fff;
  color: var(--lr-navy);
}

.lcard__btn--ghost:hover,
.lcard__btn--ghost:focus-visible {
  border-color: var(--lr-navy);
  background: var(--lr-tint);
  color: var(--lr-navy);
}

.lcard__btn--solid {
  border: 1px solid var(--lr-navy);
  background: var(--lr-navy);
  color: #fff;
  padding: 11px 26px;
}

.lcard__btn--solid:hover,
.lcard__btn--solid:focus-visible {
  background: var(--lr-orange);
  border-color: var(--lr-orange);
  color: var(--lr-navy);
}

@media (max-width: 820px) {
  .lcard {
    grid-template-columns: 1fr;
  }

  .lcard__media {
    min-height: 200px;
  }

  .lcard__body {
    padding: 16px;
  }

  .lcard__plans {
    grid-template-columns: repeat(2, 1fr);
  }

  .lcard__specs--3,
  .lcard__specs--4,
  .lcard__cells--3,
  .lcard__cells--4,
  .lcard__cells--5 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lcard__spec:nth-child(2n),
  .lcard__cell:nth-child(2n) {
    border-right: none;
  }

  .lcard__spec:nth-child(n + 3),
  .lcard__cell:nth-child(n + 3) {
    border-top: 1px solid var(--lr-tint);
  }

  .lcard__footer {
    align-items: stretch;
  }

  .lcard__actions {
    width: 100%;
  }

  .lcard__btn {
    flex: 1 1 0;
  }
}

/* --------------------------------------------------------------------------
   Empty state
   -------------------------------------------------------------------------- */

.listing-empty {
  background: #fff;
  border: 1px solid var(--lr-line);
  border-radius: 16px;
  padding: 48px;
  text-align: center;
}

.listing-empty__title {
  font-size: 16px;
  font-weight: 600;
  color: var(--lr-navy);
  margin-bottom: 6px;
}

.listing-empty__hint {
  font-size: 13.5px;
  color: var(--lr-muted);
  margin-bottom: 18px;
}

.listing-empty__btn {
  border: 1px solid var(--lr-navy);
  background: var(--lr-navy);
  color: #fff;
  font-size: 13.5px;
  font-weight: 600;
  padding: 11px 26px;
  border-radius: 9px;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.listing-empty__btn:hover,
.listing-empty__btn:focus-visible {
  background: #fff;
  color: var(--lr-navy);
}

/* --------------------------------------------------------------------------
   Compare bar + modal
   -------------------------------------------------------------------------- */

.listing-compare-bar {
  position: sticky;
  top: 8px;
  z-index: 45;
  margin-bottom: 14px;
}

.listing-compare-bar__inner {
  background: var(--lr-navy);
  border-radius: 12px;
  padding: 11px 18px;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.listing-compare-bar__count {
  color: #fff;
  font-size: 13px;
  font-weight: 600;
}

.listing-compare-bar__names {
  color: rgba(255, 255, 255, 0.6);
  font-size: 12.5px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.listing-compare-bar__cta {
  margin-left: auto;
  border: none;
  background: var(--lr-orange);
  color: var(--lr-navy);
  font-size: 12.5px;
  font-weight: 700;
  padding: 8px 20px;
  border-radius: 50px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.2s ease;
}

.listing-compare-bar__cta:hover:not(:disabled) {
  background: #fff;
}

.listing-compare-bar__cta:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.listing-compare-bar__clear {
  border: none;
  background: none;
  color: rgba(255, 255, 255, 0.7);
  font-size: 12px;
  cursor: pointer;
  padding: 0;
}

.listing-compare-bar__clear:hover {
  color: #fff;
}

/* --------------------------------------------------------------------------
   Compare page — "Compare Spaces" mockup
   -------------------------------------------------------------------------- */

/* Height of the sticky site header, which the column head parks beneath. */
:root {
  --lcompare-header: 72px;
}

.lcompare {
  background: #f5f7fa;
}

/* Head ------------------------------------------------------------------- */

.lcompare__head {
  position: relative;
  overflow: hidden;
  background: var(--lr-navy);
}

.lcompare__head-inner {
  position: relative;
  padding-top: 24px;
  padding-bottom: 28px;
}

.lcompare__glow {
  position: absolute;
  top: -160px;
  right: -80px;
  width: 460px;
  height: 460px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(255, 138, 0, 0.18) 0%,
    rgba(255, 138, 0, 0) 62%
  );
  pointer-events: none;
}

.lcompare__crumbs {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.62);
  margin-bottom: 12px;
  flex-wrap: wrap;
}

.lcompare__crumb {
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
  color: rgba(255, 255, 255, 0.75);
  text-decoration: none;
}

.lcompare__crumb:hover,
.lcompare__crumb:focus-visible {
  color: var(--lr-orange);
}

.lcompare__crumb-current {
  color: #fff;
}

.lcompare__head-row {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.lcompare__title {
  color: #fff;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 8px;
}

.lcompare__note {
  color: rgba(255, 255, 255, 0.7);
  font-size: 14.5px;
  margin: 0;
}

.lcompare__head-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.lcompare__diff {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: transparent;
  color: #fff;
  font-size: 13.5px;
  font-weight: 600;
  padding: 11px 22px;
  border-radius: 50px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.lcompare__diff--on {
  background: var(--lr-orange);
  border-color: var(--lr-orange);
  color: var(--lr-navy);
}

.lcompare__back {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border: none;
  text-decoration: none;
  background: var(--lr-orange);
  color: var(--lr-navy);
  font-size: 13.5px;
  font-weight: 700;
  padding: 12px 24px;
  border-radius: 50px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.2s ease;
}

.lcompare__back:hover,
.lcompare__back:focus-visible {
  background: #fff;
}

/* Body ------------------------------------------------------------------- */

.lcompare__inner {
  padding-top: 24px;
  padding-bottom: 48px;
}

.lcompare__table {
  --lcompare-label: 220px;
  background: #fff;
  border: 1px solid var(--lr-line);
  border-radius: 18px;
}

/* Narrow screens scroll the table sideways instead of squeezing the columns.
   The column head is sticky only where no such scroller exists, since a
   horizontal scroll container is also the sticky element's scrollport and would
   stop it tracking the page. */
@media (max-width: 991.98px) {
  .lcompare__scroll {
    overflow-x: auto;
  }

  .lcompare__table--2 {
    min-width: 620px;
  }

  .lcompare__table--3 {
    min-width: 800px;
  }

  .lcompare__table--4 {
    min-width: 980px;
  }
}

.lcompare__grid {
  display: grid;
}

.lcompare__table--1 .lcompare__grid {
  grid-template-columns: var(--lcompare-label) repeat(1, minmax(0, 1fr));
}

.lcompare__table--2 .lcompare__grid {
  grid-template-columns: var(--lcompare-label) repeat(2, minmax(0, 1fr));
}

.lcompare__table--3 .lcompare__grid {
  grid-template-columns: var(--lcompare-label) repeat(3, minmax(0, 1fr));
}

.lcompare__table--4 .lcompare__grid {
  grid-template-columns: var(--lcompare-label) repeat(4, minmax(0, 1fr));
}

/* Column head ------------------------------------------------------------ */

.lcompare__thead {
  background: #fff;
  border-bottom: 1px solid var(--lr-line);
  border-radius: 17px 17px 0 0;
}

@media (min-width: 992px) {
  .lcompare__thead {
    position: sticky;
    top: var(--lcompare-header);
    z-index: 40;
  }
}

.lcompare__corner {
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border-right: 1px solid var(--lr-line-soft);
}

.lcompare__corner-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--lr-muted);
  margin-bottom: 6px;
}

.lcompare__corner-value {
  font-size: 15px;
  font-weight: 600;
  color: var(--lr-navy);
  line-height: 1.35;
}

.lcompare__col {
  position: relative;
  padding: 16px 18px 18px;
  border-right: 1px solid var(--lr-line-soft);
  background: #fff;
}

.lcompare__col--best {
  background: #fffaf3;
}

.lcompare__flag {
  position: absolute;
  top: 0;
  left: 18px;
  background: var(--lr-orange);
  color: var(--lr-navy);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 0 0 6px 6px;
}

.lcompare__remove {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid var(--lr-line);
  background: #fff;
  color: #9aa4af;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.lcompare__remove:hover,
.lcompare__remove:focus-visible {
  color: #c0392b;
  border-color: #c0392b;
}

.lcompare__thumb {
  position: relative;
  height: 112px;
  border-radius: 11px;
  overflow: hidden;
  background: var(--lr-tint);
  margin: 14px 0 12px;
}

.lcompare__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lcompare__premium {
  position: absolute;
  top: 9px;
  left: 9px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--lr-orange);
  color: var(--lr-navy);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 50px;
}

.lcompare__name {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: var(--lr-navy);
  line-height: 1.25;
  margin-bottom: 3px;
  text-decoration: none;
}

.lcompare__name:hover {
  color: var(--lr-orange);
}

.lcompare__locality {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--lr-muted);
  margin-bottom: 10px;
}

.lcompare__price {
  display: flex;
  align-items: baseline;
  gap: 7px;
  flex-wrap: wrap;
}

.lcompare__price-now {
  font-size: 22px;
  font-weight: 700;
  color: var(--lr-navy);
  line-height: 1;
}

.lcompare__price-unit {
  font-size: 11.5px;
  color: var(--lr-muted);
}

/* Rows ------------------------------------------------------------------- */

.lcompare__group {
  background: #f8fafc;
  border-bottom: 1px solid var(--lr-line-soft);
}

.lcompare__group-title {
  padding: 11px 22px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--lr-muted);
}

.lcompare__row {
  background: #fff;
  border-bottom: 1px solid var(--lr-line-soft);
}

.lcompare__label {
  padding: 14px 22px;
  font-size: 13.5px;
  color: var(--lr-muted);
  border-right: 1px solid var(--lr-line-soft);
  display: flex;
  align-items: center;
  gap: 8px;
}

.lcompare__differs {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #8a5a1e;
  background: #fff7ed;
  padding: 3px 8px;
  border-radius: 50px;
  white-space: nowrap;
}

.lcompare__cell {
  padding: 14px 18px;
  border-right: 1px solid var(--lr-line-soft);
  display: flex;
  align-items: center;
  gap: 8px;
}

.lcompare__cell--win {
  background: #fffaf3;
}

.lcompare__tick {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--lr-closed-bg);
  color: #9aa4af;
}

.lcompare__tick--on {
  background: var(--lr-open-bg);
  color: var(--lr-open);
}

.lcompare__value {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--lr-ink);
  line-height: 1.4;
}

.lcompare__value--strong {
  font-weight: 600;
  color: var(--lr-navy);
}

.lcompare__value--off {
  color: #9aa4af;
}

.lcompare__best {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--lr-navy);
  background: var(--lr-orange);
  padding: 3px 9px;
  border-radius: 50px;
  white-space: nowrap;
}

/* Next step -------------------------------------------------------------- */

.lcompare__foot {
  background: #f8fafc;
  border-radius: 0 0 17px 17px;
}

.lcompare__foot .lcompare__label {
  padding: 20px 22px;
}

.lcompare__actions {
  padding: 18px;
  border-right: 1px solid var(--lr-line-soft);
  display: grid;
  gap: 9px;
}

.lcompare__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-radius: 9px;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.lcompare__btn--solid {
  border: none;
  background: var(--lr-navy);
  color: #fff;
  font-size: 13.5px;
  font-weight: 600;
  padding: 11px 20px;
}

.lcompare__btn--solid:hover,
.lcompare__btn--solid:focus-visible {
  background: var(--lr-orange);
  color: var(--lr-navy);
}

.lcompare__btn--ghost {
  border: 1px solid var(--lr-line);
  background: none;
  color: var(--lr-navy);
  font-size: 13px;
  font-weight: 600;
  padding: 10px 20px;
}

.lcompare__btn--ghost:hover,
.lcompare__btn--ghost:focus-visible {
  border-color: var(--lr-navy);
  background: var(--lr-tint);
  color: var(--lr-navy);
}

/* Add another ------------------------------------------------------------ */

.lcompare__add {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  text-decoration: none;
  margin-top: 16px;
  border: 1.5px dashed #c3ccd6;
  border-radius: 14px;
  background: none;
  padding: 20px;
  color: var(--lr-muted);
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.lcompare__add:hover,
.lcompare__add:focus-visible {
  border-color: var(--lr-navy);
  color: var(--lr-navy);
  background: #fff;
}

.lcompare__add-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--lr-tint);
  color: var(--lr-navy);
  font-size: 18px;
  line-height: 1;
}

/* Empty state ------------------------------------------------------------ */

.lcompare__empty {
  background: #fff;
  border: 1px solid var(--lr-line);
  border-radius: 18px;
  padding: 72px 32px;
  text-align: center;
}

.lcompare__empty-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--lr-tint);
  margin: 0 auto 18px;
}

.lcompare__empty-title {
  font-size: 19px;
  font-weight: 600;
  color: var(--lr-navy);
  margin-bottom: 8px;
}

.lcompare__empty-text {
  font-size: 14px;
  color: var(--lr-muted);
  line-height: 1.6;
  max-width: 400px;
  margin: 0 auto 24px;
}

.lcompare__empty-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border: none;
  text-decoration: none;
  background: var(--lr-navy);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  padding: 13px 30px;
  border-radius: 9px;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.lcompare__empty-btn:hover,
.lcompare__empty-btn:focus-visible {
  background: var(--lr-orange);
  color: var(--lr-navy);
}

/* Corporate strip -------------------------------------------------------- */

.lcompare__cta {
  position: relative;
  overflow: hidden;
  background: var(--lr-navy);
  border-radius: 16px;
  margin-top: 20px;
  padding: 22px 28px;
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
}

.lcompare__cta-glow {
  position: absolute;
  top: -120px;
  right: -70px;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(255, 138, 0, 0.2) 0%,
    rgba(255, 138, 0, 0) 64%
  );
  pointer-events: none;
}

.lcompare__cta-text {
  position: relative;
}

.lcompare__cta-title {
  display: block;
  color: #fff;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.3;
}

.lcompare__cta-sub {
  display: block;
  color: rgba(255, 255, 255, 0.7);
  font-size: 13.5px;
  margin-top: 3px;
}

.lcompare__cta-btn {
  position: relative;
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: var(--lr-orange);
  color: var(--lr-navy);
  font-size: 14px;
  font-weight: 700;
  padding: 13px 28px;
  border-radius: 50px;
  white-space: nowrap;
  text-decoration: none;
  transition: background 0.2s ease;
}

.lcompare__cta-btn:hover,
.lcompare__cta-btn:focus-visible {
  background: #fff;
  color: var(--lr-navy);
}

@media (max-width: 767.98px) {
  .lcompare__head-inner {
    padding-top: 18px;
    padding-bottom: 20px;
  }

  .lcompare__title {
    font-size: 26px;
  }

  .lcompare__inner {
    padding-top: 16px;
    padding-bottom: 28px;
  }

  .lcompare__table {
    --lcompare-label: 148px;
  }

  .lcompare__corner,
  .lcompare__foot .lcompare__label {
    padding: 14px 14px;
  }

  .lcompare__label {
    padding: 12px 14px;
    font-size: 12.5px;
  }

  .lcompare__cell {
    padding: 12px 14px;
  }

  .lcompare__value {
    font-size: 12.5px;
  }

  .lcompare__cta {
    padding: 18px 18px;
  }

  .lcompare__cta-btn {
    margin-left: 0;
  }
}

/* --------------------------------------------------------------------------
   Map panel
   -------------------------------------------------------------------------- */

.map-panel {
  background: #fff;
  border: 1px solid var(--lr-line);
  border-radius: 16px;
  overflow: hidden;
  height: auto !important;
  min-height: 0;
}

.map-panel #mapContainer {
  padding-bottom: 0 !important;
}

.map-panel .map-container {
  position: relative;
  min-height: 0;
  height: 560px;
  border-radius: 0;
}

.map-panel .map-wrapper {
  height: 100%;
  width: 100%;
}

.map-panel__legend {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-top: 1px solid var(--lr-line-soft);
  font-size: 12px;
  color: var(--lr-muted);
}

.map-panel__legend-key {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.map-panel__legend-swatch {
  width: 9px;
  height: 9px;
  border-radius: 2px;
  background: var(--lr-orange);
}

/* Price pin */
.map-pin {
  display: inline-block;
  background: var(--lr-navy);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 7px 13px;
  border-radius: 50px 50px 50px 4px;
  white-space: nowrap;
  box-shadow: 0 6px 16px rgba(3, 53, 107, 0.28);
  transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
  transform-origin: bottom left;
}

.map-pin--active {
  background: var(--lr-orange);
  color: var(--lr-navy);
  transform: scale(1.12);
  z-index: 20;
}

/* Selected-space card inside the map panel */
.map-active-card {
  position: absolute;
  left: 16px;
  right: 16px;
  /* Clears the Google logo and attribution strip along the map's bottom edge. */
  bottom: 30px;
  z-index: 5;
  background: #fff;
  border-radius: 12px;
  padding: 12px;
  display: flex;
  align-items: center;
  gap: 13px;
  box-shadow: 0 12px 30px rgba(3, 53, 107, 0.2);
}

.map-active-card__thumb {
  flex: 0 0 74px;
  height: 58px;
  border-radius: 9px;
  overflow: hidden;
  background: var(--lr-tint);
}

.map-active-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.map-active-card__text {
  flex: 1;
  min-width: 0;
}

.map-active-card__name {
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--lr-navy);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.map-active-card__locality {
  display: block;
  font-size: 11.5px;
  color: var(--lr-muted);
  margin-top: 1px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.map-active-card__price {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--lr-navy);
  margin-top: 3px;
}

.map-active-card__unit {
  font-size: 10.5px;
  font-weight: 400;
  color: var(--lr-muted);
}

.map-active-card__cta {
  flex: 0 0 auto;
  background: var(--lr-navy);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  padding: 9px 16px;
  border-radius: 8px;
  white-space: nowrap;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

.map-active-card__cta:hover,
.map-active-card__cta:focus-visible {
  background: var(--lr-orange);
  color: var(--lr-navy);
}

@media (max-width: 1399.98px) {
  .map-panel .map-container {
    height: 480px;
  }
}

/* The selected-space card on the mobile map. It is the same card the desktop
   panel uses; these rules only give it a little more width on a phone and a
   taller tap target on the View button. */
@media (max-width: 575.98px) {
  .map-active-card {
    left: 12px;
    right: 12px;
    bottom: 26px;
    gap: 10px;
  }

  .map-active-card__cta {
    padding: 11px 18px;
    font-size: 12.5px;
  }
}
