/* ============================================================
   THE SUNNAH EXPERIENCE — Ramadan Umrah 2026
   Cinematic · celestial · premium. Mobile-first.
   All colour via theme tokens (swappable from the Theme panel).
   ============================================================ */

:root{
  --base:      #0A0E1A;
  --surface:   #111726;
  --gold:      #C9A24E;
  --gold-soft: #E2C788;
  --cream:     #F4ECDB;
  --sand:      #C9B894;
  --line:      rgba(201,162,78,0.25);
  --danger:    #C0392B;

  /* carrier accents (pricing headers only) */
  --wizz:   #C6168D;
  --etihad: var(--gold);
  --intl:   var(--gold);

  --ink-80: color-mix(in oklab, var(--cream) 82%, transparent);
  --ink-55: color-mix(in oklab, var(--cream) 55%, transparent);
  --hair:   var(--line);
  --hair-2: color-mix(in oklab, var(--cream) 10%, transparent);
  --shadow: 0 30px 70px -38px rgba(0,0,0,.9);

  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-brand:   "trajan-pro-3", "Cormorant Garamond", serif;
  --font-body:    "Mulish", system-ui, -apple-system, sans-serif;

  --maxw: 1180px;
  --gut: clamp(18px, 5vw, 64px);
  --sec: clamp(64px, 10vw, 132px);
  --radius: 4px;
  --topbar-h: 34px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:96px; -webkit-text-size-adjust:100%; }

body{
  margin:0; background:var(--base); color:var(--cream);
  font-family:var(--font-body); font-weight:380;
  font-size:clamp(15px,1.05vw,16.5px); line-height:1.72;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
image-slot{ display:block; min-width:0; min-height:0; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.hide-sprite{ position:absolute; width:0; height:0; overflow:hidden; }

/* ---------- celestial backdrop for dark sections ---------- */
.celestial{ position:relative; isolation:isolate; }
.celestial::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:.8;
  background:
    radial-gradient(1px 1px at 12% 18%, rgba(244,236,219,.55), transparent 60%),
    radial-gradient(1px 1px at 28% 62%, rgba(244,236,219,.4), transparent 60%),
    radial-gradient(1.4px 1.4px at 47% 32%, rgba(244,236,219,.5), transparent 60%),
    radial-gradient(1px 1px at 67% 72%, rgba(244,236,219,.35), transparent 60%),
    radial-gradient(1.2px 1.2px at 82% 24%, rgba(244,236,219,.5), transparent 60%),
    radial-gradient(1px 1px at 92% 58%, rgba(244,236,219,.3), transparent 60%),
    radial-gradient(1px 1px at 57% 88%, rgba(244,236,219,.35), transparent 60%);
}
.celestial::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(60% 50% at 80% 0%, color-mix(in oklab,var(--gold) 12%,transparent), transparent 70%),
    radial-gradient(70% 60% at 0% 100%, color-mix(in oklab,var(--gold) 8%,transparent), transparent 70%);
}

/* ---------- shared type ---------- */
.eyebrow{
  font-family:var(--font-body); font-weight:600;
  font-size:.7rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold); display:inline-flex; align-items:center; gap:.8em; margin:0;
}
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--gold); opacity:.6; }
.eyebrow.solo::before{ display:none; }
.eyebrow.center{ justify-content:center; }
.eyebrow.center::after{ content:""; width:26px; height:1px; background:var(--gold); opacity:.6; }

h1,h2,h3,h4{ font-family:var(--font-display); font-weight:500; margin:0; line-height:1.08;
  letter-spacing:.005em; text-wrap:balance; color:var(--cream); }
.h-xl{ font-size:clamp(2.4rem,7.5vw,5.2rem); font-weight:500; }
.h-lg{ font-size:clamp(2rem,5vw,3.6rem); }
.h-md{ font-size:clamp(1.6rem,3.6vw,2.6rem); }
.serif-lede{ font-family:var(--font-display); font-weight:400;
  font-size:clamp(1.2rem,2.3vw,1.7rem); line-height:1.5; color:var(--ink-80);
  text-wrap:pretty; }
.muted{ color:var(--sand); }

.section{ padding-block:var(--sec); position:relative; z-index:2; }
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding-inline:var(--gut); }
.narrow{ max-width:820px; }
.center{ text-align:center; }
.stack-sm > * + *{ margin-top:14px; }
.stack > * + *{ margin-top:22px; }

.ornament{ display:flex; align-items:center; justify-content:center; gap:14px; color:var(--gold); }
.ornament::before,.ornament::after{ content:""; height:1px; width:min(90px,16vw);
  background:linear-gradient(90deg,transparent,var(--line)); }
.ornament::after{ transform:scaleX(-1); }
.ornament span{ font-size:.9rem; letter-spacing:.3em; }

/* ---------- icons ---------- */
.ic{ width:1em; height:1em; fill:none; stroke:currentColor; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round; }

/* ---------- buttons ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--font-body); font-weight:700; font-size:.82rem;
  letter-spacing:.04em; padding:1.02em 1.7em; border-radius:var(--radius);
  border:1px solid transparent; cursor:pointer; transition:transform .3s ease,
  background .3s ease, color .3s ease, box-shadow .3s ease, border-color .3s ease;
  text-align:center; }
.btn-gold{ background:var(--gold); color:#15120A;
  box-shadow:0 16px 40px -20px var(--gold); }
.btn-gold:hover{ background:var(--gold-soft); transform:translateY(-2px);
  box-shadow:0 22px 50px -18px var(--gold); }
.btn-ghost{ background:transparent; color:var(--cream); border-color:var(--line); }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }
.btn .ic{ font-size:1.05em; }
.btn-block{ width:100%; }

/* ============================================================
   TOP CONTACT BAR
   ============================================================ */
.topbar{ background:var(--surface); border-bottom:1px solid var(--hair-2);
  position:relative; z-index:60; }
.topbar .wrap{ height:var(--topbar-h); display:flex; align-items:center;
  justify-content:center; gap:clamp(14px,4vw,32px); flex-wrap:wrap; }
.topbar a{ display:inline-flex; align-items:center; gap:.5em; color:var(--sand);
  font-size:.72rem; letter-spacing:.04em; transition:color .25s; white-space:nowrap; }
.topbar a:hover{ color:var(--gold); }
.topbar .ic{ font-size:.95rem; color:var(--gold); }
@media(max-width:420px){ .topbar a span{ display:none; } }

/* ============================================================
   HEADER / NAV
   ============================================================ */
.header{ position:sticky; top:0; z-index:55; transition:background .35s ease,
  border-color .35s ease, backdrop-filter .35s; border-bottom:1px solid transparent; }
.header.scrolled{ background:color-mix(in oklab,var(--base) 86%,transparent);
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border-bottom-color:var(--hair); }
.header .wrap{ display:flex; align-items:center; justify-content:space-between;
  gap:18px; padding-block:14px; }
.logo{ display:inline-flex; align-items:center; gap:11px; }
.logo .mark{ height:42px; width:auto; flex:none; display:block; }
.footer-logo-full{ width:min(280px,62vw); height:auto; margin:0 auto; display:block; }
/* keep the white logo visible on the light (Parchment) theme */
body.theme-light .logo .mark,
body.theme-light .footer-logo-full{ filter:brightness(0) saturate(0); }
.logo .word{ font-family:var(--font-brand); font-weight:600; color:var(--cream);
  font-size:.82rem; letter-spacing:.2em; line-height:1.15; }
.logo .word b{ color:var(--gold); font-weight:600; }

.nav{ display:flex; align-items:center; gap:clamp(16px,2.2vw,30px); }
.nav-link{ font-size:.76rem; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-80); position:relative; }
.nav-link::after{ content:""; position:absolute; left:0; bottom:-6px; height:1px;
  width:0; background:var(--gold); transition:width .3s; }
.nav-link:hover{ color:var(--cream); }
.nav-link:hover::after{ width:100%; }
.nav .btn{ padding:.74em 1.2em; font-size:.74rem; }

.menu-btn{ display:none; background:none; border:1px solid var(--line);
  border-radius:var(--radius); width:42px; height:42px; color:var(--cream);
  cursor:pointer; align-items:center; justify-content:center; }
.menu-btn .ic{ font-size:1.3rem; }

@media(max-width:920px){
  .nav .nav-link{ display:none; }
  .nav .btn-gold{ display:none; }
  .menu-btn{ display:inline-flex; }
}

/* mobile drawer */
.drawer{ position:fixed; inset:0; z-index:70; background:color-mix(in oklab,var(--base) 60%,transparent);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  opacity:0; pointer-events:none; transition:opacity .3s; }
.drawer.open{ opacity:1; pointer-events:auto; }
.drawer-panel{ position:absolute; top:0; right:0; height:100%; width:min(82vw,340px);
  background:var(--surface); border-left:1px solid var(--hair);
  padding:26px 26px 40px; display:flex; flex-direction:column; gap:6px;
  transform:translateX(100%); transition:transform .35s cubic-bezier(.3,.7,.3,1); }
.drawer.open .drawer-panel{ transform:none; }
.drawer-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.drawer-close{ background:none; border:none; color:var(--sand); font-size:1.5rem; cursor:pointer; }
.drawer a:not(.btn){ padding:13px 0; border-bottom:1px solid var(--hair-2); color:var(--cream);
  font-family:var(--font-display); font-size:1.4rem; }
.drawer .drawer-cta{ align-self:stretch; margin-top:28px; text-align:center; }

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center;
  overflow:hidden; isolation:isolate; }
.hero-media{ position:absolute; inset:0; z-index:-2; }
.hero-media image-slot{ width:100%; height:100%; }
.hero-veil{ position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, color-mix(in oklab,var(--base) 70%,transparent), color-mix(in oklab,var(--base) 30%,transparent) 42%, color-mix(in oklab,var(--base) 86%,transparent)),
    radial-gradient(80% 60% at 70% 30%, color-mix(in oklab,var(--gold) 10%,transparent), transparent 70%); }
.hero .wrap{ padding-top:clamp(40px,8vh,90px); padding-bottom:clamp(40px,7vh,80px); }
.hero-inner{ max-width:760px; }
.hero .eyebrow{ margin-bottom:22px; }
.hero h1{ margin-bottom:14px; }
.hero h1 .amp{ color:var(--gold); font-style:italic; }
.hero .dates{ font-family:var(--font-display); font-style:italic; color:var(--gold-soft);
  font-size:clamp(1.15rem,2.2vw,1.6rem); margin-bottom:20px; }
.hero-points{ display:flex; flex-wrap:wrap; gap:10px 22px; margin-bottom:22px; padding:0; list-style:none; }
.hero-points li{ display:inline-flex; align-items:center; gap:.55em; font-size:.86rem;
  color:var(--ink-80); }
.hero-points .ic{ color:var(--gold); font-size:1.05rem; }
.hero p.lede{ max-width:54ch; margin-bottom:30px; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; }

/* countdown */
.countdown{ display:flex; gap:clamp(8px,2vw,16px); margin-top:34px; flex-wrap:wrap; }
.cd-cell{ min-width:64px; text-align:center; padding:12px 10px; border:1px solid var(--hair);
  border-radius:var(--radius); background:color-mix(in oklab,var(--surface) 60%,transparent);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.cd-num{ font-family:var(--font-display); font-size:clamp(1.6rem,3vw,2.2rem); line-height:1;
  color:var(--cream); font-variant-numeric:tabular-nums; }
.cd-lbl{ font-size:.58rem; letter-spacing:.22em; text-transform:uppercase; color:var(--sand);
  margin-top:7px; }
.cd-inline{ margin-top:0; }
.cd-inline .cd-cell{ background:var(--surface); }

.scrollcue{ position:absolute; bottom:18px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:7px; z-index:3;
  font-size:.58rem; letter-spacing:.26em; text-transform:uppercase; color:var(--ink-55); }
.scrollcue i{ width:1px; height:38px; background:linear-gradient(var(--gold),transparent);
  animation:cue 2.3s ease-in-out infinite; transform-origin:top; }
@keyframes cue{ 0%,100%{ transform:scaleY(.4); opacity:.5; } 50%{ transform:scaleY(1); opacity:1; } }

/* ============================================================
   PACKAGE TEASER
   ============================================================ */
.teaser{ background:var(--surface); }
.teaser-grid{ display:grid; gap:18px; grid-template-columns:1fr; margin-top:30px; }
.teaser-card{ display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:24px 26px; border:1px solid var(--hair); border-radius:var(--radius);
  background:var(--base); transition:border-color .3s, transform .3s; }
.teaser-card:hover{ border-color:var(--gold); transform:translateY(-2px); }
.teaser-card h3{ font-size:1.5rem; }
.teaser-card .sub{ color:var(--sand); font-size:.82rem; margin-top:4px; }
.teaser-card .ic{ font-size:1.4rem; color:var(--gold); }
.cd-banner{ margin-top:36px; text-align:center; }
.cd-banner .label{ font-size:.74rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--sand); margin-bottom:16px; }
.cd-banner .countdown{ justify-content:center; }
@media(min-width:720px){ .teaser-grid{ grid-template-columns:1fr 1fr; } }

/* ============================================================
   VIDEO STRIP
   ============================================================ */
.videos-section{ overflow-x:clip; }
.videos-rail{ display:grid; grid-auto-flow:column; grid-auto-columns:78%;
  gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; padding:30px var(--gut) 8px;
  margin-inline:calc(-1 * var(--gut)); scrollbar-width:none; }
.videos-rail::-webkit-scrollbar{ display:none; }
.vtile{ position:relative; scroll-snap-align:start; aspect-ratio:9/13; border-radius:var(--radius);
  overflow:hidden; border:1px solid var(--hair); cursor:pointer; }
.vtile image-slot{ width:100%; height:100%; }
.vtile .play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  pointer-events:none; }
.vtile .play span{ width:54px; height:54px; border-radius:50%; background:color-mix(in oklab,var(--base) 55%,transparent);
  border:1px solid var(--gold); display:flex; align-items:center; justify-content:center;
  color:var(--gold); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.vtile .cap{ position:absolute; left:12px; bottom:12px; right:12px; font-size:.78rem;
  color:var(--cream); text-shadow:0 1px 8px rgba(0,0,0,.8); }
@media(min-width:720px){ .videos-rail{ grid-auto-columns:30%; } }
@media(min-width:1080px){ .videos-rail{ grid-auto-columns:1fr; grid-auto-flow:row;
  grid-template-columns:repeat(3,1fr); overflow:visible; margin-inline:0; padding-inline:0; } }

/* ============================================================
   MISSION + NOT JUST
   ============================================================ */
.mission .wrap{ max-width:900px; }
.mission p{ font-family:var(--font-display); font-weight:400;
  font-size:clamp(1.3rem,2.6vw,1.95rem); line-height:1.5; color:var(--ink-80);
  text-wrap:pretty; }
.mission .accent{ color:var(--gold); }

.notjust{ text-align:center; background:var(--surface); }
.notjust h2{ font-size:clamp(1.7rem,4.5vw,3rem); letter-spacing:.08em; text-transform:uppercase; }
.notjust .rot{ font-family:var(--font-display); font-size:clamp(1.5rem,4vw,2.6rem);
  margin-top:18px; color:var(--ink-80); }
.rot .word{ color:var(--gold); font-style:italic; display:inline-block;
  min-width:4.2em; text-align:left;
  transition:opacity .4s, transform .4s; }
.rot .word.swap{ opacity:0; transform:translateY(8px); }

/* ============================================================
   PILLARS
   ============================================================ */
.pillars-grid{ display:grid; gap:20px; grid-template-columns:1fr; margin-top:0; }
.pillar{ background:var(--base); border:1px solid var(--hair);
  border-radius:var(--radius); padding:34px clamp(24px,3vw,38px); }
.pillar .ic-wrap{ width:52px; height:52px; border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--gold);
  font-size:1.4rem; margin-bottom:20px; }
.pillar h3{ font-size:1.7rem; margin-bottom:12px; }
.pillar p{ color:var(--ink-80); font-size:.96rem; margin:0; }
@media(min-width:820px){
  .pillars-grid{ grid-template-columns:repeat(3,1fr); }
}
/* sits directly under "Not just an Umrah company" as one continuous block */
.notjust-pillars{ background:var(--surface); padding-top:0; }
/* "Not just" + pillars form ONE flat surface block — drop the celestial corner
   glows/starfield here, since the bottom-left glow created a visible edge on the
   left at the seam with the (flat) pillars section below. */
.notjust.celestial::before,
.notjust.celestial::after{ display:none; }

/* ============================================================
   GUIDES
   ============================================================ */
.guides-grid{ display:grid; gap:24px; grid-template-columns:1fr; margin-top:48px; }
.guide{ border:1px solid var(--hair); border-radius:var(--radius); overflow:hidden;
  background:var(--surface); }
.guide .portrait{ position:relative; aspect-ratio:1/1; }
.guide .portrait image-slot{ width:100%; height:100%; }
.guide .portrait::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(0deg,color-mix(in oklab,var(--surface) 92%,transparent),transparent 46%); }
.guide .body{ padding:22px 24px 26px; }
.guide h3{ font-family:var(--font-brand); font-weight:600; font-size:1.05rem;
  letter-spacing:.05em; }
.guide .role{ color:var(--gold); font-size:.7rem; letter-spacing:.16em;
  text-transform:uppercase; margin-top:7px; }
.guide .socials{ display:flex; gap:12px; margin-top:18px; }
.guide .socials a{ width:34px; height:34px; border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--sand);
  font-size:.95rem; transition:.25s; }
.guide .socials a:hover{ color:var(--gold); border-color:var(--gold); }
.guide .more{ display:inline-flex; align-items:center; gap:.4em; margin-top:18px;
  font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold);
  background:none; border:none; padding:0; cursor:pointer; font-family:var(--font-body);
  font-weight:600; transition:gap .25s; }
.guide .more:hover{ gap:.75em; }
.guide .more .ic{ font-size:1rem; }
@media(min-width:760px){ .guides-grid{ grid-template-columns:repeat(3,1fr); } }

/* ============================================================
   WHAT'S INCLUDED
   ============================================================ */
.incl-grid{ display:grid; gap:1px; background:var(--hair); border:1px solid var(--hair);
  border-radius:var(--radius); overflow:hidden; margin-top:48px;
  grid-template-columns:1fr; }
.incl-card{ background:var(--surface); padding:26px clamp(20px,3vw,28px);
  transition:background .3s; }
.incl-card:hover{ background:color-mix(in oklab,var(--surface) 80%,var(--gold) 6%); }
.incl-card .ic-wrap{ width:48px; height:48px; color:var(--gold); font-size:1.5rem;
  display:flex; align-items:center; justify-content:center; border:1px solid var(--line);
  border-radius:var(--radius); margin-bottom:18px; }
.incl-card h4{ font-size:1.3rem; margin-bottom:9px; }
.incl-card p{ color:var(--ink-80); font-size:.9rem; margin:0; }
@media(min-width:640px){ .incl-grid{ grid-template-columns:1fr 1fr; } }
@media(min-width:980px){ .incl-grid{ grid-template-columns:repeat(3,1fr); } }

/* ============================================================
   HOTELS
   ============================================================ */
.hotels-grid{ display:grid; gap:26px; grid-template-columns:1fr; margin-top:48px; }
.hotel{ border:1px solid var(--hair); border-radius:var(--radius); overflow:hidden;
  background:var(--surface); }
.hotel .hero-img{ position:relative; aspect-ratio:16/10; }
.hotel .hero-img image-slot{ width:100%; height:100%; }
.hotel .badge{ position:absolute; top:14px; left:14px; display:inline-flex; align-items:center;
  gap:.5em; background:var(--gold); color:#15120A; font-weight:700; font-size:.74rem;
  letter-spacing:.04em; padding:.5em .85em; border-radius:999px; }
.hotel .badge .ic{ font-size:.95rem; }
.hotel .gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
.hotel .gallery image-slot{ width:100%; aspect-ratio:1/1; }
.hotel .body{ padding:22px 24px 26px; }
.hotel .stars{ color:var(--gold); letter-spacing:.16em; font-size:.85rem; margin-bottom:8px; }
.hotel h3{ font-size:1.7rem; }
.hotel .loc{ color:var(--sand); font-size:.86rem; margin-top:6px; display:inline-flex;
  align-items:center; gap:.45em; }
@media(min-width:820px){ .hotels-grid{ grid-template-columns:1fr 1fr; } }

/* ============================================================
   HARAMAIN / FLIGHTS
   ============================================================ */
.haramain-grid{ display:grid; gap:26px; grid-template-columns:1fr; margin-top:48px; }
.hcard{ border:1px solid var(--hair); border-radius:var(--radius);
  overflow:hidden; background:var(--surface); display:flex; flex-direction:column; }
.hcard .pic{ width:100%; aspect-ratio:16/10; background:var(--base); }
.hcard .pic image-slot{ width:100%; height:100%; }
.hcard .pic .hcard-img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; display:block; }
.hcard .body{ padding:24px clamp(22px,2.5vw,28px) 26px; }
.hcard .ic-wrap{ width:46px; height:46px; border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:1.25rem; color:var(--gold); margin-bottom:16px; }
.hcard h3{ font-size:1.6rem; margin-bottom:8px; }
.hcard p{ color:var(--ink-80); font-size:.92rem; margin:0; }
.hcard .legs{ display:flex; flex-direction:column; gap:8px; margin-top:14px; }
.hcard .leg{ display:inline-flex; align-items:center; gap:.5em; font-size:.88rem; color:var(--ink-80); }
.hcard .leg .ic{ color:var(--gold); }
@media(min-width:820px){ .haramain-grid{ grid-template-columns:1fr 1fr; } }

/* ============================================================
   WHY / REASONS
   ============================================================ */
.reasons-grid{ display:grid; gap:1px; background:var(--hair); border:1px solid var(--hair);
  border-radius:var(--radius); overflow:hidden; margin-top:48px; grid-template-columns:1fr; }
.reason{ background:var(--base); padding:28px clamp(22px,3vw,30px); }
.reason .ic-wrap{ font-size:1.5rem; color:var(--gold); margin-bottom:14px; }
.reason h4{ font-size:1.25rem; margin-bottom:8px; }
.reason p{ color:var(--ink-80); font-size:.9rem; margin:0; }
@media(min-width:640px){ .reasons-grid{ grid-template-columns:1fr 1fr; } }
@media(min-width:980px){ .reasons-grid{ grid-template-columns:repeat(3,1fr); } }

/* ============================================================
   PRICING
   ============================================================ */
.pricing{ background:var(--surface); }
.pkg-group{ margin-top:56px; }
.pkg-group:first-of-type{ margin-top:40px; }
.pkg-head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 14px; margin-bottom:6px; }
.pkg-head h3{ font-size:clamp(1.5rem,3vw,2.1rem); }
.pkg-head .flag{ font-size:1.3rem; }
.pkg-note{ color:var(--sand); font-size:.86rem; margin:0 0 24px; }
.price-row{ display:grid; gap:18px; grid-template-columns:1fr; }
.pcard{ border:1px solid var(--hair); border-radius:var(--radius); overflow:hidden;
  background:var(--base); display:flex; flex-direction:column;
  transition:transform .3s, border-color .3s, box-shadow .3s; }
.pcard:hover{ transform:translateY(-4px); border-color:var(--gold); box-shadow:var(--shadow); }
.pcard .top{ padding:7px; text-align:center; font-size:.66rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; color:#15120A; }
.pcard[data-carrier="wizz"] .top{ background:var(--wizz); color:#fff; }
.pcard[data-carrier="etihad"] .top{ background:var(--etihad); }
.pcard[data-carrier="intl"] .top{ background:var(--intl); }
.pcard .pbody{ padding:24px 24px 26px; display:flex; flex-direction:column; flex:1; }
.pcard .room{ font-family:var(--font-display); font-size:1.5rem; color:var(--cream); }
.pcard .tag{ align-self:flex-start; margin-top:10px; font-size:.6rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; padding:.4em .7em; border-radius:999px;
  border:1px solid var(--line); color:var(--gold); }
.pcard .tag.new{ background:var(--gold); color:#15120A; border-color:var(--gold); }
.pcard .price{ margin-top:18px; display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.pcard .was{ color:var(--sand); text-decoration:line-through; font-size:1rem; }
.pcard .now{ font-family:var(--font-display); font-size:2.4rem; color:var(--cream); line-height:1; }
.pcard .pp{ font-size:.78rem; color:var(--sand); }
.pcard ul{ list-style:none; margin:18px 0 0; padding:18px 0 0; border-top:1px solid var(--hair-2);
  display:flex; flex-direction:column; gap:9px; }
.pcard ul li{ display:flex; align-items:center; gap:.6em; font-size:.86rem; color:var(--ink-80); }
.pcard ul li .ic{ color:var(--gold); font-size:1rem; flex:none; }
.pcard ul li.no{ color:var(--sand); }
.pcard ul li.no .ic{ color:var(--sand); }
.pcard .deposit{ margin-top:18px; font-size:.78rem; color:var(--sand); text-align:center; }
.pcard .deposit b{ color:var(--gold-soft); }
.pcard .btn{ margin-top:14px; }
@media(min-width:720px){ .price-row{ grid-template-columns:repeat(3,1fr); } }

/* child box */
.childbox{ margin-top:50px; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--base); padding:28px clamp(22px,3vw,34px); display:grid; gap:18px;
  grid-template-columns:1fr; align-items:center; }
.childbox h4{ font-size:1.5rem; margin-bottom:10px; }
.childbox ul{ margin:0; padding-left:1.1em; color:var(--ink-80); font-size:.9rem; }
.childbox ul li{ margin-bottom:7px; }
.childbox .note{ color:var(--sand); font-size:.8rem; margin-top:12px; }
@media(min-width:820px){ .childbox{ grid-template-columns:1.6fr auto; gap:30px; } }

/* ============================================================
   PAYMENT PLAN TABLES
   ============================================================ */
.pay-block{ margin-top:48px; }
.pay-block h3{ font-size:1.5rem; margin-bottom:4px; }
.pay-block .cap{ color:var(--sand); font-size:.84rem; margin:0 0 18px; }
.table-scroll{ overflow-x:auto; border:1px solid var(--hair); border-radius:var(--radius);
  -webkit-overflow-scrolling:touch; }
table.pay{ width:100%; border-collapse:collapse; min-width:520px; font-size:.86rem; }
table.pay th, table.pay td{ padding:13px 16px; text-align:left; border-bottom:1px solid var(--hair-2);
  white-space:nowrap; }
table.pay thead th{ font-family:var(--font-body); font-weight:700; font-size:.66rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--gold);
  background:color-mix(in oklab,var(--surface) 70%,transparent); }
table.pay td:first-child{ white-space:normal; color:var(--cream); min-width:240px; }
table.pay tbody tr:last-child td{ border-bottom:none; }
table.pay td.tot{ color:var(--gold-soft); font-weight:700; font-variant-numeric:tabular-nums; }
table.pay td{ color:var(--ink-80); font-variant-numeric:tabular-nums; }

/* ============================================================
   FAQ
   ============================================================ */
.faq-intro{ color:var(--ink-80); max-width:720px; margin:18px auto 0; }
.faq-list{ max-width:840px; margin:46px auto 0; border-top:1px solid var(--hair); }
.faq-item{ border-bottom:1px solid var(--hair); }
.faq-q{ width:100%; background:none; border:none; cursor:pointer; text-align:left;
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:22px 4px; color:var(--cream); font-family:var(--font-display);
  font-size:clamp(1.1rem,2vw,1.35rem); }
.faq-q .ic{ flex:none; color:var(--gold); font-size:1.1rem; transition:transform .3s; }
.faq-item.open .faq-q .ic{ transform:rotate(45deg); }
.faq-a{ overflow:hidden; max-height:0; transition:max-height .4s ease; }
.faq-a-inner{ padding:0 4px 22px; color:var(--ink-80); font-size:.94rem; }
.faq-a-inner ul{ margin:12px 0 0; padding-left:1.15em; }
.faq-a-inner li{ margin-bottom:7px; }
.faq-a-inner li:last-child{ margin-bottom:0; }
.faq-cta{ max-width:840px; margin:40px auto 0; text-align:center; padding:34px;
  border:1px solid var(--line); border-radius:var(--radius); background:var(--base); }
.faq-cta h4{ font-size:1.6rem; margin-bottom:10px; }
.faq-cta p{ color:var(--ink-80); margin:0 auto 22px; max-width:46ch; }

/* ============================================================
   FINAL CTA
   ============================================================ */
.final{ text-align:center; position:relative; overflow:hidden; }
.final .wrap{ max-width:760px; position:relative; z-index:2; }
.final p.close{ color:var(--ink-80); font-family:var(--font-display);
  font-size:clamp(1.15rem,2.2vw,1.5rem); margin-bottom:30px; }
.final h2{ margin-bottom:14px; }
.final .sub{ color:var(--gold-soft); font-style:italic; font-family:var(--font-display);
  font-size:1.2rem; margin-bottom:30px; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{ background:var(--surface); border-top:1px solid var(--hair); }
.footer .wrap{ padding-block:clamp(48px,7vw,76px); }
.footer-top{ text-align:center; padding-bottom:34px; border-bottom:1px solid var(--hair-2); }
.footer-top h4{ font-size:1.5rem; margin-bottom:18px; }
.share{ display:flex; justify-content:center; flex-wrap:wrap; gap:12px; }
.share a{ width:42px; height:42px; border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--sand);
  font-size:1.05rem; transition:.25s; }
.share a:hover{ color:var(--gold); border-color:var(--gold); transform:translateY(-2px); }
.footer-mid{ display:grid; gap:26px; grid-template-columns:1fr; padding-block:34px;
  text-align:center; }
.footer .logo{ justify-content:center; }
.footer-contact{ display:flex; flex-direction:column; gap:10px; align-items:center; }
.footer-contact a{ display:inline-flex; align-items:center; gap:.5em; color:var(--ink-80);
  font-size:.9rem; }
.footer-contact a:hover{ color:var(--gold); }
.footer-contact .ic{ color:var(--gold); }
.footer-legal{ padding-top:26px; border-top:1px solid var(--hair-2); text-align:center;
  color:var(--sand); font-size:.76rem; line-height:1.8; }
.footer-legal a{ color:var(--sand); }
.footer-legal a:hover{ color:var(--gold); }

/* ============================================================
   FLOATING WHATSAPP
   ============================================================ */
.wa-float{ position:fixed; right:18px; bottom:18px; z-index:60; width:58px; height:58px;
  border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center;
  justify-content:center; box-shadow:0 12px 30px -8px rgba(37,211,102,.6);
  transition:transform .3s; }
.wa-float:hover{ transform:scale(1.07); }
.wa-float .ic{ font-size:1.7rem; stroke-width:1.4; }

/* ============================================================
   GUIDE BIO MODAL
   ============================================================ */
.modal{ position:fixed; inset:0; z-index:90; display:flex; align-items:center;
  justify-content:center; padding:20px; opacity:0; pointer-events:none;
  transition:opacity .3s ease; }
.modal.open{ opacity:1; pointer-events:auto; }
.modal-overlay{ position:absolute; inset:0; background:color-mix(in oklab,#000 70%,transparent);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.modal-card{ position:relative; z-index:2; width:min(840px,100%); max-height:90vh;
  display:flex; flex-direction:column; overflow:hidden;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); transform:translateY(18px) scale(.98);
  transition:transform .35s cubic-bezier(.2,.7,.2,1); }
.modal.open .modal-card{ transform:none; }
.modal-portrait{ position:relative; flex-shrink:0; height:240px; }
.modal-portrait img{ width:100%; height:100%; object-fit:cover; object-position:50% 30%; }
.modal-body{ padding:30px clamp(24px,4vw,40px) 36px; overflow-y:auto; flex:1; min-height:0; }
.modal-body .role{ color:var(--gold); font-size:.72rem; letter-spacing:.18em;
  text-transform:uppercase; margin-bottom:10px; }
.modal-body h3{ font-size:clamp(1.7rem,3vw,2.3rem); margin-bottom:18px; }
.modal-body p{ color:var(--ink-80); font-size:.95rem; margin:0 0 14px; }
.modal-body p:last-child{ margin-bottom:0; }
.modal-close{ position:absolute; top:12px; right:14px; z-index:3; width:40px; height:40px;
  border-radius:50%; border:1px solid var(--line); background:color-mix(in oklab,var(--base) 50%,transparent);
  color:var(--cream); font-size:1.4rem; line-height:1; cursor:pointer;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); transition:.25s; }
.modal-close:hover{ border-color:var(--gold); color:var(--gold); }
@media(min-width:760px){
  .modal-card{ display:grid; grid-template-columns:0.85fr 1.15fr;
    grid-template-rows:minmax(0,1fr); max-height:560px; }
  .modal-portrait{ height:auto; }
  .modal-body{ min-height:0; }
}

/* ============================================================
   REVEAL
   ============================================================ */
.reveal{ opacity:1; transform:none; }
html.js-anim .reveal{ opacity:0; transform:translateY(26px);
  transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
html.js-anim .reveal.in{ opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce){
  html.js-anim .reveal{ opacity:1; transform:none; transition:none; }
  .scrollcue i{ animation:none; }
  html{ scroll-behavior:auto; }
}

/* ============================================================
   RESPONSIVE POLISH
   ============================================================ */

/* Very small phones — compact logo */
@media(max-width:380px){
  .logo .mark{ height:34px; }
  .logo .word{ font-size:.72rem; letter-spacing:.14em; }
}

/* Tablet range — pricing cards: 2 cols before going to 3 */
@media(min-width:540px) and (max-width:719px){
  .price-row{ grid-template-columns:repeat(2,1fr); }
  .price-row .pcard:last-child{ grid-column:1 / -1; max-width:calc(50% - 9px); margin:0 auto; }
}

/* Tablet portrait — guide grid 2 cols before 3 */
@media(min-width:540px) and (max-width:759px){
  .guides-grid{ grid-template-columns:repeat(2,1fr); }
}

/* Haramain grid: tighten card body padding on small tablets */
@media(max-width:600px){
  .hcard .body{ padding:20px 20px 22px; }
  .notjust h2{ font-size:clamp(1.4rem,5vw,2.4rem); }
}

/* Inclusion & reasons grids: ensure 2-col on mid phones */
@media(min-width:480px) and (max-width:639px){
  .incl-grid{ grid-template-columns:1fr 1fr; }
  .reasons-grid{ grid-template-columns:1fr 1fr; }
}

/* Payment tables — tighter padding on mobile */
@media(max-width:640px){
  table.pay th, table.pay td{ padding:10px 12px; }
}

/* Child box — stack properly on all small screens */
@media(max-width:500px){
  .childbox{ text-align:center; }
  .childbox ul{ text-align:left; display:inline-block; }
  .childbox .btn{ width:100%; }
}

/* Footer mid — side-by-side on tablet */
@media(min-width:640px){
  .footer-mid{ grid-template-columns:1fr 1fr; align-items:center; text-align:left; }
  .footer .logo{ justify-content:flex-start; }
  .footer-contact{ align-items:flex-start; }
}
