/* New catalog views only. Existing pages continue to use the original theme unchanged. */
.catalog-page { color: #444; }
.catalog-page .catalog-hero { position: relative; overflow: hidden; padding: 165px 0 90px; background: linear-gradient(135deg, #37517e 0%, #2f7891 58%, #47b2e4 100%); color: #fff; }
.catalog-page .catalog-hero::after { content: ""; position: absolute; width: 420px; height: 420px; right: -130px; bottom: -230px; border-radius: 50%; background: rgba(255,255,255,.09); }
.catalog-page .catalog-hero .container { position: relative; z-index: 1; }
.catalog-page .catalog-hero span, .catalog-page .catalog-card-body > span, .catalog-page .catalog-service-card > span { color: #a8e7f4; font-family: "Poppins", sans-serif; font-size: .78rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.catalog-page .catalog-hero h1 { max-width: 920px; margin: 14px 0 18px; color: #fff; font: 700 clamp(2.45rem,5vw,4.5rem)/1.12 "Poppins",sans-serif; }
.catalog-page .catalog-hero p { max-width: 780px; margin-bottom: 0; color: rgba(255,255,255,.88); font-size: 1.12rem; line-height: 1.8; }
.catalog-page .catalog-hero .btn { margin-top: 28px; padding: 11px 28px; border-radius: 50px; font-weight: 600; }
.catalog-page .catalog-hero-image { max-width: 860px; margin-top: 45px; padding: 28px; border-radius: 22px; background: rgba(255,255,255,.94); box-shadow: 0 24px 55px rgba(14,36,62,.22); }
.catalog-page .catalog-hero-image img { display: block; width: 100%; max-height: 470px; object-fit: contain; }
.catalog-page .catalog-section, .catalog-page .catalog-detail { padding: 90px 0; }
.catalog-page .catalog-card { overflow: hidden; border: 0; border-radius: 14px; background: #fff; box-shadow: 0 5px 28px rgba(55,81,126,.12); transition: transform .3s ease,box-shadow .3s ease; }
.catalog-page .catalog-card:hover { transform: translateY(-7px); box-shadow: 0 14px 38px rgba(55,81,126,.2); }
.catalog-page .catalog-card-image { height: 270px; padding: 24px; background: #f3f8fb; }
.catalog-page .catalog-card-image img { width: 100%; height: 100%; object-fit: contain; }
.catalog-page .catalog-card-body { padding: 29px; }
.catalog-page .catalog-card-body > span, .catalog-page .catalog-service-card > span { color: #47b2e4; }
.catalog-page .catalog-card h2, .catalog-page .catalog-card h3, .catalog-page .catalog-service-card h2, .catalog-page .catalog-person h2, .catalog-page .catalog-detail-row h2, .catalog-page .catalog-steps h2 { color: #37517e; font-family: "Poppins",sans-serif; }
.catalog-page .catalog-card h2 { margin: 9px 0 13px; font-size: 1.55rem; }
.catalog-page .catalog-card p, .catalog-page .catalog-service-card p { line-height: 1.7; }
.catalog-page .catalog-card a, .catalog-page .catalog-service-card a, .catalog-page .catalog-proof-links a, .catalog-page .catalog-person a { color: #47b2e4; font-weight: 700; }
.catalog-page .catalog-service-card { height: 100%; padding: 34px 29px; border-radius: 12px; background: #fff; box-shadow: 0 0 25px rgba(0,0,0,.08); transition: transform .3s ease; }
.catalog-page .catalog-service-card:hover { transform: translateY(-8px); }
.catalog-page .catalog-service-card > i { display: block; margin-bottom: 18px; color: #47b2e4; font-size: 2.25rem; }
.catalog-page .catalog-service-card h2 { margin: 10px 0 14px; font-size: 1.38rem; }
.catalog-page .catalog-list { padding: 0; list-style: none; }
.catalog-page .catalog-list li { display: flex; gap: 11px; padding: 10px 0; line-height: 1.6; }
.catalog-page .catalog-list i { flex: 0 0 auto; margin-top: 3px; color: #47b2e4; }
.catalog-page .catalog-process { padding: 80px 0; }
.catalog-page .catalog-process article { height: 100%; padding: 26px; border-radius: 12px; background: #fff; box-shadow: 0 3px 18px rgba(55,81,126,.09); }
.catalog-page .catalog-process article b { color: #47b2e4; }
.catalog-page .catalog-process article p { margin: 12px 0 0; line-height: 1.65; }
.catalog-page .catalog-detail-row { display: grid; grid-template-columns: 65px minmax(0,780px); gap: 24px; padding: 42px 0; border-bottom: 1px solid #e6edf4; }
.catalog-page .catalog-detail-row > span { color: #47b2e4; font: 700 .9rem "Poppins",sans-serif; }
.catalog-page .catalog-detail-row p, .catalog-page .catalog-detail-row li { line-height: 1.75; }
.catalog-page .catalog-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.catalog-page .catalog-tags span { padding: 7px 13px; border-radius: 50px; background: #eaf7fc; color: #287b9f; font-size: .88rem; }
.catalog-page .catalog-proof-links { display: flex; flex-wrap: wrap; gap: 24px; padding-top: 32px; }
.catalog-page .catalog-related { max-width: 760px; margin: 0 auto; }
.catalog-page .catalog-person { height: 100%; padding: 32px; text-align: center; border-radius: 14px; background: #fff; box-shadow: 0 5px 25px rgba(55,81,126,.12); }
.catalog-page .catalog-person > div { display: grid; place-items: center; width: 76px; height: 76px; margin: 0 auto 20px; border-radius: 50%; background: #eaf7fc; color: #37517e; font: 700 1.2rem "Poppins",sans-serif; }
.catalog-page .catalog-person h2 { font-size: 1.35rem; }
.catalog-page .catalog-steps { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.catalog-page .catalog-steps li { display: flex; gap: 20px; padding: 24px; border-radius: 12px; background: #f3f5fa; }
.catalog-page .catalog-steps b { flex: 0 0 auto; color: #47b2e4; font-family: "Poppins",sans-serif; }
.catalog-page .catalog-steps h2 { margin: 0 0 7px; font-size: 1.25rem; }
.catalog-page .catalog-steps p { margin: 0; line-height: 1.65; }
.catalog-page .catalog-process-image { filter: drop-shadow(0 18px 28px rgba(55,81,126,.14)); }
.catalog-page .catalog-cta { padding: 80px 0; background: linear-gradient(rgba(40,58,90,.9),rgba(40,58,90,.9)),url("../img/cta-bg.jpg") center center/cover fixed; color: #fff; }
.catalog-page .catalog-cta h2 { margin-bottom: 24px; color: #fff; }
.catalog-page .catalog-cta .btn { padding: 11px 30px; border-radius: 50px; font-weight: 600; }
.catalog-page .catalog-error { min-height: 72vh; display: flex; align-items: center; }
.catalog-page .catalog-error code { color: #fff; }
@media (max-width: 767px) {
  .catalog-page .catalog-hero { padding: 125px 0 65px; text-align: center; }
  .catalog-page .catalog-hero h1 { font-size: 2.35rem; }
  .catalog-page .catalog-hero p { font-size: 1rem; }
  .catalog-page .catalog-section, .catalog-page .catalog-detail { padding: 65px 0; }
  .catalog-page .catalog-card-image { height: 220px; }
  .catalog-page .catalog-detail-row { grid-template-columns: 38px 1fr; gap: 12px; }
  .catalog-page .catalog-person { padding: 25px 18px; }
  .catalog-page .catalog-steps li { padding: 20px 17px; }
  .catalog-page .catalog-cta { background-attachment: scroll; }
}

/* Three-card case-study composition in the original zurafworks visual language. */
.case-showcase { padding: 100px 0 92px; background: #fff; }
.case-showcase-catalog { padding-top: 72px; }
.case-showcase-heading { position: relative; z-index: 2; max-width: 820px; margin: 0 auto 54px; }
.case-showcase-heading.section-title { padding-bottom: 0; }
.case-showcase-heading h2 { color: #25666e; }
.case-showcase-heading p { color: #6c757d; line-height: 1.7; }
.case-showcase-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; gap: 0; max-width: 1080px; margin: 0 auto; padding: 16px 38px 52px; perspective: 1400px; }
.case-showcase-slot { position: relative; min-width: 0; transform-origin: 50% 100%; transition: z-index 0s,transform .45s cubic-bezier(.2,.8,.2,1); }
.case-showcase-slot-1 { z-index: 1; transform: translate(34px,48px) rotate(-8deg); }
.case-showcase-slot-2 { z-index: 3; transform: translateY(-8px) rotate(1deg); }
.case-showcase-slot-3 { z-index: 2; transform: translate(-34px,50px) rotate(8deg); }
.case-showcase-slot:hover { z-index: 5; transform: translateY(-15px) rotate(0deg) scale(1.025); }
.case-showcase-card { position: relative; overflow: hidden; min-width: 0; border: 1px solid rgba(62,167,180,.14); border-radius: 15px; background: rgba(255,255,255,.98); box-shadow: 0 5px 25px rgba(0,0,0,.12); animation: case-card-float 5.2s ease-in-out infinite; transition: box-shadow .35s ease; will-change: transform; }
.case-showcase-slot-2 .case-showcase-card { animation-delay: -1.7s; }
.case-showcase-slot-3 .case-showcase-card { animation-delay: -3.4s; }
.case-showcase-slot:hover .case-showcase-card { animation-play-state: paused; box-shadow: 0 15px 35px rgba(0,0,0,.2); }
@keyframes case-card-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-11px); } }
.case-showcase-media { position: relative; display: flex; align-items: center; justify-content: center; height: 220px; padding: 25px; overflow: hidden; background: #fff; border-bottom: 1px solid rgba(62,167,180,.12); }
.case-showcase-media img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 14px 18px rgba(11,42,66,.26)); transition: transform .35s ease; }
.case-showcase-slot:hover .case-showcase-media img { transform: scale(1.055); }
.case-showcase-placeholder { position: relative; z-index: 1; display: flex; align-items: baseline; color: #25666e; font-family: "JetBrains Mono",monospace; }
.case-showcase-placeholder small { font-size: 2rem; font-weight: 300; }
.case-showcase-placeholder strong { font-size: 2rem; font-weight: 700; }
.case-showcase-placeholder i { position: absolute; right: -34px; top: -20px; font-size: 1.4rem; }
.case-showcase-body { min-height: 248px; padding: 25px 25px 31px; background: rgba(255,255,255,.98); }
.case-showcase-category { display: inline-flex; padding: 6px 10px; border-radius: 7px; background: rgba(62,167,180,.11); color: #25666e; font: 700 .7rem "JetBrains Mono",monospace; }
.case-showcase-body h3 { margin: 13px 0 10px; font: 700 1.25rem/1.35 "JetBrains Mono",monospace; }
.case-showcase-body h3 a { color: #25666e; }
.case-showcase-body p { display: -webkit-box; min-height: 78px; margin-bottom: 17px; overflow: hidden; color: #6c757d; font-family: "JetBrains Mono",monospace; font-size: .88rem; line-height: 1.65; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.case-showcase-link { color: #3ea7b4; font-family: "JetBrains Mono",monospace; font-weight: 700; }
.case-showcase-link i, .case-showcase-all i { display: inline-block; transition: transform .25s ease; }
.case-showcase-link:hover i, .case-showcase-all a:hover i { transform: translateX(5px); }
.case-showcase-all { position: relative; z-index: 4; margin-top: 28px; text-align: center; }
.case-showcase-all a { color: #25666e; font-family: "JetBrains Mono",monospace; font-weight: 700; }
@media (max-width: 991px) {
  .case-showcase-grid { padding-right: 8px; padding-left: 8px; }
  .case-showcase-slot-1 { transform: translate(22px,40px) rotate(-7deg); }
  .case-showcase-slot-3 { transform: translate(-22px,42px) rotate(7deg); }
  .case-showcase-media { height: 180px; padding: 18px; }
  .case-showcase-body { min-height: 272px; padding: 21px 19px 28px; }
  .case-showcase-placeholder small, .case-showcase-placeholder strong { font-size: 1.55rem; }
}
@media (max-width: 767px) {
  .case-showcase { padding: 64px 0; }
  .case-showcase-heading { margin-bottom: 28px; }
  .case-showcase-grid { grid-template-columns: 1fr; gap: 24px; max-width: 430px; margin-bottom: 0; padding: 0; perspective: none; }
  .case-showcase-slot, .case-showcase-slot-1, .case-showcase-slot-2, .case-showcase-slot-3, .case-showcase-slot:hover { transform: none; }
  .case-showcase-card { border-radius: 14px; animation-duration: 5.8s; }
  .case-showcase-media { height: 215px; }
  .case-showcase-body { min-height: 0; }
  .case-showcase-body p { min-height: 0; }
  .case-showcase-all { margin-top: 25px; padding-bottom: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .case-showcase-card { animation: none; }
  .case-showcase-slot, .case-showcase-media img { transition: none; }
}

/* Case-study details reuse the original homepage's typography, color and motion language. */
.case-detail-page { color: #444; font-family: "Open Sans",sans-serif; }
.case-detail-hero { position: relative; min-height: 620px; display: flex; align-items: center; overflow: hidden; padding: 145px 0 90px; background: linear-gradient(45deg,rgba(62,167,180,.94) 0%,rgba(37,102,110,.98) 100%),url("../img/hero-bg.jpg") center center/cover no-repeat; }
.case-detail-back { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 24px; color: rgba(255,255,255,.86); font-family: "JetBrains Mono",monospace; font-weight: 600; }
.case-detail-back:hover { color: #fff; }
.case-detail-category { margin: 0 0 12px; color: #d7f5f7; font: 700 .82rem "JetBrains Mono",monospace; letter-spacing: .08em; text-transform: uppercase; }
.case-detail-hero h1 { margin: 0 0 20px; color: #fff; font: 700 clamp(2.65rem,5vw,4.2rem)/1.12 "JetBrains Mono",monospace; }
.case-detail-summary { max-width: 720px; margin: 0; color: rgba(255,255,255,.88); font-size: 1.12rem; line-height: 1.75; }
.case-detail-hero-button { display: inline-flex; align-items: center; gap: 9px; margin-top: 30px; padding: 11px 27px; border: 2px solid #fff; border-radius: 100px; color: #fff; font-family: "JetBrains Mono",monospace; font-weight: 700; transition: .35s ease; }
.case-detail-hero-button:hover { background: #fff; color: #3ea7b4; transform: translateY(-2px); }
.case-detail-visual { display: flex; align-items: center; justify-content: center; min-height: 360px; padding: 38px; border-radius: 15px; background: #fff; box-shadow: 0 18px 45px rgba(14,49,54,.24); animation: case-detail-float 2.4s ease-in-out infinite alternate-reverse both; will-change: transform; }
.case-detail-visual img { display: block; width: 100%; max-height: 300px; object-fit: contain; transform: translate3d(0,var(--parallax-offset,0),0); transition: transform .08s linear; will-change: transform; }
@keyframes case-detail-float { from { transform: translate3d(0,calc(var(--parallax-offset,0px) + 9px),0); } to { transform: translate3d(0,calc(var(--parallax-offset,0px) - 9px),0); } }
.case-detail-hero h1 [data-text-scramble] { display: inline-block; font-variant-numeric: tabular-nums; }
.case-capability-marquee { position: relative; padding: 0; background: #25666e; color: #fff; }
.case-capability-marquee::before, .case-capability-marquee::after { content: ""; position: absolute; z-index: 2; top: 0; bottom: 0; width: clamp(42px,8vw,120px); pointer-events: none; }
.case-capability-marquee::before { left: 0; background: linear-gradient(90deg,#25666e 12%,rgba(37,102,110,0)); }
.case-capability-marquee::after { right: 0; background: linear-gradient(270deg,#25666e 12%,rgba(37,102,110,0)); }
.case-capability-track { display: flex; width: max-content; animation: case-capability-scroll 32s linear infinite; }
.case-capability-marquee:hover .case-capability-track { animation-play-state: paused; }
.case-capability-group { display: flex; flex: 0 0 auto; align-items: center; padding-right: 26px; }
.case-capability-group span { display: inline-flex; align-items: center; gap: 10px; margin: 0 7px; padding: 17px 20px; color: rgba(255,255,255,.92); font: 600 .86rem "JetBrains Mono",monospace; white-space: nowrap; }
.case-capability-group i { color: #8fe1e8; font-size: 1.05rem; }
@keyframes case-capability-scroll { to { transform: translateX(-50%); } }
.case-detail-story, .case-detail-features, .case-detail-outcome { padding: 100px 0; }
.case-detail-story .section-title h2, .case-detail-features .section-title h2 { color: #25666e; }
.case-detail-card { height: 100%; padding: 38px 34px; border-left: 4px solid #3ea7b4; background: #fff; box-shadow: 0 5px 25px rgba(0,0,0,.08); transition: transform .35s ease,box-shadow .35s ease; }
.case-detail-card:hover { transform: translateY(-6px); box-shadow: 0 15px 35px rgba(0,0,0,.13); }
.case-detail-card > i { color: #3ea7b4; font-size: 2.2rem; }
.case-detail-card h2 { margin: 17px 0 13px; color: #25666e; font: 700 1.4rem "JetBrains Mono",monospace; }
.case-detail-card p { margin: 0; color: #6c757d; line-height: 1.75; }
.case-detail-list-block { height: 100%; padding: 10px 20px; }
.case-detail-list-block h3 { margin-bottom: 26px; color: #25666e; font: 700 1.35rem "JetBrains Mono",monospace; }
.case-detail-list-block ul { margin: 0; padding: 0; list-style: none; }
.case-detail-list-block li { display: flex; align-items: flex-start; gap: 13px; padding: 11px 0; color: #555; line-height: 1.6; }
.case-detail-list-block li i { flex: 0 0 auto; margin-top: 2px; color: #3ea7b4; font-size: 1.2rem; }
.case-milestone-list { position: relative; max-width: 1040px; margin: 22px auto 0; padding: 0; list-style: none; }
.case-milestone-list::before { content: ""; position: absolute; top: 22px; bottom: 22px; left: 50%; width: 2px; background: linear-gradient(#3ea7b4,rgba(62,167,180,.18)); transform: translateX(-50%); }
.case-milestone { position: relative; display: flex; min-height: 148px; padding-bottom: 28px; }
.case-milestone:last-child { padding-bottom: 0; }
.case-milestone-marker { position: absolute; z-index: 2; top: 18px; left: 50%; display: grid; place-items: center; width: 44px; height: 44px; border: 3px solid #f9f8ff; border-radius: 50%; background: #3ea7b4; color: #fff; box-shadow: 0 5px 16px rgba(37,102,110,.24); transform: translateX(-50%); }
.case-milestone-marker span { font: 700 .82rem "JetBrains Mono",monospace; }
.case-milestone-widget { width: calc(50% - 52px); overflow: hidden; border: 1px solid rgba(62,167,180,.13); border-radius: 14px; background: #fff; box-shadow: 0 5px 22px rgba(0,0,0,.07); transition: transform .35s ease,box-shadow .35s ease; }
.case-milestone:nth-child(odd) .case-milestone-widget { margin-right: auto; }
.case-milestone:nth-child(even) .case-milestone-widget { margin-left: auto; }
.case-milestone-widget:hover { transform: translateY(-5px); box-shadow: 0 14px 30px rgba(0,0,0,.12); }
.case-milestone-capability { display: flex; align-items: center; gap: 16px; padding: 22px 24px 18px; }
.case-milestone-capability > i { flex: 0 0 auto; color: #3ea7b4; font-size: 1.75rem; }
.case-milestone-capability small { display: block; margin-bottom: 5px; color: #3ea7b4; font: 700 .68rem "JetBrains Mono",monospace; letter-spacing: .1em; }
.case-milestone-capability h3 { margin: 0; color: #25666e; font: 700 1.02rem/1.45 "JetBrains Mono",monospace; }
.case-milestone-flow { display: flex; align-items: flex-start; gap: 12px; padding: 15px 24px 18px; background: rgba(62,167,180,.075); }
.case-milestone-flow i { flex: 0 0 auto; margin-top: 2px; color: #3ea7b4; }
.case-milestone-flow p { margin: 0; color: #657177; font-size: .9rem; line-height: 1.55; }
.case-detail-technical { display: grid; grid-template-columns: minmax(220px,.58fr) minmax(0,1.5fr); gap: 42px; margin-top: 74px; padding: 42px; border-top: 3px solid #3ea7b4; background: #fff; box-shadow: 0 5px 25px rgba(0,0,0,.08); }
.case-detail-technical-heading { display: flex; align-items: flex-start; gap: 17px; }
.case-detail-technical-heading > i { color: #3ea7b4; font-size: 2.25rem; }
.case-detail-technical-heading span { display: block; margin-bottom: 7px; color: #3ea7b4; font: 700 .75rem "JetBrains Mono",monospace; letter-spacing: .1em; }
.case-detail-technical-heading h3 { margin: 0; color: #25666e; font: 700 1.35rem "JetBrains Mono",monospace; }
.case-technical-widgets { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.case-technical-widgets article { display: flex; align-items: flex-start; gap: 13px; min-height: 118px; padding: 19px; border-radius: 11px; background: #f9f8ff; transition: background .3s ease,transform .3s ease; }
.case-technical-widgets article:last-child:nth-child(odd) { grid-column: 1/-1; }
.case-technical-widgets article:hover { background: rgba(62,167,180,.1); transform: translateY(-3px); }
.case-technical-widgets i { flex: 0 0 auto; color: #3ea7b4; font-size: 1.35rem; }
.case-technical-widgets p { margin: 0; color: #555; font-size: .9rem; line-height: 1.6; }
.case-detail-outcome { background: #fff; }
.case-detail-result, .case-detail-role { height: 100%; padding: 40px; border-radius: 15px; }
.case-detail-result { background: linear-gradient(135deg,#3ea7b4,#25666e); color: #fff; box-shadow: 0 12px 32px rgba(37,102,110,.2); }
.case-detail-role { border: 1px solid rgba(62,167,180,.15); background: #fff; box-shadow: 0 5px 25px rgba(0,0,0,.08); }
.case-outcome-label { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.case-outcome-label i { font-size: 1.35rem; }
.case-outcome-label span { font: 700 .78rem "JetBrains Mono",monospace; letter-spacing: .1em; }
.case-detail-result .case-outcome-label { color: #d7f5f7; }
.case-detail-role .case-outcome-label { color: #3ea7b4; }
.case-detail-result h2 { margin-bottom: 16px; color: #fff; font: 700 1.7rem "JetBrains Mono",monospace; }
.case-detail-result p, .case-detail-role p { margin: 0; font-size: 1.02rem; line-height: 1.75; }
.case-detail-role p { color: #6c757d; }
.case-detail-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 28px; margin-top: 42px; }
.case-detail-links a { display: inline-flex; align-items: center; gap: 8px; color: #25666e; font-family: "JetBrains Mono",monospace; font-weight: 700; }
.case-detail-links a:hover { color: #3ea7b4; }
.case-detail-cta { padding: 82px 0; background: linear-gradient(rgba(37,102,110,.93),rgba(37,102,110,.93)),url("../img/cta-bg.jpg") center center/cover fixed; color: #fff; }
.case-detail-cta h2 { margin-bottom: 13px; color: #fff; font: 700 clamp(1.75rem,3vw,2.35rem) "JetBrains Mono",monospace; }
.case-detail-cta p { margin: 0 auto 25px; color: rgba(255,255,255,.85); }
.case-detail-cta a { display: inline-flex; align-items: center; gap: 9px; padding: 11px 28px; border: 2px solid #fff; border-radius: 100px; color: #fff; font-family: "JetBrains Mono",monospace; font-weight: 700; transition: .35s ease; }
.case-detail-cta a:hover { background: #fff; color: #3ea7b4; }
@media (max-width: 991px) {
  .case-detail-hero { min-height: auto; padding: 125px 0 75px; text-align: center; }
  .case-detail-back { justify-content: center; }
  .case-detail-summary { margin-right: auto; margin-left: auto; }
  .case-detail-visual { min-height: 280px; max-width: 520px; margin: 0 auto; }
}
@media (max-width: 767px) {
  .case-detail-hero h1 { font-size: 2.35rem; }
  .case-detail-story, .case-detail-features, .case-detail-outcome { padding: 68px 0; }
  .case-detail-card, .case-detail-result, .case-detail-role { padding: 29px 24px; }
  .case-capability-marquee::before, .case-capability-marquee::after { width: 42px; }
  .case-capability-track { animation-duration: 25s; }
  .case-milestone-list::before { left: 22px; }
  .case-milestone { min-height: 0; padding: 0 0 22px 58px; }
  .case-milestone-marker { top: 14px; left: 22px; width: 40px; height: 40px; }
  .case-milestone-widget, .case-milestone:nth-child(odd) .case-milestone-widget, .case-milestone:nth-child(even) .case-milestone-widget { width: 100%; margin: 0; }
  .case-milestone-capability, .case-milestone-flow { padding-right: 18px; padding-left: 18px; }
  .case-detail-technical { grid-template-columns: 1fr; gap: 25px; margin-top: 38px; padding: 29px 24px; }
  .case-technical-widgets { grid-template-columns: 1fr; }
  .case-technical-widgets article:last-child:nth-child(odd) { grid-column: auto; }
  .case-detail-cta { padding: 65px 0; background-attachment: scroll; }
}
@media (prefers-reduced-motion: reduce) {
  .case-detail-visual { animation: none; }
  .case-detail-visual, .case-detail-visual img { transform: none !important; }
  .case-capability-track { animation: none; transform: none; }
  .case-detail-card, .case-detail-hero-button { transition: none; }
}

/* Case-study index follows the original homepage hero and CTA language. */
.case-index-page { color: #444; }
.case-index-hero { min-height: 650px; display: flex; align-items: center; overflow: hidden; padding: 145px 0 90px; background: linear-gradient(45deg,rgba(62,167,180,.92) 0%,rgba(37,102,110,.98) 100%),url("../img/hero-bg.jpg") center center/cover no-repeat; }
.case-index-eyebrow { margin: 0 0 15px; color: #d7f5f7; font: 700 .82rem "JetBrains Mono",monospace; letter-spacing: .09em; }
.case-index-hero h1 { margin: 0 0 20px; color: #fff; font: 700 clamp(2.7rem,5vw,4.35rem)/1.13 "JetBrains Mono",monospace; }
.case-index-summary { max-width: 720px; margin: 0; color: rgba(255,255,255,.88); font-size: 1.12rem; line-height: 1.75; }
.case-index-button { display: inline-flex; align-items: center; gap: 9px; margin-top: 30px; padding: 11px 28px; border: 2px solid #fff; border-radius: 100px; color: #fff; font-family: "JetBrains Mono",monospace; font-weight: 700; transition: .35s ease; }
.case-index-button:hover { background: #fff; color: #3ea7b4; transform: translateY(-2px); }
.case-index-hero-image { animation: case-index-float 2.2s ease-in-out infinite alternate-reverse both; }
@keyframes case-index-float { from { transform: translateY(10px); } to { transform: translateY(-10px); } }
.case-index-page .case-showcase { scroll-margin-top: 72px; }
.case-index-cta { padding: 82px 0; background: linear-gradient(rgba(37,102,110,.93),rgba(37,102,110,.93)),url("../img/cta-bg.jpg") center center/cover fixed; color: #fff; }
.case-index-cta h2 { margin-bottom: 13px; color: #fff; font: 700 clamp(1.75rem,3vw,2.35rem) "JetBrains Mono",monospace; }
.case-index-cta p { margin: 0 auto 25px; color: rgba(255,255,255,.85); }
.case-index-cta a { display: inline-flex; align-items: center; gap: 9px; padding: 11px 28px; border: 2px solid #fff; border-radius: 100px; color: #fff; font-family: "JetBrains Mono",monospace; font-weight: 700; transition: .35s ease; }
.case-index-cta a:hover { background: #fff; color: #3ea7b4; }
@media (max-width: 991px) {
  .case-index-hero { min-height: auto; padding: 125px 0 78px; text-align: center; }
  .case-index-summary { margin-right: auto; margin-left: auto; }
  .case-index-hero-image { display: block; max-height: 300px; margin: 0 auto; }
}
@media (max-width: 767px) {
  .case-index-hero h1 { font-size: 2.3rem; }
  .case-index-cta { padding: 65px 0; background-attachment: scroll; }
}
@media (prefers-reduced-motion: reduce) {
  .case-index-hero-image { animation: none; }
  .case-index-button { transition: none; }
}

/* Services index: original catalog frame with a color identity for each landing page. */
.service-index-page { overflow: hidden; background: #fff; }
.service-index-hero { position: relative; padding: 145px 0 80px; background: linear-gradient(180deg,#effbfd 0%,#fff 100%); }
.service-index-hero::before { content:""; position:absolute; width:440px; height:440px; right:-150px; top:35px; border-radius:50%; background:rgba(62,167,180,.09); }
.service-index-kicker { display:inline-block; margin-bottom:18px; color:#3ea7b4; font:700 .84rem/1.5 "3270-regular", "JetBrains Mono", monospace; letter-spacing:.12em; }
.service-index-hero h1 { max-width:680px; margin:0 0 22px; color:#37517e; font:700 clamp(2.4rem,5vw,4.35rem)/1.08 "3270-regular", "JetBrains Mono", monospace; }
.service-index-hero p { max-width:620px; margin:0 0 30px; color:#5f7185; font-size:1.08rem; line-height:1.75; }
.service-index-hero-art { position:relative; max-width:570px; margin:auto; animation:serviceIndexFloat 5.5s ease-in-out infinite; filter:drop-shadow(0 24px 25px rgba(55,81,126,.13)); }
.service-index-hero-art::before { content:""; position:absolute; z-index:-1; inset:12% 8% 4%; border-radius:50%; background:rgba(62,167,180,.12); filter:blur(22px); }
.service-index-hero-art img { display:block; width:100%; height:auto; }
.service-index-primary { display:inline-flex; align-items:center; justify-content:center; gap:10px; border:2px solid #3ea7b4; border-radius:50px; padding:12px 27px; color:#fff; background:#3ea7b4; font:700 .98rem "3270-regular", "JetBrains Mono", monospace; transition:transform .25s ease,background .25s ease,box-shadow .25s ease; }
.service-index-primary:hover { color:#fff; background:#31929e; transform:translateY(-2px); box-shadow:0 10px 25px rgba(62,167,180,.25); }
.service-index-section { padding:90px 0 105px; background:#fff; }
.service-index-section .section-title { padding-bottom:48px; }
.service-index-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.service-index-card { --card-accent:#3ea7b4; --card-accent-rgb:62,167,180; position:relative; display:grid; grid-template-columns:94px minmax(0,1fr); min-height:270px; padding:32px; border:1px solid #e1edf0; border-radius:18px; background:#fff; box-shadow:0 10px 34px rgba(55,81,126,.09); transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease; }
.service-index-card::after { content:""; position:absolute; inset:auto 26px 0; height:3px; border-radius:3px 3px 0 0; background:var(--card-accent); transform:scaleX(.28); transform-origin:left; opacity:.65; transition:transform .3s ease; }
.service-index-card:hover { transform:translateY(-7px); border-color:rgba(var(--card-accent-rgb),.36); box-shadow:0 20px 48px rgba(55,81,126,.15); }
.service-index-card:hover::after { transform:scaleX(1); }
.service-index-card--crimson { --card-accent:#e33e67; --card-accent-rgb:227,62,103; }.service-index-card--violet { --card-accent:#a34dff; --card-accent-rgb:163,77,255; }.service-index-card--azure { --card-accent:#18aee0; --card-accent-rgb:24,174,224; }.service-index-card--emerald { --card-accent:#23ae7e; --card-accent-rgb:35,174,126; }.service-index-card--amber { --card-accent:#e59c19; --card-accent-rgb:229,156,25; }.service-index-card--orange { --card-accent:#ee6840; --card-accent-rgb:238,104,64; }.service-index-card--indigo { --card-accent:#686edf; --card-accent-rgb:104,110,223; }
.service-index-icon { display:grid; place-items:center; width:72px; height:72px; border-radius:18px; color:var(--card-accent); background:rgba(var(--card-accent-rgb),.1); font-size:2rem; transition:transform .3s ease,background .3s ease,color .3s ease; }
.service-index-card:hover .service-index-icon { color:#fff; background:var(--card-accent); transform:translateY(-4px) rotate(-3deg); }
.service-index-body { display:flex; min-width:0; flex-direction:column; padding-left:4px; }
.service-index-body > span { color:var(--card-accent); font:700 .7rem/1.5 "3270-regular", "JetBrains Mono", monospace; letter-spacing:.035em; text-transform:uppercase; }
.service-index-body h2 { margin:11px 0 10px; color:#37517e; font:700 1.45rem/1.25 "3270-regular", "JetBrains Mono", monospace; }
.service-index-body p { margin:0 0 20px; color:#687b8e; line-height:1.65; }
.service-index-body a { display:inline-flex; align-items:center; gap:8px; width:max-content; margin-top:auto; color:var(--card-accent); font-family:"3270-regular", "JetBrains Mono", monospace; font-weight:700; }
.service-index-body a i { transition:transform .2s ease; }.service-index-body a:hover i { transform:translateX(4px); }
.service-index-cta { position:relative; padding:85px 0; color:#fff; background:linear-gradient(rgba(37,88,96,.9),rgba(37,88,96,.9)),url("../img/cta-bg.jpg") center/cover; }
.service-index-cta span { color:#a9edf0; font:700 .85rem "3270-regular", "JetBrains Mono", monospace; letter-spacing:.14em; }
.service-index-cta h2 { margin:14px 0 12px; color:#fff; font:700 clamp(2rem,4vw,3.25rem)/1.15 "3270-regular", "JetBrains Mono", monospace; }
.service-index-cta p { max-width:650px; margin:0 auto 27px; color:rgba(255,255,255,.86); font-size:1.05rem; }
.service-index-cta .service-index-primary { border-color:#fff; color:#37517e; background:#fff; }
.service-index-cta .service-index-primary:hover { color:#37517e; background:#f4fbfc; }
@keyframes serviceIndexFloat { 0%,100% { transform:translate3d(0,0,0); } 50% { transform:translate3d(0,-13px,0); } }
@media (max-width:991px) { .service-index-hero { padding:125px 0 65px; text-align:center; }.service-index-hero h1,.service-index-hero p { margin-left:auto; margin-right:auto; }.service-index-hero-art { max-width:470px; }.service-index-grid { grid-template-columns:1fr; } }
@media (max-width:575px) { .service-index-hero { padding:110px 0 50px; }.service-index-hero h1 { font-size:2.25rem; }.service-index-section { padding:65px 0 75px; }.service-index-card { grid-template-columns:1fr; min-height:0; padding:25px; }.service-index-icon { margin-bottom:20px; }.service-index-body { padding:0; }.service-index-body h2 { font-size:1.3rem; }.service-index-cta { padding:65px 0; } }
@media (prefers-reduced-motion:reduce) { .service-index-hero-art { animation:none; }.service-index-card,.service-index-icon,.service-index-primary { transition:none; } }
