/* NLP Chart Review Case Study — scoped under .cs-nlp */
.cs-nlp{
  --c-primary:#3071D3;
  --c-primary-emphasis:#7DB3FF;
  --c-primary-tint:#F0F6FF;
  --c-black:#242424;
  --c-grey-1:#717182;
  --c-grey-2:#6B7280;
  --c-grey-3:#45556C;
  --c-offwhite:#EBEBEB;
  --c-white:#FFFFFF;
  --c-surface:#FBFBFB;
  --c-pill:#EAEAEA;
  --c-nav:#272727;
  --c-nav-text:#E8E8E8;
  --c-nav-active:#BEBEBE;
  --c-border:#E9E9E9;
  --c-border-soft:rgba(170,170,170,.29);
  --ff-display:'Plus Jakarta Sans','Segoe UI',sans-serif;
  --ff-body:'Inter','Segoe UI',sans-serif;
  --fs-h2:34px; --lh-h2:44px; --ls-h2:-.09px;
  --fs-xxl:24px;
  --fs-xl:22px; --lh-xl:30px;
  --fs-lg:18px; --lh-lg:28px;
  --fs-md:16px; --lh-md:26px;
  --fs-sm:14px; --lh-sm:22px;
  --fs-xs:12px;
  --container:1280px;
  --gutter:clamp(20px,5vw,68px);
  --radius:12px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --dur:.35s;
  --dur-fast:.2s;
  margin-top:65px;
  font-family:var(--ff-body);
  font-size:var(--fs-lg);
  line-height:var(--lh-lg);
  color:var(--c-grey-1);
  background:var(--c-white);
  -webkit-font-smoothing:antialiased;
}
.cs-nlp *,.cs-nlp *::before,.cs-nlp *::after{box-sizing:border-box}
.cs-nlp img{max-width:100%;display:block}
.cs-nlp p{margin:0}
.cs-nlp a{text-decoration:none;color:inherit}
.cs-nlp :focus-visible{outline:3px solid var(--c-primary-emphasis);outline-offset:3px;border-radius:4px}

.cs-nlp .l-container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.cs-nlp .l-section{padding-block:clamp(48px,7vw,85px)}
.cs-nlp .l-section--tint{background:var(--c-surface)}
.cs-nlp .l-section--dark{background:var(--c-black)}

.cs-nlp .section-title{font-family:var(--ff-display);font-weight:700;font-size:clamp(26px,3.2vw,var(--fs-h2));line-height:1.3;letter-spacing:var(--ls-h2);color:var(--c-primary);margin:0 0 17px}
.cs-nlp .section-title--emphasis{color:var(--c-primary-emphasis);text-transform:capitalize}
.cs-nlp .section-lead{color:var(--c-grey-1);max-width:1035px}

.cs-nlp .button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:56px;padding:14px 40px;border-radius:var(--radius);font-family:var(--ff-body);font-weight:600;font-size:var(--fs-md);line-height:28px;white-space:nowrap;cursor:pointer;border:0;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.cs-nlp .button--primary{background:var(--c-primary);color:var(--c-white);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}
.cs-nlp .button--primary:hover{background:#245db4;transform:translateY(-2px);box-shadow:0 16px 26px -6px rgba(48,113,211,.38)}
.cs-nlp .button--primary:active{transform:translateY(0)}
.cs-nlp .button--light{background:var(--c-white);color:var(--c-primary);font-weight:700;border-radius:14px;padding:16px 37px}
.cs-nlp .button--light:hover{transform:translateY(-2px);box-shadow:0 18px 30px -10px rgba(0,0,0,.35)}
.cs-nlp .button__icon{width:20px;height:20px;transition:transform var(--dur) var(--ease)}
.cs-nlp .button--light:hover .button__icon{transform:translateX(4px)}

.cs-nlp .hero{background:var(--c-white);padding-block:60px 0}
.cs-nlp .hero__top{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;flex-wrap:wrap;margin-bottom:60px}
.cs-nlp .hero__intro{max-width:800px}
.cs-nlp .hero__title{font-family:var(--ff-display);font-weight:500;font-size:clamp(26px,3.4vw,var(--fs-h2));line-height:1.3;letter-spacing:var(--ls-h2);color:var(--c-black);margin:0 0 17px}
.cs-nlp .hero__title-strong{font-weight:700}
.cs-nlp .hero__subtitle{color:var(--c-grey-1);max-width:692px}
.cs-nlp .hero__media{position:relative;border-radius:4px 4px 0 0;overflow:hidden;min-height:clamp(320px,38vw,458px);display:flex;align-items:center;justify-content:flex-end}
.cs-nlp .hero__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.2s var(--ease)}
.cs-nlp .hero__media:hover .hero__image{transform:scale(1.06)}
.cs-nlp .hero__overlay{position:absolute;inset:0;background:linear-gradient(268deg, rgba(0,0,0,.75) 23.5%, rgba(255,255,255,.32) 56%)}
.cs-nlp .hero__stats{position:relative;display:flex;flex-direction:column;gap:25px;padding:40px clamp(20px,4vw,80px);width:min(100%,320px)}
.cs-nlp .stat{display:flex;flex-direction:column;gap:8px}
.cs-nlp .stat__value{font-family:var(--ff-display);font-weight:700;font-size:30px;line-height:40px;color:var(--c-white);margin:0}
.cs-nlp .stat__label{font-family:var(--ff-body);font-weight:500;font-size:var(--fs-sm);line-height:1.45;color:var(--c-white);margin:0}
.cs-nlp .stat__divider{width:60px;height:1px;border:0;margin:0;background:rgba(255,255,255,.2)}

.cs-nlp .nav{position:sticky;top:78px;z-index:50;background:var(--c-nav);min-height:53px;display:flex;align-items:center}
.cs-nlp .nav__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;max-width:var(--container);margin-inline:auto;padding:6px clamp(16px,3vw,25px)}
.cs-nlp .nav__list{list-style:none;display:flex;align-items:center;gap:clamp(14px,2.6vw,42px);margin:0;padding:0;overflow-x:auto;scrollbar-width:none}
.cs-nlp .nav__list::-webkit-scrollbar{display:none}
.cs-nlp .nav__label{font-weight:700;font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--c-nav-text);white-space:nowrap;margin-right:5px}
.cs-nlp .nav__link{display:inline-flex;align-items:center;padding:5px 10px;border-radius:4px;font-weight:500;font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--c-nav-text);white-space:nowrap;background:transparent;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.cs-nlp .nav__link:hover{background:rgba(255,255,255,.12);color:var(--c-white)}
.cs-nlp .nav__link--active{background:var(--c-nav-active);color:#1D1D1D;font-weight:700}
.cs-nlp .nav__link--active:hover{background:var(--c-nav-active);color:#1D1D1D}
.cs-nlp .nav__share{margin:0;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;background:transparent;color:var(--c-nav-text);cursor:pointer;border-radius:6px;flex-shrink:0;transition:background-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.cs-nlp .nav__share:hover{background:rgba(255,255,255,.12);transform:scale(1.08)}

.cs-nlp .overview__grid{display:grid;grid-template-columns:336px minmax(0,1fr);gap:clamp(32px,3.5vw,52px);align-items:start}
.cs-nlp .stack__title{font-weight:700;font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--c-grey-1);letter-spacing:.02em;margin:0 0 22px}
.cs-nlp .stack__group{margin-bottom:22px}
.cs-nlp .stack__group:last-child{margin-bottom:0}
.cs-nlp .stack__group-label{font-weight:500;font-size:var(--fs-xs);line-height:1.4;color:var(--c-grey-1);margin:0 0 8px}
.cs-nlp .stack__pills{display:flex;flex-wrap:wrap;gap:10px}
.cs-nlp .pill{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;min-height:30px;border-radius:40px;background:var(--c-pill);color:var(--c-black);font-weight:500;font-size:var(--fs-xs);line-height:1.4;transition:background-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.cs-nlp .pill:hover{background:var(--c-primary-tint);transform:translateY(-2px);box-shadow:0 6px 14px -6px rgba(48,113,211,.45)}
.cs-nlp .pill--block{width:min(300px,100%);text-align:left;justify-content:flex-start;min-height:49px}
.cs-nlp .overview__body{display:flex;flex-direction:column;gap:17px}

.cs-nlp .requirements__list{list-style:none;margin:40px 0 0;padding:0}
.cs-nlp .requirement{padding-block:26px;border-bottom:1px solid var(--c-border)}
.cs-nlp .requirement:last-child{border-bottom:0;padding-bottom:0}
.cs-nlp .requirement__head{display:flex;align-items:center;gap:clamp(16px,2.5vw,38px)}
.cs-nlp .requirement__icon{flex-shrink:0;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--c-border);border-radius:6px;background:linear-gradient(180deg,#FFFFFF 0%,#F5F8FF 100%);color:var(--c-primary);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.cs-nlp .requirement:hover .requirement__icon{transform:translateY(-2px) rotate(-4deg);box-shadow:0 8px 18px -8px rgba(48,113,211,.5)}
.cs-nlp .requirement__title{font-weight:600;font-size:clamp(19px,2vw,var(--fs-xl));line-height:var(--lh-xl);color:var(--c-black);margin:0}
.cs-nlp .requirement__text{margin:14px 0 0;padding-left:calc(42px + clamp(16px,2.5vw,38px));color:var(--c-grey-1)}

.cs-nlp .solution__figure{margin:40px 0 0}
.cs-nlp .solution__image{width:100%;border-radius:8px;transition:transform var(--dur) var(--ease)}
.cs-nlp .solution__caption{margin-top:24px;text-align:center;font-weight:500;font-style:italic;color:var(--c-grey-1);max-width:865px;margin-inline:auto}

.cs-nlp .steps{list-style:none;margin:0;padding:0}
.cs-nlp .step{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,545px);gap:78px;align-items:center;min-height:296px;padding-block:39px;border-bottom:1px solid var(--c-border)}
.cs-nlp .step:last-child{border-bottom:0}
.cs-nlp .step__content{grid-column:1;grid-row:1;min-width:0}
.cs-nlp .step__visual{grid-column:2;grid-row:1;min-width:0;width:100%}
.cs-nlp .step--reverse{grid-template-columns:minmax(0,545px) minmax(0,1fr)}
.cs-nlp .step--reverse .step__visual{grid-column:1;grid-row:1}
.cs-nlp .step--reverse .step__content{grid-column:2;grid-row:1}
.cs-nlp .step__eyebrow{font-weight:500;font-size:var(--fs-md);line-height:var(--lh-md);color:var(--c-grey-2);margin:0 0 8px}
.cs-nlp .step__title{font-weight:600;font-size:clamp(19px,2vw,var(--fs-xl));line-height:var(--lh-xl);color:var(--c-black);margin:0 0 14px}
.cs-nlp .step__text{color:var(--c-grey-1);margin:0}

.cs-nlp .mock{position:relative;box-sizing:border-box;width:100%;max-width:545px;height:218px;display:flex;align-items:center;justify-content:center;gap:var(--mock-gap,16px);padding:24px clamp(16px,2.5vw,24px);overflow:hidden;background:rgba(217,217,217,.05);border:1px solid var(--c-border-soft);transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}
.cs-nlp .step:hover .mock{border-color:var(--c-primary-emphasis);background:rgba(48,113,211,.03)}
.cs-nlp .mock__note{flex:0 1 191px;min-width:0;display:flex;flex-direction:column;gap:12px;padding:10px 8px;background:var(--c-white);border-radius:7px;filter:drop-shadow(0 8px 19px rgba(0,0,0,.08))}
.cs-nlp .mock__lines{flex:0 1 210px;min-width:0;display:flex;flex-direction:column;gap:9px}
.cs-nlp .mock__line{height:7px;max-width:100%;border-radius:21px;background:#D9D9D9;transition:background-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.cs-nlp .mock__line--lg{height:14px}
.cs-nlp .mock__line--hit{background:var(--c-primary)}
.cs-nlp .mock__note .mock__line:nth-child(1){width:89%}
.cs-nlp .mock__note .mock__line:nth-child(2){width:71%}
.cs-nlp .mock__note .mock__line:nth-child(3){width:100%}
.cs-nlp .mock__note .mock__line:nth-child(4){width:59%}
.cs-nlp .mock__note .mock__line:nth-child(5){width:71%}
.cs-nlp .mock__note .mock__line:nth-child(6){width:83%}
.cs-nlp .mock__note .mock__line:nth-child(7){width:43%}
.cs-nlp .mock__lines .mock__line:nth-child(1){width:89%}
.cs-nlp .mock__lines .mock__line:nth-child(2){width:71%}
.cs-nlp .mock__lines .mock__line:nth-child(3){width:100%}
.cs-nlp .mock__lines .mock__line:nth-child(4){width:84%}
.cs-nlp .step:hover .mock__line--hit{transform:scaleX(1.04);transform-origin:left}
.cs-nlp .mock__arrow{flex:0 1 auto;width:100%;max-width:82px;min-width:22px;height:auto;color:var(--c-primary)}
.cs-nlp .mock__arrow--short{max-width:61px}
.cs-nlp .mock__arrow--long{max-width:159px}
.cs-nlp .mock--chain{--mock-gap:8px}
.cs-nlp .step:hover .mock__arrow{animation:cs-nlp-nudge 1s var(--ease) infinite}
@keyframes cs-nlp-nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}
.cs-nlp .mock__card{flex:0 0 auto;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:11px 9px;border-radius:7px;text-align:center;font-family:var(--ff-display);font-weight:500;font-size:11px;line-height:14px;background:var(--c-primary-tint);border:1px solid var(--c-primary-emphasis);color:var(--c-black);filter:drop-shadow(0 8px 19px rgba(0,0,0,.08));min-height:48px;width:110px;transition:transform var(--dur) var(--ease)}
.cs-nlp .step:hover .mock__card{transform:translateY(-3px)}
.cs-nlp .mock__card--muted{background:var(--c-white);border-color:#B7B7B7;color:var(--c-grey-2);width:108px}
.cs-nlp .mock__card--outline{background:var(--c-white);border-color:var(--c-primary-emphasis);color:var(--c-primary);border-radius:8px;width:112px;min-height:77px}
.cs-nlp .mock__card-code{color:var(--c-grey-2)}
.cs-nlp .mock__node{flex:0 0 auto;box-sizing:border-box;display:grid;place-items:center;border-radius:50%;font-family:var(--ff-display);font-weight:500;font-size:11px;text-align:center}
.cs-nlp .mock__node--nlp{width:74px;height:74px;background:var(--c-primary-tint);border:1px solid var(--c-primary-emphasis);color:var(--c-primary)}
.cs-nlp .mock__node--coder{width:112px;height:112px;background:var(--c-white);border:2px solid var(--c-primary-emphasis);color:var(--c-black);line-height:14px}
.cs-nlp .step:hover .mock__node--coder{box-shadow:0 0 0 8px rgba(125,179,255,.15)}
.cs-nlp .mock__node,.cs-nlp .mock__node--nlp,.cs-nlp .mock__node--coder{transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}
.cs-nlp .step:hover .mock__node--nlp{transform:scale(1.05)}

.cs-nlp .implementation__lead{color:var(--c-black);font-weight:500;margin-bottom:10px}
.cs-nlp .implementation__body{color:var(--c-grey-2)}
.cs-nlp .timeline{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--c-white);border:1px solid var(--c-offwhite)}
.cs-nlp .timeline__item{padding:32px clamp(18px,2vw,34px);border-right:1px solid var(--c-offwhite);transition:background-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.cs-nlp .timeline__item:last-child{border-right:0}
.cs-nlp .timeline__item:hover{background:#F7FAFF;transform:translateY(-3px)}
.cs-nlp .timeline__step{font-weight:500;font-size:var(--fs-md);line-height:var(--lh-md);color:var(--c-grey-2);margin:0 0 4px}
.cs-nlp .timeline__value{font-weight:600;font-size:var(--fs-lg);line-height:var(--lh-lg);color:var(--c-black);margin:0 0 14px}
.cs-nlp .timeline__text{font-weight:400;font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--c-grey-1);margin:0}

.cs-nlp .highlights__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:35px}
.cs-nlp .highlight__title{font-weight:600;font-size:clamp(20px,2.2vw,var(--fs-xxl));line-height:1.35;color:var(--c-black);margin:0 0 15px;transition:color var(--dur) var(--ease)}
.cs-nlp .highlight:hover .highlight__title{color:var(--c-primary)}
.cs-nlp .highlight__text{color:var(--c-grey-3);margin:0;max-width:1107px}

.cs-nlp .benefits__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--c-offwhite);margin-bottom:88px}
.cs-nlp .benefits__stat{padding:clamp(28px,3vw,48px);border-right:1px solid var(--c-offwhite);transition:background-color var(--dur) var(--ease)}
.cs-nlp .benefits__stat:last-child{border-right:0}
.cs-nlp .benefits__stat:hover{background:rgba(125,179,255,.06)}
.cs-nlp .benefits__stat-value{font-family:var(--ff-display);font-weight:700;font-size:clamp(38px,4.5vw,54px);line-height:1.26;letter-spacing:-.3px;color:var(--c-primary-emphasis);margin:0 0 12px}
.cs-nlp .benefits__stat-label{font-weight:500;font-size:20px;line-height:28px;color:var(--c-offwhite);margin:0}
.cs-nlp .benefits__table-wrap{background:rgba(217,217,217,.04);border-radius:12px 12px 0 0;padding:clamp(20px,3vw,32px);overflow-x:auto}
.cs-nlp .benefits__table{width:100%;min-width:720px;border-collapse:collapse;text-align:left}
.cs-nlp .benefits__table th{font-weight:500;font-size:var(--fs-md);line-height:28px;color:var(--c-white);text-transform:capitalize;padding:0 24px 24px 0;border-bottom:1px solid rgba(235,235,235,.25)}
.cs-nlp .benefits__table td{padding:24px 24px 24px 0;vertical-align:top;font-size:var(--fs-lg);line-height:var(--lh-lg);color:var(--c-offwhite);font-weight:400}
.cs-nlp .benefits__table tbody tr{transition:background-color var(--dur) var(--ease)}
.cs-nlp .benefits__table tbody tr:hover{background:rgba(125,179,255,.05)}
.cs-nlp .benefits__cell--name{color:var(--c-white);font-weight:500;width:30%}
.cs-nlp .benefits__cell--metric{color:var(--c-primary-emphasis);font-weight:500;width:20%}

.cs-nlp .takeaway__lead{color:var(--c-black);font-weight:500;margin-bottom:24px}
.cs-nlp .takeaway__text{color:var(--c-grey-1)}

.cs-nlp .cta{background:var(--c-primary);text-align:center;padding-block:clamp(56px,7vw,96px)}
.cs-nlp .cta__title{font-weight:700;font-size:clamp(28px,3.6vw,38px);line-height:1.5;letter-spacing:-.95px;color:var(--c-white);margin:0 auto 12px;max-width:678px}
.cs-nlp .cta__text{color:var(--c-white);opacity:.95;margin:0 auto 32px;max-width:621px}

.cs-nlp .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease), transform .7s var(--ease)}
.cs-nlp .reveal.is-visible{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .cs-nlp *,.cs-nlp *::before,.cs-nlp *::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .cs-nlp .reveal{opacity:1;transform:none}
}
@media (max-width:1200px){
  .cs-nlp .step,.cs-nlp .step--reverse{gap:40px}
}
@media (max-width:1024px){
  .cs-nlp .overview__grid{grid-template-columns:1fr}
  .cs-nlp .step,.cs-nlp .step--reverse{grid-template-columns:minmax(0,1fr);min-height:0}
  .cs-nlp .step .step__content,.cs-nlp .step--reverse .step__content{grid-column:1;grid-row:1}
  .cs-nlp .step .step__visual,.cs-nlp .step--reverse .step__visual{grid-column:1;grid-row:2}
  .cs-nlp .timeline{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cs-nlp .timeline__item:nth-child(2n){border-right:0}
  .cs-nlp .timeline__item:nth-child(-n+2){border-bottom:1px solid var(--c-offwhite)}
  .cs-nlp .benefits__stats{grid-template-columns:1fr;margin-bottom:56px}
  .cs-nlp .benefits__stat{border-right:0;border-bottom:1px solid var(--c-offwhite)}
  .cs-nlp .benefits__stat:last-child{border-bottom:0}
}
@media (max-width:991px){
  .cs-nlp{margin-top:56px}
  .cs-nlp .nav{top:56px}
}
@media (max-width:768px){
  .cs-nlp .hero{padding-top:36px}
  .cs-nlp .hero__top{margin-bottom:36px}
  .cs-nlp .hero__media{align-items:stretch;justify-content:flex-start;min-height:0}
  .cs-nlp .hero__overlay{background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.82) 55%)}
  .cs-nlp .hero__stats{width:100%;padding:180px 24px 32px}
  .cs-nlp .requirement__text{padding-left:0}
  .cs-nlp .timeline{grid-template-columns:1fr}
  .cs-nlp .timeline__item{border-right:0;border-bottom:1px solid var(--c-offwhite)}
  .cs-nlp .timeline__item:last-child{border-bottom:0}
  .cs-nlp .mock{flex-direction:column;gap:20px;height:auto;min-height:218px}
  .cs-nlp .mock__arrow{transform:rotate(90deg)}
  .cs-nlp .button--primary{width:100%}
  .cs-nlp .nav{display:none}
}