
:root{
  --cs-purple: var(--pulse-art-purple, #B12079);
  --cs-pencil: #3f4052;
  --cs-purple-2: var(--pulse-art-purple-2, #5E3FD7);
  --cs-orange: var(--pulse-art-orange, #F28C28);
  --cs-blue: var(--pulse-art-blue, #1e3a8a);
  --cs-ink: #171940;
  --cs-muted: #666;
  --cs-bg: #f7f8f9;
  --cs-card: #ffffff;
  --cs-border: rgba(23,25,64,.12);
}
.pulse-case-studies{font-family:"Inter","Noto Sans",sans-serif;color:var(--cs-ink);background:linear-gradient(180deg,#fff 0%,var(--cs-bg) 100%);padding:70px 0;overflow:hidden;}
.pulse-case-studies *{box-sizing:border-box;}
.pulse-case-studies .cs-container{width:min(1180px,calc(100% - 32px));margin:0 auto;position:relative;z-index:2;}
.cs-eyebrow{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:700;color:var(--cs-orange);margin:0 0 14px;}
.cs-eyebrow:before{content:"";width:28px;height:3px;border-radius:10px;background:var(--cs-orange);}
.cs-title{font-size:clamp(2rem,4vw,3.6rem);line-height:1.05;font-weight:800;letter-spacing:-.04em;margin:0 0 14px;color:var(--cs-ink);max-width:900px;}
.cs-lead{font-size:1.08rem;line-height:1.7;color:#4b4b5d;max-width:860px;margin:0 0 34px;}
.cs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:34px;}
.cs-card{position:relative;background:var(--cs-card);border:1px solid var(--cs-border);border-radius:22px;overflow:hidden;box-shadow:0 12px 34px rgba(23,25,64,.08);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;min-height:100%;display:flex;flex-direction:column;text-decoration:none;color:inherit;}
.cs-card:hover{transform:translateY(-6px);box-shadow:0 18px 44px rgba(23,25,64,.14);border-color:rgba(242,140,40,.42);text-decoration:none;color:inherit;}
.cs-card-media{height:230px;background:linear-gradient(135deg,rgba(177,32,121,.15),rgba(94,63,215,.15));overflow:hidden;position:relative;}
.cs-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease;}
.cs-card:hover .cs-card-media img{transform:scale(1.04);}
.cs-placeholder{height:100%;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--cs-orange);font-size:1.1rem;padding:24px;text-align:center;}
.cs-tag{position:absolute;left:18px;top:18px;background:rgba(255,255,255,.92);border-radius:999px;padding:7px 12px;font-size:.74rem;line-height:1;font-weight:800;color:var(--cs-ink);box-shadow:0 6px 20px rgba(0,0,0,.12);}
.cs-card-body{padding:24px 24px 26px;display:flex;flex-direction:column;gap:12px;flex:1;}
.cs-card-title{font-size:1.25rem;line-height:1.24;font-weight:650;letter-spacing:-.015em;margin:0;color:var(--cs-ink);}
.cs-partner{font-size:.86rem;line-height:1.3;color:var(--cs-pencil);font-weight:700;margin:0;}
.cs-card-abstract{font-size:.95rem;line-height:1.58;color:#4b4b5d;margin:0;}
.cs-readmore{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--cs-ink);font-size:.92rem;transition:transform .18s ease,color .18s ease;}
.cs-readmore i{color:var(--cs-orange);}
.cs-detail-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:48px;align-items:center;margin-bottom:44px;}
.cs-meta{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 0;}
.cs-pill{display:inline-flex;border-radius:999px;background:transparent;border:1.5px solid rgba(242,140,40,.62);color:var(--cs-pencil);font-size:.82rem;font-weight:800;padding:8px 12px;}
.cs-hero-image{border-radius:26px;overflow:hidden;box-shadow:0 22px 50px rgba(23,25,64,.16);background:#fff;position:relative;}
.cs-hero-image img{width:100%;height:420px;object-fit:cover;display:block;}
.cs-zoom-trigger{position:relative;display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;text-align:inherit;color:inherit;}
.cs-zoom-trigger img{transition:transform .25s ease, filter .25s ease;}
.cs-zoom-trigger:hover img{transform:scale(1.025);filter:brightness(.96);}
.cs-zoom-hint{position:absolute;right:14px;bottom:14px;width:42px;height:42px;border-radius:999px;background:rgba(23,25,64,.78);color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(5px);transition:opacity .2s ease,transform .2s ease;}
.cs-zoom-trigger:hover .cs-zoom-hint,.cs-zoom-trigger:focus-visible .cs-zoom-hint{opacity:1;transform:translateY(0);}
.cs-caption{font-size:.78rem;line-height:1.45;color:#555;background:#fff;padding:12px 16px;border-top:1px solid var(--cs-border);}
.cs-content{display:grid;grid-template-columns:260px minmax(0,1fr);gap:34px;align-items:start;}
.cs-nav{position:sticky;top:110px;background:#fff;border:1px solid var(--cs-border);border-radius:18px;padding:16px;box-shadow:0 10px 26px rgba(23,25,64,.06);}
.cs-nav a{display:block;padding:10px 12px;border-radius:12px;color:#333;text-decoration:none;font-weight:700;font-size:.92rem;}
.cs-nav a:hover{background:rgba(242,140,40,.10);color:var(--cs-orange);}
.cs-block{background:#fff;border:1px solid var(--cs-border);border-radius:22px;padding:30px;margin-bottom:22px;box-shadow:0 10px 30px rgba(23,25,64,.06);}
.cs-block h2{font-size:1.35rem;line-height:1.2;font-weight:800;margin:0 0 14px;color:var(--cs-ink);display:flex;align-items:center;gap:10px;}
.cs-block h2:before{content:"";width:8px;height:28px;border-radius:999px;background:var(--cs-orange);display:inline-block;}
.cs-block p{font-size:1.02rem;line-height:1.75;color:#333;margin:0 0 1em;}
.cs-block p:last-child{margin-bottom:0;}
.cs-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px;}
.cs-gallery .cs-zoom-trigger{border-radius:16px;overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,.08);}
.cs-gallery img{width:100%;height:180px;object-fit:cover;border-radius:16px;display:block;}
.cs-circle{position:absolute;border-radius:50%;z-index:0;filter:blur(.2px);opacity:.8;}
.cs-circle.one{width:160px;height:160px;background:rgba(242,140,40,.16);right:-40px;top:30px;}
.cs-circle.two{width:260px;height:260px;background:rgba(242,140,40,.10);left:-110px;bottom:20px;}

.cs-detail-footer{display:flex;justify-content:flex-start;margin:10px 0 28px;}
.cs-footer-back{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(242,140,40,.42);border-radius:999px;padding:8px 14px;text-decoration:none;font-size:.92rem;font-weight:700;color:var(--cs-orange);background:rgba(242,140,40,.045);}
.cs-footer-back:hover{color:var(--cs-orange-dark);border-color:rgba(242,140,40,.72);background:rgba(242,140,40,.08);text-decoration:none;}
.cs-lightbox{position:fixed;inset:0;background:rgba(10,11,28,.88);z-index:10000;display:flex;align-items:center;justify-content:center;padding:40px;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;}
.cs-lightbox.is-open{opacity:1;visibility:visible;}
.cs-lightbox img{max-width:min(1120px,92vw);max-height:82vh;object-fit:contain;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.45);background:#fff;}
.cs-lightbox-close{position:absolute;right:24px;top:24px;width:46px;height:46px;border-radius:999px;border:0;background:#fff;color:var(--cs-ink);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;}
.cs-lightbox-caption{position:absolute;left:40px;right:40px;bottom:16px;margin:0;text-align:center;color:#fff;font-size:.9rem;line-height:1.4;opacity:.86;}
body.cs-lightbox-open{overflow:hidden;}
@media(max-width:640px){.cs-lightbox{padding:18px}.cs-lightbox-close{right:14px;top:14px}.cs-lightbox-caption{display:none}.cs-zoom-hint{opacity:1;width:36px;height:36px;}}

@media(max-width:991px){.cs-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.cs-detail-hero{grid-template-columns:1fr;gap:28px}.cs-content{grid-template-columns:1fr}.cs-nav{position:relative;top:0;display:flex;gap:8px;flex-wrap:wrap}.cs-hero-image img{height:360px}}
@media(max-width:640px){.pulse-case-studies{padding:48px 0}.cs-grid{grid-template-columns:1fr}.cs-card-media{height:220px}.cs-block{padding:22px}.cs-gallery{grid-template-columns:1fr}.cs-gallery img{height:230px}.cs-title{font-size:2rem}}

/* Introductory methodology block on the case-studies index */
.cs-intro-block{
  width:100%;
  max-width:none;
  background:#fff;
  border:1px solid var(--cs-border);
  border-radius:24px;
  padding:30px 34px;
  margin:24px 0 40px;
  box-shadow:0 14px 38px rgba(23,25,64,.07);
  position:relative;
  overflow:hidden;
}
.cs-intro-block:before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:7px;
  background:var(--cs-orange);
  border-radius:24px 0 0 24px;
}
.cs-intro-block p{
  font-size:1.02rem;
  line-height:1.78;
  color:#333647;
  margin:0 0 1.05em;
}
.cs-intro-block p:last-child{
  margin-bottom:0;
}
.cs-intro-block strong{
  color:var(--cs-ink);
  font-weight:750;
}

@media(max-width:640px){
  .cs-intro-block{
    padding:24px 22px 24px 26px;
    margin:20px 0 30px;
    border-radius:20px;
  }
  .cs-intro-block p{
    font-size:.98rem;
    line-height:1.7;
  }
}


/* Refined navigation and section-top links */
.cs-block-top{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:.82rem;font-weight:800;color:var(--cs-orange);text-decoration:none;opacity:.9;}
.cs-block-top:hover{color:var(--cs-orange-dark);opacity:1;text-decoration:none;}
.cs-block .cs-block-top{margin-left:auto;}
.cs-section-footer{display:flex;justify-content:flex-end;}
@media(max-width:991px){.cs-section-footer{display:none;}}


/* === Contrast + hover refinements v3 === */
.pulse-case-studies a,
.pulse-case-studies a:hover,
.pulse-case-studies a:focus{
  text-decoration:none !important;
}

/* Softer title weight only on the index/list page */
.pulse-case-studies:not(.cs-detail) .cs-title{
  font-weight:700;
  letter-spacing:-.028em;
}
.pulse-case-studies:not(.cs-detail) .cs-card-title{
  font-weight:650;
}

/* Replace underline hovers with movement / fill effects */
.cs-card:hover .cs-readmore{
  transform:translateX(4px);
  color:var(--cs-ink);
}
.cs-card:hover .cs-readmore i{
  transform:translateX(3px);
}
.cs-readmore i{
  transition:transform .18s ease;
}
.cs-nav a{
  transition:background-color .18s ease,color .18s ease,transform .18s ease;
}
.cs-nav a:hover{
  transform:translateX(3px);
  background:rgba(242,140,40,.10);
  color:var(--cs-ink);
}

/* Section Top links: black for WCAG contrast, with subtle hover instead of underline */
.cs-block-top{
  color:#232323 !important;
  font-weight:700;
  opacity:.75;
  transition:opacity .18s ease,transform .18s ease,color .18s ease;
}
.cs-block-top i{
  color:#232323 !important;
}
.cs-block-top:hover,
.cs-block-top:focus{
  color:#232323 !important;
  opacity:1;
  transform:translateY(-2px);
  text-decoration:none !important;
}

/* Footer back link: light, not button-heavy, no underline on hover */
.cs-footer-back{
  border:0 !important;
  background:transparent !important;
  color:#232323 !important;
  padding:4px 0 !important;
  border-radius:0 !important;
  font-weight:700;
  opacity:.78;
  transition:opacity .18s ease,transform .18s ease,color .18s ease;
}
.cs-footer-back i{
  color:var(--cs-orange);
  transition:transform .18s ease;
}
.cs-footer-back:hover,
.cs-footer-back:focus{
  color:#232323 !important;
  opacity:1;
  transform:translateX(-3px);
  text-decoration:none !important;
}
.cs-footer-back:hover i{
  transform:translateX(-3px);
}

/* Tags: pencil text with orange outline, no purple weight */
.cs-pill{
  color:#333647;
  font-weight:700;
  border-color:rgba(211,78,22,.55);
  background:rgba(211,78,22,.035);
}
.case-discipline {
  text-transform: uppercase;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #d94f16;
}

.case-card-title,
.case-index-title {
  text-transform: none;
  font-weight: 550;
  letter-spacing: -0.025em;
  line-height: 1.12;
  color: #171940;
}


/* === Typography refinement v4: index titles ===
   Use .cs-card-title because this is the class used in the generated case-study cards.
   .case-card-title / .case-index-title are kept below only as aliases. */

/* Main index/page heading */
.pulse-case-studies:not(.cs-detail) .cs-title {
  text-transform: none !important;
  font-weight: 600 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.08 !important;
}

/* Case-study card titles on index */
.pulse-case-studies:not(.cs-detail) .cs-card-title,
.pulse-case-studies:not(.cs-detail) .case-card-title,
.pulse-case-studies:not(.cs-detail) .case-index-title {
  text-transform: none !important;
  font-weight: 500 !important;
  letter-spacing: -0.015em !important;
  line-height: 1.24 !important;
  color: var(--cs-ink) !important;
}

/* Detail page hero title: keep strong but not heavy */
.pulse-case-studies.cs-detail .cs-title {
  text-transform: none !important;
  font-weight: 650 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.04 !important;
}

/* Discipline/eyebrow stays uppercase because it is short metadata, not the title */
.cs-eyebrow,
.case-discipline {
  text-transform: uppercase !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
}

/* Prevent underline on hover everywhere inside case studies */
.pulse-case-studies a,
.pulse-case-studies a:hover,
.pulse-case-studies a:focus {
  text-decoration: none !important;
}

.cs-card-title::before {
  content: "";
  display: block;
  width: 54px;
  height: 4px;
  border-radius: 999px;
  background: var(--cs-orange);
  margin-bottom: 16px;
}

@media (min-width: 992px){
  .cs-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cs-grid .cs-card:nth-child(7):last-child{
    grid-column: 2;
  }
}


/* =====================================================================
   v5 — Index page aligned with the Framework template
   - Intro text lives in static HTML (section.cs-page-intro); JS renders only the cards
   - Cards sit on the grey wave section (.cs-list-section)
   - One card per row, horizontal layout, cf-card look
   ===================================================================== */

/* The JS wrapper becomes transparent inside the template section */
.cs-list-section .pulse-case-studies{
  background:transparent;
  padding:0;
  overflow:visible;
}
.cs-list-section .pulse-case-studies .cs-container{
  width:100%;
  margin:0;
}

/* One card per row */
.cs-list-section .cs-grid{
  grid-template-columns:1fr !important;
  gap:28px;
  margin-top:0;
}
.cs-list-section .cs-grid .cs-card:nth-child(7):last-child{
  grid-column:auto;
}

/* Card = cf-card look, horizontal */
.cs-list-section .cs-card{
  flex-direction:row;
  min-height:0;
  background:#fff;
  border:1px solid #eef0f3;
  border-radius:18px;
  box-shadow:0 20px 45px -20px rgba(33,37,41,.25);
}
.cs-list-section .cs-card:hover{
  transform:translateY(-3px);
  box-shadow:0 26px 50px -20px rgba(33,37,41,.35);
  border-color:#eef0f3;
}
.cs-list-section .cs-card:focus-visible{
  outline:3px solid #4a55c7;
  outline-offset:3px;
}
.cs-list-section .cs-card-media{
  flex:0 0 40%;
  height:auto;
  min-height:260px;
  background:#f7f8f9;
}
.cs-list-section .cs-card-media img{
  position:absolute;
  inset:0;
}
.cs-list-section .cs-card-body{
  padding:1.75rem 1.9rem 1.9rem;
  gap:10px;
  justify-content:center;
}

/* Title in the template's card-heading style (no orange bar) */
.cs-list-section .cs-card-title::before{ display:none; }
.cs-list-section .pulse-case-studies:not(.cs-detail) .cs-card-title{
  font-weight:700 !important;
  font-size:1.3rem;
  color:#212529 !important;
}
/* Card text follows the theme body size (14px) instead of rem (16px base) */
.cs-list-section .cs-partner{ color:#555; font-weight:600; font-size:.93em; }
.cs-list-section .cs-card-abstract{
  font-size:inherit;
  line-height:inherit;
  color:#555;
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* "Read more" as the template's pill button */
.cs-list-section .cs-readmore{
  align-self:flex-start;
  margin-top:10px;
  padding:.55rem 1.4rem;
  border-radius:999px;
  background:var(--primary,#B12079);
  color:#fff;
  font-size:.93em;
  transition:background-color .18s ease,transform .18s ease;
}
.cs-list-section .cs-readmore i{ color:#fff; }
.cs-list-section .cs-card:hover .cs-readmore{
  color:#fff;
  transform:none;
  filter:brightness(1.08);
}

/* Tablet / mobile: stack image on top */
@media (max-width:767px){
  .cs-list-section .cs-card{ flex-direction:column; }
  .cs-list-section .cs-card-media{ flex:none; height:220px; min-height:0; }
  .cs-list-section .cs-card-body{ padding:1.4rem 1.4rem 1.6rem; }
}

@media (prefers-reduced-motion:reduce){
  .cs-list-section .cs-card,
  .cs-list-section .cs-card:hover,
  .cs-list-section .cs-card-media img{ transition:none; transform:none; }
}

/* Downloads section: print button sits under the attachment cards */
.cs-print-slot-btn i{margin-right:6px;}
.cs-print-slot:empty{display:none;}
