/* ---------- Layout / Grid ---------- */
.adr-search{
  max-width:1320px;
  margin:14px auto 8px;
  padding:0 12px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.adr-search input[type="text"]{
  flex:1 1 320px;
  padding:10px 12px;
  border:1px solid #dfe6f1;
  border-radius:12px;
  font-size:15px;
  box-sizing:border-box;
}
.adr-search button{
  padding:10px 16px;
  border-radius:12px;
  border:0;
  background:#0d6efd;
  color:#fff;
  font-weight:800;
  cursor:pointer;
}

/* ✅ Desktop default: 4 per row */
.adr-list{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:16px;
  max-width:1320px;
  margin:10px auto 20px;
  padding:0 12px;
}
/* Large tablets / small laptops: 3 per row */
@media(max-width:1200px){
  .adr-list{grid-template-columns:repeat(3, minmax(0, 1fr));}
}
/* Tablets: 2 per row */
@media(max-width:900px){
  .adr-list{grid-template-columns:repeat(2, minmax(0, 1fr));}
}
/* Mobile: 1 per row */
@media(max-width:680px){
  .adr-list{grid-template-columns:1fr;}
}


/* ---------- Card ---------- */
.adr-card{
  position:relative;
  width:100%;
  min-width:0;
  overflow:hidden; /* prevents overlap */
  border-radius:18px;
  background:#fff;
  border:1px solid #e9eef6;
  box-shadow:0 10px 26px rgba(0,0,0,.08);
  padding:16px 16px 18px;
  box-sizing:border-box;
}
.adr-topline{
  position:absolute;left:0;top:0;right:0;
  height:7px;border-radius:18px 18px 0 0;background:#0d6efd;
}

/* ---------- Header ---------- */
.adr-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-top:6px
}
.adr-header-left{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  flex:1 1 240px;
}
.adr-avatar{
  width:72px;height:72px;border-radius:50%;
  aspect-ratio:1/1;
  object-fit:cover;
  object-position:center 22%;
  background:#fff;
  border:6px solid #0d6efd;
  flex:0 0 auto;
}
.adr-namewrap{display:flex;flex-direction:column;gap:4px;min-width:0}
.adr-name{
  font-size:18px;
  font-weight:900;
  line-height:1.15;
  overflow-wrap:anywhere;
}
.adr-mini{
  font-size:13px;
  opacity:.75;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center
}
.adr-loc{
  display:flex;
  align-items:center;
  gap:8px;
  color:#0d6efd;
  font-weight:900;
  font-size:16px;
  white-space:nowrap;
}

/* ---------- Info Boxes ---------- */
/* ✅ Auto-fit so it wraps nicely and never breaks */
.adr-boxgrid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));
  gap:12px;
  margin:14px 0 12px;
}
.adr-box{
  border:1px solid #dfe6f1;
  border-radius:14px;
  padding:12px;
  box-shadow:0 6px 16px rgba(0,0,0,.08);
  background:#fff;
  min-height:96px;
  box-sizing:border-box;
}
.adr-boxhead{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px
}
.adr-boxtitle{
  font-weight:900;
  letter-spacing:.6px;
  font-size:12px;
}
.adr-boxval{
  font-size:15px;
  line-height:1.25;
  font-weight:400;
  overflow-wrap:anywhere; /* long bar names wrap */
}
.adr-boxval--id{
  overflow-wrap:normal;
  word-break:normal;
  white-space:nowrap;
}

/* ---------- Buttons ---------- */
.adr-actions{
  display:flex;
  gap:12px;
  margin-top:8px;
  flex-wrap:wrap
}
.adr-btn{
  flex:1 1 160px;
  padding:12px 12px;
  border-radius:12px;
  font-weight:900;
  text-align:center;
  text-decoration:none;
  font-size:16px;
  cursor:pointer;
  box-sizing:border-box;
}
.adr-btn-primary{background:#0d6efd;color:#fff;border:0}
.adr-btn-outline{background:#fff;color:#0d6efd;border:2px solid #0d6efd}

/* ---------- Contact panel ---------- */
.adr-contact{
  margin-top:12px;
  border:1px solid #e6e6e6;
  border-radius:12px;
  padding:12px;
  background:#fafafa
}
.adr-contact a{text-decoration:none}

/* ---------- Pagination ---------- */
.adr-pagination{max-width:1320px;margin:0 auto 24px;padding:0 12px;}
.adr-pagination ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0}
.adr-pagination li a, .adr-pagination li span{
  display:inline-block;
  padding:9px 12px;
  border-radius:12px;
  border:1px solid #dfe6f1;
  text-decoration:none;
  font-weight:800;
  font-size:14px;
}
.adr-pagination li .current{background:#0d6efd;color:#fff;border-color:#0d6efd}

/* ---------- Icons ---------- */
.adr-ico{display:inline-block;width:18px;height:18px;background-size:contain;background-repeat:no-repeat}
.adr-ico-pin{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%230d6efd'%3E%3Cpath d='M12 2c-3.314 0-6 2.686-6 6 0 4.5 6 14 6 14s6-9.5 6-14c0-3.314-2.686-6-6-6zm0 8.5a2.5 2.5 0 110-5 2.5 2.5 0 010 5z'/%3E%3C/svg%3E")}
.adr-ico-gavel{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%230d6efd'%3E%3Cpath d='M1 21h12v2H1v-2zm3.64-7.05l4.24-4.24 3.54 3.54-4.24 4.24-3.54-3.54zm7.07-7.07l2.12-2.12 6.36 6.36-2.12 2.12-6.36-6.36zM9.88 2.64l2.12-2.12 6.36 6.36-2.12 2.12-6.36-6.36z'/%3E%3C/svg%3E")}
.adr-ico-id{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%230d6efd'%3E%3Cpath d='M3 4h18a2 2 0 012 2v12a2 2 0 01-2 2H3a2 2 0 01-2-2V6a2 2 0 012-2zm0 2v12h18V6H3zm3 2h6v2H6V8zm0 4h6v2H6v-2zm10-2a3 3 0 110 6 3 3 0 010-6z'/%3E%3C/svg%3E")}
.adr-ico-brief{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%230d6efd'%3E%3Cpath d='M10 2h4a2 2 0 012 2v2h4a2 2 0 012 2v4H2V8a2 2 0 012-2h4V4a2 2 0 012-2zm0 4h4V4h-4v2zM2 14h20v6a2 2 0 01-2 2H4a2 2 0 01-2-2v-6z'/%3E%3C/svg%3E")}

/* ===== Square Card (1:1) - Robust (no aspect-ratio dependency) ===== */
.adr-card{
  position:relative;
  overflow:hidden;
}
.adr-card::before{
  content:"";
  display:block;
  padding-top:100%; /* 1:1 square */
}
.adr-card-inner{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  padding:14px;
  box-sizing:border-box;
}

/* Keep actions at bottom */
.adr-actions{ margin-top:auto; }

/* Slightly tighter so content fits inside square */
.adr-avatar{ width:70px; height:70px; border-width:6px; }
.adr-name{ font-size:18px; }
.adr-mini{ font-size:12px; }
.adr-box{ min-height:86px; padding:10px; }
.adr-boxtitle{ font-size:12px; }
.adr-boxval{ font-size:14px; }
.adr-btn{ padding:11px 10px; font-size:15px; }

/* ===== Square Card Fit Fix (show all info) ===== */
.adr-card-inner{
  padding:12px !important;
}

/* Make header compact */
.adr-header{ margin-top:4px !important; gap:8px !important; }
.adr-header-left{ gap:10px !important; }
.adr-avatar{ width:60px !important; height:60px !important; border-width:5px !important; }
.adr-name{ font-size:16px !important; }
.adr-mini{ font-size:11px !important; gap:6px !important; }
.adr-loc{ font-size:14px !important; gap:6px !important; }

/* Force 3 boxes in one row and smaller */
.adr-boxgrid{
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:8px !important;
  margin:10px 0 10px !important;
}
.adr-box{
  min-height:74px !important;
  padding:8px !important;
  border-radius:12px !important;
}
.adr-ico{ width:16px !important; height:16px !important; }
.adr-boxhead{ gap:6px !important; margin-bottom:6px !important; }
.adr-boxtitle{ font-size:11px !important; }
.adr-boxval{ font-size:13px !important; line-height:1.15 !important; }

/* Buttons compact */
.adr-actions{ gap:10px !important; }
.adr-btn{ padding:9px 10px !important; font-size:14px !important; border-radius:11px !important; }

/* Make sure contact panel doesn't push layout unless opened */
.adr-contact{ padding:10px !important; font-size:13px !important; }

/* ===== v3.0 Responsive Square Fix: always show buttons ===== */
.adr-card{ overflow:hidden !important; }
.adr-card-inner{
  position:absolute !important;
  inset:0 !important;
  display:block !important;
  padding:12px 12px 70px !important; /* reserve space for buttons */
  box-sizing:border-box !important;
}

/* Pin actions to bottom of card */
.adr-actions{
  position:absolute !important;
  left:12px !important;
  right:12px !important;
  bottom:12px !important;
  margin-top:0 !important;
  display:flex !important;
  gap:10px !important;
  flex-wrap:nowrap !important;
}
.adr-btn{
  flex:1 1 0 !important;
  padding:10px 10px !important;
  font-size:14px !important;
}

/* Boxes: wrap automatically if space is tight */
.adr-boxgrid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(110px, 1fr)) !important;
  gap:8px !important;
  margin:10px 0 10px !important;
}
.adr-box{
  min-height:70px !important;
  padding:8px !important;
}
.adr-boxval{
  font-size:13px !important;
  line-height:1.15 !important;
}

/* Make header slightly tighter */
.adr-name{ font-size:16px !important; }
.adr-mini{ font-size:11px !important; }
.adr-loc{ font-size:13px !important; }

/* ===== v3.1 Bigger Square Cards + Ensure Boxes Visible ===== */

/* Make cards bigger on desktop by showing 2 per row */
.adr-list{
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  max-width:1200px !important;
}
@media(max-width:1024px){
  .adr-list{ grid-template-columns:repeat(2, minmax(0, 1fr)) !important; }
}
@media(max-width:680px){
  .adr-list{ grid-template-columns:1fr !important; }
}

/* Increase available content space inside square */
.adr-card-inner{
  padding:14px 14px 86px !important; /* more room for boxes + reserve for buttons */
}

/* Boxes: slightly larger + readable */
.adr-boxgrid{
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:10px !important;
  margin:12px 0 12px !important;
}
.adr-box{
  min-height:92px !important;
  padding:10px !important;
}
.adr-boxtitle{ font-size:12px !important; }
.adr-boxval{ font-size:14px !important; line-height:1.2 !important; }

/* If space gets tight, wrap to 2 columns (not hide) */
@media(max-width:520px){
  .adr-boxgrid{ grid-template-columns:repeat(2, minmax(0, 1fr)) !important; }
}

/* Buttons pinned bottom */
.adr-actions{
  left:14px !important;
  right:14px !important;
  bottom:14px !important;
  gap:12px !important;
}
.adr-btn{ padding:12px 10px !important; font-size:15px !important; }


/* ===== Contact Modal (v3.2) ===== */
.adr-modal[hidden]{ display:none !important; }
.adr-modal{
  position:absolute;
  inset:0;
  z-index:20;
}
.adr-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.35);
}
.adr-modal__dialog{
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  border-radius:14px;
  background:#fff;
  border:1px solid #e9eef6;
  box-shadow:0 18px 50px rgba(0,0,0,.25);
  overflow:hidden;
}
.adr-modal__head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:10px 12px;
  background:#0d6efd;
  color:#fff;
}
.adr-modal__title{ font-weight:900; font-size:14px; }
.adr-modal__close{
  width:32px;height:32px;
  border-radius:10px;
  border:0;
  background:rgba(255,255,255,.18);
  color:#fff;
  font-size:20px;
  line-height:32px;
  cursor:pointer;
}
.adr-modal__body{
  padding:12px;
  font-size:13px;
}
.adr-modal__row{ margin:6px 0; }
.adr-modal__body a{ color:#0d6efd; text-decoration:none; font-weight:800; }

/* ===== Single Profile Page Layout (v3.3) ===== */
.adr-single-wrap{ padding:18px 0; }
.adr-single-container{ max-width:980px; margin:0 auto; padding:0 12px; }

/* On single page, show full card (not forced square) */
.adr-single-wrap .adr-card::before{ padding-top:0 !important; }
.adr-single-wrap .adr-card-inner{
  position:relative !important;
  inset:auto !important;
  padding:18px !important;
  display:block !important;
}
.adr-single-wrap .adr-actions{
  position:relative !important;
  left:auto !important; right:auto !important; bottom:auto !important;
  margin-top:16px !important;
}
/* Let boxes breathe a bit */
.adr-single-wrap .adr-boxgrid{ margin:16px 0 12px !important; gap:12px !important; }
.adr-single-wrap .adr-box{ min-height:110px !important; padding:12px !important; }

/* ===== Single page: bigger card + show contact under name (v3.5) ===== */
.adr-single-container{ max-width:1100px !important; }
.adr-single-wrap .adr-card{ border-radius:22px !important; }
.adr-single-wrap .adr-card-inner{ padding:24px !important; }
.adr-single-wrap .adr-avatar{ width:92px !important; height:92px !important; border-width:7px !important; }
.adr-single-wrap .adr-name{ font-size:26px !important; }
.adr-single-wrap .adr-mini{ font-size:14px !important; opacity:.85 !important; }
.adr-single-wrap .adr-boxgrid{ grid-template-columns:repeat(3, minmax(0, 1fr)) !important; }
@media(max-width:680px){
  .adr-single-wrap .adr-boxgrid{ grid-template-columns:1fr !important; }
}

/* ===== Single Profile Page Improvements (v3.6.1) ===== */
.adr-single-wrap{ padding:24px 0; }
.adr-single-container{
  max-width:1200px;
  margin:0 auto;
  padding:0 12px;
  display:flex;
  flex-direction:column;
  align-items:center;
}
/* Bigger card on single */
.adr-single-wrap .adr-card{
  width:min(980px, 100%);
  border-radius:22px;
}
.adr-single-wrap .adr-avatar{ width:92px; height:92px; border-width:7px; }
.adr-single-wrap .adr-name{ font-size:26px; }

/* Bigger location */
.adr-single-wrap .adr-loc{ font-size:20px; }

/* Contact boxes under card */
.adr-single-contact-grid{
  width:min(980px, 100%);
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  margin-top:14px;
}
@media(max-width:680px){
  .adr-single-contact-grid{ grid-template-columns:1fr; }
}

/* ===== Contact boxes inside card (single page) v3.6.2 ===== */
.adr-single-wrap .adr-boxgrid--contact{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  margin:12px 0 0;
}
@media(max-width:680px){
  .adr-single-wrap .adr-boxgrid--contact{ grid-template-columns:1fr; }
}

/* ===== Perfect center single card (v3.6.3) ===== */
.adr-single-wrap{
  min-height: calc(100vh - 120px);
  display:flex;
  align-items:center;
  justify-content:center;
}
.adr-single-container{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.adr-single-wrap .adr-card{
  margin:0 auto;
}
