/* BATI-MESURE 1.6 — editorial design system */
:root {
 --bm-navy:#142b32; --bm-navy-2:#203f46; --bm-teal:#286758; --bm-teal-dark:#1c5145;
 --bm-mint:#edf2ec; --bm-lime:#d6dfbf; --bm-ink:#233238; --bm-muted:#657171;
 --bm-soft:#f5f5f0; --bm-line:#e0e5de; --bm-shadow:0 8px 24px rgba(20,43,50,.055);
 --bm-radius:12px; --bm-radius-sm:8px; --bm-max:1200px;
}
body { font-size:16px; line-height:1.75; background:#fff; }
h1,h2,h3 { font-weight:600; text-wrap:balance; }
.bm-container { width:min(calc(100% - 80px),var(--bm-max)); }
.bm-section { padding:88px 0; }
.bm-kicker { color:var(--bm-teal); font-size:11px; letter-spacing:.16em; font-weight:650; margin-bottom:20px; }
.bm-kicker::before { display:none; }
.bm-section-title { font-size:clamp(28px,3.4vw,43px); line-height:1.2; letter-spacing:-.035em; font-weight:550; margin:0 0 22px; }
.bm-section-intro { font-size:16px; max-width:580px; color:var(--bm-muted); }
.bm-topbar { background:#f5f5f0; color:#576461; font-size:11px; letter-spacing:.03em; }
.bm-topbar__inner { min-height:32px; }
.bm-topbar a { color:var(--bm-navy); }
.bm-header { background:rgba(255,255,255,.97); border-bottom:1px solid var(--bm-line); }
.bm-header__inner { min-height:88px; gap:20px; }
.custom-logo { max-height:62px; }
.bm-nav > ul { gap:20px; }
.bm-nav a { font-size:13px; font-weight:550; }
.bm-btn { border-radius:7px; font-size:13px; font-weight:600; padding:14px 23px; gap:20px; letter-spacing:.015em; box-shadow:none; }
.bm-btn--light { color:var(--bm-navy); background:#fff; }
.bm-btn:hover { box-shadow:none; transform:translateY(-1px); }
.bm-text-link { display:inline-flex; align-items:center; gap:22px; font-weight:600; font-size:13px; text-decoration:none; border-bottom:1px solid currentColor; padding:7px 0; color:var(--bm-navy); }
.bm-text-link span { font-size:20px; font-weight:400; }
.bm-editorial-hero { background:#f5f5ef; padding:58px 0 64px; overflow:hidden; }
.bm-editorial-hero__grid { display:grid; grid-template-columns:1.05fr 1fr; gap:60px; align-items:center; }
.bm-editorial-hero h1 { font-size:clamp(40px,4.7vw,64px); font-weight:500; line-height:1.07; letter-spacing:-.045em; margin:0 0 26px; max-width:620px; }
.bm-editorial-hero h1 span { color:var(--bm-teal); }
.bm-editorial-hero__lead { max-width:540px; color:var(--bm-muted); font-size:16px; line-height:1.8; margin:0 0 28px; }
.bm-editorial-hero__location { border-top:1px solid #dce2d9; color:#69756f; margin:30px 0 0; padding-top:19px; max-width:440px; font-size:11px; }
.bm-editorial-hero__photo { position:relative; margin:0; height:490px; border-radius:5px; overflow:hidden; background:#dce4de; }
.bm-editorial-hero__photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:52% 50%; }
.bm-editorial-hero__photo::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,rgba(14,34,41,.75)); pointer-events:none; }
.bm-editorial-hero__photo figcaption { position:absolute; z-index:1; bottom:28px; left:30px; color:white; }
.bm-editorial-hero__photo figcaption span { display:block; font-size:10px; text-transform:uppercase; letter-spacing:.16em; margin-bottom:8px; }
.bm-editorial-hero__photo figcaption strong { font-size:21px; font-weight:500; line-height:1.35; }
.bm-proof-band { border-bottom:1px solid var(--bm-line); background:white; }
.bm-proof-band__grid { display:grid; grid-template-columns:1fr 1fr 1.4fr; }
.bm-proof-band__grid > div { display:grid; gap:3px; padding:27px 0; }
.bm-proof-band__grid > div + div { padding-left:40px; border-left:1px solid var(--bm-line); }
.bm-proof-band strong { font-size:20px; font-weight:550; color:var(--bm-navy); }
.bm-proof-band span { font-size:11px; color:var(--bm-muted); }
.bm-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:35px; margin-bottom:38px; }
.bm-section-heading .bm-section-title { margin-bottom:0; }
.bm-services-editorial { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.bm-service-editorial { border:1px solid var(--bm-line); background:#fff; border-radius:10px; overflow:hidden; display:flex; flex-direction:column; transition:border-color .2s,box-shadow .2s; }
.bm-service-editorial:hover { border-color:#b9c7b9; box-shadow:var(--bm-shadow); }
.bm-service-editorial__photo { display:block; overflow:hidden; aspect-ratio:16/10; background:#edf2ec; }
.bm-service-editorial__photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.bm-service-editorial:hover img { transform:scale(1.025); }
.bm-service-editorial__body { padding:25px 26px 27px; flex:1; display:flex; flex-direction:column; align-items:flex-start; }
.bm-service-editorial__category { font-size:10px; text-transform:uppercase; letter-spacing:.13em; color:var(--bm-teal); margin:0 0 10px; }
.bm-service-editorial h3 { font-size:22px; line-height:1.3; letter-spacing:-.025em; margin:0 0 13px; }
.bm-service-editorial h3 a { color:var(--bm-navy); text-decoration:none; }
.bm-service-editorial__body > p:not(.bm-service-editorial__category) { color:var(--bm-muted); font-size:14px; line-height:1.75; margin:0 0 23px; }
.bm-service-editorial .bm-card__link { margin-top:auto; font-size:12px; font-weight:600; }
.bm-editorial-method { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; align-items:start; }
.bm-method-list { margin:0; padding:0; list-style:none; }
.bm-method-list li { display:grid; grid-template-columns:44px 1fr; gap:20px; padding:25px 0; border-top:1px solid #d9dfd5; }
.bm-method-list li:first-child { padding-top:0; border:0; }
.bm-method-list li > span { font-size:12px; color:var(--bm-teal); padding-top:4px; }
.bm-method-list h3 { margin:0 0 10px; font-size:21px; }
.bm-method-list p { font-size:14px; color:var(--bm-muted); margin:0; }
.bm-reference-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.bm-reference { margin:0; }
.bm-reference img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; border-radius:6px; }
.bm-reference figcaption { padding-top:18px; display:grid; gap:4px; }
.bm-reference figcaption strong { font-size:17px; font-weight:550; }
.bm-reference figcaption span { font-size:13px; color:var(--bm-muted); }
.bm-resources-editorial { background:#eef2ec; }
.bm-editorial-guides a { display:grid; grid-template-columns:1fr 25px; gap:9px; padding:20px 0; border-top:1px solid #cdd8cd; text-decoration:none; color:var(--bm-navy); }
.bm-editorial-guides a:first-child { padding-top:0; border:0; }
.bm-editorial-guides span { color:var(--bm-teal); text-transform:uppercase; font-size:10px; letter-spacing:.14em; }
.bm-editorial-guides strong { grid-row:2; font-size:21px; line-height:1.4; font-weight:550; max-width:410px; }
.bm-editorial-guides em { grid-column:2; grid-row:1/3; align-self:center; font-style:normal; font-size:25px; }
.bm-faq { border:0; border-bottom:1px solid var(--bm-line); border-radius:0; background:none; box-shadow:none; padding:0; }
.bm-faq summary { font-weight:550; padding:21px 0; font-size:16px; }
.bm-faq p { margin:0 0 22px; font-size:14px; color:var(--bm-muted); }
.bm-technical-archive { padding:0 0 58px; }
.bm-technical-archive > .bm-container > details { border-top:1px solid var(--bm-line); border-bottom:1px solid var(--bm-line); }
.bm-technical-archive summary { cursor:pointer; padding:22px 0; color:var(--bm-muted); font-size:13px; }
.bm-technical-archive summary span { float:right; }
.bm-technical-archive .entry-content { padding:24px 0; }
.bm-editorial-contact { padding:62px 0; background:var(--bm-navy); color:white; }
.bm-editorial-contact > .bm-container { display:flex; justify-content:space-between; gap:45px; align-items:center; }
.bm-editorial-contact .bm-kicker { color:#b8ccae; }
.bm-editorial-contact h2 { font-size:clamp(28px,3vw,39px); font-weight:500; line-height:1.25; letter-spacing:-.035em; margin:0 0 16px; }
.bm-editorial-contact p:not(.bm-kicker) { color:#c2d0cd; margin:0; font-size:14px; }
.bm-footer { background:#10262c; padding-top:56px; }
.bm-footer h2 { font-size:22px; font-weight:550; letter-spacing:.04em; }
.bm-footer p,.bm-footer li { font-size:13px; }
.bm-footer h3 { text-transform:uppercase; letter-spacing:.12em; font-size:10px; color:#b8cbb9; font-weight:650; }
.bm-footer__bottom { font-size:10px; color:#91a7a4; }
/* Interior pages: short visual headers, comfortable reading column, restrained cards. */
.bm-page-hero { background:#f5f5ef; color:var(--bm-navy); padding:50px 0; }
.bm-page-hero__grid { grid-template-columns:1.2fr .8fr; gap:64px; }
.bm-page-hero h1 { font-size:clamp(32px,4vw,50px); line-height:1.12; font-weight:500; max-width:680px; }
.bm-page-hero p { color:var(--bm-muted); font-size:16px; line-height:1.7; }
.bm-page-hero p.bm-kicker { color:var(--bm-teal); font-size:11px; margin-bottom:20px; }
.bm-page-hero__figure { padding:0; border:0; border-radius:8px; overflow:hidden; background:#edf2ec; }
.bm-page-hero__figure img { border-radius:0; height:300px; width:100%; object-fit:cover; }
.bm-page-hero .bm-pill { background:white; border-color:#d6dfd2; color:var(--bm-teal); font-size:11px; border-radius:5px; padding:6px 10px; }
.bm-page-hero .bm-pill::before { color:var(--bm-teal); }
.bm-content { padding:56px 0 80px; }
.bm-content-layout { gap:56px; grid-template-columns:minmax(0,1fr) 270px; }
.bm-content h2 { font-size:clamp(25px,2.5vw,34px); line-height:1.25; font-weight:550; letter-spacing:-.025em; }
.bm-content h3 { font-size:20px; line-height:1.4; }
.bm-content p,.bm-content li { color:#536260; }
.bm-side-card { border-radius:9px; box-shadow:none; background:#f8f9f5; padding:25px; }
.bm-side-card h3 { font-size:18px; }
.bm-side-card p,.bm-side-links { font-size:13px; }
.bm-side-link span { font-size:12px; }
.bm-topic-tabs { background:#fff; border-bottom:1px solid var(--bm-line); }
.bm-topic-tab { border-radius:0; font-size:12px; box-shadow:none; }
.bm-topic-figure img { border-radius:9px; box-shadow:none; max-height:360px; object-fit:contain; background:#f5f6f1; }
.bm-highlight-card { background:#f5f6f1; border:1px solid var(--bm-line); border-radius:9px; box-shadow:none; padding:22px; }
.bm-highlight-card h3 { margin-top:0; font-size:18px; }
.bm-highlight-card p { font-size:13px; }
.bm-link-card { background:#fff; color:var(--bm-navy); border:1px solid var(--bm-line); border-radius:9px; box-shadow:none; }
.bm-link-card strong { color:var(--bm-navy); font-size:18px; font-weight:550; }
.bm-link-card span { color:var(--bm-muted); font-size:13px; line-height:1.75; }
.bm-link-card:hover { border-color:#a5bbab; }
.bm-expertise-card__image { aspect-ratio:16/10; object-fit:cover; }
.bm-legacy-gallery img { border-radius:8px; box-shadow:none; max-height:440px; object-fit:contain; }
.bm-legacy-section { margin:0 0 40px; padding:0 0 35px; border:0; border-bottom:1px solid var(--bm-line); border-radius:0; background:none; box-shadow:none; }
.bm-legacy-section > h2 { margin:0 0 24px!important; padding:0; border-radius:0; background:none; color:var(--bm-navy)!important; text-align:left; font-size:clamp(25px,2.5vw,34px)!important; font-weight:550; text-transform:none; }
.bm-topic-card,.bm-project-guide,.bm-info-card { border-radius:9px; box-shadow:none; }
.bm-quote-hero { padding:54px 0 45px; background:#f5f5ef; }
.bm-quote-hero .bm-kicker,.bm-quote-intro .bm-kicker,.bm-quote-faq .bm-kicker,.bm-quote-aside .bm-kicker { color:var(--bm-teal); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.bm-quote-hero h1 { max-width:920px; margin:0 0 18px; color:var(--bm-navy); font-size:clamp(36px,4.2vw,54px); line-height:1.08; font-weight:520; letter-spacing:-.04em; }
.bm-quote-lead { max-width:800px; color:#52615e; font-size:18px; line-height:1.65; }
.bm-quote-hero__facts { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.bm-quote-hero__facts span { padding:8px 12px; border:1px solid #d9e0d8; border-radius:5px; color:#31574c; background:#fff; font-size:12px; }
.bm-quote-content { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:48px; align-items:start; padding-top:54px; padding-bottom:90px; }
.bm-quote-intro { max-width:850px; margin-bottom:28px; }
.bm-quote-intro h2,.bm-quote-faq h2 { margin:0 0 16px; color:var(--bm-navy); font-size:clamp(25px,2.5vw,34px); line-height:1.2; font-weight:540; letter-spacing:-.025em; }
.bm-quote-intro p:not(.bm-kicker) { color:#536260; }
.bm-quote-form-card { padding:26px; border:1px solid var(--bm-line); border-radius:10px; background:#fafbf8; }
.bm-quote-form-card__heading { display:flex; align-items:center; gap:15px; margin:0 0 20px; }
.bm-quote-step { display:grid; width:38px; height:38px; flex:0 0 38px; place-items:center; border-radius:50%; color:#fff; background:var(--bm-teal); font-size:13px; }
.bm-quote-form-card__heading h2 { margin:0 0 4px; color:var(--bm-navy); font-size:21px; font-weight:550; }
.bm-quote-form-card__heading p { margin:0; color:var(--bm-muted); font-size:13px; }
.bm-quote-form-card .bm-form { padding:22px; border:1px solid #e2e7e2; border-radius:8px; box-shadow:none; }
.bm-quote-form-card .bm-field label,.bm-quote-form-card .bm-field legend { font-size:13px; font-weight:600; }
.bm-quote-form-card .bm-field input,.bm-quote-form-card .bm-field select,.bm-quote-form-card .bm-field textarea { border-radius:5px; }
.bm-quote-form-card .bm-check { font-size:13px; font-weight:450; }
.bm-quote-form-card .bm-checks { gap:12px; }
.bm-quote-form-card .bm-btn { min-height:48px; }
.bm-quote-aside { position:sticky; top:110px; display:grid; gap:14px; }
.bm-quote-aside__card,.bm-quote-aside__privacy { padding:22px; border:1px solid var(--bm-line); border-radius:9px; background:#f6f7f3; }
.bm-quote-aside__card h2 { margin:0 0 12px; color:var(--bm-navy); font-size:19px; font-weight:540; line-height:1.3; }
.bm-quote-aside__card ul { margin:0; padding:0; list-style:none; }
.bm-quote-aside__card li { padding:11px 0; border-top:1px solid #e0e5df; font-size:13px; line-height:1.5; }
.bm-quote-aside__card li a { color:#285d4e; font-weight:550; text-decoration:none; }
.bm-quote-aside__card p:not(.bm-kicker),.bm-quote-aside__privacy p { color:#5c6965; font-size:13px; }
.bm-quote-aside__contact { background:#edf2ec; }
.bm-quote-aside__privacy strong { color:var(--bm-navy); font-size:14px; }
.bm-quote-faq { margin-top:48px; }
.bm-quote-faq details { padding:16px 0; border-bottom:1px solid var(--bm-line); }
.bm-quote-faq summary { color:var(--bm-navy); font-weight:600; cursor:pointer; }
.bm-quote-faq details p { max-width:760px; margin:12px 0 0; color:#536260; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #729776; outline-offset:4px; }
@media (max-width:1100px) {
 .bm-nav > ul { gap:14px; } .bm-editorial-hero__grid { gap:36px; }
 .bm-editorial-hero__photo { height:430px; } .bm-editorial-method { gap:55px; }
 .bm-service-editorial__body { padding:20px; } .bm-content-layout { gap:35px; }
}
@media (max-width:900px) {
 .bm-services-editorial { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .bm-page-hero__grid { grid-template-columns:1fr 1fr; gap:30px; }
 .bm-content-layout { grid-template-columns:1fr; } .bm-content-aside { position:static; grid-template-columns:1fr 1fr; }
 .bm-proof-band__grid { grid-template-columns:1fr 1fr 1.2fr; }
 .bm-proof-band__grid > div + div { padding-left:22px; } .bm-proof-band strong { font-size:17px; }
}
@media (max-width:840px) {
 .bm-container { width:calc(100% - 40px); } .bm-header__inner { min-height:76px; }
 .bm-editorial-hero__grid,.bm-editorial-method { grid-template-columns:1fr; }
 .bm-editorial-hero { padding:45px 0; } .bm-editorial-hero h1 { max-width:600px; font-size:48px; }
 .bm-editorial-hero__photo { height:360px; } .bm-editorial-hero__location { margin-top:24px; }
 .bm-section { padding:64px 0; } .bm-editorial-method { gap:34px; }
 .bm-section-heading { align-items:start; gap:22px; }
 .bm-page-hero__figure img { height:240px; }
 .bm-header .bm-nav { border-radius:9px; }
 .bm-quote-content { grid-template-columns:1fr; gap:30px; }
 .bm-quote-aside { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
 .bm-editorial-hero h1 { font-size:40px; } .bm-editorial-hero__photo { height:310px; }
 .bm-proof-band__grid { grid-template-columns:1fr; } .bm-proof-band__grid > div { padding:16px 0; }
 .bm-proof-band__grid > div + div { padding-left:0; border-left:0; border-top:1px solid var(--bm-line); }
 .bm-services-editorial,.bm-reference-grid { grid-template-columns:1fr; gap:24px; }
 .bm-section-heading { display:grid; margin-bottom:26px; } .bm-section-heading .bm-text-link { justify-self:start; }
 .bm-service-editorial__body { padding:22px; } .bm-service-editorial__photo { aspect-ratio:16/9; }
 .bm-page-hero__grid { grid-template-columns:1fr; gap:25px; } .bm-page-hero { padding:36px 0; }
 .bm-page-hero h1 { font-size:34px; } .bm-page-hero__figure img { height:230px; }
 .bm-content { padding:38px 0 58px; } .bm-content-aside { grid-template-columns:1fr; }
 .bm-editorial-contact > .bm-container { display:grid; gap:28px; } .bm-editorial-contact .bm-btn { justify-self:start; }
 .bm-footer__grid { gap:30px; } .bm-footer__bottom { flex-direction:column; gap:8px; }
 .bm-btn { padding:13px 18px; } .bm-hero__actions { gap:20px; }
 .bm-quote-hero { padding:38px 0 32px; }
 .bm-quote-hero h1 { font-size:34px; }
 .bm-quote-lead { font-size:16px; }
 .bm-quote-content { padding-top:36px; padding-bottom:58px; }
 .bm-quote-form-card { padding:14px; }
 .bm-quote-form-card .bm-form { padding:16px; }
 .bm-quote-form-card .bm-form-grid { grid-template-columns:1fr; }
 .bm-quote-form-card .bm-field--full { grid-column:auto; }
 .bm-quote-aside { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }

/* Local navigation: compact, expandable and usable without JavaScript. */
.bm-sector-details { margin:28px 0 12px; border-block:1px solid var(--bm-line); }
.bm-sector-details > summary { cursor:pointer; padding:20px 8px; color:var(--bm-teal); font-size:15px; font-weight:600; }
.bm-sector-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; padding:0 8px 22px; }
.bm-sector-links a { font-size:14px; color:var(--bm-navy); text-underline-offset:4px; }
@media(max-width:600px) { .bm-sector-links { grid-template-columns:1fr; } }
