.ph-rooms-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--ph-space-6,32px);
  margin:var(--ph-space-6,32px) 0 var(--ph-space-7,48px);
}
.ph-room-card{
  border:1px solid var(--ph-border, rgba(11,15,13,.12));
  border-radius:var(--ph-radius-3,26px);
  overflow:hidden;
  background:var(--ph-surface,#fff);
  box-shadow:0 14px 40px rgba(2,6,23,.10);
  transition:transform .18s ease, box-shadow .18s ease;
}
.ph-room-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 54px rgba(2,6,23,.14);
}
.ph-room-card__media{
  display:block;
  position:relative;
  overflow:hidden;
  background:rgba(11,15,13,.06);
  aspect-ratio:4 / 3;
}
.ph-room-card__media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s ease;
}
.ph-room-card:hover .ph-room-card__media img{transform:scale(1.04)}

.ph-room-card__body{padding:var(--ph-space-5,24px)}
.ph-room-card__title{margin:0 0 8px;font-size:var(--ph-step-1,1.25rem);line-height:1.15;letter-spacing:var(--ph-tracking-tight,-.03em)}
.ph-room-card__title a{text-decoration:none;color:inherit}
.ph-room-card__excerpt{margin:0 0 12px;color:var(--ph-muted,#445a55);font-size:var(--ph-step--1,.95rem)}
.ph-room-card__meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--ph-muted,#445a55);font-size:var(--ph-step--1,.95rem);margin:10px 0 16px}
.ph-room-card__meta span{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:var(--ph-radius-round,999px);
  background:rgba(15,118,110,.08);
  border:1px solid rgba(15,118,110,.14);
}
.ph-room-card__actions{display:flex;gap:10px}

.ph-booking-form{display:flex;flex-direction:column;gap:14px;margin:14px 0 24px}
.ph-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ph-booking-form label span{display:block;font-weight:650;margin:0 0 8px;font-size:var(--ph-step--1,.95rem)}
.ph-booking-form input,.ph-booking-form select,.ph-booking-form textarea{
  width:100%;
  padding:12px 12px;
  border:1px solid var(--ph-border, rgba(11,15,13,.14));
  border-radius:var(--ph-radius-1,12px);
  background:rgba(255,255,255,.9);
  font:inherit;
}
.ph-booking-form input:focus,.ph-booking-form select:focus,.ph-booking-form textarea:focus{
  outline:3px solid rgba(15,118,110,.20);
  outline-offset:2px;
}
.ph-payment-choice{border:1px solid var(--ph-border, rgba(11,15,13,.12));border-radius:var(--ph-radius-2,18px);padding:14px;background:var(--ph-surface,#fff)}
.ph-payment-choice legend{font-weight:700;padding:0 8px}
.ph-payment-choice label{display:block;margin:6px 0}

.ph-price-box{border:1px solid var(--ph-border, rgba(11,15,13,.12));border-radius:var(--ph-radius-3,26px);padding:18px;background:rgba(15,118,110,.06)}
.ph-price-box__status{font-weight:700;margin:0 0 10px}
.ph-price-box__lines{display:flex;flex-direction:column;gap:6px}
.ph-price-line{display:flex;justify-content:space-between;gap:12px}
.ph-price-box__total{margin-top:10px;font-weight:900}

@media (max-width: 960px){
  .ph-rooms-grid{grid-template-columns:1fr}
  .ph-form-grid{grid-template-columns:1fr}
}

@media (min-width: 980px){
  .ph-booking-form{
    display:grid;
    grid-template-columns:1fr 360px;
    gap:var(--ph-space-6,32px);
    align-items:start;
  }
  .ph-booking-form > .ph-form-grid,
  .ph-booking-form > label,
  .ph-booking-form > fieldset,
  .ph-booking-form > button{
    grid-column:1;
  }
  .ph-booking-form > .ph-price-box{
    grid-column:2;
    grid-row:1 / span 6;
    position:sticky;
    top:calc(76px + var(--ph-space-5,24px));
  }
  .ph-booking-form > button{justify-self:start}
}
