/* v639: isolated story layout, loaded after every legacy stylesheet. */
body:has(.tv639-process) main#main { overflow: visible !important; }
.tv639-process, .tv639-process *, .tv639-clients, .tv639-clients * { box-sizing: border-box; }
.tv639-process { position: relative; margin: 0; padding: 0; background: #faf9f6; color: #242622; font-family: Arial, sans-serif; }
.tv639-pin { width: min(1280px, 88%); margin: auto; padding: 48px 0; }
.tv639-heading { margin: 0 0 28px; text-align: center; }
.tv639-kicker { margin: 0 0 14px; color: #bd2535; font-size: 10px; font-weight: 700; letter-spacing: .22em; line-height: 1.5; text-transform: uppercase; }
.tv639-heading h2 { margin: 0; font-weight: 400; font-size: clamp(30px,3vw,44px); line-height: 1.08; letter-spacing: -.045em; }
.tv639-heading em { display: block; margin-top: 4px; color: #bd2535; font: italic 400 .8em/1.12 Georgia,serif; }
.tv639-scenes { display: grid; gap: 48px; }
.tv639-scene { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: clamp(28px,5vw,72px); }
.tv639-copy { min-width: 0; }
.tv639-copy h3 { margin: 0 0 22px; max-width: 520px; font: 500 clamp(30px,3.5vw,54px)/1.06 Arial,sans-serif; letter-spacing: -.045em; text-wrap: balance; }
.tv639-description { margin: 0; max-width: 440px; font-size: 15px; line-height: 1.75; color: #676963; }
.tv639-picture { display:block; width:100%; height:100%; max-height:570px; min-width:0; object-fit:cover; border-radius: 3px; aspect-ratio: 4/3; }
.tv639-footer { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-top: 18px; margin-top: 24px; border-top: 1px solid #deded7; }
.tv639-link { font-size:12px; color:#242622; text-decoration:none; border-bottom:1px solid #aaa; padding-bottom:7px; }
.tv639-navigation { display: none; align-items:center; gap:24px; }
.tv639-hint { font-size:10px; color:#767871; letter-spacing:.08em; }
.tv639-tabs { display: flex; gap: 9px; }
.tv639-tabs button { width:38px; height:38px; padding:0; border:1px solid #dadbd3; border-radius:50%; background:transparent; color:#666; font:12px Arial,sans-serif; cursor:pointer; transition:background .2s,color .2s; }
.tv639-tabs button[aria-pressed=true] { color:#fff; background:#242622; border-color:#242622; }
.tv639-tabs button:focus-visible,.tv639-link:focus-visible { outline:2px solid #bd2535; outline-offset:4px; }
.tv639-meter { display:none; height:2px; background:#e5e2db; position:absolute; bottom:0; left:0; right:0; }
.tv639-meter::after { content:''; display:block; width:100%; height:100%; background:#bd2535; transform-origin:left; transform:scaleX(var(--story-progress,0)); }
/* Only reserve scroll travel after the controller has initialized. */
.tv639-process.tv639-enhanced { height: 320svh; }
.tv639-enhanced .tv639-pin { position:sticky; top:0; height:100svh; display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:24px; padding:clamp(24px,4vh,44px) 0 26px; }
.tv639-enhanced .tv639-heading { margin:0; }
.tv639-enhanced .tv639-scenes { position:relative; min-height:0; display:grid; gap:0; }
.tv639-enhanced .tv639-scene { grid-area:1/1; min-height:0; height:100%; pointer-events:none; }
.tv639-enhanced .tv639-copy { opacity:var(--scene-opacity,0); transform:translate3d(0,var(--scene-y,0px),0); }
.tv639-enhanced .tv639-picture { opacity:var(--scene-opacity,0); transform:scale(var(--scene-scale,1)); min-height:0; max-height:100%; will-change:opacity,transform; }
.tv639-enhanced .tv639-footer { margin:0; }
.tv639-enhanced .tv639-navigation { display:flex; }
.tv639-enhanced .tv639-meter { display:block; }
.tv639-enhanced .tv639-copy[aria-hidden=false] { pointer-events:auto; }
.tv639-clients { width:min(1280px,88%); margin:auto; padding:72px 0; background:#fff; }
.tv639-clients h2 { margin:0 0 32px; text-align:center; font:400 clamp(25px,2.8vw,38px)/1.2 Arial,sans-serif; letter-spacing:-.04em; color:#242622; }
.tv639-logos { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; }
.tv639-logo { display:grid; place-items:center; height:120px; margin:0; padding:18px; border:1px solid #ebe9e4; border-radius:4px; background:#fff; }
.tv639-logo img { display:block; width:100%; height:100%; max-height:82px; object-fit:contain; opacity:1; filter:none; }
/* Shared whitespace and photograph proportions throughout the home page. */
body:has(.tv639-process) .tv625-approach .tv625-approach-inner { height:auto !important; min-height:0 !important; width:min(1280px,88%) !important; padding:72px 0 !important; gap:clamp(32px,6vw,84px) !important; }
body:has(.tv639-process) .tv625-approach .tv626-materials { height:520px !important; min-height:0 !important; }
body:has(.tv639-process) .tv625-approach .tv626-materials img { min-height:0 !important; height:100% !important; max-height:none !important; object-fit:cover !important; }
body:has(.tv639-process) .tv625-approach h2 { font-size:clamp(34px,3.6vw,52px) !important; }
body:has(.tv639-process) .tv625-approach h3 { font-size:clamp(36px,3.8vw,56px) !important; }
body:has(.tv639-process) .tv625-hero-shade { background:linear-gradient(90deg,#17120b99,transparent 75%),linear-gradient(0deg,#17120b70,transparent 50%); }
body:has(.tv639-process) .tv68-consent-banner { right:20px !important; left:auto !important; bottom:20px !important; transform:none !important; width:min(390px,calc(100% - 32px)) !important; padding:16px !important; display:block !important; border-radius:8px !important; box-shadow:0 8px 30px #00000012 !important; }
body:has(.tv639-process) .tv68-consent-actions { margin-top:12px; justify-content:flex-end; }
@media(max-width:1000px) {
 .tv639-logos { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .tv639-scene { gap:28px; }
 .tv639-copy h3 { font-size:clamp(30px,4vw,44px); }
 .tv639-hint { display:none; }
}
@media(max-width:760px) {
 .tv639-pin { width:88%; }
 .tv639-process.tv639-enhanced { height:300svh; }
 .tv639-enhanced .tv639-pin { padding:24px 0 20px; gap:18px; }
 .tv639-scene { grid-template-columns:1fr; grid-template-rows:auto minmax(0,1fr); gap:20px; }
 .tv639-copy h3 { max-width:100%; font-size:clamp(27px,7.3vw,40px); margin-bottom:10px; }
 .tv639-kicker { font-size:9px; margin-bottom:10px; }
 .tv639-description { font-size:12px; line-height:1.6; }
 .tv639-picture { max-height:360px; }
 .tv639-enhanced .tv639-copy { min-height:154px; }
 .tv639-heading h2 { font-size:28px; }
 .tv639-footer { gap:12px; padding-top:14px; }
 .tv639-tabs { gap:6px; }
 .tv639-tabs button { width:31px; height:31px; font-size:10px; }
 .tv639-link { font-size:10px; }
 .tv639-clients { padding:48px 0; }
 .tv639-logos { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
 .tv639-logo { height:94px; padding:10px; }
 .tv639-logo img { max-height:70px; }
 body:has(.tv639-process) .tv625-approach .tv625-approach-inner { padding:44px 0 !important; gap:30px !important; }
 body:has(.tv639-process) .tv625-approach .tv626-materials { height:330px !important; }
 body:has(.tv639-process) .tv625-hero .tv625-hero-content::before { max-width:60%; white-space:normal; }
 body:has(.tv639-process) .tv68-consent-banner { right:16px !important; bottom:12px !important; }
}
@media(prefers-reduced-motion:reduce),(max-height:560px) {
 .tv639-scenes { gap:50px; }
 .tv639-scene { border-bottom:1px solid #e5e2db; padding-bottom:28px; }
}
