@font-face{font-family:Plex;src:url('/assets/IBMPlexSans-Regular.woff2');font-weight:400;font-display:swap}@font-face{font-family:Plex;src:url('/assets/IBMPlexSans-Medium.woff2');font-weight:500;font-display:swap}@font-face{font-family:Plex;src:url('/assets/IBMPlexSans-SemiBold.woff2');font-weight:600;font-display:swap}@font-face{font-family:Mono;src:url('/assets/IBMPlexMono-Regular.woff2');font-display:swap}
:root{--ink:#233D49;--paper:#FAFBF9;--sky:#DFE8EB;--muted:#526571;--line:#B4C3C8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 Plex,Arial,sans-serif}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid currentColor;outline-offset:5px}.skip{position:absolute;top:-100px;left:20px;background:var(--paper);padding:12px;z-index:3}.skip:focus{top:10px}.wrap{max-width:1480px;margin:auto}.nav{padding:28px 5%;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:28px}.logo{font-size:30px;letter-spacing:-1.3px;font-weight:600;white-space:nowrap;line-height:1.15}.logo span{font-weight:400}.navlinks,.languages{display:flex;align-items:center;gap:24px}.navlinks{font-size:14px}.nav a:not(.logo){min-height:44px;display:inline-flex;align-items:center}.languages{gap:4px;font:12px Mono,monospace}.languages a{padding:8px}.languages [aria-current]{text-decoration:underline;text-underline-offset:6px}.lead{padding:62px 5% 40px;display:grid;grid-template-columns:1.15fr 1fr;gap:70px;align-items:end}.eyebrow{font:11px/1.6 Mono,monospace;letter-spacing:.07em;text-transform:uppercase;margin:0 0 20px}h1{font-size:clamp(54px,6.5vw,96px);font-weight:500;line-height:1.02;letter-spacing:-.045em;margin:0}.lead p{font-size:20px;max-width:460px;margin:0 0 26px}.button{display:inline-flex;align-items:center;gap:35px;background:var(--ink);color:var(--paper);padding:14px 22px;border-radius:3px;font-size:15px;min-height:48px}.button:hover{background:#365562}.photo{margin:0 20px;position:relative}.photo img{display:block;width:100%;height:clamp(300px,40vw,610px);object-fit:cover;object-position:center 54%}.strip{margin:0 20px;padding:26px 4%;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;background:var(--sky)}.strip div+div{border-left:1px solid #A6B9C0;padding-left:26px}.strip small{display:block;font:10px/1.6 Mono,monospace;text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}.strip strong{font-weight:500;font-size:18px}.scope{padding:70px 5%;display:grid;grid-template-columns:1fr 1.2fr;gap:80px}h2{font-size:clamp(32px,3.5vw,50px);font-weight:500;letter-spacing:-.03em;line-height:1.12;margin:0 0 20px}.scope p{max-width:400px;margin:0;color:var(--muted)}dl{margin:0}dl div{display:grid;grid-template-columns:145px 1fr;gap:24px;padding:19px 0;border-bottom:1px solid var(--line)}dt{font-weight:500}dd{margin:0;color:var(--muted)}.process{margin:0 5%;padding:45px 0 65px;border-top:1px solid var(--line)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin:34px 0 0;padding:0;list-style:none;counter-reset:step}.steps li{counter-increment:step}.steps li:before{content:'0' counter(step);font:12px Mono,monospace;display:block;margin-bottom:22px}h3{font-size:21px;font-weight:500;line-height:1.25;margin:0 0 12px}.steps p{margin:0;color:var(--muted);font-size:16px}.project{padding:64px 5%;display:grid;grid-template-columns:1fr 1.1fr;gap:70px;background:var(--sky)}.project p{max-width:510px;margin:0 0 22px}.status{border-top:1px solid var(--line);padding-top:20px;font-size:15px;font-weight:500}.email{display:inline-block;min-height:44px;padding:8px 0;text-decoration:underline;text-underline-offset:5px;overflow-wrap:anywhere}.note{font-size:13px;color:var(--muted)}footer{background:var(--ink);color:var(--paper);padding:26px 5%;display:flex;gap:25px;align-items:center;justify-content:space-between;font-size:13px}.footer-logo{font-size:22px}.footer-meta{text-align:right}footer p{margin:0}.navlinks a:hover{text-decoration:underline;text-underline-offset:5px}
@media(max-width:850px){.nav{flex-wrap:wrap;gap:14px;padding:20px 6%}.navlinks{order:3;width:100%;gap:24px;font-size:13px}.logo{font-size:25px}.languages{margin-left:auto}.lead{grid-template-columns:1fr;gap:28px;padding:35px 6%}.lead p{font-size:18px;max-width:100%}h1{font-size:64px}.eyebrow{font-size:10px}.photo{margin:0 12px}.photo img{height:320px;object-position:54% center}.strip{margin:0 12px;padding:22px;grid-template-columns:1fr;gap:14px}.strip div+div{border-left:0;border-top:1px solid #A6B9C0;padding:14px 0 0}.strip strong{font-size:17px}.scope{grid-template-columns:1fr;gap:25px;padding:45px 6%}dl div{grid-template-columns:115px 1fr;gap:15px;font-size:15px}.process{margin:0 6%;padding:35px 0 45px}.steps{grid-template-columns:1fr;gap:30px}.steps li:before{margin-bottom:12px}.project{grid-template-columns:1fr;gap:20px;padding:40px 6%}footer{padding:25px 6%;align-items:start;flex-direction:column;gap:14px}.footer-meta{text-align:left}}@media(max-width:360px){h1{font-size:52px}.logo{font-size:22px}.navlinks{gap:16px}.languages a{padding:5px}.photo img{height:280px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.photo.gallery{--gallery-color:var(--ink);background:transparent;color:#fff;overflow:hidden}
.photo.gallery[data-category="models"]{--gallery-color:#526454}
.gallery-heading{min-height:62px;display:flex;gap:20px;justify-content:space-between;align-items:center;padding:8px 24px;background:var(--gallery-color)}
.gallery-caption{font-weight:500;font-size:16px}.gallery-jumps{display:flex;gap:6px}.gallery-jumps button{font:13px Plex,Arial,sans-serif;color:#fff;background:none;border:1px solid transparent;padding:10px 12px;min-height:44px;cursor:pointer}.gallery-jumps button[aria-pressed="true"]{border-bottom-color:#fff}
.gallery-stage{position:relative}
.gallery-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y;cursor:grab}
.gallery-track::-webkit-scrollbar{display:none}
.gallery-track.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.gallery-slide{flex:0 0 100%;min-width:0;position:relative;scroll-snap-align:center;scroll-snap-stop:always}
.photo.gallery .gallery-slide img{width:100%;height:clamp(300px,40vw,610px);object-fit:cover;object-position:center 54%;user-select:none;-webkit-user-drag:none}
.photo.gallery .gallery-slide[data-category="models"] img{object-position:center 18%}
.gallery-model{position:absolute;top:18px;left:18px;padding:5px 11px;background:rgba(20,37,45,.8);font:12px Mono,monospace;letter-spacing:.07em}
.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:1px solid rgba(255,255,255,.6);border-radius:50%;color:#fff;background:rgba(20,37,45,.55);font:26px/1 Plex,Arial,sans-serif;cursor:pointer;z-index:2;display:grid;place-items:center}
.gallery-prev{left:16px}.gallery-next{right:16px}
.gallery-arrow:hover{background:rgba(20,37,45,.9)}
.gallery-arrow:focus-visible,.gallery-dot:focus-visible,.gallery-track:focus-visible{outline:2px solid #fff;outline-offset:-4px}
.gallery-controls{padding:0 24px;background:var(--gallery-color)}
.gallery-expand{position:absolute;bottom:16px;right:16px;min-height:44px;padding:10px 15px;background:rgba(20,37,45,.75);border:1px solid #ffffff70;color:white;font:13px Plex,Arial,sans-serif;cursor:pointer}
.photo-dialog{border:0;padding:0;background:#182b33;width:96vw;max-width:1600px;max-height:94vh;color:#fff}.photo-dialog::backdrop{background:#10232bea}.photo.gallery .photo-dialog img{width:100%;height:85vh;object-fit:contain}.dialog-close{display:block;margin:8px 12px 8px auto;background:none;border:0;color:white;min-height:44px;font:15px Plex,Arial,sans-serif;cursor:pointer}
.gallery-bars{--gap:8px;display:grid;grid-template-columns:repeat(var(--count),minmax(0,1fr));gap:var(--gap);position:relative;max-width:720px;margin:auto}
.gallery-dot{display:flex;align-items:center;justify-content:center;min-width:0;height:48px;padding:0;border:0;background:none;cursor:pointer;position:relative}
.gallery-dot:before{content:'';width:100%;height:2px;background:rgba(255,255,255,.42)}
.gallery-indicator{position:absolute;pointer-events:none;height:4px;top:22px;width:calc((100% - (var(--count) - 1)*var(--gap))/var(--count));left:calc(var(--active)*(100% + var(--gap))/var(--count));background:#fff;transition:left 240ms ease}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:850px){.photo.gallery .gallery-slide img{height:320px;object-position:54% center}.photo.gallery .gallery-slide[data-category="models"] img{object-position:center}.gallery-heading{padding:8px 12px;flex-wrap:wrap;gap:0}.gallery-caption{font-size:14px}.gallery-jumps{margin-left:auto}.gallery-jumps button{font-size:11px;padding:8px}.gallery-arrow{width:44px;height:44px}.gallery-prev{left:10px}.gallery-next{right:10px}.gallery-controls{padding:0 16px}.gallery-bars{--gap:6px}.gallery-expand{bottom:10px;right:10px}}
@media(prefers-reduced-motion:reduce){.gallery-indicator{transition:none}.gallery-track{scroll-behavior:auto}}

.uses{padding:65px 5%;display:grid;grid-template-columns:1fr 1.3fr;gap:65px}.uses p{max-width:470px;color:var(--muted)}.use-choices{display:flex;flex-wrap:wrap;gap:8px}.use-choices button{font:15px Plex,Arial,sans-serif;min-height:46px;padding:10px 15px;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:3px;cursor:pointer}.use-choices button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.use-description{min-height:52px;margin:24px 0 12px}.text-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:6px;font-weight:500}.water{display:grid;grid-template-columns:1fr 1.3fr;gap:65px;margin:0 5%;padding:40px 0 50px;border-top:1px solid var(--line)}.water p{max-width:650px;color:var(--muted)}.water-line{align-self:center;min-height:110px;background:repeating-linear-gradient(175deg,transparent 0 19px,#7696a450 20px 21px,transparent 22px 42px);mask-image:linear-gradient(to right,black,transparent)}.about{display:grid;grid-template-columns:1fr 1.3fr;gap:65px;margin:0 5%;padding:35px 0 45px;border-top:1px solid var(--line)}.about p{margin:0;max-width:680px;color:var(--muted);font-size:15px}.lead-project{grid-template-columns:.8fr 1.5fr;gap:70px}.lead-form{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}.lead-form label{font-size:13px;font-weight:500;display:flex;flex-direction:column;gap:7px}.lead-form input,.lead-form select,.lead-form textarea{width:100%;min-width:0;min-height:46px;border:1px solid #98adb5;border-radius:2px;padding:10px 11px;background:var(--paper);color:var(--ink);font:15px Plex,Arial,sans-serif}.lead-form .wide{grid-column:1/-1}.lead-form button{border:0;cursor:pointer;font-family:inherit}.lead-form .preview-notice{font:12px Plex,Arial,sans-serif;margin:12px 0 0;color:var(--muted)}.project-summary{padding:25px 0;border-top:1px solid var(--line);margin-top:25px;overflow-wrap:anywhere}.project-summary dl div{grid-template-columns:minmax(100px,.8fr) minmax(0,1fr);font-size:14px}.project-summary .note{margin-top:20px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.gallery button:focus-visible{outline-color:white}
@media(max-width:850px){.uses,.water,.about,.lead-project{grid-template-columns:1fr;gap:22px}.uses{padding:40px 6%}.water-line{display:none}.water,.about{margin:0 6%;padding:35px 0}.use-choices button{font-size:13px}.lead-form{gap:15px}.lead-form label{font-size:12px}.lead-form input,.lead-form select{font-size:16px}.project-summary dl div{grid-template-columns:1fr}.lead-project{padding:40px 6%}}
@media(max-width:450px){.lead-form{grid-template-columns:1fr}.lead-form .wide{grid-column:auto}}
.form-field{display:flex;flex-direction:column;gap:7px;min-width:0}.lead-form .form-field label{display:block}.required-star,.field-error{color:#a32424}.field-error{font-size:12px;line-height:1.5;min-height:0}.field-error:empty{display:none}.lead-form [aria-invalid=true]{border:2px solid #a32424;background:#fff7f5}.lead-form [aria-invalid=true]:focus-visible{outline-color:#a32424}.form-status{font-size:14px;min-height:24px;margin:15px 0 0!important}.form-status.is-error{color:#a32424}.form-status.is-success{color:#225c3c}.lead-form button:disabled{opacity:.65;cursor:wait}.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.lead-form #form-privacy{font-weight:400;margin-bottom:18px}.lead-form noscript{font-size:14px}

/* Preserve section order and palette; reflow only when content no longer fits. */
.navlinks{flex-wrap:wrap;column-gap:clamp(12px,2vw,24px);row-gap:0}.navlinks a{white-space:nowrap}
.lead>*,.scope>*,.uses>*,.water>*,.about>*,.project>*{min-width:0}
.lead,.scope,.uses,.water,.about,.lead-project{column-gap:clamp(24px,4.5vw,70px)}
.lead p,.scope p,.water p,.about p,.steps p{max-width:65ch}
h1,h2,h3,dt,dd,p,.button,.use-choices button,.gallery-jumps button{overflow-wrap:break-word}
.lead-form{grid-template-columns:repeat(2,minmax(0,1fr))}
.lead-form select{white-space:normal;text-overflow:ellipsis;min-height:48px}
.button{gap:clamp(12px,2vw,35px);max-width:100%;white-space:normal}
.photo.gallery .gallery-photo{display:block;width:100%;padding:0;border:0;background:var(--paper);cursor:zoom-in;color:inherit}
.photo.gallery .gallery-photo:focus-visible{outline:3px solid white;outline-offset:-6px}
.photo.gallery .gallery-slide img{height:clamp(300px,40vw,610px)}
/* Model buildings need more headroom than the wide garden photographs. */
.photo.gallery[data-category=models] .gallery-slide img{height:clamp(340px,54vw,800px)}
.photo.gallery .gallery-slide[data-category=models] img{object-position:center 4%}
.photo.gallery .gallery-slide[data-model="D7"] img{object-position:center 20%}
.photo.gallery .gallery-slide[data-model="V7+"] img{object-position:center 40%}
.photo.gallery .gallery-slide[data-frame=portrait] img{object-fit:contain;background:#edf1ef}
.select-reading{font-size:13px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.gallery-jumps{flex-wrap:wrap;justify-content:flex-end}.gallery-jumps button{font-size:13px}
.photo-dialog{position:fixed;inset:0;margin:auto;border:0;padding:56px 16px 16px;width:100vw;max-width:none;height:100dvh;max-height:none;background:transparent;overflow:hidden;box-sizing:border-box}
.photo-dialog[open]{display:flex;justify-content:center;align-items:center}
.photo-dialog::backdrop{background:#10232bed}
.photo.gallery .photo-dialog img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 12px 60px #0005}
.photo-dialog .dialog-close{position:absolute;top:8px;right:12px;margin:0;width:44px;height:44px;min-height:44px;display:grid;place-items:center;border:1px solid #ffffff80;border-radius:50%;background:#233d49;color:white;font:32px/1 Arial,sans-serif;cursor:pointer}
.photo-dialog .dialog-close:focus-visible{outline:3px solid white;outline-offset:3px}
html.photo-open{overflow:hidden}
@media(max-width:1050px){.nav{flex-wrap:wrap}.navlinks{order:3;flex-basis:100%}.languages{margin-left:auto}.lead-project{grid-template-columns:1fr;row-gap:28px}.lead-project>div:first-child{max-width:650px}}
@media(max-width:850px){h1{font-size:clamp(40px,8.2vw,64px)}.navlinks{gap:6px 18px}.gallery-heading{gap:4px 12px}.gallery-caption{font-size:14px}.photo.gallery .gallery-slide img{height:clamp(280px,52vw,440px)}.photo.gallery[data-category=models] .gallery-slide img{height:clamp(300px,58vw,620px)}.gallery-jumps button{font-size:12px}.lead-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.lead-form{grid-template-columns:1fr}.lead-form .wide{grid-column:auto}.gallery-heading{display:block}.gallery-jumps{justify-content:flex-start;margin:0;gap:4px}.gallery-caption{display:block;margin:4px 0}.gallery-jumps button{padding:8px 6px;font-size:12px}.photo.gallery .gallery-slide img,.photo.gallery[data-category=models] .gallery-slide img{height:auto;aspect-ratio:4/3;object-fit:contain;background:#edf1ef;object-position:center}.photo.gallery .gallery-slide img{min-height:0}.scope dl div{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}}
@media(max-width:360px){.nav{column-gap:8px}.logo{font-size:22px}.languages a{padding:5px;min-width:30px}.navlinks{font-size:12px;column-gap:14px}h2{font-size:30px}.gallery-controls{padding-inline:10px}.gallery-bars{--gap:3px}.scope dl div{grid-template-columns:1fr;gap:5px}.use-choices button{max-width:100%}}

[hidden]{display:none!important}
.cookie-banner{position:fixed;z-index:20;bottom:16px;left:16px;right:16px;max-width:1160px;margin:auto;background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 8px 40px #10232b26;padding:22px 26px;display:grid;grid-template-columns:1.4fr 1fr;gap:20px;max-height:75dvh;overflow:auto}
.cookie-banner h2{font-size:23px;margin:0 0 8px}.cookie-banner p{font-size:14px;line-height:1.5;margin:0 0 8px;max-width:75ch}.cookie-banner a,.cookie-dialog a{text-decoration:underline;text-underline-offset:3px;font-size:14px}
.cookie-actions{display:flex;gap:8px;flex-wrap:wrap;align-content:center;align-items:center}
.cookie-actions button,.cookie-dialog button,.privacy-page button{font:14px/1.4 Plex,Arial,sans-serif;padding:11px 15px;min-height:44px;color:var(--ink);background:var(--paper);border:1px solid var(--ink);cursor:pointer;border-radius:2px;white-space:normal}
.cookie-actions button{flex:1 1 130px}.cookie-actions button:hover{background:var(--sky)}
.cookie-dialog{width:min(94vw,600px);max-height:90dvh;overflow:auto;background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:28px}.cookie-dialog::backdrop{background:#10232b99}.cookie-dialog h2{font-size:28px;padding-right:35px}.cookie-dialog p{font-size:14px;line-height:1.6}.cookie-dialog label{font-weight:500;display:flex;align-items:center;gap:12px;min-height:44px}.cookie-dialog input{width:22px;height:22px;accent-color:var(--ink)}.cookie-dialog .cookie-close{position:absolute;right:12px;top:12px;font-size:24px;padding:4px 12px}
.footer-privacy{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:13px;margin-top:10px}.footer-privacy button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:8px 0;min-height:44px}.footer-privacy a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline}
.language-suggestion{background:var(--sky);padding:10px 5%;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}.language-suggestion a{text-decoration:underline;font-weight:500}.language-suggestion button{background:none;color:var(--ink);border:1px solid var(--line);font:inherit;padding:8px 12px;min-height:44px;cursor:pointer}
.privacy-page{max-width:780px;margin:auto;padding:35px 24px 70px}.privacy-page h1{font-size:clamp(34px,6vw,56px);margin:30px 0}.privacy-page h2{font-size:26px;margin-top:32px}.privacy-page address{font-style:normal;margin:25px 0}
@media(max-width:800px){.cookie-banner{grid-template-columns:1fr;gap:14px;padding:18px;bottom:8px;left:8px;right:8px}.cookie-actions{align-items:stretch}.cookie-banner p{font-size:13px}}

/* ME-K060/061: provisional mark; yellow Europe is a local colour proposal. */
.nav .logo{display:inline-flex;align-items:center;gap:.36em}
.nav .brand-mark{display:block;width:1.25em;height:1.25em;flex:none}
.nav .wordmark-text{font-weight:600}
.nav .wordmark-region{display:inline-block;width:2.908em;height:1.05em;vertical-align:-.25em}
