:root {
  --ink:#172520; --green:#153d2c; --muted:#59635d; --orange:#ff8200; --rust:#984500;
  --paper:#f5f4ef; --line:#d7ddd6; --white:#fff; --dark:#142920;
  color:var(--ink); background:white;
  font-family:Inter,"Segoe UI",Arial,sans-serif; font-synthesis:none;
}
* { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; line-height:1.6; overflow-wrap:anywhere; }
a { color:inherit; text-underline-offset:.25em; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
img { display:block; max-width:100%; height:auto; }
button { cursor:pointer; }
h1,h2,h3,p { margin:0 0 1.2rem; }
h1,h2,h3 { line-height:1.08; letter-spacing:-.045em; font-weight:600; }
h1 { font-size:clamp(3.4rem,6.8vw,6.8rem); }
h2 { font-size:clamp(2.15rem,4vw,4rem); }
h3 { font-size:1.5rem; }
p:last-child { margin-bottom:0; }
.shell { width:min(1320px,calc(100% - 96px)); margin-inline:auto; }
.section { padding-block:clamp(4.5rem,8vw,8rem); }
.eyebrow,.index,.tagline { font-size:.72rem; letter-spacing:.13em; font-weight:700; text-transform:uppercase; }
.eyebrow { color:var(--rust); margin-bottom:1.7rem; }
.index { color:var(--rust); }
.lead { font-size:clamp(1.1rem,1.6vw,1.35rem); line-height:1.55; }
.note { color:var(--muted); font-size:.9rem; margin-top:2rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
:focus-visible { outline:3px solid #ad4e00; outline-offset:5px; }
.dark :focus-visible,footer :focus-visible,.home-hero :focus-visible { outline-color:#ffb86d; }
.skip { position:fixed; top:1rem; left:1rem; z-index:100; background:white; color:var(--ink); padding:1rem; transform:translateY(-180%); }
.skip:focus { transform:none; }
.utility { background:var(--dark); color:#fff; font-size:.63rem; font-weight:600; letter-spacing:.11em; }
.utility .shell { display:flex; justify-content:space-between; gap:1rem; padding-block:.6rem; }
.utility span span { color:var(--orange); margin-inline:.7rem; }
.utility a { text-decoration:none; }
.site-header { background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; }
.nav-wrap { min-height:100px; display:flex; align-items:center; justify-content:space-between; gap:1.8rem; }
.brand { flex-shrink:0; width:250px; }
.brand img { width:100%; }
#site-nav { display:flex; align-items:center; gap:clamp(.8rem,1.7vw,1.6rem); margin-left:auto; }
#site-nav a { position:relative; text-decoration:none; font-weight:600; font-size:.83rem; padding:1rem 0; white-space:nowrap; }
#site-nav a:after { content:""; position:absolute; bottom:.6rem; left:0; width:0; height:2px; background:var(--orange); }
#site-nav a[aria-current]:after,#site-nav a:hover:after { width:100%; }
#site-nav a:last-child { padding:.65rem 1rem; border:1px solid var(--ink); }
#site-nav a:last-child:after { display:none; }
#site-nav a:last-child[aria-current] { background:var(--paper); border-bottom:3px solid var(--orange); }
.nav-controls { display:flex; gap:.7rem; order:3; }
.icon-button { width:44px; height:44px; border:1px solid var(--line); background:white; display:grid; place-items:center; color:var(--ink); font-size:1.8rem; }
.icon-button svg { width:21px; height:21px; }
.menu { display:none; border:1px solid var(--ink); background:white; padding:.5rem .8rem; }
.menu b { font-size:1rem; margin-left:.4rem; font-weight:400; }
.button { display:inline-flex; gap:2rem; justify-content:space-between; align-items:center; text-decoration:none; padding:1rem 1.4rem; background:var(--orange); color:#142017; border:1px solid var(--orange); font-size:.88rem; font-weight:700; line-height:1.5; }
.button span[aria-hidden] { font-size:1.45rem; line-height:1; }
.button:hover { background:#ffa137; border-color:#ffa137; }
.button.outline { background:transparent; border-color:var(--ink); }
.button.outline:hover { background:var(--paper); }
.button.light { background:white; border-color:white; }
.text-link { display:inline-flex; align-items:center; gap:1.5rem; text-decoration:none; border-bottom:1px solid var(--ink); padding-block:.4rem; font-weight:600; font-size:.9rem; }
.text-link:hover { color:var(--rust); border-color:var(--rust); }
.home-hero { min-height:680px; position:relative; color:white; display:flex; align-items:center; isolation:isolate; }
.hero-image,.hero-shade { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.hero-image { object-position:60% center; }
.hero-shade { background:linear-gradient(90deg,rgba(9,24,16,.89),rgba(9,24,16,.55) 45%,rgba(9,24,16,.08)),linear-gradient(0deg,rgba(9,24,16,.75),transparent 20%); z-index:-1; }
.hero-content { padding-block:4rem 6rem; }
.home-hero .eyebrow { color:#ffc485; }
.home-hero h1 { max-width:800px; margin-bottom:1.5rem; line-height:.98; letter-spacing:-.06em; }
.home-hero em { font-style:normal; color:#ffa43a; }
.hero-content>p:not(.eyebrow) { color:#edf1e9; font-size:1.1rem; margin-bottom:2rem; }
.hero-bottom { position:absolute; bottom:1.5rem; left:0; right:0; display:flex; justify-content:space-between; gap:1rem; font-size:.58rem; letter-spacing:.1em; }

.service-strip { display:grid; grid-template-columns:repeat(4,1fr); padding-block:1.8rem; border-bottom:1px solid var(--line); }
.service-strip a { display:flex; align-items:center; gap:1rem; text-decoration:none; font-size:.8rem; font-weight:650; padding-inline:1.2rem; border-right:1px solid var(--line); }
.service-strip a:first-child { padding-left:0; }
.service-strip a:last-child { border:0; }
.service-strip a>span:first-child { color:var(--rust); font-size:.65rem; }
.service-strip a>span:last-child { margin-left:auto; font-size:1.1rem; }
.introduction { display:grid; grid-template-columns:1.1fr 1fr; gap:10%; }
.introduction h2 { margin-bottom:0; }
.introduction>div:last-child { padding-top:2.5rem; max-width:530px; }
.introduction p:not(.lead):not(.eyebrow) { color:var(--muted); }
.introduction .text-link { margin-top:1rem; }
.tint { background:var(--paper); }
.section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; margin-bottom:3rem; }
.section-head h2 { margin:0; }
.section-head>.button { flex-shrink:0; }
.service-cards { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #aeb8ad; }
.service-card { padding:2rem 1.7rem 0; border-right:1px solid var(--line); display:flex; align-items:flex-start; flex-direction:column; }
.service-card:first-child { padding-left:0; }
.service-card:last-child { border:0; padding-right:0; }
.service-card .index { margin-bottom:3rem; }
.service-card .tagline { letter-spacing:.035em; color:var(--muted); margin-bottom:1rem; font-size:.6rem; }
.service-card h3 { font-size:1.48rem; }
.service-card p:not(.tagline) { color:var(--muted); font-size:.95rem; }
.service-card .text-link { margin-top:auto; padding-top:1.6rem; font-size:.8rem; gap:1rem; }
.project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3rem 2rem; }
.project-card { min-width:0; }
.project-visual { height:260px; background:var(--green); position:relative; overflow:hidden; color:white; padding:1.5rem; display:flex; flex-direction:column; justify-content:space-between; }
.project-visual>span { font-size:.55rem; letter-spacing:.15em; z-index:1; }
.project-visual>b { font-weight:300; line-height:1; font-size:7rem; letter-spacing:-.06em; opacity:.85; z-index:1; }
.project-visual i { position:absolute; width:125%; height:200%; top:-20%; right:-60%; border-radius:45%; border:1px solid #9bac91; box-shadow:0 0 0 20px #385340,0 0 0 21px #788e72,0 0 0 42px #385340,0 0 0 43px #788e72,0 0 0 64px #385340,0 0 0 65px #788e72,0 0 0 88px #385340,0 0 0 89px #788e72; transform:rotate(-28deg); }
.visual-1 { background:#9c4917; }
.visual-1 i { border-color:#dbbd87; box-shadow:0 0 0 20px #a46030,0 0 0 21px #c49d62,0 0 0 42px #a46030,0 0 0 43px #c49d62,0 0 0 64px #a46030,0 0 0 65px #c49d62,0 0 0 88px #a46030,0 0 0 89px #c49d62; }
.visual-2 { background:#273b36; }
.visual-3 { background:#464b3e; }
.project-copy { padding:1.7rem 0 1rem; border-bottom:1px solid var(--line); }
.project-copy .eyebrow { font-size:.62rem; margin-bottom:.8rem; }
.project-copy .eyebrow span { color:var(--muted); }
.project-copy h3 { font-size:1.7rem; }
.project-copy>p:not(.eyebrow) { color:var(--muted); }
.attribution { font-size:.75rem; }
.dark { background:var(--dark); color:#fff; }
.dark .eyebrow,.dark .index { color:#ffb364; }
.process { display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; margin:3rem 0 0; padding:0; list-style:none; }
.process li { border-top:1px solid #708573; padding-top:1.2rem; }
.process li>span { display:block; font-size:.75rem; color:#ffb364; margin-bottom:2.8rem; }
.process h3 { font-size:1.5rem; }
.process p { color:#cbd6cb; font-size:.93rem; }
.contact-cta { background:var(--orange); padding-block:5rem; }
.contact-cta .shell { display:flex; justify-content:space-between; align-items:center; gap:2rem; }
.contact-cta .eyebrow { color:#243625; }
.contact-cta h2 { margin:0; }
.page-hero { background:var(--paper); padding-block:2.5rem 4rem; position:relative; overflow:hidden; }
.breadcrumb { font-size:.7rem; color:var(--muted); margin-bottom:3rem; }
.breadcrumb a { text-decoration:none; }
.breadcrumb span { margin-inline:.7rem; }
.page-hero h1 { max-width:1000px; margin-bottom:1.8rem; position:relative; z-index:1; }
.page-hero .lead { max-width:650px; color:var(--muted); position:relative; z-index:1; }
.hero-mark { position:absolute; right:6%; bottom:0; font-size:15rem; line-height:1; color:#e4e7de; font-family:Arial,sans-serif; }
.about-image { position:relative; height:420px; }
.about-image img { width:100%; height:100%; object-fit:cover; object-position:50% 35%; }
.about-image>span { position:absolute; bottom:1rem; right:2rem; padding:.4rem .7rem; background:rgba(10,25,15,.8); color:white; font-size:.65rem; }
.values { display:grid; grid-template-columns:repeat(3,1fr); gap:3rem; }
.values article { border-top:1px solid #aeb8ad; padding-top:1.5rem; }
.values .index { display:block; margin-bottom:3rem; }
.values p { color:var(--muted); }
.service-jump { display:flex; gap:1.5rem; flex-wrap:wrap; padding-bottom:2rem; border-bottom:1px solid var(--line); }
.service-jump a { font-size:.85rem; font-weight:600; }
.service { display:grid; grid-template-columns:1fr 1fr; gap:8%; padding:5rem 0; border-bottom:1px solid var(--line); scroll-margin-top:130px; }
.service-title h2 { font-size:clamp(2.1rem,3vw,3rem); }
.service-title .lead { color:var(--muted); margin-block:1.6rem 2rem; font-size:1.1rem; }
details { border-top:1px solid var(--line); }
summary { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.2rem 0; cursor:pointer; font-weight:650; list-style:none; }
summary::-webkit-details-marker { display:none; }
summary span { font-weight:400; font-size:1.5rem; color:var(--rust); }
details[open] summary span { transform:rotate(45deg); }
details>p { padding-bottom:1.4rem; color:var(--muted); font-size:.95rem; }
.deliverables { margin-top:2rem; background:var(--paper); padding:1.8rem; }
.deliverables h3 { font-size:1.1rem; letter-spacing:-.02em; }
.deliverables ul { margin:0; padding-left:1.2rem; color:var(--muted); font-size:.9rem; }
.deliverables li { margin-bottom:.45rem; }
.notice { border-left:3px solid var(--orange); padding:2rem; margin-top:4rem; background:var(--paper); }
.notice h2 { font-size:1.5rem; }
.notice p { color:var(--muted); font-size:.95rem; max-width:960px; }
.project-toolbar { display:flex; justify-content:space-between; align-items:center; gap:1.5rem; margin-bottom:2.5rem; }
.filters { display:flex; gap:.6rem; flex-wrap:wrap; }
.filters button { border:1px solid #9ea99e; border-radius:0; padding:.65rem 1.2rem; background:white; color:var(--ink); font-size:.85rem; }
.filters button[aria-pressed=true] { background:var(--green); border-color:var(--green); color:#fff; }
[data-project-count] { margin:0; color:var(--muted); font-size:.82rem; }
.expertise-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); }
.expertise-grid article { border-bottom:1px solid var(--line); padding:2rem 1.5rem; display:grid; grid-template-columns:40px 1fr 20px; align-items:start; gap:1rem; }
.expertise-grid article:nth-child(odd) { border-right:1px solid var(--line); padding-left:0; }
.expertise-grid h3 { margin:0; font-size:1.5rem; }
.contact-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:8%; align-items:start; }
.contact-details h2 { font-size:clamp(2rem,3vw,3rem); }
address { font-style:normal; display:grid; gap:.8rem; margin-top:2.5rem; }
address a { font-size:.95rem; }
.contact-note { margin-top:3.5rem; background:var(--paper); padding:1.5rem; }
.contact-note p { font-size:.9rem; color:var(--muted); margin-top:.8rem; }
#enquiry-form { border:1px solid var(--line); padding:2.5rem; display:grid; gap:1.3rem; }
#enquiry-form h2 { font-size:1.8rem; margin:0; }
#form-help { font-size:.85rem; color:var(--muted); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
.form-grid .wide { grid-column:1/-1; }
label { display:grid; gap:.5rem; font-size:.8rem; font-weight:650; }
input,select,textarea { border:1px solid #8f9b8c; border-radius:0; padding:.8rem; background:#fff; width:100%; min-width:0; color:var(--ink); }
textarea { resize:vertical; }
#enquiry-form .button { justify-self:start; }
#enquiry-form .note { margin:0; font-size:.77rem; }
footer { background:#10231a; color:#e2e9df; padding:4rem 0 1.5rem; }
.footer-main { display:grid; grid-template-columns:1.25fr .7fr 1fr; gap:5rem; padding-bottom:3rem; }
.footer-brand img { width:285px; background:white; }
.footer-brand p { font-size:.9rem; max-width:290px; margin-top:1.5rem; }
.footer-brand .footer-note { font-size:.72rem; color:#b7c6b7; }
.footer-main h2 { font-size:.65rem; text-transform:uppercase; letter-spacing:.1em; margin:0 0 1.5rem; color:#ffb364; }
.footer-main nav,.footer-main>div:last-child { display:flex; flex-direction:column; align-items:flex-start; gap:.5rem; }
.footer-main a { text-decoration:none; font-size:.82rem; }
.footer-main a:hover { text-decoration:underline; }
.legal { border-top:1px solid #48604a; display:flex; justify-content:space-between; gap:1rem; padding-top:1.5rem; font-size:.67rem; color:#b7c6b7; }
dialog { width:min(720px,calc(100% - 2rem)); max-height:85vh; overflow:auto; border:0; padding:2.5rem; box-shadow:0 25px 90px #0005; color:var(--ink); }
dialog::backdrop { background:rgba(9,24,16,.7); }
.search-top { display:flex; justify-content:space-between; align-items:start; gap:1rem; }
.search-top h2 { font-size:2.5rem; }
dialog input { margin-top:.7rem; }
.search-results { list-style:none; padding:0; margin:1.5rem 0 0; }
.search-results a { display:flex; justify-content:space-between; text-decoration:none; padding:1rem 0; border-bottom:1px solid var(--line); font-size:.95rem; }
[data-search-empty] { color:var(--muted); margin-top:1.5rem; }
.shell>*,.service-cards>*,.contact-layout>*,.footer-main>* { min-width:0; }
@media(max-width:1100px) {
  .brand { width:205px; }
  .nav-wrap { gap:1rem; }
  #site-nav { gap:.8rem; }
  #site-nav a { font-size:.74rem; }
  .service-cards { grid-template-columns:repeat(2,1fr); gap:2rem 0; }
  .service-card:nth-child(2) { border-right:0; padding-right:0; }
  .service-card:nth-child(3) { padding-left:0; }
  .footer-main { gap:2rem; }
}
@media(max-width:900px) {
  .shell { width:calc(100% - 48px); }
  .nav-wrap { flex-wrap:wrap; min-height:92px; padding-block:1rem; }
  .brand { width:230px; }
  .nav-controls { margin-left:auto; order:0; }
  .menu { display:block; }
  #site-nav { width:100%; display:flex; flex-direction:column; align-items:stretch; margin:0; padding:1rem 0; }
  #site-nav[data-enhanced] { display:none; }
  #site-nav[data-open] { display:flex; }
  #site-nav a { font-size:.95rem; padding:.6rem; white-space:normal; }
  #site-nav a:last-child { border:0; padding:.6rem; }
  #site-nav a:after { bottom:.2rem; }
  .home-hero { min-height:650px; }
  .service-strip { grid-template-columns:repeat(2,1fr); gap:1.4rem 0; }
  .service-strip a:nth-child(3) { padding-left:0; }
  .service-strip a:nth-child(2) { border:0; }
  .introduction,.service,.contact-layout { grid-template-columns:1fr; gap:2.5rem; }
  .introduction>div:last-child { padding-top:0; max-width:none; }
  .process { grid-template-columns:repeat(2,1fr); gap:2.5rem; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .service { scroll-margin-top:120px; }
}
@media(max-width:800px) {
  .values { gap:1.5rem; }
  .project-grid { gap:2rem; }
  .project-visual { height:210px; }
  .section-head { align-items:flex-start; flex-direction:column; }
}
@media(max-width:540px) {
  .shell { width:calc(100% - 40px); }
  .utility a { display:none; }
  .utility { font-size:.56rem; }
  .nav-wrap { gap:.7rem; }
  .brand { width:180px; }
  .nav-controls { gap:.35rem; }
  .icon-button { width:38px; height:40px; }
  .menu { font-size:.75rem; padding:.5rem; }
  .menu b { display:none; }
  .nav-wrap { min-height:84px; }
  .home-hero { min-height:690px; }
  .hero-content { padding-block:3.5rem 6rem; }
  .home-hero h1 { font-size:3.6rem; }
  .home-hero .eyebrow { font-size:.6rem; max-width:260px; }
  .hero-content>p:not(.eyebrow) { font-size:1rem; }
  .hero-shade { background:linear-gradient(90deg,#0c1d16e8,#0c1d1655),linear-gradient(0deg,#0c1d16c9,transparent 30%); }
  .hero-bottom { flex-direction:column; gap:.6rem; bottom:1.2rem; }
  .hero-bottom span:first-child { display:none; }
  .service-strip { gap:1.2rem; }
  .service-strip a { padding:0; border:0; font-size:.69rem; gap:.6rem; }
  .service-strip a>span:first-child { display:none; }
  .service-cards,.project-grid,.values,.expertise-grid,.form-grid { grid-template-columns:1fr; }
  .service-card { padding:1.5rem 0 0; border:0; border-top:1px solid var(--line); }
  .service-card:first-child { border:0; }
  .service-card .index { margin-bottom:1.5rem; }
  .service-card h3 { font-size:1.7rem; }
  .service-card .text-link { padding-top:1rem; }
  .project-visual { height:220px; }
  .contact-cta .shell { align-items:flex-start; flex-direction:column; }
  .page-hero { padding-bottom:3rem; }
  .page-hero h1 { font-size:3.25rem; }
  .hero-mark { font-size:9rem; opacity:.6; }
  .about-image { height:280px; }
  .values article { padding-top:1.5rem; }
  .values .index { margin-bottom:1.5rem; }
  .service { padding-block:3.5rem; }
  .service-jump { gap:1rem; }
  .service-jump a { font-size:.75rem; }
  .project-toolbar { align-items:flex-start; flex-direction:column; }
  .filters { gap:.4rem; }
  .filters button { padding:.6rem .8rem; font-size:.77rem; }
  .expertise-grid article { padding:1.5rem 0; grid-template-columns:35px 1fr 15px; }
  .expertise-grid article:nth-child(odd) { border-right:0; }
  .expertise-grid h3 { font-size:1.3rem; }
  #enquiry-form { padding:1.3rem; }
  .process { gap:1.6rem; }
  .process li>span { margin-bottom:1.5rem; }
  .process p { font-size:.85rem; }
  .footer-main { grid-template-columns:1fr; gap:2.5rem; }
  .footer-brand { grid-column:auto; }
  .legal { flex-direction:column; gap:.7rem; }
  .legal>span:nth-child(2) { display:none; }
  dialog { padding:1.5rem; }
}
@media(prefers-reduced-motion:no-preference) {
  html { scroll-behavior:smooth; }
  .button,.text-link,#site-nav a:after { transition:background .2s,color .2s,width .2s; }
  .project-visual i { transition:transform .6s; }
  .project-card:hover .project-visual i { transform:rotate(-20deg); }
}
@media(max-width:360px) { .brand { width:150px; } }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }
.button.hero-secondary { color:#fff; background:transparent; border-color:#dce5d8; }
.button.hero-secondary:hover { background:#ffffff1a; }
.service-explorer { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(0,2fr); border-top:1px solid #aeb8ad; }
.service-tabs { border-right:1px solid var(--line); }
.service-tabs button { display:grid; grid-template-columns:32px 1fr 20px; align-items:center; gap:1rem; width:100%; padding:1.6rem 1.4rem; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--ink); text-align:left; font-size:1rem; line-height:1.4; }
.service-tabs button>span:first-child { font-size:.7rem; color:var(--rust); }
.service-tabs button[aria-selected=true] { background:var(--green); color:white; box-shadow:inset 4px 0 var(--orange); }
.service-tabs button[aria-selected=true]>span:first-child { color:#ffb364; }
.service-tabs button:hover:not([aria-selected=true]) { background:#e7e9df; }
.service-panels { min-width:0; }
.service-panel { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:2.3rem; padding:2.5rem; border-bottom:1px solid var(--line); }
.service-panel h3 { font-size:clamp(1.8rem,2.4vw,2.5rem); }
.service-panel .tagline { color:var(--rust); font-size:.65rem; }
.service-panel .lead { color:var(--muted); font-size:1rem; }
.service-panel .button { margin-top:1rem; gap:1rem; }
.service-actions { display:flex; flex-wrap:wrap; gap:.75rem; }
.service-panel aside { border-left:1px solid var(--line); padding-left:1.7rem; }
.service-panel aside h4 { margin:0 0 1.5rem; font-size:.75rem; letter-spacing:.06em; text-transform:uppercase; }
.service-panel aside ul { padding:0; margin:0; list-style:none; }
.service-panel aside li { border-top:1px solid var(--line); padding-block:.8rem; font-size:.85rem; color:var(--muted); }
.service-tabs[hidden]+.service-panels { grid-column:1/-1; }
.project-toolbar { display:block; }
[data-project-tools] { display:grid; grid-template-columns:minmax(0,1fr) minmax(150px,.45fr); gap:1.3rem; padding:1.5rem; margin-bottom:1.2rem; background:var(--paper); border:1px solid var(--line); }
[data-project-tools] .filters { grid-column:1/-1; }
.project-control { display:grid; align-content:start; gap:.5rem; min-width:0; }
.project-empty { padding:3rem; background:var(--paper); border:1px solid var(--line); margin-bottom:2rem; }
.project-empty h2 { font-size:1.7rem; }
.service-guidance { padding:1rem; background:var(--paper); border-left:3px solid var(--orange); color:var(--muted); font-size:.85rem; }
[data-enquiry-tools] { min-width:0; padding-top:.4rem; }
[data-brief-progress-text] { display:block; margin-bottom:.6rem; color:var(--muted); font-size:.8rem; }
#brief-progress { display:block; width:100%; height:6px; border:0; border-radius:0; accent-color:var(--green); margin-bottom:1.5rem; }
#brief-progress::-webkit-progress-bar { background:var(--line); }
#brief-progress::-webkit-progress-value { background:var(--green); }
.brief-preview summary { font-size:.88rem; }
.brief-preview summary::after { content:"+"; color:var(--rust); font-size:1.3rem; }
.brief-preview[open] summary::after { content:"−"; }
[data-enquiry-preview] { min-height:250px; font-size:.85rem; line-height:1.6; margin-block:.5rem 1rem; background:#fafbf8; }
[data-copy-enquiry] { border:1px solid var(--green); color:var(--green); background:#fff; padding:.7rem 1rem; font-size:.85rem; margin-top:.5rem; }
[data-copy-status] { margin-top:.8rem; font-size:.8rem; color:var(--muted); }
@media(max-width:1100px) { .service-panel { grid-template-columns:1fr; gap:1.6rem; } .service-panel aside { border-left:0; border-top:1px solid var(--line); padding:1.5rem 0 0; } }
@media(max-width:700px) { .service-explorer { grid-template-columns:1fr; } .service-tabs { border-right:0; } .service-tabs button { padding:1.1rem; font-size:.9rem; } .service-panel { padding:1.8rem 0; } [data-project-tools] { grid-template-columns:1fr; padding:1rem; } .project-empty { padding:1.5rem; } }
@media(prefers-reduced-motion:no-preference) { .service-panel[role=tabpanel]:not([hidden]) { animation:panel-in .25s ease-out; } @keyframes panel-in { from { transform:translateY(5px); } to { transform:none; } } }
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }
}

/* Motion is progressive: content remains visible if JavaScript is unavailable. */
.home-hero { overflow:clip; }
.service-rail { background:var(--green); color:#fff; padding-block:2rem 2.6rem; }
.rail-heading { display:flex; justify-content:space-between; align-items:center; gap:1.5rem; margin-bottom:1.8rem; }
.rail-heading .eyebrow { color:#ffc58a; margin:0; font-size:.68rem; line-height:1.6; letter-spacing:.13em; }
.rail-controls { display:flex; align-items:center; gap:.5rem; }
.rail-controls [data-rail-position] { font-size:.7rem; font-variant-numeric:tabular-nums; letter-spacing:.1em; color:#d0dfd1; margin-right:.6rem; white-space:nowrap; }
.rail-controls button { display:flex; align-items:center; justify-content:center; gap:.5rem; min-width:44px; min-height:44px; background:transparent; color:white; border:1px solid #839b89; padding:.45rem .75rem; font-size:1.1rem; }
.rail-controls [data-rail-toggle] { font-size:.75rem; min-width:82px; }
.rail-controls button:hover { background:#2f5842; }
.service-rail :focus-visible { outline-color:#ffb86d; outline-offset:4px; }
.rail-track { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem; }
.rail-slide { min-width:0; display:grid; grid-template-columns:80px 1fr; column-gap:1.5rem; align-content:start; }
.rail-number { grid-row:1/3; color:#ffb364; font-size:3rem; letter-spacing:-.08em; font-weight:300; line-height:1; }
.rail-number>span { display:block; margin-top:.6rem; font-size:1.5rem; color:#91ac93; }
.rail-copy .tagline { font-size:.62rem; color:#c4d7c4; letter-spacing:.08em; margin-bottom:.6rem; }
.rail-copy h3 { font-size:clamp(1.65rem,3.1vw,3rem); line-height:1.13; margin:0; }
.rail-summary { grid-column:2; margin-top:1.3rem; }
.rail-summary>p { color:#d7e3d6; font-size:.92rem; line-height:1.65; }
.rail-summary .text-link { border-color:#b4c9b4; font-size:.82rem; }
.rail-summary .text-link:hover { color:#ffb364; border-color:#ffb364; }
.service-rail[data-enhanced] .rail-viewport { overflow:hidden; }
.service-rail[data-enhanced] .rail-track { display:flex; gap:0; }
.service-rail[data-enhanced] .rail-slide { flex:0 0 100%; grid-template-columns:100px minmax(0,1.4fr) minmax(0,1fr); gap:2.5rem; align-items:center; padding:6px; }
.service-rail[data-enhanced] .rail-number { grid-row:auto; font-size:5.5rem; }
.service-rail[data-enhanced] .rail-summary { grid-column:auto; margin-top:0; }
@media(max-width:900px) {
  .service-rail[data-enhanced] .rail-slide { grid-template-columns:65px minmax(0,1fr); gap:1.3rem; align-items:start; }
  .service-rail[data-enhanced] .rail-number { grid-row:1/3; font-size:3.6rem; }
  .service-rail[data-enhanced] .rail-summary { grid-column:2; }
  .rail-track { grid-template-columns:1fr; }
}
@media(max-width:540px) {
  .rail-heading { flex-wrap:wrap; gap:1rem; margin-bottom:2rem; }
  .rail-controls { margin-left:auto; }
  .rail-heading .eyebrow { width:100%; }
  .rail-slide,.service-rail[data-enhanced] .rail-slide { grid-template-columns:1fr; gap:1rem; }
  .rail-number,.service-rail[data-enhanced] .rail-number { grid-row:auto; font-size:2rem; }
  .rail-number>span { display:inline; margin-left:.6rem; }
  .rail-summary,.service-rail[data-enhanced] .rail-summary { grid-column:1; }
  .rail-copy h3 { font-size:1.9rem; }
}
@media(prefers-reduced-motion:no-preference) {
  .service-rail[data-enhanced] .rail-track { transition:transform .7s cubic-bezier(.22,.68,0,1); }
  .button,.text-link { transition:background .2s,color .2s,transform .25s ease; }
  .button>span[aria-hidden],.text-link>span[aria-hidden] { transition:transform .25s ease; }
  .button:hover>span[aria-hidden],.button:focus-visible>span[aria-hidden],.text-link:hover>span[aria-hidden] { transform:translate(3px,-3px); }
  .button:hover { transform:translateY(-2px); }
  .project-visual { transition:box-shadow .35s ease; }
  .project-card:hover .project-visual { box-shadow:0 12px 24px #153d2c1a; }
  .service-content summary>span { transition:transform .25s ease; }
  .page-hero .hero-mark { animation:hero-mark-in 1.1s cubic-bezier(.22,.68,0,1) both; }
  @keyframes hero-mark-in { from { transform:translate(-24px,24px); } to { transform:none; } }
}
