:root{--bg:#f1faf9;--surface:#fff;--ink:#12323a;--muted:#587479;--line:#cde3e1;--accent:#0b7b84;--sun:#ffb02e}
@media (prefers-color-scheme:dark){:root{--bg:#0d1d21;--surface:#14292f;--ink:#e6f4f4;--muted:#93b3b8;--line:#244148;--accent:#43c0c9}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Vazirmatn',system-ui,Tahoma,sans-serif;font-size:17px;line-height:1.95}
a{color:var(--accent);font-weight:700;text-decoration:none}
a:hover{text-decoration:none;opacity:.8}
.ch{background:var(--surface);border-bottom:2px solid var(--line);position:sticky;top:0;z-index:10}
.ch-in{max-width:960px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ch-logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font-weight:800;font-size:20px}
.ch nav{display:flex;gap:18px;flex-wrap:wrap;margin-inline:auto;justify-content:center}
.ch nav a{text-decoration:none;color:var(--ink);font-weight:600;font-size:15px}
.ch nav a:hover{color:var(--accent)}
.cbtn{display:inline-block;padding:9px 22px;border-radius:999px;background:linear-gradient(180deg,#ffd36b,#ffb02e 55%,#ff9418);color:#5a2a05!important;text-decoration:none;font-weight:800;box-shadow:0 4px 0 #c46a0d;font-size:15px;white-space:nowrap}
.cbtn.big{padding:13px 34px;font-size:18px}
.cbtn:active{transform:translateY(3px);box-shadow:0 1px 0 #c46a0d}
.cm{max-width:820px;margin:0 auto;padding:18px 16px 40px}
.bc{font-size:14px;color:var(--muted);margin-bottom:6px}.bc a{font-weight:600;text-decoration:none}
h1{font-size:clamp(25px,5vw,34px);line-height:1.5;margin:6px 0 14px}
h2{font-size:clamp(20px,3.5vw,24px);margin:32px 0 10px;line-height:1.6}
.lead{font-size:18.5px;font-weight:500}
.cta{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:#fff3dc;border:2px solid #f6d79a;border-radius:20px;padding:14px 18px;margin:22px 0;color:#3d2a12}
@media (prefers-color-scheme:dark){.cta{background:#3d2b12;border-color:#6b4a1b;color:#ffe9c9}}
.cta p{margin:0;flex:1 1 260px}
.wg{list-style:none;padding:0;margin:14px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
.wc .say{width:100%;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px 12px;border:2px solid var(--line);border-bottom-width:5px;border-radius:20px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.wc .say img{width:96px;height:96px;object-fit:contain}
.wc .say b{font-size:21px;line-height:1.3}.wc .say span{color:var(--muted);font-size:15px;font-weight:600}
.say:active{transform:translateY(3px)}.say.on{border-color:var(--sun);background:#fff3dc;color:#3d2a12}
.say.tiny{display:inline-flex;padding:2px 12px;border:2px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.tw{overflow-x:auto;border:2px solid var(--line);border-radius:18px;background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:16px}
caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
th,td{padding:8px 14px;text-align:start;border-bottom:1px solid var(--line)}
thead th{background:#fff3dc;color:#3d2a12;font-size:15px}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
tbody th{font-family:system-ui,sans-serif;font-size:20px;color:#e8820c}
.steps li{margin:8px 0}
details{background:var(--surface);border:2px solid var(--line);border-radius:16px;padding:10px 16px;margin:10px 0}
summary{font-weight:800;cursor:pointer}details p{margin:8px 0 2px}
.hubs{list-style:none;padding:0;margin:16px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.hub a{display:flex;flex-direction:column;gap:2px;padding:16px;border:2px solid var(--line);border-bottom-width:5px;border-radius:20px;background:var(--surface);text-decoration:none;color:var(--ink)}
.hub a b{font-size:19px}.hub a span{color:var(--muted);font-weight:600;font-size:14px}
.more a{white-space:nowrap}
.cf{background:var(--surface);border-top:2px solid var(--line);color:var(--muted);font-size:15px}
.cf p{margin:4px 0}
@media (max-width:560px){.ch-logo{margin-inline-end:auto}.ch nav{order:3;width:100%;margin:0;gap:12px;justify-content:center}.ch-in{gap:8px}}

/* teacher profile */
.tp-hero{display:flex;gap:22px;align-items:center;background:linear-gradient(135deg,var(--surface),#fff6e2);border:2px solid var(--line);border-bottom-width:6px;border-radius:28px;padding:22px}
@media (prefers-color-scheme:dark){.tp-hero{background:linear-gradient(135deg,var(--surface),#1b3036)}}
.tp-photo{width:170px;height:170px;border-radius:50%;object-fit:cover;border:5px solid var(--sun);box-shadow:0 8px 22px rgba(0,0,0,.14);flex:none}
.tp-id{min-width:0}.tp-role{margin:0;color:var(--accent);font-weight:800}.tp-lead{margin:6px 0 12px;font-weight:600}
.tp-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.tp-badges span{background:var(--bg);border:2px solid var(--line);border-radius:999px;padding:3px 12px;font-size:14px;font-weight:600}
.tp-badges b{color:var(--accent);margin-inline-end:4px}
.tp-cta{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.tp-ghost{display:inline-block;padding:11px 20px;border:2px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink)}
.tp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.tp-card{background:var(--surface);border:2px solid var(--line);border-bottom-width:5px;border-radius:20px;padding:16px 18px}
.tp-card h3{margin:0 0 6px;font-size:18px;line-height:1.7;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.tp-card h3 em{font-style:normal;font-size:14px;color:var(--muted);font-weight:600;width:100%}
.tp-card p{margin:0;font-size:15.5px}
.tp-main{grid-column:1/-1}
.tp-ic{display:inline-grid;place-items:center;min-width:46px;height:46px;padding:0 8px;border-radius:50%;background:#12323a;color:#ffd36b;font-size:13px;font-weight:800}
.tp-bars{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.tp-bars li{display:grid;grid-template-columns:84px 1fr 34px;align-items:center;gap:10px;font-size:14px;direction:ltr}
.tp-bars i{height:12px;border-radius:99px;background:var(--line);position:relative;overflow:hidden}
.tp-bars i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);border-radius:99px;background:linear-gradient(90deg,#43c0c9,#0b7b84)}
.tp-note{color:var(--muted);font-size:14px;margin:10px 4px 0}
.tp-courses{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tp-courses li{background:var(--surface);border:2px solid var(--line);border-radius:18px;padding:12px 14px;display:flex;flex-direction:column}
.tp-courses span{color:var(--muted);font-size:13px;direction:ltr;text-align:right}
.tp-links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tp-links a{display:flex;flex-direction:column;gap:2px;padding:14px;border:2px solid var(--line);border-bottom-width:5px;border-radius:18px;background:var(--surface);color:var(--ink)}
.tp-links span{color:var(--muted);font-size:14px;font-weight:600}
@media (max-width:640px){.tp-hero{flex-direction:column;text-align:center;padding:20px 16px}.tp-badges,.tp-cta{justify-content:center}.tp-grid,.tp-courses,.tp-links{grid-template-columns:1fr}.tp-photo{width:150px;height:150px}.tp-bars li{grid-template-columns:76px 1fr 30px}}
.tp-grid .tp-card:last-child{grid-column:1/-1}
.tp-work{display:flex;align-items:center;gap:16px}.tp-work img{width:84px;height:84px;border-radius:50%;flex:none;box-shadow:0 4px 12px rgba(0,0,0,.18)}
.tp-links a{flex-direction:row;align-items:center;gap:12px}.tp-lt{display:flex;flex-direction:column;min-width:0}
.si{width:44px;height:44px;flex:none}.si-wa circle{fill:#25d366}.si-tel circle{fill:#0b7b84}
.si-w{position:relative;width:52px;height:52px;flex:none;display:block}.si-w .si{position:absolute;inset:4px;width:44px;height:44px}.si-w img{position:absolute;inset:0;width:52px;height:52px;object-fit:contain}

.tp-docs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tp-docs button{display:block;width:100%;padding:0;border:2px solid var(--line);border-bottom-width:5px;border-radius:20px;background:var(--surface);overflow:hidden;cursor:zoom-in;font:inherit;color:var(--ink);text-align:center;transition:transform .15s}
.tp-docs button:hover{transform:translateY(-3px)}.tp-docs img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:#f4f7f7}
.tp-docs span{display:block;padding:10px 8px 12px;font-size:13.5px;line-height:1.6;color:var(--muted)}.tp-docs b{display:block;color:var(--ink);font-size:16px}
.lb{position:fixed;inset:0;z-index:50;background:rgba(8,20,24,.9);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;cursor:zoom-out}
.lb[hidden]{display:none}.lb img{max-width:min(96vw,1000px);max-height:82vh;border-radius:10px;background:#fff;object-fit:contain}.lb p{color:#fff;margin:0;font-weight:600}
.lb-x{position:absolute;top:12px;inset-inline-start:14px;width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:#12323a;font-size:28px;line-height:1;cursor:pointer}
@media (max-width:640px){.tp-docs{grid-template-columns:1fr 1fr}.tp-docs li:last-child{grid-column:1/-1;max-width:50%;justify-self:center}}
.tp-docs img{height:auto}
