/* Shared interaction safeguards. Each creative direction owns its visual layout. */
:root{--review-height:56px}
html{scroll-padding-top:calc(var(--review-height) + 20px)}
#review .review-bar{height:auto;min-height:56px;gap:16px;flex-wrap:wrap;padding:6px 24px;font-size:12px}
#review .review-bar>a{min-height:44px;display:flex;align-items:center}
#review .review-bar nav{align-self:stretch;min-height:44px}
#review .review-bar nav a{min-width:44px;min-height:44px}
#review .review-bar label{margin:0;min-height:44px}
#review .review-page-label{display:flex;align-items:center;gap:8px;margin-left:auto!important}
#review select{font:inherit;font-size:13px;min-height:40px;max-width:220px;border:1px solid #667080;border-radius:0;padding:8px 26px 8px 10px;background:#fff;color:#111}
#review .review-greyscale{display:flex;gap:7px;align-items:center}
#review input{width:18px;height:18px;margin:0}
/* A two-colour ring remains visible on both light and inverse surfaces. */
body :is(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #111!important;outline-offset:3px!important;box-shadow:0 0 0 3px #fff!important}
#site :is(.s-tabs button,.p14-product-tabs button):focus-visible{outline:3px solid #111!important;outline-offset:-7px!important;box-shadow:inset 0 0 0 4px #fff!important}
#site .s-tabs{overflow:visible}
#site :is(.skip,.e02-skip,.i16-skip):focus{top:calc(var(--review-height) + 12px);z-index:1000}
#site :is(main,section,article,[role=tabpanel],h1,h2,h3){scroll-margin-top:20px}
/* Enlarged text must grow its section rather than escape a fixed film frame. */
#site :is(h1,h2,h3,h4){overflow-wrap:anywhere}
#site{overflow-wrap:anywhere}
#site .s-tabs button{min-width:0}
@media(max-width:760px){
 #site .s-tabs{flex-wrap:wrap}
 #site .s-tabs button{flex:1 1 8rem}
 #site .p14-people{grid-template-columns:repeat(2,minmax(0,1fr))}
 #site .e02-levels article{grid-template-columns:max-content minmax(0,1fr)}
}
@media(max-width:370px){#site .p14-people{grid-template-columns:minmax(0,1fr)}}
#site .c-opening{height:auto;min-height:calc(100svh - var(--review-height));max-height:none}
#site :is(.c-nav,.c-title,.c-film-bottom){flex-shrink:0}
/* Text-local contrast remains reliable when the hero grows for enlarged type. */
@media(min-width:761px){
 #site .c-title{position:relative;isolation:isolate}
 #site .c-title::before{content:'';position:absolute;inset:-32px 0 -16px;z-index:-1;pointer-events:none;background:linear-gradient(180deg,transparent 0,rgba(0,0,0,.62) 32px,rgba(0,0,0,.8) 100%)}
}
/* Let readers increase text spacing without clipping fixed-height controls. */
#site button{height:auto;min-height:44px;white-space:normal}
#site .c-film-bottom button{min-width:44px;min-height:44px}
#site :is(.footer,.p14-footer) a{min-height:24px}
@media(max-width:1050px){#review .review-bar nav a span{display:none}#review .review-bar{padding-inline:12px;gap:10px}}
@media(max-width:760px){:root{--review-height:110px}#review .review-bar{display:grid;grid-template-columns:1fr auto;padding:4px 12px;gap:0 12px}#review .review-bar>a{grid-column:1;grid-row:1}#review .review-bar nav{grid-column:2;grid-row:1}#review .review-page-label{grid-column:1;grid-row:2;margin:0!important;min-width:0}#review .review-greyscale{grid-column:2;grid-row:2;justify-self:end}#review select{font-size:12px;max-width:155px;width:100%;padding-right:20px}#review .review-bar nav a{padding-inline:10px}#review .review-bar label{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){body :is(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:3px solid Highlight!important;box-shadow:none!important}#site [aria-selected=true]{outline:2px solid Highlight;outline-offset:-2px}}

#review .review-page-label{margin:0 0 0 auto;gap:8px}#review .review-page-label button{min-width:44px;min-height:40px;border:1px solid #667080;background:#fff;color:#111;padding:8px;font:inherit}#review .review-page-label label{font-size:12px}#review select{max-width:190px}
@media(max-width:760px){#review .review-page-label>label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#review select{max-width:138px;width:138px}#review .review-page-label{gap:6px}#review .review-greyscale{font-size:10px}}

#site .s-plus{display:flex;flex-shrink:0}
#site .s-industry-list [open] .s-plus{transform:none}
#site .s-plus svg{display:block;fill:none;stroke:currentColor;stroke-width:1.5}
#site .s-industry-list [open] .s-plus-vertical{display:none}

/* Legal copy: progressive detail preserves the service scope without a wall of text. */
.design .legal-more { margin-block: 12px; border-top: 1px solid currentColor; }
.design .legal-more > summary { cursor: pointer; min-height: 44px; padding-block: 12px; font-size: 1rem; line-height: 1.5; }
.design .legal-more > p, .design .legal-more > ul { font-size: 1rem; line-height: 1.65; margin-block: 12px; }
.design .legal-more > ul { padding-left: 1.3em; }
.interior14 .p14-service-brief { font-size: 1rem; line-height: 1.5; margin: 12px 0 0; font-weight: 400; color: inherit; max-width: 55ch; }
.interior14 .p14-training-topics > details { border-top: 1px solid currentColor; }
.interior14 .p14-training-topics > details > summary { display: grid; grid-template-columns: 32px minmax(0,1fr) 24px; gap: 20px; cursor: pointer; padding: 24px 0; min-height: 44px; align-items: baseline; }
.interior14 .p14-training-topics > details > summary h3 { margin: 0; }
.interior14 .p14-training-topics > details > p { margin: 0 0 24px 52px; color: inherit; }
@media(max-width:760px) { .interior14 .p14-training-topics > details > summary { grid-template-columns: 24px minmax(0,1fr) 20px; gap: 12px; } .interior14 .p14-training-topics > details > p { margin-left: 36px; } }
