@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Libre+Caslon+Display&display=swap');

:root{--navy:#233f83;--blue:#355b9b;--light-blue:#f5f0e6;--ink:#183247;--muted:#52616c;--line:#d6d2c9;--white:#fbf8f1;--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--ink);background:var(--white);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #2b79ad;outline-offset:6px}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif)}.container{width:min(1280px,calc(100% - 112px));margin-inline:auto}.skip-link{position:absolute;z-index:10;top:8px;left:12px;padding:12px 20px;background:white;color:var(--navy);transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.topbar{background:var(--white);color:var(--navy);font-size:.875rem;border-bottom:1px solid var(--line)}.topbar-inner{display:flex;align-items:center;justify-content:space-between;min-height:38px;gap:20px}.topbar a{display:flex;align-items:center;gap:13px}.topbar a:hover{text-decoration:underline}.header-inner{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:30px}.wordmark{font-family:var(--serif);font-size:2.65rem;line-height:1;letter-spacing:-.035em;display:inline-flex;align-items:baseline;white-space:nowrap}.wordmark span{font-family:var(--sans);letter-spacing:.08em;font-size:.7rem;margin-left:9px;font-weight:600}.site-header nav{display:flex;align-items:center;gap:40px;font-size:.875rem;font-weight:500}.site-header nav>a:not(.nav-contact){padding:10px 0;border-bottom:1px solid transparent}.site-header nav>a:not(.nav-contact):hover{border-color:var(--navy)}.nav-contact{padding:12px 21px;border:1px solid var(--navy);display:flex;gap:26px;align-items:center;transition:background .2s,color .2s}.nav-contact:hover{background:var(--navy);color:white}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.07fr 1fr;background:var(--light-blue);min-height:627px}.hero-copy{padding:64px 54px 66px max(56px,calc((100vw - 1280px)/2));align-self:center}.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:24px}.hero h1{font-size:clamp(3.1rem,4.7vw,4.6rem);line-height:1.035;letter-spacing:-.025em;max-width:660px}.hero-description{font-size:1rem;line-height:1.75;max-width:430px;color:var(--muted);margin:26px 0 29px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:43px;font-size:.875rem;font-weight:500;min-height:51px;padding:13px 22px;transition:background .2s}.button-dark{background:var(--navy);color:white}.button-dark:hover{background:#254d6c}.hero-visual{position:relative;background:var(--blue);min-width:0;overflow:hidden;min-height:540px}.hero-photo{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;object-position:50% 62%}.hero-note{position:absolute;bottom:0;left:0;right:0;background:rgba(18,43,67,.94);color:white;padding:26px 38px;display:flex;align-items:center;gap:22px}.hero-note p{font-family:var(--serif);font-size:1.75rem;line-height:1.15}.note-line{width:40px;height:1px;background:#ddd3bb;flex-shrink:0}.section-space{padding-block:91px}.about{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:start}.about .eyebrow{margin-bottom:20px}h2{font-size:clamp(2.5rem,3.5vw,3.55rem);line-height:1.1;letter-spacing:-.018em}.about-copy{max-width:570px;padding-top:4px}.about-copy .lead{font-size:1.24rem;line-height:1.65;color:var(--ink);margin-bottom:18px}.about-copy>p:last-child{color:var(--muted);line-height:1.8}.services{background:#f0ebe1;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:44px}.section-heading .eyebrow{margin-bottom:18px}.section-heading>p{color:var(--muted);font-size:.9375rem;padding-bottom:4px}.service-scope{margin-top:28px;font-size:.875rem;color:var(--muted)}.service-scope strong{font-weight:600;color:var(--ink);margin-right:16px}.contact{background:var(--light-blue);color:var(--navy);border-bottom:1px solid var(--line)}.contact-inner{padding-block:75px;display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.contact .eyebrow{color:var(--blue);margin-bottom:21px}.contact h2{font-size:clamp(2.8rem,3.8vw,3.8rem)}.contact-copy{max-width:500px}.contact-copy>p{color:var(--muted);font-size:1rem;line-height:1.85;margin-bottom:23px}.email-link{font-size:clamp(1.25rem,2.3vw,2rem);display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid #52697d;padding-bottom:12px;font-weight:400;letter-spacing:-.035em}.email-link:hover{color:var(--blue)}.contact-location{display:block;margin-top:16px;color:var(--muted);font-size:.875rem}.footer-main{padding-block:40px;display:flex;align-items:center;gap:36px}.footer-main .wordmark{font-size:2.15rem}.footer-main>p{font-size:.875rem;color:var(--muted);max-width:290px;line-height:1.65}.back-top{margin-left:auto;font-size:.875rem;display:flex;gap:22px}.back-top:hover{text-decoration:underline}.footer-bottom{border-top:1px solid var(--line);padding-block:20px;display:flex;justify-content:space-between;color:var(--muted);font-size:.75rem;gap:18px}
@media(min-width:1600px){.hero-copy{padding-right:80px}.hero{min-height:670px}.hero h1{font-size:4.8rem}}
@media(max-width:1050px){.container{width:calc(100% - 64px)}.header-inner{min-height:84px}.hero-copy{padding:48px 34px 50px 32px}.hero{min-height:575px}.hero h1{font-size:3.5rem}.hero-visual{min-height:575px}.hero-note{padding:25px;gap:16px}.hero-note p{font-size:1.6rem}.section-space{padding-block:70px}.about,.contact-inner{gap:44px}.section-heading>p{max-width:245px}.desktop-break{display:none}}
@media(max-width:760px){.container{width:calc(100% - 40px)}.topbar-inner{min-height:34px;justify-content:center}.topbar-inner>span{display:none}.topbar{font-size:.75rem}.header-inner{min-height:82px;flex-wrap:wrap;gap:0}.wordmark{font-size:2.15rem}.menu-toggle{display:flex;align-items:center;gap:14px;background:transparent;border:0;padding:12px 0 12px 16px;font-size:.875rem;color:var(--navy);cursor:pointer}.menu-icon{width:20px;height:11px;border-top:1px solid;border-bottom:1px solid}.menu-toggle[aria-expanded=true] .menu-icon{height:0;border-bottom:0}.site-header nav{display:none;width:100%;align-items:stretch;gap:0;padding-bottom:18px}.site-header nav.is-open{display:flex;flex-direction:column}.site-header nav>a:not(.nav-contact){padding:12px 0}.nav-contact{margin-top:8px;justify-content:space-between}.hero{grid-template-columns:1fr}.hero-copy{padding:43px 24px 42px}.hero h1{font-size:clamp(3rem,8.3vw,4.2rem);max-width:600px}.hero .eyebrow{font-size:.75rem;margin-bottom:22px;letter-spacing:.12em}.hero-description{font-size:1rem;max-width:490px;margin-top:24px}.hero-visual{min-height:345px;max-height:400px}.hero-photo{object-position:50% 62%}.hero-note{padding:19px 24px;gap:17px}.hero-note p{font-size:1.55rem}.hero-note br{display:none}.note-line{width:26px}.about{grid-template-columns:1fr;gap:27px}.about-heading h2 br{display:none}.section-space{padding-block:54px}.eyebrow{font-size:.75rem}h2{font-size:2.7rem}.about-copy .lead{font-size:1.125rem}.section-heading{display:block;margin-bottom:29px}.section-heading>p{max-width:none;margin-top:20px}.service-scope{line-height:1.8}.service-scope strong{display:block;margin-bottom:3px}.contact-inner{padding-block:53px;grid-template-columns:1fr;gap:28px}.contact h2{font-size:2.9rem}.contact-copy>p{font-size:1rem}.email-link{font-size:clamp(1.18rem,5.6vw,1.7rem)}.footer-main{flex-wrap:wrap;gap:22px;padding-block:33px}.footer-main>p{order:3;max-width:none;width:100%;font-size:.875rem}.back-top{font-size:.75rem;gap:11px}.footer-bottom{font-size:.75rem;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Contact enquiry form */
.contact-inner{align-items:start;grid-template-columns:.9fr 1.1fr;gap:70px}
.contact-intro{padding-top:20px}
.contact-description{color:var(--muted);font-size:1rem;line-height:1.8;max-width:390px;margin:25px 0 21px}
.direct-email{font-size:1.0625rem;text-decoration:underline;text-underline-offset:5px}
.enquiry-form{background:var(--white);border:1px solid var(--line);padding:34px;min-width:0}
.form-heading{margin-bottom:25px}
.form-heading h3{font-family:var(--serif);font-size:2rem;line-height:1.2;margin-bottom:7px}
.form-heading p,.field-hint,.form-note{font-size:.875rem;color:var(--muted);line-height:1.6}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-field{display:flex;flex-direction:column;gap:8px;margin-bottom:19px;min-width:0}
.form-field label{font-size:.875rem;font-weight:550}
.form-field input,.form-field select,.form-field textarea{width:100%;font-family:var(--sans);font-size:1rem;line-height:1.5;color:var(--navy);background:#fffdf8;border:1px solid #aaa99f;border-radius:0;padding:11px 12px;min-height:47px}
.form-field select{padding-right:28px}
.form-field textarea{resize:vertical;min-height:140px}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--navy);outline-offset:2px}
.form-note{margin-bottom:20px}
.form-submit{border:0;cursor:pointer;min-height:49px}
.form-feedback{margin-top:22px;border-top:1px solid var(--line);padding-top:18px;font-size:.875rem;color:var(--muted)}
.form-feedback[hidden]{display:none}
@media(max-width:1050px){.contact-inner{gap:35px}.enquiry-form{padding:26px}.form-row{grid-template-columns:1fr;gap:0}}
@media(max-width:760px){.contact-inner{grid-template-columns:1fr;gap:30px}.contact-intro{padding-top:0}.enquiry-form{padding:24px 20px}.form-submit{width:100%}.contact-description{max-width:none}}


.form-honey{display:none!important}
.form-note a{text-decoration:underline;text-underline-offset:3px}
.form-submit:disabled{opacity:.6;cursor:wait}

.about{row-gap:34px}
.about-statement{grid-column:1/-1;background:var(--light-blue);border-left:3px solid var(--blue);padding:25px 30px;font-size:1rem;line-height:1.8}
.about-statement p+p{margin-top:12px}
.about-statement strong{font-weight:550}
@media(max-width:760px){.about-statement{padding:22px}.about{row-gap:27px}}

/* Supplied logo, framed to remove the surrounding whitespace in the layout. */
.services-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);gap:clamp(40px,6vw,90px);align-items:start}
.services-intro{position:sticky;top:32px}
.services-intro .section-heading{display:block;margin-bottom:28px}
.services-intro .section-heading>p{max-width:370px;margin-top:24px;padding:0;font-size:1rem;line-height:1.75}
.services-intro .service-scope{max-width:360px;line-height:1.8}
.services-intro .service-scope strong{display:block;margin-bottom:6px}
.service-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.service-item{position:relative;padding:22px 0 24px 28px;border-bottom:1px solid var(--line)}
.service-item::before{content:"";position:absolute;top:35px;left:0;width:7px;height:7px;border-radius:50%;background:var(--blue)}
.service-item h3{font-family:var(--serif);font-size:1.85rem;line-height:1.2;margin:0 0 9px}
.service-item h3 a{color:var(--navy);text-underline-offset:5px}
.service-item h3 a:hover{text-decoration:underline}
.service-item p{color:var(--muted);font-size:1rem;line-height:1.75;max-width:660px}
@media(max-width:760px){.services-layout{grid-template-columns:1fr;gap:30px}.services-intro{position:static}.services-intro .section-heading{margin-bottom:20px}.services-intro .section-heading>p,.services-intro .service-scope{max-width:none}.service-item{padding:20px 0 22px 23px}.service-item::before{top:32px}.service-item h3{font-size:1.75rem}}
.header-inner{min-height:108px}
.brand-logo{display:block;position:relative;width:260px;aspect-ratio:1470/496;overflow:hidden;flex-shrink:0}
.brand-logo img{position:absolute;width:120.68%;max-width:none;height:auto;left:-11.565%;top:-39.516%;mix-blend-mode:multiply}
.footer-main .brand-logo{width:244px}
.hero-visual{display:flex;flex-direction:column}
.hero-photo-frame{position:relative;flex:1;min-height:0}
.hero-photo{object-position:50% 50%}
.hero-note{position:relative;inset:auto;background:var(--navy)}

.button-dark:hover{background:#1b326b}
@media(min-width:761px) and (max-width:1050px){.brand-logo{width:220px}.site-header nav{gap:22px}}
@media(max-width:760px){.header-inner{min-height:100px}.brand-logo{width:clamp(180px,50vw,220px)}.footer-main .brand-logo{width:210px}.hero-visual{min-height:0;max-height:none}.hero-photo-frame{flex:none;aspect-ratio:3/2}}

