/* Commerce reference skin: derived from the approved Bureaux & Corporate rules.
   All content rules are scoped; existing newsletter, footer and drawer are untouched. */
body.abi-current-frame .abi-commerce-reference{--violet:#3d2070;--ink:#19191b;--muted:#707075;--rule:#dedee1}
body.abi-current-frame .abi-commerce-reference *{box-sizing:border-box}
body.abi-current-frame .abi-commerce-reference{margin:0;background:#fff;color:var(--ink);font:16px/1.6 Raleway,Arial,sans-serif}
body.abi-current-frame .abi-commerce-reference h1,
body.abi-current-frame .abi-commerce-reference h2,
body.abi-current-frame .abi-commerce-reference h3,
body.abi-current-frame .abi-commerce-reference p{margin:0}
body.abi-current-frame .abi-commerce-reference a{color:inherit}
body.abi-current-frame .abi-commerce-reference button,
body.abi-current-frame .abi-commerce-reference input,
body.abi-current-frame .abi-commerce-reference select,
body.abi-current-frame .abi-commerce-reference textarea{font:inherit}
body.abi-current-frame .abi-commerce-reference button,
body.abi-current-frame .abi-commerce-reference a,
body.abi-current-frame .abi-commerce-reference input,
body.abi-current-frame .abi-commerce-reference select,
body.abi-current-frame .abi-commerce-reference textarea{touch-action:manipulation}
body.abi-current-frame .abi-commerce-reference a:focus-visible,
body.abi-current-frame .abi-commerce-reference button:focus-visible,
body.abi-current-frame .abi-commerce-reference input:focus-visible,
body.abi-current-frame .abi-commerce-reference select:focus-visible,
body.abi-current-frame .abi-commerce-reference textarea:focus-visible,
body.abi-current-frame .abi-commerce-reference summary:focus-visible{outline:3px solid #9b80c2;outline-offset:4px}
body.abi-current-frame .abi-commerce-reference img{display:block;max-width:100%}
body.abi-current-frame .abi-commerce-reference .button{display:inline-flex;align-items:center;justify-content:center;background:var(--violet);color:#fff;border:1px solid var(--violet);border-radius:40px;min-height:50px;padding:12px 25px;font-weight:600;text-decoration:none;cursor:pointer}
body.abi-current-frame .abi-commerce-reference .button.white{background:#fff;color:var(--ink);border-color:#aaa}
body.abi-current-frame .abi-commerce-reference .hero{position:relative;isolation:isolate;min-height:560px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background:#21162f;padding:70px 6%}
body.abi-current-frame .abi-commerce-reference .hero:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(33,22,47,.78),rgba(33,22,47,.72)),var(--hero,none) center/cover}
body.abi-current-frame .abi-commerce-reference .hero-inner{max-width:900px}
body.abi-current-frame .abi-commerce-reference .eyebrow{font-size:12px;letter-spacing:.14em;font-weight:700}
body.abi-current-frame .abi-commerce-reference .hero h1{font:400 clamp(39px,5vw,70px)/1.13 Georgia,serif;letter-spacing:-.025em;margin:20px auto;max-width:900px}
body.abi-current-frame .abi-commerce-reference .hero p{font-size:21px;max-width:750px;margin:auto}
body.abi-current-frame .abi-commerce-reference .hero .button{margin-top:28px;background:#fff;border-color:#fff;color:#21162f}
body.abi-current-frame .abi-commerce-reference .wrap{max-width:1240px;margin:auto;padding:65px 5%}
body.abi-current-frame .abi-commerce-reference .center{text-align:center}
body.abi-current-frame .abi-commerce-reference .wrap h2{font:400 clamp(30px,3.4vw,46px)/1.2 Georgia,serif;letter-spacing:-.02em}
body.abi-current-frame .abi-commerce-reference .intro{max-width:820px;margin:22px auto 0;font-size:19px}
body.abi-current-frame .abi-commerce-reference .columns{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:38px}
body.abi-current-frame .abi-commerce-reference .tile{background:#f6f5f8;padding:28px;border-radius:9px}
body.abi-current-frame .abi-commerce-reference .tile small{color:var(--violet);font-weight:700}
body.abi-current-frame .abi-commerce-reference .tile h3{font-size:21px;line-height:1.35;margin:14px 0}
body.abi-current-frame .abi-commerce-reference .tile p{color:#555}
body.abi-current-frame .abi-commerce-reference .catalogue{background:#fafafa}
body.abi-current-frame .abi-commerce-reference .filterbar{display:flex;gap:14px;margin:25px 0 14px;align-items:end;flex-wrap:wrap}
body.abi-current-frame .abi-commerce-reference .filterbar label{flex:1;min-width:160px;font-size:14px;font-weight:600}
body.abi-current-frame .abi-commerce-reference .filterbar input,
body.abi-current-frame .abi-commerce-reference .filterbar select{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid #bbb;border-radius:4px;background:white;color:var(--ink);min-height:48px}
body.abi-current-frame .abi-commerce-reference .count{color:var(--muted);font-size:14px;margin:12px 0 24px}
body.abi-current-frame .abi-commerce-reference .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
body.abi-current-frame .abi-commerce-reference .card{border:1px solid #e3e3e3;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 2px 3px #0002;min-width:0}
body.abi-current-frame .abi-commerce-reference .card>a{display:block;text-decoration:none}
body.abi-current-frame .abi-commerce-reference .card .photo{aspect-ratio:1.5;background:#eee;overflow:hidden}
body.abi-current-frame .abi-commerce-reference .card img{width:100%;height:100%;object-fit:cover}
body.abi-current-frame .abi-commerce-reference .card .info{padding:20px}
body.abi-current-frame .abi-commerce-reference .price{font-size:25px;font-weight:700;line-height:1.3}
body.abi-current-frame .abi-commerce-reference .card h3{font-size:18px;font-weight:500;line-height:1.4;margin:10px 0}
body.abi-current-frame .abi-commerce-reference .spec{color:var(--muted);font-size:15px}
body.abi-current-frame .abi-commerce-reference .card .more{display:block;color:var(--violet);font-weight:600;font-size:14px;margin-top:14px}
body.abi-current-frame .abi-commerce-reference .empty{border:1px solid var(--rule);padding:28px;text-align:center;background:white}
body.abi-current-frame .abi-commerce-reference .service-list{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:35px}
body.abi-current-frame .abi-commerce-reference .service{padding:30px;border:1px solid var(--rule)}
body.abi-current-frame .abi-commerce-reference .service h3{font-size:21px;line-height:1.4;margin-bottom:12px}
body.abi-current-frame .abi-commerce-reference .service p{color:#626267}
body.abi-current-frame .abi-commerce-reference .gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px}
body.abi-current-frame .abi-commerce-reference .gallery img{width:100%;aspect-ratio:1.35;object-fit:cover}
body.abi-current-frame .abi-commerce-reference .related{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
body.abi-current-frame .abi-commerce-reference .related a{color:var(--violet);text-underline-offset:4px}
body.abi-current-frame .abi-commerce-reference .contact-block{background:#f6f5f8;scroll-margin-top:20px}
body.abi-current-frame .abi-commerce-reference .contactgrid{display:grid;grid-template-columns:1fr 1.1fr;gap:70px}
body.abi-current-frame .abi-commerce-reference .contactgrid h2{font:400 38px/1.2 Georgia,serif}
body.abi-current-frame .abi-commerce-reference .contactgrid p{margin-top:18px}
body.abi-current-frame .abi-commerce-reference .person{display:flex;gap:20px;align-items:center;margin:30px 0}
body.abi-current-frame .abi-commerce-reference .portrait{position:relative;width:110px;height:110px;flex:none;border-radius:50%;overflow:hidden;background:#ddd}
body.abi-current-frame .abi-commerce-reference .portrait img{position:absolute;width:160%;max-width:none;height:auto;left:-35%;top:-15%}
body.abi-current-frame .abi-commerce-reference .person strong{font-size:20px}
body.abi-current-frame .abi-commerce-reference .person span{display:block;color:var(--muted);font-size:14px}
body.abi-current-frame .abi-commerce-reference .contactlinks{display:flex;gap:12px;flex-wrap:wrap}
body.abi-current-frame .abi-commerce-reference .addresses{margin-top:25px;font-size:15px}
body.abi-current-frame .abi-commerce-reference .addresses strong{display:block;margin-top:16px}
body.abi-current-frame .abi-commerce-reference .formbox{background:white;padding:30px;border:1px solid var(--rule);border-radius:10px}
body.abi-current-frame .abi-commerce-reference .formbox h3{font-size:25px;line-height:1.3;margin-bottom:22px}
body.abi-current-frame .abi-commerce-reference .formbox label{display:block;font-size:14px;font-weight:600;margin:16px 0}
body.abi-current-frame .abi-commerce-reference .formbox input:not([type=checkbox]):not([type=hidden]),
body.abi-current-frame .abi-commerce-reference .formbox select,
body.abi-current-frame .abi-commerce-reference .formbox textarea{display:block;width:100%;border:1px solid #bcbcc1;border-radius:4px;background:#fff;min-height:49px;padding:12px;margin-top:7px;color:var(--ink)}
body.abi-current-frame .abi-commerce-reference .formbox textarea{min-height:150px;resize:vertical}
body.abi-current-frame .abi-commerce-reference .pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}
body.abi-current-frame .abi-commerce-reference .consent{display:flex!important;gap:12px;font-weight:400!important;align-items:flex-start;line-height:1.5}
body.abi-current-frame .abi-commerce-reference .consent input{width:21px;height:21px;flex:none;margin-top:1px;accent-color:var(--violet)}
body.abi-current-frame .abi-commerce-reference .privacy{font-size:12px!important;color:var(--muted)}
body.abi-current-frame .abi-commerce-reference .formbox button{width:100%;margin-top:20px}
body.abi-current-frame .abi-commerce-reference .status{padding:16px;border:1px solid var(--violet);margin-bottom:20px;font-size:15px}
body.abi-current-frame .abi-commerce-reference [hidden]{display:none!important}
@media(max-width:650px){
body.abi-current-frame .abi-commerce-reference .hero{min-height:480px;padding:62px 6%}
body.abi-current-frame .abi-commerce-reference .hero h1{font-size:40px}
body.abi-current-frame .abi-commerce-reference .hero p{font-size:18px}
body.abi-current-frame .abi-commerce-reference .wrap{padding:46px 6%}
body.abi-current-frame .abi-commerce-reference .wrap h2{font-size:32px}
body.abi-current-frame .abi-commerce-reference .intro{font-size:17px}
body.abi-current-frame .abi-commerce-reference .columns{grid-template-columns:1fr;gap:16px;margin-top:28px}
body.abi-current-frame .abi-commerce-reference .tile{padding:25px}
body.abi-current-frame .abi-commerce-reference .grid{grid-template-columns:1fr;gap:24px}
body.abi-current-frame .abi-commerce-reference .filterbar{gap:12px}
body.abi-current-frame .abi-commerce-reference .filterbar label{min-width:130px}
body.abi-current-frame .abi-commerce-reference .filterbar .button{width:100%}
body.abi-current-frame .abi-commerce-reference .card .info{padding:18px}
body.abi-current-frame .abi-commerce-reference .price{font-size:25px}
body.abi-current-frame .abi-commerce-reference .service-list{grid-template-columns:1fr}
body.abi-current-frame .abi-commerce-reference .service{padding:24px}
body.abi-current-frame .abi-commerce-reference .gallery{grid-template-columns:1fr 1fr;gap:10px}
body.abi-current-frame .abi-commerce-reference .contactgrid{grid-template-columns:1fr;gap:35px}
body.abi-current-frame .abi-commerce-reference .contactgrid h2{font-size:33px}
body.abi-current-frame .abi-commerce-reference .formbox{padding:23px 18px}
body.abi-current-frame .abi-commerce-reference .pair{gap:12px}
body.abi-current-frame .abi-commerce-reference .person{gap:18px}
body.abi-current-frame .abi-commerce-reference .portrait{width:96px;height:96px}
body.abi-current-frame .abi-commerce-reference .person strong{font-size:18px}
}
/* Legacy CSS compatibility: retain reference typography and intrinsic sizing. */
body.abi-current-frame .abi-commerce-reference{width:100%;min-width:0}
body.abi-current-frame .abi-commerce-reference h3{font-family:Raleway,Arial,sans-serif;font-weight:700;letter-spacing:normal}
body.abi-current-frame .abi-commerce-reference p{line-height:1.6}
body.abi-current-frame .abi-commerce-reference .hero{height:auto;margin:0;width:100%;max-width:none}
body.abi-current-frame .abi-commerce-reference .hero-inner{width:100%;min-width:0}
body.abi-current-frame .abi-commerce-reference .hero h1{height:auto;max-height:none;overflow:visible;white-space:normal}
body.abi-current-frame .abi-commerce-reference .hero p{line-height:1.6}
body.abi-current-frame .abi-commerce-reference .wrap{width:100%;min-width:0}
body.abi-current-frame .abi-commerce-reference .columns{grid-template-columns:repeat(3,minmax(0,1fr))}
body.abi-current-frame .abi-commerce-reference .tile{min-width:0}
body.abi-current-frame .abi-commerce-reference .card{display:block;height:auto;margin:0;position:relative}
body.abi-current-frame .abi-commerce-reference .card .photo{position:relative;width:100%;height:auto;margin:0}
body.abi-current-frame .abi-commerce-reference .card .photo>a{display:block;width:100%;height:100%}
body.abi-current-frame .abi-commerce-reference .card .photo img{position:static;display:block;width:100%;height:100%;object-fit:cover}
body.abi-current-frame .abi-commerce-reference .card .info{position:static;display:block;text-decoration:none;transform:none;width:100%;height:auto;min-width:0}
body.abi-current-frame .abi-commerce-reference .card .price{font-size:25px;font-weight:700;line-height:1.3}
body.abi-current-frame .abi-commerce-reference .card .spec{font-size:15px;line-height:1.6}
body.abi-current-frame .abi-commerce-reference .filterbar{min-width:0}
body.abi-current-frame .abi-commerce-reference .filterbar label{max-width:100%}
body.abi-current-frame .abi-commerce-reference .filterbar input,
body.abi-current-frame .abi-commerce-reference .filterbar select{max-width:100%;font-size:16px;line-height:1.5}
body.abi-current-frame .abi-commerce-reference .contactgrid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
body.abi-current-frame .abi-commerce-reference .contactgrid>*,
body.abi-current-frame .abi-commerce-reference .formbox,
body.abi-current-frame .abi-commerce-reference .formbox label,
body.abi-current-frame .abi-commerce-reference .pair>*{min-width:0;max-width:100%}
body.abi-current-frame .abi-commerce-reference .pair{grid-template-columns:repeat(2,minmax(0,1fr))}
body.abi-current-frame .abi-commerce-reference .formbox input:not([type=checkbox]):not([type=hidden]),
body.abi-current-frame .abi-commerce-reference .formbox select,
body.abi-current-frame .abi-commerce-reference .formbox textarea{font-size:16px;line-height:1.5;max-width:100%;height:auto}
body.abi-current-frame .abi-commerce-reference .formbox .consent input{display:block;position:static;opacity:1}
body.abi-current-frame .abi-commerce-reference .addresses,
body.abi-current-frame .abi-commerce-reference .person,
body.abi-current-frame .abi-commerce-reference .card h3,
body.abi-current-frame .abi-commerce-reference .tile h3,
body.abi-current-frame .abi-commerce-reference .related a{overflow-wrap:break-word}
/* Favorite retains the existing action; only its own visible pill overlays the image. */
body.abi-current-frame .abi-commerce-reference .commerce-favorite{position:absolute;right:12px;top:12px;z-index:2;max-width:calc(100% - 24px)}
body.abi-current-frame .abi-commerce-reference .commerce-favorite .link-favorite{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;height:auto;min-width:44px;min-height:44px;max-width:100%;padding:10px 12px;background:#fff;color:var(--violet);border-radius:24px;font:600 14px/1.3 Raleway,Arial,sans-serif;text-decoration:none;cursor:pointer;white-space:normal;box-shadow:0 2px 6px #0002}
body.abi-current-frame .abi-commerce-reference .commerce-favorite .link-favorite i{position:static;flex:none;font-size:20px;line-height:1;color:currentColor}
body.abi-current-frame .abi-commerce-reference .commerce-favorite .link-favorite .fas{display:none}
body.abi-current-frame .abi-commerce-reference .commerce-favorite .link-favorite.active .far{display:none}
body.abi-current-frame .abi-commerce-reference .commerce-favorite .link-favorite.active .fas{display:inline-block;color:currentColor;opacity:1;z-index:auto}
/* Existing compact masthead becomes white only on this reference page. */
body.abi-current-frame.abi-commerce-reference-page .abi-current-masthead{background:#fff;color:#19191b;border-bottom:1px solid #dedee1}
body.abi-current-frame.abi-commerce-reference-page .abi-current-masthead .header-contact{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 25px;border:1px solid #3d2070;border-radius:40px;background:#3d2070;color:#fff;text-decoration:none;font-weight:600}
@media(max-width:650px){
 body.abi-current-frame .abi-commerce-reference .columns{grid-template-columns:minmax(0,1fr)}
 body.abi-current-frame .abi-commerce-reference .contactgrid{grid-template-columns:minmax(0,1fr)}
 body.abi-current-frame.abi-commerce-reference-page .abi-current-masthead .header-contact{min-height:44px;padding:10px 16px}
}
@media(max-width:380px){
 body.abi-current-frame .abi-commerce-reference .pair{grid-template-columns:minmax(0,1fr)}
}

/* Commerce: explicit white hero title and project CTA text. */
body.abi-current-frame .abi-commerce-reference .related a.button,
body.abi-current-frame .abi-commerce-reference .related a.button:hover,
body.abi-current-frame .abi-commerce-reference .related a.button:focus-visible{color:#fff}
body.abi-current-frame .abi-commerce-reference .hero h1#commerce-title{color:#fff!important}

/* Commerce only: override legacy square crop and preserve CTA contrast. */
body.abi-current-frame .abi-commerce-reference #projet .portrait{border-radius:50%!important;overflow:hidden}
body.abi-current-frame .abi-commerce-reference .related a.button,
body.abi-current-frame .abi-commerce-reference .related a.button:hover,
body.abi-current-frame .abi-commerce-reference .related a.button:focus-visible{color:#fff!important}

/* Hero photo contrast: explicit white text, unchanged white CTA button. */
body.abi-current-frame .abi-commerce-reference .hero p,
body.abi-current-frame .abi-commerce-reference .hero .eyebrow,
body.abi-current-frame .abi-commerce-reference .hero strong{color:#fff!important}
