/* Hotel Premium Rooms Grid PRO - fully scoped */
.hprp-rooms{
  background: var(--hprp-bg, transparent) !important;
  padding: var(--hprp-py, 60px) 20px;
  width:100%;
  overflow:hidden;
  font-family: "Inter", sans-serif !important;
  position: relative;
}

/* themes */
.hprp-rooms.is-light{
  --hprp-title:#2c2c2c;
  --hprp-text:#6f6f6f;
  --hprp-muted:#9d9d9d;
}
.hprp-rooms.is-dark{
  --hprp-title:#ffffff;
  --hprp-text:rgba(255,255,255,.72);
  --hprp-muted:rgba(255,255,255,.56);
}

.hprp-rooms *,.hprp-rooms *::before,.hprp-rooms *::after{ box-sizing:border-box; }

.hprp-container{ max-width:1300px; margin:0 auto; }

.hprp-header{ text-align:center; margin-bottom:50px; }
.hprp-eyebrow{
  font-size:13px;
  letter-spacing:.25em;
  text-transform:uppercase;
  color: var(--hprp-gold, #b8842a);
  font-weight:600;
  margin-bottom:12px;
  display:block;
}
.hprp-title{
  font-family:"Cinzel", serif !important;
  font-size: clamp(28px, 4vw, 42px);
  font-weight:400;
  line-height:1.15;
  color: var(--hprp-title) !important;
  margin: 0 0 18px 0;
}
/* hard override theme heading colors */
.hprp-rooms h1,.hprp-rooms h2,.hprp-rooms h3,.hprp-rooms h4,.hprp-rooms h5,.hprp-rooms h6{
  color: var(--hprp-title) !important;
  font-family:"Cinzel", serif !important;
}

.hprp-desc{
  max-width:820px;
  margin:0 auto;
  font-size:16px;
  line-height:1.65;
  color: var(--hprp-text);
}

/* grid */
.hprp-grid{
  display:flex;
  flex-wrap:wrap;
  gap: var(--hprp-gap, 30px);
  margin-top:40px;
  justify-content:center;
}

/* columns on desktop */
.hprp-cols-4 .hprp-card{ flex: 1 1 calc(25% - var(--hprp-gap, 30px)); }
.hprp-cols-3 .hprp-card{ flex: 1 1 calc(33.333% - var(--hprp-gap, 30px)); }
.hprp-cols-2 .hprp-card{ flex: 1 1 calc(50% - var(--hprp-gap, 30px)); }

.hprp-card{
  min-width:250px;
  text-decoration:none !important;
  display:flex;
  flex-direction:column;
  color: inherit;
}

.hprp-media{
  width:100%;
  position:relative;
  overflow:hidden;
  padding-top: var(--hprp-pad, 125%); /* ratio */
  margin-bottom:18px;
  background: rgba(0,0,0,.06);
}

.hprp-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition: transform 1.2s cubic-bezier(.2,.8,.2,1);
}

.hprp-media::after{
  content:"";
  position:absolute;
  inset:15px;
  border:1px solid rgba(184,132,42,.55);
  opacity:0;
  transform: scale(1.05);
  transition: opacity .4s ease, transform .4s ease;
  pointer-events:none;
}

.hprp-card:hover .hprp-img{ transform: scale(1.1); }
.hprp-card:hover .hprp-media::after{ opacity:1; transform: scale(1); }

.hprp-info{ text-align:center; padding:0 10px; }
.hprp-room-title{
  font-family:"Cinzel", serif !important;
  font-size:17px;
  text-transform:uppercase;
  margin:0 0 8px 0;
  color: var(--hprp-title) !important;
  transition: color .3s ease;
  line-height:1.25;
}
.hprp-card:hover .hprp-room-title{ color: var(--hprp-gold, #b8842a) !important; }

.hprp-divider{
  width:25px;
  height:1px;
  background: var(--hprp-gold, #b8842a);
  margin:8px auto;
  opacity:.55;
}

.hprp-meta{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.1em;
  color: var(--hprp-muted);
  display:block;
}

/* footer */
.hprp-footer{ text-align:center; margin-top:30px; }
.hprp-decor{
  margin-bottom:22px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:15px;
}
.hprp-line{
  height:1px;
  width:60px;
  background: linear-gradient(90deg, transparent, var(--hprp-gold, #b8842a));
}
.hprp-line-rev{
  background: linear-gradient(270deg, transparent, var(--hprp-gold, #b8842a));
}
.hprp-star{
  width:16px; height:16px;
  display:inline-block;
  background: conic-gradient(from 0deg, var(--hprp-gold, #b8842a) 0 10%, transparent 10% 20%, var(--hprp-gold, #b8842a) 20% 30%, transparent 30% 40%, var(--hprp-gold, #b8842a) 40% 50%, transparent 50% 60%, var(--hprp-gold, #b8842a) 60% 70%, transparent 70% 80%, var(--hprp-gold, #b8842a) 80% 90%, transparent 90% 100%);
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
  opacity:.95;
}

.hprp-cta{
  display:inline-block;
  padding:16px 40px;
  background:#1a1a1a;
  color:#fff !important;
  text-decoration:none !important;
  font-size:12px;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  transition: transform .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
  border-radius:0;
}
.hprp-rooms.is-dark .hprp-cta{
  background: rgba(184,132,42,.14);
  border: 1px solid rgba(184,132,42,.45);
}
.hprp-cta:hover{
  background: var(--hprp-gold, #b8842a);
  transform: translateY(-2px);
  color:#111 !important;
}

/* responsive */
@media (max-width:1024px){
  .hprp-cols-4 .hprp-card,
  .hprp-cols-3 .hprp-card{ flex: 1 1 calc(50% - var(--hprp-gap, 30px)); }
}
@media (max-width:600px){
  .hprp-rooms{ padding:40px 15px; }
  .hprp-card{ flex: 1 1 100% !important; }
}

/* Animations */
.hprp-anim .hprp-header,
.hprp-anim .hprp-card{
  opacity:0;
  transform: translateY(18px);
  transition: opacity .85s ease, transform .85s ease;
}
.hprp-anim .hprp-in{
  opacity:1 !important;
  transform: translateY(0) !important;
}

/* Builder safe */
body.vc_editor .hprp-header,
body.vc_editor .hprp-card,
body.compose-mode .hprp-header,
body.compose-mode .hprp-card{
  opacity:1 !important;
  transform:none !important;
}
