:root{--paper:#f4f2ec;--ink:#282c26;--muted:#64685c;--rule:#cecec2;--olive:#e6e8df;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid currentColor;outline-offset:7px}::selection{background:#d5d9c6}header,footer{padding:30px 5.5%;display:flex;align-items:center;justify-content:space-between}.header{height:119px;border-bottom:1px solid var(--rule)}.brand{display:inline-block;flex-shrink:0}.logo-frame{display:block;position:relative;overflow:hidden;width:136px;height:73px}.logo-frame img{position:absolute;width:270px;height:auto;max-width:none;left:-68px;top:-46px}nav{display:flex;align-items:center;gap:38px;font-size:12px}nav a{padding:12px 0}nav a:hover{color:#737e61}.nav-contact{border-bottom:1px solid #969b8d}.nav-contact span{margin-left:28px}.hero-copy{padding:57px 5.5% 34px}.eyebrow{font-size:10px;font-weight:500;letter-spacing:2px;line-height:1.5;margin:0 0 30px;display:flex;align-items:center;gap:13px}.small-line{height:1px;width:26px;background:var(--ink)}h1,h2,h3,p{margin-top:0}h1{font-family:var(--serif);font-weight:400;font-size:clamp(42px,5.35vw,86px);line-height:1.12;letter-spacing:-2.8px;margin-bottom:24px}h1 em{font-weight:400;color:#6d765f}.hero-bottom{display:flex;justify-content:space-between;align-items:end}.hero-bottom p{font-size:13px;line-height:1.8;margin:0;color:var(--muted)}.round-link{border:1px solid #a7aa9b;border-radius:50%;width:46px;height:46px;display:grid;place-items:center;font-size:22px;transition:background .2s,transform .2s}.round-link:hover{background:var(--olive);transform:translateY(3px)}.hero-image{height:440px;margin:0 2%;position:relative;overflow:hidden;background:#b6b5a0}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 55%;display:block}.image-note{position:absolute;bottom:24px;left:3.6%;font-size:9px;letter-spacing:2px;color:#fff;text-shadow:0 1px 8px #000;background:#252b224d;padding:8px 10px}.section-grid{padding:105px 5.5%;display:grid;grid-template-columns:25% 75%;scroll-margin-top:20px}.section-label{padding-top:10px;align-self:start}.section-grid h2{font-family:var(--serif);font-weight:400;font-size:clamp(32px,3.45vw,55px);line-height:1.15;letter-spacing:-1.4px;margin-bottom:35px}.body-columns{display:grid;grid-template-columns:1fr 1.2fr;gap:55px;max-width:830px}.body-columns p,.principles p,.contact p:not(.eyebrow){font-size:14px;line-height:1.85;color:var(--muted);margin-bottom:0}.approach{background:var(--olive);padding-top:88px;padding-bottom:92px}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:49px}.principles article{border-top:1px solid #acb2a1;padding-top:20px}.number{font-size:11px;color:#626b55}.principles h3{font-size:16px;line-height:1.4;font-weight:500;margin-top:32px;margin-bottom:14px}.principles p{font-size:13px}.contact{padding-top:99px;padding-bottom:106px;background:#2f382c;color:var(--paper)}.contact .section-label{color:#c4ccb9}.contact h2{font-size:clamp(38px,4.4vw,70px);margin-bottom:25px}.contact p:not(.eyebrow){color:#c4ccb9}.email{display:inline-flex;align-items:center;justify-content:space-between;gap:70px;font-size:clamp(20px,2.3vw,34px);margin-top:40px;padding-bottom:12px;border-bottom:1px solid #909b86}.email:hover{color:#d5dfc8}.email span{transition:transform .2s}.email:hover span{transform:translate(3px,-3px)}footer{min-height:135px}footer .logo-frame{width:110px;height:58px}footer .logo-frame img{width:218px;left:-55px;top:-37px}footer p,footer>a:last-child{font-size:10px;letter-spacing:.3px;color:var(--muted);margin:0}footer>a:last-child span{margin-left:20px}.skip-link{position:absolute;top:-100px;left:20px;z-index:20;background:var(--paper);padding:14px}.skip-link:focus{top:10px}@media(min-width:1600px){body{max-width:1920px;margin:auto}.hero-image{height:560px}}@media(max-width:760px){.header{height:96px;padding:18px 6%}.logo-frame{width:107px;height:58px}.logo-frame img{width:212px;left:-54px;top:-36px}nav{gap:22px}nav>a:not(.nav-contact){display:none}.nav-contact span{margin-left:15px}.hero-copy{padding:44px 6% 28px}.eyebrow{font-size:9px;letter-spacing:1.5px;margin-bottom:26px}h1{font-size:clamp(38px,7.8vw,59px);letter-spacing:-1.6px;line-height:1.15;margin-bottom:28px}.hero-bottom p{font-size:12px}.round-link{width:40px;height:40px}.hero-image{height:340px;margin:0 4%}.image-note{font-size:8px;letter-spacing:1.3px;left:16px;bottom:16px}.section-grid{display:block;padding:65px 6%}.section-label{padding:0;margin-bottom:29px}.section-grid h2{font-size:34px;letter-spacing:-1px;margin-bottom:26px}.body-columns{grid-template-columns:1fr;gap:18px}.principles{grid-template-columns:1fr;gap:28px;margin-top:35px}.principles article{display:grid;grid-template-columns:35px 1fr;padding-top:19px}.principles h3{margin:0 0 10px}.principles p{grid-column:2}.number{padding-top:4px}.contact h2{font-size:43px}.email{font-size:23px;gap:40px;margin-top:30px}footer{padding:27px 6%;flex-wrap:wrap;gap:24px}footer p{order:3;width:100%;padding-top:18px;border-top:1px solid var(--rule)}.desktop-break{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Charcoal direction */
:root{color-scheme:dark;--paper:#17191a;--ink:#f0f0ec;--muted:#b3b7b8;--rule:#383c3e;--olive:#202426;--serif:Arial,Helvetica,sans-serif}
body{background:#17191a}
::selection{background:#78878c;color:#fff}
.header{background:#17191a;border-bottom-color:#343839}
.logo-frame img{filter:brightness(0) invert(1);opacity:.94}
nav{font-size:12px;letter-spacing:.3px}
nav a:hover{color:#b8c8cd}
.nav-contact{border-color:#727d81}
.hero-copy{padding-top:68px;padding-bottom:42px}
.eyebrow{color:#b5c0c3;letter-spacing:2.5px}
.small-line{background:#8d9b9f}
h1{font-weight:500;font-size:clamp(42px,5.2vw,83px);letter-spacing:-3.5px;line-height:1.08;margin-bottom:32px}
h1 em{font-style:normal;font-weight:400;color:#a1adb1}
.round-link{border-color:#626c70}
.round-link:hover{background:#30383b}
.hero-image{background:#252b2e}
.hero-image img{filter:saturate(.48) brightness(.72)}
.image-note{background:#17191a99;color:#f1f3f3;text-shadow:none}
.about{background:#17191a}
.section-grid h2{font-weight:400;letter-spacing:-1.8px;line-height:1.16}
.approach{background:#222628;border-top:1px solid #34393b;border-bottom:1px solid #34393b}
.principles article{border-top-color:#50595d}
.number{color:#a7b9bf}
.principles h3{font-weight:500;color:#f0f0ec}
.contact{background:#111314;color:#f0f0ec}
.contact .section-label{color:#b5c0c3}
.contact p:not(.eyebrow){color:#b3b7b8}
.email{border-color:#68757a;font-weight:400}
.email:hover{color:#bed1d9}
footer{background:#17191a;border-top:1px solid #343839}
@media(max-width:760px){.hero-copy{padding-top:44px;padding-bottom:32px}h1{font-size:clamp(36px,7.8vw,59px);letter-spacing:-1.8px;line-height:1.13}.section-grid h2{letter-spacing:-1.2px}.contact h2{font-size:39px}}
.hero-video video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;filter:none}
.video-toggle{position:absolute;right:24px;bottom:24px;min-height:44px;padding:10px 17px;background:#17191ac9;color:#f0f0ec;border:1px solid #ffffff70;border-radius:2px;font:12px Arial,sans-serif;cursor:pointer}
.video-toggle:hover{background:#17191a}
.video-toggle:focus-visible{outline:2px solid white;outline-offset:4px}
.video-status{position:absolute;top:40%;left:10%;right:10%;text-align:center;color:#f0f0ec;font-size:14px}
@media(max-width:760px){.hero-video{height:300px}.hero-video .image-note{bottom:72px;max-width:calc(100% - 32px)}.video-toggle{right:16px;bottom:16px}}
/* Circular video control */
.video-toggle{width:48px;height:48px;min-height:48px;padding:0;border:0;border-radius:50%;background:#fff;color:#000;box-shadow:0 2px 10px #0002}
.video-toggle:hover{background:#e9e9e9}
.video-toggle::before{content:'';position:absolute;left:19px;top:15px;width:0;height:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:14px solid #000}
.video-toggle[data-state="playing"]::before{left:16px;top:15px;width:5px;height:18px;border:0;background:#000;box-shadow:11px 0 0 #000}
.video-toggle:focus-visible{outline:2px solid white;outline-offset:5px}
/* Compact, subdued video control; retain a comfortable click target. */
.video-toggle{background:transparent;box-shadow:none;border-radius:50%}
.video-toggle:hover{background:transparent}
.video-toggle::after{content:'';position:absolute;width:24px;height:24px;left:12px;top:12px;border-radius:50%;background:#b8babb;z-index:0}
.video-toggle:hover::after{background:#ced0d1}
.video-toggle::before{left:22px;top:19.5px;border-top:4.5px solid transparent;border-bottom:4.5px solid transparent;border-left:7px solid #111;z-index:1}
.video-toggle[data-state="playing"]::before{left:20px;top:19.5px;width:2.5px;height:9px;border:0;background:#111;box-shadow:5.5px 0 0 #111}
/* Original logo preview */
.logo-frame img,footer .logo-frame img{position:static;display:block;width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1);opacity:.94}
.logo-frame img,footer .logo-frame img{transform:scale(1.3)}
/* Overlapping video layers dissolve across the loop boundary. */
.hero-video video{position:absolute;inset:0;z-index:0}
.hero-video .image-note,.hero-video .video-toggle,.hero-video .video-status{z-index:2}
/* Match the video caption's translucent charcoal treatment. */
.video-toggle::after{background:#17191a99}
.video-toggle:hover::after{background:#17191acc}
.video-toggle::before{border-left-color:#f1f3f3}
.video-toggle[data-state="playing"]::before{background:#f1f3f3;box-shadow:5.5px 0 0 #f1f3f3}
/* Align the control with the caption centre on every screen size. */
.hero-video .image-note{bottom:24px;min-height:28px;display:flex;align-items:center;line-height:12px}
.hero-video .video-toggle{bottom:14px}
@media(max-width:760px){.hero-video .image-note{bottom:16px;max-width:calc(100% - 76px);font-size:7px;letter-spacing:1px}.hero-video .video-toggle{bottom:6px}}
/* Tighter caption box, preserving its centreline with the control. */
.hero-video .image-note{padding:5px 7px;min-height:22px;bottom:27px}
@media(max-width:760px){.hero-video .image-note{bottom:19px}}
/* Alternative approach-section tone: deep blue-charcoal. */
.approach{background:#172329;border-top-color:#304047;border-bottom-color:#304047}
.approach .principles article{border-top-color:#485b63}
/* Alternative approach-section tone: warm charcoal. */
.approach{background:#292522;border-top-color:#423b35;border-bottom-color:#423b35}
.approach .principles article{border-top-color:#5b5148}
.approach .eyebrow,.approach .number{color:#c5b9ab}

/* Selected colour: neutral charcoal with a subtle blue undertone. */
.approach{background:#202629;border-top-color:#363f43;border-bottom-color:#363f43}
.approach .principles article{border-top-color:#505c61}
.approach .eyebrow,.approach .number{color:#b5c0c3}

/* Selected colour: warm charcoal with a hint of brown. */
.approach{background:#292522;border-top-color:#423b35;border-bottom-color:#423b35}
.approach .principles article{border-top-color:#5b5148}
.approach .eyebrow,.approach .number{color:#c5b9ab}

/* Match the footer to the header, including the logo and mobile height. */
footer{background:#17191a;height:119px;min-height:119px;padding:0 5.5%;flex-wrap:nowrap}
footer .logo-frame{width:136px;height:73px}
@media(max-width:760px){
  footer{height:96px;min-height:96px;padding:12px 6%;display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr 1fr;gap:4px 16px}
  footer .brand{grid-column:1;grid-row:1 / 3}
  footer .logo-frame{width:107px;height:58px}
  footer p{grid-column:2;grid-row:2;order:initial;width:auto;padding:0;border:0;text-align:right;font-size:9px}
  footer>a:last-child{grid-column:2;grid-row:1;justify-self:end;align-self:end}
}
/* Office details below the contact email. */
.office-address{margin-top:30px;font-style:normal;font-size:14px;line-height:1.85;color:var(--muted)}
.office-label{display:block;margin-bottom:6px;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--ink)}

/* Enquiry form */
.contact-form{margin-top:36px;max-width:720px}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:24px}.contact-form label{display:block;color:var(--muted);font-size:12px;line-height:1.6;margin-bottom:22px}.contact-form input,.contact-form textarea{display:block;width:100%;margin-top:9px;padding:12px 13px;border:1px solid #505456;border-radius:0;background:#1b1d1e;color:var(--ink);font:16px Arial,sans-serif}.contact-form textarea{resize:vertical;min-height:118px}.contact-form input:focus,.contact-form textarea:focus{outline:2px solid #b5c0c3;outline-offset:2px}.contact-form button{padding:13px 18px;border:1px solid #8c9294;background:transparent;color:var(--ink);font:13px Arial,sans-serif;cursor:pointer}.contact-form button span{margin-left:34px}.contact-form button:hover{background:#292d2f}.contact-form button:focus-visible{outline:2px solid #b5c0c3;outline-offset:4px}.contact-form button:disabled{opacity:.55;cursor:wait}.contact-form #contact-status{font-size:12px;line-height:1.6;margin-top:14px}.contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}@media(max-width:760px){.contact-fields{grid-template-columns:1fr;gap:0}.contact-form{margin-top:28px}}
