/* =========================================================================
   النوبة · أسوان — Nubia & Aswan
   Design system: Nile at dusk (dark) / Sand at noon (light)
   ========================================================================= */

/* Google Fonts are now loaded via a <link rel="stylesheet"> in <head> (see
   index.html) instead of @import here — @import forces the browser to wait
   for this whole file to be fetched and parsed before it can even discover
   the font stylesheet, turning one parallel request into a slow, serial
   chain. A real <link> tag is discovered by the browser's preload scanner
   immediately, in parallel with everything else. */

:root{
  /* ---- Nubia palette --------------------------------------------------- */
  --nile-950:#051920;
  --nile-900:#08242c;
  --nile-800:#0c3440;
  --nile-700:#124a59;
  --nile-600:#186376;
  --turquoise:#1f8f92;
  --turquoise-soft:#5cb8b4;
  --gold:#c8992f;
  --gold-soft:#e6c877;
  --copper:#af6a34;
  --terracotta:#bf5b3d;
  --sunset:#df8a3c;
  --palm:#3d6b4a;
  --sand-50:#fbf6ec;
  --sand-100:#f5ecd7;
  --sand-200:#ecdcb6;
  --ink-900:#221a12;
  --ink-700:#4a3d2d;

  /* ---- semantic (light / "noon") ---------------------------------------- */
  --bg:var(--sand-50);
  --bg-alt:var(--sand-100);
  --surface:#ffffff;
  --surface-2:#fffdf8;
  --text:var(--ink-900);
  --text-soft:var(--ink-700);
  --text-on-dark:var(--sand-50);
  --border:rgba(34,26,18,.12);
  --border-strong:rgba(34,26,18,.22);
  --accent:var(--terracotta);
  --accent-2:var(--turquoise);
  --shadow:0 16px 40px -20px rgba(8,36,44,.28);
  --shadow-sm:0 6px 18px -10px rgba(8,36,44,.16);
  --shadow-hover:0 20px 46px -18px rgba(8,36,44,.32);
  --glass-bg:rgba(255,255,255,.55);
  --glass-border:rgba(255,255,255,.6);
  --overlay-scrim:linear-gradient(180deg, rgba(5,25,32,0) 0%, rgba(5,25,32,.75) 100%);

  --radius-sm:10px;
  --radius:18px;
  --radius-lg:28px;
  --radius-pill:999px;

  --container:1280px;
  --nav-h:84px;

  --ease:cubic-bezier(.22,.68,.15,1);
  --dur:.7s;

  /* ---- spacing scale (used for consistent rhythm between blocks) -------- */
  --sp-xs:clamp(10px,1.4vw,14px);
  --sp-sm:clamp(16px,2.2vw,22px);
  --sp-md:clamp(24px,3.4vw,34px);
  --sp-lg:clamp(40px,5.6vw,58px);
  --sp-xl:clamp(60px,8vw,90px);

  /* ---- unified card padding ---------------------------------------------- */
  --card-pad:clamp(20px,2.6vw,28px);

  --font-en-display:'Playfair Display', 'Amiri', serif;
  --font-en-body:'Inter', 'Cairo', sans-serif;
  --font-ar-display:'Amiri', 'Playfair Display', serif;
  --font-ar-body:'Cairo', 'Inter', sans-serif;
}

[data-theme="dark"]{
  --bg:var(--nile-950);
  --bg-alt:var(--nile-900);
  --surface:#0b2b34;
  --surface-2:#0e323c;
  --text:var(--sand-50);
  --text-soft:#c9d8d6;
  --border:rgba(245,236,215,.14);
  --border-strong:rgba(245,236,215,.26);
  --shadow:0 18px 44px -20px rgba(0,0,0,.5);
  --shadow-sm:0 8px 20px -12px rgba(0,0,0,.4);
  --shadow-hover:0 22px 50px -18px rgba(0,0,0,.55);
  --glass-bg:rgba(11,43,52,.55);
  --glass-border:rgba(245,236,215,.14);
}

/* =========================================================================
   Reset
   ========================================================================= */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
html,body{padding:0;margin:0;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-ar-body);
  line-height:1.7;
  overflow-x:hidden;
  transition:background .5s var(--ease), color .5s var(--ease);
}
html[lang="en"] body{font-family:var(--font-en-body);}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4,p{margin:0;}
input,select,textarea{font:inherit;color:inherit;}

::selection{background:var(--gold-soft);color:var(--ink-900);}

:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px;}

.h-display{font-family:var(--font-ar-display);}
html[lang="en"] .h-display{font-family:var(--font-en-display);}

/* container / section rhythm */
.container{max-width:var(--container);margin-inline:auto;padding-inline:clamp(20px,5vw,64px);}
section{position:relative;}
.section-pad{padding-block:clamp(72px,10vw,140px);}
.section-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-en-body);
  font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent);font-weight:600;
  margin-bottom:18px;
}
.section-eyebrow::before{content:"";width:28px;height:1.5px;background:var(--accent);display:inline-block;}
[dir="rtl"] .section-eyebrow{letter-spacing:.04em;}

.section-title{
  font-size:clamp(2rem,4.6vw,3.4rem);
  font-weight:700;
  line-height:1.18;
  color:var(--text);
  margin-bottom:20px;
}
.section-lede{
  font-size:clamp(1.02rem,1.6vw,1.2rem);
  color:var(--text-soft);
  max-width:64ch;
  line-height:1.85;
}
.section-head{margin-bottom:clamp(40px,6vw,72px);}
.section-head.center{text-align:center;margin-inline:auto;}
.section-head.center .section-lede{margin-inline:auto;}
.section-head.split{display:grid;grid-template-columns:1.3fr .9fr;gap:40px;align-items:end;}
@media (max-width:820px){.section-head.split{grid-template-columns:1fr;}}

.alt-bg{background:var(--bg-alt);}

/* reveal-on-scroll — kept intentionally subtle: one short fade + small
   rise, no dramatic motion, so it reads as polish rather than an effect */
[data-reveal]{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .55s var(--ease), transform .55s var(--ease);
  will-change:transform, opacity;
}
[data-reveal].is-visible{opacity:1;transform:translateY(0);}
[data-reveal="fade"]{transform:none;}
[data-reveal="left"]{transform:translateX(-24px);}
[data-reveal="left"].is-visible{transform:translateX(0);}
[data-reveal="right"]{transform:translateX(24px);}
[data-reveal="right"].is-visible{transform:translateX(0);}
[data-reveal="scale"]{transform:scale(.96);}
[data-reveal="scale"].is-visible{transform:scale(1);}
.stagger > *{transition-delay:calc(var(--i,0) * 50ms);}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  [data-reveal]{opacity:1 !important;transform:none !important;transition:none !important;}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}

/* =========================================================================
   Shared rhythm utilities — consistent spacing/typography between the
   repeating sub-blocks inside a section (clothes/architecture/wedding/...,
   dishes/breads, etc). Keeps vertical rhythm predictable across the page.
   ========================================================================= */
.subsection{scroll-margin-top:110px;margin-top:var(--sp-xl);}
.anchor{scroll-margin-top:110px;}
.subsection-title{
  font-size:clamp(1.32rem,2vw,1.6rem);
  margin:0 0 var(--sp-sm);
  font-weight:700;
}
.subsection-lede{margin-bottom:var(--sp-md);}
.block-title{
  font-size:clamp(1.32rem,2vw,1.6rem);
  margin:var(--sp-xl) 0 var(--sp-sm);
  font-weight:700;
}
.col-title{
  font-size:1.15rem;
  font-weight:700;
  margin-bottom:var(--sp-sm);
}
.stack-sm{margin-top:var(--sp-sm);}
.stack-md{margin-top:var(--sp-md);}
.stack-lg{margin-top:var(--sp-lg);}
.stack-xl{margin-top:var(--sp-xl);}

/* =========================================================================
   Loader
   ========================================================================= */
#loader{
  position:fixed;inset:0;z-index:9999;
  background:var(--nile-950);
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;
  transition:opacity .45s var(--ease), visibility .45s var(--ease);
}
#loader.hide{opacity:0;visibility:hidden;pointer-events:none;}
#loader .loader-mark{width:56px;height:56px;color:var(--gold-soft);opacity:.9;animation:loader-pulse 1.4s ease-in-out infinite;}
#loader .loader-mark svg{width:100%;height:100%;}
@keyframes loader-pulse{
  0%,100%{opacity:.55;transform:scale(.96);}
  50%{opacity:1;transform:scale(1);}
}
#loader .loader-word{
  font-family:var(--font-ar-display);
  color:var(--sand-100);
  letter-spacing:.1em;
  font-size:.95rem;
  opacity:.75;
}

/* =========================================================================
   Progress bar / back to top
   ========================================================================= */
#reading-progress{
  position:fixed;top:0;left:0;right:0;height:3px;z-index:1001;
  background:linear-gradient(90deg,var(--gold),var(--terracotta),var(--turquoise));
  transform-origin:0 0;transform:scaleX(0);
  transition:transform .12s linear;
}
[dir="rtl"] #reading-progress{transform-origin:100% 0;}

#back-to-top{
  position:fixed;bottom:26px;inset-inline-end:26px;z-index:800;
  width:52px;height:52px;border-radius:50%;
  background:var(--surface);color:var(--accent);
  border:1px solid var(--border);box-shadow:var(--shadow-sm);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transform:translateY(14px);
  transition:opacity .4s var(--ease),transform .4s var(--ease),visibility .4s;
}
#back-to-top.show{opacity:1;visibility:visible;transform:translateY(0);}
#back-to-top svg{width:20px;height:20px;}

/* =========================================================================
   Nav
   ========================================================================= */
header#site-nav{
  position:fixed;top:0;left:0;right:0;z-index:960;
  height:var(--nav-h);
  display:flex;align-items:center;
  transition:height .4s var(--ease), background .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
header#site-nav .nav-inner{
  width:100%;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
header#site-nav.scrolled{
  height:68px;
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid var(--glass-border);
  box-shadow:var(--shadow-sm);
}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-ar-display);font-weight:700;font-size:1.28rem;color:var(--text);}
.brand .brand-mark{width:39px;height:50px;color:var(--gold);flex:none;}
.brand .brand-mark svg{width:100%;height:100%;}
.brand small{display:block;font-family:var(--font-en-body);font-size:.6rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text-soft);}

nav.nav-links{display:flex;align-items:center;gap:2px;}
nav.nav-links a{
  position:relative;padding:10px 16px;font-size:.92rem;font-weight:600;
  color:var(--text-soft);border-radius:var(--radius-pill);
  transition:color .3s var(--ease), background .3s var(--ease);
  white-space:nowrap;
}
nav.nav-links a:hover{color:var(--text);background:rgba(127,127,127,.08);}
nav.nav-links a.active{color:var(--accent);}

.nav-tools{display:flex;align-items:center;gap:8px;}
.icon-btn{
  width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--border);color:var(--text);
  transition:background .3s var(--ease), transform .3s var(--ease), border-color .3s;
}
.icon-btn:hover{background:rgba(127,127,127,.08);transform:translateY(-2px);}
.icon-btn svg{width:18px;height:18px;}
.icon-btn .icon-moon{display:none;}
[data-theme="dark"] .icon-btn .icon-sun{display:none;}
[data-theme="dark"] .icon-btn .icon-moon{display:block;}

.lang-switch{
  display:flex;border:1px solid var(--border);border-radius:var(--radius-pill);overflow:hidden;
  font-family:var(--font-en-body);font-size:.74rem;font-weight:700;letter-spacing:.03em;
}
.lang-switch button{padding:8px 12px;color:var(--text-soft);transition:.3s;}
.lang-switch button.active{background:var(--accent);color:#fff;}

.btn-menu{display:none;width:42px;height:42px;border-radius:50%;border:1px solid var(--border);align-items:center;justify-content:center;}
.btn-menu span{display:block;position:relative;width:18px;height:2px;background:var(--text);}
.btn-menu span::before,.btn-menu span::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--text);transition:transform .3s;}
.btn-menu span::before{top:-6px;}
.btn-menu span::after{top:6px;}

.mobile-drawer{
  position:fixed;inset:0;z-index:950;
  background:var(--bg);
  display:flex;flex-direction:column;gap:6px;padding:110px 28px 40px;
  transform:translateX(105%);transition:transform .5s var(--ease);
  overflow-y:auto;
}
[dir="rtl"] .mobile-drawer{transform:translateX(-105%);}
.mobile-drawer.open{transform:translateX(0);}
.mobile-drawer a{padding:16px 4px;font-size:1.2rem;font-weight:700;border-bottom:1px solid var(--border);color:var(--text);}

@media (max-width:1080px){
  nav.nav-links{display:none;}
  .btn-menu{display:flex;}
}

/* Safety net: if the drawer was left open on a narrow screen and the viewport is then
   widened past the breakpoint (device rotation, window resize) without the hamburger
   button (now hidden) being available to close it, force the drawer off-screen so it
   can never block the desktop layout. */
@media (min-width:1081px){
  .mobile-drawer{transform:translateX(105%)!important;}
  [dir="rtl"] .mobile-drawer{transform:translateX(-105%)!important;}
}

/* =========================================================================
   Buttons
   ========================================================================= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 32px;border-radius:var(--radius-pill);
  font-weight:700;font-size:.96rem;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s, color .25s, border-color .25s;
  white-space:nowrap;
}
.btn svg{width:16px;height:16px;}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 10px 22px -12px rgba(191,91,61,.5);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 28px -12px rgba(191,91,61,.55);}
.btn-ghost{border:1.5px solid var(--border-strong);color:var(--text);background:transparent;}
.btn-ghost:hover{background:rgba(127,127,127,.08);transform:translateY(-2px);}
.btn-outline-light{border:1.5px solid rgba(255,255,255,.5);color:#fff;}
.btn-outline-light:hover{background:rgba(255,255,255,.14);transform:translateY(-2px);}
.btn-sm{padding:10px 20px;font-size:.85rem;}

.btn-row{display:flex;flex-wrap:wrap;gap:16px;}

/* =========================================================================
   Hero
   ========================================================================= */
#home{
  height:100svh;min-height:640px;
  display:flex;flex-direction:column;justify-content:flex-end;
  overflow:hidden;
  color:#fff;
}
.hero-media{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero-media img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.08);
  will-change:transform;
}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(5,20,26,.35) 0%, rgba(5,20,26,.28) 38%, rgba(5,20,26,.72) 82%, rgba(5,20,26,.92) 100%),
    linear-gradient(90deg, rgba(5,20,26,.55), rgba(5,20,26,0) 46%, rgba(5,20,26,0) 60%, rgba(5,20,26,.35));
}
.hero-crossfade{position:absolute;inset:0;opacity:0;transition:opacity 2.4s ease;}
.hero-crossfade.show{opacity:1;}

.hero-content{position:relative;z-index:2;padding-bottom:clamp(48px,7vw,86px);}
.hero-eyebrow{
  display:flex;align-items:center;gap:12px;
  font-family:var(--font-en-body);font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-soft);margin-bottom:22px;
}
.hero-eyebrow .line{width:44px;height:1px;background:var(--gold-soft);}
.hero-title{
  font-family:var(--font-ar-display);
      font-weight: 700;
    font-size: clamp(2.6rem, 7vw, 5.6rem);
    line-height: 0.8;
    max-width: 121ch;
  text-shadow:0 6px 30px rgba(0,0,0,.25);
}
.hero-title .accent-word{color:var(--gold-soft);font-style:normal;}
.hero-sub{
  margin-top:26px;max-width:56ch;
  font-size:clamp(1.02rem,1.6vw,1.22rem);
  color:rgba(255,255,255,.88);
  line-height:1.8;
}
.hero-actions{margin-top:38px;}

.hero-stats{
  position:relative;z-index:2;
  margin-top:clamp(40px,6vw,64px);
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,.22);
}
.hero-stats .stat{
  padding:22px clamp(6px,2vw,26px);
  border-inline-end:1px solid rgba(255,255,255,.22);
}
.hero-stats .stat:last-child{border-inline-end:none;}
.hero-stats .num{
  font-family:var(--font-en-display);
  font-size:clamp(1.5rem,3.2vw,2.6rem);font-weight:700;color:#fff;
  display:flex;align-items:baseline;gap:2px;
}
.hero-stats .num .plus{color:var(--gold-soft);}
.hero-stats .label{
  margin-top:4px;font-size:.8rem;color:rgba(255,255,255,.75);
  max-width:16ch;
}
@media (max-width:720px){
  .hero-stats{grid-template-columns:repeat(2,1fr);}
  .hero-stats .stat:nth-child(2){border-inline-end:none;}
}

.scroll-cue{
  position:absolute;bottom:22px;inset-inline-start:50%;transform:translateX(-50%);
  z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;
  color:rgba(255,255,255,.75);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
}
[dir="rtl"] .scroll-cue{transform:translateX(50%);}
.scroll-cue .wheel{width:22px;height:34px;border:1.5px solid rgba(255,255,255,.55);border-radius:20px;position:relative;}
.scroll-cue .wheel::before{
  content:"";position:absolute;top:6px;left:50%;transform:translateX(-50%);
  width:3px;height:7px;border-radius:2px;background:#fff;
  animation:scrollcue 1.8s infinite;
}
@keyframes scrollcue{0%{opacity:1;top:6px;}70%{opacity:0;top:18px;}100%{opacity:0;top:6px;}}

/* static decorative shapes — quiet compositional accents, no motion */
.float-shape{position:absolute;pointer-events:none;opacity:.32;z-index:1;}
.float-shape svg{width:100%;height:100%;}
.float-a{width:110px;top:14%;inset-inline-end:6%;color:var(--gold-soft);}
.float-b{width:64px;bottom:24%;inset-inline-start:8%;color:var(--turquoise-soft);}

/* =========================================================================
   Nubian pattern divider (signature element)
   ========================================================================= */
.pattern-divider{
  width:100%;height:clamp(30px,4vw,54px);
  color:var(--accent);
  opacity:.75;
}
.pattern-divider svg{width:100%;height:100%;display:block;}
.pattern-divider path,.pattern-divider polygon{
  stroke-dasharray:1400;stroke-dashoffset:1400;
  transition:stroke-dashoffset 1.1s var(--ease);
}
.pattern-divider.is-visible path,.pattern-divider.is-visible polygon{stroke-dashoffset:0;}

/* =========================================================================
   Cards
   ========================================================================= */
.card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);}
.card .card-media{position:relative;aspect-ratio:4/3;overflow:hidden;}
.card .card-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.card:hover .card-media img{transform:scale(1.05);}
.card .card-body{padding:var(--card-pad);}
.card .card-eyebrow{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:10px;}
.card h3{font-family:var(--font-ar-display);font-size:1.28rem;margin-bottom:10px;}
.card p{color:var(--text-soft);font-size:.96rem;}
.card--compact .card-body{padding:var(--sp-sm);}
.card--compact h3{font-size:1.05rem;margin-bottom:6px;}
.card--compact p{font-size:.88rem;}

.glass-card{
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
}

.grid{display:grid;gap:clamp(16px,2.2vw,26px);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media (max-width:980px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

/* =========================================================================
   Story split blocks (image / text alternating)
   ========================================================================= */
.story-block{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,86px);align-items:center;
}
.story-block.reverse{grid-template-columns:1fr 1fr;}
.story-block.reverse .story-media{order:2;}
[dir="ltr"] .story-block.reverse .story-media{order:2;}
@media (max-width:900px){
  .story-block,.story-block.reverse{grid-template-columns:1fr;}
  .story-block.reverse .story-media{order:0;}
}
.story-media{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);}
.story-media img{width:100%;height:100%;object-fit:cover;aspect-ratio:5/4;}
.story-media video{width:100%;height:100%;object-fit:cover;display:block;}
.story-media .media-tag{
  position:absolute;top:16px;inset-inline-start:16px;
  background:rgba(5,25,32,.55);color:#fff;backdrop-filter:blur(6px);
  padding:8px 16px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600;
}
.story-text h3{font-family:var(--font-ar-display);font-size:clamp(1.5rem,2.6vw,2.1rem);margin-bottom:16px;line-height:1.3;}
.story-text p{color:var(--text-soft);margin-bottom:14px;}
.story-text p:last-child{margin-bottom:0;}
.pull-quote{
  margin-top:20px;padding-inline-start:20px;border-inline-start:3px solid var(--accent);
  font-family:var(--font-ar-display);font-style:italic;font-size:1.15rem;color:var(--text);
}
[dir="ltr"] .pull-quote{padding-inline-start:20px;border-inline-start:3px solid var(--accent);}

.fact-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;}
.fact-chip{
  display:flex;align-items:center;gap:8px;padding:9px 16px;border-radius:var(--radius-pill);
  background:var(--bg-alt);border:1px solid var(--border);font-size:.85rem;font-weight:600;color:var(--text-soft);
}
.fact-chip b{color:var(--accent);}
.fact-chip--card{
  flex-direction:column;align-items:flex-start;gap:0;
  padding:var(--card-pad);border-radius:var(--radius);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.fact-chip--card:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm);}
.fact-chip--card b{margin-bottom:8px;font-size:1rem;}
.fact-chip--card span{font-weight:500;color:var(--text-soft);}

/* =========================================================================
   Timeline — tabbed list
   ========================================================================= */
.tl-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:0;}
.tl-tabs button{
  font-family:var(--font-ar-display);font-weight:700;font-size:.95rem;
  padding:13px 24px;border-radius:var(--radius-pill);
  border:1px solid var(--border-strong);background:var(--surface);color:var(--nile-800);
  cursor:pointer;transition:all .3s var(--ease);white-space:nowrap;
}
.tl-tabs button:hover{border-color:var(--turquoise);color:var(--turquoise);}
.tl-tabs button.active{
  background:linear-gradient(120deg, var(--turquoise) 0%, var(--nile-900) 100%);
  border-color:transparent;color:#fff;box-shadow:var(--shadow-sm);
}
[data-theme="dark"] .tl-tabs button{color:var(--turquoise-soft);}
[data-theme="dark"] .tl-tabs button.active{color:#fff;}

.tl-list{margin-top:28px;border-top:1px solid var(--border);}
.tl-row{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding-block:24px;border-bottom:1px solid var(--border);
}
.tl-row .tl-text{flex:1;min-width:0;}
.tl-row .tl-title{font-family:var(--font-ar-display);font-weight:700;font-size:1.1rem;color:var(--nile-800);margin-bottom:6px;}
.tl-row .tl-desc{color:var(--text-soft);font-size:.9rem;}
.tl-row .tl-period{
  flex:none;font-family:var(--font-en-body);font-weight:700;font-size:.92rem;
  color:var(--gold);background:var(--bg-alt);
  padding:11px 22px;border-radius:14px;white-space:nowrap;
}
[data-theme="dark"] .tl-row .tl-title{color:var(--turquoise-soft);}

@media (max-width:640px){
  .tl-row{flex-direction:column;align-items:flex-start;gap:10px;}
  .tl-row .tl-period{order:-1;}
}

/* eras strip (kingdoms highlight cards) */
.kingdoms-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
@media (max-width:1000px){.kingdoms-strip{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.kingdoms-strip{grid-template-columns:1fr;}}
.kingdom-card{
  padding:var(--card-pad) clamp(18px,2.2vw,22px);border-radius:var(--radius);background:var(--bg-alt);border:1px solid var(--border);
  transition:transform .35s var(--ease), background .35s, box-shadow .35s;
}
.kingdom-card:hover{transform:translateY(-3px);background:var(--surface);box-shadow:var(--shadow-sm);}
.kingdom-card .k-era{font-family:var(--font-en-body);font-size:.72rem;font-weight:700;letter-spacing:.08em;color:var(--accent);margin-bottom:10px;}
.kingdom-card h4{font-family:var(--font-ar-display);font-size:1.08rem;margin-bottom:8px;}
.kingdom-card p{font-size:.86rem;color:var(--text-soft);}

/* black pharaohs banner */
.pharaohs-banner{
  border-radius:var(--radius-lg);overflow:hidden;position:relative;
  min-height:340px;display:flex;align-items:center;
}
.pharaohs-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.pharaohs-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg, rgba(5,20,26,.92) 20%, rgba(5,20,26,.5) 65%, rgba(5,20,26,.15));}
.pharaohs-banner-plain{
  background:
    repeating-linear-gradient(135deg, rgba(200,153,47,.09) 0 2px, transparent 2px 46px),
    linear-gradient(110deg, var(--nile-950) 0%, var(--nile-800) 55%, var(--nile-700) 100%);
}
.pharaohs-banner-plain::after{content:none;}
.pharaohs-banner .pb-content{position:relative;z-index:1;color:#fff;padding:clamp(30px,5vw,60px);max-width:640px;}
.pharaohs-banner h3{font-family:var(--font-ar-display);font-size:clamp(1.5rem,3vw,2.2rem);margin-bottom:14px;}
.pharaohs-banner p{color:rgba(255,255,255,.85);}
.pharaohs-banner .names{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.pharaohs-banner .names span{padding:7px 14px;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius-pill);font-size:.8rem;}

/* =========================================================================
   Pills / sub-nav tabs
   ========================================================================= */
.pill-tabs{display:flex;flex-wrap:wrap;gap:10px;}
.pill-tabs button,.pill-tabs a{
  display:inline-flex;align-items:center;
  padding:11px 22px;border-radius:var(--radius-pill);border:1px solid var(--border);
  font-size:.88rem;font-weight:700;color:var(--text-soft);
  transition:.3s var(--ease);
}
.pill-tabs button:hover,.pill-tabs a:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-alt);}
.pill-tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff;}

.tab-panel{display:none;}
.tab-panel.active{display:block;animation:fadein .5s var(--ease);}
@keyframes fadein{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

/* =========================================================================
   Language / Dictionary
   ========================================================================= */

/* ---- per-category accent, echoed from the vocabulary itself ----------
   each of the 8 categories gets a fixed hue drawn from the existing
   Nubia palette. Used sparingly — a dot, a hairline, a soft tint —
   so it reads as a quiet wayfinding cue across ~95 words, not as
   colour-blocking. ---------------------------------------------------- */
[data-cat="phrases"]   {--cat-color:var(--terracotta); --cat-tint:rgba(191,91,61,.12);}
[data-cat="basics"]    {--cat-color:var(--turquoise);  --cat-tint:rgba(31,143,146,.12);}
[data-cat="verbs"]     {--cat-color:var(--gold);        --cat-tint:rgba(200,153,47,.14);}
[data-cat="family"]    {--cat-color:var(--palm);        --cat-tint:rgba(61,107,74,.14);}
[data-cat="body"]      {--cat-color:var(--copper);      --cat-tint:rgba(175,106,52,.14);}
[data-cat="house"]     {--cat-color:var(--sunset);      --cat-tint:rgba(223,138,60,.14);}
[data-cat="qualities"] {--cat-color:var(--nile-600);    --cat-tint:rgba(24,99,118,.12);}
[data-cat="numbers"]   {--cat-color:var(--turquoise-soft); --cat-tint:rgba(92,184,180,.16);}

.dict-shell{
  display:grid;grid-template-columns:270px 1fr;gap:40px;
}
@media (max-width:880px){.dict-shell{grid-template-columns:1fr;}.dict-rail{position:static;}}
.dict-rail{position:sticky;top:110px;align-self:start;}
.dict-search{
  display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-pill);padding:13px 20px;margin-bottom:22px;
  transition:border-color .3s, box-shadow .3s;
}
.dict-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--cat-tint,rgba(191,91,61,.1));}
.dict-search svg{width:17px;height:17px;color:var(--text-soft);flex:none;}
.dict-search input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:.95rem;}

.dict-categories{display:flex;flex-direction:column;gap:2px;}
.dict-categories button{
  text-align:start;padding:11px 14px;border-radius:var(--radius-sm);font-weight:600;color:var(--text-soft);font-size:.89rem;
  display:flex;align-items:center;justify-content:space-between;gap:10px;transition:.25s var(--ease);
}
.dict-categories button:hover{background:var(--bg-alt);}
.dict-categories button.active{background:var(--cat-tint,var(--bg-alt));color:var(--cat-color,var(--accent));font-weight:700;}
.dict-categories button.active .count{color:inherit;opacity:.7;}
.dict-categories .count{color:var(--text-soft);font-weight:500;font-size:.78rem;flex:none;}
.cat-label{display:flex;align-items:center;gap:11px;min-width:0;}
.cat-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--cat-color,var(--accent));}
.dict-categories button[data-cat="all"] .cat-dot{
  background:conic-gradient(var(--terracotta),var(--turquoise),var(--gold),var(--palm),var(--copper),var(--sunset),var(--nile-600),var(--turquoise-soft));
}

.word-of-day{
  position:relative;overflow:hidden;
  margin-top:24px;padding:24px 22px 22px;border-radius:var(--radius);
  background:linear-gradient(150deg,var(--nile-900),var(--nile-700));color:#fff;
}
.word-of-day::before{
  content:"";position:absolute;inset-inline:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--gold-soft),var(--gold) 70%);
}
.word-of-day .wd-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:var(--gold-soft);margin-bottom:12px;}
.word-of-day .wd-word{font-family:var(--font-ar-display);font-size:1.55rem;margin-bottom:5px;}
.word-of-day .wd-mean{font-size:.85rem;color:rgba(255,255,255,.72);line-height:1.6;}

.dict-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:20px;}

.flashcard{perspective:1400px;height:214px;cursor:pointer;transition:filter .35s var(--ease);}
.flashcard:hover{filter:drop-shadow(0 18px 30px rgba(8,36,44,.16));}
.flashcard-inner{
  position:relative;width:100%;height:100%;transition:transform .55s var(--ease);
  transform-style:preserve-3d;
}
.flashcard.flipped .flashcard-inner{transform:rotateY(180deg);}
[dir="rtl"] .flashcard.flipped .flashcard-inner{transform:rotateY(-180deg);}
.fc-face{
  position:absolute;inset:0;overflow:hidden;backface-visibility:hidden;border-radius:var(--radius);
  border:1px solid var(--border);background:var(--surface);
  padding:22px 24px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;
}
.fc-face::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--cat-color,var(--accent));opacity:.85;
}
.fc-face.back{background:var(--surface-2);transform:rotateY(180deg);}
[dir="rtl"] .fc-face.back{transform:rotateY(-180deg);}

.fc-face-top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.fc-cat{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.66rem;color:var(--text-soft);text-transform:uppercase;letter-spacing:.1em;font-weight:700;
}
.fc-cat::before{content:"";width:6px;height:6px;border-radius:50%;flex:none;background:var(--cat-color,var(--accent));}
.fc-ar{font-family:var(--font-ar-display);font-size:clamp(1.32rem,2.4vw,1.62rem);font-weight:700;line-height:1.28;color:var(--text);}
.fc-flip-hint{
  width:22px;height:22px;flex:none;display:flex;align-items:center;justify-content:center;
  color:var(--border-strong);transition:.4s var(--ease);
}
.fc-flip-hint svg{width:12px;height:12px;}
.flashcard:hover .fc-flip-hint{color:var(--cat-color,var(--accent));transform:rotate(180deg);}

.fc-bottom{display:flex;justify-content:space-between;align-items:center;}
.fc-fav{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--border-strong);transition:.25s;}
.fc-fav:hover{color:var(--terracotta);}
.fc-fav svg{width:15px;height:15px;}
.fc-fav.active{color:var(--terracotta);}
.fc-play{
  width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:none;
  display:flex;align-items:center;justify-content:center;color:var(--text-soft);transition:.25s;
}
.fc-play:hover{border-color:var(--cat-color,var(--accent));color:var(--cat-color,var(--accent));}
.fc-play svg{width:12px;height:12px;}
.fc-approx-label{font-size:.66rem;color:var(--text-soft);}

.fc-dialects{display:flex;flex-direction:column;justify-content:center;gap:13px;flex:1;}
.fc-dia-row{display:flex;flex-direction:column;gap:3px;min-width:0;}
.fc-dia-row b{font-size:.64rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text-soft);}
.fc-dia-val{font-family:var(--font-ar-display);font-size:1.05rem;font-weight:600;color:var(--text);line-height:1.3;}
.fc-dia-dot{display:none;}
.dict-empty{padding:40px;text-align:center;color:var(--text-soft);}

.dict-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
.dict-count{font-size:.86rem;color:var(--text-soft);}
.mini-game-cta{
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:30px;padding:26px 28px;border-radius:var(--radius);
  background:var(--bg-alt);border:1px solid var(--border);
}
.mini-game-cta h3{font-family:var(--font-ar-display);font-size:1.15rem;margin-bottom:6px;}
.mini-game-cta p{color:var(--text-soft);font-size:.9rem;}

/* mini game */
.game-shell{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:clamp(24px,4vw,44px);text-align:center;
}
.game-progress{display:flex;justify-content:center;gap:6px;margin-bottom:24px;}
.game-progress span{width:26px;height:5px;border-radius:3px;background:var(--border-strong);}
.game-progress span.done{background:var(--accent);}
.game-word{font-family:var(--font-ar-display);font-size:2.2rem;margin-bottom:10px;}
.game-hint{color:var(--text-soft);margin-bottom:26px;}
.game-options{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;max-width:520px;margin-inline:auto;}
@media (max-width:560px){.game-options{grid-template-columns:1fr;}}
.game-options button{
  padding:16px;border-radius:var(--radius);border:1.5px solid var(--border);font-weight:700;
  transition:.25s;
}
.game-options button:hover{border-color:var(--accent);}
.game-options button.correct{background:var(--palm);border-color:var(--palm);color:#fff;}
.game-options button.wrong{background:var(--terracotta);border-color:var(--terracotta);color:#fff;}
.game-result{margin-top:22px;font-family:var(--font-ar-display);font-size:1.3rem;}

/* =========================================================================
   Gallery / masonry
   ========================================================================= */
.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:30px;}
.masonry{column-count:4;column-gap:18px;}
@media (max-width:1080px){.masonry{column-count:3;}}
@media (max-width:760px){.masonry{column-count:2;}}
@media (max-width:480px){.masonry{column-count:1;}}
.masonry-item{
  break-inside:avoid;margin-bottom:18px;border-radius:var(--radius);overflow:hidden;position:relative;
  cursor:zoom-in;box-shadow:var(--shadow-sm);
}
.masonry-item img{width:100%; height: 100%; display:block;transition:transform .7s var(--ease);}
.grid-4 .masonry-item{aspect-ratio:1;}
.grid-4 .masonry-item img{object-fit:cover;}
.masonry-item:hover img{transform:scale(1.06);}
.masonry-item .m-overlay{
  position:absolute;inset:0;background:linear-gradient(0deg, rgba(5,20,26,.82), rgba(5,20,26,0) 55%);
  opacity:0;transition:opacity .4s var(--ease);
  display:flex;align-items:flex-end;padding:16px;color:#fff;font-size:.86rem;font-weight:600;
}
.masonry-item:hover .m-overlay{opacity:1;}
.masonry-item.hidden{display:none;}

/* =========================================================================
   Nubian video gallery (6-video interactive system)
   ========================================================================= */
.video-gallery{margin-top:56px;}
.vgallery-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(20px,3vw,34px);align-items:start;}
.vgallery-player,.vgallery-info{min-width:0;}
.vgallery-frame{position:relative;padding-top:56.25%;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-hover);background:var(--nile-950);}
.vgallery-frame-bg{
  position:absolute;inset:-4%;background-size:cover;background-position:center;
  filter:blur(30px) brightness(.5) saturate(1.3);
  transform:scale(1.12);z-index:0;
}
.vgallery-frame video{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:contain;background:transparent;z-index:1;}
.vgallery-thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:14px;}
.vgallery-thumb{
  position:relative;padding-top:56.25%;border-radius:9px;overflow:hidden;border:2px solid transparent;
  background:var(--bg-alt);cursor:pointer;transition:border-color .25s var(--ease),transform .25s var(--ease);
}
.vgallery-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .3s;}
.vgallery-thumb:hover{transform:translateY(-2px);}
.vgallery-thumb.active{border-color:var(--turquoise);}
.vgallery-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:16px;}
.vgallery-counter{font-family:var(--font-en-body);font-weight:700;letter-spacing:.05em;color:var(--text-soft);font-size:.88rem;min-width:64px;text-align:center;direction:ltr;}
.vgallery-info{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;height:100%;
  opacity:0;transform:translateY(10px);transition:opacity .4s var(--ease),transform .4s var(--ease);
}
.vgallery-info.is-in{opacity:1;transform:translateY(0);}
.vgallery-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.vgallery-tag{background:var(--bg-alt);color:var(--text);font-size:.76rem;font-weight:600;padding:5px 12px;border-radius:var(--radius-pill);}
.vgallery-info h4{font-family:var(--font-ar-display);font-size:1.24rem;margin-bottom:6px;}
.vgallery-artist{display:block;color:var(--turquoise);font-weight:700;font-size:.86rem;margin-bottom:16px;}
.vgallery-info p{color:var(--text-soft);font-size:.9rem;line-height:1.75;}
.vgallery-hashtags{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px;}
.vgallery-hashtag{color:var(--turquoise);font-size:.8rem;font-weight:600;}

@media (max-width:900px){
  .vgallery-layout{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .vgallery-thumbs{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:84px;overflow-x:auto;padding-bottom:4px;}
}

/* =========================================================================
   Village wedding — standalone archival section
   ========================================================================= */
.village-wedding{
  margin-top:56px;display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(20px,3vw,34px);align-items:center;
  background:linear-gradient(135deg, rgba(200,153,47,.08), rgba(31,143,146,.07));
  border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:clamp(22px,4vw,40px);position:relative;overflow:hidden;
}
.vw-media,.vw-info{min-width:0;}
.village-wedding::before{
  content:"";position:absolute;top:-36px;inset-inline-end:-36px;width:130px;height:130px;
  border:2px solid var(--gold);opacity:.16;border-radius:30% 70% 65% 35%/40% 35% 65% 60%;transform:rotate(12deg);
  pointer-events:none;
}
.vw-frame{position:relative;padding-top:56.25%;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-hover);transition:transform .4s var(--ease);}
.vw-frame:hover{transform:scale(1.015);}
.vw-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.vw-eyebrow{display:inline-block;color:var(--gold);font-weight:700;font-size:.78rem;letter-spacing:.04em;margin-bottom:8px;}
.vw-info h3{font-family:var(--font-ar-display);font-size:1.5rem;margin-bottom:14px;}
.vw-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.vw-info p{color:var(--text-soft);line-height:1.8;font-size:.94rem;}
@media (max-width:900px){.village-wedding{grid-template-columns:1fr;}}

.figure-card{cursor:pointer;}
.figure-modal{
  position:fixed;inset:0;z-index:1200;background:rgba(3,14,18,.82);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s var(--ease);
  padding:24px;
}
.figure-modal.open{opacity:1;visibility:visible;}
.figure-modal-box{
  position:relative;max-width:520px;width:100%;max-height:86vh;overflow-y:auto;
  background:var(--surface);border-radius:var(--radius-lg);padding:40px 32px 32px;
  text-align:center;box-shadow:0 40px 90px -20px rgba(0,0,0,.5);
  transform:scale(.94);transition:transform .35s var(--ease);
}
.figure-modal.open .figure-modal-box{transform:scale(1);}
.figure-modal-close{
  position:absolute;top:16px;inset-inline-end:16px;width:38px;height:38px;border-radius:50%;
  background:var(--bg-alt);color:var(--text);display:flex;align-items:center;justify-content:center;
  transition:background .25s;
}
.figure-modal-close:hover{background:var(--border-strong);}
.figure-modal-close svg{width:18px;height:18px;}
.figure-modal-avatar{
  width:220px;height:220px;border-radius:50%;margin:0 auto 24px;overflow:hidden;
  background:var(--fg-tint);color:var(--fg-color);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-ar-display);font-weight:700;font-size:4rem;
  box-shadow:0 0 0 6px var(--surface), 0 0 0 8px var(--fg-color);
}
.figure-modal-avatar img{width:100%;height:100%;object-fit:cover;}
.figure-modal-box h3{font-family:var(--font-ar-display);font-size:1.4rem;margin-bottom:8px;}
.figure-modal-box .f-role{
  display:inline-block;font-size:.78rem;font-weight:700;color:var(--fg-color);background:var(--fg-tint);
  padding:5px 14px;border-radius:var(--radius-pill);margin-bottom:20px;
}
.figure-modal-box p{color:var(--text-soft);font-size:.96rem;line-height:1.85;text-align:start;}
@media (max-width:480px){.figure-modal-avatar{width:160px;height:160px;font-size:3rem;}}

.lightbox{
  position:fixed;inset:0;z-index:1200;background:rgba(3,14,18,.94);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility .4s var(--ease);
  padding:40px 20px;
}
.lightbox.open{opacity:1;visibility:visible;}
.lightbox figure{max-width:min(1100px,92vw);max-height:86vh;margin:0;position:relative;}
.lightbox img{max-width:100%;max-height:80vh;border-radius:8px;margin-inline:auto;box-shadow:0 30px 80px rgba(0,0,0,.5);
  transform:scale(.94);transition:transform .4s var(--ease);object-fit:contain;}
.lightbox.open img{transform:scale(1);}
.lightbox figcaption{color:#fff;text-align:center;margin-top:16px;font-size:.92rem;opacity:.85;}
.lightbox-close,.lightbox-nav{
  position:absolute;width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.1);color:#fff;display:flex;align-items:center;justify-content:center;
  transition:background .3s;z-index:2;
}
.lightbox-close:hover,.lightbox-nav:hover{background:rgba(255,255,255,.22);}
.lightbox-close{top:-4px;inset-inline-end:-4px;}
.lightbox-nav svg{width:20px;height:20px;}
.lightbox-prev{top:50%;transform:translateY(-50%);inset-inline-start:clamp(-10px,-6vw,10px);}
.lightbox-next{top:50%;transform:translateY(-50%);inset-inline-end:clamp(-10px,-6vw,10px);}

/* =========================================================================
   Tourism / map
   ========================================================================= */
.tourism-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:start;}
@media (max-width:960px){.tourism-layout{grid-template-columns:1fr;}}
.attraction-list{display:flex;flex-direction:column;gap:14px;}
.attraction-item{
  display:grid;grid-template-columns:88px 1fr auto;gap:16px;align-items:center;
  padding:14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);
  transition:.3s var(--ease);cursor:pointer;
}
.attraction-item:hover,.attraction-item.active{border-color:var(--accent);box-shadow:var(--shadow-sm);}
.attraction-item .a-thumb{width:88px;height:70px;border-radius:10px;overflow:hidden;background:var(--bg-alt);}
.attraction-item .a-thumb img{width:100%;height:100%;object-fit:cover;}
.attraction-item .a-thumb.icon-thumb{display:flex;align-items:center;justify-content:center;color:var(--accent);}
.attraction-item .a-thumb.icon-thumb svg{width:34px;height:34px;}
.attraction-item h4{font-family:var(--font-ar-display);font-size:1.05rem;margin-bottom:4px;}
.attraction-item p{font-size:.85rem;color:var(--text-soft);}
.attraction-item .a-go{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;}
.attraction-item .a-go svg{width:15px;height:15px;}

.map-card{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow);position:sticky;top:110px;}
.map-card iframe{width:100%;height:420px;border:0;display:block;filter:grayscale(.15) saturate(1.05);}
.map-caption{padding:16px 20px;background:var(--surface);font-size:.85rem;color:var(--text-soft);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}

.season-guide{margin-top:36px;}
.season-track{position:relative;height:64px;border-radius:var(--radius-pill);background:var(--bg-alt);overflow:hidden;display:flex;}
.season-track .m{flex:1;display:flex;align-items:center;justify-content:center;font-size:.72rem;color:var(--text-soft);position:relative;border-inline-end:1px solid var(--border);font-weight:600;}
.season-track .m:last-child{border-inline-end:none;}
.season-track .m.best{background:linear-gradient(180deg,var(--turquoise),var(--turquoise-soft));color:#fff;}
.season-legend{display:flex;gap:20px;margin-top:14px;font-size:.82rem;color:var(--text-soft);flex-wrap:wrap;}
.season-legend .dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-inline-end:6px;}

.itinerary-tabs{margin-top:50px;}
.itin-day{display:flex;gap:20px;padding:18px 0;border-bottom:1px solid var(--border);}
.itin-day:last-child{border-bottom:none;}
.itin-day .itin-num{font-family:var(--font-ar-display);font-size:1.4rem;color:var(--accent);flex:none;width:50px;}
.itin-day h4{font-family:var(--font-ar-display);font-size:1.05rem;margin-bottom:6px;}
.itin-day p{color:var(--text-soft);font-size:.9rem;}

/* =========================================================================
   Cuisine
   ========================================================================= */

/* =========================================================================
   Testimonials
   ========================================================================= */
.testi-track{display:flex;position:relative;}
.testi-slide{min-width:100%;transition:transform .7s var(--ease);}
.testi-viewport{overflow:hidden;}
.testi-card{
  max-width:760px;margin-inline:auto;text-align:center;padding:0 20px;
}
.testi-avatar{width:76px;height:76px;border-radius:50%;overflow:hidden;margin:0 auto 20px;border:3px solid var(--surface);box-shadow:var(--shadow-sm);}
.testi-avatar img{width:100%;height:100%;object-fit:cover;}
.testi-avatar.initial{display:flex;align-items:center;justify-content:center;background:var(--nile-800);color:var(--gold-soft);font-family:var(--font-ar-display);font-size:1.6rem;}
.testi-quote{font-family:var(--font-ar-display);font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.7;color:var(--text);margin-bottom:20px;font-style:italic;}
.testi-name{font-weight:700;}
.testi-role{color:var(--text-soft);font-size:.88rem;}
.testi-dots{display:flex;justify-content:center;gap:8px;margin-top:30px;}
.testi-dots button{width:9px;height:9px;border-radius:50%;background:var(--border-strong);}
.testi-dots button.active{background:var(--accent);width:26px;border-radius:5px;}
.testi-arrows{display:flex;justify-content:center;gap:14px;margin-top:20px;}

/* =========================================================================
   Figures
   ========================================================================= */
.fig-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px;}
.fig-tabs button{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--font-ar-display);font-weight:700;font-size:.92rem;
  padding:12px 22px;border-radius:var(--radius-pill);
  border:1px solid var(--border-strong);background:var(--surface);color:var(--text);
  cursor:pointer;transition:all .3s var(--ease);white-space:nowrap;
}
.fig-tabs button svg{width:17px;height:17px;flex:none;}
.fig-tabs button:hover{border-color:var(--fg-color);color:var(--fg-color);}
.fig-tabs button.active{background:var(--fg-color);border-color:var(--fg-color);color:#fff;box-shadow:var(--shadow-sm);}
.fig-tabs .fig-count{
  display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;
  border-radius:var(--radius-pill);background:rgba(0,0,0,.08);font-size:.72rem;font-weight:700;
}
.fig-tabs button.active .fig-count{background:rgba(255,255,255,.25);}
[data-theme="dark"] .fig-tabs .fig-count{background:rgba(255,255,255,.1);}

.fig-panel-sub{color:var(--text-soft);font-size:.88rem;margin:-8px 0 20px;}
.fig-panel{animation:figFadeIn .4s var(--ease);}
@keyframes figFadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

.figure-card{
  padding:28px 26px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);height:100%;
  position:relative;overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.figure-card::before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:3px;background:var(--fg-color);}
.figure-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);border-color:var(--fg-color);}
.figure-card .f-avatar{
  width:68px;height:68px;border-radius:50%;background:var(--fg-tint);color:var(--fg-color);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-ar-display);font-weight:700;font-size:1.5rem;
  margin-bottom:20px;box-shadow:0 0 0 4px var(--surface), 0 0 0 5px var(--fg-tint);
  overflow:hidden;
}
.figure-card .f-avatar.has-photo{box-shadow:0 0 0 4px var(--surface), 0 0 0 5px var(--fg-color);}
.figure-card .f-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.figure-card h3{font-family:var(--font-ar-display);font-size:1.1rem;margin-bottom:8px;}
.figure-card .f-role{
  display:inline-block;font-size:.72rem;font-weight:700;color:var(--fg-color);background:var(--fg-tint);
  padding:4px 12px;border-radius:var(--radius-pill);margin-bottom:14px;
}
.figure-card .f-bio{
  font-size:.89rem;color:var(--text-soft);line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.figure-card.is-expanded .f-bio{-webkit-line-clamp:unset;display:block;}
.figure-card .f-more{
  display:inline-block;margin-top:12px;background:none;border:none;padding:0;cursor:pointer;
  font-family:var(--font-ar-display);font-weight:700;font-size:.82rem;color:var(--fg-color);
  transition:opacity .25s var(--ease);
}
.figure-card .f-more:hover{opacity:.7;}

.cat-lit{--fg-color:var(--gold);--fg-tint:rgba(200,153,47,.14);}
.cat-art{--fg-color:var(--turquoise);--fg-tint:rgba(31,143,146,.13);}
.cat-pol{--fg-color:var(--terracotta);--fg-tint:rgba(191,91,61,.13);}

/* =========================================================================
   Publications — book showcase
   ========================================================================= */
.book-card{
  padding:36px 32px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);height:100%;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.book-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);}
.book-card .book-cover{
  width:112px;margin-bottom:22px;border-radius:8px;overflow:hidden;
  box-shadow:0 16px 32px -14px rgba(5,25,32,.4), 0 0 0 1px var(--border);
}
.book-card .book-cover img{width:100%;display:block;}
.book-card h3{font-family:var(--font-ar-display);font-size:1.28rem;margin-bottom:6px;}
.book-card .book-author{display:block;color:var(--gold);font-weight:700;font-size:.86rem;margin-bottom:18px;}
.book-card p{color:var(--text-soft);font-size:.92rem;line-height:1.75;margin-bottom:14px;}
.book-card .book-significance{
  margin-top:18px;padding:18px 20px;border-radius:var(--radius);background:var(--bg-alt);
  border-inline-start:3px solid var(--gold);
}
.book-card .book-significance b{display:block;font-family:var(--font-ar-display);font-size:.92rem;margin-bottom:8px;color:var(--gold);}
.book-card .book-significance p{margin-bottom:0;font-size:.88rem;}
.book-card .book-download{
  display:inline-flex;align-items:center;gap:9px;margin-top:22px;
  padding:12px 24px;border-radius:var(--radius-pill);
  background:var(--gold);color:#fff;font-family:var(--font-ar-display);font-weight:700;font-size:.88rem;
  transition:opacity .25s var(--ease), transform .25s var(--ease);
}
.book-card .book-download:hover{opacity:.87;transform:translateY(-2px);}
.book-card .book-download svg{width:16px;height:16px;flex:none;}

.book-synthesis{
  margin-top:clamp(32px,5vw,54px);padding:clamp(32px,5vw,52px);border-radius:var(--radius-lg);
  background:linear-gradient(135deg, rgba(200,153,47,.1), rgba(31,143,146,.08));
  border:1px solid var(--border);text-align:center;max-width:820px;margin-inline:auto;
}
.book-synthesis .book-synthesis-icon{font-size:1.8rem;margin-bottom:14px;}
.book-synthesis h3{font-family:var(--font-ar-display);font-size:1.3rem;margin-bottom:14px;}
.book-synthesis p{color:var(--text-soft);font-size:.98rem;line-height:1.9;}
.book-synthesis p b{color:var(--text);}

/* =========================================================================
   Stories / legends
   ========================================================================= */
.legend-card{
  display:grid;grid-template-columns:.9fr 1.4fr;gap:0;border-radius:var(--radius-lg);overflow:hidden;
  background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);margin-bottom:26px;
}
.legend-card:nth-child(even){grid-template-columns:1.4fr .9fr;}
.legend-card:nth-child(even) .legend-media{order:2;}
@media (max-width:820px){
  .legend-card,.legend-card:nth-child(even){grid-template-columns:1fr;}
  .legend-card:nth-child(even) .legend-media{order:0;}
}
.legend-media{position:relative;min-height:220px;}
.legend-media img{width: 449px;height: 297px;object-fit:cover;}
.legend-body{padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;justify-content:center;}
.legend-num{font-family:var(--font-en-display);font-size:.85rem;font-weight:700;color:var(--gold);letter-spacing:.1em;margin-bottom:10px;}
.legend-body h3{font-family:var(--font-ar-display);font-size:1.35rem;margin-bottom:14px;}
.legend-body p{color:var(--text-soft);}

/* =========================================================================
   FAQ accordion
   ========================================================================= */
.faq-list{max-width:840px;margin-inline:auto;}
.faq-item{border-bottom:1px solid var(--border);}
.faq-q{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:24px 4px;width:100%;text-align:start;font-family:var(--font-ar-display);font-size:1.12rem;font-weight:700;
}
.faq-q .plus{
  flex:none;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--border-strong);
  display:flex;align-items:center;justify-content:center;position:relative;transition:transform .4s var(--ease);
}
.faq-q .plus::before,.faq-q .plus::after{content:"";position:absolute;background:var(--accent);}
.faq-q .plus::before{width:12px;height:1.6px;}
.faq-q .plus::after{width:1.6px;height:12px;transition:transform .3s;}
.faq-item.open .faq-q .plus::after{transform:rotate(90deg);opacity:0;}
.faq-item.open .faq-q .plus{transform:rotate(180deg);border-color:var(--accent);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s var(--ease);}
.faq-a-inner{padding:0 4px 26px;color:var(--text-soft);max-width:70ch;}
.faq-a-inner a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
.faq-a-inner a:hover{color:var(--gold);}
.faq-note{color:var(--text-soft);font-size:.92rem;max-width:70ch;margin:22px auto 0;text-align:center;}

/* =========================================================================
   Quiz
   ========================================================================= */
.quiz-shell{max-width:760px;margin-inline:auto;}
.quiz-start{text-align:center;}
.quiz-badge{width:74px;height:74px;border-radius:50%;background:var(--bg-alt);color:var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 22px;}
.quiz-badge svg{width:32px;height:32px;}
.quiz-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:clamp(26px,4vw,46px);box-shadow:var(--shadow-sm);
}
.quiz-final{text-align:center;}
.quiz-final .score-num{font-family:var(--font-ar-display);font-size:3.4rem;color:var(--accent);}

/* =========================================================================
   Weddings / arts sub-nav content blocks
   ========================================================================= */
.step-list{display:flex;flex-direction:column;gap:20px;}
.step-item{display:flex;gap:20px;}
.step-num{
  flex:none;width:44px;height:44px;border-radius:50%;
  background:var(--nile-900);color:var(--sand-50);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-ar-display);font-weight:700;font-size:1.1rem;
}
[data-theme="dark"] .step-num{background:var(--gold);color:var(--nile-950);}
.step-text h4{font-family:var(--font-ar-display);font-size:1.08rem;margin-bottom:6px;}
.step-text p{color:var(--text-soft);font-size:.92rem;}

.symbol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media (max-width:760px){.symbol-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:480px){.symbol-grid{grid-template-columns:1fr;}}
.symbol-card{
  padding:var(--card-pad);border-radius:var(--radius);background:var(--bg-alt);border:1px solid var(--border);text-align:center;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s;
}
.symbol-card:hover{transform:translateY(-3px);background:var(--surface);box-shadow:var(--shadow-sm);}
.sym-icon{width:72px;height:72px;margin:0 auto 14px;border-radius:50%;overflow:hidden;color:var(--accent);border:2px solid var(--border);flex-shrink:0;}
.sym-icon img{width:100%;height:100%;object-fit:cover;display:block;}
.sym-icon svg{width:100%;height:100%;}
.symbol-card--start{text-align:start;}
.symbol-card--start .sym-icon{margin:0 0 14px;}
.symbol-card h4{font-family:var(--font-ar-display);margin-bottom:8px;}
.symbol-card p{font-size:.86rem;color:var(--text-soft);}

/* =========================================================================
   Footer
   ========================================================================= */
footer{background:var(--nile-950);color:var(--sand-100);position:relative;}
footer .footer-top{padding-block:70px 40px;}
.footer-wave{width:100%;height:60px;display:block;color:var(--bg);}
[data-theme="dark"] .footer-wave{color:var(--bg);}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}
.footer-brand{font-family:var(--font-ar-display);font-size:1.5rem;font-weight:700;color:#fff;margin-bottom:14px;}
.footer-brand small{display:block;font-family:var(--font-en-body);font-size:.62rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(245,236,215,.68);margin-top:4px;}
.footer-about{color:rgba(245,236,215,.68);font-size:.92rem;max-width:34ch;}
.footer-col h5{font-family:var(--font-en-body);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:18px;}
.footer-col ul{display:flex;flex-direction:column;gap:11px;}
.footer-col a{color:rgba(245,236,215,.75);font-size:.92rem;transition:color .3s;}
.footer-col a:hover{color:#fff;}
.footer-social{display:flex;gap:10px;margin-top:18px;}
.footer-social a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(245,236,215,.25);display:flex;align-items:center;justify-content:center;}
.footer-social a svg{width:16px;height:16px;}
.newsletter-form{display:flex;gap:0;border:1px solid rgba(245,236,215,.3);border-radius:var(--radius-pill);overflow:hidden;margin-top:14px;}
.newsletter-form input{flex:1;background:transparent;border:none;padding:12px 18px;color:#fff;outline:none;font-size:.9rem;}
.newsletter-form input::placeholder{color:rgba(245,236,215,.5);}
.newsletter-form button{padding:12px 20px;background:var(--gold);color:var(--nile-950);font-weight:700;font-size:.85rem;}
.newsletter-note{margin-top:10px;font-size:.8rem;color:var(--gold-soft);min-height:1.2em;}
.footer-bottom{
  border-top:1px solid rgba(245,236,215,.14);padding-block:24px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  font-size:.82rem;color:rgba(245,236,215,.55);
}

/* =========================================================================
   Misc utility
   ========================================================================= */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.is-hidden{display:none;}
.text-center{text-align:center;}
.mt-0{margin-top:0;}
.counter-num[data-count]{font-variant-numeric:tabular-nums;}

.skip-link{
  position:fixed;top:-100px;inset-inline-start:10px;z-index:2000;
  background:var(--accent);color:#fff;padding:12px 20px;border-radius:8px;transition:top .3s;
}
.skip-link:focus{top:10px;}

.lang-notice{
  display:none;align-items:center;justify-content:center;gap:8px;
  background:var(--gold-soft);color:var(--ink-900);
  text-align:center;padding:10px 20px;font-size:.85rem;
}

/* subtle vignette texture for alt sections */
.texture-dots{
  background-image:radial-gradient(var(--border) 1px, transparent 1px);
  background-size:22px 22px;
}



/* Testimonials Slider - ثابت في اللغتين */
#testi-track {
    display: flex !important;
    flex-direction: row !important;
    direction: ltr !important;
    width: 100%;
}

#testi-track .testi-slide {
    flex: 0 0 100% !important;
    width: 100% !important;
    direction: inherit;
}

/* الأسهم ثابتة */
.testi-arrows {
    direction: ltr !important;
}

.testi-arrows .icon-btn {
    direction: ltr !important;
}

.testi-arrows .icon-btn svg {
    transform: none !important;
}