*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:2rem}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--text-sm)/var(--leading-body) var(--font-body);-webkit-font-smoothing:antialiased}
::selection{color:var(--paper);background:var(--accent)}
img,svg{max-width:100%} img{display:block;height:auto} figure,p,h1,h2,h3,ul{margin:0}
p{max-width:var(--measure)} p+p{margin-top:var(--space-3)}
h1,h2,h3{font-weight:400;text-wrap:balance}
h1,h2{font-family:var(--font-display);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}
h2{font-size:var(--text-3xl)} h3{font-size:var(--text-lg);line-height:1.3}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.25em}
a,button,summary{-webkit-tap-highlight-color:transparent}
a:hover{text-decoration-color:currentColor}
button{font:inherit;cursor:pointer} :focus-visible{outline:var(--focus-width) solid var(--accent);outline-offset:var(--focus-offset)}
[hidden]{display:none!important} [id]{scroll-margin-top:var(--space-4)}
.wrap{width:min(100% - var(--gutter)*2,var(--site-width));margin-inline:auto}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap)}
.section{padding-block:var(--section-space)}
.section-label{grid-column:1/4;display:flex;align-items:baseline;gap:var(--space-2);font-size:var(--text-xs);letter-spacing:var(--tracking-label)}
.section-body{grid-column:5/-1}.section-lead{font-size:var(--text-md);line-height:1.55;margin-block:var(--space-4) var(--space-3);max-width:48ch}
.small-rule{display:inline-block;width:var(--space-4);height:var(--border-width);background:currentColor;flex-shrink:0;transform:translateY(-.3em)}
.eyebrow{display:flex;gap:var(--space-2);align-items:baseline;font-size:var(--text-xs);letter-spacing:var(--tracking-label)}
.icon{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}
.skip-link{position:fixed;top:var(--space-2);left:var(--space-2);z-index:20;padding:var(--space-2) var(--space-3);background:var(--paper);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}
.utility-bar{border-bottom:var(--border-width) solid var(--stone);font-size:var(--text-xs)}
.utility-inner{display:flex;justify-content:space-between;gap:var(--space-2);padding-block:var(--space-1)}
.utility-inner a{text-decoration:none}.utility-inner a span{margin-left:var(--space-3)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-1)}
.wordmark{display:block;font:400 var(--text-lg)/1.05 var(--font-display);letter-spacing:-.04em;text-decoration:none}.wordmark>span{display:block}.wordmark-dot{color:var(--accent)}
.site-logo{display:block;width:clamp(7.75rem,12.5vw,10.625rem);line-height:0}.site-logo img{display:block;width:100%;height:auto;max-height:6.5rem;object-fit:contain;object-position:left center}.site-logo-footer{width:11.25rem;margin-bottom:var(--space-2)}.site-logo-footer img{max-height:13.125rem}
.primary-nav{display:flex;align-items:center;gap:var(--space-5);font-size:var(--text-xs)}
.primary-nav a{text-decoration:none;padding-block:var(--space-1);border-bottom:var(--border-width) solid transparent}.primary-nav a:hover{border-color:var(--accent)}
.primary-nav .nav-contact{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-2) var(--space-3);background:var(--accent);color:var(--paper);border-color:var(--accent);border-radius:var(--radius)}.primary-nav .nav-contact:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.menu-toggle{display:none;border:0;background:none;padding:var(--space-2);color:var(--ink);align-items:center;gap:var(--space-2)}
.menu-lines{width:20px;height:8px;border-block:var(--border-width) solid currentColor}
.hero{position:relative;background:var(--hero-surface);color:var(--paper);isolation:isolate}
.hero-inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap)}
.hero-copy{grid-column:1/7;padding-block:var(--space-12);padding-right:var(--space-4);position:relative;background:var(--hero-surface)}
.hero .eyebrow{color:var(--brass)}
.hero h1{font-size:var(--text-hero);max-width:14ch;margin-top:var(--space-5);line-height:1.1}
.hero-intro{max-width:39ch;margin-top:var(--space-4)}
.hero-intro>p{color:var(--on-dark-muted)}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-2) var(--space-3);background:var(--accent);color:var(--paper);text-decoration:none;min-height:56px;font-size:var(--text-sm);border:var(--border-width) solid var(--accent);border-radius:var(--radius);transition:background var(--transition-fast),color var(--transition-fast)}
.button:hover{background:var(--ink);border-color:var(--ink)}
.hero .button{margin-top:var(--space-4);background:var(--brass);border-color:var(--brass);color:var(--hero-surface)}
.hero .button:hover{background:var(--paper);border-color:var(--paper)}
.hero :focus-visible{outline-color:var(--paper)}
.text-link{display:inline-flex;align-items:center;gap:var(--space-2);text-decoration:underline;text-decoration-color:var(--stone);text-underline-offset:.35em;transition:text-decoration-color var(--transition-fast)}.text-link:hover{text-decoration-color:currentColor}
.hero-secondary{display:table;margin-top:var(--space-3);font-size:var(--text-xs);text-decoration-color:var(--dark-line)}
.hero-figure{position:absolute;inset:0 0 0 50%;z-index:-1;overflow:hidden;background:var(--ink)}
.hero-figure picture{display:block;height:100%}
.hero-figure img{width:100%;height:100%;object-fit:cover;object-position:55% center}
figcaption{font-size:var(--text-xs);color:var(--slate);line-height:1.45;margin-top:var(--space-2)}
.hero-figure figcaption{position:absolute;bottom:var(--space-3);right:var(--space-3);left:var(--space-3);width:fit-content;margin-left:auto;padding:var(--space-1) var(--space-2);background:var(--hero-surface);color:var(--paper);font-size:var(--text-xs)}
.hero-bottom{display:flex;justify-content:space-between;gap:var(--space-3);padding-block:var(--space-4);border-bottom:var(--border-width) solid var(--stone);font-size:var(--text-xs)}
.hero-bottom>span:first-child{color:var(--brass-dark)}
.hero-bottom a{text-decoration:none}.hero-bottom a span{margin-left:var(--space-4)}
.service-rows{margin-top:var(--space-6)}
.service-row{display:grid;grid-template-columns:1fr 1.3fr;gap:var(--space-4);padding-block:var(--space-4);border-top:var(--border-width) solid var(--stone)}
.service-row h3{font-family:var(--font-display);font-size:var(--text-md)}
.service-row p{color:var(--slate);font-size:var(--text-sm)}
.technical-note{border-left:2px solid var(--stone);padding-left:var(--space-3);margin-top:var(--space-4);font-size:var(--text-xs);color:var(--slate)}
.field-note{display:grid;grid-template-columns:3fr 4fr 2fr;min-height:30rem;background:var(--hero-surface);color:var(--paper)}.field-note-image{overflow:hidden}.field-note-image img{width:100%;height:100%;object-fit:cover}.field-note-landscape img{object-position:center}.field-note-detail img{object-position:58% center}.field-note-copy{align-self:center;padding:var(--space-7) clamp(var(--space-4),5vw,var(--space-8));max-width:38rem}.field-note-copy .eyebrow{color:var(--brass)}.field-note-copy h2{font-size:var(--text-2xl);line-height:1.08;margin-block:var(--space-3) var(--space-4);max-width:13ch}.field-note-copy p:not(.eyebrow){color:var(--on-dark-muted)}.field-note-copy .text-link{display:inline-flex;margin-top:var(--space-4);color:var(--paper)}
.training{background:var(--accent);color:var(--paper)}
.training :focus-visible{outline-color:var(--paper)}
.training .section-lead{color:var(--on-dark-muted)}
.training-paths{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-6);margin-left:calc((100% + var(--grid-gap))/12)}
.training-path{border-top:3px solid var(--brass);padding:var(--space-5);background:var(--paper);color:var(--ink)}
.path-label{font-size:var(--text-xs);color:var(--brass-dark)}
.training-path h3{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:var(--tracking-heading);margin-block:var(--space-4) var(--space-3)}
.training-path p{max-width:38ch;color:var(--slate)}
.training-path ul{list-style:none;padding:0;margin-block:var(--space-4);font-size:var(--text-sm)}
.training-path li{padding-block:var(--space-1);border-bottom:var(--border-width) solid var(--stone)}
.training-path .text-link{font-size:var(--text-sm);margin-top:var(--space-2);text-decoration-color:var(--brass-dark)}.training-path :focus-visible{outline-color:var(--accent)}
.training-foot{display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-8);padding-top:var(--space-3);border-top:var(--border-width) solid var(--dark-line);font-size:var(--text-xs);color:var(--on-dark-muted)}.training-foot p+p{margin:0}
.training-mark{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4);font-size:var(--text-xs);color:var(--on-dark-muted)}.training-mark img{width:52px;height:68px;object-fit:contain;background:var(--paper)}
.calendar-teaser{background:var(--paper);border-bottom:var(--border-width) solid var(--stone)}.next-events{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2);margin-block:var(--space-5)}.next-event{display:grid;gap:var(--space-half);padding:var(--space-3);border:var(--border-width) solid var(--stone);background:var(--surface);text-decoration:none}.next-event:hover{border-color:var(--accent);background:var(--white)}.next-event span{font-size:var(--text-xs);color:var(--slate)}.next-event strong{font:400 var(--text-lg)/1.15 var(--font-display)}.next-event small{font-size:var(--text-xs);color:var(--slate)}.calendar-teaser .button{margin-top:var(--space-2)}
.sector-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);column-gap:var(--space-6);margin-top:var(--space-4)}
.sector-grid article{padding-block:var(--space-4);border-top:var(--border-width) solid var(--stone)}
.sector-grid h3{font-size:var(--text-md);font-family:var(--font-display);margin-bottom:var(--space-2)}
.sector-grid p{max-width:32ch;color:var(--slate)}
.practice{background:var(--surface)}
.practice-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap);align-items:center}
.practice-figure{grid-column:1/7}.practice-figure img{width:100%;aspect-ratio:.88;object-fit:cover;object-position:center 35%}
.practice-copy{grid-column:8/-1}.practice-copy h2{margin-block:var(--space-3) var(--space-4)}
.practice-copy>p:not(.eyebrow){color:var(--slate)}
.principals{margin-block:var(--space-4);padding-block:var(--space-3);border-block:var(--border-width) solid var(--stone);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
.principals h3{font-size:var(--text-sm);font-weight:600}.principals p{font-size:var(--text-xs);color:var(--slate);margin-top:var(--space-1)}
.practice-copy>.text-link{font-size:var(--text-xs)}
.faq-list{margin-top:var(--space-6)}
details{border-bottom:var(--border-width) solid var(--stone)}details:first-child{border-top:var(--border-width) solid var(--stone)}
summary{list-style:none;cursor:pointer;padding-block:var(--space-3);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);font-size:var(--text-md)}
summary::-webkit-details-marker{display:none}details[open] summary .icon{transform:rotate(45deg)}
.faq-answer{padding-bottom:var(--space-4);padding-right:var(--space-4);color:var(--slate)}.faq-answer .text-link{margin-top:var(--space-3)}
.enquiry{background:var(--surface);border-top:var(--border-width) solid var(--stone)}
.enquiry .button{margin-top:var(--space-4)}.enquiry-call{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--slate)}.enquiry-call a{color:var(--ink);margin-left:var(--space-1)}
.site-footer{padding-top:var(--space-8);background:var(--paper)}
.footer-main{display:grid;grid-template-columns:2fr 1fr 1.3fr;gap:var(--space-6);padding-bottom:var(--space-6)}
.footer-brand>p{font-size:var(--text-xs);color:var(--slate);margin-top:var(--space-4)}
.company-logo{width:150px;height:100px;object-fit:cover;object-position:center}
.site-footer h2{font:600 var(--text-xs)/1.5 var(--font-body);letter-spacing:0;margin-bottom:var(--space-3)}
.site-footer nav,.footer-contact{display:flex;flex-direction:column;align-items:start;gap:var(--space-1)}.footer-contact h2{margin-bottom:var(--space-2)}
.site-footer nav a,.footer-contact a{font-size:var(--text-xs);text-decoration:none}.site-footer a:hover{text-decoration:underline}
address{font-size:var(--text-xs);font-style:normal;color:var(--slate);margin-top:var(--space-2)}
.footer-bottom{display:flex;justify-content:space-between;gap:var(--space-3);border-top:var(--border-width) solid var(--stone);padding-block:var(--space-3);font-size:var(--text-xs);color:var(--slate)}
.footer-bottom p span{margin-left:var(--space-3)}.footer-bottom>div{display:flex;gap:var(--space-3)}.footer-bottom a{text-decoration:none}
/* Content starts visible. JS animates only elements already below the viewport. */
.reveal-arriving{animation:rise-in var(--motion-duration) var(--motion-ease) both;animation-delay:var(--reveal-delay,0ms)}
@keyframes rise-in{from{opacity:.25;transform:translateY(var(--motion-distance))}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.hero h1{font-size:var(--text-hero-wide)}}
@media(max-width:1100px){.primary-nav{gap:var(--space-3)}.hero-copy{padding-block:var(--space-8);padding-right:0}.hero h1{font-size:var(--text-hero-tablet)}.hero .eyebrow{max-width:30ch}.section-label{grid-column:1/4}.section-body{grid-column:4/-1}.practice-copy{grid-column:7/-1}.practice-copy h2{font-size:var(--text-2xl)}.practice-figure{grid-column:1/6}.principals{grid-template-columns:1fr}.footer-bottom{flex-wrap:wrap}}
@media(max-width:760px){
  .utility-inner>span{max-width:25ch}.utility-inner a{font-size:0}.utility-inner a span{font-size:var(--text-xs);margin:0;white-space:nowrap}.utility-inner{align-items:center}
  .header-inner{flex-wrap:wrap;padding-block:var(--space-1);gap:var(--space-3)}.wordmark{font-size:var(--text-lg)}
  .menu-toggle:not([hidden]){display:flex}.primary-nav{width:100%;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2);border-top:var(--border-width) solid var(--stone);padding-top:var(--space-2)}
  .site-header.is-enhanced .primary-nav{display:none}.site-header.is-enhanced.menu-open .primary-nav{display:flex;flex-direction:column;align-items:stretch;gap:0}.site-header.is-enhanced .primary-nav a{padding-block:var(--space-2)}.primary-nav .nav-contact{justify-content:space-between}
  .hero-inner{display:block}.hero-copy{padding-block:var(--space-6);padding-right:0}.hero h1{font-size:var(--text-hero-mobile);max-width:16ch}.hero .eyebrow{max-width:none}.hero-intro{max-width:42ch;margin-top:var(--space-4)}
  .hero-figure{position:relative;inset:auto;height:340px;z-index:auto;order:2}.hero{display:flex;flex-direction:column}.hero-figure img{object-position:55% 50%}.hero-figure figcaption{font-size:var(--text-xs);right:var(--gutter);bottom:var(--space-2);left:var(--gutter)}
  .hero-bottom{font-size:var(--text-xs);align-items:center;padding-block:var(--space-3)}.hero-bottom>span:first-child{display:none}.hero-bottom>span{max-width:22ch}.hero-bottom a span{margin-left:var(--space-2)}
  .grid{row-gap:var(--space-4)}.section-label,.section-body{grid-column:1/-1}.section-label{margin-bottom:var(--space-2)}h2{font-size:var(--text-2xl)}
  .service-row{grid-template-columns:1fr;gap:var(--space-2)}.service-rows{margin-top:var(--space-4)}
  .training-paths{grid-template-columns:1fr;margin-left:0;gap:var(--space-6);margin-top:var(--space-5)}.training-path h3{font-size:var(--text-xl)}.training-foot{flex-direction:column;gap:var(--space-2);margin-top:var(--space-5)}.next-events{grid-template-columns:1fr}.training-mark{margin-top:var(--space-3)}
  .sector-grid{grid-template-columns:1fr 1fr;gap:0 var(--space-3);margin-top:var(--space-2)}.sector-grid h3{font-size:var(--text-md)}
  .practice-grid{row-gap:var(--space-5)}.practice-figure{grid-column:1/-1}.practice-figure img{aspect-ratio:1;object-position:center 27%}.practice-copy{grid-column:1/-1}.principals{grid-template-columns:1fr 1fr}
  .faq-list{margin-top:var(--space-4)}summary{font-size:var(--text-sm)}
  .footer-main{grid-template-columns:1fr 1fr;gap:var(--space-5) var(--space-3)}.footer-brand{grid-column:1/-1}.footer-brand .wordmark{font-size:var(--text-xl)}.footer-contact>a{overflow-wrap:anywhere}.footer-bottom p span{display:block;margin-left:0}.footer-bottom{gap:var(--space-3)}
}
@media(max-width:380px){.header-inner{gap:var(--space-1)}.header-inner .wordmark{font-size:var(--text-wordmark-compact)}.menu-toggle{padding:var(--space-1)}.sector-grid{grid-template-columns:1fr}.hero-figure{height:280px}.training-path{padding:var(--space-3)}.eyebrow{font-size:var(--text-label-compact)}.button{gap:var(--space-2);padding-inline:var(--space-2)}.principals{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.utility-bar,.primary-nav,.menu-toggle,.hero-bottom,.enquiry,.skip-link{display:none!important}body{background:white;color:black}.section{padding-block:2rem}.training{background:white;color:black}.training p,.training .section-lead,.training-foot,.path-label{color:black}.hero{display:block}.hero-figure{position:relative;inset:auto;max-width:40%;height:300px}.hero-copy{color:var(--ink);background:var(--paper)}a{color:inherit}.site-footer{break-inside:avoid}}
@media(max-width:760px){.field-note{grid-template-columns:1fr;min-height:0}.field-note-copy{order:1;padding-block:var(--space-7)}.field-note-landscape{order:2;height:14rem}.field-note-detail{order:3;height:10rem}.field-note-copy h2{max-width:18ch}}
.field-note-image picture{display:block;height:100%}
.safety-dialog{width:min(44rem,calc(100% - 2rem));max-height:min(90vh,48rem);padding:0;border:0;background:var(--paper);color:var(--ink);box-shadow:0 1.5rem 5rem rgba(18,28,24,.28)}.safety-dialog::backdrop{background:rgba(18,28,24,.74)}.safety-dialog-inner{padding:clamp(var(--space-4),5vw,var(--space-7));overflow:auto}.safety-dialog .eyebrow{color:var(--accent)}.safety-dialog h2{font-size:var(--text-2xl);line-height:1.08;margin-block:var(--space-3) var(--space-4);max-width:18ch}.safety-dialog-copy{max-width:70ch;font-size:var(--text-sm)}.safety-dialog-copy p+p{margin-top:var(--space-3)}.safety-sources{font-size:var(--text-xs);color:var(--slate)}.safety-confirm{display:flex;gap:var(--space-2);align-items:flex-start;margin-top:var(--space-5);font-size:var(--text-xs);line-height:1.45}.safety-confirm input{margin-top:.25em;accent-color:var(--accent)}.safety-dialog .button{margin-top:var(--space-4)}.safety-dialog .button:disabled{opacity:.45;cursor:not-allowed}
.safety-dialog{max-height:calc(100vh - 2rem);margin:auto}.safety-dialog-inner{max-height:calc(100vh - 2rem);box-sizing:border-box}
@media(max-width:560px){.safety-dialog-inner{padding:var(--space-3)}.safety-dialog-copy{font-size:.82rem;line-height:1.45}.safety-dialog-copy p+p{margin-top:var(--space-2)}.safety-confirm{margin-top:var(--space-3)}.safety-dialog .button{margin-top:var(--space-3)}}
