:root{
  --porcelain:#F6F7F9; --paper:#FFFFFF; --graphite:#23282E; --graphite-soft:#2E343B;
  --steel:#6D7681; --steel-light:#98A1AB; --hairline:#E2E6EB;
  --navy:#1A2154; --blue:#2C6BD1; --orange:#E8913A;
  --display:'Archivo','Helvetica Neue',Arial,sans-serif;
  --body:'IBM Plex Sans','Segoe UI',system-ui,sans-serif;
  --data:'IBM Plex Mono','SFMono-Regular',Consolas,monospace;
  --shell:1140px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--porcelain);color:var(--graphite);
font-family:var(--body);font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
.shell{width:100%;max-width:var(--shell);margin:0 auto;padding:0 28px}
.eyebrow{font-family:var(--data);font-size:11px;font-weight:500;letter-spacing:.16em;
text-transform:uppercase;color:var(--steel);margin:0}

/* masthead */
.masthead{position:sticky;top:0;z-index:40;background:rgba(246,247,249,.93);
backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--hairline)}
.masthead-in{display:flex;align-items:center;gap:20px;height:74px}
.wordmark{text-decoration:none;display:flex;align-items:center;gap:13px}
.wordmark img{width:46px;height:46px;flex:none}
.wordmark .rule{width:1px;height:28px;background:var(--hairline);flex:none}
.wordmark .tag{font-family:var(--data);font-size:10.5px;font-weight:500;letter-spacing:.15em;
text-transform:uppercase;color:var(--steel);line-height:1.35;max-width:8em}
nav{margin-left:auto;display:flex;align-items:center;gap:24px}
nav a{font-size:14.5px;text-decoration:none;color:var(--steel);padding:6px 0;
border-bottom:1px solid transparent;white-space:nowrap}
nav a:hover{color:var(--graphite);border-bottom-color:var(--graphite)}
nav a[aria-current="page"]{color:var(--graphite);border-bottom-color:var(--graphite)}
nav a.pill{border:1px solid var(--graphite);border-radius:2px;color:var(--graphite);
padding:9px 16px;font-family:var(--data);font-size:12px;letter-spacing:.06em;
text-transform:uppercase}
nav a.pill:hover{background:var(--graphite);color:var(--porcelain)}

/* hero */
.hero{padding:78px 0 0}
.hero h1{font-family:var(--display);font-weight:700;font-size:clamp(38px,6vw,68px);
line-height:1.0;letter-spacing:-.035em;margin:18px 0 0}
.hero h1 em{font-style:normal;color:var(--steel-light)}
.lede{font-size:17.5px;color:var(--steel);max-width:36em;margin:24px 0 0}
.meta{display:flex;flex-wrap:wrap;margin:36px 0 0;border-top:1px solid var(--hairline)}
.meta div{padding:14px 28px 0 0;margin-right:28px;border-right:1px solid var(--hairline)}
.meta div:last-child{border-right:0;margin-right:0}
.meta b{display:block;font-family:var(--display);font-weight:700;font-size:23px;
letter-spacing:-.02em;line-height:1.15}
.meta span{font-family:var(--data);font-size:10.5px;letter-spacing:.14em;
text-transform:uppercase;color:var(--steel)}

/* sections */
section{margin:84px 0 0}
.rule-head{display:flex;align-items:center;gap:18px;margin-bottom:26px}
.rule-head .line{flex:1;height:1px;background:var(--hairline)}
h2{font-family:var(--display);font-weight:700;font-size:clamp(27px,3.6vw,38px);
letter-spacing:-.03em;line-height:1.06;margin:0}
h3{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:-.026em;margin:0}
p{margin:14px 0 0}

/* service cards */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.card{background:var(--paper);border:1px solid var(--hairline);border-radius:3px;
padding:30px 30px 26px;display:flex;flex-direction:column;
transition:border-color .2s ease,box-shadow .2s ease}
.card:hover{border-color:#C9D0D8;box-shadow:0 12px 36px -22px rgba(35,40,46,.42)}
.card .swatch{width:34px;height:4px;border-radius:2px;margin-bottom:18px}
.card h3 a{text-decoration:none;background-image:linear-gradient(currentColor,currentColor);
background-size:0% 1.5px;background-position:0 100%;background-repeat:no-repeat;
transition:background-size .3s cubic-bezier(.2,.7,.3,1)}
.card h3 a:hover{background-size:100% 1.5px}
.card p{color:var(--steel);font-size:15.5px;flex:1}
.card .go{margin-top:22px;font-family:var(--data);font-size:12px;letter-spacing:.07em;
text-transform:uppercase;text-decoration:none;color:var(--graphite);
display:inline-flex;align-items:center;gap:8px}
.card .go:hover{color:var(--blue)}

/* buttons */
.btn{appearance:none;cursor:pointer;text-decoration:none;display:inline-flex;
align-items:center;gap:9px;font-family:var(--data);font-size:12px;letter-spacing:.07em;
text-transform:uppercase;padding:13px 20px;border-radius:2px;border:1px solid var(--graphite);
background:var(--graphite);color:#fff;transition:background .18s ease,border-color .18s ease}
.btn:hover{background:var(--blue);border-color:var(--blue)}
.btn.ghost{background:none;color:var(--graphite);border-color:var(--hairline)}
.btn.ghost:hover{border-color:var(--graphite);background:none}

/* dark strip */
.strip{margin:84px 0 0;background:var(--graphite);color:#EDF0F3;border-radius:3px;
padding:48px 44px;display:grid;grid-template-columns:1.1fr 1fr;gap:44px;align-items:center}
.strip h2{font-size:30px}
.strip p{color:#A9B3BE;font-size:15.5px}
.strip .eyebrow{color:var(--steel-light)}
.strip .btn{border-color:#fff;background:#fff;color:var(--graphite)}
.strip .btn:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.strip .btn.ghost{background:none;color:#fff;border-color:#4A525B}
.strip .btn.ghost:hover{border-color:#fff}
.strip-actions{display:flex;flex-wrap:wrap;gap:10px}

/* prose + forms */
.prose{max-width:38em}
.prose p{color:var(--steel);font-size:16.5px}
.prose ul{color:var(--steel);margin:16px 0 0;padding-left:20px}
.prose li{margin:7px 0}
.form-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:start}
form{background:var(--paper);border:1px solid var(--hairline);border-radius:3px;padding:28px}
label{display:block;font-family:var(--data);font-size:10.5px;letter-spacing:.13em;
text-transform:uppercase;color:var(--steel);margin:0 0 7px}
input,textarea{width:100%;font-family:var(--body);font-size:15.5px;color:var(--graphite);
background:var(--porcelain);border:1px solid var(--hairline);border-radius:2px;
padding:12px 13px;margin-bottom:20px}
textarea{min-height:150px;resize:vertical}
input:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:1px;
border-color:transparent}
.contact-detail{margin:0 0 26px}
.contact-detail dt{font-family:var(--data);font-size:10.5px;letter-spacing:.13em;
text-transform:uppercase;color:var(--steel);margin-bottom:5px}
.contact-detail dd{margin:0;font-size:16.5px}
.contact-detail a{color:var(--blue);text-decoration:none}
.contact-detail a:hover{text-decoration:underline}

/* footer */
footer{margin:78px 0 0;border-top:1px solid var(--hairline);padding:26px 0 60px}
.foot-in{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
footer small{font-family:var(--data);font-size:11px;letter-spacing:.05em;color:var(--steel-light);
display:flex;align-items:center;gap:11px}

:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

@media (max-width:860px){
  .cards{grid-template-columns:1fr}
  .strip{grid-template-columns:1fr;gap:26px;padding:34px 26px}
  .form-grid{grid-template-columns:1fr;gap:30px}
}
@media (max-width:620px){
  .shell{padding:0 18px}
  nav{gap:16px}
  nav a.text{display:none}
  .wordmark .tag,.wordmark .rule{display:none}
  .hero{padding:50px 0 0}
  .meta div{padding-right:18px;margin-right:18px}
}
@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms !important}}

/* ---- consultancy: rates, booking, coming soon ---- */
.edit-warning{background:#FFF6E5;border:1px solid #F0D9A8;border-radius:3px;
padding:13px 16px;font-size:14.5px;color:#6B5426;margin:0 0 22px}
.rate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rate{background:var(--paper);border:1px solid var(--hairline);border-radius:3px;
padding:24px 22px;display:flex;flex-direction:column}
.rate .price{font-family:var(--display);font-weight:700;font-size:30px;
letter-spacing:-.03em;margin:10px 0 0;line-height:1}
.rate p:not(.price):not(.eyebrow){color:var(--steel);font-size:14.5px;flex:1;
margin-top:12px}
.rate .btn{margin-top:20px;justify-content:center}
.note-small{color:var(--steel-light);font-size:14px;margin-top:20px;max-width:52em}
.steps{counter-reset:s;list-style:none;margin:0;padding:0}
.steps li{counter-increment:s;position:relative;padding-left:34px;margin:0 0 14px;
color:var(--steel);font-size:15.5px}
.steps li::before{content:counter(s);position:absolute;left:0;top:1px;
width:22px;height:22px;border-radius:50%;border:1px solid var(--hairline);
background:var(--paper);font-family:var(--data);font-size:11px;color:var(--graphite);
display:flex;align-items:center;justify-content:center}
select{width:100%;font-family:var(--body);font-size:15.5px;color:var(--graphite);
background:var(--porcelain);border:1px solid var(--hairline);border-radius:2px;
padding:12px 13px;margin-bottom:20px;appearance:none;
background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%236D7681' stroke-width='1.6'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
background-repeat:no-repeat;background-position:right 14px center}
select:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:transparent}
.coming{background:var(--paper);border:1px solid var(--hairline);border-radius:3px;
padding:52px 44px;max-width:44em}
.coming p{color:var(--steel)}
@media(max-width:980px){.rate-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.rate-grid{grid-template-columns:1fr}
.coming{padding:32px 24px}}

/* service lists inside practice-area cards */
.services{list-style:none;margin:16px 0 0;padding:0;border-top:1px solid var(--hairline)}
.services li{position:relative;padding:8px 0 8px 18px;font-size:14.5px;color:var(--steel);
border-bottom:1px solid #F0F2F5}
.services li:last-child{border-bottom:0}
.services li::before{content:'';position:absolute;left:0;top:16px;width:6px;height:1px;
background:var(--steel-light)}
.coming-centre{text-align:center;padding:78px 44px;max-width:none}
.coming-centre h2{font-size:clamp(34px,5vw,50px);margin-top:12px}

/* ---- consultancy area tabs ---- */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--hairline);margin-bottom:28px;
flex-wrap:wrap}
.tab{appearance:none;background:none;border:0;cursor:pointer;font-family:var(--data);
font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);
padding:13px 20px;border-bottom:2px solid transparent;margin-bottom:-1px;
transition:color .18s ease,border-color .18s ease}
.tab:hover{color:var(--graphite)}
.tab[aria-current="true"]{color:var(--graphite);border-bottom-color:var(--graphite)}
.panel-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:26px;
max-width:56em}
.panel-head .swatch{width:34px;height:4px;border-radius:2px;flex:none;margin-top:11px}
.panel-head p{margin:0;font-size:16.5px;color:var(--steel)}
.panel-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:40px;align-items:start}
.panel-grid .eyebrow{margin-bottom:10px}
.panel .services{border-top:1px solid var(--hairline)}
.panel .rate-grid{grid-template-columns:repeat(3,1fr)}
.rate .pick{margin-top:20px;justify-content:center;width:100%}
@media(max-width:900px){.panel-grid{grid-template-columns:1fr;gap:28px}
.panel .rate-grid{grid-template-columns:1fr}}
