/* OC LOGISTIQUE 3.9.13 — shared visual system, loaded last.
   Scoped to the public theme to avoid modifying WordPress admin, LMS and RH app interfaces. */
:root{--ocl-type:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--ocl-text:#193d45;--ocl-accent:#087d94;--ocl-border:#dce8e7;--ocl-heading:1.16;--ocl-body:1.72}
html{scroll-padding-top:122px}
body{font-family:var(--ocl-type);font-size:16px;line-height:var(--ocl-body);color:var(--ocl-text);-webkit-text-size-adjust:100%}
body :where(button,input,select,textarea){font-family:inherit}
/* Heading proportions are consistent in Gutenberg content, SEO landings, classic pages. */
main :where(h1,h2,h3,h4){font-family:var(--ocl-type);text-wrap:balance;overflow-wrap:break-word;color:inherit}
main .page-top h1,main .hero h1,main .ocl-seo-landing h1{font-weight:720;line-height:1.12;letter-spacing:-.035em}
main .section h2,main .prose h2,main .ocl-seo-landing h2,main .legal h2{font-size:clamp(1.65rem,2.4vw,2.4rem);font-weight:700;letter-spacing:-.025em;line-height:1.22}
main .section h3,main .prose h3,main .ocl-seo-landing h3,main .legal h3{font-size:clamp(1.18rem,1.55vw,1.45rem);font-weight:650;letter-spacing:-.012em;line-height:1.3}
main :where(p,li,dd,dt){overflow-wrap:break-word}
main :where(.prose,.legal,.ocl-seo-landing,.ocl-seo364,.ocl-seo380,.ocl-seo383,.ocl-seo389,.ocl-seo54-editorial){font-family:var(--ocl-type);font-size:1rem;line-height:var(--ocl-body)}
main :where(.prose,.legal,.ocl-seo-landing,.ocl-seo364,.ocl-seo380,.ocl-seo383,.ocl-seo389,.ocl-seo54-editorial) p{line-height:var(--ocl-body)}
main :where(.prose,.legal,.ocl-seo-landing,.ocl-seo364,.ocl-seo380,.ocl-seo383,.ocl-seo389,.ocl-seo54-editorial) :where(ul,ol){padding-inline-start:1.4em}
main :where(.prose,.legal,.ocl-seo-landing) :where(a:not(.button)){text-underline-offset:3px}
/* Prevent accidental full-viewport horizontal scroll from prose, long URLs and CMS images. */
main{min-width:0}main :where(img,video,iframe,svg){max-width:100%}main :where(img,video){height:auto}main :where(table){max-width:100%}main :where(pre,code){overflow-wrap:anywhere}main :where(.wrap,.section,.service,.cta,.two,.prose,.legal,.ocl-seo-landing,.quote-group){min-width:0}
main :where(.prose,.legal,.ocl-seo-landing) :where(table){display:block;overflow-x:auto;border-collapse:collapse}
main :where(.prose,.legal,.ocl-seo-landing) :where(th,td){padding:.65rem .85rem;border-bottom:1px solid var(--ocl-border);text-align:left}
/* Keep photographic credits visible: previous CSS hid all figcaptions. */
main .photo-block figcaption,main .photo-grid .photo-block figcaption,main .hero-photo figcaption{display:block;font-family:var(--ocl-type);font-size:.8rem;line-height:1.5;margin-top:.6rem;color:#5c7177}
main .hero-photo figcaption{color:inherit}
main :where(.photo-block,.hero-photo) img{display:block;max-width:100%;height:auto}
main :where(.service,.press-card,.ocl-job-card){min-width:0}
main :where(.activity-nav,.actions){row-gap:.65rem}
main :where(.faq details){overflow-wrap:anywhere}
main :where(.cta,.quote-group){max-width:100%}
main .ocl-seo-landing{max-width:1040px;width:100%;padding:clamp(26px,4vw,48px) clamp(20px,3vw,36px) clamp(40px,5vw,70px)}
main .ocl-seo-landing h1{font-size:clamp(2rem,4vw,3.1rem);margin-block:12px 24px}
main .ocl-seo-landing h2{margin:2rem 0 .85rem}
main .ocl-seo-landing :where(p,ul,ol){max-width:78ch}
main .ocl-seo-landing .button{color:#fff}
main :where(.button,.activity-nav a){white-space:normal;overflow-wrap:break-word}
/* Footer heading size must not inherit article h2 scale. */
.ocl-site-footer .ocl-footer-column h2{font-family:var(--ocl-type);font-size:.8rem;line-height:1.4;letter-spacing:.07em;font-weight:750;margin:0 0 1rem}
.ocl-site-footer :where(a,p,span){overflow-wrap:break-word}
/* Keep the search and navigation controls readable on small displays. */
header :where(.links,.nav,.nav-group,.nav-submenu){min-width:0}
@media(max-width:800px){html{scroll-padding-top:90px}main :where(.page-top h1,.hero h1){font-size:clamp(2rem,6.7vw,2.8rem);letter-spacing:-.03em}main .section h2,main .prose h2,main .ocl-seo-landing h2{font-size:clamp(1.55rem,5vw,2rem)}main :where(.section,.prose,.legal,.ocl-seo-landing){overflow-wrap:break-word}main .ocl-seo-landing{padding-inline:clamp(18px,5vw,26px)}main :where(.service,.cta,.split-band){padding:clamp(20px,5vw,28px)}main .form :where(input,select,textarea){font-size:16px}header .nav-submenu{max-width:100%}}
@media(max-width:540px){header .top-nav a{overflow-wrap:anywhere}main :where(.section,.ocl-seo-landing) :where(h1,h2,h3){hyphens:auto}main :where(.page-top,.hero){max-width:100%}.ocl-site-footer .ocl-footer-bottom nav{gap:.7rem 1.2rem}}
@media print{header,.ocl-contact-actions,.ocl-search-dialog{display:none!important}main,.ocl-site-footer{color:#000}main a{text-decoration:underline}}
