/* ==========================================================================
   Davan Group — davan-group.com
   Design tokens shared with the printed catalog (navy / gold / cream)
   ========================================================================== */
:root{
  --navy:#0b1e3d;
  --navy-2:#122a52;
  --navy-3:#1b3768;
  --gold:#b9924c;
  --gold-l:#e3cd9c;
  --gold-d:#8a6a2f;
  --cream:#faf7f1;
  --paper:#ffffff;
  --ink:#16223a;
  --muted:#5c6b86;
  --hair:#dcd4c2;
  --maxw:1180px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:'Inter','Vazirmatn',sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.7;
  overflow-x:hidden;
}

/* language / direction handling ------------------------------------------ */
html[data-lang="fa"]{ direction:rtl; }
html[data-lang="en"]{ direction:ltr; }
html[data-lang="fa"] body{ font-family:'Vazirmatn','Inter',sans-serif; }
html[data-lang="en"] body{ font-family:'Inter','Vazirmatn',sans-serif; }

.fa,.en{ display:none; }
html[data-lang="fa"] .fa{ display:block; }
html[data-lang="fa"] span.fa,
html[data-lang="fa"] strong.fa{ display:inline; }
html[data-lang="en"] .en{ display:block; }
html[data-lang="en"] span.en,
html[data-lang="en"] strong.en{ display:inline; }

h1,h2,h3,.serif{ font-family:'Playfair Display', serif; font-weight:800; }
html[data-lang="fa"] h1, html[data-lang="fa"] h2, html[data-lang="fa"] h3{
  font-family:'Vazirmatn', sans-serif; font-weight:800;
}

a{ color:inherit; text-decoration:none; }
img,svg{ max-width:100%; display:block; }
.container{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }
section{ position:relative; }

.kicker{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.kicker .sep{ width:26px; height:1px; background:var(--gold); display:inline-block; }
html[data-lang="fa"] .kicker .sep{ order:2; }
.kicker .brand{ font-size:12px; letter-spacing:.14em; font-weight:700; }
.kicker .pageword{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }

.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 26px; border-radius:2px; font-size:14px; font-weight:600;
  letter-spacing:.02em; border:1px solid transparent; cursor:pointer;
  transition:transform .15s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
.btn:hover{ transform:translateY(-1px); }
.btn-gold{ background:var(--gold); color:var(--navy); }
.btn-gold:hover{ background:var(--gold-l); }
.btn-outline{ border-color:rgba(255,255,255,.5); color:#fff; }
.btn-outline:hover{ border-color:#fff; }
.btn-outline-navy{ border-color:var(--navy); color:var(--navy); }
.btn-outline-navy:hover{ background:var(--navy); color:#fff; }

/* ---------------------------------------------------------------- header */
header.site{
  position:fixed; inset:0 0 auto 0; z-index:100;
  background:rgba(11,30,61,.92); backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(185,146,76,.25);
}
header.site .bar{
  display:flex; align-items:center; justify-content:space-between;
  height:74px; color:#fff;
}
.logo{ font-family:'Playfair Display',serif; font-weight:800; font-size:19px; letter-spacing:.04em; }
html[data-lang="fa"] .logo{ font-family:'Vazirmatn',sans-serif; }
.logo .dot{ color:var(--gold); margin:0 6px; }
nav.links{ display:none; gap:28px; font-size:13.5px; letter-spacing:.02em; }
nav.links a{ opacity:.85; transition:opacity .15s; white-space:nowrap; }
nav.links a:hover{ opacity:1; color:var(--gold-l); }
.head-actions{ display:flex; align-items:center; gap:14px; }
#langToggle{
  border:1px solid rgba(255,255,255,.4); color:#fff; background:transparent;
  border-radius:20px; padding:7px 14px; font-size:12.5px; font-weight:700;
  letter-spacing:.06em; cursor:pointer;
}
#langToggle:hover{ border-color:var(--gold-l); color:var(--gold-l); }
#navToggle{ display:flex; background:none; border:0; color:#fff; font-size:22px; cursor:pointer; }
@media(min-width:900px){
  nav.links{ display:flex; }
  #navToggle{ display:none; }
}
#mobileNav{
  display:none; position:fixed; inset:74px 0 0 0; background:var(--navy);
  z-index:99; padding:30px 24px; flex-direction:column; gap:22px; font-size:17px;
}
#mobileNav.open{ display:flex; }
#mobileNav a{ color:#fff; }

/* ------------------------------------------------------------------ hero */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  background:var(--navy); color:#fff; overflow:hidden; padding-top:74px;
}
.hero-sky{
  position:absolute; left:0; right:0; bottom:0; width:100%; height:56%;
  opacity:.95; z-index:0;
}
.hero-glow{
  position:absolute; inset:0; background:
    radial-gradient(60% 50% at 75% 20%, rgba(185,146,76,.14), transparent 70%);
  z-index:0;
}
.hero .container{ position:relative; z-index:1; padding-top:40px; padding-bottom:110px; }
.hero-eyebrow{ font-size:12.5px; letter-spacing:.22em; color:var(--gold-l); margin-bottom:22px; }
.hero h1{ font-size:clamp(30px,5vw,52px); line-height:1.28; max-width:720px; margin-bottom:20px; }
.hero h1 .accent{ color:var(--gold-l); }
.hero .lede{ font-size:18px; color:#dfe6f2; max-width:560px; margin-bottom:36px; }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:14px; }
.hero-tags{
  margin-top:56px; padding-top:22px; border-top:1px solid rgba(255,255,255,.16);
  font-size:12px; letter-spacing:.16em; color:#9fb0cc; text-transform:uppercase;
}

/* -------------------------------------------------------------- sections */
.section{ padding:96px 0; }
.section.alt{ background:var(--cream); }
.section-head{ max-width:640px; margin-bottom:48px; }
.section-head h2{ font-size:clamp(26px,3.4vw,38px); color:var(--navy); line-height:1.3; }
.section-foot-note{
  margin-top:40px; padding:18px 22px; background:rgba(185,146,76,.08);
  border-inline-start:3px solid var(--gold); font-size:14px; color:var(--muted);
}

/* about ------------------------------------------------------------------*/
.about-grid{ display:grid; gap:40px; }
.about-grid p{ color:var(--muted); margin-bottom:16px; font-size:15.5px; }
.about-grid p strong{ color:var(--navy); }
.pill-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:8px; }
.pill{
  border:1px solid var(--hair); border-radius:3px; padding:18px 16px;
  display:flex; flex-direction:column; gap:10px; background:#fff;
}
.pill .ic{ width:26px; height:26px; color:var(--gold-d); }
.pill b{ font-size:14px; color:var(--navy); }
.pill span{ font-size:12.5px; color:var(--muted); }
@media(min-width:860px){
  .about-grid{ grid-template-columns:1.05fr 1fr; align-items:start; }
}

/* programs / study opportunities ------------------------------------------*/
.card-row{ display:grid; gap:22px; grid-template-columns:1fr; }
@media(min-width:760px){ .card-row.cols-3{ grid-template-columns:repeat(3,1fr); } }
.prog-card{
  border:1px solid var(--hair); background:#fff; padding:30px 26px; border-radius:3px;
  transition:box-shadow .2s ease, transform .2s ease;
}
.prog-card:hover{ box-shadow:0 18px 40px -22px rgba(11,30,61,.35); transform:translateY(-3px); }
.prog-card .ic{ width:34px; height:34px; color:var(--gold-d); margin-bottom:18px; }
.prog-card h3{ font-size:19px; color:var(--navy); margin-bottom:6px; }
.prog-card .sub{ font-size:13px; color:var(--gold-d); font-weight:700; letter-spacing:.03em; margin-bottom:14px; }
.prog-card p{ font-size:14px; color:var(--muted); }
.track-strip{ display:flex; flex-wrap:wrap; gap:14px; margin-top:36px; }
.track-chip{
  flex:1 1 160px; border:1px solid var(--hair); padding:14px 16px; border-radius:3px;
  font-size:13px; color:var(--muted); display:flex; align-items:center; gap:10px;
}
.track-chip b{ color:var(--gold-d); font-size:15px; }

/* universities -------------------------------------------------------------*/
.uni-grid{ display:grid; gap:20px; grid-template-columns:1fr; }
@media(min-width:760px){ .uni-grid{ grid-template-columns:1fr 1fr; } }
.uni-card{
  border:1px solid var(--hair); background:#fff; border-radius:3px; overflow:hidden;
  display:flex; flex-direction:column; min-height:100%;
}
.uni-top{ padding:24px 24px 18px; position:relative; border-bottom:1px solid var(--hair); }
.uni-city-en{ font-family:'Playfair Display',serif; font-weight:800; font-size:21px; color:var(--navy); }
html[data-lang="fa"] .uni-city-en{ font-family:'Vazirmatn',sans-serif; }
.uni-city-fa{ font-size:13px; color:var(--muted); margin-top:2px; }
.uni-badge{
  position:absolute; inset-inline-end:16px; top:16px; max-width:150px;
  background:var(--navy); color:var(--gold-l); font-size:10.5px; font-weight:700;
  padding:7px 10px; border-radius:3px; line-height:1.35; text-align:center;
}
.uni-body{ padding:18px 24px 24px; flex:1; display:flex; flex-direction:column; gap:14px; }
.uni-row .lbl{ font-size:10.5px; text-transform:uppercase; letter-spacing:.14em; color:var(--gold-d); font-weight:700; margin-bottom:4px; }
.uni-row .val{ font-size:14px; color:var(--ink); }
.uni-row .val-fa{ font-size:13px; color:var(--muted); margin-top:2px; }

/* admissions / arrival service lists -----------------------------------*/
.svc-grid{ display:grid; gap:14px; grid-template-columns:1fr; margin-bottom:34px; }
@media(min-width:760px){ .svc-grid{ grid-template-columns:1fr 1fr; } }
.svc-item{
  display:flex; gap:14px; align-items:flex-start; padding:16px 4px;
  border-bottom:1px solid var(--hair);
}
.svc-num{
  flex:0 0 auto; width:28px; height:28px; border-radius:50%; border:1px solid var(--gold);
  color:var(--gold-d); font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center;
}
.svc-item .val{ font-size:14.5px; color:var(--navy); font-weight:600; }
.svc-item .val-fa{ font-size:13px; color:var(--muted); margin-top:2px; }
.closing-box{
  background:var(--navy); color:#eef2f9; padding:30px 28px; border-radius:3px;
  display:flex; flex-direction:column; gap:8px;
}
.closing-box .fa{ font-size:14.5px; }
.closing-box .en{ font-size:13.5px; color:#b9c4dc; }

/* journey timeline ----------------------------------------------------*/
.timeline{ position:relative; padding-inline-start:0; }
.tl-row{
  display:grid; grid-template-columns:44px 1fr; gap:18px; padding-bottom:34px; position:relative;
}
.tl-row:last-child{ padding-bottom:0; }
.tl-row::before{
  content:""; position:absolute; inset-inline-start:21px; top:44px; bottom:-6px; width:1px;
  background:var(--hair);
}
.tl-row:last-child::before{ display:none; }
.tl-dot{
  width:44px; height:44px; border-radius:50%; background:var(--navy); color:var(--gold-l);
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:15px;
  border:2px solid var(--gold);
}
.tl-title{ font-size:16.5px; color:var(--navy); font-weight:700; }
.tl-title .en{ font-family:'Playfair Display',serif; }
.tl-sub{ font-size:13px; color:var(--muted); margin-top:3px; }

/* why us + contact ------------------------------------------------------*/
.why-page{ background:var(--navy); color:#fff; position:relative; overflow:hidden; }
.why-sky{ position:absolute; left:0; right:0; bottom:0; width:100%; height:70%; opacity:.35; z-index:0; }
.why-page .container{ position:relative; z-index:1; }
.why-lede{ font-size:16px; color:#dbe3f2; max-width:640px; margin-bottom:40px; }
.benefit-grid{ display:grid; gap:16px; grid-template-columns:1fr; margin-bottom:56px; }
@media(min-width:760px){ .benefit-grid{ grid-template-columns:repeat(2,1fr); } }
.benefit{
  display:flex; gap:14px; align-items:flex-start; padding:16px 18px;
  border:1px solid rgba(185,146,76,.3); border-radius:3px; background:rgba(255,255,255,.03);
}
.benefit .ic{ width:22px; height:22px; color:var(--gold-l); flex:0 0 auto; margin-top:2px; }
.benefit b{ font-size:14.5px; }
.benefit span{ display:block; font-size:12.5px; color:#aebbd6; margin-top:3px; }

.contact-cta{ text-align:center; margin-bottom:44px; }
.contact-cta h2{ color:#fff; font-size:clamp(24px,3vw,32px); margin-bottom:10px; }
.contact-cta p{ color:#c7d1e6; font-size:15px; }

.contact-wrap{ display:grid; gap:34px; grid-template-columns:1fr; }
@media(min-width:900px){ .contact-wrap{ grid-template-columns:1fr 1.1fr; } }

.channels{ display:grid; gap:14px; grid-template-columns:1fr 1fr; }
.channel{
  border:1px solid rgba(185,146,76,.35); border-radius:3px; padding:18px;
  display:flex; flex-direction:column; gap:8px; background:rgba(255,255,255,.03);
  transition:border-color .2s, background .2s;
}
.channel:hover{ border-color:var(--gold); background:rgba(255,255,255,.06); }
.channel .ic{ width:22px; height:22px; color:var(--gold-l); }
.channel b{ font-size:13.5px; letter-spacing:.03em; }
.channel span{ font-size:13px; color:#c7d1e6; direction:ltr; unicode-bidi:isolate; }

form#contactForm{
  background:#fff; color:var(--ink); border-radius:4px; padding:30px; display:flex;
  flex-direction:column; gap:16px;
}
form#contactForm label{ font-size:12.5px; font-weight:700; color:var(--navy); letter-spacing:.03em; margin-bottom:6px; display:block; }
form#contactForm input, form#contactForm select, form#contactForm textarea{
  width:100%; border:1px solid var(--hair); border-radius:3px; padding:12px 14px;
  font:inherit; font-size:14.5px; background:#fbfaf7; color:var(--ink);
}
form#contactForm textarea{ resize:vertical; min-height:100px; }
form#contactForm input:focus, form#contactForm select:focus, form#contactForm textarea:focus{
  outline:none; border-color:var(--gold);
}
#formStatus{ font-size:13.5px; min-height:18px; }
#formStatus.ok{ color:#3a7d54; }
#formStatus.err{ color:#b3453a; }

/* footer -----------------------------------------------------------------*/
footer.site{
  background:#081527; color:#8b98b5; padding:34px 0; font-size:12.5px;
}
footer.site .container{
  display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between;
}
footer.site .disc{ max-width:760px; }
footer.site .disc .fa{ margin-bottom:4px; }

/* reveal on scroll ---------------------------------------------------------*/
[data-reveal]{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
[data-reveal].in{ opacity:1; transform:none; }
