/* =============================================
   TOMBAK MASTER — Public Stylesheet
   Dual Theme: Dark (default) + Light
   ============================================= */


/* ── CSS Custom Properties (Dark Theme) ─────── */
:root {
  /* Backgrounds */
  --bg-0: #080807;
  --bg-1: #0D0D0B;
  --bg-2: #15130F;
  --bg-card: rgba(255,255,255,0.04);

  /* Gold palette */
  --gold:       #D4AF37;
  --gold-light: #F4D477;
  --gold-mid:   #E5B94F;
  --gold-dark:  #9E6C2B;
  --gold-glow:  rgba(212,175,55,0.18);

  /* Text */
  --text-0: #F7F3E8;
  --text-1: #B8B8B8;
  --text-2: #6B6B6B;

  /* Borders & surfaces */
  --border:     rgba(212,175,55,0.18);
  --border-sub: rgba(255,255,255,0.06);
  --glass:      rgba(255,255,255,0.04);
  --glass-blur: rgba(255,255,255,0.07);

  /* Shadows */
  --shadow-gold:  0 20px 60px rgba(212,175,55,0.15);
  --shadow-heavy: 0 40px 100px rgba(0,0,0,0.7);

  /* UI */
  --radius:      24px;
  --radius-sm:   14px;
  --radius-pill: 50px;

  /* Transitions */
  --ease-luxury: cubic-bezier(0.25,0.46,0.45,0.94);
  --ease-expo:   cubic-bezier(0.19,1,0.22,1);
  --dur:         0.7s;
}

/* ── Light Theme ─────────────────────────────── */
[data-theme="light"] {
  --bg-0: #F8F5ED;
  --bg-1: #FFFDF8;
  --bg-2: #F1ECDF;
  --bg-card: rgba(0,0,0,0.02);
  --text-0: #111111;
  --text-1: #4A4540;
  --text-2: #9A9590;
  --border:     rgba(212,175,55,0.25);
  --border-sub: rgba(0,0,0,0.08);
  --glass:      rgba(255,255,255,0.7);
  --glass-blur: rgba(255,255,255,0.85);
  --shadow-gold:  0 20px 60px rgba(212,175,55,0.2);
  --shadow-heavy: 0 40px 100px rgba(0,0,0,0.12);
}

/* ── Reset ───────────────────────────────────── */
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body {
  background: var(--bg-0);
  color: var(--text-0);
  font-family: var(--font-fa);
  direction: rtl;
  overflow-x: hidden;
  line-height: 1.7;
  transition: background var(--dur) var(--ease-luxury), color var(--dur) var(--ease-luxury);
}
@media(max-width:768px){ body { cursor:auto; } }
::selection { background: rgba(212,175,55,0.25); }
::-webkit-scrollbar { width: 3px; }
::-webkit-scrollbar-track { background: var(--bg-0); }
::-webkit-scrollbar-thumb { background: var(--gold); border-radius:2px; }
a { color:inherit; text-decoration:none; }

/* ── Layout Utilities ────────────────────────── */
.wrap { max-width:1280px; margin:0 auto; padding:0 clamp(1.5rem,4vw,3rem); }
.section { padding: clamp(5rem,10vw,8rem) 0; }

/* ── Custom Cursor ───────────────────────────── */
#cursor, #cursor-ring {
  position:fixed; top:0; left:0; border-radius:50%;
  pointer-events:none; z-index:99999;
  transform:translate(-50%,-50%);
}
#cursor {
  width:10px; height:10px; background:var(--gold);
  transition: width .3s, height .3s, opacity .3s;
  mix-blend-mode: difference;
}
#cursor.hover { width:48px; height:48px; opacity:.4; }
#cursor-ring {
  width:38px; height:38px;
  border:1px solid rgba(212,175,55,.45);
  transition: transform .22s var(--ease-luxury), width .3s, height .3s;
}
@media(max-width:768px){ #cursor, #cursor-ring { display:none; } }

/* ── Theme Toggle ────────────────────────────── */

/* ── Loading Screen ──────────────────────────── */
#loading {
  position:fixed; inset:0; background:var(--bg-0); z-index:99999;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2rem;
  transition: opacity .8s var(--ease-luxury), transform .8s var(--ease-luxury);
}
#loading.out { opacity:0; transform:translateY(-24px); pointer-events:none; }
.ld-logo { animation: ldSpin 12s linear infinite; }
@keyframes ldSpin { to { transform:rotate(360deg); } }
.ld-bar { width:10rem; height:1px; background:var(--border-sub); overflow:hidden; }
.ld-fill { height:100%; background:linear-gradient(90deg,var(--gold-dark),var(--gold),var(--gold-light)); width:0; transition:width .1s linear; }

/* ── Particles Canvas ────────────────────────── */
#particles { position:fixed; inset:0; pointer-events:none; z-index:1; }
#mouse-light { position:fixed; top:0; left:0; width:700px; height:700px; border-radius:50%; pointer-events:none; z-index:2; background:radial-gradient(circle,rgba(212,175,55,.04) 0%,transparent 70%); transform:translate(-50%,-50%); transition:left .5s var(--ease-luxury),top .5s var(--ease-luxury); }

/* ── Navigation ──────────────────────────────── */
#nav {
  position:fixed; top:0; inset-inline:0; z-index:100;
  padding:1.5rem 0;
  transition: padding .5s var(--ease-luxury), background .5s, border-color .5s;
}
#nav.scrolled {
  padding:.9rem 0;
  background: rgba(8,8,7,.9);
  backdrop-filter:blur(28px);
  border-bottom:1px solid var(--border);
}
[data-theme="light"] #nav.scrolled { background:rgba(248,245,237,.92); }
.nav-in { display:flex; align-items:center; justify-content:space-between; }
.nav-logo { display:flex; align-items:center; gap:.75rem; }
.nav-logo-txt .s { display:block; color:var(--gold); font-size:.6rem; letter-spacing:.4em; }
.nav-logo-txt .b { display:block; font-size:1.1rem; letter-spacing:.12em; font-weight:300; }
.nav-ul { display:none; list-style:none; gap:2rem; }
@media(min-width:1024px){ .nav-ul { display:flex; align-items:center; } }
.nav-ul a { color:var(--text-1); font-size:1rem; letter-spacing:.05em; position:relative; transition:color .3s; }
.nav-ul a::after { content:''; position:absolute; bottom:-4px; right:0; width:0; height:1px; background:var(--gold); transition:width .35s var(--ease-luxury); }
.nav-ul a:hover { color:var(--gold); }
.nav-ul a:hover::after { width:100%; }
.nav-cta {
  display:none; padding:.6rem 1.4rem; border-radius:var(--radius-pill);
  font-size:.72rem; letter-spacing:.15em; color:var(--gold);
  border:1px solid var(--border); backdrop-filter:blur(4px);
  transition: all .4s var(--ease-luxury);
}
@media(min-width:1024px){ .nav-cta { display:inline-flex; align-items:center; gap:.4rem; } }
.nav-cta:hover { background:rgba(212,175,55,.08); border-color:var(--gold); box-shadow:var(--shadow-gold); }
.nav-ham { display:flex; background:none; border:none; cursor:pointer; color:var(--text-0); font-size:1.4rem; padding:.5rem; }
@media(min-width:1024px){ .nav-ham { display:none; } }

/* Mobile menu */
#mob-menu {
  position:fixed; inset:0; z-index:99;
  background:rgba(11,11,12,.97); backdrop-filter:blur(28px);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2.5rem;
  opacity:0; pointer-events:none; transition:opacity .4s;
}
[data-theme="light"] #mob-menu { background:rgba(248,245,237,.98); }
#mob-menu.open { opacity:1; pointer-events:all; }
#mob-menu a { font-size:1.8rem; font-weight:300; letter-spacing:.12em; color:var(--text-0); transition:color .3s; }
#mob-menu a:hover { color:var(--gold); }

/* ── Common Components ───────────────────────── */
.btn {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:1rem 2rem; border-radius:var(--radius-pill);
  font-family:var(--font-fa); font-size:.78rem; letter-spacing:.15em;
  cursor:pointer; border:none; position:relative; overflow:hidden;
  transition: transform .3s var(--ease-luxury), box-shadow .3s;
}
.btn:hover { transform:translateY(-2px); }
.btn-gold {
  background:linear-gradient(135deg,var(--gold-dark),var(--gold),var(--gold-light));
  color:#0B0B0C; font-weight:600;
  box-shadow:0 8px 32px rgba(212,175,55,.3);
}
.btn-gold:hover { box-shadow:0 16px 48px rgba(212,175,55,.5); }
.btn-gold .shine {
  position:absolute; inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
  transform:skewX(-12deg) translateX(-150%);
  transition:transform .55s;
}
.btn-gold:hover .shine { transform:skewX(-12deg) translateX(150%); }
.btn-outline {
  background:var(--glass); backdrop-filter:blur(12px);
  color:var(--gold); border:1px solid var(--border);
}
.btn-outline:hover { background:rgba(212,175,55,.08); border-color:var(--gold); box-shadow:0 0 32px rgba(212,175,55,.2); }

.eyebrow { display:block; color:var(--gold); font-size:.65rem; letter-spacing:.55em; margin-bottom:1.1rem; }
.heading { font-size:clamp(2.2rem,6vw,5rem); font-weight:300; line-height:1.12; }
.gold-grad { background:linear-gradient(135deg,var(--gold),var(--gold-light),var(--gold-dark)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.divider { height:1px; background:linear-gradient(90deg,transparent,var(--border),transparent); margin:0 clamp(1.5rem,4vw,3rem); }

/* Scroll reveal */
.reveal { opacity:0; transform:translateY(44px); transition:opacity .9s var(--ease-expo),transform .9s var(--ease-expo); }
.reveal.in { opacity:1; transform:none; }
.reveal-delay-1 { transition-delay:.12s; }
.reveal-delay-2 { transition-delay:.22s; }
.reveal-delay-3 { transition-delay:.34s; }

/* Glass card */
.glass-card {
  background:var(--glass); backdrop-filter:blur(24px);
  border:1px solid var(--border); border-radius:var(--radius);
  transition: border-color .4s, box-shadow .4s, transform .4s;
}
.glass-card:hover { border-color:rgba(212,175,55,.3); box-shadow:var(--shadow-gold); transform:translateY(-4px); }

/* Wave bars */
.wave-bars { display:flex; align-items:flex-end; gap:3px; }
.wbar {
  width:3px; border-radius:2px;
  background:linear-gradient(to top,var(--gold-dark),var(--gold),var(--gold-light));
  transform-origin:bottom;
  animation:wv var(--spd,1.4s) ease-in-out infinite var(--dly,0s);
}
@keyframes wv { 0%,100%{transform:scaleY(1)} 50%{transform:scaleY(2.4)} }

/* Persian pattern */

/* ─────────────────────────────────────────────
   HERO  (Persian RTL · dark luxury · gold accent)
───────────────────────────────────────────── */
#hero {
  min-height:100vh; min-height:100svh; position:relative; overflow:hidden;
  display:flex; align-items:center; padding:6.5rem 0 8rem;
  background: url("/assets/img/hero.avif");
}
.hero-glow {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 58% 56% at 28% 56%, rgba(212,175,55,.14), transparent 70%),
    radial-gradient(ellipse 40% 38% at 82% 14%, rgba(212,175,55,.07), transparent 72%);
  animation:hpulse 8s ease-in-out infinite;
}
@keyframes hpulse { 0%,100%{opacity:.75} 50%{opacity:1} }
#hero::after { /* soft blend into the next section */
  content:''; position:absolute; inset-inline:0; bottom:0; height:30%;
  background:linear-gradient(to top,var(--bg-0),transparent); pointer-events:none; z-index:2;
}
.hero-grid {
  position:relative; z-index:10; width:100%; max-width:1280px; margin:0 auto;
  padding:0 clamp(1.25rem,4vw,3rem);
  display:grid; grid-template-columns:minmax(0,1fr); gap:1.2rem; align-items:center;
}
@media(min-width:960px){ .hero-grid { grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:2rem; } }

.hero-copy { text-align:center; }
@media(min-width:960px){ .hero-copy { text-align:right; } }

.hero-eyebrow { display:none; opacity:0; animation:fup .9s .05s var(--ease-expo) forwards; }
@media(min-width:960px){ .hero-eyebrow { display:flex; align-items:center; gap:1rem; margin-bottom:1.5rem; } }
.hero-eyebrow .hline { width:56px; height:1px; background:linear-gradient(to left,var(--gold),transparent); }
.hero-eyebrow span:last-child { color:var(--gold); font-size:.8rem; letter-spacing:.28em; }

.hero-h1 { margin-bottom:1.3rem; }
.hero-h1 span { display:block; font-weight:800; line-height:1.12; letter-spacing:-.02em; padding-block:.04em; opacity:0; }
.hero-h1 .l1 { font-size:80px; animation:fup 1s .1s var(--ease-expo) forwards; }
.hero-h1 .l2 { font-size:94px; font-weight:700; color:var(--text-0); animation:fup 1s .22s var(--ease-expo) forwards; }

.hero-sub {
  color:var(--text-1); font-size:clamp(.95rem,1.7vw,1.12rem); max-width:30rem;
  margin:0 auto 2rem; font-weight:400; line-height:2;
  opacity:0; animation:fup 1s .38s var(--ease-expo) forwards;
}
@media(min-width:960px){ .hero-sub { margin:0 0 2.2rem; } }

.hero-btns { display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap; opacity:0; animation:fup 1s .5s var(--ease-expo) forwards; }
@media(min-width:960px){ .hero-btns { justify-content:flex-start; } }
.hero-btns .btn { padding:1rem 1.9rem; font-size:.95rem; letter-spacing:0; font-weight:600; }
.btn-ico { font-size:1.05em; line-height:1; }
@media(max-width:560px){
  .hero-btns { flex-direction:column; align-items:center; }
  .hero-btns .btn { width:100%; max-width:320px; justify-content:center; }
}

.hero-art {
  position:relative; width:min(74vw,360px); aspect-ratio:600/640; margin:.4rem auto 0;
  opacity:0; animation:fup 1.2s .3s var(--ease-expo) forwards;
}
@media(min-width:960px){ .hero-art { width:100%; max-width:560px; margin:0 auto; } }
.hero-art::before {
  content:''; position:absolute; inset:8% 2% 12%; border-radius:50%;
  background:radial-gradient(circle,rgba(212,175,55,.36),rgba(212,175,55,.09) 55%,transparent 72%);
  filter:blur(14px);
}
.hero-art img {
  position:relative; display:block; width:100%; height:100%; object-fit:contain;
  filter:drop-shadow(0 34px 44px rgba(0,0,0,.65));
  -webkit-mask-image:radial-gradient(ellipse 74% 72% at 50% 52%,#000 62%,transparent 100%);
          mask-image:radial-gradient(ellipse 74% 72% at 50% 52%,#000 62%,transparent 100%);
  animation:floaty 8s ease-in-out infinite;
}
[data-theme="light"] .hero-art img { filter:drop-shadow(0 28px 30px rgba(80,55,15,.32)); }
@keyframes floaty { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }

.hero-wave {
  position:absolute; inset-inline:0; bottom:1.8rem; z-index:5; display:flex; justify-content:center; padding:0 1rem;
  opacity:0; animation:fup 1s .7s var(--ease-expo) forwards;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);
}
.wave-bars { display:flex; align-items:center; gap:4px; height:42px; max-width:100%; overflow:hidden; }
.wbar {
  width:3px; flex:0 0 3px; border-radius:2px;
  background:linear-gradient(to top,var(--gold-dark),var(--gold-light));
  transform-origin:center; animation:wave2 var(--spd,1.4s) ease-in-out infinite var(--dly,0s);
}
@keyframes wave2 { 0%,100%{transform:scaleY(.38)} 50%{transform:scaleY(1.1)} }
@keyframes fup { from{opacity:0;transform:translateY(34px)} to{opacity:1;transform:none} }

.persian-bg {
  position:absolute; inset:0; opacity:.55; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='88' viewBox='0 0 88 88' fill='none' stroke='%23D4AF37' stroke-opacity='.10' stroke-width='1'%3E%3Cpath d='M44 4l40 40-40 40L4 44z'/%3E%3Cpath d='M44 22l22 22-22 22-22-22z'/%3E%3C/svg%3E");
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 70% 40%,#000,transparent 75%);
          mask-image:radial-gradient(ellipse 70% 60% at 70% 40%,#000,transparent 75%);
}

/* ── Navigation additions ────────────────────── */
.nav-in { gap:.6rem; }
.nav-ham { order:0; flex:0 0 auto; flex-direction:column; gap:5px; width:44px; height:44px; align-items:center; justify-content:center; padding:0; margin-inline-start:-.4rem; }
.nav-ham i { display:block; width:22px; height:2px; background:var(--text-0); border-radius:2px; transition:transform .3s, opacity .3s; }
.nav-ham.open i:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-ham.open i:nth-child(2) { opacity:0; }
.nav-ham.open i:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.nav-logo { flex:1; justify-content:center; }
.nav-logo-txt .s { letter-spacing:.08em; font-size:.62rem; }
.nav-logo-txt .b { letter-spacing:.02em; font-weight:600; }
.nav-actions { display:flex; align-items:center; gap:.5rem; flex:0 0 auto; }
.theme-btn {
  width:40px; height:40px; border-radius:50%; border:1px solid var(--border); background:var(--glass-blur);
  color:var(--gold); display:flex; align-items:center; justify-content:center; cursor:pointer;
  backdrop-filter:blur(10px); transition:transform .3s var(--ease-luxury), border-color .3s;
}
.theme-btn:hover { transform:rotate(18deg); border-color:var(--gold); }
[data-theme="dark"]  .theme-btn .i-moon { display:none; }
[data-theme="light"] .theme-btn .i-sun  { display:none; }
.nav-login { font-size:.82rem; color:var(--text-0); padding:.5rem 1rem; border:1px solid var(--border); border-radius:var(--radius-pill); transition:all .3s; }
.nav-login:hover { border-color:var(--gold); color:var(--gold); }
@media(min-width:1024px){
  .nav-logo { flex:0 0 auto; justify-content:flex-start; }
  .nav-ul { flex:1; justify-content:center; }
}
#mob-menu a { font-weight:600; letter-spacing:0; }

/* ── Misc ────────────────────────────────────── */
.hp { position:absolute !important; left:-9999px; width:1px; height:1px; opacity:0; overflow:hidden; }
.test-stars { color:var(--gold); letter-spacing:.18em; font-size:.8rem; margin-bottom:.5rem; }
.lb-img { overflow:hidden; display:flex; align-items:center; justify-content:center; }
.btn { letter-spacing:0; }
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}
/* ─────────────────────────────────────────────
   ABOUT
───────────────────────────────────────────── */
.about-grid { display:grid; gap:5rem; align-items:start; margin-top:4rem; }
@media(min-width:1024px){ .about-grid { grid-template-columns:1fr 1fr; } }

.portrait-wrap {
  position:relative; border-radius:var(--radius); overflow:hidden;
  aspect-ratio:3/4; background:var(--bg-1);
  border:1px solid var(--border);
}
.portrait-img { width:100%; height:100%; object-fit:cover; }
.portrait-ph {
  width:100%; height:100%; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:1rem;
  background:linear-gradient(180deg,var(--bg-2),var(--bg-0));
  color:rgba(212,175,55,.3); font-size:.75rem; letter-spacing:.3em;
}
.portrait-badge {
  position:absolute; bottom:-1.5rem; left:-1.5rem; padding:1.1rem 1.6rem;
  border-radius:1rem; backdrop-filter:blur(24px); border:1px solid var(--border);
  background:var(--glass-blur); animation:float 4s ease-in-out infinite;
  box-shadow:var(--shadow-heavy);
}
.portrait-badge small { color:var(--gold); font-size:.6rem; letter-spacing:.3em; display:block; margin-bottom:.3rem; }
.portrait-badge strong { font-size:1.8rem; font-weight:300; }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }

.about-story p { color:var(--text-1); font-size:.95rem; line-height:2.1; font-weight:300; margin-bottom:1.4rem; }

.tl-label { color:var(--gold); font-size:.6rem; letter-spacing:.4em; display:block; margin:2.5rem 0 1.4rem; }
.tl-list { position:relative; padding-right:1.5rem; }
.tl-list::before { content:''; position:absolute; right:5px; top:0; bottom:0; width:1px; background:linear-gradient(to bottom,transparent,var(--gold),transparent); }
.tl-item { position:relative; margin-bottom:1.4rem; }
.tl-item::before { content:''; position:absolute; right:-1.5rem; top:.4rem; width:10px; height:10px; border-radius:50%; border:1px solid var(--gold); background:var(--bg-0); box-shadow:0 0 10px rgba(212,175,55,.4); }
.tl-item .yr { color:var(--gold); font-size:.65rem; letter-spacing:.3em; display:block; margin-bottom:.2rem; }
.tl-item p  { color:var(--text-1); font-size:.83rem; line-height:1.75; }

.stats-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; margin-top:5rem; }
@media(min-width:640px){ .stats-grid { grid-template-columns:repeat(4,1fr); } }
.stat-card { padding:2.2rem 1.2rem; text-align:center; }
.stat-num  { font-size:clamp(2rem,4vw,3rem); font-weight:300; display:block; margin-bottom:.4rem; }
.stat-lbl  { color:var(--text-1); font-size:.75rem; letter-spacing:.05em; }

/* ─────────────────────────────────────────────
   GALLERY
───────────────────────────────────────────── */
.gallery-grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  grid-auto-rows:190px; gap:.875rem; margin-top:4rem;
}
@media(min-width:768px){ .gallery-grid { grid-template-columns:repeat(3,1fr); grid-auto-rows:220px; } }
.g-card { position:relative; border-radius:1.2rem; overflow:hidden; cursor:pointer; transition:transform .5s var(--ease-luxury),box-shadow .5s; }
.g-card:hover { transform:translateY(-5px); box-shadow:0 32px 80px rgba(0,0,0,.55); }
.g-card.large { grid-column:span 2; grid-row:span 2; }
.g-card.tall  { grid-row:span 2; }
@media(max-width:767px){ .g-card.large, .g-card.tall { grid-column:span 1; grid-row:span 1; } }
.g-bg   { position:absolute; inset:0; }
.g-shim { position:absolute; inset:0; opacity:0; transition:opacity .4s; }
.g-card:hover .g-shim { opacity:1; }
.g-frame { position:absolute; inset:0; border-radius:1.2rem; border:1px solid transparent; transition:border-color .4s; pointer-events:none; }
.g-card:hover .g-frame { border-color:rgba(212,175,55,.22); }
.g-body { position:absolute; inset:0; padding:1.2rem; display:flex; flex-direction:column; justify-content:space-between; }
.g-type { font-size:.58rem; letter-spacing:.4em; text-transform:uppercase; }
.g-meta h3 { color:#fff; font-weight:300; font-size:1.05rem; margin-bottom:.25rem; }
.g-meta small { color:rgba(255,255,255,.4); font-size:.72rem; }

/* Lightbox */
#lightbox { display:none; position:fixed; inset:0; z-index:500; align-items:center; justify-content:center; padding:1.5rem; }
#lightbox.open { display:flex; }
.lb-scrim { position:absolute; inset:0; background:rgba(0,0,0,.93); backdrop-filter:blur(20px); }
.lb-box { position:relative; max-width:580px; width:100%; border-radius:var(--radius); overflow:hidden; border:1px solid var(--border); background:var(--bg-1); animation:lbIn .4s var(--ease-expo); }
@keyframes lbIn { from{transform:scale(.85);opacity:0} to{transform:scale(1);opacity:1} }
.lb-img { height:260px; display:flex; align-items:center; justify-content:center; }
.lb-body { padding:2rem; }
.lb-yr { color:var(--gold); font-size:.65rem; letter-spacing:.3em; display:block; margin-bottom:.6rem; }
.lb-title { font-size:1.5rem; font-weight:300; margin-bottom:.4rem; }
.lb-sub { color:var(--text-1); font-size:.88rem; }
.lb-close { position:absolute; top:1rem; left:1rem; width:2.5rem; height:2.5rem; border-radius:50%; background:rgba(0,0,0,.45); border:1px solid rgba(255,255,255,.12); color:#fff; cursor:pointer; font-size:1.1rem; display:flex; align-items:center; justify-content:center; transition:border-color .3s; }
.lb-close:hover { border-color:var(--gold); }

/* ─────────────────────────────────────────────
   COURSES
───────────────────────────────────────────── */
.courses-grid { display:grid; gap:1.5rem; margin-top:4rem; }
@media(min-width:768px){ .courses-grid { grid-template-columns:repeat(3,1fr); } }
.course-card { position:relative; border-radius:var(--radius); overflow:hidden; transition:box-shadow .5s,transform .5s; }
.course-card.feat { transform:translateY(-1.2rem); }
@media(max-width:767px){ .course-card.feat { transform:none; } }
.course-card:hover { box-shadow:0 32px 80px rgba(0,0,0,.55),0 0 0 1px rgba(212,175,55,.25); }
.pop-tag { position:absolute; top:0; left:50%; transform:translateX(-50%); background:linear-gradient(90deg,var(--gold-dark),var(--gold),var(--gold-light)); color:#0B0B0C; font-size:.62rem; letter-spacing:.25em; font-weight:600; padding:.32rem 1.1rem; border-radius:0 0 .9rem .9rem; z-index:2; }
.course-inner { position:relative; z-index:1; padding:2.2rem 2rem 2rem; display:flex; flex-direction:column; height:100%; }
.course-icon  { font-size:1.8rem; margin-bottom:1.4rem; }
.c-sub  { color:var(--gold); font-size:.62rem; letter-spacing:.4em; display:block; margin-bottom:.5rem; }
.c-name { font-size:1.35rem; font-weight:300; margin-bottom:.6rem; }
.c-desc { color:var(--text-2); font-size:.82rem; line-height:1.85; margin-bottom:1.6rem; }
.price-row { padding-bottom:1.4rem; margin-bottom:1.4rem; border-bottom:1px solid var(--border); }
.price-row .amt  { font-size:1.8rem; font-weight:300; }
.price-row .per  { color:var(--text-2); font-size:.75rem; margin-right:.35rem; }
.price-row .ctct { font-size:1.2rem; font-weight:300; color:var(--gold); }
.feat-list { list-style:none; margin-bottom:2rem; flex:1; }
.feat-list li { display:flex; align-items:center; gap:.7rem; margin-bottom:.75rem; font-size:.83rem; color:var(--text-1); }
.feat-list .ck { width:16px; height:16px; border-radius:50%; border:1px solid rgba(212,175,55,.3); background:rgba(212,175,55,.09); color:var(--gold); display:flex; align-items:center; justify-content:center; font-size:.55rem; flex-shrink:0; }

/* ─────────────────────────────────────────────
   TESTIMONIALS
───────────────────────────────────────────── */
.test-wrap { overflow:hidden; position:relative; margin-top:4rem; }
.test-wrap::before, .test-wrap::after { content:''; position:absolute; top:0; bottom:0; width:8rem; z-index:2; pointer-events:none; }
.test-wrap::before { right:0; background:linear-gradient(to left,var(--bg-0),transparent); }
.test-wrap::after  { left:0;  background:linear-gradient(to right,var(--bg-0),transparent); }
.test-track { display:flex; margin-bottom:.75rem; will-change:transform; }
.test-card { flex-shrink:0; width:22rem; margin:0 .6rem; padding:2rem; border-radius:var(--radius); border:1px solid var(--border); background:var(--glass); backdrop-filter:blur(16px); transition:border-color .4s; }
.test-card:hover { border-color:rgba(212,175,55,.28); }
.test-qt { font-size:2rem; color:rgba(212,175,55,.3); margin-bottom:1rem; line-height:1; }
.test-txt { color:var(--text-1); font-size:.83rem; line-height:2; font-weight:300; margin-bottom:1.4rem; }
.test-auth { display:flex; align-items:center; gap:.9rem; }
.test-av { width:2.6rem; height:2.6rem; border-radius:50%; border:1px solid var(--border); background:rgba(212,175,55,.07); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:.95rem; flex-shrink:0; }
.test-name { font-size:.83rem; display:block; margin-bottom:.15rem; }
.test-role { color:var(--text-2); font-size:.72rem; }

/* ─────────────────────────────────────────────
   EVENTS
───────────────────────────────────────────── */
.feat-ev {
  border-radius:var(--radius); padding:2.5rem; margin-top:4rem; margin-bottom:1rem;
  border:1px solid var(--border); position:relative; overflow:hidden;
  background:linear-gradient(135deg,rgba(212,175,55,.07),var(--bg-card));
  box-shadow:var(--shadow-gold);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:2rem;
}
.feat-ev-glow { position:absolute; top:0; right:0; width:20rem; height:20rem; background:radial-gradient(circle,rgba(212,175,55,.09),transparent); pointer-events:none; }
.ev-badge { display:inline-block; border:1px solid var(--border); color:var(--gold); font-size:.6rem; letter-spacing:.3em; padding:.28rem .9rem; border-radius:var(--radius-pill); margin-bottom:1rem; }
.ev-title { font-size:clamp(1.3rem,4vw,2.2rem); font-weight:300; margin-bottom:1rem; }
.ev-meta { display:flex; flex-wrap:wrap; gap:1.4rem; }
.ev-meta span { color:var(--text-1); font-size:.82rem; display:flex; align-items:center; gap:.4rem; }
.ev-meta .ico { color:var(--gold); }
.ev-status { font-size:.65rem; letter-spacing:.2em; }

.events-list { display:flex; flex-direction:column; gap:.7rem; }
.ev-row { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; padding:1.1rem 1.4rem; border-radius:.9rem; border:1px solid var(--border-sub); background:var(--bg-card); transition:all .35s; cursor:pointer; }
.ev-row:hover { background:rgba(212,175,55,.04); border-color:var(--border); }
.ev-date-b { text-align:center; min-width:3.2rem; flex-shrink:0; }
.ev-day { color:var(--gold); font-size:1.4rem; font-weight:300; display:block; }
.ev-mon { color:var(--text-2); font-size:.65rem; }
.ev-sep { width:1px; height:2.8rem; background:var(--border); flex-shrink:0; }
@media(max-width:560px){ .ev-sep{display:none} }
.ev-info { flex:1; min-width:0; }
.ev-info h4 { font-size:.9rem; font-weight:300; margin-bottom:.2rem; transition:color .3s; }
.ev-row:hover .ev-info h4 { color:var(--gold-light); }
.ev-info small { color:var(--text-2); font-size:.72rem; }
.ev-right { display:flex; align-items:center; gap:1rem; flex-shrink:0; }

/* ─────────────────────────────────────────────
   FAQ
───────────────────────────────────────────── */
.faq-list { margin-top:4rem; display:flex; flex-direction:column; gap:.65rem; }
.faq-item { border-radius:.9rem; border:1px solid var(--border-sub); background:var(--bg-card); overflow:hidden; transition:border-color .4s,background .4s; }
.faq-item.open { border-color:var(--border); background:rgba(212,175,55,.03); }
.faq-btn { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.4rem 1.6rem; background:none; border:none; cursor:pointer; text-align:right; font-family:var(--font-fa); color:var(--text-1); font-size:.88rem; transition:color .3s; }
.faq-item.open .faq-btn { color:var(--text-0); }
.faq-icon { width:1.9rem; height:1.9rem; border-radius:50%; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:1.1rem; color:var(--text-2); flex-shrink:0; transition:all .3s; }
.faq-item.open .faq-icon { background:rgba(212,175,55,.12); color:var(--gold); }
.faq-ans { max-height:0; overflow:hidden; transition:max-height .45s var(--ease-luxury); }
.faq-item.open .faq-ans { max-height:300px; }
.faq-ans-in { padding:0 1.6rem 1.4rem; border-top:1px solid var(--border-sub); padding-top:1rem; color:var(--text-1); font-size:.83rem; line-height:2; }

/* ─────────────────────────────────────────────
   CONTACT
───────────────────────────────────────────── */
.contact-grid { display:grid; gap:5rem; margin-top:4rem; }
@media(min-width:1024px){ .contact-grid { grid-template-columns:1fr 1fr; } }
.ci-item { display:flex; align-items:flex-start; gap:1rem; margin-bottom:1.6rem; }
.ci-icon { width:2.8rem; height:2.8rem; border-radius:.875rem; border:1px solid var(--border); background:rgba(212,175,55,.05); display:flex; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0; }
.ci-label { color:var(--text-2); font-size:.62rem; letter-spacing:.3em; display:block; margin-bottom:.25rem; }
.ci-val { font-size:.85rem; font-weight:300; }
.socials { display:flex; gap:.75rem; margin-top:2rem; }
.soc-btn { display:flex; flex-direction:column; align-items:center; gap:.4rem; padding:1rem 1.2rem; border-radius:.875rem; border:1px solid var(--border-sub); background:var(--bg-card); text-decoration:none; transition:all .35s; }
.soc-btn:hover { border-color:var(--border); background:rgba(212,175,55,.05); }
.soc-btn .ico { font-size:1.1rem; display:block; }
.soc-btn small { color:var(--text-2); font-size:.6rem; }
.form-field { margin-bottom:1.3rem; }
.form-field label { display:block; color:var(--text-1); font-size:.78rem; margin-bottom:.55rem; }
.form-field input, .form-field textarea {
  width:100%; background:var(--bg-card); border:1px solid var(--border-sub);
  border-radius:.875rem; padding:.9rem 1.1rem; color:var(--text-0);
  font-family:var(--font-fa); font-size:.88rem; outline:none; direction:rtl; resize:none;
  transition:border-color .35s,background .35s;
}
.form-field input:focus, .form-field textarea:focus { border-color:var(--border); background:rgba(212,175,55,.03); }
.form-field input::placeholder, .form-field textarea::placeholder { color:var(--text-2); opacity:.6; }
.form-err { color:#E07070; font-size:.78rem; margin-bottom:.9rem; display:none; }
.form-success { display:none; text-align:center; padding:3rem 2rem; border-radius:var(--radius); border:1px solid var(--border); background:rgba(212,175,55,.03); }
.form-success.show { display:block; }
.form-success .ico { font-size:2.5rem; display:block; margin-bottom:1rem; }
.form-success h3 { font-size:1.3rem; font-weight:300; margin-bottom:.5rem; }
.form-success p { color:var(--text-1); font-size:.85rem; }

/* Map placeholder */
.map-box { height:11rem; border-radius:var(--radius-sm); overflow:hidden; margin-top:2rem; border:1px solid var(--border); position:relative; background:var(--bg-1); display:flex; align-items:center; justify-content:center; }
.map-grid { position:absolute; inset:0; opacity:.08; background-image:linear-gradient(var(--gold) 1px,transparent 1px),linear-gradient(90deg,var(--gold) 1px,transparent 1px); background-size:32px 32px; }
.map-pin-wrap { position:relative; z-index:1; text-align:center; }
.map-pin { width:2.2rem; height:2.2rem; border-radius:50%; background:var(--gold); margin:0 auto .5rem; display:flex; align-items:center; justify-content:center; font-size:.9rem; color:#0B0B0C; box-shadow:0 0 20px rgba(212,175,55,.5); }

/* ─────────────────────────────────────────────
   FOOTER
───────────────────────────────────────────── */
footer { border-top:1px solid var(--border-sub); position:relative; }
footer::before { content:''; position:absolute; top:0; inset-inline:0; height:1px; background:linear-gradient(90deg,transparent,var(--gold),transparent); }
.foot-grid { display:grid; gap:3rem; padding:4rem 0 2rem; grid-template-columns:1fr 1fr; }
@media(min-width:768px){ .foot-grid { grid-template-columns:2fr 1fr 1fr 1fr; } }
.foot-brand p { color:var(--text-2); font-size:.82rem; line-height:1.95; margin-top:1.1rem; max-width:17rem; }
.foot-col h4 { color:var(--gold); font-size:.6rem; letter-spacing:.4em; margin-bottom:1.2rem; }
.foot-col ul { list-style:none; }
.foot-col li { margin-bottom:.7rem; }
.foot-col a { color:var(--text-2); font-size:.82rem; transition:color .3s; }
.foot-col a:hover { color:var(--text-1); }
.foot-btm { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; padding:1.5rem 0; border-top:1px solid var(--border-sub); }
.foot-btm p, .foot-btm span { color:var(--text-2); font-size:.72rem; }
.foot-btm .diamond { color:var(--gold); }

/* Enroll modal */
#enroll-modal { display:none; position:fixed; inset:0; z-index:500; align-items:center; justify-content:center; padding:1.5rem; }
#enroll-modal.open { display:flex; }
.em-scrim { position:absolute; inset:0; background:rgba(0,0,0,.9); backdrop-filter:blur(20px); }
.em-box { position:relative; max-width:480px; width:100%; border-radius:var(--radius); overflow:hidden; border:1px solid var(--border); background:var(--bg-1); padding:2.5rem; animation:lbIn .4s var(--ease-expo); }
.em-close { position:absolute; top:1rem; left:1rem; width:2.4rem; height:2.4rem; border-radius:50%; background:var(--bg-card); border:1px solid var(--border-sub); color:var(--text-0); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:border-color .3s; }
.em-close:hover { border-color:var(--gold); }

/* ─────────────────────────────────────────────
   RESPONSIVE — Mobile First Fixes
   max-width: 768px  (phones)
   max-width: 480px  (small phones)
───────────────────────────────────────────── */

@media (max-width: 768px) {

  /* ── Nav ── */
  .nav-ham { display:flex; }
  .nav-ul, .nav-cta { display:none !important; }


  /* ── About ── */
  .about-grid { gap:3rem; }
  .portrait-badge {
    bottom:-.75rem;
    left:-.75rem;
    padding:.8rem 1.1rem;
  }
  .portrait-badge strong { font-size:1.4rem; }
  .stats-grid { gap:.75rem; margin-top:3rem; }
  .stat-card { padding:1.4rem .8rem; }
  .tl-list { padding-right:1.2rem; }

  /* ── Gallery ── */
  .gallery-grid {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 150px;
    gap:.6rem;
  }
  .g-card.large, .g-card.tall {
    grid-column: span 1;
    grid-row: span 1;
  }

  /* ── Courses ── */
  .courses-grid { gap:1rem; }
  .course-card.feat { transform:none; }
  .course-inner { padding:1.6rem 1.4rem; }

  /* ── Testimonials ── */
  .test-card { width:80vw; max-width:300px; }

  /* ── Events ── */
  .feat-ev { padding:1.4rem; flex-direction:column; }
  .feat-ev .btn { width:100%; justify-content:center; }
  .ev-row { flex-wrap:wrap; gap:.6rem; padding:1rem; }
  .ev-sep { display:none; }

  /* ── FAQ ── */
  .faq-btn { padding:1.1rem 1.2rem; font-size:.84rem; }
  .faq-ans-in { padding:0 1.2rem 1.2rem; padding-top:.8rem; }

  /* ── Contact ── */
  .contact-grid { gap:2.5rem; }
  .socials { flex-wrap:wrap; }

  /* ── Footer ── */
  .foot-grid {
    grid-template-columns: 1fr 1fr;
    gap:2rem;
    padding:2.5rem 0 1.5rem;
  }
  .foot-brand { grid-column:span 2; }


  /* ── Modals ── */
  .em-box { padding:1.8rem 1.3rem; }
  .lb-box .lb-img { height:180px; }
  .lb-body { padding:1.3rem; }

}

@media (max-width: 480px) {

  /* ── General spacing ── */
  .wrap { padding:0 1rem; }
  .section { padding:3.5rem 0; }


  /* ── Gallery ── */
  .gallery-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 200px;
    gap:.6rem;
  }

  /* ── About ── */
  .portrait-badge { display:none; }

  /* ── Courses ── */
  .course-inner { padding:1.4rem 1.2rem; }
  .pop-tag { font-size:.56rem; padding:.25rem .8rem; }

  /* ── Events ── */
  .ev-date-b { min-width:2.5rem; }
  .ev-badge { font-size:.55rem; padding:.18rem .6rem; }
  .feat-ev h3, .ev-title { font-size:1.1rem; }

  /* ── Footer ── */
  .foot-grid { grid-template-columns:1fr; gap:1.8rem; }
  .foot-brand { grid-column:span 1; }
  .foot-btm { flex-direction:column; align-items:flex-start; gap:.5rem; }

  /* ── Modals ── */
  .em-box, .lb-box { border-radius:var(--radius-sm); }

}
