/* ══════════════════════════════════════════════════════════════
   Project Portfolio — directory grid + case-study detail
   Uses global design tokens from style.css (auto light/dark aware)
   ══════════════════════════════════════════════════════════════ */

/* ---------- Featured / section label ---------- */
.cs-section-label{text-align:center;margin:0 auto 22px;max-width:620px}
.cs-section-label h2{font-size:clamp(19px,2.8vw,26px);font-weight:900;color:var(--white);font-family:var(--font);margin:0 0 6px}
.cs-section-label p{font-size:13px;color:var(--muted);margin:0;line-height:1.6}

/* ---------- Directory intro ---------- */
.cs-pf{padding-top:8px;border-top:1px solid var(--border);margin-top:8px}
.cs-pf-head{text-align:center;max-width:640px;margin:0 auto 28px}
.cs-pf-head h2{font-size:clamp(22px,3.4vw,32px);font-weight:900;color:var(--white);font-family:var(--font);margin:0 0 10px;line-height:1.2}
.cs-pf-head h2 .accent{color:var(--cyan)}
.cs-pf-head p{font-size:13.5px;color:var(--muted);line-height:1.7;margin:0}

/* ---------- Filter toolbar ---------- */
.cs-pf-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;justify-content:center;margin-bottom:26px}
.cs-pf-field{display:flex;flex-direction:column;gap:5px;text-align:left}
.cs-pf-field > span{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cs-pf-field select,
.cs-pf-field input{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);color:var(--white);font-family:var(--font);font-size:13px;padding:10px 12px;min-width:210px;transition:border-color .2s,box-shadow .2s}
.cs-pf-field select:focus,
.cs-pf-field input:focus{outline:none;border-color:var(--border2);box-shadow:var(--glow-c)}
.cs-pf-field input::placeholder{color:var(--muted)}
.cs-pf-count{font-size:12.5px;color:var(--muted);align-self:center;padding-bottom:10px;white-space:nowrap}
.cs-pf-count b{color:var(--cyan);font-weight:800}

/* ---------- Grid ---------- */
.cs-pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.cs-pf-tile{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:20px 20px 16px;text-decoration:none;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}
.cs-pf-tile::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--tile-accent,var(--cyan));opacity:.9}
.cs-pf-tile:hover{transform:translateY(-4px);border-color:var(--border2);box-shadow:0 18px 44px rgba(0,0,0,.28),var(--glow-c)}
.cs-pf-eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--tile-accent,var(--cyan));margin:0 0 8px}
/* Light mode: darken the category-colour eyebrow so it stays readable on white (keeps its hue) */
[data-theme="light"] .cs-pf-eyebrow{filter:saturate(1.5) brightness(.55)}
.cs-pf-tile h3{font-size:15px;font-weight:800;color:var(--white);font-family:var(--font);line-height:1.35;margin:0 0 8px}
.cs-pf-industry{font-size:11.5px;color:var(--muted);margin:0 0 10px;display:flex;align-items:center;gap:6px}
.cs-pf-sum{font-size:12.5px;color:var(--muted);line-height:1.6;margin:0 0 14px;flex:1}
.cs-pf-chips{list-style:none;display:flex;flex-wrap:wrap;gap:5px;padding:0;margin:0 0 14px}
.cs-pf-chips li{font-size:10px;font-weight:600;color:var(--muted);background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:5px;padding:2px 7px}
.cs-pf-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto}
.cs-pf-view{font-size:12px;font-weight:700;color:var(--cyan);font-family:var(--font)}
.cs-pf-tile--soon{cursor:default}
.cs-pf-tile--soon .cs-pf-view{color:var(--muted)}
.cs-pf-soon-tag{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--border2);border-radius:20px;padding:2px 9px}

/* ---------- Directory empty state ---------- */
.cs-pf-empty{grid-column:1/-1;text-align:center;padding:44px 20px;color:var(--muted)}
.cs-pf-empty-ic{font-size:30px;margin-bottom:10px}
.cs-pf-empty button{background:none;border:none;color:var(--cyan);cursor:pointer;font-family:var(--font);font-size:13px;text-decoration:underline}

/* ══════════════════════════════════════════════════════════════
   Case-study DETAIL page
   ══════════════════════════════════════════════════════════════ */
.csd{max-width:860px;margin:0 auto;padding:24px 20px 8px}
.csd-back{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--muted);text-decoration:none;margin-bottom:22px;transition:color .2s}
.csd-back:hover{color:var(--cyan)}

.csd-head{border-bottom:1px solid var(--border);padding-bottom:24px;margin-bottom:8px}
.csd-eyebrow{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--cyan);margin:0 0 10px}
.csd-head h1{font-size:clamp(24px,4vw,36px);font-weight:900;color:var(--white);font-family:var(--font);line-height:1.18;margin:0 0 10px}
.csd-tagline{font-size:16px;color:var(--muted);font-family:var(--font-ar);margin:0 0 18px}
.csd-meta{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:0}
.csd-meta li{display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:8px 14px;min-width:120px}
.csd-meta li span{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.csd-meta li b{font-size:13px;font-weight:700;color:var(--white)}

.csd-sec{padding:24px 0;border-bottom:1px solid var(--border)}
.csd-sec h2{font-size:18px;font-weight:800;color:var(--white);font-family:var(--font);margin:0 0 14px;display:flex;align-items:center;gap:9px}
.csd-sec h2::before{content:"";width:4px;height:18px;border-radius:3px;background:var(--cyan);box-shadow:var(--glow-c)}
.csd-sec > p{font-size:14px;color:var(--muted);line-height:1.8;margin:0 0 12px}
.csd-ar{font-family:var(--font-ar);color:var(--muted);line-height:1.9;font-size:14.5px}

.csd-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px}
.csd-list li{position:relative;padding-left:28px;font-size:13.5px;color:var(--muted);line-height:1.7}
.csd-list li::before{position:absolute;left:0;top:1px;font-size:14px}
.csd-list--problem li::before{content:"⚠";color:#ff6b6b}
.csd-list--solution li::before{content:"✓";color:var(--cyan);font-weight:900}
.csd-list--impact li::before{content:"▲";color:#2ecc71;font-size:11px;top:3px}
.csd-list--shots li::before{content:"▸";color:var(--muted)}

.csd-sec--impact{background:var(--surface);border:1px solid var(--border2);border-radius:var(--r2);padding:22px 24px;margin:24px 0;box-shadow:var(--glow-c)}
.csd-sec--impact{border-bottom:1px solid var(--border2)}

/* Role table */
.csd-role{width:100%;border-collapse:collapse;font-size:13.5px}
.csd-role th{text-align:left;vertical-align:top;color:var(--cyan);font-weight:800;font-family:var(--font);padding:10px 16px 10px 0;white-space:nowrap;width:120px;border-bottom:1px solid var(--border)}
.csd-role td{color:var(--muted);line-height:1.7;padding:10px 0;border-bottom:1px solid var(--border)}
.csd-role tr:last-child th,.csd-role tr:last-child td{border-bottom:none}

/* Discuss-this-case enquiry form */
.csd-ask{margin-top:4px}
.csd-ask-form{display:none;max-width:480px;margin:18px auto 0;text-align:left;flex-direction:column;gap:10px}
.csd-ask-form.open{display:flex}
.csd-ask-lead{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 2px}
.csd-ask-row{display:flex;gap:10px}
.csd-ask-row input{flex:1;min-width:0}
.csd-ask-form input,.csd-ask-form textarea{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);color:var(--white);font-family:var(--font);font-size:13.5px;padding:11px 13px;transition:border-color .2s,box-shadow .2s}
.csd-ask-form input:focus,.csd-ask-form textarea:focus{outline:none;border-color:var(--border2);box-shadow:var(--glow-c)}
.csd-ask-form textarea{resize:vertical}
.csd-ask-form input::placeholder,.csd-ask-form textarea::placeholder{color:var(--muted)}
.csd-ask-err{font-size:12.5px;color:#ff6b6b}
.csd-ask-err:empty{display:none}
.csd-ask-send{margin-top:2px}
.csd-ask-priv{font-size:11px;color:var(--muted);opacity:.8;margin:0;text-align:center}
.csd-ask-thanks{display:none;margin-top:16px;text-align:center}
.csd-ask-thanks.open{display:block;animation:csdFade .35s ease}
@keyframes csdFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.csd-ask-thanks-ic{font-size:34px;line-height:1}
.csd-ask-thanks-t{font-size:16px;font-weight:800;color:var(--white);font-family:var(--font);margin:8px 0 4px}
.csd-ask-thanks-s{font-size:13px;color:var(--muted);line-height:1.6;margin:0}
[data-lang="ar"] .csd-ask-form{text-align:right}

/* CTA + note */
.csd-cta{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);padding:30px 24px;margin:28px 0 16px}
.csd-cta h2{font-size:20px;font-weight:800;color:var(--white);font-family:var(--font);margin:0 0 10px;justify-content:center}
.csd-cta h2::before{display:none}
.csd-cta p{font-size:13.5px;color:var(--muted);line-height:1.7;max-width:540px;margin:0 auto 18px}
.csd-note{font-size:11.5px;color:var(--muted);line-height:1.7;text-align:center;max-width:600px;margin:0 auto;padding-bottom:20px;opacity:.8}

/* RTL */
[data-lang="ar"] .csd-role th{text-align:right;padding:10px 0 10px 16px}
[data-lang="ar"] .csd-list li{padding-left:0;padding-right:28px}
[data-lang="ar"] .csd-list li::before{left:auto;right:0}
[data-lang="ar"] .cs-pf-field{text-align:right}

/* ---------- Responsive ---------- */
@media(max-width:980px){.cs-pf-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){
  .cs-pf-grid{grid-template-columns:1fr}
  .cs-pf-tools{flex-direction:column;align-items:stretch}
  .cs-pf-field select,.cs-pf-field input{min-width:0;width:100%}
  .cs-pf-count{align-self:flex-start;padding-bottom:0}
  .csd-meta li{flex:1;min-width:calc(50% - 5px)}
  .csd-role th{width:auto;display:block;padding-bottom:2px;border-bottom:none}
  .csd-role td{display:block;padding-top:0}
  .csd-role tr{display:block;padding:10px 0;border-bottom:1px solid var(--border)}
}
