.project-case-page { background: #f7f1ea; }
.case-main { overflow: hidden; }
.case-hero { position: relative; min-height: min(850px, calc(100vh - 10px)); padding: clamp(72px, 9vw, 126px) 0 88px; background: linear-gradient(125deg, #f8f2eb 0%, #efe2d7 58%, #e6d0c0 100%); }
.case-hero::before { content: ''; position: absolute; inset: 0; opacity: .38; background: repeating-linear-gradient(116deg, transparent 0 74px, rgba(43,31,27,.045) 75px, transparent 76px); pointer-events: none; }
.case-hero-grid { position: relative; display: grid; grid-template-columns: minmax(380px,.8fr) minmax(540px,1.2fr); gap: clamp(44px,6vw,92px); align-items: center; }
.case-breadcrumb { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 44px; color: #78675f; font-size: .72rem; letter-spacing: .04em; }
.case-breadcrumb a:hover { color: var(--brand); }
.case-kicker,.case-index { display: block; margin: 0 0 18px; color: var(--terracotta); font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.case-hero h1 { max-width: 650px; margin-bottom: 24px; font-size: clamp(3.3rem,5.4vw,5.8rem); line-height: .93; }
.case-subtitle { max-width: 590px; color: #342b29; font-family: var(--serif); font-size: clamp(1.35rem,2.2vw,2rem); line-height: 1.25; }
.case-intro { max-width: 580px; font-size: .98rem; }
.case-link { display: inline-flex; gap: 11px; align-items: center; min-height: 46px; border-bottom: 1px solid #392a25; color: #2d211e; font-size: .82rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; transition: gap .2s ease,color .2s ease; }
.case-link:hover { gap: 17px; color: var(--terracotta-dark); }
.case-link:focus-visible,.case-floating-cta:focus-visible { outline: 3px solid #d88c69; outline-offset: 4px; }
.case-device-stage { position: relative; min-height: 560px; display: grid; place-items: center; }
.case-orbit { position: absolute; width: 490px; aspect-ratio: 1; border: 1px solid rgba(164,90,63,.18); border-radius: 50%; }
.case-orbit::after { content: ''; position: absolute; inset: 54px; border: 1px solid rgba(164,90,63,.11); border-radius: inherit; }
.desktop-device { position: relative; width: min(100%,710px); margin: 0; padding: 8px 8px 14px; border: 1px solid rgba(22,18,20,.4); border-radius: 12px 12px 7px 7px; background: #201d1f; box-shadow: 0 38px 80px rgba(43,31,27,.25); transform: perspective(1200px) rotateY(-3deg) rotateX(1deg); }
.desktop-device::after { content: ''; position: absolute; left: -5%; right: -5%; bottom: -19px; height: 18px; border-radius: 2px 2px 12px 12px; background: linear-gradient(#b4aca8,#e2deda 45%,#8d8784); box-shadow: 0 6px 8px rgba(0,0,0,.18); }
.desktop-device-bar { height: 27px; display: flex; align-items: center; gap: 5px; padding: 0 9px; color: #aca3a0; font-size: .55rem; }
.desktop-device-bar i { width: 6px; height: 6px; border-radius: 50%; background: #6f6563; }
.desktop-device-bar span { margin-left: 8px; }
.desktop-device-screen { aspect-ratio: 1.371/1; overflow: hidden; border-radius: 2px; background: #ede9e5; }
.desktop-device-screen img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.phone-device { position: absolute; right: -8px; bottom: 8px; z-index: 2; width: 170px; margin: 0; padding: 8px; border: 2px solid #332c2b; border-radius: 27px; background: #161416; box-shadow: 0 28px 54px rgba(22,18,20,.35); transform: rotate(3deg); }
.phone-speaker { position: absolute; z-index: 2; top: 12px; left: 50%; width: 42px; height: 5px; border-radius: 9px; background: #171416; transform: translateX(-50%); }
.phone-device-screen { aspect-ratio: 430/932; overflow: hidden; border-radius: 20px; }
.phone-device-screen img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.case-scroll-cue { position: absolute; left: 50%; bottom: 20px; display: flex; gap: 10px; align-items: center; color: #76655e; font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; transform: translateX(-50%); }
.case-scroll-cue span { width: 32px; height: 1px; background: var(--terracotta); }
.case-marquee { width: 100%; overflow: hidden; border-block: 1px solid rgba(247,241,234,.12); background: #171416; color: #eee4dc; }
.case-marquee-track { display: flex; flex-wrap: nowrap; width: max-content; white-space: nowrap; will-change: transform; animation: case-marquee 30s linear infinite; }
.case-marquee-group { width: max-content; min-width: max-content; min-height: 82px; display: flex; flex: 0 0 auto; flex-wrap: nowrap; align-items: center; white-space: nowrap; }
.case-marquee-group span { flex: 0 0 auto; padding-inline: clamp(25px,3.2vw,50px); font-size: clamp(.72rem,1vw,.87rem); font-weight: 700; letter-spacing: .13em; text-transform: uppercase; white-space: nowrap; }
.case-marquee-group i { flex: 0 0 auto; color: #c47a55; font-size: .72rem; font-style: normal; opacity: .9; }
@keyframes case-marquee {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(-50%,0,0); }
}
.case-section { padding: clamp(88px,11vw,154px) 0; }
.case-split { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(52px,9vw,128px); align-items: center; }
.case-copy h2,.case-section-head h2 { font-size: clamp(2.8rem,5vw,4.75rem); }
.case-copy > p { max-width: 470px; color: #3e3430; font-family: var(--serif); font-size: clamp(1.3rem,2vw,1.75rem); line-height: 1.45; }
.case-copy .case-note { margin-top: 36px; padding-top: 24px; border-top: 1px solid rgba(32,28,31,.16); color: #75665f; font-family: var(--font); font-size: .83rem; }
.case-photo { margin: 0; }
.case-photo img { width: 100%; max-height: 690px; object-fit: cover; border-radius: 2px; box-shadow: var(--shadow-soft); }
.case-photo figcaption { margin-top: 14px; color: #74655e; font-size: .7rem; }
.case-reframed { background: #efe6dd; }
.case-section-head { max-width: 870px; }
.case-section-head > p { max-width: 690px; }
.case-transformations { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 74px; border-block: 1px solid rgba(32,28,31,.16); }
.case-transformation-item { min-height: 164px; border-right: 1px solid rgba(32,28,31,.13); transition: background .25s ease,color .25s ease; }
.case-transformation-item:nth-child(3n) { border-right: 0; }
.case-transformation-item:nth-child(-n+3) { border-bottom: 1px solid rgba(32,28,31,.13); }
.case-transformation-item summary { min-height: 164px; display: flex; gap: 24px; align-items: center; justify-content: space-between; padding: 30px; cursor: pointer; list-style: none; }
.case-transformation-item summary::-webkit-details-marker { display: none; }
.case-transformation-item summary strong { max-width: 210px; color: #302725; font-family: var(--serif); font-size: 1.18rem; line-height: 1.25; }
.case-transformation-item summary span { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border: 1px solid rgba(164,90,63,.32); border-radius: 50%; color: var(--terracotta); transition: transform .25s ease,background .25s ease,color .25s ease; }
.case-transformation-item > div { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s ease; }
.case-transformation-item > div > p { min-height: 0; overflow: hidden; margin: 0; padding: 0 30px; color: #665852; font-size: .82rem; opacity: 0; transition: opacity .25s ease,padding .35s ease; }
.case-transformation-item:hover,.case-transformation-item[open] { background: rgba(255,250,245,.72); }
.case-transformation-item[open] > div { grid-template-rows: 1fr; }
.case-transformation-item[open] > div > p { padding-bottom: 30px; opacity: 1; }
.case-transformation-item[open] summary { min-height: 104px; padding-bottom: 16px; }
.case-transformation-item[open] summary span { background: var(--terracotta); color: #fff; transform: rotate(135deg); }
.case-transformation-item summary:focus-visible { outline: 3px solid #c47a55; outline-offset: -4px; }
.case-transformation { min-height: 980px; padding: clamp(96px,11vw,154px) 0 170px; color: #f7f1ea; background: var(--dark-section-bg); }
.case-section-head-light h2 { color: #fff9f3; }
.case-section-head-light > p { color: #cbbdb6; }
.case-screen-stack { position: relative; height: 580px; margin-top: 90px; perspective: 1300px; }
.stack-screen { position: absolute; overflow: hidden; margin: 0; border: 7px solid #282325; border-radius: 8px; background: #fff; box-shadow: 0 35px 90px rgba(0,0,0,.45); }
.stack-screen img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.stack-home { left: 4%; top: 20px; width: 61%; aspect-ratio: 1.371/1; transform: rotateY(7deg) rotateZ(-1.4deg); }
.stack-rma { right: 1%; top: 0; width: 47%; aspect-ratio: 1.371/1; transform: translateZ(50px) rotateY(-5deg) rotateZ(1.2deg); }
.stack-ligia { right: 19%; bottom: -55px; width: 43%; aspect-ratio: 1.371/1; transform: translateZ(90px) rotateZ(-.7deg); }
.case-experience { background: #fbf7f2; }
.case-mosaic { display: grid; grid-template-columns: 1.05fr .72fr .82fr; grid-template-rows: 210px 255px 230px; gap: 14px; margin-top: 72px; }
.case-mosaic-cell { min-width: 0; overflow: hidden; margin: 0; border-radius: 2px; }
.case-mosaic-cell img { width: 100%; height: 100%; display: block; background: #e8ded5; }
.case-mosaic-clinic { grid-row: 1 / 3; }
.case-mosaic-clinic img { object-fit: cover; object-position: 50% 52%; }
.case-mosaic-doctor { grid-column: 3; grid-row: 2 / 4; }
.case-mosaic-doctor img { object-fit: cover; object-position: 50% 22%; }
.case-mosaic-method { grid-column: 2; grid-row: 3; }
.case-mosaic-method img { object-fit: cover; object-position: 50% 45%; }
.case-mosaic-concept { display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(24px,3vw,42px); background: #e8d8c8; }
.case-mosaic-concept span { margin-bottom: 12px; color: #342a27; font-family: var(--serif); font-size: clamp(1.5rem,2.4vw,2.25rem); font-weight: 700; text-transform: uppercase; }
.case-mosaic-concept p { max-width: 310px; margin: 0; color: #655650; font-size: .8rem; }
.case-mosaic-clarity { grid-column: 2; grid-row: 2; }
.case-mosaic-trust { grid-column: 1; grid-row: 3; background: #2b2323; }
.case-mosaic-trust span { color: #fff7f1; }
.case-mosaic-trust p { color: #cdbfb7; }
.case-mosaic-expertise { grid-column: 2 / 4; grid-row: 1; background: #f0e6dd; border: 1px solid rgba(32,28,31,.1); }
.case-feedback { position: relative; min-height: 760px; display: flex; align-items: center; overflow: hidden; }
.case-feedback::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(16,15,16,.12),rgba(16,15,16,.42)); }
.case-feedback-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 68% center; filter: saturate(.82) contrast(.92); }
.case-feedback-layout { position: relative; z-index: 1; display: flex; justify-content: flex-start; padding-block: 90px; }
.case-feedback-card { width: min(650px,62%); margin: 0; padding: clamp(46px,6vw,78px); border-radius: 52px 8px 52px 8px; background: rgba(252,248,243,.96); box-shadow: 0 30px 80px rgba(13,12,13,.25); }
.case-feedback-label { color: var(--terracotta); font-size: .66rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.case-feedback-quote { display: block; height: 58px; margin-top: 25px; color: var(--terracotta); font-family: Georgia,serif; font-size: 6rem; line-height: 1; }
.case-feedback blockquote { margin: 0; color: #302726; font-family: var(--serif); font-size: clamp(1.25rem,2vw,1.7rem); line-height: 1.48; }
.case-feedback figcaption { display: grid; gap: 2px; margin-top: 30px; padding-top: 22px; border-top: 1px solid rgba(32,28,31,.14); }
.case-feedback figcaption strong { color: #302726; font-size: .86rem; }
.case-feedback figcaption span { color: #756760; font-size: .72rem; }
.case-commercial-cta { padding: clamp(105px,13vw,180px) 0; background: var(--dark-section-bg); text-align: center; }
.case-commercial-cta-inner { display: grid; justify-items: center; }
.case-commercial-cta h2 { max-width: 1120px; color: #fff8f2; font-size: clamp(3.6rem,4.7vw,5rem); line-height: 1.04; }
.case-commercial-cta p { max-width: 700px; margin: 12px auto 34px; color: #cbbeb8; }
.case-commercial-link { display: inline-flex; gap: 14px; align-items: center; justify-content: center; min-height: 60px; padding: 16px 32px; border-radius: 5px; background: var(--terracotta); color: #fff; box-shadow: 0 14px 34px rgba(0,0,0,.2); font-size: .9rem; font-weight: 800; transition: gap .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease; }
.case-commercial-link:hover { gap: 20px; background: var(--terracotta-dark); box-shadow: 0 18px 42px rgba(0,0,0,.28); transform: translateY(-2px); }
.case-commercial-link:focus-visible { outline: 3px solid #f1b392; outline-offset: 4px; }
@media (min-width: 1051px) {
  .case-commercial-cta h2 { white-space: nowrap; }
}
.case-floating-cta { position: fixed; z-index: 900; left: 50%; bottom: 28px; display: inline-flex; gap: 10px; align-items: center; min-height: 50px; padding: 12px 22px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; background: rgba(31,26,27,.92); color: #fff8f2; box-shadow: 0 14px 34px rgba(0,0,0,.26); backdrop-filter: blur(12px); font-size: .76rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%,18px); transition: opacity .28s ease,transform .28s ease,visibility 0s linear .28s; }
.case-floating-cta.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%,0); transition-delay: 0s; }
.case-reveal { opacity: 0; transform: translateY(22px); transition: opacity .75s ease,transform .75s cubic-bezier(.22,1,.36,1); }
.case-reveal.is-in-view { opacity: 1; transform: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 1050px) {
  .case-hero-grid { grid-template-columns: 1fr; }
  .case-hero-copy { max-width: 720px; }
  .case-device-stage { width: min(850px,100%); margin: 0 auto; }
  .case-split { grid-template-columns: 1fr 1.25fr; gap: 48px; }
  .case-transformations { grid-template-columns: repeat(2,1fr); }
  .case-transformation-item:nth-child(3n) { border-right: 1px solid rgba(32,28,31,.13); }
  .case-transformation-item:nth-child(2n) { border-right: 0; }
  .case-transformation-item:nth-child(-n+4) { border-bottom: 1px solid rgba(32,28,31,.13); }
  .case-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 270px 220px 270px auto; }
  .case-mosaic-clinic { grid-column: 1; grid-row: 1 / 3; }
  .case-mosaic-expertise { grid-column: 2; grid-row: 1; }
  .case-mosaic-clarity { grid-column: 2; grid-row: 2; }
  .case-mosaic-trust { grid-column: 1; grid-row: 3; }
  .case-mosaic-doctor { grid-column: 2; grid-row: 3; }
  .case-mosaic-method { grid-column: 1 / 3; grid-row: 4; min-height: 230px; }
}
@media (max-width: 760px) {
  .case-hero { min-height: auto; padding: 54px 0 86px; }
  .case-breadcrumb { margin-bottom: 30px; }
  .case-hero h1 { font-size: clamp(3rem,15vw,4.5rem); }
  .case-device-stage { min-height: 390px; margin-top: 18px; }
  .desktop-device { width: 94%; transform: none; }
  .phone-device { right: 0; bottom: -5px; width: 118px; }
  .case-orbit { width: 330px; }
  .case-scroll-cue { display: none; }
  .case-split { grid-template-columns: 1fr; }
  .case-photo { order: -1; }
  .case-photo img { max-height: 480px; }
  .case-transformations { grid-template-columns: 1fr; margin-top: 50px; }
  .case-transformation-item { min-height: 0; border-right: 0 !important; border-bottom: 1px solid rgba(32,28,31,.13); }
  .case-transformation-item:last-child { border-bottom: 0; }
  .case-transformation-item summary { min-height: 105px; padding: 24px 20px; }
  .case-transformation-item summary strong { font-size: 1.1rem; }
  .case-transformation-item > div > p { padding-inline: 20px; }
  .case-transformation-item[open] > div > p { padding-bottom: 25px; }
  .case-transformation { min-height: 900px; padding-bottom: 90px; }
  .case-screen-stack { height: 490px; margin-top: 65px; }
  .stack-home { left: 0; width: 94%; }
  .stack-rma { right: -18%; top: 170px; width: 76%; }
  .stack-ligia { left: 4%; right: auto; bottom: -20px; width: 70%; }
  .case-mosaic { display: flex; flex-direction: column; gap: 12px; }
  .case-mosaic-cell { min-height: 250px; }
  .case-mosaic-expertise { min-height: 210px; }
  .case-mosaic-concept { min-height: 190px; }
  .case-mosaic-doctor { min-height: 420px; }
  .case-mosaic-doctor img { object-fit: contain; background: #e8ded5; }
  .case-feedback { min-height: 820px; align-items: flex-end; }
  .case-feedback-bg { object-position: 62% top; }
  .case-feedback::after { background: linear-gradient(180deg,rgba(16,15,16,.05),rgba(16,15,16,.52)); }
  .case-feedback-layout { padding-block: 280px 54px; }
  .case-feedback-card { width: 100%; padding: 38px 28px; border-radius: 34px 6px 34px 6px; }
  .case-commercial-cta h2 { font-size: clamp(2.8rem,12vw,4rem); line-height: 1.08; }
  .case-cta-title-break { display: none; }
  .case-commercial-link { min-height: 58px; padding: 15px 24px; font-size: .86rem; }
  .case-floating-cta { bottom: 18px; width: max-content; max-width: calc(100% - 40px); justify-content: center; }
}
@media (max-width: 460px) {
  .container { width: min(100% - 32px,1180px); }
  .case-device-stage { min-height: 310px; }
  .phone-device { width: 92px; }
  .case-orbit { width: 270px; }
}
@media (prefers-reduced-motion: reduce) {
  .case-reveal { opacity: 1; transform: none; transition: none; }
  .case-floating-cta,.case-link,.case-commercial-link,.case-transformation-item > div { transition: none; }
  .case-marquee-track { width: max-content; animation: none; transform: none; }
  .case-marquee-group { width: max-content; min-width: max-content; flex-wrap: nowrap; justify-content: flex-start; }
  .case-marquee-group[aria-hidden="true"] { display: none; }
}
