/* Refined LAB-03 · 2026-09-09 */
/* V02 composition layer. LAB-03 foundations own colour, type and interactions. */
button,input,select,textarea{font:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.inline-link{border:0;color:inherit;background:transparent;font:inherit;cursor:pointer}
.page-intro{padding-block:var(--space-hero) var(--space-heading-content);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-label) var(--gap);min-height:0;align-content:start}
.page-intro+.section{padding-block-start:0}
.page-intro>h1{grid-column:1/-1;font-size:var(--type-hero-heading);max-width:none}
.page-intro>.kicker{grid-column:1/-1}
.page-intro>.hero__lead{grid-column:1/span 6;max-width:var(--copy-measure);font-size:var(--type-lead);margin-block-start:var(--space-title-copy)}
.page-intro>p:not(.hero__lead,.kicker),.page-intro>.actions{grid-column:1/-1}
.page-intro>.hero__lead p+p{margin-block-start:1em}
.v02-home .hero-intro>p{font-size:var(--type-lead)}
.lab-system .section-head:not(:has(>.kicker))>h2{grid-row:1}
.lab-system .section-head>.section-link{white-space:normal}
.lab-system .v02-info-4{--info-span:3}
.lab-system .v02-info-3{--info-span:4}
.lab-system .v02-info-2{--info-span:6}
.lab-system .lab-info-grid>div>img{width:clamp(2.5rem,4vw,4rem);height:4rem;object-fit:contain;object-position:left center}
.lab-system .lab-info-grid--compact>div>img{width:var(--icon-support);height:var(--icon-support)}
.lab-system .lab-info-grid:has(>a){display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.lab-system .facts-grid>div{grid-column:span 3;padding-block-start:1rem;border-top:1px solid var(--ink)}
.fact-figure{display:block;font-size:var(--type-small-heading);line-height:var(--leading-card);letter-spacing:-.035em}
.col-note{display:block;margin-block-start:var(--space-card);color:var(--gray);font-size:var(--type-meta)}
.lab-system .consultancy-lead{max-width:var(--copy-measure);font-size:var(--type-lead);color:var(--ink-soft);margin-block:var(--space-title-copy) var(--space-heading-content)}
.consultancy-body{max-width:none}
.consultancy-body>p{max-width:var(--copy-measure);color:var(--ink-soft)}
.consultancy-body>p+p{margin-block-start:1em}
.consultancy-body:has(>.lab-info-grid){margin-block-start:var(--space-heading-content)}
.consultancy-section__mark{width:clamp(2.5rem,4vw,4rem);height:auto}
.consultancy-note{margin-block-start:var(--space-note);max-width:var(--copy-measure);color:var(--ink-soft)}
.v02-section-action{margin-block-start:var(--space-heading-content)}
.work-grid.v02-work-index{row-gap:var(--space-row)}
.news-grid{row-gap:var(--space-row)}
.project video{width:100%;height:100%;object-fit:cover}
.v02-collection-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);margin-block-start:var(--space-heading-content)}
.btn{min-height:var(--button-height);display:inline-flex;align-items:center;justify-content:center;gap:1rem;padding:.75rem 1.25rem;border:1px solid var(--ink);border-radius:var(--radius);background:var(--paper);color:var(--ink);font-size:var(--type-meta);transition:background 180ms var(--ease-out),color 180ms var(--ease-out)}
.btn:hover,.btn:focus-visible,.btn:active{background:var(--ink);color:var(--paper)}
.btn:active{box-shadow:inset 0 0 0 3px var(--paper)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn--solid{background:var(--ink);color:var(--paper)}
.btn--solid:hover{background:var(--paper);color:var(--ink)}
.prose{max-width:var(--copy-measure);color:var(--ink-soft)}
.prose p+p{margin-block-start:1.25em}
.prose>h2{font-size:var(--type-small-heading);line-height:var(--leading-card);margin-block:var(--space-heading-content) var(--space-card);color:var(--ink)}
.prose>h2:first-child{margin-block-start:0}
.prose>h3{font-size:var(--type-small-heading);margin-block:var(--space-card) 1rem}
.prose :is(ul,ol){padding-inline-start:1.25em;margin-block:var(--space-card)}
.prose li+li{margin-block-start:.5em}
.prose a,.hero__lead a,.contact-details a{padding:.05em .18em;margin-inline:-.18em;border-radius:var(--radius);text-decoration:underline;text-underline-offset:.22em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.prose a:is(:hover,:focus-visible,:active),.hero__lead a:is(:hover,:focus-visible,:active),.contact-details a:is(:hover,:focus-visible,:active){background:var(--ink);color:var(--paper);text-decoration-color:transparent}
.measure{max-width:var(--copy-measure);font-size:var(--type-lead);color:var(--ink-soft);margin-block-start:var(--space-card)}
.v02-editorial>.section>h2,.v02-contact>.section>h2{font-size:var(--type-section-heading);margin-block-end:var(--space-heading-content)}
.v02-editorial>.section>p+ p{margin-block-start:var(--space-card)}
.steps{list-style:none;padding:0;margin-block-start:var(--space-heading-content)}
.steps>li{border-top:1px solid var(--line);padding-block:var(--space-card)}
.steps h3{font-size:var(--type-small-heading);line-height:1.2;letter-spacing:var(--tracking-compact);margin-block-start:var(--space-label)}
.v02-article .page-intro{min-height:0;padding-block-end:var(--space-heading-content)}
.v02-article .page-intro h1{font-size:var(--type-hero-heading)}
.v02-article .page-intro>.hero__lead{grid-column:1/span 8}
.article-copy{width:100%;max-width:var(--copy-measure);margin-inline:auto;font-size:var(--type-lead)}
.article-media{margin:0}
/* Only news preview cards are monochrome; article media keeps its original colour. */
.article-media img,.article-media video{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:var(--smoke)}
.case-hero>img,.case-media>img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:var(--smoke)}
.v02-article .article-copy img{margin-block:var(--space-card);height:auto}
.case-section__grid{display:grid;gap:var(--space-row) var(--gap);grid-template-columns:repeat(2,minmax(0,1fr))}
.case-media-grid[data-cols="1"]{grid-template-columns:minmax(0,1fr)}
.case-media-grid[data-cols="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}
.case-chapter:has(.case-chapter__head:empty):has(.case-chapter__copy:empty){padding-block:var(--space-media)}
.case-chapter__head:empty,.case-chapter__copy:empty{display:none}
.case-lead:empty{display:none}
.case-pager{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.case-pager__link{display:flex;flex-direction:column;gap:var(--space-card);padding:var(--space-card);border-top:1px solid var(--line);border-radius:0}
.case-pager__name{font-size:var(--type-small-heading);line-height:var(--leading-card)}
.case-pager__link:is(:hover,:focus-visible,:active){border-radius:var(--radius);background:var(--ink);color:var(--paper)}
.v02-article nav>p{margin-block-start:var(--space-card)}
.v02-quote{margin:0;max-width:var(--copy-measure)}
.v02-quote>p{font-size:var(--type-card-heading);line-height:var(--leading-card)}
.v02-quote>footer{margin-block-start:var(--space-card);font-size:var(--type-meta);color:var(--gray)}
.media--embed{position:relative;aspect-ratio:16/9;background:var(--smoke);overflow:hidden}
.media--embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.contact-form-wrap{min-width:0}
.lab-system .contact-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-row) var(--gap)}
.lab-system .contact-intro{grid-column:1/span 5;max-width:var(--copy-measure)}
.lab-system .contact-form-wrap{grid-column:7/-1;background:transparent;padding:0;border-radius:0}
.v02-contact .contact-intro h2{font-size:var(--type-small-heading)}
.v02-contact .faq{margin-block-start:var(--space-heading-content)}
.v02-contact .faq__q{font-size:var(--type-small-heading);font-weight:400;letter-spacing:-.025em;border:0;background:transparent;color:inherit}
.v02-contact .faq__q:is(:hover,:active){color:var(--gray)}
.cookie-preferences__close{border:0;background:transparent}
.cookie-link{border:0;background:transparent}
.v02-contact .faq__item h3{margin:0}
.v02-contact .faq__a a{color:inherit;text-decoration:underline}
.v02-contact .faq__a a:hover{background:var(--ink);color:var(--paper)}
.v02-contact .form-grid{gap:var(--gap)}
.v02-contact .form-submit{margin-block-start:var(--space-card)}
.v02-contact .contact-form-status h2{font-size:var(--type-small-heading)}
.v02-contact .field input,.v02-contact .field textarea,.v02-contact .field select{background:var(--paper);border-radius:0}
.v02-error{padding-block:var(--space-hero);min-height:65svh}
.v02-error h1{font-size:var(--type-section-heading);margin-block-end:var(--space-card)}
.v02-error p{max-width:var(--copy-measure)}
.v02-error .actions{justify-content:flex-start;margin-block-start:var(--space-heading-content)}
@media(max-width:1100px) and (min-width:681px){
  .lab-system :is(.v02-info-4,.v02-info-3,.v02-info-2){--info-span:6}
  .page-intro>.hero__lead{grid-column:1/span 8}
  .lab-system .facts-grid>div{grid-column:span 6}
  .news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .page-intro{grid-template-columns:repeat(4,minmax(0,1fr));min-height:0}
  .page-intro>h1{font-size:var(--type-hero-heading)}
  .page-intro>.hero__lead,.v02-article .page-intro>.hero__lead{grid-column:1/-1}
  .lab-system :is(.v02-info-4,.v02-info-3,.v02-info-2){--info-span:4}
  .lab-system .facts-grid>div{grid-column:1/-1}
  .news-grid,.case-pager,.case-media-grid[data-cols],.case-section__grid{grid-template-columns:minmax(0,1fr)}
  .case-pager__link{padding-inline:0}
  .case-pager__link:is(:hover,:focus-visible,:active){padding-inline:var(--space-card)}
}
@media(max-width:860px){.lab-system .contact-intro,.lab-system .contact-form-wrap{grid-column:1/-1}}
