/* =========================================================
   هوشمند با هوش مصنوعی — Future Bridge × Simurgh Network
   Design tokens
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700;800;900&display=swap');

:root{
  /* -- color: named tokens, drawn from both marks -- */
  --void:        #161B26;   /* base canvas   */
  --void-2:      #1E2530;   /* panel surface */
  --band:        rgba(255,255,255,.028); /* subtle section-band tint over void */
  --field-bg:    #232A38;   /* form field surface */
  --field-border:rgba(243,239,230,.30);
  --violet:      #6B3FA0;   /* Simurgh primary   */
  --violet-deep: #2E1A47;   /* Simurgh shadow    */
  --azure:       #2E6FA8;   /* Future Bridge blue  */
  --verdant:     #2F9E6E;   /* Future Bridge green */
  --gold:        #C9A24B;   /* the thread that ties the two marks */
  --parchment:   #F3EFE6;   /* primary text on dark  */
  --parchment-60:rgba(243,239,230,.72);
  --parchment-30:rgba(243,239,230,.14);
  --hairline:    rgba(243,239,230,.20);

  --font-display: 'Vazirmatn', 'Tahoma', sans-serif;
  --font-body:    'Vazirmatn', 'Tahoma', sans-serif;

  --wrap: 1080px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

body{
  background:var(--void);
  color:var(--parchment);
  font-family:var(--font-body);
  direction:rtl;
  text-align:right;
  line-height:1.8;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
button, input, select, textarea{ font-family:inherit; color:inherit; }

.wrap{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 28px;
}
.wrap--narrow{ max-width:760px; }

/* =========================================================
   Status check page (status.html)
   ========================================================= */
.status-search-section{ padding:0 0 110px; }

.status-search-card{
  position:relative; overflow:hidden;
  border:1px solid var(--hairline);
  border-radius:20px;
  padding:46px 40px;
  margin-bottom:36px;
  margin-top:36px;
  text-align:center;
  background:linear-gradient(165deg, rgba(201,162,75,.08), rgba(255,255,255,.012) 55%);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.55);
}
.status-search-card::before{
  content:"";
  position:absolute; top:-150px; left:50%; transform:translateX(-50%);
  width:520px; height:300px;
  background:radial-gradient(closest-side, rgba(201,162,75,.2), transparent 72%);
  pointer-events:none;
}
.status-search-badge{
  position:relative; z-index:1;
  width:58px; height:58px; border-radius:50%;
  border:1px solid rgba(201,162,75,.4);
  background:rgba(201,162,75,.12);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 22px;
}
.status-search-badge svg{ width:24px; height:24px; color:var(--gold); }

.status-search-form{ position:relative; z-index:1; max-width:520px; margin:0 auto; }
.status-search-label{
  display:block; margin-bottom:14px; font-size:14.5px; color:var(--parchment-60);
}
.status-search-row{
  display:flex; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap;
}
.status-search-row input{
  flex:1; min-width:220px;
  background:var(--field-bg);
  border:1px solid var(--field-border);
  border-radius:10px;
  padding:16px 18px;
  font-size:16px;
  color:var(--parchment);
  text-align:center;
  transition:border-color .25s var(--ease), background .25s var(--ease), box-shadow .25s var(--ease);
}
.status-search-row input::placeholder{ color:var(--parchment-60); }
.status-search-row input:hover{ border-color:rgba(243,239,230,.45); }
.status-search-row input:focus{
  outline:none;
  background:var(--void-2);
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(201,162,75,.18);
}
.status-search-row .btn{ flex:none; }

@media (max-width:640px){
  .status-search-card{ padding:36px 24px; }
}

.status-loading{
  padding:60px 20px; text-align:center; color:var(--parchment-60); font-size:.92rem;
  display:flex; align-items:center; justify-content:center; gap:12px;
}
.status-spinner{
  width:20px; height:20px; border-radius:50%; flex:none;
  border:2px solid rgba(243,239,230,.2); border-top-color:var(--gold);
  animation:statusSpin .8s linear infinite;
}
@keyframes statusSpin{ to{ transform:rotate(360deg); } }

/* -- generic message card: pending / rejected / not-found -- */
.status-message{
  border:1px solid var(--hairline);
  border-radius:16px;
  padding:44px 34px;
  text-align:center;
}
.status-message h2{ font-size:1.25rem; margin-bottom:14px; color:var(--parchment); }
.status-message p{ color:var(--parchment-60); line-height:1.9; margin-bottom:12px; }
.status-message p:last-child{ margin-bottom:0; }
.status-message p a{ color:var(--gold); text-decoration:underline; text-underline-offset:3px; }
.status-message .status-letter-info{ text-align:right; }

.status-message--pending{ border-color:rgba(201,162,75,.35); background:rgba(201,162,75,.05); }
.status-message--rejected{ border-color:rgba(213,124,115,.32); background:rgba(213,124,115,.05); }

.status-icon{
  width:52px; height:52px; border-radius:50%; flex:none;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 20px;
  font-size:20px;
}
.status-icon--pending{ background:rgba(201,162,75,.16); color:var(--gold); }
.status-icon--rejected{ background:rgba(213,124,115,.16); color:#D57C73; }
.status-icon--notfound{ background:rgba(243,239,230,.08); color:var(--parchment-60); }

/* -- acceptance letter -- */
.status-letter{
  position:relative; overflow:hidden;
  border:1px solid rgba(201,162,75,.4);
  border-radius:18px;
  background:linear-gradient(165deg, rgba(201,162,75,.07), rgba(255,255,255,.012) 55%);
  padding:46px 42px;
}
.status-letter::before{
  content:"";
  position:absolute; top:-170px; left:50%; transform:translateX(-50%);
  width:640px; height:390px;
  background:radial-gradient(closest-side, rgba(201,162,75,.2), transparent 72%);
  pointer-events:none;
}
.status-letter-inner{ position:relative; z-index:1; }
.status-letter-badge{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(201,162,75,.16);
  color:var(--gold);
  border:1px solid rgba(201,162,75,.45);
  border-radius:99px;
  padding:7px 16px;
  font-size:13px; font-weight:700;
  margin-bottom:24px;
}
.status-letter h2{ font-size:1.4rem; margin-bottom:22px; color:var(--parchment); }
.status-letter p{ color:var(--parchment-60); line-height:2; margin-bottom:18px; font-size:.98rem; }

.status-letter-info{
  border:1px solid var(--hairline);
  border-radius:12px;
  padding:22px 24px;
  margin:26px 0;
  display:grid; gap:12px;
}
.status-letter-info-row{ display:flex; gap:10px; align-items:baseline; font-size:.94rem; color:var(--parchment); }
.status-letter-info-row b{ color:var(--gold); font-weight:600; }

.status-letter-links{ display:flex; flex-wrap:wrap; gap:12px; margin:26px 0; }
.status-letter-links a{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--gold); color:var(--void);
  border-radius:8px; padding:12px 22px;
  font-size:.92rem; font-weight:700;
  transition:opacity .2s var(--ease);
}
.status-letter-links a:hover{ opacity:.88; }
.status-letter-links a.secondary{
  background:transparent; color:var(--parchment); border:1px solid var(--field-border);
}

.status-letter-signature{
  margin-top:30px; padding-top:22px; border-top:1px solid var(--hairline);
  color:var(--parchment-60); font-size:.94rem; line-height:1.9;
}
.status-letter-print{ margin-top:28px; }

@media print{
  .site-header, .deadline-strip, footer, .status-search-form, .status-letter-print{ display:none !important; }
  .status-letter::before{ display:none; }
  body{ background:#fff; color:#000; }
}

@media (max-width:640px){
  .status-letter{ padding:32px 24px; }
  .status-message{ padding:34px 22px; }
  .status-search-row .btn{ width:100%; justify-content:center; }
}

/* subtle grain / vignette so the void isn't flat */
body::before{
  content:"";
  position:fixed; inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse 900px 500px at 85% -10%, rgba(107,63,160,.26), transparent 60%),
    radial-gradient(ellipse 700px 500px at 10% 10%, rgba(46,111,168,.18), transparent 55%);
}

/* =========================================================
   Header
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(11,14,20,.82);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--hairline);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 28px;
  max-width:var(--wrap); margin:0 auto;
}
.brand-lockup{
  display:flex; align-items:center; gap:14px;
}
.brand-lockup img{ height:40px; width:auto; }
.brand-divider{
  width:1px; height:26px;
  background:linear-gradient(var(--gold), transparent);
  opacity:.6;
}
.brand-name{
  font-size:13px; letter-spacing:.02em; color:var(--parchment-60);
}

nav.main-nav ul{
  display:flex; gap:34px; align-items:center;
}
nav.main-nav a{
  font-size:15px; color:var(--parchment-60);
  position:relative; padding:6px 0;
  transition:color .25s var(--ease);
}
nav.main-nav a::after{
  content:""; position:absolute; right:0; bottom:0; height:1px; width:0;
  background:var(--gold); transition:width .3s var(--ease);
}
nav.main-nav a:hover{ color:var(--parchment); }
nav.main-nav a:hover::after{ width:100%; }
nav.main-nav a.cta-link{
  color:var(--void); background:var(--parchment);
  padding:9px 20px; border-radius:2px; font-size:14px;
}
nav.main-nav a.cta-link::after{ display:none; }
nav.main-nav a.cta-link:hover{ background:var(--gold); }

.nav-toggle{
  display:none;
  background:none; border:1px solid var(--hairline);
  color:var(--parchment); font-size:14px;
  padding:8px 16px; border-radius:2px;
  cursor:pointer;
}

@media (max-width: 780px){
  .nav-toggle{ display:block; }
  nav.main-nav{
    position:fixed; inset:64px 0 auto 0;
    background:var(--void-2);
    border-bottom:1px solid var(--hairline);
    transform:translateY(-8px);
    opacity:0; pointer-events:none;
    transition:opacity .25s var(--ease), transform .25s var(--ease);
  }
  nav.main-nav.open{
    opacity:1; pointer-events:auto; transform:translateY(0);
  }
  nav.main-nav ul{
    flex-direction:column; align-items:stretch; gap:0;
    padding:8px 28px 20px;
  }
  nav.main-nav li{ border-bottom:1px solid var(--hairline); }
  nav.main-nav a{ display:block; padding:16px 0; }
  nav.main-nav a.cta-link{ margin:16px 0 4px; text-align:center; }
}

/* =========================================================
   Deadline strip — registration cutoff banner
   ========================================================= */
.deadline-strip{
  position:relative;
  overflow:hidden;
  background:linear-gradient(115deg, #E4C583 0%, var(--gold) 42%, #A9812E 100%);
  color:var(--void);
  text-align:center;
  padding:12px 28px;
  box-shadow:0 2px 14px rgba(0,0,0,.22);
}
.deadline-strip::before{
  /* یک برق ملایم که یک‌بار، هنگام لود صفحه، از روی نوار رد می‌شود */
  content:'';
  position:absolute; inset-block:0; inset-inline-start:-40%;
  width:35%;
  background:linear-gradient(115deg, transparent, rgba(255,255,255,.35), transparent);
  transform:skewX(-18deg);
  animation:deadlineSheen 3.2s var(--ease) .4s 1;
  pointer-events:none;
}
@keyframes deadlineSheen{
  from{ inset-inline-start:-40%; }
  to{ inset-inline-start:130%; }
}
.deadline-strip-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; justify-content:center;
  gap:12px; flex-wrap:wrap;
  max-width:var(--wrap); margin:0 auto;
}
.deadline-strip-icon{
  width:17px; height:17px; flex:none;
  color:rgba(22,27,38,.72);
}
.deadline-strip-label{
  font-size:13px; font-weight:700; letter-spacing:.02em;
  color:rgba(22,27,38,.78);
}
.deadline-strip-date{
  font-family:var(--font-display);
  font-size:16px; font-weight:800; letter-spacing:.03em;
  font-variant-numeric:tabular-nums;
  color:var(--gold);
  background:var(--void);
  border:1px solid rgba(0,0,0,.25);
  border-radius:99px;
  padding:6px 18px;
  box-shadow:0 0 0 1px rgba(243,239,230,.05) inset, 0 4px 14px -4px rgba(0,0,0,.5);
  animation:deadlinePulse 2.4s ease-in-out infinite;
}
@keyframes deadlinePulse{
  0%, 100%{ box-shadow:0 0 0 1px rgba(243,239,230,.05) inset, 0 4px 14px -4px rgba(0,0,0,.5), 0 0 0 0 rgba(201,162,75,.35); }
  50%{ box-shadow:0 0 0 1px rgba(243,239,230,.05) inset, 0 4px 14px -4px rgba(0,0,0,.5), 0 0 0 5px rgba(201,162,75,0); }
}
.deadline-strip--closed{
  background:linear-gradient(115deg, var(--void-2) 0%, var(--void) 100%);
  color:var(--parchment-60);
  box-shadow:0 2px 14px rgba(0,0,0,.35);
}
.deadline-strip--closed::before{ display:none; }
.deadline-strip--closed .deadline-strip-icon{ color:var(--parchment-60); }
.deadline-strip--closed .deadline-strip-label{ color:var(--parchment-60); }
.deadline-strip--closed .deadline-strip-date{
  display:none;
}
.deadline-strip-cta{
  display:inline-flex; align-items:center; gap:4px;
  color:var(--gold); font-weight:800;
  background:rgba(201,162,75,.14);
  border:1px solid rgba(201,162,75,.4);
  border-radius:99px;
  padding:4px 14px;
  margin-inline-start:6px;
  transition:background .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.deadline-strip-cta:hover{
  background:rgba(201,162,75,.24);
  border-color:var(--gold);
  transform:translateY(-1px);
}
@media (max-width:480px){
  .deadline-strip{ padding:10px 18px; }
  .deadline-strip-inner{ gap:8px; }
  .deadline-strip-icon{ width:15px; height:15px; }
  .deadline-strip-label{ font-size:11.5px; }
  .deadline-strip-date{ font-size:14px; padding:5px 14px; }
  .deadline-strip-cta{ padding:3px 11px; font-size:11px; }
}

/* =========================================================
   Hero
   ========================================================= */
.hero{
  position:relative;
  padding:96px 0 70px;
  overflow:hidden;
}
.hero .wrap{ position:relative; z-index:2; }

.hero-wing{
  position:absolute;
  top:-40px; left:50%;
  transform:translateX(-50%);
  width:min(1100px, 160vw);
  z-index:1;
  opacity:.65;
  pointer-events:none;
}

.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:13px; letter-spacing:.03em; color:var(--gold);
  margin-bottom:26px;
}
.eyebrow::before{
  content:""; width:22px; height:1px; background:var(--gold);
}

.hero h1{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(2.4rem, 6vw, 4.6rem);
  line-height:1.18;
  max-width:16ch;
  background:linear-gradient(95deg, var(--parchment) 30%, #cdb9e8 70%, var(--gold) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

.hero-sub{
  margin-top:26px;
  font-size:clamp(1rem, 1.6vw, 1.15rem);
  color:var(--parchment-60);
  max-width:56ch;
}

.hero-actions{
  margin-top:40px;
  display:flex; align-items:center; gap:22px; flex-wrap:wrap;
}

.btn{
  display:inline-flex; align-items:center; gap:10px;
  background:var(--parchment); color:var(--void);
  padding:15px 30px; border-radius:2px;
  font-size:15px; font-weight:600;
  border:1px solid var(--parchment);
  cursor:pointer;
  transition:background .25s var(--ease), transform .25s var(--ease), color .25s var(--ease);
}
.btn::after{
  content:"←";
  transform:translateX(0);
  transition:transform .25s var(--ease);
  font-family:Tahoma, sans-serif;
}
.btn:hover{ background:var(--gold); border-color:var(--gold); }
.btn:hover::after{ transform:translateX(-4px); }
.btn:active{ transform:scale(.98); }

.btn-ghost{
  background:transparent; color:var(--parchment);
  border:1px solid var(--hairline);
}
.btn-ghost:hover{ background:transparent; border-color:var(--gold); color:var(--gold); }
.btn-ghost::after{ display:none; }

.hero-note{ font-size:14px; color:var(--parchment-60); margin-top:18px; }

.cert-badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:20px;
  padding:11px 20px;
  border:1px solid var(--gold);
  border-radius:999px;
  background:rgba(201,162,75,.10);
  color:var(--gold);
  font-size:14px;
}
.cert-badge svg{ width:19px; height:19px; flex-shrink:0; }
.cert-badge strong{ color:var(--gold); font-weight:800; }

.cert-highlight{ color:var(--gold) !important; font-weight:700; }

/* =========================================================
   Program / stats — printed timetable feel
   ========================================================= */
.program{
  border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
  background:var(--band);
  position:relative; z-index:2;
}
.program-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
}
.program-item{
  padding:34px 26px;
  border-inline-start:1px solid var(--hairline);
  text-align:center;
  transition:background .25s var(--ease);
}
.program-item:hover{ background:rgba(255,255,255,.03); }
.program-item:first-child{ border-inline-start:none; }
.program-num{
  display:block;
  font-family:var(--font-display);
  font-weight:800;
  font-size:clamp(1.5rem, 2.6vw, 2rem);
  color:var(--parchment);
  margin-bottom:8px;
}
.program-label{
  font-size:13px; color:var(--parchment-60); letter-spacing:.01em;
}
@media (max-width: 720px){
  .program-grid{ grid-template-columns:repeat(2, 1fr); }
  .program-item:nth-child(3){ border-inline-start:none; }
}

/* =========================================================
   Section shell
   ========================================================= */
.section{
  padding:100px 0;
  position:relative; z-index:2;
}
.section-head{
  display:flex; align-items:baseline; justify-content:space-between; gap:20px;
  margin-bottom:52px;
  border-bottom:1px solid var(--hairline);
  padding-bottom:22px;
}
.section-head h2{
  font-family:var(--font-display);
  font-weight:800;
  font-size:clamp(1.7rem, 3vw, 2.3rem);
}
.section-tag{
  font-size:13px; color:var(--violet); letter-spacing:.02em;
}
.lede{
  color:var(--parchment-60);
  max-width:64ch;
  font-size:1.02rem;
  margin-bottom:44px;
}

/* About block */
.about-grid{
  display:grid;
  grid-template-columns:1.3fr .9fr;
  gap:60px;
  align-items:start;
}
.about-grid p{ color:var(--parchment-60); margin-bottom:18px; font-size:1.02rem; }
.about-grid p strong{ color:var(--parchment); font-weight:600; }

.audience-list{
  border:1px solid var(--hairline);
  border-radius:12px;
  overflow:hidden;
  background:var(--band);
}
.audience-list li{
  padding:18px 22px;
  border-bottom:1px solid var(--hairline);
  display:flex; justify-content:space-between; gap:14px;
  color:var(--parchment-60); font-size:.98rem;
}
.audience-list li:last-child{ border-bottom:none; }
.audience-list li span:first-child{ color:var(--parchment); }

@media (max-width: 860px){
  .about-grid{ grid-template-columns:1fr; }
}

/* =========================================================
   Speakers — council / program-of-a-manuscript listing
   ========================================================= */
.section-tint{
  background:var(--band);
  border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
}
.speaker-list{ border-top:1px solid var(--hairline); }
.speaker-row{
  display:grid;
  grid-template-columns:64px 1fr auto;
  align-items:center;
  gap:24px;
  padding:28px 18px;
  margin:0 -18px;
  border-radius:10px;
  border-bottom:1px solid var(--hairline);
  transition:background .6s cubic-bezier(.16,1,.3,1), padding-inline-start .6s cubic-bezier(.16,1,.3,1);
}
.speaker-row:hover{ padding-inline-start:28px; background:rgba(255,255,255,.035); }
.speaker-mark{
  width:56px; height:56px;
  border:1px solid var(--hairline);
  background:rgba(201,162,75,.08);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:1.3rem;
  color:var(--gold);
  transition:transform .6s cubic-bezier(.16,1,.3,1);
}
.speaker-photo{
  width:56px; height:56px;
  border:1px solid var(--hairline);
  border-radius:50%;
  object-fit:cover;
  object-position:center top;
  transition:transform .6s cubic-bezier(.16,1,.3,1);
}
.speaker-row:hover .speaker-mark,
.speaker-row:hover .speaker-photo{ transform:scale(1.06); }
.speaker-name{
  font-family:var(--font-display); font-weight:700; font-size:1.15rem;
  margin-bottom:6px;
}
.speaker-role{ color:var(--parchment-60); font-size:.95rem; }
.speaker-index{
  font-size:13px; color:var(--parchment-60);
  font-variant-numeric:tabular-nums;
}

/* =========================================================
   CTA band
   ========================================================= */
.cta-band{
  padding:90px 0;
  position:relative; z-index:2;
}
.cta-card{
  text-align:center;
  border:1px solid var(--hairline);
  border-radius:18px;
  padding:clamp(48px, 7vw, 76px) 32px;
  background:
    radial-gradient(ellipse 500px 260px at 15% 0%, rgba(107,63,160,.16), transparent 60%),
    radial-gradient(ellipse 500px 260px at 85% 100%, rgba(201,162,75,.12), transparent 60%),
    var(--band);
}
.cta-band h2{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(1.7rem, 3.4vw, 2.5rem);
  max-width:22ch; margin:0 auto 20px;
}
.cta-band p{ color:var(--parchment-60); margin-bottom:36px; }

/* =========================================================
   Footer
   ========================================================= */
footer{
  border-top:1px solid var(--hairline);
  padding:54px 0 34px;
  position:relative; z-index:2;
}
.footer-top{
  display:flex; justify-content:space-between; align-items:flex-start; gap:40px;
  flex-wrap:wrap;
  margin-bottom:40px;
}
.footer-brands{ display:flex; align-items:center; gap:18px; }
.footer-brands img{ height:34px; opacity:.9; }
.footer-orgs{ font-size:13.5px; color:var(--parchment-60); line-height:1.9; }
.footer-links{ display:flex; gap:26px; font-size:14px; }
.footer-links a{ color:var(--parchment-60); transition:color .2s; }
.footer-links a:hover{ color:var(--gold); }

.footer-contact{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
  border-top:1px solid var(--hairline);
  padding-top:32px;
  margin-bottom:32px;
}
.footer-contact-item{ display:flex; flex-direction:column; gap:8px; }
.footer-contact-item h4{
  font-family:var(--font-display); font-weight:700; font-size:14px;
  color:var(--parchment); margin-bottom:4px;
}
.footer-contact-item a,
.footer-contact-item span{
  font-size:13.5px; color:var(--parchment-60);
}
.footer-contact-item a{ transition:color .2s; }
.footer-contact-item a:hover{ color:var(--gold); }
@media (max-width: 640px){
  .footer-contact{ grid-template-columns:1fr; gap:24px; }
}
.footer-bottom{
  border-top:1px solid var(--hairline);
  padding-top:22px;
  font-size:12.5px; color:var(--parchment-60);
  position:relative;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}
.footer-credit{
  position:absolute;
  left:50%; top:50%;
  transform:translate(-50%, -50%);
  white-space:nowrap;
}
.footer-credit a{ color:var(--parchment-60); transition:color .2s; }

/* =========================================================
   Speaker application page — distinct violet (Simurgh) accent
   ========================================================= */
form#speaker-form{ max-width:720px; }

.speaker-badge{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(107,63,160,.16);
  color:#C9B6E8;
  border:1px solid rgba(107,63,160,.45);
  border-radius:99px;
  padding:7px 16px;
  font-size:13px; font-weight:600;
  margin-bottom:22px;
  box-shadow:0 8px 24px -14px rgba(107,63,160,.7);
}
.speaker-badge::before{ content:"★"; color:var(--violet); font-size:11px; }

/* -- page head: soft violet glow behind the title -- */
.page-head--speaker{ position:relative; overflow:hidden; }
.page-head--speaker::before{
  content:"";
  position:absolute; top:-200px; left:50%;
  width:760px; height:460px;
  transform:translateX(-50%);
  background:radial-gradient(closest-side, rgba(107,63,160,.26), transparent 72%);
  pointer-events:none; z-index:0;
}
.page-head--speaker .wrap{ position:relative; z-index:1; }
.page-head--speaker h1{
  background:linear-gradient(95deg, var(--parchment) 40%, #cdb2ec 85%, var(--violet) 120%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.notice--violet{
  border-inline-start-color:var(--violet);
  background:rgba(107,63,160,.08);
  border-start-end-radius:10px;
  border-end-end-radius:10px;
}
.notice--violet .notice-icon{ color:var(--violet); }

/* -- form groups rendered as soft elevated cards, each a clear "step" -- */
#speaker-form .form-group{
  margin-bottom:26px;
  padding:34px 32px 32px;
  border:1px solid var(--hairline);
  border-radius:16px;
  background:linear-gradient(165deg, rgba(107,63,160,.06), rgba(255,255,255,.012) 55%);
  transition:border-color .3s var(--ease), transform .3s var(--ease);
}
#speaker-form .form-group:hover{ border-color:rgba(107,63,160,.32); }
#speaker-form .form-group + .form-group{
  border-top:1px solid var(--hairline);
  padding-top:34px;
}
#speaker-form .form-group-head{ align-items:center; margin-bottom:26px; }
#speaker-form .form-group-num{
  display:flex; align-items:center; justify-content:center;
  width:32px; height:32px; flex:none;
  border-radius:50%;
  border:1px solid rgba(107,63,160,.5);
  background:rgba(107,63,160,.14);
  font-size:12.5px;
}
#speaker-form .form-group-num{ color:var(--violet); }
#speaker-form .field label .req{ color:var(--violet); }
#speaker-form .field input:hover,
#speaker-form .field select:hover,
#speaker-form .field textarea:hover{ border-color:rgba(107,63,160,.5); }
#speaker-form .field input:focus,
#speaker-form .field select:focus,
#speaker-form .field textarea:focus{
  border-color:var(--violet);
  box-shadow:0 0 0 3px rgba(107,63,160,.2);
}
#speaker-form .field-check{ transition:border-color .25s var(--ease), background .25s var(--ease); }
#speaker-form .field-check:hover{ border-color:rgba(107,63,160,.4); }
#speaker-form .field-check input[type="checkbox"]:checked{
  border-color:var(--violet); background:var(--violet);
}
#speaker-form .submit-row{ margin-top:22px; }
#speaker-form .submit-row .btn{
  background:var(--violet); border-color:var(--violet);
  box-shadow:0 14px 32px -14px rgba(107,63,160,.7);
}
#speaker-form .submit-row .btn:hover{
  opacity:.94;
  transform:translateY(-2px);
  box-shadow:0 18px 38px -12px rgba(107,63,160,.75);
}

#speakerConfirmPanel{
  border-radius:16px;
  background:linear-gradient(165deg, rgba(107,63,160,.07), rgba(255,255,255,.012) 55%);
}
#speakerConfirmPanel .mark{
  border-color:var(--violet); color:var(--violet);
  background:rgba(107,63,160,.14);
}

/* -- upload zones (photo / CV) -- */
.upload-zone{
  border:1.5px dashed var(--field-border);
  border-radius:12px;
  padding:26px 20px;
  text-align:center;
  cursor:pointer;
  transition:border-color .25s var(--ease), background .25s var(--ease);
}
.upload-zone:hover,
.upload-zone.dragover{
  border-color:var(--violet);
  background:rgba(107,63,160,.07);
}
.upload-zone-icon{ font-size:1.7rem; margin-bottom:10px; }
.upload-zone-icon--logo{ margin-bottom:14px; }
.upload-zone-logo{
  height:44px; width:auto; max-width:120px;
  object-fit:contain; display:block; margin:0 auto;
  opacity:.92;
}
.upload-zone-empty p{ font-weight:600; margin-bottom:4px; color:var(--parchment); }
.upload-zone-hint{ font-size:12.5px; color:var(--parchment-60); }
.upload-zone-preview{ display:flex; align-items:center; gap:16px; text-align:right; }
.upload-zone-preview img{
  width:60px; height:60px; border-radius:50%; object-fit:cover;
  border:1px solid var(--field-border); flex:none;
}
.upload-zone-file-icon{
  width:60px; height:60px; border-radius:10px; flex:none;
  background:rgba(107,63,160,.16); color:#C9B6E8;
  display:flex; align-items:center; justify-content:center; font-size:1.5rem;
}
.upload-zone-meta{ flex:1; min-width:0; text-align:right; }
.upload-zone-meta-name{
  font-weight:600; color:var(--parchment);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:block;
}
.upload-zone-meta-size{ font-size:12.5px; color:var(--parchment-60); }
.upload-zone-remove{
  flex:none;
  background:transparent; border:1px solid var(--field-border); border-radius:8px;
  padding:7px 16px; color:var(--parchment-60); font-size:12.5px; cursor:pointer;
  transition:border-color .2s, color .2s;
}
.upload-zone-remove:hover{ border-color:#D57C73; color:#D57C73; }
.field-upload.invalid .upload-zone{ border-color:#D57C73; background:rgba(192,85,75,.06); }
.upload-zone-progress{
  font-size:12.5px; color:var(--parchment-60); margin-top:10px;
}
@media (max-width:640px){
  #speaker-form .form-group{ padding:26px 22px 24px; }
}
.footer-credit a:hover{ color:var(--gold); }
@media (max-width: 640px){
  .footer-bottom{
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  .footer-credit{
    position:static;
    transform:none;
  }
}

/* =========================================================
   Reveal on scroll
   ========================================================= */
.reveal{
  opacity:0; transform:translateY(18px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.reveal.is-visible{ opacity:1; transform:none; }

/* =========================================================
   Registration page
   ========================================================= */
.page-head{
  padding:74px 0 40px;
  border-bottom:1px solid var(--hairline);
  position:relative; z-index:2;
}
.page-head .eyebrow{ margin-bottom:18px; }
.page-head h1{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(2rem, 4.4vw, 3rem);
  max-width:20ch;
}
.page-head p{ color:var(--parchment-60); margin-top:18px; max-width:60ch; }

.notice{
  margin-top:30px;
  border-inline-start:2px solid var(--gold);
  padding:16px 22px;
  background:rgba(201,162,75,.06);
  font-size:.93rem;
  color:var(--parchment-60);
  display:flex; align-items:flex-start; gap:14px;
}
.notice-icon{ width:18px; height:18px; flex:none; margin-top:2px; color:var(--gold); }

.form-section{ padding:70px 0 120px; position:relative; z-index:2; }
form#reg-form{ max-width:720px; }

.field{
  margin-bottom:34px;
}
.field label{
  display:block;
  font-size:14.5px;
  margin-bottom:12px;
  color:var(--parchment);
}
.field label .req{ color:var(--gold); margin-inline-start:4px; }
.field .hint{
  display:block; font-size:12.5px; color:var(--parchment-60);
  margin-top:8px;
}

.field input,
.field select,
.field textarea{
  width:100%;
  background:var(--field-bg);
  border:1px solid var(--field-border);
  border-radius:6px;
  padding:14px 16px;
  font-size:16px;
  color:var(--parchment);
  transition:border-color .25s var(--ease), background .25s var(--ease), box-shadow .25s var(--ease);
}
.field input::placeholder,
.field textarea::placeholder{ color:var(--parchment-60); }
.field textarea{ resize:vertical; min-height:110px; line-height:1.9; }
.field input:hover,
.field select:hover,
.field textarea:hover{ border-color:rgba(243,239,230,.45); }
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none;
  background:var(--void-2);
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(201,162,75,.18);
}
.field select{ cursor:pointer; }
.field select option{ background:var(--void-2); color:var(--parchment); }

/* tel/email/number inputs default to LTR + left-align in some browsers
   regardless of page direction — force them to match the RTL form */
.field input[type="tel"],
.field input[type="email"],
.field input[type="number"]{
  direction:rtl;
  text-align:right;
}

.field.invalid input,
.field.invalid select,
.field.invalid textarea{ border-color:#D57C73; background:rgba(192,85,75,.08); }
.field .error-msg{
  display:none;
  font-size:12.5px; color:#E39189; margin-top:8px;
}
.field.invalid .error-msg{ display:block; }

.row-2{
  display:grid; grid-template-columns:1fr 1fr; gap:0 40px;
}
@media (max-width: 640px){ .row-2{ grid-template-columns:1fr; } }

.submit-row{
  display:flex; align-items:center; gap:20px; margin-top:8px;
}
.submit-row .btn{ min-width:190px; justify-content:center; }
.submit-row .btn[disabled]{ opacity:.55; cursor:not-allowed; }

.form-status{
  font-size:14px; margin-top:6px;
}
.form-status.error{ color:#D57C73; }

/* -- form sections -- */
.form-group{
  margin-bottom:56px;
  padding-top:8px;
}
.form-group + .form-group{
  border-top:1px solid var(--hairline);
  padding-top:44px;
}
.form-group-head{
  display:flex; align-items:baseline; gap:12px;
  margin-bottom:30px;
}
.form-group-num{
  font-family:var(--font-display); font-weight:700; font-size:13px;
  color:var(--gold);
}
.form-group-head h3{
  font-family:var(--font-display); font-weight:700;
  font-size:1.15rem; color:var(--parchment);
}
.form-group-note{
  font-size:13px; color:var(--parchment-60); margin-top:-20px; margin-bottom:26px;
}

/* -- explain (secondary) text under a select -- */
.field-sub{ margin-top:14px; }
.field-sub input{ font-size:14.5px; }

/* -- checkbox fields -- */
.field-check{
  display:flex; align-items:flex-start; gap:14px;
  padding:16px 18px;
  border:1px solid var(--field-border);
  border-radius:6px;
  background:var(--field-bg);
  margin-bottom:12px;
}
.field-check:first-child{ padding-top:16px; }
.field-check input[type="checkbox"]{
  appearance:none; -webkit-appearance:none;
  width:20px; height:20px; min-width:20px;
  margin-top:3px;
  border:1.5px solid var(--parchment-60);
  border-radius:3px;
  background:var(--void-2);
  cursor:pointer;
  position:relative;
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.field-check input[type="checkbox"]:checked{
  border-color:var(--gold);
  background:var(--gold);
}
.field-check input[type="checkbox"]:checked::after{
  content:"";
  position:absolute; right:6px; top:2px;
  width:5px; height:10px;
  border:solid var(--void);
  border-width:0 2px 2px 0;
  transform:rotate(35deg);
}
.field-check label{
  font-size:14.5px; color:var(--parchment-60); line-height:1.75; cursor:pointer;
}
.field-check.invalid{ border-color:#D57C73; background:rgba(192,85,75,.08); }
.field-check.invalid input[type="checkbox"]{ border-color:#D57C73; }
.field-check.invalid label{ color:var(--parchment); }

/* -- terms / consent panel -- */
.terms-box{
  border:1px solid var(--field-border);
  border-radius:6px;
  background:var(--field-bg);
  padding:26px 28px;
  max-height:280px;
  overflow-y:auto;
  font-size:13.5px;
  color:var(--parchment-60);
  line-height:1.9;
  margin-bottom:20px;
}
.terms-box h4{
  font-family:var(--font-display); font-weight:700; font-size:14px;
  color:var(--parchment); margin:22px 0 10px;
}
.terms-box h4:first-child{ margin-top:0; }
.terms-box p{ margin-bottom:10px; }
.terms-box ul{ margin:0 0 14px; padding-inline-start:20px; list-style:disc; }
.terms-box li{ margin-bottom:6px; }
.terms-box .terms-en{
  margin-top:24px;
  padding-top:22px;
  border-top:1px solid var(--hairline);
  direction:ltr; text-align:left;
}

.confirm-panel{
  display:none;
  max-width:600px;
  margin:0 auto;
  text-align:center;
  position:relative;
  overflow:hidden;
  border:1px solid var(--hairline);
  border-radius:18px;
  padding:56px 46px;
  background:linear-gradient(165deg, rgba(201,162,75,.06), rgba(255,255,255,.012) 55%);
}
.confirm-panel::before{
  content:"";
  position:absolute; top:-160px; left:50%; transform:translateX(-50%);
  width:600px; height:360px;
  background:radial-gradient(closest-side, rgba(201,162,75,.16), transparent 72%);
  pointer-events:none;
}
.confirm-panel.show{ display:block; }
.confirm-panel .mark{
  position:relative; z-index:1;
  width:58px; height:58px; border-radius:50%;
  border:1px solid var(--gold); color:var(--gold);
  background:rgba(201,162,75,.12);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:1.2rem;
  margin:0 auto 26px;
}
.confirm-panel h3{
  position:relative; z-index:1;
  font-family:var(--font-display); font-weight:700; font-size:1.45rem; margin-bottom:16px;
}
.confirm-panel p{ position:relative; z-index:1; color:var(--parchment-60); line-height:1.9; }
.confirm-panel p a{ color:var(--gold); text-decoration:underline; text-underline-offset:3px; }
.confirm-panel p + p{ margin-top:12px; }
.confirm-panel-cta{
  position:relative; z-index:1;
  margin-top:28px;
}

/* =========================================================
   Speaker profile page
   ========================================================= */
.profile-back{
  display:inline-flex; align-items:center; gap:6px;
  font-size:14px; color:var(--parchment-60);
  margin-bottom:36px;
  transition:color .2s var(--ease);
}
.profile-back:hover{ color:var(--gold); }

.profile-hero{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:44px;
  align-items:start;
}
.profile-photo{
  width:220px; height:220px;
  object-fit:cover;
  border-radius:16px;
  border:1px solid var(--hairline);
}
.profile-hero-info h1{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(1.8rem, 3vw, 2.4rem);
  margin:10px 0 6px;
}
.profile-title{ color:var(--gold); font-weight:600; margin-bottom:18px; }
.profile-bio{ color:var(--parchment-60); max-width:64ch; margin-bottom:26px; }
.profile-links{ display:flex; gap:14px; flex-wrap:wrap; }

@media (max-width:720px){
  .profile-hero{ grid-template-columns:1fr; }
  .profile-photo{ width:160px; height:160px; }
}

.course-list{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:14px 32px;
}
.course-list li{
  padding:16px 20px;
  border:1px solid var(--hairline);
  border-radius:10px;
  background:var(--band);
  color:var(--parchment-60);
  font-size:.98rem;
}
@media (max-width:720px){
  .course-list{ grid-template-columns:1fr; }
}

.pub-list{ list-style:none; }
.pub-item{
  padding:26px 0;
  border-bottom:1px solid var(--hairline);
}
.pub-item:first-child{ padding-top:0; }
.pub-item:last-child{ border-bottom:none; }
.pub-title{
  font-family:var(--font-display); font-weight:700; font-size:1.05rem;
  margin-bottom:8px; direction:ltr; text-align:right; unicode-bidi:plaintext;
}
.pub-meta{ color:var(--parchment-60); font-size:.92rem; margin-bottom:6px; unicode-bidi:plaintext; }
.pub-status{ color:var(--gold); font-size:.9rem; }

.edu-list{
  border:1px solid var(--hairline);
  border-radius:12px;
  overflow:hidden;
  background:var(--band);
}
.edu-item{
  padding:20px 22px;
  border-bottom:1px solid var(--hairline);
  display:flex; flex-direction:column; gap:6px;
}
.edu-item:last-child{ border-bottom:none; }
.edu-degree{ font-weight:700; color:var(--parchment); }
.edu-school{ font-size:.92rem; color:var(--parchment-60); }

.highlight-card{
  border:1px solid var(--hairline);
  border-radius:14px;
  padding:32px;
  background:
    radial-gradient(ellipse 420px 220px at 12% 0%, rgba(107,63,160,.14), transparent 60%),
    var(--band);
}
.highlight-title{
  font-family:var(--font-display); font-weight:800; font-size:1.2rem;
  color:var(--gold); margin-bottom:12px;
}
.highlight-text{ color:var(--parchment-60); max-width:70ch; }

.exp-item{
  padding:26px 0;
  border-bottom:1px solid var(--hairline);
}
.exp-item:first-child{ padding-top:0; }
.exp-item:last-child{ border-bottom:none; }
.exp-role{
  font-family:var(--font-display); font-weight:700; font-size:1.05rem;
  margin-bottom:6px;
}
.exp-meta{ color:var(--gold); font-size:.88rem; margin-bottom:10px; }
.exp-desc{ color:var(--parchment-60); font-size:.96rem; max-width:70ch; margin-bottom:10px; }
.exp-bullets{
  list-style:disc; padding-inline-start:20px;
  color:var(--parchment-60); font-size:.94rem; max-width:70ch;
}
.exp-bullets li{ margin-bottom:6px; }

/* =========================================================
   Attendance module (js/attendance.js) — shared by the admin
   panel's «حاضری» tab and the standalone attendance.html page
   ========================================================= */
.att-tabs-row{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-bottom:24px;
}
.att-tab{
  background:transparent; border:1px solid var(--field-border); color:var(--parchment-60);
  border-radius:99px; padding:8px 18px; font-size:.85rem; cursor:pointer;
  transition:border-color .25s var(--ease), color .25s var(--ease), background .25s var(--ease);
}
.att-tab:hover{ border-color:var(--gold); color:var(--parchment); }
.att-tab.is-active{ background:rgba(201,162,75,.14); border-color:var(--gold); color:var(--gold); }
.att-tab--summary{ border-style:dashed; }

.att-toolbar{
  display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between;
  margin-bottom:18px;
}
.att-search{ flex:1; min-width:220px; max-width:360px; }
.att-search input{
  width:100%; background:var(--field-bg); border:1px solid var(--field-border); color:var(--parchment);
  border-radius:8px; padding:11px 16px; font-size:.9rem;
}
.att-search input:focus{ border-color:var(--gold); }

.att-count{ color:var(--parchment-60); font-size:.86rem; margin-bottom:14px; }

.att-table-wrap{ position:relative; overflow-x:auto; }
.att-table{ width:100%; border-collapse:collapse; }
.att-table th{
  text-align:right; font-size:.78rem; font-weight:700; color:var(--parchment-60);
  padding:10px 14px; border-bottom:1px solid var(--hairline); white-space:nowrap;
}
.att-table td{
  padding:12px 14px; border-bottom:1px solid var(--hairline); font-size:.88rem; vertical-align:middle;
}
.att-table tr:last-child td{ border-bottom:none; }

.att-status-group{ display:flex; gap:6px; flex-wrap:wrap; }
.att-status-btn{
  border-radius:8px; padding:7px 14px; font-size:.8rem; font-weight:600; cursor:pointer;
  background:transparent; border:1px solid var(--field-border); color:var(--parchment-60);
  transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);
}
.att-status-btn--present:hover{ border-color:var(--verdant); color:var(--verdant); }
.att-status-btn--absent:hover{ border-color:#D57C73; color:#D57C73; }
.att-status-btn--leave:hover{ border-color:var(--azure); color:var(--azure); }
.att-status-btn--present.is-active{ background:rgba(47,158,110,.16); border-color:var(--verdant); color:var(--verdant); }
.att-status-btn--absent.is-active{ background:rgba(213,124,115,.16); border-color:#D57C73; color:#D57C73; }
.att-status-btn--leave.is-active{ background:rgba(46,111,168,.16); border-color:var(--azure); color:var(--azure); }

.att-mini-row{ display:flex; gap:4px; flex-wrap:wrap; }
.att-mini{
  width:22px; height:22px; border-radius:6px; flex:none;
  display:flex; align-items:center; justify-content:center;
  font-size:.72rem; font-weight:700;
  background:rgba(243,239,230,.06); color:var(--parchment-60);
}
.att-mini--present{ background:rgba(47,158,110,.18); color:var(--verdant); }
.att-mini--absent{ background:rgba(213,124,115,.18); color:#D57C73; }
.att-mini--leave{ background:rgba(46,111,168,.18); color:var(--azure); }
.att-pct{ color:var(--gold); font-family:var(--font-display); }

.att-loading{
  padding:60px 20px; text-align:center; color:var(--parchment-60); font-size:.92rem;
  display:flex; align-items:center; justify-content:center; gap:12px;
}
.att-spinner{
  width:20px; height:20px; border-radius:50%; flex:none;
  border:2px solid rgba(243,239,230,.2); border-top-color:var(--gold);
  animation:attSpin .8s linear infinite;
}
@keyframes attSpin{ to{ transform:rotate(360deg); } }
.att-error{
  padding:24px; text-align:center; color:#D57C73; font-size:.9rem;
  border:1px solid rgba(213,124,115,.35); background:rgba(213,124,115,.06); border-radius:12px;
}
.att-empty{
  padding:50px 20px; text-align:center; color:var(--parchment-60); font-size:.9rem;
}

@media (max-width:760px){
  .att-table thead{ display:none; }
  .att-table, .att-table tbody, .att-table tr, .att-table td{ display:block; width:100%; }
  .att-table tr{ padding:16px 0; border-bottom:1px solid var(--hairline); }
  .att-table td{ border:none; padding:4px 0; }
  .att-table td[data-label]::before{
    content:attr(data-label);
    display:block; font-size:.72rem; color:var(--parchment-60); margin-bottom:4px;
  }
}
