/*
 * single.css - صفحات التفاصيل
 * يُحمَّل في صفحات الباقة والكروز والفندق والخدمة فقط.
 */

/* ---------------- شريط مسار التنقل ---------------- */

.bt-single__top {
  padding-block: var(--bt-sp-4);
  background: var(--bt-bg-alt);
  border-bottom: 1px solid var(--bt-border);
}

.bt-single__top .bt-breadcrumb { margin: 0; }

/* ---------------- المعرض ---------------- */

.bt-gallery { padding-block: var(--bt-sp-5) 0; }

.bt-gallery__main {
  border-radius: var(--bt-radius-lg);
  overflow: hidden;
}

.bt-gallery__item {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  background: var(--bt-bg-alt);
}

.bt-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bt-gallery__zoom {
  position: absolute;
  inset-block-end: var(--bt-sp-3);
  inset-inline-end: var(--bt-sp-3);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  color: var(--bt-text);
  transition: background var(--bt-transition), color var(--bt-transition);
}

.bt-gallery__item:hover .bt-gallery__zoom {
  background: var(--bt-primary);
  color: #fff;
}

.bt-gallery__main .bt-icon-btn {
  position: absolute;
  inset-block-start: 50%;
  z-index: 3;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, .9);
  border-color: transparent;
}

.bt-gallery__prev { inset-inline-start: var(--bt-sp-3); }
.bt-gallery__next { inset-inline-end: var(--bt-sp-3); }

.bt-gallery__thumbs { margin-top: var(--bt-sp-3); }

.bt-gallery__thumbs .swiper-slide {
  border-radius: var(--bt-radius-sm);
  overflow: hidden;
  cursor: pointer;
  opacity: .55;
  transition: opacity var(--bt-transition);
}

.bt-gallery__thumbs .swiper-slide-thumb-active,
.bt-gallery__thumbs .swiper-slide:hover { opacity: 1; }

.bt-gallery__thumbs img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* ---------------- التخطيط ---------------- */

.bt-single__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 350px;
  gap: var(--bt-sp-6);
  align-items: start;
}

.bt-single__main { min-width: 0; }

@media (max-width: 991px) {
  .bt-single__layout { grid-template-columns: 1fr; }
}

/* ---------------- ترويسة التفاصيل ---------------- */

.bt-single-head { margin-bottom: var(--bt-sp-5); }

.bt-single-head__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bt-sp-2);
  margin-bottom: var(--bt-sp-3);
}

.bt-tag {
  display: inline-block;
  padding: .2rem .75rem;
  border-radius: var(--bt-radius-pill);
  background: var(--bt-bg-alt);
  color: var(--bt-text-soft);
  font-size: var(--bt-fs-xs);
  font-weight: var(--bt-fw-medium);
}

a.bt-tag:hover { background: var(--bt-primary-light); color: var(--bt-primary-dark); }

.bt-tag--accent { background: var(--bt-secondary); color: #fff; }

.bt-single-head__title { margin-bottom: var(--bt-sp-2); }

.bt-single-head__place {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-bottom: var(--bt-sp-3);
  color: var(--bt-text-soft);
  font-size: var(--bt-fs-sm);
}

.bt-single-head__place i { color: var(--bt-primary); }

.bt-single-head__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bt-sp-2) var(--bt-sp-5);
  padding-block: var(--bt-sp-3);
  border-block: 1px solid var(--bt-border);
}

.bt-single-head__item {
  display: inline-flex;
  align-items: center;
  gap: var(--bt-sp-2);
  color: var(--bt-text-soft);
  font-size: var(--bt-fs-sm);
}

.bt-single-head__item i { color: var(--bt-primary); }
.bt-single-head__item .fa-star { color: var(--bt-star); }

/* ---------------- كتل المحتوى ---------------- */

.bt-block { margin-block: var(--bt-sp-6); }

.bt-block__title {
  margin-bottom: var(--bt-sp-4);
  padding-inline-start: var(--bt-sp-3);
  border-inline-start: 4px solid var(--bt-secondary);
  font-size: 1.35rem;
}

.bt-block__note {
  margin-top: var(--bt-sp-2);
  color: var(--bt-text-muted);
  font-size: var(--bt-fs-xs);
}

.bt-prose { color: var(--bt-text-soft); line-height: 1.95; }
.bt-prose h2, .bt-prose h3 { color: var(--bt-text); margin-top: var(--bt-sp-5); }
.bt-prose img { border-radius: var(--bt-radius); }
.bt-prose ul, .bt-prose ol { padding-inline-start: 1.5rem; }
.bt-prose li { margin-bottom: var(--bt-sp-2); }
.bt-prose blockquote {
  margin: var(--bt-sp-5) 0;
  padding: var(--bt-sp-4);
  border-inline-start: 4px solid var(--bt-primary);
  background: var(--bt-bg-alt);
  border-radius: var(--bt-radius);
}

/* ---------------- البرنامج اليومي ---------------- */

.bt-itinerary__day {
  flex-shrink: 0;
  padding: .2rem .7rem;
  border-radius: var(--bt-radius-pill);
  background: var(--bt-primary-light);
  color: var(--bt-primary-dark);
  font-size: var(--bt-fs-xs);
  font-weight: var(--bt-fw-semibold);
}

.bt-itinerary__title { flex: 1; }

.bt-itinerary__body { display: grid; gap: var(--bt-sp-3); }

.bt-itinerary__media {
  border-radius: var(--bt-radius);
  overflow: hidden;
  max-width: 320px;
}

/* ---------------- قوائم البنود ---------------- */

.bt-lists {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--bt-sp-5);
}

@media (max-width: 767px) {
  .bt-lists { grid-template-columns: 1fr; }
}

.bt-list {
  padding: var(--bt-sp-4);
  border: 1px solid var(--bt-border);
  border-radius: var(--bt-radius);
  background: var(--bt-bg);
}

.bt-list__title { margin-bottom: var(--bt-sp-3); font-size: 1.05rem; }

.bt-list__items { margin: 0; padding: 0; list-style: none; }

.bt-list__items li {
  display: flex;
  align-items: flex-start;
  gap: var(--bt-sp-2);
  margin-bottom: var(--bt-sp-2);
  color: var(--bt-text-soft);
  font-size: var(--bt-fs-sm);
}

.bt-list__items li:last-child { margin-bottom: 0; }

.bt-list__items i { margin-top: 5px; font-size: .85em; }
.bt-list--yes .bt-list__items i { color: var(--bt-success); }
.bt-list--no .bt-list__items i { color: var(--bt-danger); }
.bt-list--doc .bt-list__items i { color: var(--bt-primary); }

/* ---------------- الجداول ---------------- */

.bt-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--bt-border);
  border-radius: var(--bt-radius);
}

.bt-table { min-width: 460px; border-collapse: collapse; }

.bt-table th,
.bt-table td {
  padding: var(--bt-sp-3) var(--bt-sp-4);
  text-align: right;
  font-size: var(--bt-fs-sm);
  border-bottom: 1px solid var(--bt-border);
}

.bt-table thead th {
  background: var(--bt-bg-alt);
  color: var(--bt-text);
  font-weight: var(--bt-fw-semibold);
  white-space: nowrap;
}

.bt-table tbody tr:last-child th,
.bt-table tbody tr:last-child td { border-bottom: 0; }

.bt-table tbody th { font-weight: var(--bt-fw-semibold); }
.bt-table tbody td { color: var(--bt-text-soft); }
.bt-table tbody tr:hover { background: var(--bt-bg-alt); }

/* ---------------- مسار الكروز ---------------- */

.bt-route { margin: 0; padding: 0; list-style: none; }

.bt-route__item {
  position: relative;
  display: flex;
  gap: var(--bt-sp-4);
  padding-bottom: var(--bt-sp-5);
}

.bt-route__item:not(:last-child)::before {
  content: "";
  position: absolute;
  inset-block-start: 40px;
  inset-inline-start: 19px;
  width: 2px;
  height: calc(100% - 40px);
  background: var(--bt-border);
}

.bt-route__marker {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--bt-primary);
  color: #fff;
  font-weight: var(--bt-fw-bold);
}

.bt-route__port { margin-bottom: var(--bt-sp-1); font-size: 1.05rem; }
.bt-route__text { margin: 0; color: var(--bt-text-soft); font-size: var(--bt-fs-sm); }

/* ---------------- المرافق ---------------- */

.bt-amenities {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--bt-sp-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.bt-amenity {
  display: flex;
  align-items: center;
  gap: var(--bt-sp-2);
  padding: var(--bt-sp-3);
  border: 1px solid var(--bt-border);
  border-radius: var(--bt-radius);
  font-size: var(--bt-fs-sm);
}

.bt-amenity i { color: var(--bt-primary); }

/* ---------------- بوكس الحجز ---------------- */

.bt-booking {
  padding: var(--bt-sp-5);
  border: 1px solid var(--bt-border);
  border-radius: var(--bt-radius-lg);
  background: var(--bt-bg);
  box-shadow: var(--bt-shadow-sm);
}

.bt-booking.is-sticky {
  position: sticky;
  inset-block-start: var(--bt-sticky-top, 90px);
}

.bt-booking__price {
  padding-bottom: var(--bt-sp-4);
  margin-bottom: var(--bt-sp-4);
  border-bottom: 1px solid var(--bt-border);
}

.bt-booking__price-label {
  display: block;
  color: var(--bt-text-muted);
  font-size: var(--bt-fs-xs);
}

.bt-booking__price-value {
  font-size: 1.75rem;
  color: var(--bt-secondary);
  line-height: 1.3;
}

.bt-booking__price small {
  color: var(--bt-text-muted);
  font-size: var(--bt-fs-xs);
}

.bt-booking__facts {
  margin: 0 0 var(--bt-sp-4);
  padding: 0;
  list-style: none;
}

.bt-booking__facts li {
  display: flex;
  align-items: center;
  gap: var(--bt-sp-2);
  margin-bottom: var(--bt-sp-2);
  color: var(--bt-text-soft);
  font-size: var(--bt-fs-sm);
}

.bt-booking__facts i { color: var(--bt-primary); }

.bt-booking__actions { display: grid; gap: var(--bt-sp-2); }

.bt-booking__note {
  margin: var(--bt-sp-3) 0 0;
  color: var(--bt-text-muted);
  font-size: var(--bt-fs-xs);
  text-align: center;
}

/* ---------------- صفحة الخطأ ---------------- */

.bt-404 { max-width: 640px; margin-inline: auto; text-align: center; }
.bt-404 .bt-breadcrumb { justify-content: center; }
.bt-404 .bt-breadcrumb ol { justify-content: center; }
.bt-404__media { margin-bottom: var(--bt-sp-5); }
.bt-404__title { margin-bottom: var(--bt-sp-2); }
.bt-404__text { margin-bottom: var(--bt-sp-5); color: var(--bt-text-soft); }

.bt-404__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--bt-sp-3);
  margin-bottom: var(--bt-sp-6);
}

/* ---------------- الصفحات الثابتة ---------------- */

.bt-page { max-width: 860px; }

/* ---------------- نموذج طلب الحجز ---------------- */

.bt-booking__or {
  position: relative;
  margin: var(--bt-sp-4) 0;
  text-align: center;
  font-size: var(--bt-fs-xs);
  color: var(--bt-text-muted);
}

.bt-booking__or::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-start: 50%;
  border-top: 1px solid var(--bt-border);
}

.bt-booking__or span {
  position: relative;
  padding-inline: var(--bt-sp-2);
  background: var(--bt-bg);
}

.bt-booking-form { gap: var(--bt-sp-3); }

.bt-booking-form__title {
  margin: 0;
  font-size: 1.05rem;
}

.bt-booking-form .bt-input,
.bt-booking-form .bt-select,
.bt-booking-form .bt-textarea {
  padding: .6rem .85rem;
}

/* مساحة السهم داخل القائمة المنسدلة */
.bt-booking-form .bt-select {
  padding-inline-end: 2.25rem;
  background-position: left .75rem center;
}

.bt-booking-form .bt-textarea { min-height: 80px; }

.bt-form__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--bt-sp-3);
}

@media (max-width: 479px) {
  .bt-contact .bt-form__row { grid-template-columns: minmax(0, 1fr); }
}

.bt-required { color: var(--bt-danger); }

.bt-field__error {
  display: block;
  margin-top: 4px;
  color: var(--bt-danger);
  font-size: var(--bt-fs-xs);
}

.bt-field--error .bt-label { color: var(--bt-danger); }

.bt-booking__call { margin-top: var(--bt-sp-3); }

/* على الموبايل البوكس يأتي بعد المحتوى، فلا حاجة لتثبيته */
@media (max-width: 991px) {
  .bt-booking { margin-top: var(--bt-sp-5); }
}

/* ---------------- صفحة تواصل معنا ---------------- */

.bt-contact {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: var(--bt-sp-6);
  align-items: start;
}

.bt-contact__cards {
  display: grid;
  gap: var(--bt-sp-3);
}

.bt-contact__card {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: var(--bt-sp-3);
  align-items: center;
  padding: var(--bt-sp-4);
  border: 1px solid var(--bt-border);
  border-radius: var(--bt-radius);
  background: var(--bt-bg);
}

.bt-contact__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: var(--bt-radius);
  background: var(--bt-primary-light);
  color: var(--bt-primary);
  font-size: 1.15rem;
}

.bt-contact__label {
  display: block;
  color: var(--bt-text-muted);
  font-size: var(--bt-fs-xs);
}

.bt-contact__value { font-weight: var(--bt-fw-semibold); }
.bt-contact__value a { color: var(--bt-text); }
.bt-contact__value a:hover { color: var(--bt-primary); }
.bt-contact__value small { display: block; color: var(--bt-text-muted); font-weight: var(--bt-fw-normal); }

.bt-contact__form {
  padding: var(--bt-sp-5);
  border: 1px solid var(--bt-border);
  border-radius: var(--bt-radius-lg);
  background: var(--bt-bg);
  box-shadow: var(--bt-shadow-sm);
}

.bt-contact__form-title { margin-bottom: var(--bt-sp-4); font-size: 1.25rem; }

/* ارتفاع ثابت متدرّج بدل نسبة العرض للارتفاع، لأن النسبة مع الحد الأدنى للارتفاع تُجبر العنصر على عرض أكبر من الشاشة */
.bt-map {
  position: relative;
  margin-top: var(--bt-sp-6);
  height: clamp(280px, 38vw, 440px);
  overflow: hidden;
  border-radius: var(--bt-radius-lg);
  background: var(--bt-bg-alt);
}

.bt-map iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.bt-map__facade {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--bt-sp-3);
  padding: var(--bt-sp-5);
  text-align: center;
  background: var(--bt-bg-alt);
}

.bt-map__facade i { font-size: 2rem; color: var(--bt-primary); }
.bt-map__facade p { margin: 0; color: var(--bt-text-soft); font-size: var(--bt-fs-sm); }

.bt-map__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--bt-sp-2);
}

@media (max-width: 991px) {
  .bt-contact { grid-template-columns: 1fr; }
}
