/* ═══════════════════════════════════════════════════════════════
   قالب لاند بيج — شاليهات واستراحات (RTL، موبايل أولًا) — الإصدار 3 «سهرة»
   هوية خاصة: قوس (arch) للصور، شريط علوي «جزيرة» عائم، شريط متحرك،
   مرافق تهبط بجاذبية تحت حبل إضاءة، شريط صور أفقي، تذكرة أسعار، سماء ليلية.
   اللون --accent يُضبط لكل عميل من داخل index.html (كتلة <style> في head).
   الألوان الداكنة تُشتق تلقائيًا من --accent عبر color-mix.
   ═══════════════════════════════════════════════════════════════ */

:root {
  --accent: #1e5a48;                    /* يُستبدل inline لكل عميل */
  --gold: #d1a954;
  --gold-2: #ecd08a;
  --gold-soft: rgba(209, 169, 84, 0.16);

  --sand: #f7f2e8;                      /* أرضية الصفحة */
  --sand-2: #eee6d5;
  --card: #fffcf5;
  --ink: #1c2420;
  --ink-2: #55605a;
  --line: rgba(28, 36, 32, 0.1);

  --cream: #f6f1e6;                     /* نص على الداكن */
  --cream-2: #c3ccc6;

  /* احتياطية — تُستبدل بالمشتقة من --accent إذا دعم المتصفح color-mix */
  --night: #0c1c17;
  --night-2: #143127;
  --tint: #e8efeb;
  --accent-deep: #17463a;

  --wa: #25d366;
  --wa-ink: #062814;

  --r: 22px;
  --shell: min(1120px, 92vw);
  --fd: 'Alexandria', 'Segoe UI', system-ui, sans-serif;
  --fb: 'IBM Plex Sans Arabic', 'Segoe UI', system-ui, sans-serif;
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

@supports (color: color-mix(in srgb, red, blue)) {
  :root {
    --night: color-mix(in srgb, var(--accent) 45%, #050d0a);
    --night-2: color-mix(in srgb, var(--accent) 66%, #050d0a);
    --tint: color-mix(in srgb, var(--accent) 9%, #ffffff);
    --accent-deep: color-mix(in srgb, var(--accent) 78%, #000000);
  }
}

/* ═══════════ الأساس ═══════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--fb);
  background: var(--sand);
  color: var(--ink);
  line-height: 1.8;
  font-size: 16.5px;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  padding-bottom: calc(84px + env(safe-area-inset-bottom));   /* مساحة الشريط السفلي بالجوال */
}
img { max-width: 100%; display: block; }
a { color: inherit; }
ul { list-style: none; }
h1, h2, h3, h4 { font-family: var(--fd); font-weight: 700; line-height: 1.4; text-wrap: balance; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; border-radius: 8px; }
.wrap { width: var(--shell); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ═══════════ الأزرار ═══════════ */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 11px 24px; border-radius: 999px;
  font-family: var(--fb); font-weight: 700; font-size: 1rem; text-decoration: none;
  cursor: pointer; border: 0; white-space: nowrap;
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease), background 0.25s, color 0.25s;
}
.btn svg { width: 20px; height: 20px; flex: none; }
.btn:active { transform: scale(0.97); }
/* لمعة خفيفة تمر على زر الواتساب الرئيسي كل بضع ثوانٍ */
.btn-shine { position: relative; overflow: hidden; }
.btn-shine::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, 0.38) 50%, transparent 65%);
  transform: translateX(-130%); animation: shine 5s ease-in-out 1.5s infinite;
}
@keyframes shine { 0% { transform: translateX(-130%); } 30%, 100% { transform: translateX(130%); } }
.btn-wa { background: var(--wa); color: var(--wa-ink); box-shadow: 0 10px 24px -14px rgba(37, 211, 102, 0.7); }
.btn-wa:hover { background: #3be07b; transform: translateY(-2px); box-shadow: 0 16px 30px -12px rgba(37, 211, 102, 0.6); }
.btn-line { background: transparent; color: var(--accent); box-shadow: inset 0 0 0 2px var(--accent); }
.btn-line:hover { background: var(--accent); color: #fff; transform: translateY(-2px); }
.btn-soft { background: rgba(246, 241, 230, 0.12); color: var(--cream); box-shadow: inset 0 0 0 1.5px rgba(246, 241, 230, 0.35); }
.btn-soft:hover { background: rgba(246, 241, 230, 0.2); transform: translateY(-2px); }
.btn-call { background: var(--card); color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--line); }
.btn-call:hover { transform: translateY(-2px); }

/* ═══════════ الطبقة العلوية الثابتة: شريط النموذج + الجزيرة ═══════════ */
.top-layer { position: fixed; top: 0; inset-inline: 0; z-index: 60; pointer-events: none; }
.demo-banner {
  pointer-events: auto;
  background: #f5b21b; color: #3b2405;
  text-align: center; font-weight: 700; font-size: 0.78rem; line-height: 1.5;
  padding: 6px 12px; border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}
.demo-banner-long { display: none; }

.island {
  pointer-events: auto;
  width: min(1120px, calc(100% - 20px));
  margin: 10px auto 0;
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 7px 8px 7px 16px;
  border-radius: 999px;
  background: rgba(247, 242, 232, 0.7);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  backdrop-filter: blur(16px) saturate(1.4);
  border: 1px solid rgba(28, 36, 32, 0.08);
  box-shadow: 0 10px 30px -18px rgba(12, 28, 23, 0.35);
  transition: background 0.35s, box-shadow 0.35s, transform 0.35s var(--ease);
}
.island.is-scrolled { background: rgba(247, 242, 232, 0.92); box-shadow: 0 14px 34px -16px rgba(12, 28, 23, 0.45); }
[dir="rtl"] .island { padding: 7px 16px 7px 8px; }

.brand {
  font-family: var(--fd); font-weight: 700; font-size: 1rem; line-height: 1;
  text-decoration: none; display: inline-flex; align-items: center; gap: 9px; white-space: nowrap; color: var(--ink);
}
.brand svg { width: 30px; height: 30px; color: var(--accent); flex: none; }
.brand .mark-moon { color: var(--gold); }

.island-nav { display: none; gap: 4px; align-items: center; }
.island-nav a {
  text-decoration: none; font-weight: 600; font-size: 0.9rem; color: var(--ink-2);
  padding: 7px 12px; border-radius: 999px; transition: background 0.2s, color 0.2s;
}
.island-nav a:hover { background: var(--tint); color: var(--accent); }

.island-actions { display: flex; align-items: center; gap: 6px; }
.island .btn-wa { min-height: 40px; padding: 8px 12px; font-size: 0.9rem; }
.island .btn-wa span { display: none; }
.lang-switch {
  font-weight: 700; font-size: 0.8rem; letter-spacing: 0.04em; text-decoration: none;
  min-height: 40px; display: inline-flex; align-items: center; padding: 0 12px; border-radius: 999px;
  color: var(--ink); background: rgba(28, 36, 32, 0.06); transition: background 0.2s;
}
.lang-switch:hover { background: rgba(28, 36, 32, 0.12); }

/* ═══════════ Hero — قوس الصورة ═══════════ */
.hero { position: relative; overflow: hidden; padding: 118px 0 34px; }
.hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(60% 40% at 90% 8%, rgba(209, 169, 84, 0.22), transparent 70%),
    radial-gradient(50% 45% at 8% 92%, var(--tint), transparent 70%);
}
.hero-grid { position: relative; display: grid; gap: 26px; }
.hero-visual { order: -1; position: relative; width: min(100%, 460px); margin-inline: auto; padding-block-start: 14px; padding-inline-end: 14px; }

.arch {
  position: relative; overflow: hidden;
  aspect-ratio: 4 / 4.3;
  border-radius: 999px 999px var(--r) var(--r);
  background: var(--sand-2);
  box-shadow: 0 46px 80px -44px rgba(12, 28, 23, 0.6);
  animation: archIn 1.2s var(--ease) both;
}
.arch img { width: 100%; height: 100%; object-fit: cover; animation: kenburns 24s ease-out both; }
@keyframes archIn { from { opacity: 0; transform: translateY(26px) scale(0.97); } to { opacity: 1; transform: none; } }
@keyframes kenburns { from { transform: scale(1.12); } to { transform: scale(1); } }

.arch-ring {
  position: absolute; z-index: 0; pointer-events: none;
  top: 0; inset-inline-end: 0; bottom: 28px; inset-inline-start: 28px;
  border: 1.5px solid var(--gold); opacity: 0.75;
  border-radius: 999px 999px var(--r) var(--r);
  animation: ringIn 1.4s var(--ease) 0.2s both;
}
@keyframes ringIn { from { opacity: 0; transform: translate(0, 12px); } to { opacity: 0.75; transform: none; } }

/* الشارات العائمة على القوس */
.tag-float {
  position: absolute; z-index: 2;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px; border-radius: 999px;
  background: rgba(255, 252, 245, 0.92);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  border: 1px solid rgba(28, 36, 32, 0.08);
  box-shadow: 0 16px 34px -18px rgba(12, 28, 23, 0.5);
  font-weight: 700; font-size: 0.86rem; color: var(--ink); white-space: nowrap;
  animation: bob 5.5s ease-in-out infinite alternate, tagIn 1s var(--ease) both;
}
.tag-float svg { width: 20px; height: 20px; color: var(--accent); flex: none; }
.tag-float.tag-a { top: 22%; inset-inline-start: -8px; animation-delay: 0s, 0.7s; }
.tag-float.tag-b { bottom: 12%; inset-inline-end: -6px; animation-delay: 1.2s, 0.95s; }
.tag-float.tag-b svg { color: var(--gold); }
@keyframes bob { from { transform: translateY(0); } to { transform: translateY(-9px); } }
@keyframes tagIn { from { opacity: 0; } to { opacity: 1; } }

.hero-copy { position: relative; z-index: 1; }
.kicker {
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--accent); font-weight: 700; font-size: 0.86rem; margin-bottom: 8px;
}
.kicker .orn { width: 54px; height: 12px; color: var(--gold); flex: none; }
.hero h1 {
  font-size: clamp(2.2rem, 8vw, 4.1rem);
  line-height: 1.25; color: var(--ink);
  margin-bottom: 8px;
}
[dir="ltr"] .hero h1 { font-size: clamp(2.1rem, 7vw, 3.7rem); }
.hero-lead { font-size: clamp(1.05rem, 2.5vw, 1.3rem); color: var(--ink-2); max-width: 38ch; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.hero-cta .btn { min-height: 54px; padding: 13px 28px; font-size: 1.05rem; }
.hero-note { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; font-size: 0.86rem; color: var(--ink-2); }
.hero-note svg { width: 18px; height: 18px; color: var(--gold); }

.rise { opacity: 0; transform: translateY(22px); animation: rise 0.9s var(--ease) forwards; }
.rise.d1 { animation-delay: 0.1s; } .rise.d2 { animation-delay: 0.22s; } .rise.d3 { animation-delay: 0.36s; } .rise.d4 { animation-delay: 0.5s; }
@keyframes rise { to { opacity: 1; transform: none; } }

/* ═══════════ الشريط المتحرك (مميزات) ═══════════ */
.ticker {
  position: relative; overflow: hidden;
  background: var(--night); color: var(--cream);
  border-block: 1px solid rgba(209, 169, 84, 0.35);
  padding: 13px 0;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.ticker-track { display: flex; width: max-content; animation: tickRtl 32s linear infinite; }
[dir="ltr"] .ticker-track { animation-name: tickLtr; }
.ticker:hover .ticker-track { animation-play-state: paused; }
.ticker ul { display: flex; flex: none; }
.tick { display: inline-flex; align-items: center; gap: 10px; padding-inline: 20px; font-weight: 600; font-size: 0.95rem; white-space: nowrap; }
.tick svg { width: 20px; height: 20px; color: var(--gold); }
.tick::after { content: ""; width: 7px; height: 7px; background: var(--gold); transform: rotate(45deg); margin-inline-start: 20px; opacity: 0.9; }
@keyframes tickRtl { to { transform: translateX(50%); } }
@keyframes tickLtr { to { transform: translateX(-50%); } }

/* ═══════════ هيكل الأقسام ═══════════ */
.sec { padding: 78px 0; scroll-margin-top: 110px; }
.head { max-width: 62ch; margin-bottom: 34px; }
.head.center { margin-inline: auto; text-align: center; }
.head.center .kicker { justify-content: center; }
h2 { font-size: clamp(1.65rem, 4.4vw, 2.4rem); color: var(--ink); }
.lead { margin-top: 10px; color: var(--ink-2); font-size: 1.02rem; }
.sec-cta { text-align: center; margin-top: 28px; }

/* الظهور عند التمرير — يعمل فقط مع فئة .js على html */
.js [data-fx] { opacity: 0; transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); transition-delay: var(--d, 0s); }
.js [data-fx="rise"] { transform: translateY(28px); }
.js [data-fx="scale"] { transform: scale(0.94); }
.js [data-fx="slide"] { transform: translateX(-30px); }
[dir="rtl"].js [data-fx="slide"] { transform: translateX(30px); }
.js [data-fx].on { opacity: 1; transform: none; }

/* ═══════════ المرافق — حبل الإضاءة + بطاقات تهبط ═══════════ */
.lights { display: block; width: 100%; height: auto; margin: -10px auto 8px; overflow: visible; }
.lights .wire { fill: none; stroke: var(--ink-2); stroke-width: 1.5; opacity: 0.55; vector-effect: non-scaling-stroke; }
.lights .cap { fill: var(--ink-2); opacity: 0.6; }
.lights .bulb { fill: var(--gold); }
.js .lights .bulb { fill: rgba(209, 169, 84, 0.25); }
.js .lights.lit .bulb {
  animation: glow 0.6s ease-out forwards, twinkle 3.4s ease-in-out infinite;
  animation-delay: calc(0.3s + var(--i) * 0.13s), calc(1.6s + var(--i) * 0.37s);
}
@keyframes glow { to { fill: var(--gold); filter: drop-shadow(0 0 5px rgba(236, 208, 138, 0.9)); } }
@keyframes twinkle { 0%, 100% { opacity: 1; } 50% { opacity: 0.72; } }

.perks { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.perk {
  display: flex; align-items: center; gap: 12px;
  background: var(--card); border: 1px solid var(--line); border-radius: 18px;
  padding: 14px 14px; font-weight: 600; font-size: 0.95rem; line-height: 1.4;
  box-shadow: 0 14px 30px -24px rgba(12, 28, 23, 0.45);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s;
}
.perk-ic {
  width: 44px; height: 44px; border-radius: 50%; flex: none;
  display: grid; place-items: center; background: var(--tint); color: var(--accent);
  transition: transform 0.4s var(--ease), background 0.3s, color 0.3s;
}
.perk-ic svg { width: 23px; height: 23px; }
.perk:hover { transform: translateY(-5px); box-shadow: 0 22px 40px -22px rgba(12, 28, 23, 0.4); border-color: rgba(209, 169, 84, 0.5); }
.perk:hover .perk-ic { transform: rotate(-8deg) scale(1.08); background: var(--gold-soft); color: var(--accent-deep); }
.perk:nth-child(odd) { --tilt: -6deg; }
.perk:nth-child(even) { --tilt: 6deg; }
.perk:nth-child(1) { --i: 0; } .perk:nth-child(2) { --i: 1; } .perk:nth-child(3) { --i: 2; } .perk:nth-child(4) { --i: 3; }
.perk:nth-child(5) { --i: 4; } .perk:nth-child(6) { --i: 5; } .perk:nth-child(7) { --i: 6; } .perk:nth-child(8) { --i: 7; }
.perk:nth-child(9) { --i: 8; } .perk:nth-child(10) { --i: 9; } .perk:nth-child(11) { --i: 10; } .perk:nth-child(12) { --i: 11; }
/* الهبوط بجاذبية: تسقط من الأعلى، ترتد مرتين، وتستقر — يبدأ حين يظهر القسم (script.js) */
.js .perks .perk { opacity: 0; }
.js .perks.landed .perk { animation: drop 1.3s forwards; animation-delay: calc(0.1s + var(--i) * 0.12s); }
@keyframes drop {
  0%   { opacity: 0; transform: translateY(-220px) rotate(var(--tilt)); animation-timing-function: cubic-bezier(0.5, 0, 1, 0.55); }
  8%   { opacity: 1; }
  52%  { transform: translateY(0) rotate(0deg) scale(1.03, 0.94); animation-timing-function: cubic-bezier(0, 0, 0.4, 1); }
  68%  { transform: translateY(-20px) rotate(calc(var(--tilt) * -0.25)) scale(1, 1); animation-timing-function: cubic-bezier(0.55, 0, 1, 0.6); }
  82%  { transform: translateY(0) scale(1.02, 0.97); animation-timing-function: cubic-bezier(0, 0, 0.4, 1); }
  92%  { transform: translateY(-6px); animation-timing-function: cubic-bezier(0.55, 0, 1, 0.6); }
  100% { opacity: 1; transform: none; }
}

/* ═══════════ شريط الصور الأفقي ═══════════ */
.strip-wrap { position: relative; }
.strip {
  --h: clamp(300px, 62vw, 430px);
  --gut: calc((100% - var(--shell)) / 2);
  display: flex; gap: 14px; overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; padding: 6px var(--gut) 16px;
  scroll-padding-inline: var(--gut);
  scrollbar-width: none; -webkit-overflow-scrolling: touch; cursor: grab;
}
.strip::-webkit-scrollbar { display: none; }
.strip.dragging { cursor: grabbing; scroll-snap-type: none; }
.strip.dragging .shot { pointer-events: none; }
.shot {
  position: relative; flex: 0 0 auto; height: var(--h); aspect-ratio: 3 / 4;
  border-radius: var(--r); overflow: hidden; background: var(--sand-2);
  scroll-snap-align: start; text-decoration: none; display: block;
  box-shadow: 0 20px 40px -28px rgba(12, 28, 23, 0.55);
}
.shot.wide { aspect-ratio: 4 / 3; }
.shot img { width: 100%; height: 100%; object-fit: cover; transform: translateX(var(--px, 0px)) scale(1.12); transition: transform 0.6s var(--ease); will-change: transform; }
.shot:hover img { transform: translateX(var(--px, 0px)) scale(1.18); }
.shot::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(12, 28, 23, 0.55), transparent 42%); }
.shot-n {
  position: absolute; z-index: 1; bottom: 14px; inset-inline-start: 14px;
  font-family: var(--fd); font-size: 0.85rem; color: #fff; padding: 4px 12px; border-radius: 999px;
  background: rgba(12, 28, 23, 0.5); border: 1px solid rgba(255, 255, 255, 0.25);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.strip-foot { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 8px; width: var(--shell); margin-inline: auto; }
.strip-bar { position: relative; height: 3px; width: min(220px, 55%); background: rgba(28, 36, 32, 0.12); border-radius: 3px; overflow: hidden; }
.strip-bar i { position: absolute; top: 0; bottom: 0; inset-inline-start: 0; width: 30%; background: var(--gold); border-radius: 3px; transition: inset-inline-start 0.15s linear, width 0.2s; }
.strip-btn {
  display: none; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line);
  background: var(--card); color: var(--accent); cursor: pointer; place-items: center; font: inherit;
  transition: background 0.2s, color 0.2s, transform 0.2s;
}
.strip-btn:hover { background: var(--accent); color: #fff; transform: translateY(-2px); }
.strip-btn svg { width: 20px; height: 20px; }
/* سهم «التالي» مرسوم للأمام (يمين) — في RTL «التالي» يسار فينقلب */
[dir="rtl"] .strip-next svg, [dir="ltr"] .strip-prev svg { transform: scaleX(-1); }
.strip-hint { font-size: 0.85rem; color: var(--ink-2); text-align: center; margin-top: 10px; }

/* ═══════════ الأسعار — تذكرة ═══════════ */
.ticket {
  position: relative; max-width: 640px; margin-inline: auto;
  display: grid; grid-template-columns: 1fr 1fr;
  background: var(--card); border: 1px solid var(--line); border-radius: 24px;
  box-shadow: 0 30px 60px -36px rgba(12, 28, 23, 0.5);
}
.ticket::before, .ticket::after {
  content: ""; position: absolute; left: 50%; width: 28px; height: 28px; border-radius: 50%;
  background: var(--sand); border: 1px solid var(--line); transform: translateX(-50%);
}
.ticket::before { top: -15px; clip-path: inset(50% 0 0 0); }
.ticket::after { bottom: -15px; clip-path: inset(0 0 50% 0); }
.stub { position: relative; padding: 30px 14px 26px; text-align: center; }
.stub + .stub { border-inline-start: 2px dashed rgba(28, 36, 32, 0.2); }
.stub.hot { background: linear-gradient(180deg, var(--gold-soft), transparent 75%); }
.stub:first-child { border-start-start-radius: 24px; border-end-start-radius: 24px; }
.stub:last-child { border-start-end-radius: 24px; border-end-end-radius: 24px; }
.stub h3 { font-size: 1.08rem; }
.stub .days { color: var(--ink-2); font-size: 0.85rem; margin: 2px 0 12px; }
.amount { font-family: var(--fd); font-size: clamp(2.2rem, 7.5vw, 3rem); line-height: 1; color: var(--accent); font-weight: 700; }
.amount small { display: block; font-family: var(--fb); font-size: 0.8rem; font-weight: 500; color: var(--ink-2); margin-top: 8px; }
.ticket.single { grid-template-columns: 1fr; max-width: 440px; }
.ticket.single .stub { padding: 34px 20px 30px; }
.ticket.single .amount { font-size: clamp(1.5rem, 5vw, 2rem); }

.fully-booked-banner {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  max-width: 560px; margin: 26px auto 0; padding: 12px 18px; border-radius: 14px;
  background: #fde8e8; color: #8f1d1d; border: 1px solid #f3b4b4;
  font-weight: 700; font-size: 0.92rem; text-align: center;
}
.fully-booked-banner[hidden] { display: none; }

/* ═══════════ سماء الليل — أوقات الإقامة ═══════════ */
.night {
  position: relative; overflow: hidden; background: var(--night); color: var(--cream);
  padding: 96px 0 100px;
}
.night::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.85;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420' viewBox='0 0 420 420'%3E%3Ccircle cx='137.4' cy='66.1' r='1.6' fill='%23ecd08a' fill-opacity='0.84'/%3E%3Ccircle cx='42.8' cy='244.1' r='1.3' fill='%23ecd08a' fill-opacity='0.4'/%3E%3Ccircle cx='176.3' cy='103.2' r='1.3' fill='%23ffffff' fill-opacity='0.85'/%3E%3Ccircle cx='55.0' cy='96.0' r='1.6' fill='%23ffffff' fill-opacity='0.39'/%3E%3Ccircle cx='245.2' cy='24.4' r='0.9' fill='%23ecd08a' fill-opacity='0.87'/%3E%3Ccircle cx='123.3' cy='63.4' r='0.8' fill='%23ffffff' fill-opacity='0.69'/%3E%3Ccircle cx='285.0' cy='46.5' r='1.3' fill='%23ffffff' fill-opacity='0.57'/%3E%3Ccircle cx='229.7' cy='29.9' r='0.8' fill='%23ffffff' fill-opacity='0.65'/%3E%3Ccircle cx='223.1' cy='324.2' r='1.1' fill='%23ffffff' fill-opacity='0.62'/%3E%3Ccircle cx='127.5' cy='331.3' r='1.6' fill='%23ffffff' fill-opacity='0.4'/%3E%3Ccircle cx='127.7' cy='208.0' r='1.0' fill='%23ffffff' fill-opacity='0.52'/%3E%3Ccircle cx='407.8' cy='52.6' r='1.1' fill='%23ecd08a' fill-opacity='0.56'/%3E%3Ccircle cx='388.5' cy='177.7' r='1.6' fill='%23ecd08a' fill-opacity='0.68'/%3E%3Ccircle cx='329.1' cy='341.2' r='1.0' fill='%23ffffff' fill-opacity='0.71'/%3E%3Ccircle cx='242.9' cy='192.0' r='0.8' fill='%23ffffff' fill-opacity='0.63'/%3E%3Ccircle cx='277.6' cy='29.0' r='1.6' fill='%23ffffff' fill-opacity='0.7'/%3E%3Ccircle cx='284.7' cy='187.6' r='1.6' fill='%23ffffff' fill-opacity='0.75'/%3E%3Ccircle cx='13.3' cy='194.2' r='0.9' fill='%23ffffff' fill-opacity='0.65'/%3E%3Ccircle cx='93.9' cy='122.4' r='1.6' fill='%23ecd08a' fill-opacity='0.58'/%3E%3Ccircle cx='363.0' cy='37.2' r='1.1' fill='%23ffffff' fill-opacity='0.52'/%3E%3Ccircle cx='60.4' cy='181.4' r='1.3' fill='%23ecd08a' fill-opacity='0.6'/%3E%3Ccircle cx='151.8' cy='368.3' r='0.9' fill='%23ecd08a' fill-opacity='0.46'/%3E%3Ccircle cx='99.6' cy='100.1' r='1.1' fill='%23ffffff' fill-opacity='0.46'/%3E%3Ccircle cx='120.2' cy='64.0' r='1.3' fill='%23ffffff' fill-opacity='0.69'/%3E%3Ccircle cx='396.7' cy='288.5' r='1.3' fill='%23ffffff' fill-opacity='0.74'/%3E%3Ccircle cx='308.8' cy='192.1' r='1.6' fill='%23ffffff' fill-opacity='0.59'/%3E%3Ccircle cx='168.4' cy='46.7' r='1.6' fill='%23ffffff' fill-opacity='0.46'/%3E%3Ccircle cx='409.7' cy='185.5' r='0.8' fill='%23ffffff' fill-opacity='0.38'/%3E%3Ccircle cx='4.1' cy='66.3' r='0.8' fill='%23ffffff' fill-opacity='0.72'/%3E%3Ccircle cx='33.0' cy='89.7' r='1.1' fill='%23ecd08a' fill-opacity='0.5'/%3E%3Ccircle cx='147.1' cy='154.0' r='0.8' fill='%23ecd08a' fill-opacity='0.64'/%3E%3Ccircle cx='406.9' cy='201.9' r='1.0' fill='%23ecd08a' fill-opacity='0.41'/%3E%3Ccircle cx='145.2' cy='113.1' r='1.6' fill='%23ecd08a' fill-opacity='0.36'/%3E%3Ccircle cx='395.8' cy='221.6' r='0.9' fill='%23ffffff' fill-opacity='0.9'/%3E%3C/svg%3E");
  background-size: 420px 420px;
  animation: twinkle 7s ease-in-out infinite;
}
.night .wave { position: absolute; inset-inline: 0; width: 100%; height: 34px; color: var(--sand); display: block; }
.night .wave-top { top: -1px; }
.night .wave-bot { bottom: -1px; transform: scaleY(-1); }
.night h2 { color: #fff; }
.night .kicker { color: var(--gold-2); }
.night .lead { color: var(--cream-2); }
.arc { display: block; width: min(560px, 100%); height: auto; margin: 0 auto -18px; overflow: visible; }
.arc .trail { fill: none; stroke: var(--gold); stroke-width: 1.6; stroke-dasharray: 5 9; opacity: 0.7; stroke-linecap: round; }
.arc .moon { color: var(--gold-2); animation: bob 4.5s ease-in-out infinite alternate; }
.arc .dot { fill: var(--gold); }
.times { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; max-width: 560px; margin-inline: auto; position: relative; }
.tcard {
  background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(246, 241, 230, 0.16); border-radius: 20px;
  padding: 22px 12px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 4px;
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.tcard svg { width: 26px; height: 26px; color: var(--gold-2); margin-bottom: 4px; }
.tcard .tl { font-size: 0.9rem; color: var(--cream-2); }
.tcard .tv { font-family: var(--fd); font-size: 1.55rem; color: #fff; }
.times-note { text-align: center; color: var(--cream-2); font-size: 0.92rem; margin-top: 18px; }

/* ═══════════ الموقع ═══════════ */
.loc { display: grid; gap: 22px; }
.loc-card {
  background: var(--card); border: 1px solid var(--line); border-radius: 26px; padding: 26px 22px;
  box-shadow: 0 24px 50px -36px rgba(12, 28, 23, 0.5);
}
.loc-card .kicker { margin-bottom: 4px; }
.loc-card h2 { font-size: clamp(1.6rem, 4vw, 2.1rem); }
.loc-line { display: flex; align-items: center; gap: 8px; margin-top: 12px; font-weight: 700; }
.loc-line svg { width: 20px; height: 20px; color: var(--gold); flex: none; }
.loc-card p.lead { font-size: 0.95rem; }
.loc-card .btn { margin-top: 20px; }
.map-frame { position: relative; }
.map-frame::before {
  content: ""; position: absolute; top: -10px; inset-inline-start: -10px; bottom: 10px; inset-inline-end: 10px;
  border: 1.5px solid var(--gold); border-radius: 30px; opacity: 0.7; pointer-events: none;
}
.map { position: relative; height: 340px; border-radius: 26px; overflow: hidden; border: 1px solid var(--line); background: var(--sand-2); }
.map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ═══════════ الحجز ═══════════ */
.book-card {
  position: relative; overflow: hidden; border-radius: 30px; color: var(--cream);
  background:
    radial-gradient(90% 70% at 100% 0%, rgba(209, 169, 84, 0.34), transparent 60%),
    linear-gradient(160deg, var(--night-2), var(--night));
  display: grid; box-shadow: 0 40px 80px -44px rgba(12, 28, 23, 0.7);
}
.book-media { padding: 18px 18px 0; }
.book-media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 18px; }
.book-copy { padding: 24px 22px 30px; }
.book-copy .kicker { color: var(--gold-2); }
.book-copy h2 { color: #fff; font-size: clamp(1.8rem, 5vw, 2.6rem); }
.book-copy .lead { color: var(--cream-2); }
.book-copy .btn-wa { min-height: 56px; padding: 14px 32px; font-size: 1.08rem; margin-top: 22px; }
.book-phone { margin-top: 14px; color: var(--cream-2); font-size: 0.95rem; }
.book-phone a { color: var(--gold-2); font-weight: 700; text-decoration: none; }

.socials { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.soc {
  display: inline-flex; align-items: center; gap: 9px; text-decoration: none;
  padding: 8px 16px 8px 10px; border-radius: 999px; font-weight: 600; font-size: 0.9rem; color: var(--cream);
  background: rgba(246, 241, 230, 0.08); border: 1px solid rgba(246, 241, 230, 0.22);
  transition: transform 0.2s var(--ease), background 0.2s, color 0.2s;
}
[dir="rtl"] .soc { padding: 8px 10px 8px 16px; }
.soc svg { width: 26px; height: 26px; flex: none; padding: 4px; border-radius: 50%; background: var(--soc-bg, var(--gold)); color: var(--soc-ink, #1c2420); }
.soc:hover { background: rgba(246, 241, 230, 0.16); transform: translateY(-3px); }
.soc-snap { --soc-bg: #fffc00; --soc-ink: #111; }
.soc-insta { --soc-bg: linear-gradient(45deg, #f9ce34, #ee2a7b 55%, #6228d7); --soc-ink: #fff; }
.soc-tiktok { --soc-bg: #111; --soc-ink: #fff; }
.soc[aria-disabled="true"] { cursor: default; opacity: 0.6; }
.soc[aria-disabled="true"]:hover { transform: none; background: rgba(246, 241, 230, 0.08); }
.social-note { margin-top: 12px; font-size: 0.85rem; color: var(--cream-2); }

/* ═══════════ الفوتر ═══════════ */
.foot { background: var(--night); color: var(--cream-2); padding: 54px 0 28px; border-top: 1px solid rgba(246, 241, 230, 0.08); position: relative; }
.foot-grid { display: grid; gap: 26px; }
.foot-brand { font-family: var(--fd); font-size: 1.35rem; color: #fff; display: inline-flex; align-items: center; gap: 10px; }
.foot-brand svg { width: 34px; height: 34px; color: var(--cream); }
.foot-brand .mark-moon { color: var(--gold); }
.foot p { font-size: 0.92rem; }
.foot h4 { color: #fff; font-family: var(--fb); font-size: 0.85rem; letter-spacing: 0.06em; margin-bottom: 8px; opacity: 0.9; }
.foot a { color: var(--cream); text-decoration: none; }
.foot a:hover { text-decoration: underline; }
.foot-soc { display: flex; gap: 10px; margin-top: 14px; }
.foot-soc a, .foot-soc span {
  width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center;
  background: rgba(246, 241, 230, 0.08); border: 1px solid rgba(246, 241, 230, 0.2); color: var(--cream);
  transition: background 0.2s, color 0.2s, transform 0.2s;
}
.foot-soc a:hover { background: var(--gold); color: #2b1f06; transform: translateY(-3px); }
.foot-soc svg { width: 20px; height: 20px; }
.foot-soc [aria-disabled="true"] { opacity: 0.55; }
.foot-bottom {
  margin-top: 26px; padding-top: 18px; border-top: 1px solid rgba(246, 241, 230, 0.1);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; font-size: 0.82rem;
}
.foot-bottom a { text-decoration: underline; }

/* ═══════════ الشريط السفلي العائم (جوال) ═══════════ */
.dock {
  position: fixed; z-index: 55; bottom: calc(10px + env(safe-area-inset-bottom)); inset-inline: 12px;
  display: grid; grid-template-columns: 1.5fr 1fr; gap: 8px; padding: 8px; border-radius: 999px;
  background: rgba(247, 242, 232, 0.86); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border: 1px solid rgba(28, 36, 32, 0.1); box-shadow: 0 16px 40px -14px rgba(12, 28, 23, 0.5);
}
.dock .btn { min-height: 46px; padding: 10px 12px; font-size: 0.95rem; }

/* ═══════════ عارض الصور ═══════════ */
.viewer { border: 0; padding: 0; background: transparent; width: 100vw; height: 100vh; max-width: 100vw; max-height: 100vh; overscroll-behavior: contain; color: #fff; }
.viewer[open] { display: grid; place-items: center; }
.viewer::backdrop { background: rgba(6, 13, 10, 0.94); }
.viewer img { max-width: 92vw; max-height: 82vh; border-radius: 14px; box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6); object-fit: contain; animation: vwIn 0.35s var(--ease); }
@keyframes vwIn { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: none; } }
.vw-btn {
  position: fixed; z-index: 2; width: 48px; height: 48px; border-radius: 50%;
  background: rgba(246, 241, 230, 0.12); border: 1px solid rgba(246, 241, 230, 0.32); color: #fff;
  display: grid; place-items: center; cursor: pointer; font: inherit; transition: background 0.2s;
}
.vw-btn:hover { background: rgba(246, 241, 230, 0.24); }
.vw-btn svg { width: 22px; height: 22px; }
.vw-close { top: 16px; inset-inline-start: 16px; }
.vw-prev { inset-inline-start: 12px; top: 50%; transform: translateY(-50%); }
.vw-next { inset-inline-end: 12px; top: 50%; transform: translateY(-50%); }
[dir="rtl"] .vw-next svg, [dir="ltr"] .vw-prev svg { transform: scaleX(-1); }
.vw-count { position: fixed; bottom: 22px; inset-inline: 0; text-align: center; color: var(--cream-2); font-size: 0.9rem; }

/* ═══════════ الصفحات الفرعية (السياسة و404) ═══════════ */
.page-body { padding-bottom: 0; }
.page { max-width: 760px; margin: 0 auto; padding: 130px 20px 60px; }
.page h1 { font-size: clamp(1.8rem, 5vw, 2.4rem); margin-bottom: 6px; }
.page-updated { color: var(--ink-2); font-size: 0.88rem; margin-bottom: 26px; }
.page h2 { font-size: 1.2rem; color: var(--accent); margin: 28px 0 8px; }
.page p { margin-bottom: 10px; }
.page ul { list-style: disc; margin: 0 0 10px; padding-inline-start: 22px; }
.page li { margin-bottom: 6px; }
.page p a, .page li a { color: var(--accent); font-weight: 700; text-decoration: underline; }
.page-back { display: inline-block; margin-top: 30px; color: var(--accent); font-weight: 700; text-decoration: none; }
.nf-wrap { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 14px; padding: 120px 24px 40px; }
.nf-code { font-family: var(--fd); font-size: 5rem; font-weight: 700; color: var(--accent); line-height: 1; }
.nf-wrap h1 { font-size: 1.5rem; }
.nf-wrap svg { width: 64px; height: 64px; color: var(--gold); }

/* ═══════════ شاشات أوسع ═══════════ */
@media (min-width: 640px) {
  .demo-banner-long { display: inline; }
  .perks { grid-template-columns: repeat(3, 1fr); }
  .strip-btn { display: grid; }
}

@media (min-width: 900px) {
  body { padding-bottom: 0; }
  .dock { display: none; }
  .island { padding: 8px 10px 8px 20px; }
  [dir="rtl"] .island { padding: 8px 20px 8px 10px; }
  .island-nav { display: flex; }
  .island .btn-wa { padding: 8px 18px; }
  .island .btn-wa span { display: inline; }
  .brand { font-size: 1.15rem; }

  .hero { padding: 150px 0 60px; min-height: 92vh; display: flex; align-items: center; }
  .hero-grid { grid-template-columns: 1.05fr 0.95fr; align-items: center; gap: 48px; }
  .hero-visual { order: 0; width: min(100%, 520px); margin-inline-start: auto; }
  [dir="rtl"] .hero-visual { margin-inline-start: 0; margin-inline-end: auto; }
  .arch { aspect-ratio: 4 / 4.9; }
  .tag-float.tag-a { top: 18%; inset-inline-start: -30px; }
  .tag-float.tag-b { bottom: 14%; inset-inline-end: -26px; }
  .hero h1 { margin-bottom: 12px; }
  .hero-cta { margin-top: 30px; }

  .sec { padding: 100px 0; }
  .perks { grid-template-columns: repeat(4, 1fr); gap: 16px; }
  .perk { padding: 18px 16px; font-size: 1rem; }
  .strip { gap: 18px; }
  .times { gap: 18px; }
  .tcard { padding: 26px 16px; }
  .tcard .tv { font-size: 1.8rem; }
  .map { height: 420px; }
  .loc { grid-template-columns: 0.9fr 1.1fr; align-items: center; gap: 36px; }
  .loc-card { padding: 34px 32px; }
  .book-card { grid-template-columns: 1fr 1.15fr; align-items: center; }
  .book-media { padding: 26px 0 26px 26px; }
  [dir="rtl"] .book-media { padding: 26px 26px 26px 0; }
  .book-media img { aspect-ratio: 4 / 4.6; max-height: 420px; border-radius: 999px 999px 18px 18px; }
  .book-copy { padding: 44px 40px; }
  .foot-grid { grid-template-columns: 1.3fr 1fr 1fr; gap: 34px; }
}

/* ═══════════ تقليل الحركة ═══════════ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.001s !important; animation-delay: 0s !important; transition-duration: 0.001s !important; }
  .rise, .arch, .arch-ring, .tag-float { opacity: 1; transform: none; animation: none; }
  .arch img { animation: none; }
  .js [data-fx] { opacity: 1; transform: none; transition: none; }
  .js .perks .perk { opacity: 1; animation: none; }
  .js .lights .bulb { fill: var(--gold); animation: none; }
  .ticker-track { animation: none; }
  .btn-shine::after { animation: none; }
  .night::before, .arc .moon { animation: none; }
}
