/* OC LOGISTIQUE 3.9.20 — finishing pass: typography, spacing, responsive layouts.
   Intentionally no background/color/border-color/box-shadow palette changes.
   Public marketing only; do not affect private RH/LMS screens. */
:root{--ocl-reading-width:74ch;--ocl-section-space:clamp(48px,6.3vw,88px)}
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;text-rendering:optimizeLegibility}
main :where(.section,.page-top,.ocl-seo-landing){scroll-margin-top:110px}
main :where(.prose,.legal,.ocl-seo-landing){line-height:1.72}
main :where(.prose,.legal,.ocl-seo-landing) p{max-width:var(--ocl-reading-width);margin-block:0 1.15em}
main :where(.prose,.legal,.ocl-seo-landing) li{line-height:1.65;margin-block:.25em}
main .section{padding-block:var(--ocl-section-space)}
main .page-top{padding-block:clamp(42px,5vw,68px)}
main .page-top h1,main .hero h1,main .ocl-seo-landing h1{max-width:19ch;line-height:1.12;letter-spacing:-.035em}
main :where(.prose,.legal,.ocl-seo-landing) :where(h2,h3){text-wrap:balance;max-width:34ch}
main :where(.prose,.legal,.ocl-seo-landing) h2{margin-block:1.65em .65em}
main :where(.prose,.legal,.ocl-seo-landing) h3{margin-block:1.3em .55em}
main :where(.prose,.legal,.ocl-seo-landing) :where(ul,ol){max-width:var(--ocl-reading-width);margin-block:0 1.35em}
main :where(.intro,.two,.about-grid,.contact-grid,.split-band){min-width:0}
main .two{align-items:start;gap:clamp(26px,4vw,58px)}
main .services{align-items:stretch;gap:clamp(16px,2vw,25px)}
main .service{display:flex;flex-direction:column;min-width:0;height:100%}
main .service > a:last-child{margin-top:auto;padding-top:18px}
main .services .service h3{line-height:1.27;overflow-wrap:break-word}
main .journey > article{min-width:0}
main :where(.service,.press-card,.ocl-job-card,.cta) :where(p,li){overflow-wrap:break-word}
main :where(.button,.activity-nav a){min-height:44px;align-items:center;justify-content:center}
main .activity-nav{flex-wrap:wrap;row-gap:10px}
main .faq details{min-width:0}
main .faq summary{cursor:pointer;min-height:44px;line-height:1.5}
main :where(.photo-grid,.ocl-photo-grid,.press-grid){align-items:start}
main :where(.photo-grid,.ocl-photo-grid) figure{min-width:0;margin:0}
main :where(.photo-grid,.ocl-photo-grid) img{width:100%;max-width:100%;height:auto;display:block}
main .ocl-photo-grid img{aspect-ratio:4/3;object-fit:cover;object-position:center}
main :where(.photo-grid,.ocl-photo-grid,.photo-block) figcaption{font:inherit;font-size:.85rem;line-height:1.5;margin-block:.65rem 0}
main .ocl-photo-grid figcaption{padding:10px 14px;margin:0}
main .photo-block{min-width:0;max-width:100%;margin-block:22px}
main .photo-block img{max-width:100%;height:auto}
main .ocl-editorial-photo{width:100%;max-width:940px;margin:clamp(22px,4vw,40px) 0;display:block;overflow:visible}
main .ocl-editorial-photo img{display:block;width:100%;height:auto;max-width:100%;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center;border-radius:16px}

main .ocl-editorial-photo--portrait{max-width:460px}
main .ocl-seo-landing{margin-inline:auto}
main .ocl-seo-landing > :first-child{margin-top:0}
main .ocl-seo-landing :where(ul,ol){padding-inline-start:1.5em}
main .ocl-seo-landing :where(a:not(.button)){text-underline-offset:.18em}
main .ocl-seo-landing .button{max-width:100%;white-space:normal;text-align:center}
main .form :where(input,select,textarea),main .quote-group :where(input,select,textarea){max-width:100%;min-width:0}
main .form :where(input,select),main .quote-group :where(input,select){min-height:44px}
main .form textarea,main .quote-group textarea{min-height:100px;resize:vertical}
main .form :where(label,legend),main .quote-group :where(label,legend){line-height:1.45}
main :where(.prose,.legal,.ocl-seo-landing) table{max-width:100%;overflow-x:auto}
main :where(.prose,.legal,.ocl-seo-landing) :where(iframe,video,img){max-width:100%}
.ocl-site-footer .ocl-footer-column{min-width:0}
@media(max-width:900px){
 main .services{grid-template-columns:repeat(2,minmax(0,1fr))}
 main .two,main .split-band{grid-template-columns:1fr}
 main .ocl-editorial-photo img{display:block;width:100%;height:auto;max-width:100%;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center;border-radius:16px}
}
@media(max-width:650px){
 main .section{padding-block:clamp(36px,8vw,54px)}
 main .services,main .press-grid,main .photo-grid,main .ocl-photo-grid{grid-template-columns:1fr}
 main .wrap{padding-inline:clamp(18px,5vw,25px)}
 main .hero h1,main .page-top h1{font-size:clamp(2rem,8.4vw,3rem);overflow-wrap:break-word}
 main :where(.prose,.legal,.ocl-seo-landing) :where(h2){font-size:clamp(1.48rem,5.4vw,2rem)}
 main .ocl-seo-landing{padding-inline:clamp(17px,5vw,25px)}
 main .ocl-editorial-photo img{display:block;width:100%;height:auto;max-width:100%;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center;border-radius:16px}
 main .form :where(input,textarea,select),main .quote-group :where(input,textarea,select){font-size:16px}
 main .button{max-width:100%}
 main .services .service{min-height:0}
}
@media(prefers-reduced-motion:reduce){main :where(.service,.button,.photo-block img){transition:none}}

/* 3.9.21 — added photos: no visible captions; maintain intrinsic proportions. */
main .ocl-editorial-photo figcaption{display:none!important}
