/* Shared CTA geometry: label and icon stay on one line. */
body .button,body .text-link{--action-width:248px;width:248px;min-width:248px;height:64px;min-height:64px;padding:18px 24px;gap:18px;box-sizing:border-box;flex-shrink:0}
body .button-label{white-space:nowrap;word-break:keep-all;flex:1 0 auto;line-height:1.5}
body .button-arrow{flex:0 0 18px;display:flex;align-items:center;justify-content:center}
body .button-arrow svg{width:18px;height:18px}
body form>.button,body #consultation-dialog form>.button{width:100%;min-width:0}
h1,h2,h3,summary{word-break:keep-all;overflow-wrap:normal;text-wrap:balance}
p{word-break:keep-all;overflow-wrap:break-word}
.qms-detail .qms-hero h1{max-width:1100px}
.qms-detail .qms-hero .lead br{display:block}
.qms-detail .qms-intro>p:last-child br{display:block}
.qms-detail .qms-services h3{line-height:1.5}
.qms-detail .qms-closing-bottom{flex-wrap:wrap}
@media(max-width:760px){
 body .button,body .text-link{width:248px;min-width:248px;height:60px;min-height:60px;padding:16px 22px;font-size:14px}
 .qms-detail .qms-hero h1{font-size:clamp(29px,9.1vw,40px);line-height:1.35}
 .qms-detail .qms-hero .content{padding-left:24px;padding-right:24px}
 .qms-detail .qms-hero .lead{max-width:30em}
 .qms-detail .qms-intro>p:last-child br,.qms-detail .qms-evidence-intro>p br,.qms-detail .qms-document-copy>p:not(.eyebrow) br{display:none}
 .qms-detail .qms-hero{min-height:max(820px,94svh)}
 .qms-detail #toggle{bottom:18px;right:16px}
}
/* Freeze viewport geometry. Only the circular clipping edge moves.
   Explicit object-fit prevents the default snapshot stretching. */
@media(prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 ::view-transition-group(root){animation:none!important;transform:none!important;inset:0;width:100%;height:100%}
 ::view-transition-image-pair(root){isolation:isolate;width:100%;height:100%}
 ::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal;transform:none;inset:0;width:100%;height:100%;object-fit:none;object-position:left top}
 ::view-transition-old(root){z-index:1}
 ::view-transition-new(root){z-index:2}
 html.mq-page-reveal::view-transition-new(root){animation:mq-circle-reveal 2200ms cubic-bezier(.45,0,.2,1) both}
}
@keyframes mq-circle-reveal{from{clip-path:circle(0px at var(--page-x,50vw) var(--page-y,50vh))}to{clip-path:circle(var(--page-radius,150vmax) at var(--page-x,50vw) var(--page-y,50vh))}}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}}
