:root{
  --frh-rp-card-bg:#ffffff;
  --frh-rp-card-text:#0f172a;
  --frh-rp-card-muted:#64748b;
  --frh-rp-stars:#f59e0b;
  --frh-rp-btn-bg:#2563eb;
  --frh-rp-btn-text:#ffffff;
  --frh-rp-btn-hover:#1d4ed8;
  --frh-rp-btn-soft:#eff6ff;
  --frh-rp-btn-border:#bfdbfe;
  --frh-rp-border:#e2e8f0;
  --frh-rp-radius:18px;
  --frh-rp-shadow:0 10px 30px rgba(15,23,42,.07);
  --frh-rp-shadow-hover:0 16px 38px rgba(37,99,235,.12);
  --frh-rp-padding:18px;
  --frh-rp-image-size:104px;
  --frh-rp-image-ratio:1/1;
  --frh-rp-transition:180ms ease;
}

/* -------------------------
   Repairman grid
-------------------------- */
.frh-rp-grid{
  display:grid;
  gap:20px;
}
.frh-rp-grid.cols-1{grid-template-columns:1fr}
.frh-rp-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.frh-rp-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.frh-rp-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}

@media (max-width:1100px){
  .frh-rp-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .frh-rp-grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:680px){
  .frh-rp-grid.cols-4,
  .frh-rp-grid.cols-3,
  .frh-rp-grid.cols-2{grid-template-columns:1fr}
}

/* -------------------------
   Repairman card
-------------------------- */
.frh-rp-card{
  position:relative;
  background:var(--frh-rp-card-bg);
  color:var(--frh-rp-card-text);
  border:1px solid var(--frh-rp-border);
  border-radius:var(--frh-rp-radius);
  box-shadow:var(--frh-rp-shadow);
  padding:var(--frh-rp-padding);
  display:flex;
  flex-direction:column;
  gap:14px;
  height:100%;
  overflow:hidden;
  transition:transform var(--frh-rp-transition),box-shadow var(--frh-rp-transition),border-color var(--frh-rp-transition);
}
.frh-rp-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:linear-gradient(90deg,#2563eb,#60a5fa,#93c5fd);
  opacity:.9;
}
.frh-rp-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--frh-rp-shadow-hover);
  border-color:#bfdbfe;
}

.frh-rp-card__media{
  display:flex;
  justify-content:center;
  padding-top:4px;
}
.frh-rp-card__media > a{
  position:relative;
  width:calc(var(--frh-rp-image-size) + 12px);
  height:calc(var(--frh-rp-image-size) + 12px);
  display:grid;
  place-items:center;
  border-radius:50%;
  background:conic-gradient(from 210deg,#1d4ed8,#60a5fa,#93c5fd,#2563eb,#1d4ed8);
  padding:3px;
  box-sizing:border-box;
  isolation:isolate;
}
.frh-rp-card__media > a::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  box-shadow:0 4px 14px rgba(37,99,235,.18);
  z-index:-1;
}
.frh-rp-card__img{
  width:var(--frh-rp-image-size);
  height:var(--frh-rp-image-size);
  aspect-ratio:var(--frh-rp-image-ratio);
  border-radius:50%;
  object-fit:cover;
  display:block;
  border:3px solid #fff;
  background:#f8fafc;
  box-sizing:border-box;
  border-radius: 50px !important;
}

.frh-rp-card__body{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  text-align:center;
}
.frh-rp-card__name{
  margin:0;
  font-size:1.08rem;
  line-height:1.5;
  font-weight:750;
}
.frh-rp-card__name a{
  color:var(--frh-rp-card-text);
  text-decoration:none;
  transition:color var(--frh-rp-transition);
}
.frh-rp-card__name a:hover{color:var(--frh-rp-btn-bg)}
.frh-rp-card__title{
  margin:0;
  color:var(--frh-rp-card-muted);
  font-size:.91rem;
  line-height:1.7;
}
.frh-rp-card__meta{
  margin:0;
  color:var(--frh-rp-card-muted);
  font-size:.9rem;
  line-height:1.7;
}

/* -------------------------
   Rating: centered everywhere
-------------------------- */
.frh-rp-stars{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  color:var(--frh-rp-stars);
  font-size:.9rem;
  line-height:1.4;
  text-align:center;
}
.frh-rp-stars__value{font-weight:700;color:#334155}
.frh-rp-stars__icons{
  letter-spacing:1.5px;
  line-height:1;
  font-size:1rem;
}
.frh-rp-stars__count{color:var(--frh-rp-card-muted)}

/* -------------------------
   Verification badge
-------------------------- */
.frh-rp-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:center;
  padding:4px 10px;
  border-radius:999px;
  font-size:.76rem;
  line-height:1.2;
  font-weight:650;
  border:1px solid #bfdbfe;
  background:#eff6ff;
  color:#1d4ed8;
}

/* -------------------------
   Buttons
-------------------------- */
.frh-rp-card__actions{
  width:100%;
  margin:6px 0 0;
}
.frh-rp-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:44px;
  box-sizing:border-box;
  padding:10px 16px;
  border-radius:12px;
  background:#0f3476;
  color:var(--frh-rp-btn-text)!important;
  text-decoration:none!important;
  font-size:.9rem;
  font-weight:700;
  border:1px solid transparent;
  box-shadow:0 6px 14px rgba(37,99,235,.16);
  transition:background var(--frh-rp-transition),transform var(--frh-rp-transition),box-shadow var(--frh-rp-transition);
}
.frh-rp-btn:hover{
  background:var(--frh-rp-btn-hover);
  transform:translateY(-1px);
  box-shadow:0 9px 18px rgba(37,99,235,.22);
}
.frh-rp-btn:focus-visible{
  outline:3px solid rgba(37,99,235,.22);
  outline-offset:2px;
}

/* -------------------------
   Profile page
-------------------------- */
.frh-rp-profile{
  background:#fff;
  color:var(--frh-rp-card-text);
  border:1px solid var(--frh-rp-border);
  border-radius:20px;
  box-shadow:0 14px 42px rgba(15,23,42,.07);
  overflow:hidden;
}
.frh-rp-profile__head{
  padding:28px 24px;
  border-bottom:1px solid var(--frh-rp-border);
  display:grid;
  grid-template-columns:auto 1fr;
  gap:20px;
  align-items:center;
  background:linear-gradient(180deg,#f8fbff 0%,#ffffff 100%);
}
.frh-rp-profile__avatar{
  display:flex;
  justify-content:center;
  align-items:center;
}
.frh-rp-profile__avatar img{
  width:132px;
  height:132px;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:50%;
  border:4px solid #fff;
  padding:3px;
  background:conic-gradient(from 210deg,#1d4ed8,#60a5fa,#93c5fd,#2563eb,#1d4ed8);
  background-clip:padding-box;
  box-shadow:0 0 0 3px #60a5fa,0 10px 25px rgba(37,99,235,.16);
  box-sizing:border-box;
}
.frh-rp-profile__name{
  margin:0 0 6px;
  font-size:1.45rem;
  line-height:1.4;
  font-weight:800;
}
.frh-rp-profile__subtitle{
  margin:0;
  color:var(--frh-rp-card-muted);
  line-height:1.8;
}

/* Center profile rating even if it sits outside the card body. */
.frh-rp-profile .frh-rp-stars,
.frh-rp-profile__rating .frh-rp-stars,
.frh-rp-profile .rating,
.frh-rp-profile .rating-stars{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  width:100%;
}

.frh-rp-profile__body{padding:24px}
.frh-rp-profile__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.frh-rp-box{
  background:#fff;
  border:1px solid var(--frh-rp-border);
  border-radius:14px;
  padding:15px;
  box-shadow:0 4px 14px rgba(15,23,42,.035);
}
.frh-rp-box h3{
  margin:0 0 9px;
  font-size:1rem;
  line-height:1.5;
}
.frh-rp-list{
  margin:0;
  padding:0;
  list-style:none;
}
.frh-rp-list li{margin:0 0 6px;color:#475569}

.frh-rp-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
}
.frh-rp-actions .frh-rp-btn{
  width:auto;
  flex:1 1 180px;
}

/* Give contact/telephone buttons more visual weight. */
.frh-rp-actions a[href^="tel:"],
.frh-rp-actions .frh-rp-btn--contact,
.frh-rp-actions .contact-button,
.frh-rp-actions .btn-contact{
  flex:1.35 1 260px;
  min-height:48px;
  background:#2563eb;
  box-shadow:0 8px 20px rgba(37,99,235,.18);
}
.frh-rp-actions a[href^="tel:"]:hover,
.frh-rp-actions .frh-rp-btn--contact:hover,
.frh-rp-actions .contact-button:hover,
.frh-rp-actions .btn-contact:hover{
  background:#1d4ed8;
}

.frh-rp-gallery{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.frh-rp-gallery img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:12px;
  border:1px solid var(--frh-rp-border);
  transition:transform var(--frh-rp-transition),box-shadow var(--frh-rp-transition);
}
.frh-rp-gallery img:hover{
  transform:scale(1.015);
  box-shadow:0 8px 18px rgba(15,23,42,.08);
}
.frh-rp-related{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid var(--frh-rp-border);
}

@media (max-width:768px){
  .frh-rp-profile__head{
    grid-template-columns:1fr;
    text-align:center;
    padding:24px 18px;
  }
  .frh-rp-profile__avatar{justify-content:center}
  .frh-rp-profile__body{padding:18px}
  .frh-rp-profile__grid{grid-template-columns:1fr}
  .frh-rp-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .frh-rp-actions .frh-rp-btn,
  .frh-rp-actions a[href^="tel:"],
  .frh-rp-actions .frh-rp-btn--contact,
  .frh-rp-actions .contact-button,
  .frh-rp-actions .btn-contact{flex-basis:100%;}
}

@media (prefers-reduced-motion:reduce){
  .frh-rp-card,
  .frh-rp-btn,
  .frh-rp-gallery img,
  .frh-rp-card__name a{transition:none}
}