@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700;800&family=Lora:wght@400;500;600&display=swap');

:root { --ink:#263139; --dark:#27343c; --accent:#3853a4; --accent-dark:#2e4489; --accent-light:#bdcbf4; --paper:#f5f6f9; --sage:#e9edf5; --line:#d7dbe2; --muted:#58626a; --display:'Lora',Georgia,serif; --body:'Figtree',Arial,sans-serif; --wide:1840px; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:white; font:400 16px/1.6 var(--body); -webkit-font-smoothing:antialiased; }
img { display:block; width:100%; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { opacity:.45; cursor:not-allowed; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.skip-link { position:fixed; z-index:100; top:-100px; left:12px; padding:12px 18px; background:white; }
.skip-link:focus { top:12px; }
.overline { margin:0 0 17px; color:var(--accent-dark); font:800 11px/1.4 var(--body); letter-spacing:.15em; text-transform:uppercase; }
.section-shell { width:min(100% - 10vw,var(--wide)); margin-inline:auto; }
h1,h2,h3,p { overflow-wrap:break-word; }
h1,h2,h3 { text-wrap:balance; }
.text-link { display:inline-flex; min-height:42px; align-items:center; gap:18px; border-bottom:2px solid var(--accent); font-size:13px; font-weight:800; }
.text-link:hover { color:var(--accent-dark); }
.button { display:inline-flex; min-height:50px; align-items:center; justify-content:space-between; gap:28px; border:1px solid var(--accent); border-radius:2px; padding:12px 20px; background:var(--accent); color:white; font:800 13px/1.3 var(--body); transition:background .2s,transform .2s; }
.button:hover { background:var(--accent-dark); border-color:var(--accent-dark); transform:translateY(-2px); }
.button[aria-disabled='true'] { opacity:.5; }
.arrow { display:inline-flex; align-items:center; justify-content:center; line-height:1; }
.ui-icon { display:inline-block; width:16px; height:16px; flex:none; vertical-align:-.18em; }
.button .ui-icon { width:20px; height:20px; }
.text-link .ui-icon { width:17px; height:17px; }

.site-header { position:sticky; top:0; z-index:40; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; min-height:88px; padding:6px clamp(22px,4.5vw,70px); background:rgba(255,255,255,.98); box-shadow:0 1px 0 #27343c1c; }
.header-left,.header-right { display:flex; align-items:center; gap:25px; }
.header-right { justify-content:flex-end; gap:19px; }
.menu-button { display:flex; width:46px; height:46px; flex-direction:column; justify-content:center; align-items:flex-start; gap:7px; border:0; padding:0; background:none; }
.menu-button span { display:block; width:30px; height:2px; background:var(--ink); transition:transform .2s,width .2s; }
.menu-button span:last-child { width:21px; }
.menu-button[aria-expanded='true'] span:first-child { transform:translateY(4.5px) rotate(45deg); }
.menu-button[aria-expanded='true'] span:last-child { width:30px; transform:translateY(-4.5px) rotate(-45deg); }
.header-shortcut { display:inline-flex; min-height:44px; align-items:center; color:var(--ink); font-size:13px; font-weight:800; white-space:nowrap; }
.header-shortcut:hover { color:var(--accent-dark); text-decoration:underline; text-underline-offset:5px; }
.shortcut-short { display:none; }
.wordmark { display:flex; width:190px; align-items:center; justify-content:center; }
.wordmark img { display:block; width:100%; height:auto; }
.header-cta { display:inline-flex; min-height:48px; align-items:center; gap:21px; padding:10px 19px; background:var(--accent); color:white; font-size:13px; font-weight:800; white-space:nowrap; }
.header-cta:hover { background:var(--accent-dark); }
.header-cta .ui-icon { width:17px; height:17px; }
.site-menu { position:absolute; top:calc(100% + 1px); left:clamp(18px,4.5vw,70px); width:min(780px,calc(100vw - 36px)); max-height:calc(100dvh - 100px); overflow:auto; border:1px solid #e8e7e3; padding:29px 32px; background:white; box-shadow:0 20px 48px #18232b2b; }
.menu-label { margin:0 0 20px; color:var(--accent-dark); font-size:10px; font-weight:800; letter-spacing:.15em; }
.menu-groups { display:grid; grid-template-columns:repeat(2,1fr); gap:30px; }
.menu-group h2 { margin:0 0 7px; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.menu-group a { display:flex; min-height:45px; align-items:center; justify-content:space-between; gap:10px; border-bottom:1px solid var(--line); font-size:14px; font-weight:700; }
.menu-group a:hover,.menu-group a[aria-current='page'] { color:var(--accent-dark); }
.menu-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:23px; border-top:1px solid var(--line); padding-top:15px; font-size:12px; font-weight:800; }

.hero { position:relative; min-height:700px; overflow:hidden; isolation:isolate; background:#35424a; color:white; }
.hero-image,.hero-image img { position:absolute; inset:0; width:100%; height:100%; }
.hero-image img { object-fit:cover; object-position:center; }
.hero::before { position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,#101a23c9 0%,#15212aa6 42%,#18212837 100%),linear-gradient(0deg,#111b256b,transparent 45%); content:''; }
.hero-content { position:relative; z-index:2; display:grid; width:min(100%,1520px); min-height:700px; grid-template-columns:minmax(0,1fr) minmax(400px,.87fr); align-items:center; gap:clamp(38px,5vw,80px); margin:auto; padding:65px clamp(28px,5.2vw,82px); }
.hero-copy { max-width:660px; }
.hero-kicker { display:flex; align-items:center; gap:12px; margin:0 0 26px; font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.hero-kicker::before { width:31px; height:2px; flex:none; background:var(--accent-light); content:''; }
.hero h1 { margin:0 0 25px; font:500 clamp(55px,5.6vw,82px)/1.04 var(--display); letter-spacing:-.05em; }
.hero-intro { max-width:540px; margin:0 0 26px; color:#f2f0ec; font-size:clamp(16px,1.4vw,19px); line-height:1.6; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:15px 24px; }
.hero-secondary { display:inline-flex; min-height:48px; align-items:center; gap:15px; border-bottom:1px solid #fff; font-size:12px; font-weight:800; }
.hero-secondary:hover { color:var(--accent-light); border-color:var(--accent-light); }
.hero-panel { width:min(100%,590px); justify-self:end; border:1px solid #f2f0ea; border-radius:24px; padding:29px 33px 27px; background:white; box-shadow:0 20px 50px #1118203b; color:var(--ink); }
.panel-step { display:block; margin-bottom:8px; color:var(--accent-dark); font-size:10px; font-weight:800; letter-spacing:.15em; }
.hero-panel h2 { margin:0 0 10px; font:500 clamp(28px,2.5vw,35px)/1.13 var(--display); letter-spacing:-.04em; }
.hero-panel > p { margin:0 0 17px; color:var(--muted); font-size:13px; line-height:1.5; }
.hero-panel .field { margin-top:14px; }
.hero-panel label,.enquiry-form label { display:block; margin-bottom:6px; color:var(--ink); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.hero-panel input,.hero-panel select,.hero-panel textarea,.enquiry-form input,.enquiry-form select,.enquiry-form textarea { width:100%; min-height:43px; border:0; border-bottom:1px solid #899096; border-radius:0; padding:9px 3px; background:white; color:var(--ink); font-size:15px; outline:0; }
.hero-panel :is(input,select,textarea):focus,.enquiry-form :is(input,select,textarea):focus { border-color:var(--accent-dark); box-shadow:0 2px 0 var(--accent-dark); }
.hero-panel textarea,.enquiry-form textarea { min-height:90px; resize:vertical; }
.hero-panel .button { width:100%; margin-top:19px; }
.form-note { margin:11px 0 0!important; color:var(--muted); font-size:11px!important; line-height:1.5; }
.form-status { margin:12px 0 0; border-left:3px solid var(--accent); padding:7px 12px; color:var(--ink); font-size:12px; }
.image-credit { position:absolute; z-index:2; right:24px; bottom:15px; color:#fff; font-size:10px; text-shadow:0 1px 3px #0009; }

@media(min-width:1800px) {
  .site-header { min-height:96px; padding-inline:max(70px,calc((100vw - 2020px)/2)); }
  .site-menu { left:max(70px,calc((100vw - 2020px)/2)); }
  .wordmark { width:205px; }
  .header-shortcut { font-size:14px; }
  .header-cta { min-height:54px; padding:13px 23px; font-size:14px; }
  .hero,.hero-content { min-height:830px; }
  .hero-content { width:min(calc(100% - 12vw),1960px); grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); gap:clamp(90px,6vw,150px); padding-block:75px; }
  .hero-copy { max-width:800px; }
  .hero h1 { font-size:clamp(82px,4.1vw,105px); }
  .hero-intro { max-width:640px; font-size:20px; }
  .hero-panel { width:min(100%,700px); padding:35px 42px 32px; }
  .hero-panel h2 { font-size:39px; }
  .hero-panel > p { font-size:15px; }
  .hero-panel .field { margin-top:18px; }
  .hero-panel input,.hero-panel select { min-height:48px; }
  .hero-image img { object-position:center 52%; }
}
@media(max-width:1050px) { .hero-content { gap:32px; grid-template-columns:minmax(0,1fr) minmax(350px,.9fr); padding-inline:34px; } .hero h1 { font-size:clamp(48px,6vw,68px); } }
@media(max-width:850px) { .site-header { min-height:80px; padding-inline:22px; } .wordmark { width:168px; } .hero,.hero-content { min-height:0; } .hero-content { display:flex; flex-direction:column; align-items:stretch; gap:32px; padding:82px 35px 70px; } .hero-panel { align-self:flex-end; } .hero h1 { max-width:700px; font-size:clamp(56px,8vw,76px); } }
@media(max-width:700px) { .site-header { min-height:70px; grid-template-columns:1fr auto 1fr; padding-inline:14px; } .header-left { display:contents; } .menu-button { grid-column:1; grid-row:1; width:44px; height:44px; } .wordmark { width:178px; grid-column:2; grid-row:1; } .wordmark-main { font-size:26px; } .wordmark-sub { font-size:7px; letter-spacing:.18em; } .header-right { display:none; } .header-shortcut { grid-column:3; grid-row:1; justify-self:end; width:44px; height:44px; font-size:0; } .header-shortcut::before { width:17px; height:17px; } .site-menu { left:0; width:100%; max-height:calc(100dvh - 70px); padding:23px 20px; } .menu-groups { display:block; } .menu-group+.menu-group { margin-top:20px; } .section-shell { width:calc(100% - 40px); } .hero::before { background:linear-gradient(0deg,#101922ed 0%,#111b24c7 60%,#111b24a8 100%); } .hero-image img { object-position:53% center; } .hero-content { gap:30px; padding:66px 20px 54px; } .hero-kicker { margin-bottom:19px; font-size:9px; } .hero h1 { margin-bottom:18px; font-size:clamp(42px,11vw,60px); } .hero-intro { font-size:15px; line-height:1.55; } .hero-panel { width:100%; padding:24px 22px; border-radius:18px; } .hero-panel h2 { font-size:27px; } .image-credit { right:14px; bottom:8px; font-size:9px; } }
@media(max-width:370px) { .wordmark { width:150px; } .wordmark-main { font-size:22px; } .wordmark-sub { font-size:6px; } .hero h1 { font-size:39px; } .hero-panel { padding-inline:17px; } }
@media(max-width:700px) {
  .site-header { min-height:76px; }
  .wordmark { width:160px; }
  .header-shortcut { width:auto; min-width:44px; justify-content:center; font-size:12px; }
  .shortcut-full { display:none; }
  .shortcut-short { display:inline; }
}
@media(max-width:370px) { .site-header { min-height:74px; } .wordmark { width:142px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms!important; animation-duration:.01ms!important; } }
