/**
 * Premium case-study showcase.
 * Opt-in and ACF-driven: legacy case studies keep their existing bands until migrated.
 */
.csv2{
	--csv2-navy:#170D3D;
	--csv2-cyan:#0AA3D6;
	--csv2-ink:#170D3D;
	--csv2-copy:#505775;
	--csv2-line:#E1E8F2;
	--csv2-radius:22px;
	font-family:"Heebo",sans-serif;color:var(--csv2-copy);overflow:hidden;
}
.cs-showcase-v2 .cs-context,
.cs-showcase-v2 .cs-solution,
.cs-showcase-v2 .cs-results{display:none!important;}
.cs-showcase-v2 .cs-hero__media img,
.cs-showcase-v2 .svc-hero__media img{width:100%!important;max-width:100%!important;height:auto!important;}
.cs-showcase-slot,.cs-showcase-slot>.e-con-inner,.cs-showcase-slot>.elementor-widget,
.cs-showcase-slot>.elementor-widget>.elementor-widget-container{width:100%;max-width:none!important;margin:0;padding:0;}
.csv2-shell{width:min(1320px,calc(100% - 48px));margin-inline:auto;position:relative;z-index:1;}
.csv2-eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 12px;color:var(--csv2-cyan);font-size:13px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;}
.csv2-eyebrow::after{content:"";width:52px;height:2px;background:currentColor;border-radius:2px;opacity:.7;}
.csv2 h2{font-family:"Heebo",sans-serif;color:var(--csv2-ink);font-size:clamp(31px,3vw,46px);line-height:1.08;letter-spacing:-.035em;font-weight:800;margin:0;}
.csv2-body,.csv2-body p{font-size:16px;line-height:1.68;color:var(--csv2-copy);margin:0;}
.csv2-body{margin-top:18px;max-width:760px;}
.csv2-card{list-style:none;}
.csv2-card__icon{flex:0 0 auto;display:block;line-height:0;}
.csv2-card__icon img{display:block;width:46px;height:46px;}
.csv2-card__copy{display:flex;min-width:0;flex-direction:column;gap:3px;}
.csv2-card__copy strong{color:var(--csv2-ink);font-size:15.5px;line-height:1.35;font-weight:750;}
.csv2-card__copy>span{color:var(--csv2-copy);font-size:13.5px;line-height:1.45;}

/* Challenge + overview */
.csv2-context{position:relative;background:linear-gradient(135deg,#F7F8FF 0%,#F1F7FF 52%,#EAF8FD 100%);padding:34px 0 64px;}
.csv2-context::before{content:"";position:absolute;inset:0;pointer-events:none;background:url("case-study-showcase/decor/blob-soft-blue.svg") no-repeat 82% 9%/680px auto;opacity:.72;}
.csv2-context__grid{display:grid;grid-template-columns:minmax(350px,.37fr) minmax(0,.63fr);gap:36px;align-items:stretch;}
.csv2-challenge{position:relative;overflow:hidden;border-radius:26px;background:var(--csv2-navy);padding:42px 34px 38px;box-shadow:0 28px 70px rgba(23,13,61,.18);}
.csv2-challenge::before{content:"";position:absolute;inset:0;pointer-events:none;background:url("case-study-showcase/decor/diagonal-accent.svg") no-repeat center/cover;opacity:.16;}
.csv2-challenge::after{content:"";position:absolute;left:-50px;bottom:-62px;width:220px;height:130px;border:1px solid rgba(255,255,255,.1);border-radius:50%;transform:rotate(12deg);pointer-events:none;}
.csv2-challenge>*{position:relative;z-index:1;}
.csv2-challenge h2{color:#fff;font-size:clamp(30px,2.4vw,40px);}
.csv2-challenge .csv2-body,.csv2-challenge .csv2-body p{color:rgba(255,255,255,.82);font-size:15.5px;line-height:1.62;}
.csv2-challenge__list{display:flex;flex-direction:column;gap:10px;margin:26px 0 0;padding:0;}
.csv2-challenge__list .csv2-card{display:flex;align-items:center;gap:12px;padding:11px 14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:14px;box-shadow:0 8px 20px rgba(0,0,0,.08);}
.csv2-challenge__list .csv2-card__icon img{width:42px;height:42px;}
.csv2-challenge__list .csv2-card__copy strong{color:#fff;font-size:14.5px;font-weight:600;}
.csv2-challenge__list .csv2-card__copy>span{color:rgba(255,255,255,.72);}
.csv2-overview{position:relative;padding:28px 4px 0;}
.csv2-overview::after{content:"";position:absolute;right:-18px;top:178px;width:126px;height:126px;background:url("case-study-showcase/decor/dots-cyan.svg") center/contain no-repeat;opacity:.34;pointer-events:none;}
.csv2-overview__head{display:flex;justify-content:space-between;gap:28px;align-items:flex-start;padding-inline:8px;}
.csv2-overview__head>div{max-width:720px;}
.csv2-overview .csv2-body{padding-inline:8px;max-width:800px;}
.csv2-note{display:block;color:#1E1A5E;font-family:"Segoe Print","Bradley Hand",cursive;font-size:22px;font-weight:700;line-height:1.15;transform:rotate(-5deg);max-width:150px;text-align:center;}
/* IN FLOW, not floated, and that is the whole point.
   This badge used to be `position:absolute; right:20px; top:138px` inside `.csv2-overview`,
   pinned over content that FLOWS. A fixed offset cannot know what is at that offset, and what
   is there varies by decorative-note length, overview heading line count and viewport — so it
   collided with whatever happened to be underneath. Measured across all 13 migrated case
   studies before this change:
     - badge over overview BODY COPY on 13 of 13 at 1024-1440, 1227-10700px^2;
     - decorative note under the badge on 7 of 13 at >=768px, up to 7124px^2
       (makeover-staging and york-listing-services).
   Both were live on production.
   Tuning the note was tried and rejected: shrinking it fixed the note overlap but shortened the
   head, pulled body copy UP into the badge, and CREATED body overlap where there was none on
   york-listing-services and makeover-staging. Any arithmetic fix just moves which element gets hit.
   Letting the badge take part in normal flow removes the whole class of collision by
   construction rather than by measurement. This is exactly what the <=767px block already did,
   so desktop now matches the treatment mobile has always used. The badge lands between the
   overview paragraph and the device mockups; `margin-left` matches the 8px inset that
   `.csv2-overview__head` and `.csv2-overview .csv2-body` use, so it lines up with the copy. */
.csv2-badge{position:static;display:inline-flex;align-items:center;gap:8px;margin:22px 0 0 8px;padding:8px 18px 8px 10px;background:linear-gradient(90deg,#0AA3D6,#078ED0);color:#fff;border-radius:999px;box-shadow:0 12px 28px rgba(10,163,214,.28);font-size:14px;}
.csv2-badge img{width:34px;height:34px;}
.csv2-devices{position:relative;margin:42px 36px 34px 18px;padding-bottom:22px;}
.csv2-browser{position:relative;overflow:hidden;background:#fff;border:1px solid #CBD5E4;border-radius:18px;box-shadow:0 24px 54px rgba(23,13,61,.16);}
.csv2-browser__bar{display:flex;align-items:center;gap:6px;height:27px;padding-left:12px;background:#EFF3F8;border-bottom:1px solid #DDE4EE;}
.csv2-browser__bar i{display:block;width:8px;height:8px;border-radius:50%;background:#ff7168;}
.csv2-browser__bar i:nth-child(2){background:#ffc55c;}
.csv2-browser__bar i:nth-child(3){background:#63cf7b;}
.csv2-browser img{display:block;width:100%;height:auto;}
.csv2-browser--desktop{border:8px solid #252B39;border-top-width:5px;border-radius:15px;}
.csv2-browser--desktop .csv2-browser__bar{height:22px;background:#252B39;border:0;}
.csv2-browser--desktop::after{content:"";position:absolute;left:48%;top:8px;width:5px;height:5px;background:#566073;border-radius:50%;}
.csv2-devices::after{content:"";position:absolute;z-index:-1;left:-5%;right:2%;bottom:4px;height:20px;border-radius:0 0 50% 50%;background:linear-gradient(#BFC8D5,#EEF2F7);box-shadow:0 8px 9px rgba(23,13,61,.16);}
.csv2-phone{position:absolute;z-index:3;right:-2%;bottom:-2%;width:24%;padding:17px 6px 8px;background:#151821;border:2px solid #080a10;border-radius:25px;box-shadow:0 18px 36px rgba(23,13,61,.27);overflow:hidden;}
.csv2-phone__speaker{position:absolute;z-index:2;top:5px;left:50%;width:38%;height:8px;transform:translateX(-50%);border-radius:0 0 8px 8px;background:#080a10;}
.csv2-phone img{display:block;width:100%;height:auto;border-radius:13px;}
.csv2-overview__cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0;padding:0;}
.csv2-overview__cards .csv2-card{display:flex;gap:10px;align-items:flex-start;min-height:132px;padding:18px 14px;background:#fff;border:1px solid rgba(210,220,234,.9);border-radius:17px;box-shadow:0 14px 32px rgba(23,13,61,.08);}
.csv2-overview__cards .csv2-card__icon img{width:40px;height:40px;}

/* Solution */
.csv2-solution{position:relative;background:#fff;padding:86px 0 94px;}
.csv2-solution::before{content:"";position:absolute;inset:auto 0 0 0;height:70%;pointer-events:none;background:linear-gradient(145deg,transparent 0 42%,#F5F5FF 42% 58%,transparent 58%);opacity:.65;}
.csv2-solution__grid{display:grid;grid-template-columns:minmax(260px,.83fr) minmax(300px,1fr) minmax(430px,1.55fr);gap:32px;align-items:center;}
.csv2-solution__intro h2{font-size:clamp(34px,3vw,46px);}
.csv2-solution__intro .csv2-body{margin-top:22px;}
.csv2-live{display:inline-flex;align-items:center;gap:14px;margin-top:28px;padding:14px 24px;border-radius:999px;background:linear-gradient(90deg,#0AA3D6,#078ED0);color:#fff!important;font-size:15.5px;font-weight:750;box-shadow:0 13px 30px rgba(10,163,214,.24);transition:transform .2s ease,box-shadow .2s ease;}
.csv2-live:hover,.csv2-live:focus-visible{transform:translateY(-2px);box-shadow:0 17px 36px rgba(10,163,214,.32);}
.csv2-solution__features{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;}
.csv2-solution__features .csv2-card{display:flex;gap:12px;align-items:center;padding:11px 13px;background:#fff;border:1px solid #E6EBF3;border-radius:14px;box-shadow:0 9px 23px rgba(23,13,61,.07);}
.csv2-solution__features .csv2-card__icon img{width:42px;height:42px;}
.csv2-solution__visual{position:relative;min-height:520px;display:flex;align-items:center;padding:68px 20px 76px;}
.csv2-solution__visual::before{content:"";position:absolute;inset:10% 4% 6% 5%;border-radius:45% 55% 43% 57%;background:#E8ECFF;transform:rotate(-5deg);}
.csv2-browser--gallery{position:relative;z-index:3;width:86%;margin-inline:auto;border-radius:15px;border:7px solid #252B39;border-top-width:5px;}
.csv2-browser--gallery .csv2-browser__bar{height:22px;background:#252B39;border:0;}
.csv2-photo{position:absolute;z-index:2;margin:0;overflow:hidden;border:7px solid #fff;border-radius:22px;box-shadow:0 20px 42px rgba(23,13,61,.18);}
.csv2-photo img{display:block;width:100%;height:100%;object-fit:cover;}
.csv2-photo--one{left:-1%;bottom:15%;width:31%;height:230px;transform:rotate(-4deg);}
.csv2-photo--two{right:-1%;top:4%;width:30%;height:220px;transform:rotate(5deg);}
.csv2-form-proof{position:absolute;z-index:4;right:1%;bottom:4%;width:29%;margin:0;overflow:hidden;background:#fff;border:1px solid #DFE6F0;border-radius:17px;box-shadow:0 18px 38px rgba(23,13,61,.17);}
.csv2-form-proof>img{display:block;width:100%;height:112px;object-fit:cover;object-position:top;}
.csv2-form-proof--wide>img{object-fit:contain;object-position:center;background:#fff;}
.csv2-form-proof figcaption{display:flex;align-items:center;gap:8px;padding:9px 10px;color:var(--csv2-ink);font-size:12.5px;line-height:1.25;}
.csv2-form-proof figcaption img{width:34px;height:34px;}
.csv2-note--solution{position:absolute;z-index:5;right:8%;top:-8px;max-width:180px;font-size:19px;}

/* Outcomes + related work */
.csv2-proof{position:relative;background:linear-gradient(135deg,#F7F8FF,#EEF5FF 60%,#EAF8FD);padding:74px 0 78px;}
.csv2-proof::after{content:"";position:absolute;right:-20px;bottom:-30px;width:360px;height:250px;background:url("case-study-showcase/decor/blob-soft-blue.svg") center/contain no-repeat;opacity:.48;pointer-events:none;}
.csv2-proof__grid{display:grid;grid-template-columns:minmax(0,1.95fr) minmax(330px,.85fr);gap:34px;align-items:start;}
.csv2-outcomes{padding-right:30px;border-right:1px solid #CFE2F1;}
.csv2-outcomes h2{font-size:clamp(33px,2.6vw,42px);}
.csv2-outcomes__cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:26px 0 0;padding:0;}
.csv2-outcomes__cards .csv2-card{display:flex;min-height:236px;flex-direction:column;align-items:flex-start;gap:14px;padding:20px 17px;background:#fff;border:1px solid #E3EAF4;border-radius:18px;box-shadow:0 14px 32px rgba(23,13,61,.07);}
.csv2-outcomes__cards .csv2-card__copy strong{font-size:16px;}
.csv2-outcomes__cards .csv2-card__copy>span{font-size:13.5px;line-height:1.55;}
.csv2-related__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:5px 0 18px;}
.csv2-related h2{font-size:28px;letter-spacing:-.025em;}
.csv2-related__all{color:#067FAF;font-size:13px;font-weight:750;white-space:nowrap;}
.csv2-related__list{display:flex;flex-direction:column;gap:12px;}
.csv2-related__card{display:grid;grid-template-columns:86px minmax(0,1fr) 34px;gap:12px;align-items:center;padding:10px;background:#fff;border:1px solid #E2E9F3;border-radius:15px;box-shadow:0 10px 24px rgba(23,13,61,.06);transition:transform .2s ease,box-shadow .2s ease;}
.csv2-related__card:hover,.csv2-related__card:focus-visible{transform:translateY(-2px);box-shadow:0 15px 30px rgba(23,13,61,.11);}
.csv2-related__image{display:block;overflow:hidden;width:86px;height:62px;border-radius:10px;background:#EDF2F8;}
.csv2-related__image img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;}
.csv2-related__copy{display:flex;min-width:0;flex-direction:column;gap:2px;}
.csv2-related__copy strong{color:var(--csv2-ink);font-size:14.5px;line-height:1.25;}
.csv2-related__copy>span{display:-webkit-box;overflow:hidden;color:var(--csv2-copy);font-size:12.5px;line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.csv2-related__arrow{display:flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%;background:#F0F1FF;color:#3A0CA3;font-size:17px;font-weight:800;}
.csv2 a:focus-visible{outline:3px solid #F5A623;outline-offset:3px;}

@media (max-width:1199px){
	.csv2-shell{width:min(1080px,calc(100% - 44px));}
	.csv2-context__grid{grid-template-columns:minmax(330px,.4fr) minmax(0,.6fr);gap:28px;}
	.csv2-challenge{padding:34px 28px;}
	.csv2-challenge .csv2-body,.csv2-challenge .csv2-body p{font-size:14.5px;}
	.csv2-challenge__list .csv2-card{padding:9px 11px;}
	.csv2-overview__cards{grid-template-columns:repeat(2,minmax(0,1fr));}
	.csv2-overview__cards .csv2-card{min-height:108px;}
	.csv2-solution__grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;}
	.csv2-solution__visual{grid-column:1/-1;min-height:560px;width:min(760px,100%);margin-inline:auto;}
	.csv2-proof__grid{grid-template-columns:minmax(0,1.65fr) minmax(310px,.75fr);}
	.csv2-outcomes__cards{grid-template-columns:repeat(2,minmax(0,1fr));}
	.csv2-outcomes__cards .csv2-card{min-height:190px;}
}

@media (max-width:1024px){
	.csv2-context{padding-top:52px;}
	.csv2-context__grid{grid-template-columns:minmax(0,1fr);}
	.csv2-challenge{max-width:none;}
	.csv2-overview{padding-top:24px;}
	.csv2-overview__head>div{max-width:680px;}
	.csv2-proof__grid{grid-template-columns:minmax(0,1fr);}
	.csv2-outcomes{padding-right:0;padding-bottom:44px;border-right:0;border-bottom:1px solid #CFE2F1;}
}

@media (max-width:767px){
	.csv2-shell{width:calc(100% - 32px);}
	.csv2-context{padding:32px 0 52px;}
	.csv2-context__grid{gap:40px;}
	.csv2-challenge{padding:30px 22px;border-radius:22px;}
	.csv2 h2,.csv2-challenge h2,.csv2-solution__intro h2,.csv2-outcomes h2{font-size:clamp(30px,8vw,36px);}
	.csv2-body,.csv2-body p,.csv2-challenge .csv2-body,.csv2-challenge .csv2-body p{font-size:16px;line-height:1.62;}
	.csv2-challenge__list{margin-top:24px;}
	.csv2-challenge__list .csv2-card{align-items:flex-start;padding:11px 12px;}
	.csv2-challenge__list .csv2-card__copy strong{font-size:15px;}
	.csv2-overview{display:flex;flex-direction:column;padding:0;}
	.csv2-overview__head{display:block;padding:0;}
	.csv2-overview .csv2-body{padding:0;}
	.csv2-note{position:absolute;right:2px;top:-2px;font-size:16px;max-width:100px;}
	.csv2-badge{margin:18px 0 0;padding:7px 15px 7px 8px;}
	.csv2-devices{margin:30px 8px 35px 0;padding-bottom:13px;}
	.csv2-browser--desktop{border-width:5px;border-top-width:4px;}
	.csv2-browser--desktop .csv2-browser__bar{height:18px;}
	.csv2-phone{right:-2%;bottom:-3%;width:26%;padding:12px 4px 5px;border-radius:18px;}
	.csv2-phone__speaker{top:4px;height:5px;}
	.csv2-overview__cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
	.csv2-overview__cards .csv2-card{min-height:124px;flex-direction:column;padding:14px 12px;}
	.csv2-overview__cards .csv2-card:nth-child(n+3){display:none;}
	.csv2-overview__cards .csv2-card__copy strong{font-size:15px;}
	.csv2-solution{padding:58px 0 64px;}
	.csv2-solution__grid{display:flex;flex-direction:column;gap:28px;}
	.csv2-solution__features{width:100%;}
	.csv2-solution__features .csv2-card{align-items:flex-start;padding:12px;}
	.csv2-solution__features .csv2-card__copy strong{font-size:15.5px;}
	.csv2-solution__visual{display:grid;width:100%;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px 0 0;}
	.csv2-solution__visual::before{inset:0;border-radius:30px;}
	.csv2-browser--gallery{grid-column:1/-1;width:100%;margin:0;border-width:5px;border-top-width:4px;}
	.csv2-photo{position:relative;inset:auto;width:auto;height:150px;border-width:4px;border-radius:16px;transform:none;}
	.csv2-photo--one{grid-column:1;grid-row:2;}
	.csv2-photo--two{grid-column:2;grid-row:2;}
	.csv2-form-proof{position:relative;inset:auto;grid-column:1/-1;grid-row:3;width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;}
	.csv2-form-proof>img{height:96px;}
	.csv2-form-proof figcaption{padding-right:14px;}
	.csv2-note--solution{top:-8px;right:4px;max-width:130px;font-size:16px;}
	.csv2-proof{padding:56px 0 62px;}
	.csv2-outcomes__cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
	.csv2-outcomes__cards .csv2-card{min-height:0;padding:16px 13px;gap:10px;}
	.csv2-outcomes__cards .csv2-card__icon img{width:40px;height:40px;}
	.csv2-outcomes__cards .csv2-card__copy strong{font-size:15.5px;}
	.csv2-outcomes__cards .csv2-card__copy>span{font-size:13px;line-height:1.48;}
	.csv2-related__head{margin-top:0;}
	.csv2-related h2{font-size:25px;}
}

@media (max-width:430px){
	.csv2-shell{width:calc(100% - 28px);}
	.csv2-note{display:none;}
	.csv2-challenge__list .csv2-card__icon img{width:40px;height:40px;}
	.csv2-overview__cards .csv2-card{min-height:116px;}
	.csv2-form-proof{grid-template-columns:1fr;}
	.csv2-form-proof>img{height:120px;}
	.csv2-form-proof figcaption{padding:8px 10px;}
	.csv2-related__card{grid-template-columns:74px minmax(0,1fr) 30px;gap:9px;}
	.csv2-related__image{width:74px;height:58px;}
}

@media (max-width:359px){
	.csv2-overview__cards,.csv2-outcomes__cards{grid-template-columns:minmax(0,1fr);}
	.csv2-overview__cards .csv2-card{min-height:0;flex-direction:row;}
	.csv2-photo{height:128px;}
	.csv2-related__all{display:none;}
	.csv2-related__card{grid-template-columns:64px minmax(0,1fr);}
	.csv2-related__image{width:64px;height:52px;}
	.csv2-related__arrow{display:none;}
}

@media (prefers-reduced-motion:reduce){
	.csv2 *{scroll-behavior:auto!important;transition-duration:.01ms!important;}
}
