/* ===== CASE STUDIES (list + detail) ===== */
.pg-casestudy a { text-decoration: none }
.cs-hero-wrap { grid-template-columns: 1fr }
.cs-back { display: inline-block; margin-top: .4rem; font: 600 .95rem Inter, sans-serif; color: var(--indigo) }
.cs-back:hover { text-decoration: underline; text-underline-offset: 3px }
.ihero .hero-inner h1 { overflow-wrap: anywhere }

/* details card in the hero */
.cs-facts { display: grid; gap: .8rem; padding: 1.5rem; border-radius: 24px; background: rgba(255,255,255,.82); border: 1px solid rgba(37,39,201,.14); box-shadow: 0 30px 60px -34px rgba(37,39,201,.55); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px) }
.cs-fact { padding: .95rem 1.1rem; border-radius: 16px; background: #f5f6ff; border-left: 3px solid var(--indigo) }
.cs-fact small { display: block; margin-bottom: .3rem; font: 500 .68rem/1 'IBM Plex Mono', monospace; letter-spacing: .16em; text-transform: uppercase; color: var(--grey) }
.cs-fact b { display: block; font: 700 1.02rem/1.45 Manrope, sans-serif; color: var(--ink); overflow-wrap: anywhere }

/* list page */
.cs-list-sec { padding-bottom: 5rem }
.cs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr)); gap: 1.4rem; max-width: 1100px }
.cs-card { position: relative; display: flex; flex-direction: column; gap: .9rem; padding: 2rem 2rem 1.7rem; border-radius: 24px; background: #fff; border: 1px solid rgba(37,39,201,.12); box-shadow: 0 22px 44px -32px rgba(37,39,201,.5); overflow: hidden; transition: transform .4s var(--ease), box-shadow .4s, border-color .4s }
.cs-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: linear-gradient(90deg, #2527c9, #7a44dc) }
.cs-card:hover { transform: translateY(-5px); border-color: rgba(37,39,201,.35); box-shadow: 0 30px 56px -28px rgba(37,39,201,.6) }
.cs-card-n { font: 500 .8rem 'IBM Plex Mono', monospace; letter-spacing: .14em; color: var(--indigo) }
.cs-card h2 { font: 800 clamp(1.25rem, 2vw, 1.55rem)/1.25 Manrope, sans-serif; letter-spacing: -.01em; margin: 0 }
.cs-card h2 a { color: var(--ink) }
.cs-card h2 a:hover { color: var(--indigo) }
.cs-card p { font: 400 1rem/1.7 Inter, sans-serif; color: #3d465a; margin: 0 }
.cs-more { margin-top: auto; padding-top: .4rem; font: 700 .92rem Manrope, sans-serif; color: var(--indigo) }
.cs-more i { display: inline-block; font-style: normal; transition: transform .3s var(--ease) }
.cs-card:hover .cs-more i { transform: translateX(6px) }
.cs-none { padding: 2rem 0; color: var(--grey); font-size: 1.05rem }

/* detail page */
.cs-article { padding-bottom: 5rem }
.cs-stack { display: grid; gap: 1.4rem; max-width: 960px }
.cs-block { padding: 2.2rem 2.4rem 1.7rem; border-radius: 24px; background: #fff; border: 1px solid rgba(37,39,201,.1); box-shadow: 0 22px 44px -34px rgba(37,39,201,.45); min-width: 0 }
.cs-block h2 { font: 800 clamp(1.3rem, 2.2vw, 1.6rem)/1.25 Manrope, sans-serif; letter-spacing: -.01em; color: var(--ink); margin: 0 0 1.2rem; padding-bottom: .9rem; position: relative }
.cs-block h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, #2527c9, #7a44dc) }
.cs-block h3 { font: 700 1.12rem/1.35 Manrope, sans-serif; color: var(--indigo); margin: 1.4rem 0 .5rem }
.cs-block p { font: 400 1.03rem/1.78 Inter, sans-serif; color: #3d465a; margin: 0 0 1rem; overflow-wrap: anywhere }
.cs-block strong { color: var(--ink); font-weight: 700 }
.cs-list { list-style: none; padding: 0; margin: 0 0 1rem }
.cs-list li { position: relative; padding: 0 0 .9rem 2rem; font: 400 1.03rem/1.7 Inter, sans-serif; color: #3d465a; overflow-wrap: anywhere }
.cs-list li::before { content: ""; position: absolute; left: 0; top: .32rem; width: 18px; height: 18px; border-radius: 50%; background: #e5e7ff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232527c9' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center/11px no-repeat }

.cs-table-wrap { overflow-x: auto; margin: 0 0 1rem; border-radius: 16px; border: 1px solid rgba(37,39,201,.14) }
.cs-table { width: 100%; border-collapse: collapse; min-width: 520px }
.cs-table th, .cs-table td { padding: 1rem 1.2rem; text-align: left; vertical-align: top; font: 400 1rem/1.65 Inter, sans-serif; color: #3d465a; border-bottom: 1px solid rgba(37,39,201,.1) }
.cs-table thead th { background: linear-gradient(135deg, #2527c9, #7a44dc); color: #fff; font: 700 .9rem Manrope, sans-serif; letter-spacing: .02em; border: 0 }
.cs-table tbody th { width: 28%; font-weight: 700; color: var(--ink); background: #f5f6ff }
.cs-table tbody tr:last-child th, .cs-table tbody tr:last-child td { border-bottom: 0 }

.cs-quote { margin: 1.4rem 0 .4rem; padding: 1.4rem 1.6rem; border-radius: 18px; background: #f5f6ff; border-left: 4px solid var(--indigo) }
.cs-quote p { font: italic 500 1.05rem/1.75 Inter, sans-serif; color: var(--ink); margin: 0 0 .8rem }
.cs-quote cite { display: block; font: 700 .9rem Manrope, sans-serif; font-style: normal; color: var(--indigo) }

@media (max-width: 991px) { .cs-facts { margin-top: 1.4rem } }
@media (max-width: 575px) {
  .cs-card { padding: 1.5rem 1.3rem 1.3rem }
  .cs-block { padding: 1.6rem 1.25rem 1.1rem; border-radius: 20px }
  .cs-facts { padding: 1.1rem }
  .cs-table th, .cs-table td { padding: .85rem .9rem }
}
@media (prefers-reduced-motion: reduce) { .cs-card { transition: none } }
