Last Updated on July 7, 2026

<div id="hisar-umrah">

<style>
@import url('https://fonts.googleapis.com/css2?family=Marcellus&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

#hisar-umrah{
--ink:#1B2735; --ink-soft:#5C6B7E; --card:#fff;
--line:#DFE5EE;
--navy:#1f429a; --navy-dk:#142c68; --navy-bg:#E9EEF9;
--turq:#2bbbb0; --turq-dk:#1e8d85; --turq-bg:#E4F7F5; --turq-line:#BDE8E3;
--gold:#D9A93F; --urgent:#C34A2E; --radius:18px;
--hl-fast:#E4572E; --hl-cheapest:#149A55; --hl-deal:#DD8A1C; --hl-high:#8659B5;
font-family:'Plus Jakarta Sans',system-ui,sans-serif !important;
color:var(--ink); line-height:1.5;
-webkit-font-smoothing:antialiased; -webkit-text-size-adjust:100%;
}
#hisar-umrah *,#hisar-umrah *::before,#hisar-umrah *::after{ box-sizing:border-box !important; -webkit-tap-highlight-color:transparent; }
#hisar-umrah h2,#hisar-umrah h3,#hisar-umrah h4,#hisar-umrah p{ margin:0 !important; padding:0; }
#hisar-umrah a{ color:inherit; box-shadow:none !important; }
#hisar-umrah img{ max-width:100%; display:block; border:0; }
#hisar-umrah button{ text-transform:none; letter-spacing:normal; background-image:none; }

/* ---------- Dil secici ---------- */
#hisar-umrah .uilang{ max-width:1180px; margin:12px auto -4px; padding:0 20px; display:flex; justify-content:flex-end; align-items:center; gap:7px; font-size:15px; }
#hisar-umrah .uilang .fselect{ min-height:36px; padding:6px 30px 6px 10px !important; font-size:13px !important; }

/* ---------- Hero icindeki Hisar Tour logosu ---------- */
#hisar-umrah .hero-brand{ display:inline-flex; align-items:center; justify-content:center; padding:8px 14px; margin-bottom:16px; border-radius:12px; background:rgba(13,31,77,.22); border:1px solid rgba(255,255,255,.22); text-decoration:none !important; transition:background .18s ease,transform .18s ease; animation:hisarHeroIn .7s .02s ease both; }
#hisar-umrah .hero-brand:hover{ background:rgba(13,31,77,.34); transform:translateY(-1px); }
#hisar-umrah .hero-brand:focus-visible{ outline:3px solid rgba(255,255,255,.75); outline-offset:3px; }
#hisar-umrah .hero-brand img{ width:auto; height:31px; max-width:165px; object-fit:contain; filter:drop-shadow(0 2px 5px rgba(0,0,0,.32)); }
@media(max-width:540px){ #hisar-umrah .hero-brand{ padding:6px 11px; margin-bottom:13px; } #hisar-umrah .hero-brand img{ height:26px; max-width:140px; } }

/* ---------- Hero (karsilama / "lobi") ---------- */
#hisar-umrah .hero{ max-width:1180px; margin:14px auto 4px; padding:0 20px; }
#hisar-umrah .hero-card{ position:relative; border-radius:22px; overflow:hidden; color:#fff; text-align:center; padding:44px 22px 44px; min-height:440px; display:flex; flex-direction:column; justify-content:center; align-items:center; background-size:cover; background-position:center 65%; }
@media(max-width:760px){ #hisar-umrah .hero-card{ padding-top:40px; min-height:480px; } }
#hisar-umrah .hero-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
#hisar-umrah .hero-yt{ position:absolute; inset:0; overflow:hidden; z-index:0; }
#hisar-umrah .hero-yt iframe{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); height:120%; min-height:120%; aspect-ratio:16/9; min-width:100%; border:0; pointer-events:none; }
#hisar-umrah .hero-card h1{ text-wrap:balance; }
#hisar-umrah .hero-shade{ position:absolute; inset:0; z-index:1; background:linear-gradient(168deg, rgba(16,35,84,.82) 0%, rgba(20,44,104,.52) 50%, rgba(20,44,104,.30) 100%); }
#hisar-umrah .hero-card > *:not(.hero-video):not(.hero-shade){ position:relative; z-index:2; }
/* Sinematik giris animasyonu */
@keyframes hisarHeroIn{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:translateY(0); } }
#hisar-umrah .hero-eyebrow{ animation:hisarHeroIn .7s .10s ease both; }
#hisar-umrah .hero-card h1{ animation:hisarHeroIn .7s .25s ease both; }
#hisar-umrah .hero-sub{ animation:hisarHeroIn .7s .40s ease both; }
#hisar-umrah .hero-pills{ animation:hisarHeroIn .7s .55s ease both; }
#hisar-umrah .hero-cta{ animation:hisarHeroIn .7s .70s ease both; }
#hisar-umrah .hero-eyebrow{ display:inline-block; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.28); color:#DFF6F3; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; padding:6px 14px; border-radius:999px; }
#hisar-umrah .hero-card h1{ font-family:'Marcellus',serif !important; font-weight:400 !important; font-size:clamp(29px,6vw,46px) !important; line-height:1.12 !important; margin:14px auto 10px !important; max-width:19ch; color:#fff !important; }
#hisar-umrah .hero-card h1 em{ font-style:normal; color:#F2CF87; }
#hisar-umrah .hero-sub{ font-size:14.5px; font-weight:600; color:#E8F2F1; max-width:56ch; margin:0 auto !important; line-height:1.55; }
#hisar-umrah .hero-pills{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:16px; }
#hisar-umrah .hero-pills span{ background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.25); color:#fff; font-size:12.5px; font-weight:700; padding:7px 13px; border-radius:999px; }
#hisar-umrah .hero-cta{ display:inline-flex; align-items:center; gap:7px; margin-top:18px; background:var(--turq) !important; color:#fff !important; border:0 !important; cursor:pointer; font:inherit; font-weight:800; font-size:15px !important; padding:13px 26px !important; border-radius:999px !important; transition:background .15s; }
#hisar-umrah .hero-cta:hover{ background:var(--turq-dk) !important; }

/* ---------- "Her pakette dahil" ana karti ---------- */
#hisar-umrah .inc{ max-width:1180px; margin:16px auto 4px; padding:0 20px; }
#hisar-umrah .inc-card{ background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; }
#hisar-umrah .inc-head{ padding:18px 20px 10px; text-align:center; }
#hisar-umrah .inc-head h3{ font-family:'Marcellus',serif !important; font-weight:400 !important; font-size:23px !important; color:var(--navy-dk) !important; }
#hisar-umrah .inc-head p{ font-size:13.5px; color:var(--ink-soft); font-weight:600; margin-top:4px !important; max-width:62ch; margin-left:auto !important; margin-right:auto !important; }
#hisar-umrah .inc-cols{ display:grid; grid-template-columns:1fr; }
@media(min-width:760px){ #hisar-umrah .inc-cols{ grid-template-columns:1fr 1fr; } }
#hisar-umrah .inc-col{ padding:8px 20px 18px; }
#hisar-umrah .inc-col.extras{ background:linear-gradient(180deg,#FBFAF6,#F7F4EC); position:relative; }
@media(min-width:760px){ #hisar-umrah .inc-col.extras{ border-left:1px solid #ECE2C8; } }
#hisar-umrah .inc-col.extras::before{ content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,#D9A93F,#B8893A); }
#hisar-umrah .inc-col h4{ font-size:11px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-soft); padding:12px 0 6px; display:flex; align-items:center; gap:7px; }
#hisar-umrah .inc-col h4::before{ content:''; width:16px; height:2px; border-radius:2px; background:var(--ink-soft); }
#hisar-umrah .inc-col.extras h4{ color:#9A7526; font-size:12px; }
#hisar-umrah .inc-col.extras h4::before{ background:var(--gold); width:22px; height:3px; }
#hisar-umrah .inc-note{ font-size:12px; font-weight:600; color:#9A7526; padding:0 0 4px; line-height:1.45; }
#hisar-umrah .inc-total{ margin-top:12px; background:linear-gradient(135deg,#fff,#FBF6EA); border:1.5px solid #E7D4A6; border-radius:12px; padding:12px; text-align:center; font-size:13.5px; font-weight:800; color:#8A6A22; box-shadow:0 2px 10px rgba(184,137,58,.12); }
#hisar-umrah .inc-item{ display:flex; gap:13px; padding:11px 0; align-items:flex-start; border-bottom:1px solid rgba(31,66,154,.07); }
#hisar-umrah .inc-item:last-child{ border-bottom:0; }
#hisar-umrah .inc-item{ --accent:var(--turq); }
#hisar-umrah .inc-item .em{ flex:0 0 auto; width:44px; height:44px; border-radius:13px; background:linear-gradient(150deg,#EEF3FC,#DFE8F8); display:grid; place-items:center; color:var(--navy-dk); box-shadow:inset 0 0 0 1px rgba(31,66,154,.08), 0 2px 6px rgba(31,66,154,.08); transition:transform .18s ease; }
#hisar-umrah .inc-item .em svg{ width:24px; height:24px; }
/* Hisar Advantage sutunu: altin accent + fildisi/altin kutu -> prestij */
#hisar-umrah .inc-col.extras .inc-item{ --accent:var(--gold); }
#hisar-umrah .inc-col.extras .inc-item .em{ background:linear-gradient(150deg,#FFFDF8,#F6EEDC); color:var(--navy-dk); box-shadow:inset 0 0 0 1px #E7D4A6, 0 2px 8px rgba(184,148,58,.18); }
@media(hover:hover){ #hisar-umrah .inc-item:hover .em{ transform:translateY(-2px) scale(1.04); } }
#hisar-umrah .inc-body-txt{ flex:1; min-width:0; }
#hisar-umrah .inc-item b{ display:block; font-size:14.5px; font-weight:800; letter-spacing:-.01em; color:var(--ink); }
#hisar-umrah .inc-item span{ display:block; font-size:12.5px; color:var(--ink-soft); font-weight:500; line-height:1.5; margin-top:2px; }
#hisar-umrah .inc-flag{ display:inline-block; vertical-align:1px; margin-left:7px; background:linear-gradient(135deg,#D9A93F,#B8893A); color:#fff; font-size:9.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; padding:2px 8px; border-radius:999px; box-shadow:0 1px 3px rgba(184,137,58,.35); }
#hisar-umrah .inc-item a.watch{ display:inline-flex; align-items:center; gap:4px; vertical-align:1px; margin-left:4px; background:#FF0000 !important; color:#fff !important; font-size:10.5px; font-weight:800; letter-spacing:.03em; padding:2.5px 9px 2.5px 7px !important; border-radius:999px !important; text-decoration:none !important; white-space:nowrap; }
#hisar-umrah .inc-item a.watch:hover{ background:#CC0000 !important; }
#hisar-umrah .inc-item a.watch svg{ width:10px; height:10px; }
#hisar-umrah .inc-toggle{ display:none; width:100%; font:inherit; font-size:13.5px !important; font-weight:800; color:var(--navy) !important; background:var(--navy-bg) !important; border:0 !important; padding:13px !important; cursor:pointer; }
@media(max-width:759px){
#hisar-umrah .inc-body.collapsed{ display:none; }
#hisar-umrah .inc-toggle{ display:block; }
}

/* ---------- Filtre cubugu ---------- */
#hisar-umrah .filter-bar{
max-width:1180px; margin:14px auto 4px; padding:12px 16px;
display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:center;
background:#fff; border:1px solid var(--line); border-radius:16px;
}
#hisar-umrah .fgroup{ display:flex; align-items:center; gap:7px; }
#hisar-umrah .fgroup label{ font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); white-space:nowrap; }
#hisar-umrah .fselect{
font:inherit; font-size:14px !important; font-weight:700; color:var(--ink) !important;
padding:9px 34px 9px 12px !important; min-height:40px;
border:1.5px solid var(--line) !important; border-radius:12px !important;
background:#FBFCFE !important; cursor:pointer;
-webkit-appearance:none; appearance:none;
background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235C6B7E' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
background-repeat:no-repeat !important; background-position:right 12px center !important;
}
#hisar-umrah .fselect:focus{ outline:none; border-color:var(--turq) !important; box-shadow:0 0 0 3px rgba(43,187,176,.22); }
#hisar-umrah .chip{ font:inherit; font-size:13.5px !important; font-weight:700; padding:9px 15px !important; min-height:40px; border-radius:999px !important; cursor:pointer; background:#fff !important; border:1.5px solid var(--line) !important; color:var(--ink) !important; transition:background .15s,border-color .15s,color .15s; }
#hisar-umrah .chip:hover{ border-color:var(--turq) !important; }
#hisar-umrah .chip[aria-pressed="true"]{ background:var(--navy) !important; border-color:var(--navy) !important; color:#fff !important; }
#hisar-umrah .chip:focus-visible{ outline:3px solid rgba(43,187,176,.45); outline-offset:2px; }
#hisar-umrah .fclear{ font:inherit; font-size:12.5px !important; font-weight:700; color:var(--turq-dk) !important; background:none !important; border:0 !important; cursor:pointer; text-decoration:underline; text-underline-offset:3px; padding:6px 4px !important; }
/* Mobil filtre duzeni: taban kurallardan SONRA gelmeli ki gecerli olsun */
@media(max-width:759px){
#hisar-umrah .filter-bar{ margin-left:16px; margin-right:16px; gap:8px; }
#hisar-umrah .fgroup{ display:grid; grid-template-columns:76px 1fr; align-items:center; gap:8px; width:100%; }
#hisar-umrah .fgroup label{ text-align:right; }
#hisar-umrah .fselect{ width:100%; }
#hisar-umrah .chip{ flex:1 1 calc(50% - 5px); text-align:center; }
#hisar-umrah .fclear{ flex:1 1 100%; text-align:center; padding:8px !important; }
}
#hisar-umrah .count{ max-width:1180px; margin:8px auto 0 !important; padding:0 20px; text-align:center; font-size:12.5px; font-weight:700; color:var(--ink-soft); }
#hisar-umrah .no-results{ max-width:1180px; margin:24px auto !important; padding:0 20px; color:var(--ink-soft); font-size:15px; display:none; text-align:center; }

/* ---------- Grid: masaustunde 2 sutun ---------- */
#hisar-umrah .grid{ max-width:1180px; margin:14px auto 24px; padding:0 20px; display:grid; gap:20px; grid-template-columns:1fr; }
@media(min-width:760px){ #hisar-umrah .grid{ grid-template-columns:repeat(2,1fr);} }

/* ---------- Kart ---------- */
#hisar-umrah .pkg{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; box-shadow:0 1px 2px rgba(31,66,154,.06); transition:transform .18s ease, box-shadow .18s ease; }
@media(hover:hover){ #hisar-umrah .pkg:hover{ transform:translateY(-3px); box-shadow:0 16px 30px -18px rgba(31,66,154,.38); } }
#hisar-umrah .pkg.hidden{ display:none; }
#hisar-umrah .pkg-visual{ position:relative; min-height:172px; padding:16px; display:flex; flex-direction:column; justify-content:space-between; color:#fff; background: radial-gradient(120% 90% at 85% 0%, rgba(43,187,176,.55), transparent 55%), linear-gradient(160deg, var(--navy) 0%, var(--navy-dk) 100%); background-size:cover; background-position:center; }
#hisar-umrah .toppills{ display:flex; gap:6px; flex-wrap:wrap; padding-right:110px; }
#hisar-umrah .season{ background:rgba(255,255,255,.94); color:var(--navy-dk); font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:5px 11px; border-radius:999px; }
#hisar-umrah .routepill{ background:var(--turq); color:#fff; font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:5px 11px; border-radius:999px; }
/* Paket kategorisi rozetleri */
#hisar-umrah .tierpill{ color:#fff; font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:5px 11px; border-radius:999px; }
#hisar-umrah .tier-standard{ background:#64748B; }
#hisar-umrah .tier-comfort{ background:var(--turq-dk); }
#hisar-umrah .tier-premium{ background:linear-gradient(135deg,#C9A24B,#A9781F); }
#hisar-umrah .tier-luxury{ background:#17171C; color:#F2CF87; border:1px solid #C9A24B; }
/* Tur dili bayraklari */
#hisar-umrah .langpill{ background:rgba(255,255,255,.94); color:var(--navy-dk); font-size:11.5px; font-weight:800; letter-spacing:.04em; padding:5px 11px; border-radius:999px; }
/* Indirim seridi */
#hisar-umrah .dealbar{ background:linear-gradient(90deg,#E4572E,#C9411F); color:#fff; text-align:center; font-size:12.5px; font-weight:800; letter-spacing:.03em; padding:8px 12px; }
#hisar-umrah .price .amt s{ display:block; font-size:12px; font-weight:700; color:#9AA8B6; text-decoration:line-through; }
/* Sold out */
#hisar-umrah .pkg.soldout{ filter:grayscale(1); opacity:.85; }
#hisar-umrah .pkg.soldout:hover{ transform:none; box-shadow:0 1px 2px rgba(31,66,154,.06); }
#hisar-umrah .soldflag{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) rotate(-8deg); background:#B4452F; color:#fff; font-size:15px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; padding:9px 24px; border-radius:10px; box-shadow:0 6px 18px rgba(0,0,0,.35); z-index:2; }
#hisar-umrah .cta.cta-sold{ background:#8A94A3 !important; }
#hisar-umrah .cta.cta-sold:hover{ background:#76818F !important; }
#hisar-umrah .hl{ position:absolute; top:12px; right:12px; color:#fff; font-size:10.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; padding:5px 11px; border-radius:999px; box-shadow:0 3px 10px rgba(0,0,0,.25); }
#hisar-umrah .hl-fast{ background:var(--hl-fast); animation:hisarPulse 1.6s ease-in-out infinite; }
#hisar-umrah .hl-cheapest{ background:var(--hl-cheapest); }
#hisar-umrah .hl-deal{ background:var(--hl-deal); }
#hisar-umrah .hl-high{ background:var(--hl-high); }
@keyframes hisarPulse{ 0%,100%{ transform:scale(1);} 50%{ transform:scale(1.06);} }
#hisar-umrah .pkg-visual h2{ font-family:'Marcellus',serif !important; font-weight:400 !important; font-size:24px !important; line-height:1.15 !important; margin:14px 0 2px !important; color:#fff !important; }
#hisar-umrah .pkg-visual .dates{ font-size:13.5px; font-weight:600; color:#DFF6F3; }
#hisar-umrah .pkg-visual .hook{ font-size:13px; font-weight:600; color:#fff; opacity:.95; margin-top:6px !important; font-style:italic; }
#hisar-umrah .labels{ display:flex; flex-wrap:wrap; gap:6px; padding:12px 16px 0; }
#hisar-umrah .labels span{ font-size:12px; font-weight:700; padding:4px 10px; border-radius:999px; background:var(--navy-bg); color:var(--navy-dk); border:1px solid #C8D4EE; }
#hisar-umrah .facts{ padding:12px 16px 4px; display:flex; flex-direction:column; }
#hisar-umrah .fact{ display:flex; gap:10px; align-items:flex-start; padding:10px 0; border-bottom:1px solid var(--line); }
#hisar-umrah .fact:last-child{ border-bottom:0; }
#hisar-umrah .fact .ic{ flex:0 0 auto; width:20px; height:20px; color:var(--navy); margin-top:2px; }
/* Havayolu / otel logolari: koyu zeminli kabuk beyaz logolari gorunur tutar */
#hisar-umrah .brand-logo{ flex:0 0 auto; width:54px; height:38px; margin-top:0; padding:6px; display:flex; align-items:center; justify-content:center; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:linear-gradient(145deg,#fff,#EDF2F8); box-shadow:0 2px 7px rgba(31,66,154,.06); }
#hisar-umrah .brand-logo.airline{ width:58px; }
#hisar-umrah .brand-logo.hotel{ width:54px; }
#hisar-umrah .brand-logo.is-dark{ background:linear-gradient(145deg,#253E7B,#142C68); border-color:#142C68; }
#hisar-umrah .brand-logo.brand-turkish-airlines{ padding:3px 4px; }
#hisar-umrah .brand-logo.brand-turkish-airlines img{ transform:scale(1.85); transform-origin:center; }
#hisar-umrah .brand-logo.brand-hilton{ background:#fff; border-color:#C8D4EE; padding:5px 7px; }
#hisar-umrah .brand-logo.brand-hilton img{ transform:scale(1.08); transform-origin:center; }
#hisar-umrah .brand-logo img{ width:100%; height:100%; max-width:100%; object-fit:contain; }
#hisar-umrah .brand-logo .brand-fallback{ display:none; width:20px; height:20px; color:var(--navy); }
#hisar-umrah .brand-logo.is-dark .brand-fallback{ color:#fff; }
#hisar-umrah .brand-logo.logo-failed .brand-fallback{ display:block; }
#hisar-umrah .brand-logo .brand-fallback .ic{ width:20px; height:20px; margin:0; }
@media(max-width:420px){ #hisar-umrah .brand-logo.airline{ width:52px; } #hisar-umrah .brand-logo.hotel{ width:50px; } }
#hisar-umrah .fact .body{ flex:1; min-width:0; }
#hisar-umrah .fact .k{ font-size:10.5px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 1px !important; }
#hisar-umrah .fact .v{ font-size:14.5px; font-weight:700; margin:0 !important; }
#hisar-umrah .fact .v small{ display:block; font-size:12.5px; font-weight:500; color:var(--ink-soft); margin-top:1px; }
#hisar-umrah .badge-direct{ display:inline-block; margin-left:6px; vertical-align:1px; background:var(--turq); color:#fff; font-size:10.5px; font-weight:800; letter-spacing:.05em; padding:2px 8px; border-radius:999px; text-transform:uppercase; }
#hisar-umrah .badge-stop{ display:inline-block; margin-left:6px; vertical-align:1px; background:#E9EDF3; color:#5C6B7E; font-size:10.5px; font-weight:800; letter-spacing:.05em; padding:2px 8px; border-radius:999px; text-transform:uppercase; }
#hisar-umrah .stars{ color:var(--gold); letter-spacing:1px; font-size:13px; }
#hisar-umrah .hinfo{ display:inline-grid; place-items:center; width:19px; height:19px; border-radius:50% !important; background:var(--navy-bg) !important; color:var(--navy) !important; font-size:11px; font-weight:800; font-style:normal; margin-left:6px; text-decoration:none !important; border:1px solid #C8D4EE !important; vertical-align:2px; }
#hisar-umrah .hinfo:hover{ background:var(--navy) !important; color:#fff !important; }
#hisar-umrah .walk-lead{ color:var(--turq-dk); }
#hisar-umrah .walk{ margin-top:6px; }
#hisar-umrah .walk .track{ position:relative; height:6px; border-radius:999px; background:linear-gradient(90deg,var(--turq) 0%, #D3F1EE 100%); }
#hisar-umrah .walk .dot{ position:absolute; top:50%; transform:translate(-50%,-50%); width:14px; height:14px; border-radius:50%; background:var(--navy); border:3px solid #fff; box-shadow:0 0 0 1px var(--line); }
#hisar-umrah .walk .scale{ display:flex; justify-content:space-between; font-size:10.5px; font-weight:700; color:var(--ink-soft); margin-top:4px; }
#hisar-umrah .prices{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; padding:14px 16px 4px; }
#hisar-umrah .price{ position:relative; border:1px solid var(--line); border-radius:12px; padding:10px 6px; text-align:center; background:#FBFCFE; }
#hisar-umrah .price.best{ border:2px solid var(--turq); background:var(--turq-bg); }
#hisar-umrah .price .pop{ position:absolute; top:-9px; left:50%; transform:translateX(-50%); background:var(--turq); color:#fff; font-size:9px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:2px 8px; border-radius:999px; white-space:nowrap; }
#hisar-umrah .price .room{ font-size:10.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-soft); }
#hisar-umrah .price .amt{ font-size:19px; font-weight:800; margin-top:2px !important; }
#hisar-umrah .price .amt.na{ color:#9AA8B6; }
#hisar-umrah .price .per{ font-size:10.5px; color:var(--ink-soft); font-weight:600; }
#hisar-umrah .price.best .amt{ color:var(--navy-dk); }
#hisar-umrah .prices-note{ padding:6px 16px 0; font-size:11.5px; color:var(--ink-soft); }
#hisar-umrah .pkg-foot{ margin-top:auto; padding:14px 16px 16px; display:flex; flex-direction:column; gap:10px; }
#hisar-umrah .meta-row{ display:flex; justify-content:space-between; gap:10px; font-size:12.5px; font-weight:700; }
#hisar-umrah .meta-row .seats{ color:var(--urgent); }
#hisar-umrah .meta-row .deadline{ color:var(--ink-soft); font-weight:600; }
#hisar-umrah .meta-row .deadline b{ color:var(--ink); }
#hisar-umrah .cta{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; background:var(--navy) !important; color:#fff !important; border:0 !important; cursor:pointer; font:inherit; font-weight:800; font-size:15px !important; padding:12px 18px !important; min-height:52px; border-radius:14px !important; transition:background .15s,opacity .15s; width:100%; text-decoration:none !important; }
#hisar-umrah .cta .sub{ font-size:11px; font-weight:600; opacity:.85; }
#hisar-umrah .cta:hover{ background:var(--navy-dk) !important; }
#hisar-umrah .cta[disabled]{ opacity:.6; cursor:wait; }
#hisar-umrah .cta:focus-visible{ outline:3px solid rgba(43,187,176,.45); outline-offset:2px; }
#hisar-umrah .foot-links{ display:flex; justify-content:center; gap:18px; font-size:13px; font-weight:700; }
#hisar-umrah .foot-links a{ color:var(--turq-dk) !important; text-decoration:underline !important; text-underline-offset:3px; padding:6px 2px; }
#hisar-umrah .foot-links a.walink{ color:#1FA855 !important; display:inline-flex; align-items:center; gap:5px; }
#hisar-umrah .foot-links a.walink svg{ width:15px; height:15px; flex:0 0 auto; }

/* ---------- Guven / Google yorumlari ---------- */
#hisar-umrah .trust{ max-width:1180px; margin:8px auto 4px; padding:0 20px; }
#hisar-umrah .trust-card{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:20px; }
#hisar-umrah .trust-head{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px; text-align:center; }
#hisar-umrah .trust-head h3{ font-family:'Marcellus',serif !important; font-weight:400 !important; font-size:22px !important; color:var(--navy-dk) !important; width:100%; }
#hisar-umrah .gbadge{ display:inline-flex; align-items:center; gap:9px; background:#FBFCFE; border:1.5px solid var(--line); border-radius:999px; padding:9px 16px; text-decoration:none !important; }
#hisar-umrah .gbadge svg{ width:20px; height:20px; flex:0 0 auto; }
#hisar-umrah .gbadge .gr{ font-size:16px; font-weight:800; color:var(--ink); }
#hisar-umrah .gbadge .gstars{ color:#FBBC05; font-size:14px; letter-spacing:1px; }
#hisar-umrah .gbadge .gcount{ font-size:12.5px; font-weight:700; color:var(--turq-dk); text-decoration:underline; text-underline-offset:3px; }
#hisar-umrah .stats{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:14px; }
#hisar-umrah .stat{ flex:1 1 150px; max-width:240px; background:var(--navy-bg); border-radius:12px; padding:12px 10px; text-align:center; }
#hisar-umrah .stat b{ display:block; font-size:21px; color:var(--navy-dk); }
#hisar-umrah .stat span{ font-size:12px; font-weight:700; color:var(--ink-soft); }
#hisar-umrah .reviews{ display:grid; grid-template-columns:1fr; gap:12px; margin-top:14px; }
@media(min-width:760px){ #hisar-umrah .reviews{ grid-template-columns:repeat(3,1fr); } }
#hisar-umrah .review{ background:#FBFCFE; border:1px solid var(--line); border-radius:14px; padding:14px; display:flex; flex-direction:column; gap:6px; }
#hisar-umrah .review .rstars{ color:#FBBC05; font-size:14px; letter-spacing:1.5px; }
#hisar-umrah .review .rtext{ font-size:13.5px; line-height:1.55; color:var(--ink); font-weight:500; }
#hisar-umrah .review .rwho{ font-size:12px; font-weight:800; color:var(--ink-soft); margin-top:auto !important; }
#hisar-umrah .review .rwho b{ color:var(--ink); }
#hisar-umrah .review .rtour{ font-size:11px; font-weight:700; color:var(--turq-dk); }
#hisar-umrah .trust-foot{ text-align:center; margin-top:12px !important; font-size:13px; font-weight:700; }
#hisar-umrah .trust-foot a{ color:var(--turq-dk) !important; text-decoration:underline !important; text-underline-offset:3px; }

/* ---------- SSS (FAQ) ---------- */
#hisar-umrah .faq{ max-width:1180px; margin:12px auto 28px; padding:0 20px; }
#hisar-umrah .faq h3{ font-family:'Marcellus',serif !important; font-weight:400 !important; font-size:22px !important; color:var(--navy-dk) !important; text-align:center; margin-bottom:12px !important; }
#hisar-umrah .faq details{ background:#fff; border:1px solid var(--line); border-radius:14px; margin-bottom:8px; overflow:hidden; }
#hisar-umrah .faq summary{ cursor:pointer; list-style:none; padding:14px 44px 14px 16px; font-size:14.5px; font-weight:800; color:var(--ink); position:relative; }
#hisar-umrah .faq summary::-webkit-details-marker{ display:none; }
#hisar-umrah .faq summary::after{ content:'+'; position:absolute; right:16px; top:50%; transform:translateY(-50%); width:24px; height:24px; border-radius:50%; background:var(--navy-bg); color:var(--navy); display:grid; place-items:center; font-weight:800; }
#hisar-umrah .faq details[open] summary::after{ content:'−'; background:var(--navy); color:#fff; }
#hisar-umrah .faq .fa{ padding:0 16px 14px; font-size:13.5px; line-height:1.6; color:var(--ink-soft); font-weight:500; }

/* ---------- Modal ---------- */
#hisar-umrah dialog.lead{ border:0; border-radius:20px; padding:0; width:min(440px, calc(100vw - 32px)); max-height:calc(100dvh - 40px); overflow-y:auto; -webkit-overflow-scrolling:touch; box-shadow:0 30px 60px -20px rgba(20,44,104,.45); font-family:'Plus Jakarta Sans',system-ui,sans-serif; color:var(--ink); }
#hisar-umrah dialog.lead::backdrop{ background:rgba(20,44,104,.55); }
#hisar-umrah .lead-head{ background:linear-gradient(160deg,var(--navy),var(--navy-dk)); color:#fff; padding:18px 20px 16px; position:relative; }
#hisar-umrah .lead-head h3{ font-family:'Marcellus',serif !important; font-weight:400 !important; font-size:21px !important; margin:0 0 2px !important; color:#fff !important; }
#hisar-umrah .lead-head p{ margin:0 !important; font-size:13px; color:#DFF6F3; }
#hisar-umrah .lead-head p b{ color:#fff; }
#hisar-umrah .lead-close{ position:absolute; top:10px; right:10px; background:rgba(255,255,255,.15) !important; border:0 !important; color:#fff !important; width:40px; height:40px; border-radius:50% !important; cursor:pointer; font-size:17px; line-height:1; display:grid; place-items:center; padding:0 !important; }
#hisar-umrah .lead-close:hover{ background:rgba(255,255,255,.3) !important; }
#hisar-umrah dialog.lead form{ padding:16px 20px 20px; display:flex; flex-direction:column; gap:11px; margin:0 !important; }
#hisar-umrah dialog.lead label{ font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:3px; }
#hisar-umrah dialog.lead input, #hisar-umrah dialog.lead select, #hisar-umrah dialog.lead textarea{
width:100% !important; font:inherit; color:var(--ink) !important; padding:11px 12px !important;
border:1px solid var(--line) !important; border-radius:10px !important; background:#FBFCFE !important;
font-size:16px !important;
}
#hisar-umrah dialog.lead input:focus, #hisar-umrah dialog.lead select:focus, #hisar-umrah dialog.lead textarea:focus{ outline:none; border-color:var(--turq) !important; box-shadow:0 0 0 3px rgba(43,187,176,.22) !important; }
#hisar-umrah .two{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
#hisar-umrah dialog.lead textarea{ resize:vertical; min-height:64px; }
#hisar-umrah .consent{ font-size:11.5px; color:var(--ink-soft); line-height:1.45; margin:0 !important; }
#hisar-umrah .lead-success{ display:none; padding:28px 22px 30px; text-align:center; }
#hisar-umrah .lead-success .tick{ width:52px; height:52px; margin:0 auto 12px; border-radius:50%; background:var(--turq-bg); color:var(--turq-dk); display:grid; place-items:center; }
#hisar-umrah .lead-success h4{ font-family:'Marcellus',serif; font-weight:400; font-size:20px; margin:0 0 6px !important; }
#hisar-umrah .lead-success p{ font-size:14px; color:var(--ink-soft); margin:0 !important; }
#hisar-umrah dialog.lead.sent form{ display:none; }
#hisar-umrah dialog.lead.sent .lead-success{ display:block; }

@media (prefers-reduced-motion:reduce){
#hisar-umrah *{ transition:none !important; animation:none !important; }
}
</style>

<!-- Hero: reklamdan gelen ziyaretciyi 3 saniyede yakalayan alan.
Yazilar asagida SETTINGS icindeki hero... alanlarindan duzenlenir. -->
<div class="uilang"><span aria-hidden="true">🌐</span>
<select class="fselect" id="hisarUiLang" aria-label="Language"></select>
</div>
<section class="hero" aria-label="Welcome">
<div class="hero-card" id="hisarHeroCard">
<div class="hero-yt" id="hisarHeroYt" aria-hidden="true"></div>
<video class="hero-video" id="hisarHeroVideo" autoplay muted loop playsinline preload="metadata" aria-hidden="true" tabindex="-1"></video>
<div class="hero-shade"></div>
<a class="hero-brand" href="https://hisartour.com/" title="Visit Hisar Tour" aria-label="Visit Hisar Tour">
<img src="https://hisartour.com/wp-content/uploads/2020/02/hisar-logo-e1735005371318.png" alt="Hisar Tour" loading="eager" decoding="async" />
</a>
<span class="hero-eyebrow" id="hisarHeroEyebrow">Umrah Season 2026–27</span>
<h1 id="hisarHeroTitle">Umrah packages from the USA &amp; Canada — all-inclusive group departures</h1>
<button class="hero-cta" id="hisarHeroCta" type="button"><span data-i18n="heroCta">See all packages</span>
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 5v14"/><path d="m6 13 6 6 6-6"/></svg>
</button>
</div>
</section>

<!-- "Her pakette dahil" ana karti - icerik asagida STANDARD_INCLUDED
ve FREE_EXTRAS listelerinden otomatik olusur -->
<section class="inc" aria-label="Included in every package">
<div class="inc-card">
<div class="inc-head">
<h3 data-i18n="incTitle">Everything handled. Nothing hidden.</h3>
<p data-i18n-html="incSub">Your visa, your meals, your guide, your transfers — it's all already inside, on every single departure.</p>
</div>
<div class="inc-body" id="hisarIncBody">
<div class="inc-cols">
<div class="inc-col" id="hisarIncStd"><h4 data-i18n="stdTitle">Standard in every package</h4></div>
<div class="inc-col extras" id="hisarIncExtra">
<h4 id="hisarExtraH">The Hisar Advantage</h4>
<p class="inc-note" data-i18n="incNote">Other operators sell these separately — or skip them entirely.</p>
</div>
</div>
</div>
<button class="inc-toggle" id="hisarIncToggle" type="button" aria-expanded="true">Hide the list ▴</button>
</div>
</section>

<!-- ---------- Filtre cubugu ---------- -->
<div class="filter-bar" role="group" aria-label="Filter packages">
<div class="fgroup">
<label for="hisarMonth" data-i18n="fMonth">Month</label>
<select class="fselect" id="hisarMonth">
<option value="all" data-i18n="allMonths">All months</option>
<option value="november" data-i18n="mNov">November 2026</option>
<option value="december" data-i18n="mDec">December 2026</option>
<option value="february" data-i18n="mFeb">February 2027</option>
<option value="ramadan" data-i18n="mRam">Ramadan — Last 10 Nights</option>
</select>
</div>
<div class="fgroup">
<label for="hisarFrom" data-i18n="fFrom">From</label>
<select class="fselect" id="hisarFrom">
<option value="all" data-i18n="allCities">All cities</option>
<option value="dep-newyork">New York (JFK)</option>
<option value="dep-washington">Washington (IAD)</option>
<option value="dep-chicago">Chicago (ORD)</option>
<option value="dep-toronto">Toronto (YYZ)</option>
<option value="dep-losangeles">Los Angeles (LAX)</option>
<option value="dep-houston">Houston (IAH)</option>
<option value="dep-miami">Miami (MIA)</option>
</select>
</div>
<div class="fgroup">
<label for="hisarRoute" data-i18n="fRoute">Route</label>
<select class="fselect" id="hisarRoute">
<option value="all" data-i18n="anyRoute">Any route</option>
<option value="madinah" data-i18n="madFirst">🕌 Madinah first</option>
<option value="makkah" data-i18n="makFirst">🕋 Makkah first</option>
</select>
</div>
<div class="fgroup">
<label for="hisarTier" data-i18n="fCategory">Category</label>
<select class="fselect" id="hisarTier">
<option value="all" data-i18n="allCats">All categories</option>
<option value="tier-standard" data-i18n="tierStandard">Standard</option>
<option value="tier-comfort" data-i18n="tierComfort">Comfort</option>
<option value="tier-premium" data-i18n="tierPremium">Premium</option>
<option value="tier-luxury" data-i18n="tierLuxury">Luxury</option>
</select>
</div>
<div class="fgroup">
<label for="hisarLang" data-i18n="fGuidance">Guidance</label>
<select class="fselect" id="hisarLang">
<option value="all" data-i18n="anyLanguage">Any language</option>
<option value="lang-en">🇺🇸 English</option>
<option value="lang-tr">🇹🇷 Türkçe</option>
<option value="lang-ru">🇷🇺 Русский</option>
<option value="lang-uz">🇺🇿 O'zbekcha</option>
<option value="lang-id">🇮🇩 Indonesia</option>
<option value="lang-ms">🇲🇾 Melayu</option>
<option value="lang-kk">🇰🇿 Қазақша</option>
<option value="lang-ky">🇰🇬 Кыргызча</option>
</select>
</div>
<div class="fgroup">
<label for="hisarDeal" data-i18n="fShow">Show me</label>
<select class="fselect" id="hisarDeal">
<option value="all" data-i18n="showEverything">Everything</option>
<option value="fast" data-i18n="showFast">🔥 Selling fast</option>
<option value="cheapest" data-i18n="showCheapest">💰 Best price</option>
<option value="deal" data-i18n="showDeal">✨ Deal season</option>
<option value="high" data-i18n="showHigh">🎉 Holiday season</option>
</select>
</div>
<button class="chip" data-filter="direct" aria-pressed="false" data-i18n="chipNonstop">✈ Non-stop only</button>
<button class="chip" data-filter="family" aria-pressed="false" data-i18n="chipFamily">👨‍👩‍👧 Family friendly</button>
<button class="fclear" id="hisarClear" type="button" data-i18n="clearAll">Clear all</button>
</div>
<p class="count" id="hisarCount"></p>
<p class="no-results" id="hisarNoResults" data-i18n="noResults">No departures match those filters — try removing one.</p>

<main class="grid" id="hisarGrid"></main>

<!-- Guven bolumu: Google puani + gercek musteri yorumlari.
Icerik asagida TRUST ayarlarindan duzenlenir. -->
<section class="trust" aria-label="Reviews and trust">
<div class="trust-card">
<div class="trust-head">
<h3 data-i18n="trustTitle">Trusted by pilgrims across North America</h3>
<a class="gbadge" id="hisarGBadge" href="#" target="_blank" rel="noopener">
<svg viewBox="0 0 48 48" aria-hidden="true"><path fill="#FFC107" d="M43.6 20.1H42V20H24v8h11.3C33.7 32.7 29.3 36 24 36c-6.6 0-12-5.4-12-12s5.4-12 12-12c3.1 0 5.9 1.2 8 3l5.7-5.7C34.2 6.1 29.4 4 24 4 13 4 4 13 4 24s9 20 20 20 20-9 20-20c0-1.3-.1-2.6-.4-3.9z"/><path fill="#FF3D00" d="m6.3 14.7 6.6 4.8C14.7 15.1 19 12 24 12c3.1 0 5.9 1.2 8 3l5.7-5.7C34.2 6.1 29.4 4 24 4 16.3 4 9.7 8.3 6.3 14.7z"/><path fill="#4CAF50" d="M24 44c5.2 0 9.9-2 13.4-5.2l-6.2-5.2C29.2 35.1 26.7 36 24 36c-5.2 0-9.7-3.3-11.3-8l-6.5 5C9.5 39.6 16.2 44 24 44z"/><path fill="#1976D2" d="M43.6 20.1H42V20H24v8h11.3c-.8 2.2-2.2 4.2-4.1 5.6l6.2 5.2C36.9 39.2 44 34 44 24c0-1.3-.1-2.6-.4-3.9z"/></svg>
<span class="gr" id="hisarGRating"></span>
<span class="gstars">★★★★★</span>
<span class="gcount" id="hisarGCount"></span>
</a>
</div>
<div class="stats" id="hisarStats"></div>
<div class="reviews" id="hisarReviews"></div>
<p class="trust-foot"><span data-i18n="trustFootPre">Every review is public and verifiable —</span> <a id="hisarGLink" href="#" target="_blank" rel="noopener" data-i18n="trustFootLink">read all of them on Google</a>.</p>
</div>
</section>

<!-- SSS: hem musteri itirazlarini cevaplar hem Google'da zengin sonuc
(rich result) kazandirir. Sorular asagida FAQS listesinden yonetilir. -->
<section class="faq" aria-label="Frequently asked questions">
<h3 data-i18n="faqTitle">Frequently asked questions</h3>
<div id="hisarFaqList"></div>
</section>

<dialog class="lead" id="hisarLeadModal" aria-labelledby="hisarLeadTitle">
<div class="lead-head">
<button class="lead-close" type="button" aria-label="Close form">✕</button>
<h3 id="hisarLeadTitle" data-i18n="mTitle">Save your seat — free</h3>
<p><span data-i18n="mPkg">Package:</span> <b id="hisarLeadPkgLabel">—</b></p>
</div>

<form id="hisarLeadForm" method="POST">
<input type="hidden" name="_subject" value="New Umrah pre-registration — Hisar Tour" />
<input type="hidden" name="_template" value="table" />
<input type="hidden" name="_next" id="hisarLeadNext" value="" />
<input type="hidden" name="package" id="hisarLeadPkgInput" value="" />
<input type="text" name="_honey" style="display:none" tabindex="-1" autocomplete="off" />
<div>
<label for="hlf-name" data-i18n="lFullName">Full name</label>
<input id="hlf-name" name="name" type="text" required autocomplete="name" placeholder="Your full name" data-i18n-ph="phName" />
</div>
<div class="two">
<div>
<label for="hlf-phone" data-i18n="lPhone">Phone</label>
<input id="hlf-phone" name="phone" type="tel" required autocomplete="tel" placeholder="(555) 000-0000" />
</div>
<div>
<label for="hlf-email" data-i18n="lEmail">Email</label>
<input id="hlf-email" name="email" type="email" required autocomplete="email" placeholder="you@email.com" />
</div>
</div>
<div class="two">
<div>
<label for="hlf-pax" data-i18n="lTravelers">Travelers</label>
<select id="hlf-pax" name="travelers">
<option>1</option><option>2</option><option selected>3</option>
<option>4</option><option>5</option><option>6</option><option>7+</option>
</select>
</div>
<div>
<label for="hlf-room" data-i18n="lRoom">Room preference</label>
<select id="hlf-room" name="room_preference">
<option data-i18n="roomNotSure">Not sure yet</option><option value="Quad" data-i18n="roomQuad">Quad</option><option value="Triple" data-i18n="roomTriple">Triple</option><option value="Double" data-i18n="roomDouble">Double</option>
</select>
</div>
</div>
<div>
<label for="hlf-msg"><span data-i18n="lMsg">Anything we should know?</span> <span style="text-transform:none;font-weight:600" data-i18n="lOptional">(optional)</span></label>
<textarea id="hlf-msg" name="message" placeholder="Children's ages, wheelchair needs, departure city…" data-i18n-ph="phMsg"></textarea>
</div>
<button class="cta" type="submit">
<span data-i18n="ctaMain">Save My Seat</span>
<span class="sub" data-i18n="submitSub">Free · No payment now · Cancel anytime</span>
</button>
<p class="consent" data-i18n="consent">Pre-registration only reserves your place in line — no payment is taken.</p>
</form>

<div class="lead-success">
<div class="tick">
<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>
</div>
<h4 data-i18n="okTitle">JazakAllah khair — your seat is noted!</h4>
<p data-i18n="okText">Our team will call you within one business day to confirm everything, Insha'Allah.</p>
</div>
</dialog>

<script>
/* =====================================================================
BURADAN DUZENLEYIN - KOD BILGISI GEREKMEZ

PAKET SILMEK: { ... }, blogunu komple silin (virgul dahil).
PAKET EKLEMEK: bir blogu kopyalayin, sona yapistirin, degistirin.

ONEMLI ALANLAR:
month: "november" | "december" | "february" | "ramadan"
firstCity: "madinah" | "makkah" (rota rozeti + filtre + kart
fotografi buna gore secilir)
highlight: "fast" (Selling Fast) | "cheapest" (Best Price) |
"deal" (Deal Season) | "high" (Holiday Season) | ""
tier: "standard" | "comfort" | "premium" | "luxury"
(kart ustunde renkli kategori rozeti + filtre)
language: "en" gibi TEK dil (kartta bayrak + dil adi cikar).
en=Ingilizce tr=Turkce ru=Rusca uz=Ozbekce
id=Endonezce ms=Malayca kk=Kazakca ky=Kirgizca
discount: { amount: 200, label: "First 5 seats — $200 off" }
-> her oda fiyatindan 200 USD duser, eski fiyat ustu
cizili gorunur, kartin ustunde kirmizi serit cikar.
Indirim bitince discount satirini silin, yeter.
departureDate: "2026-11-21" (kalkis gunu) -> bu tarih gecince
kart sayfadan OTOMATIK kaldirilir, silmek gerekmez.
soldOut: true -> kart gri olur, SOLD OUT damgasi ve
"Join the waitlist" butonu cikar (bekleme listesi
kayitlari Sheet'e [WAITLIST] etiketiyle duser).
deadlineDate: "2026-10-20" gibi (YYYY-AA-GG) -> bu tarih
gectiginde kart OTOMATIK sold out olur.
Kalkis sehri filtresi airline yazisindan otomatik anlasilir
(New York/JFK, Washington/IAD, Chicago/ORD, Toronto/YYZ,
Los Angeles/LAX, Houston/IAH, Miami/MIA). Gerekirse pakete
departureCity: "dep-chicago" gibi bir satir ekleyerek elle
belirleyebilirsiniz.

Standart urunler ve ucretsiz ekstralar asagidaki iki listede tek
yerden yonetilir; kartlarda tekrar edilmez.
===================================================================== */

const SETTINGS = {
/* --- Hero (sayfanin en ustundeki karsilama alani) --- */
/* YouTube arka plan videosu (sadece video ID'si). Bos "" birakirsaniz
asagidaki mp4 kullanilir; o da bossa fotograf gorunur. */
heroYouTube: "", /* YouTube denendi, kararsiz kaldi - kendi mp4'unuz daha guvenilir */
/* Ekstralarin toplam piyasa degeri (basliklarda kullanilir) */
extrasValue: "$300+",
heroVideo: "https://hisartour.com/wp-content/uploads/2026/07/ministry-umrah-video-main-page.mp4", /* bos "" birakirsaniz fotograf kullanilir */
heroPhoto: "https://images.squarespace-cdn.com/content/v1/538279a0e4b037295d984647/1624489071542-CL6ZB8WYLFEWLGFB23FS/D5D_5139.jpeg?format=1000w",
makkahPhoto: "https://images.squarespace-cdn.com/content/v1/538279a0e4b037295d984647/1624488384591-VL5CQGSCE6YPSHVAL2Y7/850_4518-HDR.jpeg?format=2500w",
madinahPhoto: "https://images.squarespace-cdn.com/content/v1/538279a0e4b037295d984647/1624442484109-CRZ8411J6X53LTT2W3S9/850_0755.jpeg?format=2500w",
/* KONTROL PANELI: tours-api.gs kurulumundan sonra buraya kendi
/exec adresinizi yapistirin. Doluysa turlar Google Sheet'ten
okunur; bos "" ise asagidaki PACKAGES listesi kullanilir. */
toursApiUrl: "https://script.google.com/macros/s/AKfycbx4JLhyknVVgf-OkAV1a-jJ_LOisIzTDcv005VnhG8IgDZsi7-LsiWe6wpJlfpZHovT/exec",
sheetWebhookUrl: "https://script.google.com/macros/s/AKfycbwpM6qMdnHCBed_bh2f2e3vTnw2ypLZDaM1wx8YOxkyWbg2HI_wCzJOZkLt39IN80tntg/exec",
leadEmail: "",
thankYouUrl: "https://hisartour.com/thank-you/",
whatsapp: "12012018992"
};

/* =====================================================================
GUVEN BOLUMU - !!! ONEMLI !!!
Asagidaki puan, yorum sayisi ve yorumlar ORNEKTIR. Yayina almadan
once MUTLAKA gercek Google isletme profilinizdeki puan/sayi ile ve
gercek musteri yorumlariyla degistirin. Uydurma yorum veya puan
yayinlamak hem Google politikalarini hem tuketici yasalarini ihlal
eder ve isletme profilinizin cezalandirilmasina yol acar.
googleReviewsUrl: Google Business Profile > Yorum iste linkiniz
veya Google Maps isletme sayfanizin linki.
===================================================================== */
const TRUST = {
googleRating: "4.9", /* GERCEK puaniniz */
googleReviewCount: "322 Google reviews",
googleReviewsUrl: "https://share.google/rgtpI1guG3ITqt4Go", /* Google isletme profiliniz */
stats: [
{ num: "15+", label: "Years organizing Umrah" },
{ num: "10,000+", label: "Pilgrims hosted" },
{ num: "99%", label: "Visa success rate" }
],
/* Yorum metinlerini Google profilinizden BIREBIR kopyalayin
(hisartour.com anasayfadaki Trustindex kutusunda da ayni
yorumlar duruyor - oradan kopyalamak en kolayi).
who: yorumcunun Google'daki adi, tour: hangi tur/yil. */
/* Bu uc yorum, hisartour.com anasayfanizdaki Trustindex kutusunda
yayinlanan GERCEK Google yorumlaridir. Yorumcu adlarini Google
profilinizden ekleyin; dilediginizde yenileriyle degistirin. */
reviews: [
{ stars: 5, text: "Went with Hisar for Hajj 2025. Great indescribable experience elhamdulillah. Hisar is dependable and focused on performing Umrah and Hajj as per the Sunnah.", who: "Verified Google review", city: "USA", tour: "Hajj 2025" },
{ stars: 5, text: "Asela malykum. Amans travel group — we Dallas community are very happy and satisfied. You are doing high quality and professional service. We will not forget those time.", who: "Verified Google review", city: "Dallas, TX", tour: "Umrah group" },
{ stars: 5, text: "It was great experience to be in hajj. Performing hajj with great people is priceless.", who: "Verified Google review", city: "USA", tour: "Hajj" }
]
};

/* SSS - sorular Google'da "zengin sonuc" olarak da listelenir */
const FAQS = [
{ q: "What is included in your Umrah packages?",
a: "Everything: round-trip flights, 1-year Saudi tourist visa, hotels within walking distance of the Haram, daily open-buffet breakfast AND dinner, all ground transfers by private luxury coach, guided Ziyarah visits in both cities, health insurance, and 24/7 Imam guidance. There are no hidden fees — the price you see is the full price." },
{ q: "How far are the hotels from the Haram?",
a: "Every hotel we book is within a short walk of the Haram — typically 200 to 500 meters (3 to 7 minutes on foot). Each package card above shows the exact distance and walking time for both the Makkah and Madinah hotels, so you can pray every Salah in the Haram without shuttles or taxis." },
{ q: "Do you have Umrah packages from New York, Toronto or other cities?",
a: "Yes. Most departures fly non-stop from New York (JFK) with Saudia, and we also run departures from Toronto (YYZ), Washington, Chicago, Los Angeles, Houston and Miami depending on the season. Use the 'From' filter above to see departures from your city." },
{ q: "Is dinner really included every day?",
a: "Yes — and we are one of the very few operators that includes it. Breakfast and dinner are served as open buffets at your own hotel in both Makkah and Madinah, so you never queue on the street after Isha or hunt for food with children. On Ramadan tours, Suhoor and Iftar are included instead." },
{ q: "Is pre-registration a commitment? Do I pay now?",
a: "No payment is taken online. Pre-registering only saves your seat in line — our team calls you within one business day to answer every question, and you decide afterwards. You can cancel your pre-registration at any time at no cost." },
{ q: "Are your groups suitable for elderly parents and children?",
a: "Very much so — that is who we design for. Hotels are steps from the Haram (no long walks), buses are private and comfortable, the pace is gentle, Bluetooth headsets keep everyone connected to the guide, and select school-break departures include a kids program. Look for the 'Family friendly' filter above." }
];

/* =====================================================================
COK DILLILIK: Sayfa, ziyaretcinin CIHAZ DILINI otomatik algilar ve
tum arayuzu o dilde gosterir (paket icerikleri yazdiginiz dilde
kalir). Sag ustteki 🌐 menusunden el ile de degistirilebilir.
Bir ceviriyi begenmezseniz asagida ilgili satiri duzeltin.
uz/kk/ky/id/ms cevirilerini ana dili konusan birine kontrol
ettirmenizi tavsiye ederim.
===================================================================== */
var UI_LANGS = { en:"English", tr:"Türkçe", ru:"Русский", uz:"O'zbekcha", id:"Indonesia", ms:"Melayu", kk:"Қазақша", ky:"Кыргызча" };
const I18N = {
en:{heroEyebrow:"Umrah Season 2026–27",heroTitle:"The Umrah you've been <em>praying&nbsp;for</em>.",heroCta:"See all packages",incTitle:"Everything handled. Nothing hidden.",incSub:"Your visa, your meals, your guide, your transfers — it's all already inside, on every single departure. Only the dates, hotels and price change. Put us next to any operator: <b>same market price, hundreds of dollars more in your package.</b>",stdTitle:"Standard in every package",extraTitle:"The Hisar Advantage — {v} of extras, included",incNote:"Other operators sell these separately — or skip them entirely. Our price matches the market; the value doesn't.",incTotal:"🧮 Total added value: {v} per person — already inside your package price",showList:"See everything included ▾",hideList:"Hide the list ▴",watch:"Watch",fMonth:"Month",fFrom:"From",fRoute:"Route",fCategory:"Category",fGuidance:"Guidance",fShow:"Show me",allMonths:"All months",mNov:"November 2026",mDec:"December 2026",mFeb:"February 2027",mRam:"Ramadan — Last 10 Nights",allCities:"All cities",anyRoute:"Any route",madFirst:"🕌 Madinah first",makFirst:"🕋 Makkah first",allCats:"All categories",tierStandard:"Standard",tierComfort:"Comfort",tierPremium:"Premium",tierLuxury:"Luxury",anyLanguage:"Any language",showEverything:"Everything",showFast:"🔥 Selling fast",showCheapest:"💰 Best price",showDeal:"✨ Deal season",showHigh:"🎉 Holiday season",chipNonstop:"✈ Non-stop only",chipFamily:"👨‍👩‍👧 Family friendly",clearAll:"Clear all",countText:"Showing {n} of {t} departures",noResults:"No departures match those filters — try removing one, or ask us on WhatsApp for a custom date.",kFlight:"Flight",kMakkahHotel:"Makkah Hotel",kMadinahHotel:"Madinah Hotel",kDining:"Dining — Only at Hisar Tour",diningMain:"5★ open-buffet breakfast <b>+ dinner</b>, every single day",walkLead:"Only a {min}-minute walk to the Haram",walkTail:" — pray every Salah inside, no shuttles, no taxis",shuttleLead:"Free shuttle to the Haram",shuttleTail:" — comfortable coaches at every prayer time",scaleFrom:"≈ {m} m from your lobby",scaleShuttle:"≈ {km} km · shuttle included",haram:"Haram",nonstop:"Non-stop",onestop:"1 Stop",roomQuad:"Quad",roomTriple:"Triple",roomDouble:"Double",perPerson:"per person",seatsLeft:"⚠ Only {n} seats left",soldMeta:"Sold out",doorsClose:"Doors close",regClosed:"Registration closed",ctaMain:"Save My Seat",ctaSub:"Free pre-registration · No payment now",waitMain:"Sold Out — Join the Waitlist",waitSub:"We'll call you first if a seat opens, Insha'Allah",linkItinerary:"See full day-by-day itinerary",linkWa:"Ask us on WhatsApp",trustTitle:"Trusted by pilgrims across North America",trustFootPre:"Every review is public and verifiable —",trustFootLink:"read all of them on Google",faqTitle:"Frequently asked questions",mTitle:"Save your seat — free",mPkg:"Package:",lFullName:"Full name",lPhone:"Phone",lEmail:"Email",lTravelers:"Travelers",lRoom:"Room preference",roomNotSure:"Not sure yet",lMsg:"Anything we should know?",lOptional:"(optional)",phName:"Your full name",phMsg:"Children's ages, wheelchair needs, departure city…",submitSub:"Free · No payment now · Cancel anytime",consent:"Pre-registration only reserves your place in line — no payment is taken. Our team will call you within one business day to answer every question, Insha'Allah. We never share your information.",okTitle:"JazakAllah khair — your seat is noted!",okText:"Our team will call you within one business day to confirm everything, Insha'Allah. No payment, no obligation.",pillMakFirst:"🕋 Makkah First",pillMadFirst:"🕌 Madinah First",hlFast:"🔥 Selling Fast",hlCheapest:"💰 Best Price",hlDeal:"✨ Deal Season",hlHigh:"🎉 Holiday Season",waMsg:"Assalam Aleikum, I want to learn more about the {pkg} package. Could you help me?"},
tr:{heroEyebrow:"Umre Sezonu 2026–27",heroTitle:"Dualarınızdaki o <em>Umre</em>.",heroCta:"Tüm paketleri gör",incTitle:"Her şey hazır. Gizli hiçbir şey yok.",incSub:"Vizeniz, yemekleriniz, rehberiniz, transferleriniz — her kalkışta zaten dahil. Sadece tarihler, oteller ve fiyat değişir. Bizi dilediğiniz firmayla kıyaslayın: <b>aynı piyasa fiyatı, paketinizde yüzlerce dolar fazlası.</b>",stdTitle:"Her pakette standart",extraTitle:"Hisar Farkı — {v} değerinde ekstra dahil",incNote:"Diğer firmalar bunları ayrı satar — ya da hiç sunmaz. Fiyatımız piyasayla aynı; değerimiz değil.",incTotal:"🧮 Toplam ek değer: kişi başı {v} — paket fiyatınıza zaten dahil",showList:"Dahil olan her şeyi gör ▾",hideList:"Listeyi gizle ▴",watch:"İzle",fMonth:"Ay",fFrom:"Nereden",fRoute:"Rota",fCategory:"Kategori",fGuidance:"Rehberlik",fShow:"Göster",allMonths:"Tüm aylar",mNov:"Kasım 2026",mDec:"Aralık 2026",mFeb:"Şubat 2027",mRam:"Ramazan — Son 10 Gece",allCities:"Tüm şehirler",anyRoute:"Fark etmez",madFirst:"🕌 Önce Medine",makFirst:"🕋 Önce Mekke",allCats:"Tüm kategoriler",tierStandard:"Standart",tierComfort:"Konfor",tierPremium:"Premium",tierLuxury:"Lüks",anyLanguage:"Tüm diller",showEverything:"Hepsi",showFast:"🔥 Hızla tükeniyor",showCheapest:"💰 En iyi fiyat",showDeal:"✨ Fırsat sezonu",showHigh:"🎉 Tatil sezonu",chipNonstop:"✈ Sadece direkt uçuş",chipFamily:"👨‍👩‍👧 Aile dostu",clearAll:"Filtreleri temizle",countText:"{t} kalkıştan {n} tanesi gösteriliyor",noResults:"Bu filtrelere uyan kalkış yok — birini kaldırın veya WhatsApp'tan özel tarih sorun.",kFlight:"Uçuş",kMakkahHotel:"Mekke Oteli",kMadinahHotel:"Medine Oteli",kDining:"Yemekler — Sadece Hisar Tour'da",diningMain:"5★ açık büfe kahvaltı <b>+ akşam yemeği</b>, her gün",walkLead:"Harem'e sadece {min} dakika yürüme",walkTail:" — her vakti Harem'de kılın; servis yok, taksi yok",shuttleLead:"Harem'e ücretsiz servis",shuttleTail:" — her namaz vaktinde konforlu otobüsler",scaleFrom:"lobinizden ≈ {m} m",scaleShuttle:"≈ {km} km · servis dahil",haram:"Harem",nonstop:"Direkt",onestop:"1 Aktarma",roomQuad:"4 Kişilik",roomTriple:"3 Kişilik",roomDouble:"2 Kişilik",perPerson:"kişi başı",seatsLeft:"⚠ Son {n} koltuk",soldMeta:"Tükendi",doorsClose:"Son kayıt",regClosed:"Kayıtlar kapandı",ctaMain:"Yerimi Ayır",ctaSub:"Ücretsiz ön kayıt · Şimdi ödeme yok",waitMain:"Tükendi — Bekleme Listesine Katıl",waitSub:"Yer açılırsa ilk sizi ararız, İnşallah",linkItinerary:"Gün gün programı gör",linkWa:"WhatsApp'tan sorun",trustTitle:"Kuzey Amerika'daki umrecilerin güveni",trustFootPre:"Tüm yorumlar halka açık ve doğrulanabilir —",trustFootLink:"hepsini Google'da okuyun",faqTitle:"Sık sorulan sorular",mTitle:"Yerinizi ayırın — ücretsiz",mPkg:"Paket:",lFullName:"Ad Soyad",lPhone:"Telefon",lEmail:"E-posta",lTravelers:"Kişi sayısı",lRoom:"Oda tercihi",roomNotSure:"Henüz belli değil",lMsg:"Bilmemiz gereken bir şey var mı?",lOptional:"(isteğe bağlı)",phName:"Adınız ve soyadınız",phMsg:"Çocuk yaşları, tekerlekli sandalye, kalkış şehri…",submitSub:"Ücretsiz · Şimdi ödeme yok · İstediğinizde iptal",consent:"Ön kayıt yalnızca sıranızı ayırır — ödeme alınmaz. Ekibimiz bir iş günü içinde arayıp tüm sorularınızı yanıtlar, İnşallah. Bilgileriniz asla paylaşılmaz.",okTitle:"Allah razı olsun — yeriniz not edildi!",okText:"Ekibimiz bir iş günü içinde arayıp her şeyi teyit edecek, İnşallah. Ödeme yok, taahhüt yok.",pillMakFirst:"🕋 Önce Mekke",pillMadFirst:"🕌 Önce Medine",hlFast:"🔥 Hızla Tükeniyor",hlCheapest:"💰 En İyi Fiyat",hlDeal:"✨ Fırsat Sezonu",hlHigh:"🎉 Tatil Sezonu",waMsg:"Selamünaleyküm, {pkg} paketi hakkında bilgi almak istiyorum. Yardımcı olur musunuz?"},
ru:{heroEyebrow:"Сезон умры 2026–27",heroTitle:"Умра, о которой вы <em>молились</em>.",heroCta:"Все пакеты",incTitle:"Всё организовано. Ничего скрытого.",incSub:"Виза, питание, гид, трансферы — всё уже включено в каждый выезд. Меняются только даты, отели и цена. Сравните нас с любым оператором: <b>та же рыночная цена, на сотни долларов больше в пакете.</b>",stdTitle:"Стандарт в каждом пакете",extraTitle:"Преимущество Hisar — бонусы на {v} включены",incNote:"Другие продают это отдельно — или не предлагают вовсе. Цена как на рынке; ценность — выше.",incTotal:"🧮 Доп. ценность: {v} на человека — уже в цене пакета",showList:"Показать всё включённое ▾",hideList:"Скрыть список ▴",watch:"Видео",fMonth:"Месяц",fFrom:"Откуда",fRoute:"Маршрут",fCategory:"Категория",fGuidance:"Язык гида",fShow:"Показать",allMonths:"Все месяцы",mNov:"Ноябрь 2026",mDec:"Декабрь 2026",mFeb:"Февраль 2027",mRam:"Рамадан — последние 10 ночей",allCities:"Все города",anyRoute:"Любой",madFirst:"🕌 Сначала Медина",makFirst:"🕋 Сначала Мекка",allCats:"Все категории",tierStandard:"Стандарт",tierComfort:"Комфорт",tierPremium:"Премиум",tierLuxury:"Люкс",anyLanguage:"Любой язык",showEverything:"Всё",showFast:"🔥 Быстро раскупают",showCheapest:"💰 Лучшая цена",showDeal:"✨ Сезон скидок",showHigh:"🎉 Праздничный сезон",chipNonstop:"✈ Только прямые",chipFamily:"👨‍👩‍👧 Для семей",clearAll:"Сбросить всё",countText:"Показано {n} из {t} выездов",noResults:"Нет выездов по этим фильтрам — уберите один или спросите в WhatsApp.",kFlight:"Рейс",kMakkahHotel:"Отель в Мекке",kMadinahHotel:"Отель в Медине",kDining:"Питание — только у Hisar Tour",diningMain:"Завтрак и <b>ужин</b> — шведский стол 5★, каждый день",walkLead:"Всего {min} мин пешком до Харама",walkTail:" — каждый намаз в Хараме, без автобусов и такси",shuttleLead:"Бесплатный трансфер до Харама",shuttleTail:" — комфортные автобусы к каждому намазу",scaleFrom:"≈ {m} м от лобби",scaleShuttle:"≈ {km} км · трансфер включён",haram:"Харам",nonstop:"Прямой",onestop:"1 пересадка",roomQuad:"4-местный",roomTriple:"3-местный",roomDouble:"2-местный",perPerson:"с человека",seatsLeft:"⚠ Осталось {n} мест",soldMeta:"Мест нет",doorsClose:"Запись до",regClosed:"Запись закрыта",ctaMain:"Забронировать место",ctaSub:"Бесплатная предзапись · Без оплаты",waitMain:"Мест нет — в лист ожидания",waitSub:"Позвоним первым, если место освободится, ин ша Аллах",linkItinerary:"Программа по дням",linkWa:"Спросить в WhatsApp",trustTitle:"Нам доверяют паломники Северной Америки",trustFootPre:"Все отзывы публичны и проверяемы —",trustFootLink:"читайте их в Google",faqTitle:"Частые вопросы",mTitle:"Забронируйте место — бесплатно",mPkg:"Пакет:",lFullName:"Имя и фамилия",lPhone:"Телефон",lEmail:"Эл. почта",lTravelers:"Путешественников",lRoom:"Тип номера",roomNotSure:"Пока не знаю",lMsg:"Что нам стоит знать?",lOptional:"(необязательно)",phName:"Ваше полное имя",phMsg:"Возраст детей, коляска, город вылета…",submitSub:"Бесплатно · Без оплаты · Можно отменить",consent:"Предзапись лишь сохраняет вашу очередь — оплата не взимается. Мы позвоним в течение рабочего дня и ответим на все вопросы, ин ша Аллах. Данные не передаются.",okTitle:"Джазакум Аллаху хайран — место отмечено!",okText:"Позвоним в течение рабочего дня и всё подтвердим, ин ша Аллах. Без оплаты и обязательств.",pillMakFirst:"🕋 Сначала Мекка",pillMadFirst:"🕌 Сначала Медина",hlFast:"🔥 Быстро раскупают",hlCheapest:"💰 Лучшая цена",hlDeal:"✨ Сезон скидок",hlHigh:"🎉 Праздничный сезон",waMsg:"Ассаляму алейкум! Хочу узнать больше о пакете {pkg}. Поможете?"},
uz:{heroEyebrow:"Umra mavsumi 2026–27",heroTitle:"Siz duo qilib kelgan <em>Umra</em>.",heroCta:"Barcha paketlar",incTitle:"Hammasi tayyor. Yashirin narsa yo'q.",incSub:"Viza, taomlar, yo'lboshchi, transferlar — barchasi har bir safarga kiritilgan. Faqat sanalar, mehmonxonalar va narx o'zgaradi. Istalgan firma bilan solishtiring: <b>bozor narxi bir xil, paketda yuzlab dollar ko'proq.</b>",stdTitle:"Har paketda standart",extraTitle:"Hisar afzalligi — {v} qo'shimchalar kiritilgan",incNote:"Boshqalar bularni alohida sotadi — yoki umuman bermaydi.",incTotal:"🧮 Jami qo'shimcha qiymat: kishi boshiga {v} — narxga kiritilgan",showList:"Hammasini ko'rish ▾",hideList:"Ro'yxatni yashirish ▴",watch:"Ko'rish",fMonth:"Oy",fFrom:"Qayerdan",fRoute:"Yo'nalish",fCategory:"Toifa",fGuidance:"Til",fShow:"Ko'rsatish",allMonths:"Barcha oylar",mNov:"Noyabr 2026",mDec:"Dekabr 2026",mFeb:"Fevral 2027",mRam:"Ramazon — oxirgi 10 kecha",allCities:"Barcha shaharlar",anyRoute:"Farqi yo'q",madFirst:"🕌 Avval Madina",makFirst:"🕋 Avval Makka",allCats:"Barcha toifalar",tierStandard:"Standart",tierComfort:"Komfort",tierPremium:"Premium",tierLuxury:"Lyuks",anyLanguage:"Istalgan til",showEverything:"Hammasi",showFast:"🔥 Tez sotilmoqda",showCheapest:"💰 Eng yaxshi narx",showDeal:"✨ Chegirma mavsumi",showHigh:"🎉 Bayram mavsumi",chipNonstop:"✈ Faqat to'g'ridan",chipFamily:"👨‍👩‍👧 Oilaviy",clearAll:"Tozalash",countText:"{t} safardan {n} tasi ko'rsatilmoqda",noResults:"Bu filtrlar bo'yicha safar topilmadi — bittasini olib tashlang yoki WhatsApp orqali so'rang.",kFlight:"Parvoz",kMakkahHotel:"Makka mehmonxonasi",kMadinahHotel:"Madina mehmonxonasi",kDining:"Taomlar — faqat Hisar Tour'da",diningMain:"5★ shved stoli: nonushta <b>+ kechki ovqat</b>, har kuni",walkLead:"Haramgacha atigi {min} daqiqa piyoda",walkTail:" — har namozni Haramda o'qing, avtobussiz, taksisiz",shuttleLead:"Haramga bepul qatnov",shuttleTail:" — har namoz vaqtida qulay avtobuslar",scaleFrom:"lobbidan ≈ {m} m",scaleShuttle:"≈ {km} km · qatnov kiritilgan",haram:"Haram",nonstop:"To'g'ridan",onestop:"1 o'tirish",roomQuad:"4 kishilik",roomTriple:"3 kishilik",roomDouble:"2 kishilik",perPerson:"kishi boshiga",seatsLeft:"⚠ Atigi {n} o'rin qoldi",soldMeta:"Sotilib bo'ldi",doorsClose:"Ro'yxat yopiladi",regClosed:"Ro'yxat yopildi",ctaMain:"Joyimni band qilish",ctaSub:"Bepul ro'yxat · Hozir to'lov yo'q",waitMain:"Sotildi — Navbat ro'yxatiga",waitSub:"Joy ochilsa birinchi sizga qo'ng'iroq qilamiz, in sha Alloh",linkItinerary:"Kunma-kun dasturni ko'rish",linkWa:"WhatsApp orqali so'rang",trustTitle:"Shimoliy Amerika ziyoratchilarining ishonchi",trustFootPre:"Barcha sharhlar ochiq va tekshiriladi —",trustFootLink:"barchasini Google'da o'qing",faqTitle:"Ko'p so'raladigan savollar",mTitle:"Joyingizni band qiling — bepul",mPkg:"Paket:",lFullName:"Ism-familiya",lPhone:"Telefon",lEmail:"Email",lTravelers:"Yo'lovchilar",lRoom:"Xona tanlovi",roomNotSure:"Hali aniq emas",lMsg:"Bilishimiz kerak bo'lgan narsa bormi?",lOptional:"(ixtiyoriy)",phName:"To'liq ismingiz",phMsg:"Bolalar yoshi, nogironlik aravasi, uchish shahri…",submitSub:"Bepul · To'lovsiz · Istalgan payt bekor qilish",consent:"Ro'yxatdan o'tish faqat navbatingizni saqlaydi — to'lov olinmaydi. Jamoamiz bir ish kuni ichida qo'ng'iroq qiladi, in sha Alloh.",okTitle:"Jazakallohu xayran — joyingiz belgilandi!",okText:"Bir ish kuni ichida qo'ng'iroq qilib tasdiqlaymiz, in sha Alloh. To'lov yo'q, majburiyat yo'q.",pillMakFirst:"🕋 Avval Makka",pillMadFirst:"🕌 Avval Madina",hlFast:"🔥 Tez sotilmoqda",hlCheapest:"💰 Eng yaxshi narx",hlDeal:"✨ Chegirma",hlHigh:"🎉 Bayram mavsumi",waMsg:"Assalomu alaykum, {pkg} paketi haqida ko'proq bilmoqchiman. Yordam bera olasizmi?"},
id:{heroEyebrow:"Musim Umrah 2026–27",heroTitle:"Umrah yang selama ini Anda <em>doakan</em>.",heroCta:"Lihat semua paket",incTitle:"Semua diurus. Tanpa biaya tersembunyi.",incSub:"Visa, makanan, pembimbing, transportasi — semuanya sudah termasuk di setiap keberangkatan. Hanya tanggal, hotel, dan harga yang berbeda. Bandingkan dengan operator mana pun: <b>harga pasar sama, nilai ratusan dolar lebih banyak.</b>",stdTitle:"Standar di setiap paket",extraTitle:"Keunggulan Hisar — ekstra senilai {v} termasuk",incNote:"Operator lain menjualnya terpisah — atau tidak menawarkannya sama sekali.",incTotal:"🧮 Total nilai tambahan: {v} per orang — sudah termasuk dalam harga",showList:"Lihat semua yang termasuk ▾",hideList:"Sembunyikan daftar ▴",watch:"Tonton",fMonth:"Bulan",fFrom:"Dari",fRoute:"Rute",fCategory:"Kategori",fGuidance:"Bahasa",fShow:"Tampilkan",allMonths:"Semua bulan",mNov:"November 2026",mDec:"Desember 2026",mFeb:"Februari 2027",mRam:"Ramadan — 10 Malam Terakhir",allCities:"Semua kota",anyRoute:"Rute apa pun",madFirst:"🕌 Madinah dulu",makFirst:"🕋 Makkah dulu",allCats:"Semua kategori",tierStandard:"Standar",tierComfort:"Comfort",tierPremium:"Premium",tierLuxury:"Mewah",anyLanguage:"Bahasa apa pun",showEverything:"Semua",showFast:"🔥 Cepat habis",showCheapest:"💰 Harga terbaik",showDeal:"✨ Musim promo",showHigh:"🎉 Musim liburan",chipNonstop:"✈ Hanya langsung",chipFamily:"👨‍👩‍👧 Ramah keluarga",clearAll:"Hapus semua",countText:"Menampilkan {n} dari {t} keberangkatan",noResults:"Tidak ada yang cocok — hapus salah satu filter atau tanya via WhatsApp.",kFlight:"Penerbangan",kMakkahHotel:"Hotel Makkah",kMadinahHotel:"Hotel Madinah",kDining:"Makan — hanya di Hisar Tour",diningMain:"Prasmanan 5★: sarapan <b>+ makan malam</b>, setiap hari",walkLead:"Hanya {min} menit jalan kaki ke Haram",walkTail:" — salat lima waktu di Haram, tanpa shuttle, tanpa taksi",shuttleLead:"Shuttle gratis ke Haram",shuttleTail:" — bus nyaman di setiap waktu salat",scaleFrom:"≈ {m} m dari lobi",scaleShuttle:"≈ {km} km · shuttle termasuk",haram:"Haram",nonstop:"Langsung",onestop:"1 Transit",roomQuad:"Ber-4",roomTriple:"Ber-3",roomDouble:"Ber-2",perPerson:"per orang",seatsLeft:"⚠ Sisa {n} kursi",soldMeta:"Habis",doorsClose:"Ditutup",regClosed:"Pendaftaran ditutup",ctaMain:"Amankan Kursi Saya",ctaSub:"Pra-daftar gratis · Tanpa bayar sekarang",waitMain:"Habis — Ikut Daftar Tunggu",waitSub:"Kami hubungi Anda pertama jika ada kursi, insya Allah",linkItinerary:"Lihat itinerari harian",linkWa:"Tanya via WhatsApp",trustTitle:"Dipercaya jamaah di Amerika Utara",trustFootPre:"Semua ulasan publik dan dapat diverifikasi —",trustFootLink:"baca semuanya di Google",faqTitle:"Pertanyaan umum",mTitle:"Amankan kursi Anda — gratis",mPkg:"Paket:",lFullName:"Nama lengkap",lPhone:"Telepon",lEmail:"Email",lTravelers:"Jumlah jamaah",lRoom:"Pilihan kamar",roomNotSure:"Belum tahu",lMsg:"Ada yang perlu kami ketahui?",lOptional:"(opsional)",phName:"Nama lengkap Anda",phMsg:"Usia anak, kursi roda, kota keberangkatan…",submitSub:"Gratis · Tanpa bayar · Bisa dibatalkan",consent:"Pra-pendaftaran hanya menyimpan antrean Anda — tanpa pembayaran. Tim kami menelepon dalam satu hari kerja, insya Allah. Data Anda tidak pernah dibagikan.",okTitle:"Jazakallahu khairan — kursi Anda dicatat!",okText:"Kami akan menelepon dalam satu hari kerja untuk konfirmasi, insya Allah. Tanpa bayar, tanpa kewajiban.",pillMakFirst:"🕋 Makkah dulu",pillMadFirst:"🕌 Madinah dulu",hlFast:"🔥 Cepat Habis",hlCheapest:"💰 Harga Terbaik",hlDeal:"✨ Musim Promo",hlHigh:"🎉 Musim Liburan",waMsg:"Assalamualaikum, saya ingin tahu lebih banyak tentang paket {pkg}. Bisa dibantu?"},
ms:{heroEyebrow:"Musim Umrah 2026–27",heroTitle:"Umrah yang selama ini anda <em>doakan</em>.",heroCta:"Lihat semua pakej",incTitle:"Semua diuruskan. Tiada yang tersembunyi.",incSub:"Visa, makanan, pembimbing, pengangkutan — semuanya sudah termasuk dalam setiap perlepasan. Hanya tarikh, hotel dan harga yang berubah. Bandingkan dengan mana-mana pengendali: <b>harga pasaran sama, nilai ratusan dolar lebih.</b>",stdTitle:"Standard dalam setiap pakej",extraTitle:"Kelebihan Hisar — ekstra bernilai {v} termasuk",incNote:"Pengendali lain menjualnya berasingan — atau langsung tidak menawarkannya.",incTotal:"🧮 Jumlah nilai tambahan: {v} seorang — sudah dalam harga pakej",showList:"Lihat semua yang termasuk ▾",hideList:"Sembunyikan senarai ▴",watch:"Tonton",fMonth:"Bulan",fFrom:"Dari",fRoute:"Laluan",fCategory:"Kategori",fGuidance:"Bahasa",fShow:"Papar",allMonths:"Semua bulan",mNov:"November 2026",mDec:"Disember 2026",mFeb:"Februari 2027",mRam:"Ramadan — 10 Malam Terakhir",allCities:"Semua bandar",anyRoute:"Mana-mana",madFirst:"🕌 Madinah dahulu",makFirst:"🕋 Makkah dahulu",allCats:"Semua kategori",tierStandard:"Standard",tierComfort:"Selesa",tierPremium:"Premium",tierLuxury:"Mewah",anyLanguage:"Mana-mana bahasa",showEverything:"Semua",showFast:"🔥 Cepat habis",showCheapest:"💰 Harga terbaik",showDeal:"✨ Musim tawaran",showHigh:"🎉 Musim cuti",chipNonstop:"✈ Terus sahaja",chipFamily:"👨‍👩‍👧 Mesra keluarga",clearAll:"Kosongkan semua",countText:"Memaparkan {n} daripada {t} perlepasan",noResults:"Tiada perlepasan sepadan — buang satu penapis atau tanya di WhatsApp.",kFlight:"Penerbangan",kMakkahHotel:"Hotel Makkah",kMadinahHotel:"Hotel Madinah",kDining:"Makan — hanya di Hisar Tour",diningMain:"Bufet 5★: sarapan <b>+ makan malam</b>, setiap hari",walkLead:"Hanya {min} minit berjalan ke Haram",walkTail:" — solat lima waktu di Haram, tanpa shuttle, tanpa teksi",shuttleLead:"Shuttle percuma ke Haram",shuttleTail:" — bas selesa pada setiap waktu solat",scaleFrom:"≈ {m} m dari lobi",scaleShuttle:"≈ {km} km · shuttle termasuk",haram:"Haram",nonstop:"Terus",onestop:"1 Transit",roomQuad:"Ber-4",roomTriple:"Ber-3",roomDouble:"Ber-2",perPerson:"seorang",seatsLeft:"⚠ Tinggal {n} tempat",soldMeta:"Habis",regClosed:"Pendaftaran ditutup",doorsClose:"Ditutup",ctaMain:"Tempah Tempat Saya",ctaSub:"Pra-daftar percuma · Tiada bayaran sekarang",waitMain:"Habis — Sertai Senarai Menunggu",waitSub:"Kami hubungi anda dahulu jika ada tempat, insya-Allah",linkItinerary:"Lihat itinerari harian",linkWa:"Tanya di WhatsApp",trustTitle:"Dipercayai jemaah di Amerika Utara",trustFootPre:"Semua ulasan awam dan boleh disahkan —",trustFootLink:"baca semuanya di Google",faqTitle:"Soalan lazim",mTitle:"Tempah tempat anda — percuma",mPkg:"Pakej:",lFullName:"Nama penuh",lPhone:"Telefon",lEmail:"Emel",lTravelers:"Bilangan jemaah",lRoom:"Pilihan bilik",roomNotSure:"Belum pasti",lMsg:"Ada apa-apa yang perlu kami tahu?",lOptional:"(pilihan)",phName:"Nama penuh anda",phMsg:"Umur anak, kerusi roda, bandar berlepas…",submitSub:"Percuma · Tiada bayaran · Boleh batal",consent:"Pra-pendaftaran hanya menyimpan giliran anda — tiada bayaran diambil. Pasukan kami akan menghubungi dalam satu hari bekerja, insya-Allah.",okTitle:"JazakAllah khair — tempat anda dicatat!",okText:"Kami akan menghubungi dalam satu hari bekerja untuk pengesahan, insya-Allah. Tiada bayaran, tiada obligasi.",pillMakFirst:"🕋 Makkah dahulu",pillMadFirst:"🕌 Madinah dahulu",hlFast:"🔥 Cepat Habis",hlCheapest:"💰 Harga Terbaik",hlDeal:"✨ Musim Tawaran",hlHigh:"🎉 Musim Cuti",waMsg:"Assalamualaikum, saya ingin tahu lebih lanjut tentang pakej {pkg}. Boleh bantu?"},
kk:{heroEyebrow:"Умра маусымы 2026–27",heroTitle:"Сіз дұға еткен сол <em>Умра</em>.",heroCta:"Барлық пакеттер",incTitle:"Бәрі дайын. Жасырын ештеңе жоқ.",incSub:"Виза, тамақ, жетекші, трансфер — бәрі әр сапарға қосылған. Тек күндер, қонақүйлер мен баға өзгереді. Кез келген оператормен салыстырыңыз: <b>нарық бағасы бірдей, пакетте жүздеген доллар артық.</b>",stdTitle:"Әр пакетте стандарт",extraTitle:"Hisar артықшылығы — {v} бонус қосылған",incNote:"Басқалар мұны бөлек сатады — немесе мүлдем ұсынбайды.",incTotal:"🧮 Қосымша құн: адам басына {v} — бағаға кірген",showList:"Барлығын көру ▾",hideList:"Тізімді жасыру ▴",watch:"Көру",fMonth:"Ай",fFrom:"Қайдан",fRoute:"Бағыт",fCategory:"Санат",fGuidance:"Тіл",fShow:"Көрсету",allMonths:"Барлық айлар",mNov:"Қараша 2026",mDec:"Желтоқсан 2026",mFeb:"Ақпан 2027",mRam:"Рамазан — соңғы 10 түн",allCities:"Барлық қалалар",anyRoute:"Кез келген",madFirst:"🕌 Алдымен Мәдина",makFirst:"🕋 Алдымен Мекке",allCats:"Барлық санаттар",tierStandard:"Стандарт",tierComfort:"Комфорт",tierPremium:"Премиум",tierLuxury:"Люкс",anyLanguage:"Кез келген тіл",showEverything:"Бәрі",showFast:"🔥 Тез сатылуда",showCheapest:"💰 Үздік баға",showDeal:"✨ Жеңілдік маусымы",showHigh:"🎉 Мереке маусымы",chipNonstop:"✈ Тек тікелей",chipFamily:"👨‍👩‍👧 Отбасына қолайлы",clearAll:"Тазарту",countText:"{t} сапардың {n} көрсетілуде",noResults:"Сәйкес сапар жоқ — бір сүзгіні алыңыз немесе WhatsApp арқылы сұраңыз.",kFlight:"Рейс",kMakkahHotel:"Мекке қонақүйі",kMadinahHotel:"Мәдина қонақүйі",kDining:"Тамақтану — тек Hisar Tour-да",diningMain:"5★ швед үстелі: таңғы ас <b>+ кешкі ас</b>, күн сайын",walkLead:"Харамға бар болғаны {min} минут жаяу",walkTail:" — әр намазды Харамда оқыңыз, автобуссыз, таксисіз",shuttleLead:"Харамға тегін қатынас",shuttleTail:" — әр намаз уақытында ыңғайлы автобустар",scaleFrom:"≈ лоббиден {m} м",scaleShuttle:"≈ {km} км · қатынас қосылған",haram:"Харам",nonstop:"Тікелей",onestop:"1 ауысу",roomQuad:"4 орындық",roomTriple:"3 орындық",roomDouble:"2 орындық",perPerson:"адам басына",seatsLeft:"⚠ {n} орын қалды",soldMeta:"Орын жоқ",doorsClose:"Тіркелу мерзімі",regClosed:"Тіркелу жабылды",ctaMain:"Орнымды сақтау",ctaSub:"Тегін алдын ала тіркелу · Қазір төлем жоқ",waitMain:"Орын жоқ — Күту тізіміне",waitSub:"Орын босаса, алдымен сізге қоңырау шаламыз, ин шаа Аллаһ",linkItinerary:"Күнделікті бағдарлама",linkWa:"WhatsApp арқылы сұрау",trustTitle:"Солтүстік Америка қажыларының сенімі",trustFootPre:"Барлық пікірлер ашық және тексеріледі —",trustFootLink:"бәрін Google-дан оқыңыз",faqTitle:"Жиі қойылатын сұрақтар",mTitle:"Орныңызды сақтаңыз — тегін",mPkg:"Пакет:",lFullName:"Аты-жөні",lPhone:"Телефон",lEmail:"Email",lTravelers:"Адам саны",lRoom:"Бөлме таңдауы",roomNotSure:"Әлі белгісіз",lMsg:"Білуіміз керек нәрсе бар ма?",lOptional:"(міндетті емес)",phName:"Толық аты-жөніңіз",phMsg:"Балалар жасы, арба, ұшу қаласы…",submitSub:"Тегін · Төлемсіз · Кез келген уақытта бас тарту",consent:"Алдын ала тіркелу тек кезегіңізді сақтайды — төлем алынбайды. Командамыз бір жұмыс күнінде хабарласады, ин шаа Аллаһ.",okTitle:"ЖазакАллаһу хайран — орныңыз белгіленді!",okText:"Бір жұмыс күнінде қоңырау шалып растаймыз, ин шаа Аллаһ. Төлем жоқ, міндеттеме жоқ.",pillMakFirst:"🕋 Алдымен Мекке",pillMadFirst:"🕌 Алдымен Мәдина",hlFast:"🔥 Тез сатылуда",hlCheapest:"💰 Үздік баға",hlDeal:"✨ Жеңілдік",hlHigh:"🎉 Мереке маусымы",waMsg:"Ассаламу алейкум, {pkg} пакеті туралы көбірек білгім келеді. Көмектесе аласыз ба?"},
ky:{heroEyebrow:"Умра сезону 2026–27",heroTitle:"Сиз тилеп келген ошол <em>Умра</em>.",heroCta:"Бардык пакеттер",incTitle:"Баары даяр. Жашыруун эч нерсе жок.",incSub:"Виза, тамак, жетекчи, трансфер — баары ар бир сапарга кирет. Күндөр, мейманканалар жана баа гана өзгөрөт. Каалаган оператор менен салыштырыңыз: <b>базар баасы бирдей, пакетте жүздөгөн доллар көп.</b>",stdTitle:"Ар пакетте стандарт",extraTitle:"Hisar артыкчылыгы — {v} бонус кошулган",incNote:"Башкалар муну өзүнчө сатат — же таптакыр бербейт.",incTotal:"🧮 Кошумча баалуулук: адам башына {v} — баага кирген",showList:"Баарын көрүү ▾",hideList:"Тизмени жашыруу ▴",watch:"Көрүү",fMonth:"Ай",fFrom:"Кайдан",fRoute:"Багыт",fCategory:"Категория",fGuidance:"Тил",fShow:"Көрсөтүү",allMonths:"Бардык айлар",mNov:"Ноябрь 2026",mDec:"Декабрь 2026",mFeb:"Февраль 2027",mRam:"Рамазан — акыркы 10 түн",allCities:"Бардык шаарлар",anyRoute:"Баары бир",madFirst:"🕌 Адегенде Медина",makFirst:"🕋 Адегенде Мекке",allCats:"Бардык категориялар",tierStandard:"Стандарт",tierComfort:"Комфорт",tierPremium:"Премиум",tierLuxury:"Люкс",anyLanguage:"Каалаган тил",showEverything:"Баары",showFast:"🔥 Тез сатылууда",showCheapest:"💰 Мыкты баа",showDeal:"✨ Арзандатуу сезону",showHigh:"🎉 Майрам сезону",chipNonstop:"✈ Түз учуу гана",chipFamily:"👨‍👩‍👧 Үй-бүлөгө ыңгайлуу",clearAll:"Тазалоо",countText:"{t} сапардын {n} көрсөтүлүүдө",noResults:"Дал келген сапар жок — бир чыпканы алып салыңыз же WhatsApp аркылуу сураңыз.",kFlight:"Рейс",kMakkahHotel:"Мекке мейманканасы",kMadinahHotel:"Медина мейманканасы",kDining:"Тамактануу — Hisar Tour'до гана",diningMain:"5★ швед столу: эртең мененки <b>+ кечки тамак</b>, күн сайын",walkLead:"Харамга болгону {min} мүнөт жөө",walkTail:" — ар намазды Харамда окуңуз, автобуссуз, таксисиз",shuttleLead:"Харамга акысыз каттам",shuttleTail:" — ар намаз убагында ыңгайлуу автобустар",scaleFrom:"≈ лоббиден {m} м",scaleShuttle:"≈ {km} км · каттам кошулган",haram:"Харам",nonstop:"Түз",onestop:"1 которуу",roomQuad:"4 орундук",roomTriple:"3 орундук",roomDouble:"2 орундук",perPerson:"адам башына",seatsLeft:"⚠ {n} орун калды",soldMeta:"Орун жок",doorsClose:"Каттоо аягы",regClosed:"Каттоо жабылды",ctaMain:"Ордумду ээлөө",ctaSub:"Акысыз алдын ала каттоо · Азыр төлөм жок",waitMain:"Орун жок — Күтүү тизмесине",waitSub:"Орун бошосо биринчи сизге чалабыз, ин шаа Аллах",linkItinerary:"Күн сайынкы программа",linkWa:"WhatsApp аркылуу суроо",trustTitle:"Түндүк Америка зыяратчыларынын ишеними",trustFootPre:"Бардык пикирлер ачык жана текшерилет —",trustFootLink:"баарын Google'дан окуңуз",faqTitle:"Көп берилүүчү суроолор",mTitle:"Ордуңузду ээлеңиз — акысыз",mPkg:"Пакет:",lFullName:"Аты-жөнү",lPhone:"Телефон",lEmail:"Email",lTravelers:"Адам саны",lRoom:"Бөлмө тандоосу",roomNotSure:"Азырынча белгисиз",lMsg:"Билишибиз керек нерсе барбы?",lOptional:"(милдеттүү эмес)",phName:"Толук аты-жөнүңүз",phMsg:"Балдардын жашы, майып арабасы, учуу шаары…",submitSub:"Акысыз · Төлөмсүз · Каалаган учурда жокко чыгаруу",consent:"Алдын ала каттоо кезегиңизди гана сактайт — төлөм алынбайт. Командабыз бир жумуш күндө чалып, суроолорго жооп берет, ин шаа Аллах.",okTitle:"ЖазакАллаху хайран — ордуңуз белгиленди!",okText:"Бир жумуш күндө чалып тастыктайбыз, ин шаа Аллах. Төлөм жок, милдеттенме жок.",pillMakFirst:"🕋 Адегенде Мекке",pillMadFirst:"🕌 Адегенде Медина",hlFast:"🔥 Тез сатылууда",hlCheapest:"💰 Мыкты баа",hlDeal:"✨ Арзандатуу",hlHigh:"🎉 Майрам сезону",waMsg:"Ассалому алейкум, {pkg} пакети жөнүндө көбүрөөк билгим келет. Жардам бере аласызбы?"}
};

/* Her pakette STANDART olanlar (title, aciklama, istege bagli video) */
/* Standart hizmetler - EN GUCLU/FARKLI olanlar ustte siralanir.
icon: ozel SVG anahtari (asagidaki ICONS). */
const STANDARD_INCLUDED = [
{ icon:"imam", title:"24/7 Scholar & Imam Guidance",
text:"A qualified Imam stays beside your group from the first takbir to the final farewell — every question answered, every ritual led with confidence.",
video:"https://www.youtube.com/shorts/wwUAwVGEDDY" },
{ icon:"breakfast", title:"Daily Buffet Breakfast",
text:"Start every morning full and unhurried — open-buffet breakfast at your hotels in both Makkah and Madinah.",
video:"https://www.youtube.com/shorts/ET3c7f7bGAg" },
{ icon:"ziyarat", title:"All Ziyarat Visits Included",
text:"Makkah: Mount Thawr, Arafat, Mina, Muzdalifah & Jabal Noor. Madinah: Uhud, Masjid Qiblatayn, the Seven Masjids & Masjid Quba." },
{ icon:"transport", title:"Private Luxury Coaches",
text:"Every transfer and excursion in a private, air-conditioned luxury coach — no crowded shared buses, no waiting." },
{ icon:"webinar", title:"Live Pre-Umrah Webinar",
text:"Land knowing every step — a guided workshop before departure so nothing about the rituals feels unfamiliar." },
{ icon:"visa", title:"1-Year Multiple-Entry Visa",
text:"Your visa stays valid a full year after the trip — return with family anytime, no new paperwork." },
{ icon:"health", title:"Health Insurance Included",
text:"Covered at Saudi government hospitals throughout your stay — travel with complete peace of mind." }
];

/* THE HISAR ADVANTAGE - piyasada olmayan, bizi ayiran hizmetler.
EN CARPICI fark (aksam yemegi) en ustte. */
const FREE_EXTRAS = [
{ icon:"dinner", title:"Daily Buffet Dinner", flag:"Almost no one includes this",
text:"No street queues after Isha, no hunting for food with tired children — a full open-buffet dinner waits at your hotel every single night.",
video:"https://www.youtube.com/shorts/ET3c7f7bGAg" },
{ icon:"umrah", title:"3 Extra Guided Umrahs", flag:"Extra reward",
text:"Three additional Umrahs with the group from the historic Miqats — Hudaybiyyah, Al-Ju'ranah, Al-Taneem and Arafat." },
{ icon:"headset", title:"Personal Bluetooth Headsets", flag:"Never lose your guide",
text:"Hear your guide crystal-clear in the crowd — every dua and instruction, right in your ear during group rituals." },
{ icon:"garden", title:"Private Dates Garden Visit",
text:"Wander a real Madinah date garden — taste the harvest fresh and take the story home." },
{ icon:"gift", title:"Welcome Gift Set",
text:"Premium backpack, hand bag, ID holder and a digital Dua book — you arrive equipped, not shopping." }
];

/* Otel detay linkleri: ad, paketteki yazimla BIREBIR ayni olmali */
const HOTEL_LINKS = {
"Rotana Jabal Omar or similar": "https://www.booking.com/searchresults.html?ss=Jabal+Omar+Rotana+Makkah",
"Hilton Makkah Convention or similar": "https://www.booking.com/searchresults.html?ss=Hilton+Makkah+Convention",
"Al Manakha Rotana or similar": "https://www.booking.com/searchresults.html?ss=Al+Manakha+Rotana+Madinah",
"Elaf Al Taqwa or similar": "https://www.booking.com/searchresults.html?ss=Elaf+Al+Taqwa+Madinah",
"Dar Al Ghufran or similar": "https://www.booking.com/searchresults.html?ss=Dar+Al+Ghufran+Makkah",
"Grand Al Massa or similar": "https://www.booking.com/searchresults.html?ss=Al+Massa+Grand+Makkah",
"Shaza Regency or similar": "https://www.booking.com/searchresults.html?ss=Shaza+Regency+Madinah",
"Maden Hotel or similar": "https://www.booking.com/searchresults.html?ss=Maden+Hotel+Madinah",
"Novotel Makkah or similar": "https://www.booking.com/searchresults.html?ss=Novotel+Makkah+Thakher",
"Maien Hotel or similar": "https://www.booking.com/searchresults.html?ss=Maien+Hotel+Madinah",
"Hyatt Regency Madinah or similar": "https://www.booking.com/searchresults.html?ss=Hyatt+Regency+Madinah"
};

/*
MARKA LOGOLARI - yeni paket eklerken airline / makkahHotel /
madinahHotel alanina marka adini yazmaniz yeterli; logo otomatik
eslesir. tone:"dark" beyaz/seffaf logolari koyu zeminde gosterir.
*/
const BRAND_LOGOS = {
airlines: [
{ match: /saudia|saudis+airlines/i, name: "Saudia", url: "https://hisartour.com/wp-content/uploads/2026/07/Saudia_2023_Logo.svg", tone: "light" },
{ match: /egypts*air/i, name: "EgyptAir", url: "https://hisartour.com/wp-content/uploads/2026/07/Egyptair-Logo.svg", tone: "light" },
{ match: /qatars+airways/i, name: "Qatar Airways", url: "https://hisartour.com/wp-content/uploads/2026/07/Qatar_Airways_logo.svg", tone: "light" },
{ match: /turkishs+airlines/i, name: "Turkish Airlines", url: "https://hisartour.com/wp-content/uploads/2026/07/Turkish-Airlines-logo.svg", tone: "light", className: "brand-turkish-airlines" }
],
hotels: [
{ match: /rotana/i, name: "Rotana", url: "https://cdb.rotana.com/rcnimagelib/nx_logo_w_10.png", tone: "dark" },
{ match: /elaf/i, name: "Elaf Al Taqwa", url: "https://elafgroup.com/wp-content/themes/elaf/assets/images/logo.svg", tone: "dark" },
{ match: /hiltons+(?:makkahs+)?convention/i, name: "Hilton Convention", url: "https://www.hilton.com/modules/assets/svgs/logos/HI.svg", tone: "light", className: "brand-hilton" },
{ match: /novotel/i, name: "Novotel Makkah", url: "https://hisartour.com/wp-content/uploads/2026/07/novotel-svg.svg", tone: "light" },
{ match: /maien/i, name: "Maien Hotel", url: "https://hisartour.com/wp-content/uploads/2026/07/maien-madinah-svg.svg", tone: "light" },
{ match: /hyatts+regency/i, name: "Hyatt Regency", url: "https://www.hyatt.com/t/themes/v3/main/regency/images/logos/header-sm-eu-on-dark.svg", tone: "dark" }
]
};

const PACKAGES = [

{
name: "August Group Umrah", region: "Şirketler Ağustos",
seasonBadge: "Summer Deal", month: "november", firstCity: "madinah", highlight: "deal",
tier: "premium", language: "tr",
dates: "Aug 15 – 25, 2026 · 10 nights (4 Madinah / 6 Makkah)",
hook: "A calm late-summer week in the two holy cities.",
labels: ["Smaller Crowds", "Perfect First Umrah"],
familyFriendly: true,
airline: "Saudia — New York (JFK) → Jeddah", directFlight: true,
flightNote: "Non-stop from New York",
makkahHotel: "Rotana Jabal Omar or similar", makkahStars: 5, makkahMeters: 350,
madinahHotel: "Elaf Al Taqwa or similar", madinahStars: 4, madinahMeters: 250,
priceQuad: "$2,150", priceTriple: "$2,250", priceDouble: "$2,450",
bestValue: "quad", bestLabel: "Best Price", pricesNote: "",
seatsLeft: "6", deadline: "Jul 20", deadlineDate: "2026-07-20",
departureDate: "2026-08-15",
detailsLink: "https://hisartour.com/package/august-group-umrah/", photo: ""
},

{
name: "November Companies Umrah", region: "Şirketler Kasım",
seasonBadge: "November", month: "november", firstCity: "madinah", highlight: "fast",
tier: "premium", language: "tr",
dates: "Nov 20 – 29, 2026 · 9 nights (4 Madinah / 5 Makkah)",
hook: "One trip, zero hassle — your only job is worship.",
labels: ["Stress-Free with Elderly Parents", "Kids Welcome", "Perfect First Umrah"],
familyFriendly: true,
airline: "Saudia — New York (JFK) → Jeddah", directFlight: true,
flightNote: "Non-stop — no layover stress with kids or elders",
makkahHotel: "Rotana Jabal Omar or similar", makkahStars: 5, makkahMeters: 350,
madinahHotel: "Elaf Al Taqwa or similar", madinahStars: 4, madinahMeters: 250,
priceQuad: "$2,950", priceTriple: "$3,050", priceDouble: "$3,250",
bestValue: "double", bestLabel: "Most Chosen", pricesNote: "",
seatsLeft: "22", deadline: "Oct 20",
departureDate: "2026-11-20",
detailsLink: "https://hisartour.com/package/november-companies-umrah/", photo: ""
},

{
name: "November Umrah — Toronto", region: "Süleymaniye Kasım",
seasonBadge: "November", month: "november", firstCity: "madinah", highlight: "deal",
tier: "premium", language: "tr",
dates: "Nov 21 – 29, 2026 · 8 nights (3 Madinah / 5 Makkah)",
hook: "Quiet season, calm Haram — Umrah at its most peaceful.",
labels: ["Smaller Crowds", "Gentle Pace for Seniors", "Canada & Upstate NY"],
familyFriendly: true,
airline: "Saudia — Toronto (YYZ) → Jeddah", directFlight: true,
flightNote: "Non-stop from Toronto — easy for Canada & Upstate NY",
makkahHotel: "Rotana Jabal Omar or similar", makkahStars: 5, makkahMeters: 350,
madinahHotel: "Elaf Al Taqwa or similar", madinahStars: 4, madinahMeters: 250,
priceQuad: "$2,950", priceTriple: "$3,050", priceDouble: "$3,250",
bestValue: "quad", bestLabel: "Smart Saver", pricesNote: "",
seatsLeft: "20", deadline: "Oct 20",
departureDate: "2026-11-21",
detailsLink: "https://hisartour.com/package/november-toronto-umrah/", photo: ""
},

{
name: "December Umrah — Toronto", region: "Kanada Aralık",
seasonBadge: "Holiday Season", month: "december", firstCity: "madinah", highlight: "high",
tier: "comfort", language: "tr",
dates: "Dec 19 – 29, 2026 · 10 nights (4 Madinah / 6 Makkah)",
hook: "The school-break journey your family will remember for life.",
labels: ["School Break Timing", "Canada Departure", "Family Favorite"],
familyFriendly: true,
airline: "Saudia — Toronto (YYZ) → Jeddah", directFlight: true,
flightNote: "Non-stop from Toronto",
makkahHotel: "Grand Al Massa or similar", makkahStars: 4, makkahMeters: 600,
madinahHotel: "Shaza Regency or similar", madinahStars: 4, madinahMeters: 450,
priceQuad: "$3,200", priceTriple: "$3,400", priceDouble: "$3,600",
bestValue: "quad", bestLabel: "Family Favorite", pricesNote: "Child discounts available.",
seatsLeft: "18", deadline: "Nov 25",
departureDate: "2026-12-19",
detailsLink: "https://hisartour.com/package/december-toronto-umrah/", photo: ""
},

{
name: "December Luxury Umrah", region: "Şirketler Aralık",
seasonBadge: "Holiday Season", month: "december", firstCity: "madinah", highlight: "high",
tier: "luxury", language: "tr",
dates: "Dec 20 – 28, 2026 · 8 nights (4 Madinah / 4 Makkah)",
hook: "The holiest week of the year — in the finest comfort.",
labels: ["Steps from the Haram", "Premium Comfort", "Family Favorite"],
familyFriendly: true,
airline: "Saudia — New York (JFK) → Jeddah", directFlight: true,
flightNote: "Non-stop comfort, both ways",
makkahHotel: "Dar Al Ghufran or similar", makkahStars: 5, makkahMeters: 100,
madinahHotel: "Maden Hotel or similar", madinahStars: 5, madinahMeters: 100,
priceQuad: "$3,990", priceTriple: "$4,290", priceDouble: "$4,590",
bestValue: "double", bestLabel: "Most Chosen", pricesNote: "",
seatsLeft: "10", deadline: "Dec 1",
departureDate: "2026-12-20",
detailsLink: "https://hisartour.com/package/december-luxury-umrah/", photo: ""
},

{
name: "New Year Umrah I", region: "Süleymaniye Aralık",
seasonBadge: "New Year", month: "december", firstCity: "makkah", highlight: "fast",
tier: "premium", language: "tr",
dates: "Dec 23, 2026 – Jan 1, 2027 · 9 nights (5 Makkah / 4 Madinah)",
hook: "Spend the year's final takbir at the Kaaba, not at a countdown.",
labels: ["Most Requested Dates", "Family Favorite", "Stress-Free with Elderly Parents"],
familyFriendly: true,
airline: "Saudia — New York (JFK) → Jeddah", directFlight: true,
flightNote: "Non-stop — the most requested flight of the season",
makkahHotel: "Rotana Jabal Omar or similar", makkahStars: 5, makkahMeters: 350,
madinahHotel: "Elaf Al Taqwa or similar", madinahStars: 4, madinahMeters: 250,
priceQuad: "$3,500", priceTriple: "$3,700", priceDouble: "$3,900",
bestValue: "double", bestLabel: "Most Chosen", pricesNote: "",
seatsLeft: "8", deadline: "Dec 7",
departureDate: "2026-12-23",
detailsLink: "https://hisartour.com/package/new-year-umrah-1/", photo: ""
},

{
name: "New Year Umrah II", region: "Şirketler Aralık — ICPC",
seasonBadge: "New Year", month: "december", firstCity: "makkah", highlight: "high",
tier: "premium", language: "tr",
dates: "Dec 25, 2026 – Jan 3, 2027 · 9 nights (5 Makkah / 4 Madinah)",
hook: "Begin the new year renewed at the Kaaba.",
labels: ["New Year at the Kaaba", "Couples & Adults", "Perfect First Umrah"],
familyFriendly: false,
airline: "Saudia — New York (JFK) → Jeddah", directFlight: true,
flightNote: "Non-stop, both ways",
makkahHotel: "Rotana Jabal Omar or similar", makkahStars: 5, makkahMeters: 350,
madinahHotel: "Elaf Al Taqwa or similar", madinahStars: 4, madinahMeters: 250,
priceQuad: "$3,500", priceTriple: "$3,700", priceDouble: "$3,900",
bestValue: "triple", bestLabel: "Most Chosen", pricesNote: "",
seatsLeft: "12", deadline: "Dec 8",
departureDate: "2026-12-25",
detailsLink: "https://hisartour.com/package/new-year-umrah-2/", photo: ""
},

{
name: "Winter Break Umrah", region: "Şirketler Aralık",
seasonBadge: "School Break", month: "december", firstCity: "madinah", highlight: "fast",
tier: "premium", language: "tr",
dates: "Dec 19 – 28, 2026 · 9 nights (4 Madinah / 5 Makkah)",
hook: "The school-break journey your children will remember for life.",
labels: ["School Break Timing", "Kids Program Included", "Family Favorite"],
familyFriendly: true,
airline: "Saudia — New York (JFK) → Jeddah", directFlight: true,
flightNote: "Non-stop — no layover stress with kids",
makkahHotel: "Rotana Jabal Omar or similar", makkahStars: 5, makkahMeters: 350,
madinahHotel: "Elaf Al Taqwa or similar", madinahStars: 4, madinahMeters: 250,
priceQuad: "$3,500", priceTriple: "$3,700", priceDouble: "$3,900",
bestValue: "quad", bestLabel: "Family Favorite", pricesNote: "Child discounts available.",
seatsLeft: "10", deadline: "Dec 1",
departureDate: "2026-12-19",
detailsLink: "https://hisartour.com/package/winter-break-umrah/", photo: ""
},

{
name: "December Umrah — Isabet", region: "İsabet Aralık",
seasonBadge: "Holiday Season", month: "december", firstCity: "madinah", highlight: "high",
tier: "premium", language: "tr",
dates: "Dec 20 – 30, 2026 · 10 nights (4 Madinah / 6 Makkah)",
hook: "An extra-long holiday stay in the two holy cities.",
labels: ["Extended Stay", "Gentle Pace for Seniors", "Perfect First Umrah"],
familyFriendly: true,
airline: "Saudia — New York (JFK) → Jeddah", directFlight: true,
flightNote: "Non-stop comfort, both ways",
makkahHotel: "Rotana Jabal Omar or similar", makkahStars: 5, makkahMeters: 350,
madinahHotel: "Elaf Al Taqwa or similar", madinahStars: 4, madinahMeters: 250,
priceQuad: "$3,500", priceTriple: "$3,700", priceDouble: "$3,900",
bestValue: "triple", bestLabel: "Most Chosen", pricesNote: "",
seatsLeft: "16", deadline: "Dec 4",
departureDate: "2026-12-20",
detailsLink: "https://hisartour.com/package/december-isabet-umrah/", photo: ""
},

{
name: "New Year Umrah — Washington", region: "Şirketler Aralık",
seasonBadge: "New Year", month: "december", firstCity: "madinah", highlight: "high",
tier: "premium", language: "tr",
dates: "Dec 23 – 31, 2026 · 8 nights (4 Madinah / 4 Makkah)",
hook: "Close the year at the Haram, depart from the capital.",
labels: ["Washington DC Departure", "New Year at the Haram", "Perfect First Umrah"],
familyFriendly: true,
airline: "Saudia — Washington (IAD) → Jeddah", directFlight: true,
flightNote: "Non-stop from Washington Dulles",
makkahHotel: "Rotana Jabal Omar or similar", makkahStars: 5, makkahMeters: 350,
madinahHotel: "Elaf Al Taqwa or similar", madinahStars: 4, madinahMeters: 250,
priceQuad: "$3,500", priceTriple: "$3,700", priceDouble: "$3,900",
bestValue: "quad", bestLabel: "Most Chosen", pricesNote: "",
seatsLeft: "14", deadline: "Dec 10",
departureDate: "2026-12-23",
detailsLink: "https://hisartour.com/package/december-washington-umrah/", photo: ""
},

{
name: "December Umrah — Los Angeles", region: "Hisar Mıntıkası Aralık",
seasonBadge: "Holiday Season", month: "december", firstCity: "madinah", highlight: "high",
tier: "premium", language: "tr",
dates: "December 2026 · 8 nights (4 Madinah / 4 Makkah) — dates announced soon",
hook: "A West Coast departure for the holiest week of the year.",
labels: ["Los Angeles Departure", "West Coast Community", "Family Favorite"],
familyFriendly: true,
airline: "Saudia — Los Angeles (LAX) → Jeddah", directFlight: false,
flightNote: "Convenient West Coast routing",
makkahHotel: "Rotana Jabal Omar or similar", makkahStars: 5, makkahMeters: 350,
madinahHotel: "Elaf Al Taqwa or similar", madinahStars: 4, madinahMeters: 250,
priceQuad: "$3,500", priceTriple: "$3,700", priceDouble: "$3,900",
bestValue: "triple", bestLabel: "Most Chosen", pricesNote: "",
seatsLeft: "20", deadline: "Nov 20",
departureDate: "2026-12-28",
detailsLink: "https://hisartour.com/package/december-la-umrah/", photo: ""
},

{
name: "Ramadan Umrah — Last 10 Nights", region: "Şirketler Ramazan-ı Şerif",
seasonBadge: "Ramadan — Laylatul Qadr", month: "ramadan", firstCity: "madinah", highlight: "fast",
tier: "standard", language: "tr",
dates: "Mar 1 – 10, 2027 · Last 10 Nights · 9 nights (3 Madinah / 6 Makkah)",
hook: "Seek Laylatul Qadr in the Haram — a night better than a thousand months.",
labels: ["Laylatul Qadr in the Haram", "Itikaf-Friendly Schedule", "The Journey of a Lifetime"],
familyFriendly: false,
airline: "Saudia — New York (JFK) → Jeddah", directFlight: true,
flightNote: "Non-stop — arrive with your energy saved for worship",
makkahHotel: "Novotel Makkah or similar", makkahStars: 4, makkahMeters: 2500,
madinahHotel: "Maien Hotel or similar", madinahStars: 4, madinahMeters: 550,
priceQuad: "$3,300", priceTriple: "$3,400", priceDouble: "$3,500",
bestValue: "double", bestLabel: "Most Chosen", pricesNote: "Suhoor & Iftar buffets included every day.",
seatsLeft: "10", deadline: "Feb 1",
departureDate: "2027-03-01",
detailsLink: "https://hisartour.com/package/ramadan-last-10-nights/", photo: ""
},

{
name: "Shawwal Students Umrah — Sisters", region: "Bölge Kız Talebe Şevval",
seasonBadge: "Shawwal", month: "february", firstCity: "madinah", highlight: "cheapest",
tier: "standard", language: "tr",
dates: "April 2027 · 8 nights (4 Madinah / 4 Makkah) — dates announced soon",
hook: "A dedicated post-Ramadan journey for students.",
labels: ["Students Only", "Sisters' Group", "Budget Friendly"],
familyFriendly: false,
airline: "Saudia — New York (JFK) / Washington (IAD)", directFlight: true,
flightNote: "Departures from JFK & Washington",
makkahHotel: "Novotel Makkah or similar", makkahStars: 4, makkahMeters: 2500,
madinahHotel: "Maien Hotel or similar", madinahStars: 4, madinahMeters: 550,
priceQuad: "$1,990", priceTriple: "$2,190", priceDouble: "$2,490",
bestValue: "quad", bestLabel: "Best Price", pricesNote: "Student group — limited seats.",
seatsLeft: "20", deadline: "Mar 1",
departureDate: "2027-04-15",
detailsLink: "https://hisartour.com/package/shawwal-sisters-umrah/", photo: ""
},

{
name: "Shawwal Students Umrah — Brothers", region: "Bölge Erkek Talebe Şevval",
seasonBadge: "Shawwal", month: "february", firstCity: "madinah", highlight: "cheapest",
tier: "standard", language: "tr",
dates: "April 2027 · 8 nights (4 Madinah / 4 Makkah) — dates announced soon",
hook: "A dedicated post-Ramadan journey for students.",
labels: ["Students Only", "Brothers' Group", "Budget Friendly"],
familyFriendly: false,
airline: "Saudia — New York (JFK) / Washington (IAD)", directFlight: true,
flightNote: "Departures from JFK & Washington",
makkahHotel: "Novotel Makkah or similar", makkahStars: 4, makkahMeters: 2500,
madinahHotel: "Maien Hotel or similar", madinahStars: 4, madinahMeters: 550,
priceQuad: "$1,990", priceTriple: "$2,190", priceDouble: "$2,490",
bestValue: "quad", bestLabel: "Best Price", pricesNote: "Student group — limited seats.",
seatsLeft: "20", deadline: "Mar 1",
departureDate: "2027-04-15",
detailsLink: "https://hisartour.com/package/shawwal-brothers-umrah/", photo: ""
}

];
/* ===== DUZENLENECEK ALANIN SONU - asagiya dokunmaniza gerek yok ===== */

(function(){
var root = document.getElementById('hisar-umrah');
var grid = root.querySelector('#hisarGrid');

/* Cihaz dilini algila; kullanici sectiyse onu hatirla */
var uiLang = '';
try { uiLang = localStorage.getItem('hisarLang') || ''; } catch(e){}
if (!I18N[uiLang]) {
var navLangs = navigator.languages || [navigator.language || 'en'];
for (var li = 0; li < navLangs.length; li++) {
var lc = String(navLangs[li]).slice(0,2).toLowerCase();
if (I18N[lc]) { uiLang = lc; break; }
}
if (!I18N[uiLang]) uiLang = 'en';
}
function t(k){ var d = I18N[uiLang] || {}; return (k in d) ? d[k] : (I18N.en[k] || ''); }
function tf(k, map){ var x = t(k); for (var mk in map){ x = x.split('{'+mk+'}').join(map[mk]); } return x; }

/* Video: baglanti yavassa/kapaliysa fotograf zaten altta durur */
var heroVid = root.querySelector('#hisarHeroVideo');
var heroYt = root.querySelector('#hisarHeroYt');
var reduceMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
if (SETTINGS.heroYouTube && !reduceMotion) {
var vid = String(SETTINGS.heroYouTube).replace(/[^a-zA-Z0-9_-]/g,'');
heroYt.innerHTML = '<iframe src="https://www.youtube-nocookie.com/embed/' + vid +
'?autoplay=1&mute=1&loop=1&playlist=' + vid +
'&controls=0&rel=0&playsinline=1&modestbranding=1&iv_load_policy=3" ' +
'title="Hisar Tour" allow="autoplay; encrypted-media" loading="lazy"></iframe>';
if (heroVid) heroVid.remove();
} else if (heroYt) { heroYt.remove(); }
if (SETTINGS.heroVideo && !SETTINGS.heroYouTube && !reduceMotion) {
heroVid.src = SETTINGS.heroVideo;
if (SETTINGS.heroPhoto) heroVid.poster = SETTINGS.heroPhoto;
var pl = heroVid.play(); if (pl && pl.catch) pl.catch(function(){});
} else if (heroVid && heroVid.parentNode) { heroVid.remove(); }

var heroImg = SETTINGS.heroPhoto || SETTINGS.makkahPhoto || '';
root.querySelector('#hisarHeroCard').style.backgroundImage =
'linear-gradient(168deg, rgba(16,35,84,.86) 0%, rgba(20,44,104,.55) 50%, rgba(20,44,104,.30) 100%)' +
(heroImg ? ', url("' + heroImg + '")' : '');
root.querySelector('#hisarHeroCta').addEventListener('click', function(){
var g = root.querySelector('#hisarGrid');
if (g && g.scrollIntoView) g.scrollIntoView({ behavior:'smooth', block:'start' });
});

function esc(s){
return String(s == null ? '' : s)
.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;');
}

/* ----- "Her pakette dahil" kartini olustur ----- */

/* Ozel cizilmis cift-renkli ikonlar (emoji yerine) - Lexus algisi.
duo:true olanlarda ikincil renk turkuaz ile vurgu yapilir. */
/* accent rengi: sol sutun turkuaz, sag (Advantage) sutun ALTIN kullanir.
Boylece Advantage tarafi daha prestijli/pahali hisseder. */
var ICONS = {
/* imam: minberde/dua eden net insan figuru */
imam: '<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><circle cx="12" cy="5.5" r="2.4" stroke="currentColor" stroke-width="1.5"/><path d="M8.5 21v-5.5c0-2 1.4-3.6 3.5-3.6s3.5 1.6 3.5 3.6V21" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/><path d="M9 12.4 6.5 15M15 12.4 17.5 15" stroke="var(--accent)" stroke-width="1.5" stroke-linecap="round"/><path d="M12 12v3" stroke="var(--accent)" stroke-width="1.5" stroke-linecap="round"/></svg>',
/* breakfast: fincan + bugu */
breakfast:'<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M4 11h13a3.5 3.5 0 0 1 0 7H8a4 4 0 0 1-4-4v-3Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="M17 12a2.5 2.5 0 0 1 0 5" stroke="currentColor" stroke-width="1.5"/><path d="M4 21h14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/><path d="M7 7c0-1 1-1.3 1-2.3M11 7c0-1 1-1.3 1-2.3" stroke="var(--accent)" stroke-width="1.5" stroke-linecap="round"/></svg>',
/* ziyarat: dag + patika + kucuk stick-man figuru */
ziyarat: '<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M3 20 9.5 9l3.5 5.5L16 10l5 10H3Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="m9.5 9 1.4 2.2" stroke="currentColor" stroke-width="1.5"/><circle cx="7.2" cy="15.4" r="1" fill="var(--accent)"/><path d="M7.2 16.4v2M6.2 19.4l1-1 1 1M6.4 17.2h1.6" stroke="var(--accent)" stroke-width="1.2" stroke-linecap="round"/></svg>',
/* transport: net otobus */
transport:'<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><rect x="3" y="4" width="18" height="13" rx="2.5" stroke="currentColor" stroke-width="1.5"/><path d="M3 12h18" stroke="currentColor" stroke-width="1.5"/><path d="M6.5 8h11" stroke="var(--accent)" stroke-width="1.5" stroke-linecap="round"/><path d="M6 17v2M18 17v2" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/><circle cx="7.5" cy="14.5" r="1" fill="var(--accent)"/><circle cx="16.5" cy="14.5" r="1" fill="var(--accent)"/></svg>',
/* webinar: ekran + oynat */
webinar: '<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><rect x="3" y="4" width="18" height="12" rx="2" stroke="currentColor" stroke-width="1.5"/><path d="M10.5 8.5v3l3-1.5-3-1.5Z" fill="var(--accent)"/><path d="M8 20h8M12 16v4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>',
/* visa: pasaport + damga */
visa: '<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><rect x="5" y="3" width="14" height="18" rx="2" stroke="currentColor" stroke-width="1.5"/><circle cx="12" cy="9" r="2.3" stroke="currentColor" stroke-width="1.5"/><path d="M9.5 13.5h5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/><path d="M14.5 16.5 16 18l2.5-2.8" stroke="var(--accent)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',
/* health: kalp + arti */
health: '<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M12 20.5S4.5 15 4.5 9.2A3.7 3.7 0 0 1 12 8a3.7 3.7 0 0 1 7.5 1.2C19.5 15 12 20.5 12 20.5Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="M12 9v4M10 11h4" stroke="var(--accent)" stroke-width="1.7" stroke-linecap="round"/></svg>',
/* dinner: catal + bicak + tabak (aksam yemegi) */
dinner: '<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><circle cx="12" cy="12" r="8" stroke="currentColor" stroke-width="1.5"/><circle cx="12" cy="12" r="3.4" stroke="var(--accent)" stroke-width="1.5"/></svg>',
/* umrah: Kabe + tavaf halkasi (daire) */
umrah: '<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><ellipse cx="12" cy="13" rx="9" ry="4" stroke="var(--accent)" stroke-width="1.4" stroke-dasharray="2 2.4"/><rect x="8.5" y="6" width="7" height="7" rx="0.6" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="M8.5 8.4h7" stroke="currentColor" stroke-width="1.4"/></svg>',
/* headset: kulaklik */
headset: '<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M5 13v-1a7 7 0 0 1 14 0v1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/><rect x="3.4" y="12.3" width="3.6" height="6" rx="1.6" stroke="currentColor" stroke-width="1.5" fill="none"/><rect x="17" y="12.3" width="3.6" height="6" rx="1.6" stroke="currentColor" stroke-width="1.5" fill="none"/><path d="M19 18.3V19a2.6 2.6 0 0 1-2.6 2.6H14" stroke="var(--accent)" stroke-width="1.5" stroke-linecap="round"/></svg>',
/* garden: net palmiye agaci */
garden: '<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M12 21v-9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/><path d="M12 12c0-2.5-2.2-4.5-5.5-4.5M12 12c0-2.5 2.2-4.5 5.5-4.5M12 12c0-3 1.4-5.5 3.5-6.8M12 12c0-3-1.4-5.5-3.5-6.8" stroke="var(--accent)" stroke-width="1.5" stroke-linecap="round"/><path d="M9 21h6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>',
/* gift: hediye kutusu */
gift: '<svg viewBox="0 0 24 24" fill="none" aria-hidden="true"><rect x="4" y="9" width="16" height="12" rx="1.5" stroke="currentColor" stroke-width="1.5"/><path d="M3.5 9h17M12 9v12" stroke="currentColor" stroke-width="1.5"/><path d="M12 9C10.3 9 8.5 8.2 8.5 6.7S10 4.5 12 9ZM12 9c1.7 0 3.5-.8 3.5-2.3S14 4.5 12 9Z" stroke="var(--accent)" stroke-width="1.4" stroke-linejoin="round"/></svg>'
};
function incItem(it){
var ic = ICONS[it.icon] || '';
var flag = it.flag ? '<span class="inc-flag">' + esc(it.flag) + '</span>' : '';
return '<div class="inc-item"><div class="em">' + ic + '</div><div class="inc-body-txt">' +
'<b>' + esc(it.title) + flag + '</b><span>' + esc(it.text) +
(it.video ? ' <a class="watch" href="' + esc(it.video) + '" target="_blank" rel="noopener" aria-label="Watch video">' +
'<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M8 5v14l11-7z"/></svg>' + t('watch') + '</a>' : '') +
'</span></div></div>';
}
function renderInclusions(){
var std = root.querySelector('#hisarIncStd');
var ex = root.querySelector('#hisarIncExtra');
std.querySelectorAll('.inc-item').forEach(function(n){ n.remove(); });
ex.querySelectorAll('.inc-item, .inc-total').forEach(function(n){ n.remove(); });
std.insertAdjacentHTML('beforeend', STANDARD_INCLUDED.map(incItem).join(''));
ex.insertAdjacentHTML('beforeend',
FREE_EXTRAS.map(incItem).join('') + '<div class="inc-total" id="hisarIncTotal"></div>');
root.querySelector('#hisarExtraH').textContent = tf('extraTitle', { v: SETTINGS.extrasValue || '' });
root.querySelector('#hisarIncTotal').textContent = tf('incTotal', { v: SETTINGS.extrasValue || '' });
}

/* ----- Guven bolumu ----- */
root.querySelector('#hisarGRating').textContent = TRUST.googleRating;
root.querySelector('#hisarGCount').textContent = TRUST.googleReviewCount;
root.querySelector('#hisarGBadge').href = TRUST.googleReviewsUrl;
root.querySelector('#hisarGLink').href = TRUST.googleReviewsUrl;
root.querySelector('#hisarStats').innerHTML = (TRUST.stats || []).map(function(st){
return '<div class="stat"><b>' + esc(st.num) + '</b><span>' + esc(st.label) + '</span></div>';
}).join('');
root.querySelector('#hisarReviews').innerHTML = (TRUST.reviews || []).map(function(r){
return '<div class="review"><span class="rstars">' + '★'.repeat(r.stars || 5) + '</span>' +
'<p class="rtext">&ldquo;' + esc(r.text) + '&rdquo;</p>' +
'<p class="rwho"><b>' + esc(r.who) + '</b> &middot; ' + esc(r.city) + '</p>' +
'<span class="rtour">' + esc(r.tour) + '</span></div>';
}).join('');

/* ----- SSS ----- */
root.querySelector('#hisarFaqList').innerHTML = FAQS.map(function(f){
return '<details><summary>' + esc(f.q) + '</summary><div class="fa">' + esc(f.a) + '</div></details>';
}).join('');
root.querySelectorAll('.faq details').forEach(function(d){
d.addEventListener('toggle', function(){ reportHeight(); });
});

/* ----- JSON-LD yapisal veri: Google paketleri fiyat/puanla listeler -----
Paket verilerinden OTOMATIK uretilir; elle guncellemek gerekmez. */
var schemaTag = null;
function injectSchema(list){
try {
var ld = [];
ld.push({
"@context": "https://schema.org", "@type": "TravelAgency",
"name": "Hisar Tour", "url": "https://hisartour.com/",
"image": SETTINGS.heroPhoto || "",
"aggregateRating": { "@type": "AggregateRating",
"ratingValue": TRUST.googleRating,
"reviewCount": String(TRUST.googleReviewCount).replace(/[^0-9]/g,'') || "1" }
});
ld.push({
"@context": "https://schema.org", "@type": "ItemList",
"name": "Umrah Packages 2026-27",
"itemListElement": list.map(function(p, i){
return { "@type": "ListItem", "position": i + 1, "item": {
"@type": "Product", "name": p.name,
"description": (p.hook || '') + ' ' + p.dates,
"image": p.photo || (p.firstCity === 'makkah' ? SETTINGS.makkahPhoto : SETTINGS.madinahPhoto),
"brand": { "@type": "Brand", "name": "Hisar Tour" },
"url": p.detailsLink,
"offers": { "@type": "Offer",
"price": String(p.priceQuad || p.priceTriple || p.priceDouble || '').replace(/[^0-9.]/g,'') || "0",
"priceCurrency": "USD",
"priceValidUntil": p.deadlineDate || p.departureDate || "2027-12-31",
"availability": isSoldOut(p) ? "https://schema.org/SoldOut" : "https://schema.org/InStock",
"url": p.detailsLink }
}};
})
});
ld.push({
"@context": "https://schema.org", "@type": "FAQPage",
"mainEntity": FAQS.map(function(f){
return { "@type": "Question", "name": f.q,
"acceptedAnswer": { "@type": "Answer", "text": f.a } };
})
});
var tag = document.createElement('script');
tag.type = 'application/ld+json';
tag.textContent = JSON.stringify(ld);
if (schemaTag && schemaTag.parentNode) schemaTag.parentNode.removeChild(schemaTag);
schemaTag = tag;
document.head.appendChild(tag);
} catch(err){}
}

var incBody = root.querySelector('#hisarIncBody');
var incToggle = root.querySelector('#hisarIncToggle');
incToggle.addEventListener('click', function(){
var open = incBody.classList.toggle('collapsed') === false;
incToggle.textContent = open ? t('hideList') : t('showList');
incToggle.setAttribute('aria-expanded', open ? 'true' : 'false');
reportHeight();
});

/* Tum arayuzu secili dile cevir */
function applyI18n(){
document.documentElement.lang = uiLang;
root.querySelectorAll('[data-i18n]').forEach(function(el){ el.textContent = t(el.getAttribute('data-i18n')); });
root.querySelectorAll('[data-i18n-html]').forEach(function(el){ el.innerHTML = t(el.getAttribute('data-i18n-html')); });
root.querySelectorAll('[data-i18n-ph]').forEach(function(el){ el.setAttribute('placeholder', t(el.getAttribute('data-i18n-ph'))); });
root.querySelector('#hisarHeroEyebrow').textContent = t('heroEyebrow');
root.querySelector('#hisarHeroTitle').innerHTML = t('heroTitle');
renderInclusions();
incToggle.textContent = incBody.classList.contains('collapsed') ? t('showList') : t('hideList');
}

function stars(n){ return '★'.repeat(Math.max(1, Math.min(5, n||5))); }
function walkRow(hotel, n, meters){
var far = meters >= 1000;
var pct = Math.min(100, Math.max(3, (meters/1000)*100));
var mins = Math.max(1, Math.round(meters/80));
var link = HOTEL_LINKS[hotel]
? ' <a class="hinfo" href="' + esc(HOTEL_LINKS[hotel]) + '" target="_blank" rel="noopener" title="See hotel photos, reviews & details" aria-label="Hotel details and reviews">i</a>'
: '';
return '<p class="v">' + esc(hotel) + ' <span class="stars">' + stars(n) + '</span>' + link +
(far
? '<small><span class="walk-lead"><b>' + t('shuttleLead') + '</b></span>' +
esc(t('shuttleTail')) + '</small></p>' +
'<div class="walk" aria-label="Approximately ' + (meters/1000).toFixed(1) + ' kilometers from the Haram, free shuttle provided">' +
'<div class="track"><span class="dot" style="left:100%"></span></div>' +
'<div class="scale"><span>' + t('haram') + '</span><span>' + esc(tf('scaleShuttle', { km: (meters/1000).toFixed(1) })) + '</span><span>&nbsp;</span></div>' +
'</div>'
: '<small><span class="walk-lead"><b>' + esc(tf('walkLead', { min: mins })) + '</b></span>' +
esc(t('walkTail')) + '</small></p>' +
'<div class="walk" aria-label="Approximately ' + meters + ' meters from the Haram, about a ' + mins + ' minute walk">' +
'<div class="track"><span class="dot" style="left:' + pct + '%"></span></div>' +
'<div class="scale"><span>' + t('haram') + '</span><span>' + esc(tf('scaleFrom', { m: meters })) + '</span><span>1 km</span></div>' +
'</div>');
}
function priceBox(room, amount, isBest, bestLabel, discAmt){
var na = !amount;
var priceHtml;
if (na) { priceHtml = 'N/A'; }
else if (discAmt) {
var num = parseFloat(String(amount).replace(/[^0-9.]/g,''));
if (!isNaN(num) && num > discAmt) {
var newP = num - discAmt;
priceHtml = '<s>' + esc(amount) + '</s>$' + newP.toLocaleString('en-US');
} else { priceHtml = esc(amount); }
} else { priceHtml = esc(amount); }
return '<div class="price' + (isBest && !na ? ' best' : '') + '">' +
(isBest && !na && bestLabel ? '<span class="pop">' + esc(bestLabel) + '</span>' : '') +
'<p class="room">' + room + '</p>' +
'<p class="amt' + (na ? ' na' : '') + '">' + priceHtml + '</p>' +
'<p class="per">' + (na ? '&nbsp;' : t('perPerson')) + '</p></div>';
}

var TIERS = { standard:'tierStandard', comfort:'tierComfort', premium:'tierPremium', luxury:'tierLuxury' };
var LANGS = { en:'🇺🇸', tr:'🇹🇷', ru:'🇷🇺', uz:'🇺🇿', id:'🇮🇩', ms:'🇲🇾', kk:'🇰🇿', ky:'🇰🇬' };
var LANG_NAMES = { en:'English', tr:'Türkçe', ru:'Русский', uz:"O'zbekcha", id:'Bahasa Indonesia', ms:'Bahasa Melayu', kk:'Қазақша', ky:'Кыргызча' };
/* Tur takvimi mantigi:
- departureDate GECMISSE -> kart tamamen gizlenir
- deadline gecti ama tur henuz kalkmadiysa, koltuk 0 ise veya
soldOut: true ise -> SOLD OUT + bekleme listesi */
function isPast(p){
if (!p.departureDate) return false;
var d = new Date(p.departureDate + 'T23:59:59');
return !isNaN(d) && d < new Date();
}
function isSoldOut(p){
if (p.soldOut === true) return true;
if (String(p.seatsLeft).trim() === '0') return true;
if (p.deadlineDate) {
var d = new Date(p.deadlineDate + 'T23:59:59');
if (!isNaN(d) && d < new Date()) return true;
}
return false;
}
var ACTIVE = PACKAGES; /* panel baglanirsa Sheet verisiyle degisir */
var LIVE = [];

var HL = {
fast: { key:'hlFast', cls:'hl-fast' },
cheapest: { key:'hlCheapest', cls:'hl-cheapest' },
deal: { key:'hlDeal', cls:'hl-deal' },
high: { key:'hlHigh', cls:'hl-high' }
};
var icPlane = '<svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z"/></svg>';
var icHotel = '<svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 21h18"/><path d="M5 21V7l7-4 7 4v14"/><path d="M9 21v-6h6v6"/></svg>';
var icArrow = '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="m13 6 6 6-6 6"/></svg>';

/* Kalkis sehri: airline yazisindaki sehir/havaalani adindan OTOMATIK
bulunur (JFK, YYZ, ORD...). Farkli bir sehir yazmak isterseniz
pakete departureCity: "dep-chicago" gibi bir alan ekleyin. */
var CITY_PATTERNS = [
['dep-newyork', /news*york|bjfkb|newark|bewrb/i],
['dep-washington', /washington|biadb|dulles|bdcab/i],
['dep-chicago', /chicago|bordb/i],
['dep-toronto', /toronto|byyzb/i],
['dep-losangeles', /loss*angeles|blaxb/i],
['dep-houston', /houston|biahb/i],
['dep-miami', /miami|bmiab/i]
];
function departureCityOf(p){
if (p.departureCity) return p.departureCity;
var a = String(p.airline || '');
for (var i = 0; i < CITY_PATTERNS.length; i++) {
if (CITY_PATTERNS[i][1].test(a)) return CITY_PATTERNS[i][0];
}
return '';
}

function findBrandLogo(value, type){
var list = BRAND_LOGOS[type] || [];
var label = String(value || '');
for (var i = 0; i < list.length; i++) {
if (list[i].match.test(label)) return list[i];
}
return null;
}
function brandLogo(value, type){
var brand = findBrandLogo(value, type);
var fallback = type === 'airlines' ? icPlane : icHotel;
if (!brand) return fallback;
return '<span class="brand-logo ' + (type === 'airlines' ? 'airline' : 'hotel') +
(brand.tone === 'dark' ? ' is-dark' : '') +
(brand.className ? ' ' + esc(brand.className) : '') + '" title="' + esc(brand.name) + '">' +
'<img src="' + esc(brand.url) + '" alt="' + esc(brand.name) + ' logo" loading="lazy" decoding="async" referrerpolicy="no-referrer" ' +
'onerror="this.style.display='none';this.parentNode.classList.add('logo-failed');">' +
'<span class="brand-fallback" aria-hidden="true">' + fallback + '</span></span>';
}

function buildCard(p){
var city = p.firstCity === 'makkah' ? 'makkah' : 'madinah';
var sold = isSoldOut(p);
var disc = (!sold && p.discount && p.discount.amount) ? p.discount : null;
var tier = TIERS[p.tier] ? p.tier : 'standard';
var lang = LANGS[p.language] ? p.language : (LANGS[(p.languages || [])[0]] ? p.languages[0] : 'en');
var tags = [p.month || '', city, 'tier-' + tier, 'lang-' + lang];
var dep = departureCityOf(p);
if (dep) tags.push(dep);
if (p.highlight) tags.push(p.highlight);
if (p.directFlight) tags.push('direct');
if (p.familyFriendly) tags.push('family');

var img = p.photo || (city === 'makkah' ? SETTINGS.makkahPhoto : SETTINGS.madinahPhoto) || '';
var visualStyle = img
? ' style="background-image:linear-gradient(rgba(20,44,104,.45),rgba(20,44,104,.78)),url(&quot;' + esc(img) + '&quot;)"'
: '';

var hl = HL[p.highlight];
var hlHtml = hl ? '<span class="hl ' + hl.cls + '">' + t(hl.key) + '</span>' : '';
var routeHtml = '<span class="routepill">' + (city === 'makkah' ? t('pillMakFirst') : t('pillMadFirst')) + '</span>';
var labelHtml = (p.labels || []).map(function(l){ return '<span>' + esc(l) + '</span>'; }).join('');
var flightBadge = p.directFlight
? '<span class="badge-direct">' + t('nonstop') + '</span>'
: '<span class="badge-stop">' + t('onestop') + '</span>';
var wa = 'https://wa.me/' + SETTINGS.whatsapp + '?text=' + encodeURIComponent(
tf('waMsg', { pkg: p.name + ' (' + p.dates + ')' }));
var hookHtml = p.hook ? '<p class="hook">&ldquo;' + esc(p.hook) + '&rdquo;</p>' : '';
var tierHtml = '<span class="tierpill tier-' + tier + '">' + t(TIERS[tier]) + '</span>';
var langHtml = '<span class="langpill" title="Tour language: ' + esc(LANG_NAMES[lang]) + '">' +
LANGS[lang] + ' ' + esc(LANG_NAMES[lang]) + '</span>';
var soldHtml = sold ? '<span class="soldflag">Sold Out</span>' : '';
var dealHtml = disc
? '<div class="dealbar">🏷 ' + esc(disc.label || ('$' + disc.amount + ' off per person')) + '</div>'
: '';
var noteHtml = p.pricesNote ? '<p class="prices-note">' + esc(p.pricesNote) + '</p>' : '';

/* Rota sirasina gore otel satirlarini diz: once ilk gidilen sehir */
var makkahRow = '<div class="fact">' + brandLogo(p.makkahHotel, 'hotels') + '<div class="body"><p class="k">' + t('kMakkahHotel') + '</p>' +
walkRow(p.makkahHotel, p.makkahStars, p.makkahMeters) + '</div></div>';
var madinahRow = '<div class="fact">' + brandLogo(p.madinahHotel, 'hotels') + '<div class="body"><p class="k">' + t('kMadinahHotel') + '</p>' +
walkRow(p.madinahHotel, p.madinahStars, p.madinahMeters) + '</div></div>';
var hotelRows = city === 'makkah' ? makkahRow + madinahRow : madinahRow + makkahRow;

return '<article class="pkg' + (sold ? ' soldout' : '') + '" data-tags="' + tags.join(' ').trim() + '" aria-label="' + esc(p.name) + ' package">' +
'<div class="pkg-visual"' + visualStyle + '>' + (sold ? soldHtml : hlHtml) +
'<div class="toppills">' + tierHtml + '<span class="season">' + esc(p.seasonBadge) + '</span>' + routeHtml + langHtml + '</div>' +
'<div><h2>' + esc(p.name) + '</h2><p class="dates">' + esc(p.dates) + '</p>' + hookHtml + '</div>' +
'</div>' + dealHtml +
'<div class="labels">' + labelHtml + '</div>' +
'<div class="facts">' +
'<div class="fact">' + brandLogo(p.airline, 'airlines') + '<div class="body"><p class="k">' + t('kFlight') + '</p>' +
'<p class="v">' + esc(p.airline) + ' ' + flightBadge +
'<small>' + esc(p.flightNote) + '</small></p></div></div>' +
hotelRows +
'</div>' +
'<div class="prices">' +
priceBox(t('roomQuad'), p.priceQuad, p.bestValue === 'quad', p.bestLabel, disc && disc.amount) +
priceBox(t('roomTriple'), p.priceTriple, p.bestValue === 'triple', p.bestLabel, disc && disc.amount) +
priceBox(t('roomDouble'), p.priceDouble, p.bestValue === 'double', p.bestLabel, disc && disc.amount) +
'</div>' +
noteHtml +
'<div class="pkg-foot">' +
'<div class="meta-row"><span class="seats">' + (sold ? t('soldMeta') : esc(tf('seatsLeft', { n: p.seatsLeft }))) + '</span>' +
'<span class="deadline">' + (sold ? t('regClosed') : t('doorsClose') + ' <b>' + esc(p.deadline) + '</b>') + '</span></div>' +
(sold
? '<button class="cta cta-sold open-lead" type="button" data-package="' + esc(p.name + ' (' + p.dates + ') [WAITLIST]') + '">' +
'<span>' + t('waitMain') + '</span>' +
'<span class="sub">' + t('waitSub') + '</span></button>'
: '<button class="cta open-lead" type="button" data-package="' + esc(p.name + ' (' + p.dates + ')') + '">' +
'<span>' + t('ctaMain') + ' ' + icArrow + '</span>' +
'<span class="sub">' + t('ctaSub') + '</span></button>') +
'<div class="foot-links">' +
'<a href="' + esc(p.detailsLink) + '">' + t('linkItinerary') + '</a>' +
'<a class="walink" href="' + wa + '" target="_blank" rel="noopener">' +
'<svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.372-.025-.521-.075-.148-.669-1.611-.916-2.206-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.095 3.2 5.076 4.487.709.306 1.263.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z"/></svg>' +
t('linkWa') + '</a>' +
'</div>' +
'</div>' +
'</article>';
}

function renderPackages(){
LIVE = ACTIVE.filter(function(p){
return !isPast(p) && String(p.hidden).toUpperCase() !== 'TRUE';
});
grid.innerHTML = LIVE.map(buildCard).join('');
total = LIVE.length;
applyFilters();
injectSchema(LIVE);
}

/* ----- Filtreler ----- */
var monthSel = root.querySelector('#hisarMonth');
var fromSel = root.querySelector('#hisarFrom');
var routeSel = root.querySelector('#hisarRoute');
var tierSel = root.querySelector('#hisarTier');
var langSel = root.querySelector('#hisarLang');
var dealSel = root.querySelector('#hisarDeal');
var chips = root.querySelectorAll('.chip');
var clearBtn = root.querySelector('#hisarClear');
var noRes = root.querySelector('#hisarNoResults');
var countEl = root.querySelector('#hisarCount');
var total = 0;

function applyFilters(){
var need = [];
if (monthSel.value !== 'all') need.push(monthSel.value);
if (fromSel.value !== 'all') need.push(fromSel.value);
if (routeSel.value !== 'all') need.push(routeSel.value);
if (tierSel.value !== 'all') need.push(tierSel.value);
if (langSel.value !== 'all') need.push(langSel.value);
if (dealSel.value !== 'all') need.push(dealSel.value);
chips.forEach(function(c){
if (c.getAttribute('aria-pressed') === 'true') need.push(c.dataset.filter);
});
var shown = 0;
root.querySelectorAll('.pkg').forEach(function(card){
var tags = card.dataset.tags.split(/s+/);
var ok = need.every(function(t){ return tags.indexOf(t) !== -1; });
card.classList.toggle('hidden', !ok);
if (ok) shown++;
});
noRes.style.display = shown ? 'none' : 'block';
countEl.textContent = tf('countText', { n: shown, t: total });
reportHeight();
}
monthSel.addEventListener('change', applyFilters);
fromSel.addEventListener('change', applyFilters);
routeSel.addEventListener('change', applyFilters);
tierSel.addEventListener('change', applyFilters);
langSel.addEventListener('change', applyFilters);
dealSel.addEventListener('change', applyFilters);
chips.forEach(function(chip){
chip.addEventListener('click', function(){
chip.setAttribute('aria-pressed',
chip.getAttribute('aria-pressed') === 'true' ? 'false' : 'true');
applyFilters();
});
});
clearBtn.addEventListener('click', function(){
monthSel.value = 'all'; fromSel.value = 'all'; routeSel.value = 'all'; tierSel.value = 'all'; langSel.value = 'all'; dealSel.value = 'all';
chips.forEach(function(c){ c.setAttribute('aria-pressed','false'); });
applyFilters();
});
var uiSel = root.querySelector('#hisarUiLang');
for (var lcode in UI_LANGS) {
var opt = document.createElement('option');
opt.value = lcode; opt.textContent = UI_LANGS[lcode];
uiSel.appendChild(opt);
}
uiSel.value = uiLang;
uiSel.addEventListener('change', function(){
uiLang = uiSel.value;
try { localStorage.setItem('hisarLang', uiLang); } catch(e){}
applyI18n();
renderPackages();
});

applyI18n();
renderPackages();

/* ----- KONTROL PANELI: turlari Google Sheet'ten cek -----
Sayfa once koddaki paketlerle ANINDA acilir; Sheet cevap verince
liste sessizce guncellenir. Sheet'e ulasilamazsa koddakiler kalir. */
function toBool(v){ return v === true || String(v).trim().toUpperCase() === 'TRUE'; }
function mapSheetRow(r){
var p = {}; for (var k in r) p[k] = r[k];
var rawL = String(r.labels || '');
p.labels = (rawL.indexOf('|') > -1 ? rawL.split('|') : rawL.split(','))
.map(function(x){ return x.trim(); }).filter(Boolean);
p.familyFriendly = toBool(r.familyFriendly);
p.directFlight = toBool(r.directFlight);
p.soldOut = toBool(r.soldOut);
p.hidden = toBool(r.hidden) ? 'TRUE' : '';
p.makkahStars = Number(r.makkahStars) || 5;
p.madinahStars = Number(r.madinahStars) || 5;
p.makkahMeters = Number(r.makkahMeters) || 500;
p.madinahMeters = Number(r.madinahMeters) || 300;
p.seatsLeft = String(r.seatsLeft == null ? '' : r.seatsLeft);
if (r.discountAmount && Number(r.discountAmount) > 0) {
p.discount = { amount: Number(r.discountAmount), label: r.discountLabel || '' };
}
return p;
}
if (SETTINGS.toursApiUrl) {
fetch(SETTINGS.toursApiUrl + (SETTINGS.toursApiUrl.indexOf('?') > -1 ? '&' : '?') + 'v=' + Date.now())
.then(function(r){ return r.json(); })
.then(function(rows){
if (rows && rows.length) { ACTIVE = rows.map(mapSheetRow); renderPackages(); }
})
.catch(function(){});
}

/* ----- On kayit formu ----- */
var modal = root.querySelector('#hisarLeadModal');
var label = modal.querySelector('#hisarLeadPkgLabel');
var hidden = modal.querySelector('#hisarLeadPkgInput');
var form = modal.querySelector('#hisarLeadForm');
var submitBtn = form.querySelector('button[type="submit"]');
var useWebhook = !!SETTINGS.sheetWebhookUrl;

if (!useWebhook) {
form.action = 'https://formsubmit.co/' + SETTINGS.leadEmail;
modal.querySelector('#hisarLeadNext').value = SETTINGS.thankYouUrl;
}

/* Reklam kaynagi takibi: linkteki utm_ parametreleri ve sayfa adresi
form ile birlikte Google Sheet'e gider - hangi reklamin lead
getirdigini gorursunuz. Hicbir sey gorunmez, otomatik calisir. */
try {
var q = new URLSearchParams(window.location.search);
['utm_source','utm_medium','utm_campaign','utm_term','utm_content'].forEach(function(k){
var v = q.get(k);
if (v) { var inp = document.createElement('input'); inp.type='hidden'; inp.name=k; inp.setAttribute('value', v); form.appendChild(inp); }
});
var src = document.createElement('input'); src.type='hidden'; src.name='page_url';
src.setAttribute('value', (window.parent !== window && document.referrer) ? document.referrer : window.location.href);
form.appendChild(src);
} catch(err){}

/* Basarili gonderimde reklam piksellerine "Lead" olayi bildir
(Meta Pixel / Google Ads sayfada kuruluysa otomatik yakalar) */
function fireLead(){
try{ if (window.fbq) fbq('track','Lead'); }catch(e){}
try{ if (window.gtag) gtag('event','generate_lead'); }catch(e){}
try{ if (window.parent !== window) window.parent.postMessage({ hisarUmrahLead:true }, '*'); }catch(e){}
}

function openModal(pkg){
modal.classList.remove('sent');
form.reset(); /* once temizle... */
label.textContent = pkg;
hidden.value = pkg; /* ...sonra paket adini yaz */
hidden.setAttribute('value', pkg); /* reset'e karsi kalici */
submitBtn.disabled = false;
if (typeof modal.showModal === 'function') modal.showModal();
else modal.setAttribute('open','');
}
function closeModal(){
if (typeof modal.close === 'function') modal.close();
else modal.removeAttribute('open');
}

root.addEventListener('click', function(e){
var btn = e.target.closest ? e.target.closest('.open-lead') : null;
if (btn) openModal(btn.getAttribute('data-package') || 'Umrah package');
});
modal.addEventListener('click', function(e){
if (e.target.closest && e.target.closest('.lead-close')) { closeModal(); return; }
if (e.target === modal) closeModal();
});
modal.addEventListener('cancel', function(e){ e.preventDefault(); closeModal(); });

form.addEventListener('submit', function(e){
if (!useWebhook) return;
e.preventDefault();
if (form.querySelector('[name="_honey"]').value) return;
submitBtn.disabled = true;
var params = new URLSearchParams(new FormData(form));
fetch(SETTINGS.sheetWebhookUrl, { method:'POST', mode:'no-cors', body: params })
.catch(function(){})
.finally(function(){ modal.classList.add('sent'); fireLead(); });
});

/* ----- Iframe yukseklik bildirimi ----- */
var hTimer = null;
function reportHeight(){
clearTimeout(hTimer);
hTimer = setTimeout(function(){
if (window.parent === window) return;
var h = Math.max(document.documentElement.scrollHeight, root.scrollHeight);
window.parent.postMessage({ hisarUmrahHeight: h }, '*');
}, 60);
}
window.addEventListener('load', reportHeight);
window.addEventListener('resize', reportHeight);
reportHeight();
})();
</script>

</div>