.rh-portfolio-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.rh-badge{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  line-height:1;
  border:1px solid #e5e5e5;
  background:#fafafa;
  color:#222;
}

.rh-badge-link{
  text-decoration:none;
  display:inline-flex;
}

.rh-portfolio-field{
  display:inline-flex;
  gap:6px;
  align-items:center;
}

.rh-portfolio-field__label{
  font-weight:700;
}

.rh-portfolio-gallery{
  display:grid;
  gap:12px;
}

.rh-portfolio-gallery--cols-1{ grid-template-columns:repeat(1,minmax(0,1fr)); }
.rh-portfolio-gallery--cols-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.rh-portfolio-gallery--cols-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.rh-portfolio-gallery--cols-4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.rh-portfolio-gallery--cols-5{ grid-template-columns:repeat(5,minmax(0,1fr)); }
.rh-portfolio-gallery--cols-6{ grid-template-columns:repeat(6,minmax(0,1fr)); }

.rh-portfolio-gallery__item{
  margin:0;
  overflow:hidden;
  border-radius:14px;
  background:#f5f5f5;
}

.rh-portfolio-gallery__link{
  display:block;
  position:relative;
  text-decoration:none;
  cursor:zoom-in;
}

.rh-portfolio-gallery__link:after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.06);
  opacity:0;
  transition:opacity .2s ease;
}

.rh-portfolio-gallery__link:hover:after{
  opacity:1;
}

.rh-portfolio-gallery__img{
  width:100%;
  aspect-ratio:1/1;
  height:auto;
  display:block;
  object-fit:cover;
  border-radius:14px;
  transition:transform .25s ease;
}

.rh-portfolio-gallery__link:hover .rh-portfolio-gallery__img{
  transform:scale(1.03);
}

.rh-portfolio-gallery__caption{
  margin:6px 0 0;
  padding:0 2px 2px;
  font-size:13px;
  color:#666;
}

.rh-portfolio-attachments{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.rh-portfolio-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 16px;
  border-radius:10px;
  border:1px solid #111;
  background:#111;
  color:#fff;
  text-decoration:none;
  line-height:1.2;
}

.rh-portfolio-btn:hover{
  opacity:.9;
  color:#fff;
}

.rh-portfolio-details-table{
  width:100%;
  border-collapse:collapse;
  overflow:hidden;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
}

.rh-portfolio-details-table th,
.rh-portfolio-details-table td{
  padding:13px 16px;
  border-bottom:1px solid #e5e7eb;
  vertical-align:top;
  text-align:start;
}

.rh-portfolio-details-table tr:last-child th,
.rh-portfolio-details-table tr:last-child td{
  border-bottom:0;
}

.rh-portfolio-details-table__label{
  width:32%;
  font-weight:700;
  background:#fafafa;
  color:#111827;
}

.rh-portfolio-details-table__value{
  color:#374151;
}

.rh-lightbox-open{
  overflow:hidden;
}

.rh-portfolio-lightbox{
  position:fixed;
  z-index:999999;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:48px 70px;
  background:rgba(0,0,0,.86);
}

.rh-portfolio-lightbox.is-open{
  display:flex;
}

.rh-portfolio-lightbox__img{
  max-width:min(1100px, 92vw);
  max-height:82vh;
  object-fit:contain;
  border-radius:10px;
  box-shadow:0 20px 60px rgba(0,0,0,.35);
}

.rh-portfolio-lightbox__close,
.rh-portfolio-lightbox__nav{
  position:absolute;
  border:0;
  background:rgba(255,255,255,.12);
  color:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s ease;
}

.rh-portfolio-lightbox__close:hover,
.rh-portfolio-lightbox__nav:hover{
  background:rgba(255,255,255,.24);
}

.rh-portfolio-lightbox__close{
  top:18px;
  inset-inline-end:18px;
  width:44px;
  height:44px;
  border-radius:50%;
  font-size:30px;
  line-height:1;
}

.rh-portfolio-lightbox__nav{
  top:50%;
  transform:translateY(-50%);
  width:50px;
  height:70px;
  border-radius:12px;
  font-size:48px;
  line-height:1;
}

.rh-portfolio-lightbox__prev{ inset-inline-start:18px; }
.rh-portfolio-lightbox__next{ inset-inline-end:18px; }

.rh-portfolio-lightbox__caption{
  position:absolute;
  bottom:18px;
  left:20px;
  right:20px;
  text-align:center;
  color:#fff;
  font-size:14px;
}

@media (max-width: 767px){
  .rh-portfolio-gallery,
  .rh-portfolio-gallery--cols-3,
  .rh-portfolio-gallery--cols-4,
  .rh-portfolio-gallery--cols-5,
  .rh-portfolio-gallery--cols-6{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .rh-portfolio-details-table,
  .rh-portfolio-details-table tbody,
  .rh-portfolio-details-table tr,
  .rh-portfolio-details-table th,
  .rh-portfolio-details-table td{
    display:block;
    width:100%;
  }

  .rh-portfolio-details-table th,
  .rh-portfolio-details-table td{
    border-bottom:0;
  }

  .rh-portfolio-details-table tr{
    border-bottom:1px solid #e5e7eb;
  }

  .rh-portfolio-details-table tr:last-child{
    border-bottom:0;
  }

  .rh-portfolio-lightbox{
    padding:48px 14px;
  }

  .rh-portfolio-lightbox__nav{
    width:40px;
    height:54px;
    font-size:38px;
  }
}

/* Example per-slug styling. Override in Elementor/Theme CSS.
.rh-badge--seo{ background:#0b1220; color:#fff; border-color:#0b1220; }
.rh-badge--hosting{ background:#fff7e6; border-color:#ffd591; color:#874d00; }
.rh-badge--ui-ux{ background:#f0f5ff; border-color:#adc6ff; color:#10239e; }
.rh-badge--graphic-design{ background:#f6ffed; border-color:#b7eb8f; color:#135200; }
*/
