.irm-wrap{
  direction:rtl;
  font-family:inherit;
  box-sizing:border-box;
}
.irm-wrap *,
.irm-wrap *::before,
.irm-wrap *::after{box-sizing:border-box}

/* Map */
#irm-map{
  max-width:100%;
  margin:1rem 0;
  border:1px solid #eee;
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
#irm-map svg{width:100%;height:auto;display:block}
#irm-map [id],
#irm-map [data-province]{cursor:pointer;transition:fill .16s ease, opacity .16s ease, fill-opacity .16s ease;pointer-events:auto}
#irm-map [data-province]{fill:#11509f;fill-opacity:.22}
#irm-map [data-province].irm-hover,
#irm-map [data-province].irm-selected{fill:#ff5703;fill-opacity:1}
#irm-map [id].hover,
#irm-map .irm-hover{opacity:.95}
.irm-title-text{color:#11509f}

/* Filter */
.irm-filter{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  direction:rtl;
}
.irm-filter .irm-select{
  position:relative;
  flex:1 1 220px;
  min-width:0;
}
.irm-filter select,
.irm-filter-control{
  width:100%;
  min-height:44px;
  padding:9px 14px 9px 42px;
  border:1px solid #dbe7f5;
  border-radius:999px;
  background-color:#f7f8f8;
  background-image:url('../assets/arrow-circle-down.svg');
  background-repeat:no-repeat;
  background-position:left 14px center;
  background-size:17px 17px;
  color:#111827;
  outline:none;
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  font:inherit;
}
.irm-filter select:focus{
  border-color:#ff5703;
  box-shadow:0 0 0 3px rgba(255,87,3,.16);
}
#irm-btn-search{
  flex:0 0 auto;
  min-height:44px;
  padding:9px 22px;
  border:0;
  border-radius:999px;
  background:#ff5703;
  color:#fff;
  font-weight:700;
  cursor:pointer;
  font:inherit;
  transition:background .16s ease, transform .16s ease;
}
#irm-btn-search:hover{background:#11509f}
#irm-btn-search:active{transform:translateY(1px)}

/* List */
#irm-list{
  list-style:none;
  padding:0;
  margin:1.25rem 0;
  display:grid;
  gap:18px;
}
#irm-list .irm-item{
  background:#FCFCFC;
  border:1px solid #e8edf4;
  border-radius:18px;
  padding:18px 22px;
  box-shadow:0 8px 24px rgba(0,0,0,.025);
}
#irm-list .irm-row-top{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:start;
}
#irm-list .irm-title-block{min-width:0}
#irm-list .irm-title-line{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
  line-height:1.9;
}
#irm-list .irm-title{
  color:#11509f;
  font-size:16px;
  font-weight:800;
}
#irm-list .irm-mgr-label{
  color:#1f2937;
  font-weight:400;
  font-size:14px;
}
#irm-list .irm-manager{
  color:#374151;
  font-size:14px;
  font-weight:400;
}
#irm-list .irm-sep{
  margin:0 6px;
  color:#cfd8e3;
}
#irm-list .irm-agency-badges{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}
#irm-list .irm-agency-badge{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 10px;
  border-radius:999px;
  background:#11509f;
  color:#fff;
  font-size:12px;
  font-weight:700;
  line-height:1.5;
}
#irm-list .irm-contact-list{
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
  max-width:430px;
}
#irm-list .irm-contact-btn{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:36px;
  padding:7px 12px;
  border:1px solid #dbe7f5;
  border-radius:999px;
  background:#fff;
  color:#111827 !important;
  text-decoration:none !important;
  font-size:13px;
  line-height:1.4;
  white-space:nowrap;
  transition:background .16s ease, border-color .16s ease, color .16s ease;
}
#irm-list .irm-contact-btn:hover{
  border-color:#ff5703;
  background:#fff3ed;
  color:#11509f !important;
}
#irm-list .irm-contact-label{
  color:#11509f;
  font-weight:800;
}
#irm-list .irm-contact-value{direction:ltr;unicode-bidi:plaintext}
#irm-list .irm-row-bottom{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(0,0,0,.11);
}
#irm-list .irm-address-right{
  display:flex;
  align-items:flex-start;
  gap:8px;
  min-width:0;
  color:#374151;
  font-size:14px;
  line-height:1.9;
}
#irm-list .irm-address-text{min-width:0;overflow-wrap:anywhere}
#irm-list .irm-province-inline{font-weight:700;color:#111827}
#irm-list .irm-ico{
  width:17px;
  height:17px;
  flex:0 0 17px;
  margin-top:5px;
  vertical-align:middle;
}
#irm-list .irm-route-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 22px;
  border-radius:999px;
  background:#ff5703;
  color:#fff !important;
  font-weight:800;
  font-size:13px;
  text-decoration:none !important;
  white-space:nowrap;
  transition:background .16s ease;
}
#irm-list .irm-route-badge:hover{background:#11509f}
#irm-list .irm-route-badge.disabled{opacity:.55;cursor:default;pointer-events:none}
.irm-empty,
.irm-loading,
.irm-error{
  padding:14px 16px;
  border-radius:14px;
  background:#fafafa;
  color:#6b7280;
  text-align:center;
}
.irm-error{color:#b42318;background:#fff4f2}

@media (max-width:768px){
  .irm-filter{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .irm-filter .irm-select,
  #irm-btn-search{width:100%;flex-basis:auto}
  #irm-btn-search{min-height:46px}

  #irm-list{gap:12px;margin-top:1rem}
  #irm-list .irm-item{
    padding:16px 14px;
    border-radius:16px;
  }
  #irm-list .irm-row-top,
  #irm-list .irm-row-bottom{
    grid-template-columns:1fr;
    gap:12px;
    text-align:center;
  }
  #irm-list .irm-title-line,
  #irm-list .irm-agency-badges,
  #irm-list .irm-contact-list{
    justify-content:center;
  }
  #irm-list .irm-title{font-size:14px}
  #irm-list .irm-mgr-label,
  #irm-list .irm-manager,
  #irm-list .irm-address-right,
  #irm-list .irm-contact-btn{font-size:13px}
  #irm-list .irm-contact-list{
    max-width:none;
    width:100%;
    display:grid;
    grid-template-columns:1fr;
  }
  #irm-list .irm-contact-btn{
    justify-content:center;
    width:100%;
    min-height:42px;
  }
  #irm-list .irm-address-right{
    justify-content:center;
    text-align:center;
  }
  #irm-list .irm-route-badge{
    width:100%;
    min-height:42px;
  }
  #irm-list .irm-sep{
    margin:0 4px;
  }
}

@media (min-width:769px) and (max-width:1024px){
  #irm-list .irm-row-top{
    grid-template-columns:1fr;
  }
  #irm-list .irm-contact-list{
    justify-content:flex-start;
    max-width:none;
  }
}
