/* Scoped fixes for the published site; no global palette or layout reset. */
.contact__arrival .contact-button{position:relative;display:flex;width:fit-content;max-width:100%;margin:28px auto 20px;justify-content:center;text-align:center;padding-inline:72px}
.contact__arrival .contact-button span{position:absolute;right:20px}
.case-media__notice:empty,#cases .case-footnote:empty{display:none}
#cases .case-person{width:100%;gap:18px;padding:16px;align-items:center;border-radius:8px}
#cases .case-person img{display:block;width:88px;height:88px;min-width:88px;flex:0 0 88px;border-radius:8px;object-fit:contain;object-position:center;filter:none;transform:none;background:#f4f4ef}
#cases .case-person span,#cases .case-person b{font-size:16px;line-height:1.7}
/* One shared photo/content rhythm removes the empty column under YADOKARI. */
#cases .case-grid{--case-inset:24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
#cases .case-card{grid-column:auto;display:block;min-width:0;min-height:0;padding:var(--case-inset);overflow:hidden}
#cases .case-copy{padding:0;min-width:0}
#cases .case-media,#cases .case-media--compact{margin:calc(-1 * var(--case-inset)) calc(-1 * var(--case-inset)) 24px}
#cases .case-media__frame,#cases .case-media--main .case-media__frame{width:100%;aspect-ratio:3/2;border-radius:0;overflow:hidden}
#cases .case-media__image{display:block;width:100%;height:100%;aspect-ratio:3/2;object-fit:cover;object-position:center;filter:none;transform:none!important}
#cases .case-label{font-size:14px;line-height:1.7;margin:0 0 16px;letter-spacing:.02em}
#cases .case-copy h3,#cases .case-small h3{font-size:24px;line-height:1.6;margin:0 0 20px}
#cases .case-number{margin:0 0 20px}
#cases .case-flow{margin-top:0}
#cases .case-person{padding:12px;gap:12px}
/* Match desktop card edges to the tallest story without fixing content height. */
#cases .case-contact{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-top:20px;padding:12px 0 6px;border-bottom:1px solid #9fc6bb;font-size:16px;font-weight:700;line-height:1.7;text-decoration:none}
#cases .case-contact span{flex-shrink:0;color:var(--coral)}
#cases .case-contact:focus-visible{outline:3px solid #c74e24;outline-offset:4px}
@media(min-width:1101px){
 #cases .case-grid{align-items:stretch}
 #cases .case-card{display:flex;flex-direction:column}
 #cases .case-card>*,#cases .case-copy>*{flex-shrink:0}
 #cases .case-copy{display:flex;flex:1;flex-direction:column}
 #cases .case-contact{margin-top:auto;padding-top:24px}
}
@media(max-width:1100px){#cases .case-grid{grid-template-columns:minmax(0,1fr);max-width:720px;margin-inline:auto;gap:28px}}
@media(max-width:600px){#cases .case-grid{--case-inset:20px;gap:24px}#cases .case-media,#cases .case-media--compact{margin-bottom:20px}#cases .case-copy h3,#cases .case-small h3{font-size:22px}}
#cases .case-media__tint{display:none}
.bf{aspect-ratio:auto!important;height:auto!important;max-height:none!important;display:grid!important;grid-template-rows:auto auto!important;overflow:visible;background:#fdfcfa}
.bf .bf__video{width:100%;height:auto!important;aspect-ratio:16/9;object-fit:contain;background:#edf0eb}
.bf::after{display:none}
.bf .bf__play{position:static!important;display:flex;justify-content:center;left:auto;right:auto;bottom:auto;margin:0;width:100%;min-height:72px;padding:16px 24px;border-radius:0;box-shadow:none;transform:none!important;background:#fff;color:#33414e;border:0;border-bottom:1px solid #dae1dc}
.bf .bf__play span{font-size:18px}.bf .bf__play i{font-size:14px}
.bf-modal{padding:72px 16px 24px;z-index:9999}
.bf-modal__video{display:block;width:min(1280px,100%);height:auto;max-height:calc(100svh - 110px);object-fit:contain;border-radius:4px}
.bf-modal__close{top:16px;right:16px;min-height:44px;z-index:1}
#process .process-head>p,#process .hub__body{font-size:18px;line-height:1.9}
#process .hub{opacity:1!important;transform:none!important;background:#fff;color:#33414e;border:1px solid #d6e3dd;box-shadow:none;padding:clamp(20px,3vw,40px)}
#process .hub__label b,#process .hub__label span,#process .hub__body,#process .hub__body em,#process .hub__more a{color:#33414e}
#process .hub__label b{font-size:18px}
#process .hub__body em{background:#e6f3ee;font-style:normal}
.requirement-journey:has(+ neccos-project-process){display:none!important}
#results .stat-grid{gap:24px}
#results .stat-card{position:relative;min-width:0;overflow:hidden;padding:28px 24px 32px}
#results .stat-card .stat-k{font-size:18px;line-height:1.6;color:#33414e}
#results .stat-value-mask{position:relative;overflow:visible;padding:12px 0}
#results .stat-value-mask>b{transform:none!important;opacity:1!important;will-change:auto}
#results .stat-value-mask b{font-size:clamp(40px,4.6vw,68px);line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums}
#results .stat-card--lead b{font-size:clamp(36px,4.5vw,64px)}
#results .stat-card b em{color:#c74e24}
#results .stat-arrow-glyph{opacity:1!important;transform:none!important}
#results .stat-sub,#results .stat-card small{font-size:15px;line-height:1.7;color:#52645e}
#results .stat-value-mask[data-counting]>b{opacity:0!important}
#results .stat-animation-value{position:absolute;inset:12px 0;pointer-events:none}
#results .stat-animation-value b{display:block;transform:none!important;opacity:1!important}
#results .stat-card.is-animating{animation:result-arrive 1.2s cubic-bezier(.2,.8,.2,1) both}
#results .stat-card.is-animating::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:5px;background:#f26e3c;transform-origin:left;animation:result-track 1.7s cubic-bezier(.15,.75,.25,1) both}
#results .stat-card:nth-child(3).is-animating::after{background:#57c4ae}
#results .stat-card.is-animating .stat-animation-value{animation:result-number 1.3s cubic-bezier(.2,.85,.25,1) both}
.results-replay{display:flex;justify-content:flex-end;margin-top:24px}
.results-replay button{min-height:44px;border:1px solid #b6c7bf;border-radius:4px;background:#fff;color:#33414e;font:inherit;font-size:15px;padding:10px 16px;cursor:pointer}
.results-replay button:focus-visible{outline:3px solid #c74e24;outline-offset:3px}
@keyframes result-arrive{0%{transform:translateY(28px)}70%{transform:translateY(-4px)}100%{transform:none}}
@keyframes result-number{0%{transform:translateY(24px) scale(.82);opacity:.1}65%{transform:translateY(-3px) scale(1.035);opacity:1}100%{transform:none;opacity:1}}
@keyframes result-track{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:1000px){#results .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
 .contact__arrival .contact-button{width:100%;min-width:0;padding:20px 48px;gap:16px}
 .contact__arrival .contact-button span{right:12px;width:28px;height:28px}
 #cases .case-person{gap:14px;padding:14px}#cases .case-person img{width:80px;height:80px;min-width:80px;flex-basis:80px}
 #cases .case-person span,#cases .case-person b{font-size:16px}
 #process .hub{padding:18px 16px}#process .process-head>p,#process .hub__body{font-size:16px;line-height:1.85}
 #results .stat-grid{grid-template-columns:minmax(0,1fr);gap:18px}#results .stat-card{padding:22px 24px 26px}
 #results .stat-value-mask b{font-size:64px}#results .stat-card--lead b{font-size:56px}
 .bf .bf__play span{font-size:16px}.bf .bf__play{padding:14px 18px;min-height:76px}
}
@media(max-width:360px){#results .stat-value-mask b{font-size:56px}#results .stat-card--lead b{font-size:48px}.contact__arrival .contact-button{font-size:21px}}
@media(prefers-reduced-motion:reduce){#results .stat-card,#results .stat-card::after,#results .stat-animation-value{animation:none!important;transform:none!important}.results-replay{display:none}}
