/* ════════════════════════════════════════════════════════════════
   HIDDEN ROUTES — WHERE TO STAY & TRIP.COM HOTEL GUIDE
   Luxury dark/gold editorial accommodation module
   ════════════════════════════════════════════════════════════════ */

:root {
  --hr-stay-gold: #C5A059;
  --hr-stay-gold-light: #E2BC78;
  --hr-stay-gold-pale: #dfc278;
  --hr-stay-gold-glow: rgba(197, 160, 89, 0.2);
  --hr-stay-bg-dark: #0c0805;
  --hr-stay-bg-card: rgba(18, 14, 10, 0.94);
  --hr-stay-bg-inner: rgba(28, 20, 14, 0.75);
  --hr-stay-border: rgba(197, 160, 89, 0.28);
  --hr-stay-border-hover: rgba(197, 160, 89, 0.65);
  --hr-stay-text-bright: #F5F0E8;
  --hr-stay-text-mid: #d6cebf;
  --hr-stay-text-muted: #9E9689;
  --hr-stay-radius: 12px;
  --hr-stay-font-title: 'Cinzel', 'Playfair Display', Georgia, serif;
  --hr-stay-font-body: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.hr-stay-section {
  width: 100%;
  max-width: 960px;
  margin: 52px auto;
  padding: 0 16px;
  box-sizing: border-box;
  clear: both;
}

.hr-stay-wrapper {
  position: relative;
  background: var(--hr-stay-bg-card);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid var(--hr-stay-border);
  border-radius: var(--hr-stay-radius);
  padding: 36px 32px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.65), 0 0 24px var(--hr-stay-gold-glow);
  box-sizing: border-box;
  overflow: hidden;
  transition: border-color 0.3s ease;
}

.hr-stay-wrapper:hover {
  border-color: var(--hr-stay-border-hover);
}

.hr-stay-wrapper::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--hr-stay-gold), transparent);
  pointer-events: none;
}

/* Header */
.hr-stay-header {
  margin-bottom: 24px;
}

.hr-stay-badge-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.hr-stay-badge-gold {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--hr-stay-gold);
  background: rgba(197, 160, 89, 0.12);
  border: 1px solid rgba(197, 160, 89, 0.3);
  padding: 4px 10px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.hr-stay-title {
  font-family: var(--hr-stay-font-title);
  font-size: clamp(1.4rem, 2.8vw, 1.95rem);
  color: var(--hr-stay-text-bright);
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 10px 0;
}

.hr-stay-subtitle {
  font-family: var(--hr-stay-font-body);
  font-size: 0.95rem;
  color: var(--hr-stay-text-mid);
  line-height: 1.6;
  margin: 0 0 16px 0;
}

/* Neighborhood guide */
.hr-stay-neighborhoods {
  background: var(--hr-stay-bg-inner);
  border: 1px solid rgba(197, 160, 89, 0.18);
  border-radius: 8px;
  padding: 18px 20px;
  margin-bottom: 28px;
}

.hr-stay-neighborhood-title {
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--hr-stay-gold);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.hr-stay-neighborhood-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  font-size: 0.85rem;
  color: var(--hr-stay-text-mid);
  line-height: 1.5;
}

.hr-stay-neighborhood-item strong {
  color: var(--hr-stay-text-bright);
  display: block;
  font-size: 0.9rem;
  margin-bottom: 2px;
}

/* 5 Hotel Categories Grid */
.hr-stay-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.hr-hotel-card {
  background: var(--hr-stay-bg-inner);
  border: 1px solid rgba(197, 160, 89, 0.2);
  border-radius: 10px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform 0.2s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.hr-hotel-card:hover {
  transform: translateY(-2px);
  border-color: var(--hr-stay-border-hover);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.45);
}

.hr-hotel-card-top {
  margin-bottom: 16px;
}

.hr-hotel-cat-badge {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 3px 8px;
  border-radius: 4px;
  display: inline-block;
  margin-bottom: 10px;
}

.badge-budget {
  background: rgba(16, 185, 129, 0.15);
  color: #34d399;
  border: 1px solid rgba(16, 185, 129, 0.35);
}

.badge-mid {
  background: rgba(56, 189, 248, 0.15);
  color: #38bdf8;
  border: 1px solid rgba(56, 189, 248, 0.35);
}

.badge-luxury {
  background: rgba(197, 160, 89, 0.2);
  color: #f1d198;
  border: 1px solid rgba(197, 160, 89, 0.45);
}

.badge-offbeat {
  background: rgba(244, 114, 182, 0.15);
  color: #f472b6;
  border: 1px solid rgba(244, 114, 182, 0.35);
}

.badge-hostel {
  background: rgba(251, 146, 60, 0.15);
  color: #fb923c;
  border: 1px solid rgba(251, 146, 60, 0.35);
}

.hr-hotel-name {
  font-family: var(--hr-stay-font-title);
  font-size: 1.08rem;
  font-weight: 700;
  color: var(--hr-stay-text-bright);
  line-height: 1.35;
  margin: 0 0 6px 0;
}

.hr-hotel-location {
  font-size: 0.78rem;
  color: var(--hr-stay-gold-pale);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 4px;
}

.hr-hotel-desc {
  font-family: var(--hr-stay-font-body);
  font-size: 0.85rem;
  color: var(--hr-stay-text-mid);
  line-height: 1.55;
  margin: 0;
}

.hr-stay-cta,
.hr-hotel-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  box-sizing: border-box;
  background: var(--hr-stay-gold);
  color: #0c0805 !important;
  font-family: var(--hr-stay-font-body);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 9px 14px;
  border-radius: 6px;
  text-decoration: none !important;
  transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
  margin-top: 14px;
}

.hr-stay-cta:hover,
.hr-hotel-cta:hover {
  background: var(--hr-stay-gold-light);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(197, 160, 89, 0.35);
  color: #000 !important;
  text-decoration: none !important;
}

/* Disclosure */
.hr-stay-disclosure {
  font-size: 0.75rem;
  color: var(--hr-stay-text-muted);
  line-height: 1.5;
  border-top: 1px solid rgba(197, 160, 89, 0.15);
  padding-top: 14px;
  font-style: italic;
  display: flex;
  align-items: center;
  gap: 6px;
}

@media (max-width: 640px) {
  .hr-stay-wrapper {
    padding: 24px 18px;
  }
  .hr-stay-grid {
    grid-template-columns: 1fr;
  }
  .hr-stay-neighborhood-list {
    grid-template-columns: 1fr;
  }
  /* 16px font-size protection against iOS input zoom */
  .hr-stay-section input,
  .hr-stay-section select,
  .hr-stay-section textarea {
    font-size: 16px !important;
  }
}

