/* ==========================================================================
   Hotels — search form uses fsc-* compact UI from style.css
   ========================================================================== */

/* Form validation (guest details page, legacy blocks) */

@media (max-width: 768px) {
  .hotel-result-card {
    flex-direction: column;
  }

  .hotel-result-card__media {
    width: 100%;
    height: 200px;
  }

  .hotel-result-card__price {
    align-items: flex-start;
    border-left: none;
    border-top: 1px solid #f1f5f9;
    min-width: 100%;
  }

  .hotel-detail-intro {
    margin-top: -30px;
    padding: 24px;
  }

  .hotel-hero-stats {
    margin-top: 24px;
  }

  .flight-detail-title {
    font-size: 2rem;
  }
}

.flight-section-label {
  font-size: 1.6rem;
  font-weight: 800;
  color: #0f172a;
  margin-top: 0;
  margin-bottom: 24px;
}

.hotel-about__text {
  line-height: 1.8;
  color: #475569;
  font-size: 1.05rem;
}

/* Form validation messages */
.hotel-form-validation {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(220, 53, 69, 0.35);
  background: rgba(220, 53, 69, 0.08);
  color: #842029;
  font-size: 0.92rem;
  line-height: 1.45;
}

.hotel-form-validation[hidden] {
  display: none !important;
}

.hotel-form-validation__msg {
  flex: 1;
}

.hotel-form-validation__list {
  margin: 0;
  padding-left: 1.15rem;
}

.hotel-form-validation__list li {
  margin: 0.15rem 0;
}

.hotel-form-validation i {
  margin-top: 0.1rem;
  flex-shrink: 0;
}

.hotel-guest-field--error .pax-field input,
.hotel-guest-field--error .pax-field select {
  border-color: #e53e3e !important;
  box-shadow: 0 0 0 3px rgba(229, 62, 62, 0.1) !important;
}

.hotel-tag {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  background: #eef2ff;
  color: #3730a3;
  margin-right: 0.35rem;
}

.hotel-tag--ok {
  background: #ecfdf5;
  color: #047857;
}

.hotel-tag--warn {
  background: #fff7ed;
  color: #c2410c;
}

.hotel-tag--muted {
  background: #f1f5f9;
  color: #475569;
}

.hotel-result-card__description {
  margin: 0.35rem 0 0;
  font-size: 0.92rem;
  line-height: 1.5;
  color: #475569;
}

.hotel-result-card__promo,
.hotel-result-card__policy {
  font-size: 0.85rem;
  margin: 0.25rem 0 0;
}

.hotel-result-card__stars-label {
  margin-left: 0.35rem;
  font-weight: 600;
}

.hotel-result-card__price-sub {
  display: block;
  font-size: 0.82rem;
  color: #64748b;
  margin-top: 0.15rem;
}

.hotel-result-card__tags {
  margin: 0.35rem 0 0;
}

.hotel-result-card__inclusion {
  font-size: 0.85rem;
  opacity: 0.85;
}

.circuit-msg--info {
  border-color: rgba(56, 189, 248, 0.35);
  background: rgba(56, 189, 248, 0.08);
  color: #0c4a6e;
}

.hotel-room-option__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-top: 0.35rem;
}

.hotel-room-detail-dl {
  margin: 0;
}

.hotel-room-detail-dl__row {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: 0.75rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid #f1f5f9;
}

.hotel-room-detail-dl__row dt {
  margin: 0;
  font-weight: 600;
  color: #64748b;
  font-size: 0.9rem;
}

.hotel-room-detail-dl__row dd {
  margin: 0;
  color: #0f172a;
}

.hotel-room-detail-dl__tax {
  color: #64748b;
  font-size: 0.9rem;
}

/* ==========================================================================
   Hotel search results — readable on hero gradient (match flight card contrast)
   ========================================================================== */
.hero-hotels .search-box {
  background: rgba(255, 255, 255, 0.9);
  border: var(--tne-border-subtle);
  box-shadow: 0 8px 32px rgba(13, 79, 139, 0.08);
}

.hero-hotels .search-box .search-box-title {
  color: var(--tne-primary-dark);
  padding: 1rem 1.25rem 0;
  border-top-left-radius: var(--tne-surface-radius);
  border-top-right-radius: var(--tne-surface-radius);
}

.hero-hotels .search-box .search-summary {
  color: var(--text-secondary);
  padding: 0.35rem 1.25rem 0;
  background: transparent;
  border-bottom: none;
}

.hero-hotels .hotel-results {
  position: relative;
  z-index: 1;
}

.hero-hotels .hotel-results .page-title {
  color: var(--tne-primary-dark);
}

.hero-hotels .hotel-results .page-lede {
  color: var(--text-secondary);
}

.hero-hotels .hotel-results .hotel-results__count {
  color: var(--tne-primary);
}

.hero-hotels .hotel-results .result-card.hotel-result-card {
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--tne-border-on-surface);
  box-shadow: 0 4px 20px rgba(13, 79, 139, 0.1);
  color: var(--text-primary);
}

.hero-hotels .hotel-results .result-card.hotel-result-card:hover {
  background: #fff;
  border-color: var(--tne-border-on-primary);
}

.hero-hotels .hotel-results .hotel-result-card__name {
  color: var(--tne-primary-dark);
}

.hero-hotels .hotel-results .hotel-result-card__description,
.hero-hotels .hotel-results .hotel-result-card__promo,
.hero-hotels .hotel-results .hotel-result-card__policy,
.hero-hotels .hotel-results .hotel-result-card__stay,
.hero-hotels .hotel-results .hotel-result-card__price-note,
.hero-hotels .hotel-results .hotel-result-card__price-sub {
  color: var(--text-secondary);
}

.hero-hotels .hotel-results .result-card__meta {
  color: var(--text-secondary);
}

.hero-hotels .hotel-results .hotel-result-card__inclusion {
  opacity: 1;
}

.hero-hotels .hotel-results .price-tag {
  color: var(--tne-primary);
}

.hero-hotels .hotel-results .empty-state {
  background: rgba(255, 255, 255, 0.94);
  border: var(--tne-border-subtle);
}

.hero-hotels .hotel-results .empty-state p {
  color: var(--text-secondary);
}

.hero-hotels .hotel-results .circuit-msg {
  background: rgba(255, 255, 255, 0.94);
  color: #9a3412;
  border: 1px solid var(--tne-border-on-warn);
}

.hero-hotels .hotel-results .circuit-msg--info {
  background: rgba(224, 242, 254, 0.96);
  color: #075985;
  border-color: rgba(14, 116, 144, 0.3);
}

.hero-hotels .hotel-results .circuit-msg--error {
  background: rgba(254, 226, 226, 0.96);
  color: #842029;
  border-color: rgba(220, 53, 69, 0.35);
}

.hero-hotels .hotel-results .fsc-validation,
.hero-hotels .hotel-results .hotel-form-validation {
  background: rgba(254, 226, 226, 0.96);
}

/* Full-screen loader while hotel details load from API */
.hotel-details-loader {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(15, 23, 42, 0.72);
  backdrop-filter: blur(6px);
}

.hotel-details-loader__panel {
  width: min(440px, 100%);
  padding: 2rem 1.75rem;
  border-radius: var(--radius-lg, 16px);
  background: #fff;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.28);
  text-align: center;
}

.hotel-details-loader__spinner {
  width: 48px;
  height: 48px;
  margin: 0 auto 1.25rem;
  border: 4px solid #e2e8f0;
  border-top-color: var(--accent, #dd6b20);
  border-radius: 50%;
  animation: hotel-details-spin 0.9s linear infinite;
}

@keyframes hotel-details-spin {
  to { transform: rotate(360deg); }
}

.hotel-details-loader__title {
  margin: 0 0 0.5rem;
  font-size: 1.35rem;
  font-weight: 800;
  color: #0f172a;
}

.hotel-details-loader__stage {
  margin: 0 0 1rem;
  font-size: 0.98rem;
  color: #475569;
}

.hotel-details-loader__track {
  height: 8px;
  margin: 0 0 0.85rem;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}

.hotel-details-loader__bar {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #dd6b20, #f59e0b);
  transition: width 0.45s ease;
}

.hotel-details-loader__hint {
  margin: 0;
  font-size: 0.88rem;
  color: #64748b;
  line-height: 1.45;
}

.hotel-detail-mount[hidden] {
  display: none !important;
}
