/* Case journals: four editorial rhythms within the Campo visual identity. */
.expanded-case{--case-warm:#e6e0d8;--case-body:#c5c2cf}
.expanded-case .case-heading{padding-block:55px 52px;display:grid;grid-template-columns:1.4fr .6fr;gap:55px;align-items:end}
.expanded-case .case-heading h1{font-size:clamp(52px,4.3vw,102px);line-height:1.06;letter-spacing:-.06em;font-weight:500;max-width:1200px;margin-top:25px}
.case-heading h1 em{font-style:normal;color:#a7b1ff}.case-heading .case-intro{font-size:21px;line-height:1.65;color:var(--case-body);max-width:480px;margin-bottom:5px}
.case-client{font-size:15px;color:#e9ebff;display:flex;align-items:center;gap:14px}.case-client:before{content:'';width:7px;height:7px;background:var(--signal);border-radius:50%;flex:none}
.case-hero-media{margin:0;overflow:hidden;border-radius:10px;background:#26242c;position:relative}.case-hero-media img{width:100%;height:auto;display:block;max-height:740px;object-fit:cover;transform:translate3d(calc(var(--camera-x,0px)*.3),calc(var(--camera-scroll,0px)*.3),0) scale(1.025);transition:transform .8s cubic-bezier(.2,.7,.2,1)}.case-hero-media figcaption{padding:19px 25px;color:#c9cbd1;font-size:13px;line-height:1.5;background:#25242a;position:relative;z-index:1}.case-inpeco .case-hero-media img{transform:none}
.case-section{margin-top:var(--study-space)}.case-section h2{max-width:900px}.case-section .eyebrow+h2{margin-top:23px}
.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:start}.case-copy p{font-size:20px;line-height:1.7;color:var(--case-body)}.case-copy p+p{margin-top:23px}.case-copy .case-lead{font-size:26px;line-height:1.45;color:#f4f5ff;letter-spacing:-.025em}.case-copy h3{font-size:30px;font-weight:500;letter-spacing:-.04em;margin-bottom:20px}
.case-brief{padding:65px 60px;background:#f0eeeb;color:#24232a;border-radius:9px;display:grid;grid-template-columns:.9fr 1.1fr;gap:8%;align-items:start}.case-brief .eyebrow{color:#585461}.case-brief p{color:#57535e;font-size:20px;line-height:1.65;margin-top:23px}.case-brief h2{color:#24232a}
.case-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:0}.case-meta dt{font-size:13px;color:#77717f;margin-bottom:13px}.case-meta dd{font-size:24px;line-height:1.35;color:#2e2b34;margin:0;letter-spacing:-.035em}.case-brief .case-meta{grid-column:1/-1;border-top:1px solid #16161625;padding-top:30px;margin-top:14px}
.case-process{display:grid;grid-template-columns:repeat(3,1fr);gap:60px;margin-top:55px}.case-process article{border-top:1px solid #ffffff30;padding-top:25px;position:relative}.case-process article:before{content:'';position:absolute;left:0;top:-1px;width:45px;height:2px;background:var(--signal)}.case-process h3{font-size:27px;line-height:1.25;font-weight:500;letter-spacing:-.035em}.case-process p{font-size:18px;line-height:1.65;color:var(--case-body);margin-top:20px}
.case-media{margin:0}.case-media img{display:block;width:100%;height:auto}.case-media figcaption{font-size:13px;color:#c9cbd1;line-height:1.55;margin-top:15px}.case-media .study-enlarge{border:1px solid #ffffff25}
.case-grain{position:relative;isolation:isolate;padding:70px;border-radius:10px;overflow:hidden;background:#161616 url('../campo-kpi-blu.webp') center/cover;display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;color:#161616}.case-grain .eyebrow{color:#161616}.case-grain h2{color:#161616}.case-glass{background:#f4f5ffdd;border:1px solid #fff9;border-radius:8px;padding:36px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.case-glass p{color:#161616;font-size:20px;line-height:1.65}.case-grain .case-heading-glass{padding:28px;border-radius:7px;background:#f4f5ffd9;backdrop-filter:blur(16px)}
.case-callout{border-left:2px solid var(--signal);padding:0 0 0 27px;font-size:28px;line-height:1.4;letter-spacing:-.03em;max-width:750px}.case-inline-link{display:inline-flex;align-items:center;gap:25px;padding-block:14px;border-bottom:1px solid #ffffff50;font-size:16px;margin-top:24px;color:#f4f5ff}.case-inline-link svg{width:22px;height:22px;color:var(--signal);transition:transform .25s}.case-inline-link:hover svg{transform:translate(4px,-4px)}
.case-inpeco .case-hero-media{padding:34px;background:#161616 url('../campo-kpi-blu.webp') center/cover}.case-inpeco .case-hero-media img{max-height:none;width:84%;margin:auto;border-radius:7px;box-shadow:0 20px 55px #16161644}.case-inpeco .case-hero-media figcaption{background:transparent;color:#161616;text-align:center;padding-bottom:0}
.case-candoglia .case-heading{grid-template-columns:1fr;max-width:1450px}.case-candoglia .case-heading .case-intro{max-width:870px}.case-candoglia .case-hero-media{margin-top:8px}.case-candoglia .case-hero-media img{max-height:690px;object-position:center}.case-candoglia .case-brief{background:#e7e0d6}.case-candoglia .case-grain{background-image:url('../campo-kpi-ambra.webp')}.case-candoglia .case-grain h2{color:#352722}.case-candoglia .case-glass{background:#fffaf3dc}.case-candoglia .case-glass p{color:#4c3c39}
.case-story{display:grid;grid-template-columns:.85fr 1.15fr;gap:7%;align-items:start}.case-story-media{position:sticky;top:145px}.case-story-list{display:grid;gap:34px;margin:0;padding:0;list-style:none}.case-story-list li{padding:0 0 30px 27px;border-left:1px solid #ffffff30;position:relative}.case-story-list li:before{content:'';position:absolute;left:-4px;top:9px;width:7px;height:7px;border-radius:50%;background:var(--signal)}.case-story-list h3{font-size:29px;line-height:1.25;font-weight:500;letter-spacing:-.035em}.case-story-list p{font-size:19px;line-height:1.65;margin-top:18px;color:var(--case-body)}
.case-tennis .case-heading h1 em{color:#d7ea40}.case-tennis .case-hero-media img{max-height:760px}.case-dual{display:grid;grid-template-columns:1.08fr .92fr;gap:6%;align-items:center}.case-selector{display:flex;gap:12px;margin:30px 0}.case-selector button{padding:14px 24px;border:1px solid #ffffff3d;border-radius:4px;font-size:16px;color:#e9ebff;transition:background .3s,border-color .3s}.case-selector button[aria-pressed=true]{background:#d7ea40;color:#1c2011;border-color:#d7ea40}.case-selector button:hover{border-color:#a7b1ff}.case-panel[hidden]{display:none}.case-panel h3{font-size:31px;font-weight:500;letter-spacing:-.035em}.case-panel p{font-size:20px;line-height:1.65;color:var(--case-body);margin-top:18px}.case-panel{min-height:175px}.case-tennis .case-grain{background-image:url('../campo-texture.webp');background-position:70% center}
.case-poste .case-heading{grid-template-columns:1.2fr .8fr}.case-poste .case-heading h1{font-size:clamp(50px,3.8vw,91px)}.case-poste .case-hero-media{padding:35px;background:#161616;max-width:700px;margin-left:auto}.case-poste .case-hero-media img{border-radius:6px}.case-poste .case-hero-media figcaption{padding:15px 0 0;background:none}.case-poste .case-heading .case-intro{font-size:20px;margin-top:32px;max-width:640px}
.case-plan{position:relative;background:#e9ebff;border-radius:10px;padding:45px;color:#161616;overflow:hidden;isolation:isolate}.case-plan:before{content:'';position:absolute;inset:0;z-index:-1;opacity:.35;background:url('../campo-kpi-blu.webp') center/cover}.case-plan-map{display:grid;grid-template-columns:1fr .4fr 1fr;grid-template-rows:1fr .45fr 1fr;gap:14px;min-height:380px;padding:28px;border:1px solid #1616165c;background:#f4f4f6ad;border-radius:8px;transform:perspective(1200px) rotateX(10deg);transition:transform .6s}.case-plan-block{display:grid;place-items:center;text-align:center;border:1px solid #62646a4d;background:#c9cbd1b8;font-size:16px;line-height:1.4;padding:20px;border-radius:5px;box-shadow:0 8px 0 #77748f18}.case-plan-route{grid-column:2;grid-row:1/4;border-left:2px dashed #62646a;margin:auto;height:100%;width:0}.case-plan-floor{grid-column:1/4;grid-row:2;border-top:2px dashed #62646a;align-self:center}.case-plan-block:nth-child(1){grid-column:1;grid-row:1}.case-plan-block:nth-child(2){grid-column:3;grid-row:1}.case-plan-block:nth-child(3){grid-column:1;grid-row:3}.case-plan-block:nth-child(4){grid-column:3;grid-row:3}.case-plan-caption{font-size:13px;line-height:1.6;margin-top:28px;color:#62646a}.case-plan:hover .case-plan-map{transform:perspective(1200px) rotateX(0)}
@media(max-width:1450px){.expanded-case .case-heading{gap:45px}.expanded-case .case-heading h1{font-size:clamp(52px,4.6vw,70px)}.case-heading .case-intro,.case-copy p,.case-brief p{font-size:18px}.case-copy .case-lead{font-size:24px}.case-brief{padding:48px}.case-grain{padding:48px}.case-process{gap:35px}.case-process p{font-size:17px}.case-story-list p{font-size:17px}.case-story-list h3{font-size:26px}.case-grain h2{font-size:43px!important}.case-glass p{font-size:18px}.case-poste .case-heading h1{font-size:clamp(45px,4.4vw,66px)}}
@media(max-width:1000px){.expanded-case .case-heading{grid-template-columns:1fr;gap:28px}.case-heading .case-intro{max-width:700px}.case-grid,.case-brief,.case-dual,.case-grain,.case-story{gap:35px}.case-inpeco .case-hero-media img{width:100%}.case-grain{padding:32px}.case-glass{padding:25px}.case-meta{gap:20px}.case-meta dd{font-size:21px}.case-process h3{font-size:24px}.case-poste .case-hero-media{max-width:none;margin:0}.case-poste .case-heading{grid-template-columns:1fr 1fr}.case-poste .case-heading h1{font-size:48px}.case-poste .case-heading .case-intro{font-size:17px}.case-plan{padding:25px}.case-plan-map{padding:18px;min-height:320px}}
@media(max-width:800px){.expanded-case .case-heading{padding-block:35px}.expanded-case .case-heading h1{font-size:clamp(40px,7.6vw,60px)}.case-heading .case-intro{font-size:17px}.case-client{font-size:13px}.case-inpeco .case-hero-media{padding:18px}.case-hero-media figcaption{font-size:11px;padding:13px 17px}.case-brief,.case-grid,.case-grain,.case-dual,.case-story,.case-poste .case-heading{grid-template-columns:1fr}.case-brief{padding:35px}.case-brief p,.case-copy p{font-size:17px}.case-copy .case-lead{font-size:24px}.case-brief .case-meta{gap:24px;margin-top:0}.case-meta dd{font-size:20px}.case-meta dt{font-size:12px}.case-process{gap:25px}.case-process h3{font-size:22px}.case-process p{font-size:15px}.case-story-media{position:static}.case-story-list{gap:12px}.case-story-list h3{font-size:27px}.case-grain h2{font-size:35px!important}.case-grain .case-heading-glass{padding:25px}.case-grain{padding:27px}.case-media figcaption{font-size:12px}.case-callout{font-size:25px}.case-panel{min-height:135px}.case-panel p{font-size:17px}.case-poste .case-heading h1{font-size:clamp(39px,7.6vw,60px)}.case-poste .case-hero-media{padding:20px}.case-plan-map{transform:none}.case-plan-block{font-size:15px;padding:15px}.case-contact{gap:20px}}
@media(max-width:520px){.expanded-case .case-heading h1{font-size:clamp(36px,9.2vw,46px)}.case-heading h1 br{display:none}.case-heading h1 em{display:block;margin-top:5px}.case-heading .case-intro{font-size:16px}.case-client{font-size:12px;line-height:1.5}.case-brief{padding:28px 24px}.case-brief p,.case-copy p{font-size:16px}.case-copy .case-lead{font-size:22px}.case-brief .case-meta{grid-template-columns:1fr;gap:21px}.case-meta>div{display:grid;grid-template-columns:.65fr 1fr;gap:14px}.case-meta dt{margin:4px 0 0}.case-meta dd{font-size:19px}.case-process{grid-template-columns:1fr;gap:28px;margin-top:35px}.case-process h3{font-size:25px}.case-process p{font-size:16px;margin-top:14px}.case-grain{padding:21px;gap:18px}.case-grain .case-heading-glass,.case-glass{padding:23px}.case-grain h2{font-size:30px!important}.case-glass p{font-size:16px}.case-selector button{padding:13px 20px;font-size:15px}.case-selector{margin:25px 0}.case-panel h3{font-size:27px}.case-panel p{font-size:16px}.case-callout{font-size:23px;padding-left:20px}.case-story-list p{font-size:16px}.case-plan{padding:17px}.case-plan-map{padding:12px;gap:8px;min-height:300px;grid-template-columns:1fr .2fr 1fr}.case-plan-block{padding:12px 8px;font-size:13px}.case-plan-caption{font-size:12px}.case-inpeco .case-hero-media{padding:12px}.case-inpeco .case-hero-media figcaption{font-size:10px;padding:12px 2px 3px}.case-tennis .case-hero-media img{aspect-ratio:1.4;object-fit:cover}.case-inline-link{font-size:14px}}
@media(prefers-reduced-motion:reduce){.case-plan-map,.case-plan:hover .case-plan-map,.case-hero-media img{transform:none;transition:none}.case-inline-link svg{transition:none}}
