/* ===== Travel Club - Hotel Detail (isolato) ===== */

:root{
  --tc-radius: 16px;
  --tc-shadow: 0 .75rem 2rem rgba(0,0,0,.10);
  --tc-border: 1px solid rgba(0,0,0,.08);
}

.tc-hotel-hero{
  border-radius: var(--tc-radius);
  overflow: hidden;
  box-shadow: var(--tc-shadow);
  border: var(--tc-border);
  background: #e9ecef;
}

.tc-hotel-heroMedia{
  height: 360px;
  position: relative;
}

.tc-hotel-heroMedia img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.tc-hotel-heroOverlay{
  position:absolute;
  left:0; right:0; bottom:0;
  padding: 18px;
  background: linear-gradient(to top, rgba(0,0,0,.68), rgba(0,0,0,0));
  color: #fff;
}

.tc-hotel-title{
  margin: 0 0 4px 0;
  font-weight: 700;
  line-height: 1.1;
}

.tc-hotel-sub{
  opacity: .85;
  font-size: .95rem;
}

.tc-metaRow{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
}

.tc-chip{
  border: var(--tc-border);
  background: #fff;
  padding: .35rem .6rem;
  border-radius: 999px;
  font-size: .85rem;
}

.tc-chip--soft{
  background: rgba(13,110,253,.06);
  border-color: rgba(13,110,253,.18);
  color: #0d6efd;
}

.tc-card{
  border-radius: var(--tc-radius);
  border: var(--tc-border);
  box-shadow: var(--tc-shadow);
  background: #fff;
}

.tc-card .tc-cardBody{
  padding: 1rem;
}

.tc-gallery{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: .5rem;
}

.tc-gallery a{
  display:block;
}

.tc-gallery img{
  width: 100%;
  height: 140px;
  object-fit: cover;
  border-radius: 12px;
  border: var(--tc-border);
  display: block;
}

@media (max-width: 575.98px){
  .tc-hotel-heroMedia{ height: 260px; }
  .tc-gallery{ grid-template-columns: 1fr; }
}

.tc-ctaSticky{
  position: sticky;
  top: 90px;
}

.tc-amenities{
  display:flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.tc-amenity{
  border: var(--tc-border);
  background: #fff;
  border-radius: 999px;
  padding: .25rem .55rem;
  font-size: .82rem;
}

.tc-servicesList .tc-service{
  border: var(--tc-border);
  border-radius: 14px;
  padding: .75rem;
  margin-bottom: .65rem;
}

.tc-serviceTop{
  display:flex;
  justify-content: space-between;
  gap: .75rem;
  align-items:flex-start;
}

.tc-serviceName{
  font-weight: 700;
}

.tc-serviceMeta{
  font-size: .85rem;
  white-space: nowrap;
}

.tc-muted{
  color: rgba(0,0,0,.65);
}

.tc-miniMap{
  height: 220px;
  border-radius: 14px;
  overflow: hidden;
  border: var(--tc-border);
  background: #e9ecef;
}

.bg-purple-subtle { background: rgba(111,66,193,.12) !important; }
.text-purple { color: #6f42c1 !important; }

.tc-pricebox{
  min-width: 170px;
  text-align: right;
  line-height: 1.15;
}
.tc-priceRow{
  display:flex;
  justify-content: space-between;
  gap: 12px;
  margin: 2px 0;
}
.tc-priceLbl{
  font-size: .78rem;
  color: #6c757d;
  white-space: nowrap;
}
.tc-priceVal{
  font-weight: 600;
  white-space: nowrap;
}
@media (max-width: 576px){
  .tc-pricebox{ min-width: 0; }
}
