@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/manrope0.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/manrope1.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/manrope2.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/manrope3.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/manrope4.ttf) format('truetype');
}

@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/instrument-serif0.ttf) format('truetype');
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/instrument-serif1.ttf) format('truetype');
}

:root{--ink:#252226;--night:#231f22;--paper:#faf8f7;--white:#fff;--line:#e5dddf;--copper:#b71932;--muted:#696269;--soft:#f1ebea;--sans:'Manrope',Arial,sans-serif;--serif:'Instrument Serif',Georgia,serif;--space:clamp(22px,5.2vw,90px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);font:15px/1.7 var(--sans);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img,svg{max-width:100%}img{display:block;width:100%;object-fit:cover}p{margin:0 0 20px}h1,h2,h3,h4{line-height:1.05;margin:0;font-weight:500}h1,h2{font-family:var(--serif)}h1{font-size:clamp(54px,6.3vw,106px);letter-spacing:-.04em}h2{font-size:clamp(38px,4.5vw,72px);letter-spacing:-.035em}h3{font-size:22px;font-weight:600;line-height:1.25}em{font-weight:400;color:var(--copper)}ul{padding-left:22px}li{margin-bottom:8px}:focus-visible{outline:3px solid var(--copper);outline-offset:5px}.wrap{max-width:1520px;margin:auto;padding-left:var(--space);padding-right:var(--space)}.section{padding-top:clamp(60px,8vw,125px);padding-bottom:clamp(60px,8vw,125px)}.eyebrow{font:600 11px/1.7 var(--sans);letter-spacing:.19em;text-transform:uppercase;display:flex;gap:12px;align-items:center;margin-bottom:22px}.eyebrow::before{content:'';width:25px;height:1px;background:currentColor}.muted,.small{color:var(--muted)}.small{font-size:12px}.text-link{display:inline-flex;gap:32px;align-items:center;padding:10px 0;border-bottom:1px solid currentColor;font-size:13px;font-weight:700}.text-link:hover{color:var(--copper)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:20px;background:var(--ink);color:white;padding:16px 23px;font-size:12px;letter-spacing:.02em;font-weight:700;border:1px solid var(--ink);border-radius:3px;min-height:51px}.btn:hover{background:var(--copper);border-color:var(--copper)}.btn.light{background:var(--white);color:var(--ink);border-color:var(--white)}.btn.outline{background:transparent;color:var(--ink);border-color:var(--line)}.btn.outline:hover{border-color:var(--ink)}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-top:32px}.skip{position:absolute;top:-90px;left:20px;z-index:200;background:white;padding:12px}.skip:focus{top:10px}.topline{font-size:10px;letter-spacing:.1em;border-bottom:1px solid var(--line);text-transform:uppercase}.topline .wrap{display:flex;justify-content:space-between;align-items:center;padding-top:10px;padding-bottom:10px}.topline a{font-weight:700}.header{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:1px solid var(--line)}.head{height:91px;display:flex;gap:25px;align-items:center;justify-content:space-between}.brand{display:inline-flex;gap:13px;align-items:center;flex-shrink:0}.brand svg{width:48px;height:50px}.brand-word{font-size:26px;font-weight:700;letter-spacing:.02em;line-height:1.05}.brand-word span{font-size:10px;display:block;font-weight:600;letter-spacing:.29em;margin-top:8px}.nav{display:flex;gap:26px;align-items:center}.nav a{font-size:11px;font-weight:700;white-space:nowrap}.nav a:hover{color:var(--copper)}.head-tools{display:flex;gap:20px;align-items:center}.phone{display:flex;gap:9px;align-items:center;font-size:12px;white-space:nowrap}.phone svg{width:16px;height:16px}.menu-toggle{display:none;border:1px solid var(--line);background:transparent;width:44px;height:44px;border-radius:3px}.hero{display:grid;grid-template-columns:1fr 1.14fr;gap:6vw;padding-top:60px;padding-bottom:55px;align-items:center}.hero-copy>p:not(.eyebrow){max-width:390px;margin-top:28px;color:var(--muted);font-size:14px}.hero .eyebrow{font-size:10px}.hero-visual{position:relative;min-width:0}.hero-image{height:610px;object-position:55% center}.hero-visual figure{margin:0;position:relative}.hero-caption{position:absolute;bottom:0;left:0;right:0;background:var(--ink);color:#fff;padding:25px 28px;display:flex;justify-content:space-between;align-items:center;gap:15px}.hero-caption strong{font-weight:500;line-height:1.45;font-size:13px}.hero-caption small{font-size:9px;letter-spacing:.1em;text-transform:uppercase;text-align:right;color:#ccd0d3}.stamp{position:absolute;right:-22px;top:-24px;background:var(--paper);border:1px solid var(--copper);border-radius:50%;width:100px;height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;z-index:1;color:var(--copper)}.stamp span{font-size:28px;font-family:var(--serif)}.stamp small{font-size:7px;letter-spacing:.15em;text-transform:uppercase}.hero-base{border-top:1px solid var(--line);padding:20px 0 0;margin-top:34px;display:flex;gap:23px;align-items:center}.hero-base span{font-size:10px;font-weight:600;color:var(--muted)}.hero-base svg{width:80px;height:35px}.disciplines{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:35px}.discipline{padding:28px 36px 28px 0;display:flex;gap:23px;align-items:flex-start}.discipline+.discipline{padding-left:36px;border-left:1px solid var(--line)}.discipline b{font-size:11px;color:var(--copper);font-weight:500}.discipline strong{font-size:12px;text-transform:uppercase;letter-spacing:.09em;display:block;font-weight:600}.discipline p{font-size:12px;color:var(--muted);margin:8px 0 0}.dark{background:var(--night);color:var(--white)}.dark .muted,.dark .small{color:#bbc6cc}.dark em{color:#e0a0ad}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:45px;margin-bottom:50px}.section-heading h2{max-width:760px}.section-heading>p{max-width:300px;font-size:13px;color:var(--muted);margin-bottom:0}.dark .section-heading>p{color:#bbc6cc}.service-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.highlight img{height:285px}.highlight .number{display:block;color:#e0a0ad;font-size:11px;margin-top:25px;margin-bottom:13px;letter-spacing:.06em}.highlight p{font-size:13px;color:#bbc6cc;margin-top:17px;max-width:350px}.highlight h3{font-size:24px}.catalogue{margin-top:70px;border-top:1px solid #594b52}.catalogue details{border-bottom:1px solid #594b52;padding:22px 0}.catalogue summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;font-size:16px;font-weight:500;gap:20px}.catalogue summary::after{content:'+';font-size:22px;color:#e0a0ad}.catalogue details[open] summary::after{content:'−'}.catalogue summary::-webkit-details-marker{display:none}.catalogue summary small{font-size:11px;color:#bbc6cc;margin-left:14px}.catalogue-links{display:grid;grid-template-columns:repeat(3,1fr);gap:0 28px;margin-top:25px}.catalogue-links a{font-size:12px;padding:13px 0;border-bottom:1px solid #594b52;display:flex;justify-content:space-between;gap:12px}.catalogue-links a:hover{color:#e0a0ad}.method{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}.method-intro p{max-width:440px;margin-top:25px;color:var(--muted);font-size:14px}.blueprint{width:100%;max-width:450px;margin-top:45px;border:1px solid var(--line);padding:25px}.steps{border-top:1px solid var(--line)}.step{display:flex;gap:28px;border-bottom:1px solid var(--line);padding:28px 0}.step>b{font-size:12px;color:var(--copper)}.step h3{font-size:17px;margin-bottom:11px}.step p{font-size:13px;color:var(--muted);margin:0}.project-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:28px}.project-grid figure{margin:0}.project-grid img{height:310px}.project-grid figure:first-child img{height:390px}.project-grid figcaption{font-size:16px;font-weight:600;margin-top:18px}.project-grid figcaption small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:7px}.project-grid figure:nth-child(2){padding-top:75px}.project-grid figure:nth-child(3){padding-top:35px}.group-section{background:var(--soft)}.group-box{display:grid;grid-template-columns:1.1fr 1fr;gap:10vw;align-items:center}.group-box .group-word{font-size:12px;letter-spacing:.15em;text-transform:uppercase;margin-top:30px}.group-box .group-word strong{font-size:26px;display:block;letter-spacing:.04em}.group-box p{color:var(--muted);font-size:14px}.group-points{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-top:28px;border-top:1px solid #c9cdc8;margin-top:28px}.group-points strong{font-size:12px;display:block;margin-bottom:6px}.group-points span{font-size:11px;color:var(--muted)}.areas{display:grid;grid-template-columns:1.05fr 1fr;gap:8vw}.searchbox{position:relative;margin-top:30px}.searchbox input{width:100%;background:white;border:1px solid var(--line);padding:17px 50px 17px 20px;font-size:14px;border-radius:3px}.searchbox label{display:block;font-size:11px;font-weight:600;margin-bottom:9px}.searchbox .search-icon{position:absolute;right:18px;top:51px;width:18px;pointer-events:none}.search-results{position:absolute;top:100%;left:0;right:0;z-index:15;background:white;box-shadow:0 14px 30px #231f2220;max-height:330px;overflow:auto;list-style:none;padding:0;margin:4px 0 0}.search-results a,.search-results li.no-results{display:block;padding:12px 18px;font-size:12px;border-bottom:1px solid var(--line)}.search-results a:hover{background:var(--paper);color:var(--copper)}.search-status{font-size:11px;min-height:21px;margin-top:10px;color:var(--muted)}.area-row{padding:25px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.area-row:first-child{border-top:1px solid var(--line)}.area-row .dept{font:36px/1 var(--serif);color:var(--copper);min-width:55px}.area-row h3{font-size:18px;margin-bottom:8px}.area-row p{font-size:12px;margin:0;color:var(--muted)}.area-row>span:last-child{font-size:22px}.preparer{border-top:1px solid var(--line)}.prepare-box{display:grid;grid-template-columns:.85fr 1.15fr;gap:7vw}.prepare-box>div>p{color:var(--muted);font-size:13px;max-width:370px;margin-top:25px}.project-form-builder{border:1px solid var(--line);padding:35px;background:white}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:600}.field input,.field select,.field textarea{padding:13px 14px;border:1px solid var(--line);width:100%;background:var(--paper);border-radius:2px;font-size:12px;min-height:47px}.field textarea{min-height:130px;resize:vertical}.selection-summary{margin-top:25px;border-top:1px solid var(--line);padding-top:18px;color:var(--muted);font-size:12px}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.guide-card{padding:25px 0 25px;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start}.guide-card>span{font-size:10px;color:var(--copper);text-transform:uppercase;letter-spacing:.13em;margin-bottom:17px}.guide-card h3{font-size:19px;line-height:1.35}.guide-card p{font-size:12px;color:var(--muted);margin-top:15px;flex:1}.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw}.faq-item{border-bottom:1px solid var(--line);padding:22px 0}.faq-item:first-child{border-top:1px solid var(--line)}.faq-item summary{display:flex;justify-content:space-between;gap:15px;list-style:none;font-size:14px;font-weight:600;cursor:pointer;line-height:1.6}.faq-item summary::after{content:'+';color:var(--copper);font-size:19px}.faq-item[open] summary::after{content:'−'}.faq-item summary::-webkit-details-marker{display:none}.faq-item p{font-size:13px;color:var(--muted);margin:19px 0 0}.contact-panel{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw}.contact-panel .contact-left>p{font-size:14px;margin-top:25px;color:#bbc6cc;max-width:340px}.contact-details{margin-top:40px}.contact-details a{display:block;font-size:21px;font-family:var(--serif);margin:15px 0}.contact-details small{font-size:10px;color:#bbc6cc}.contact-panel form{padding:35px;background:var(--paper);color:var(--ink);border-radius:3px}.contact-panel .btn{width:100%;margin-top:22px}.consent{display:flex;gap:10px;align-items:flex-start;font-size:11px;margin-top:22px;line-height:1.6}.consent input{margin-top:3px;accent-color:var(--copper);width:16px;height:16px;flex-shrink:0}.consent a{text-decoration:underline}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.form-status{font-size:12px;margin:16px 0 0}.form-status.error{color:#9a331b}.mail-fallback{font-size:11px;margin-top:15px;text-decoration:underline;display:block}.footer{background:var(--night);color:white;border-top:1px solid #594b52}.foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:55px;padding-top:50px;padding-bottom:50px}.footer .brand svg{color:#fff}.foot-top>div>p{max-width:330px;font-size:12px;color:#bbc6cc;margin-top:22px}.foot-top h3{font-size:11px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:20px}.foot-top a:not(.brand){display:block;font-size:11px;color:#bbc6cc;margin:8px 0}.foot-bottom{border-top:1px solid #594b52;padding-top:20px;padding-bottom:20px;display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap;font-size:9px;color:#bbc6cc}.foot-bottom>div{display:flex;gap:24px;flex-wrap:wrap}.breadcrumb{font-size:10px;display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);padding:27px 0}.breadcrumb a:hover{color:var(--copper)}.page-intro{padding-top:30px;padding-bottom:65px;display:grid;grid-template-columns:1.15fr .85fr;gap:7vw;align-items:center}.page-intro h1{font-size:clamp(46px,5.4vw,84px)}.page-intro .lead{font-size:16px;color:var(--muted);margin-top:30px;max-width:600px}.page-intro img{height:375px}.content-layout{display:grid;grid-template-columns:1.7fr .8fr;gap:7vw;align-items:start}.prose{font-size:14px;line-height:1.95;max-width:820px}.prose h2{font-family:var(--sans);font-size:25px;font-weight:600;line-height:1.35;margin:40px 0 20px;letter-spacing:-.01em}.prose h2:first-child{margin-top:0}.prose h3{font-size:18px;margin:30px 0 18px}.prose a{text-decoration:underline;text-underline-offset:3px}.aside{position:sticky;top:120px;background:var(--soft);padding:30px}.aside .eyebrow{font-size:9px}.aside h3{font-size:19px}.aside li{font-size:12px}.aside .btn{width:100%;margin-top:15px}.deliverables{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;list-style:none;padding:0}.deliverables li{padding:16px 0;border-top:1px solid var(--line);font-size:13px;display:flex;gap:10px}.deliverables li::before{content:'↗';color:var(--copper)}.local-context{background:var(--soft);padding:28px;margin:35px 0}.local-context h3{margin-top:0}.local-context p:last-child{margin-bottom:0}.local-points{display:flex;flex-wrap:wrap;gap:12px 25px;font-size:11px}.town-links{display:grid;grid-template-columns:repeat(3,1fr);gap:0 22px}.town-links a{font-size:12px;border-bottom:1px solid var(--line);padding:12px 0;display:flex;justify-content:space-between;gap:10px}.town-links a:hover{color:var(--copper)}.town-links small{color:var(--muted);font-size:10px}.alphabet-group{border-bottom:1px solid var(--line);padding:20px 0}.alphabet-group summary{font-size:17px;font-weight:600;cursor:pointer}.town-services{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.town-service{border-top:1px solid var(--line);padding:23px 0}.town-service h3{font-size:16px}.town-service p{font-size:12px;color:var(--muted);margin-top:12px}.city-spotlight{background:var(--soft);padding:28px;margin-top:35px}.city-spotlight h3{margin-bottom:14px}.mobile-dock{display:none}.notice{background:#efe7d9;border:1px solid #d7bca7;padding:18px;font-size:12px;margin-bottom:25px}.error-page{text-align:center;min-height:55vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px}.error-page p{margin-top:25px}.no-margin{margin:0}.legal{max-width:900px;margin:auto}.intro-small{max-width:650px;color:var(--muted);margin-top:25px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.illustration-note{font-size:10px;color:var(--muted);margin-top:12px}
@media(min-width:1700px){.hero-image{height:650px}.hero{gap:90px}}
@media(max-width:1180px){.head{gap:20px}.nav{gap:16px}.head-tools .phone{display:none}.hero{gap:5vw}.hero-image{height:530px}.hero .actions{gap:12px}.hero .btn{padding:15px 18px}.hero h1{font-size:clamp(52px,6.8vw,88px)}.hero .text-link{gap:15px}.stamp{right:-10px;width:84px;height:84px}.highlight img{height:230px}.project-grid img{height:260px}.project-grid figure:first-child img{height:340px}.catalogue-links{grid-template-columns:1fr 1fr}}
@media(max-width:900px){:root{--space:28px}.head{height:78px}.nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:25px 28px;flex-direction:column;align-items:flex-start;gap:0}.nav.open{display:flex}.nav a{padding:14px 0;width:100%;font-size:14px;border-bottom:1px solid var(--line)}.menu-toggle{display:block}.head-tools{gap:10px}.head-tools>.btn{font-size:10px;padding:12px 15px;min-height:44px}.hero{padding-top:40px;gap:28px}.hero-image{height:510px}.hero-caption{padding:22px 18px}.hero-caption small{display:none}.hero h1{font-size:59px}.hero-copy>p:not(.eyebrow){font-size:13px}.hero .eyebrow{font-size:8px;letter-spacing:.12em}.hero .actions{flex-direction:column;align-items:flex-start}.discipline{gap:16px;padding:22px 15px 22px 0}.discipline+.discipline{padding-left:15px}.discipline strong{font-size:10px}.discipline p{font-size:11px}.section-heading{gap:25px}.service-highlights{gap:19px}.highlight img{height:215px}.highlight h3{font-size:20px}.method{gap:35px}.project-grid{gap:19px}.project-grid img{height:225px}.project-grid figure:first-child img{height:305px}.project-grid figcaption{font-size:13px}.group-box,.areas,.prepare-box,.faq-layout,.contact-panel{gap:40px}.content-layout{grid-template-columns:1.4fr .8fr;gap:30px}.aside{padding:23px}.foot-top{gap:30px}.guide-grid{gap:20px}.guide-card h3{font-size:16px}.contact-panel form,.project-form-builder{padding:25px}.fields{gap:15px}.town-services{grid-template-columns:1fr 1fr}}
@media(max-width:680px){:root{--space:22px}body{padding-bottom:61px;font-size:14px}.topline .wrap{font-size:8px;letter-spacing:.05em}.topline .wrap>span:last-child{display:none}.head{height:72px}.brand svg{width:36px;height:39px}.brand{gap:10px}.brand-word{font-size:22px}.brand-word span{font-size:8px;letter-spacing:.23em;margin-top:7px}.head-tools>.btn{display:none}.hero{grid-template-columns:1fr;gap:40px;padding-top:40px;padding-bottom:35px}.hero h1{font-size:66px;line-height:.99;letter-spacing:-.045em}.hero-copy>p:not(.eyebrow){font-size:13px;max-width:400px;margin-top:24px}.hero .eyebrow{font-size:9px;letter-spacing:.13em;margin-bottom:23px}.hero .actions{flex-direction:row;align-items:center;margin-top:24px;gap:18px}.hero .btn{font-size:11px;padding:14px 19px}.hero .text-link{font-size:11px;gap:15px}.hero-base{margin-top:28px;padding-top:18px}.hero-image{height:350px;object-position:50% 44%}.hero-caption{padding:19px 22px}.hero-caption strong{font-size:11px}.hero-caption small{display:block;font-size:7px}.stamp{width:78px;height:78px;top:-20px;right:12px}.stamp span{font-size:24px}.stamp small{font-size:6px}.disciplines{grid-template-columns:1fr;margin-bottom:0}.discipline,.discipline+.discipline{padding:19px 0;border-left:0;gap:22px}.discipline+.discipline{border-top:1px solid var(--line)}.discipline strong{font-size:11px}.discipline p{font-size:11px;margin-top:5px}.section-heading{flex-direction:column;align-items:flex-start;gap:24px;margin-bottom:35px}.section-heading>p{max-width:400px;font-size:13px}.service-highlights{grid-template-columns:1fr;gap:40px}.highlight img{height:260px}.highlight p{max-width:430px}.highlight .number{margin-top:20px}.highlight h3{font-size:24px}.catalogue{margin-top:45px}.catalogue summary{font-size:14px}.catalogue summary small{font-size:9px;margin-left:6px}.catalogue-links{grid-template-columns:1fr;gap:0}.method,.group-box,.areas,.prepare-box,.faq-layout,.contact-panel{grid-template-columns:1fr;gap:38px}.method-intro p{font-size:13px}.blueprint{margin-top:30px}.step{gap:22px;padding:23px 0}.project-grid{grid-template-columns:1fr;gap:28px}.project-grid figure:nth-child(2),.project-grid figure:nth-child(3){padding-top:0}.project-grid img,.project-grid figure:first-child img{height:290px}.project-grid figcaption{font-size:16px}.group-box .group-word strong{font-size:23px}.group-box p{font-size:13px}.area-row{padding:22px 0}.prepare-box .project-form-builder{padding:23px}.fields{grid-template-columns:1fr;gap:18px}.field.full{grid-column:auto}.guide-grid{grid-template-columns:1fr;gap:0}.guide-card h3{font-size:20px}.faq-item summary{font-size:13px}.contact-panel form{padding:23px}.contact-details{margin-top:28px}.contact-details a{font-size:25px}.foot-top{grid-template-columns:1fr 1fr;gap:30px;padding-top:40px;padding-bottom:35px}.foot-top>div:first-child{grid-column:1/-1}.foot-bottom{font-size:9px;gap:17px}.mobile-dock{display:grid;grid-template-columns:.9fr 1.1fr;position:fixed;bottom:0;left:0;right:0;z-index:45;background:var(--paper);border-top:1px solid var(--line);min-height:60px;padding-bottom:env(safe-area-inset-bottom)}.mobile-dock a{display:flex;justify-content:center;align-items:center;gap:9px;padding:18px 10px;font-size:11px;font-weight:700}.mobile-dock a:last-child{background:var(--ink);color:white}.mobile-dock svg{width:17px;height:17px}.page-intro{grid-template-columns:1fr;gap:30px;padding-top:18px;padding-bottom:45px}.page-intro h1{font-size:48px}.page-intro .lead{font-size:14px;margin-top:23px}.page-intro img{height:260px}.content-layout{grid-template-columns:1fr;gap:35px}.aside{position:static}.prose{font-size:13px}.prose h2{font-size:22px}.deliverables{grid-template-columns:1fr}.town-links,.town-services{grid-template-columns:1fr}.local-context{padding:22px}.breadcrumb{font-size:9px;padding:22px 0;gap:7px}.town-service p{margin-bottom:13px}.town-service h3{font-size:17px}.group-points{gap:18px}.contact-left h2{max-width:400px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* ALP Ingénierie — identité rouge / anthracite, octobre 2026. */
:root{--ink:#252226;--night:#231f22;--paper:#faf8f7;--line:#e5dddf;--copper:#b71932;--muted:#696269;--soft:#f1ebea;--space:clamp(22px,5.2vw,90px)}
body{font-size:15px;line-height:1.75;background:var(--paper)}
h1,h2{font-family:var(--sans);font-weight:600;letter-spacing:-.055em;line-height:1.1}
h1{font-size:clamp(44px,5.4vw,80px)}h2{font-size:clamp(34px,3.8vw,58px)}
h1 em,h2 em{font-family:var(--serif);font-weight:400;letter-spacing:-.015em}
.eyebrow{color:var(--copper);font-size:10px;letter-spacing:.16em;font-weight:700}
.eyebrow::before{height:2px;width:24px}.section{padding-top:clamp(58px,7vw,102px);padding-bottom:clamp(58px,7vw,102px)}
.btn{background:var(--copper);border-color:var(--copper);padding:16px 24px;font-size:12px;border-radius:2px;transition:background .2s,transform .2s}
.btn:hover{background:#8f1426;border-color:#8f1426;transform:translateY(-2px)}
.btn.outline{background:transparent;color:var(--ink);border-color:var(--line)}
.text-link{gap:22px;font-size:12px}.topline{background:var(--night);color:#e9e2e5;border:0;letter-spacing:.09em}
.topline .wrap{padding-top:8px;padding-bottom:8px}.header{background:#fff;border-color:#ebe6e8;box-shadow:0 4px 18px #231f2205}
.head{height:104px;gap:28px}.brand{display:inline-flex;line-height:1}.brand .brand-logo{width:204px;height:77px;object-fit:contain}
.nav{gap:26px}.nav a{font-size:12px;font-weight:600}.nav a:hover{color:var(--copper)}
.phone{font-weight:600;font-size:11px}.head-tools{gap:22px}.head-tools .btn{font-size:11px;padding:14px 19px}
.menu-toggle{font-size:21px;background:#faf8f7;border-color:var(--line);color:var(--ink)}
.hero{position:relative;display:block;overflow:hidden;isolation:isolate;padding:0;background:var(--night);color:#fff}
.hero-backdrop,.hero-shade{position:absolute;inset:0;z-index:-1}.hero-backdrop img{width:100%;height:100%;object-fit:cover;object-position:center 50%}
.hero-shade{background:linear-gradient(90deg,rgba(25,22,25,.96) 0%,rgba(25,22,25,.82) 32%,rgba(25,22,25,.34) 61%,rgba(25,22,25,.06) 100%)}
.hero-inner{position:relative;padding-top:70px;padding-bottom:72px;min-height:624px}
.hero-copy{max-width:575px}.hero .eyebrow{color:#f0bbc4;font-size:10px;letter-spacing:.15em;margin-bottom:25px}
.hero h1{font-size:clamp(62px,6vw,92px);letter-spacing:-.06em;line-height:1.03;font-weight:500}
.hero h1 em{font-size:1.18em;line-height:.94;color:#fff}
.hero-copy>p:not(.eyebrow){color:#ddd7dc;font-size:14px;line-height:1.8;max-width:440px;margin-top:26px;margin-bottom:0}
.hero .actions{margin-top:30px;gap:26px;flex-direction:row;align-items:center}.hero .text-link{color:#fff;font-size:12px;font-weight:500;border-color:#ffffff50}
.hero .text-link:hover{color:#f3bcc6}.hero-meta{display:flex;gap:12px;align-items:center;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#ddd7dc;margin-top:30px}
.hero-meta span:first-child{width:6px;height:6px;background:#db304a;border-radius:50%}
.hero-note{position:absolute;right:var(--space);bottom:46px;max-width:238px;border-left:2px solid #fff;padding:18px 20px;background:rgba(25,22,25,.72);backdrop-filter:blur(5px)}
.hero-note strong{display:block;font-family:var(--serif);font-size:27px;line-height:1.13;font-weight:400}.hero-note small{display:block;color:#e4dfe2;margin-top:13px;font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.disciplines-wrap{background:#fff;border-bottom:1px solid var(--line)}.disciplines{border:0;margin-bottom:0;gap:28px}
.discipline{position:relative;padding:27px 0;gap:18px;align-items:center;min-height:118px}.discipline+.discipline{padding-left:28px}
.discipline b{border:1px solid #ead9dd;background:#fbf5f6;color:var(--copper);width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;font-size:11px;font-weight:700}
.discipline strong{font-size:12px;text-transform:none;letter-spacing:0;font-weight:700}.discipline p{font-size:11px;margin-top:5px}.discipline::after{content:'↗';position:absolute;right:0;top:29px;font-size:16px;color:var(--copper)}
.discipline:hover strong{color:var(--copper)}.expertise-section{background:#f5f0ef}
.section-heading{margin-bottom:42px}.section-heading>p{font-size:13px;line-height:1.8;max-width:330px}
.service-highlights{gap:24px}.highlight{background:#fff;padding:0 25px 26px;border:1px solid #ebe2e4;border-bottom:3px solid var(--copper)}
.highlight img{width:calc(100% + 50px);max-width:none;margin:0 -25px;height:230px}
.highlight .number{color:var(--copper);font-size:10px;font-weight:700;letter-spacing:.13em;margin:24px 0 14px}
.highlight h3{font-size:21px;line-height:1.35;letter-spacing:-.025em}.highlight p{font-size:12px;line-height:1.9;color:var(--muted);margin-top:15px;max-width:none}
.highlight .text-link{font-size:11px}.catalogue{border-color:#d8cccf;margin-top:44px}.catalogue details{border-color:#d8cccf;padding:20px 0}
.catalogue summary{font-size:15px;font-weight:600}.catalogue summary::after{color:var(--copper)}.catalogue summary small{color:var(--muted)}
.catalogue-links a{border-color:var(--line);font-size:12px}.catalogue-links a:hover{color:var(--copper)}
.method{gap:7vw;align-items:start}.method-intro p{font-size:13px;line-height:1.9}.blueprint{background:#f6f1f1;padding:24px;border-color:#e6dade}
.steps{border-top:0}.step{position:relative;border:1px solid var(--line);border-left:3px solid var(--copper);padding:25px;gap:20px;background:#fff;margin-bottom:14px}
.step>b{font-size:12px;font-weight:700}.step h3{font-size:16px;line-height:1.4}.step p{font-size:12px;line-height:1.8}
.project-grid{grid-template-columns:1.25fr 1fr .8fr;gap:24px}.project-grid figure:first-child img{height:340px}.project-grid img{height:285px}
.project-grid figure:nth-child(2){padding-top:48px}.project-grid figure:nth-child(3){padding-top:16px}.project-grid figcaption{font-size:15px;letter-spacing:-.02em}
.group-section{background:#eee7e7;border-top:1px solid #e0d5d8;border-bottom:1px solid #e0d5d8}.group-box{gap:8vw}.group-box .group-word strong{font-size:23px;color:var(--ink)}
.group-points strong{color:var(--ink)}.area-row .dept{font-family:var(--sans);font-weight:500;font-size:32px}.area-row{padding:26px 0}
.area-row:hover h3,.area-row:hover>span:last-child{color:var(--copper)}.searchbox input{background:#fff;border-color:#d9ccd0;border-radius:2px}
.project-form-builder{background:#fff;box-shadow:0 12px 40px #231f2206;border-top:3px solid var(--copper)}
.field input,.field select,.field textarea{background:#fff;border-color:#ded5d8;border-radius:2px;font-size:13px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--copper);outline:1px solid var(--copper);outline-offset:0}
.field label{font-size:11px}.guide-card{background:#fff;border:1px solid var(--line);padding:26px}.guide-grid{gap:22px}.guide-card h3{font-size:17px;line-height:1.45;letter-spacing:-.02em}
.faq-item summary{font-size:13px;line-height:1.7}.dark em{color:#f0b3be}.dark .eyebrow{color:#f0b3be}
.contact-panel form{background:#faf8f7;padding:34px;border-top:3px solid var(--copper);border-radius:0}.contact-panel{gap:7vw}
.contact-details a{font-family:var(--sans);font-size:19px;font-weight:500}.contact-details a:hover{color:#f0b3be}
.footer{background:#1d1a1d;border-color:#41343b}.footer .brand .brand-logo{width:228px;height:86px}.foot-top{padding-top:47px;padding-bottom:45px}
.foot-top>div>p{line-height:1.9;margin-top:18px}.foot-top a:not(.brand):hover,.foot-bottom a:hover{color:#fff}.foot-bottom{border-color:#41343b}
.page-intro{padding-top:24px;padding-bottom:65px;gap:6vw}.page-intro h1{font-size:clamp(38px,4.3vw,65px);letter-spacing:-.05em}
.page-intro .lead{font-size:14px;line-height:1.9}.page-intro img{height:360px}.page-intro>div:last-child{position:relative}
.page-intro>div:last-child::after{content:'';display:block;position:absolute;bottom:-8px;left:0;height:3px;width:72px;background:var(--copper)}
.aside{background:#fff;border:1px solid var(--line);border-top:3px solid var(--copper)}.local-context,.city-spotlight{border-left:3px solid var(--copper);background:#f1e9eb}
.prose h2{letter-spacing:-.025em}.breadcrumb{font-size:11px}.deliverables li::before{color:var(--copper)}.town-service{background:#fff;border:1px solid var(--line);border-top:2px solid var(--copper);padding:22px}
.mobile-dock a:last-child{background:var(--copper)}
@media(min-width:1700px){.hero-inner{min-height:680px;padding-top:85px;padding-bottom:90px}}
@media(max-width:1180px){.head{height:96px}.brand .brand-logo{width:188px;height:71px}.nav{gap:18px}.nav a{font-size:11px}.head-tools{gap:14px}.hero-inner{min-height:610px}.hero h1{font-size:76px}.hero-note{right:28px}.highlight img{height:210px}}
@media(max-width:900px){.head{height:88px}.brand .brand-logo{width:174px;height:66px}.nav{background:#fff;padding:16px 28px;gap:0}.nav a{font-size:14px;padding:16px 0}.hero-inner{min-height:605px;padding-top:65px;padding-bottom:64px}.hero h1{font-size:72px}.hero-copy{max-width:510px}.hero-shade{background:linear-gradient(90deg,#191619ef,#191619bc 55%,#19161940)}.hero-note{display:none}.discipline{gap:12px}.discipline+.discipline{padding-left:18px}.discipline b{width:31px;height:31px}.discipline strong{font-size:11px}.discipline::after{display:none}.disciplines{gap:18px}.highlight{padding-left:18px;padding-right:18px}.highlight img{width:calc(100% + 36px);margin:0 -18px;height:185px}.highlight h3{font-size:18px}.highlight p{font-size:11px}.project-grid{gap:20px}.project-grid img{height:230px}.project-grid figure:first-child img{height:300px}.guide-card{padding:22px}.page-intro img{height:300px}.step{padding:22px}}
@media(max-width:680px){.topline .wrap{font-size:8px}.head{height:83px}.brand .brand-logo{width:176px;height:66px}.head-tools>.btn{display:none}.menu-toggle{width:43px;height:43px}.hero-inner{min-height:575px;padding-top:50px;padding-bottom:50px}.hero h1{font-size:clamp(54px,14vw,78px);line-height:1.05}.hero .eyebrow{font-size:8px;letter-spacing:.09em;gap:8px;line-height:1.7;margin-bottom:24px;max-width:290px}.hero .eyebrow::before{width:15px;flex-shrink:0}.hero-copy>p:not(.eyebrow){font-size:12px;line-height:1.9;max-width:360px;margin-top:22px}.hero-shade{background:linear-gradient(90deg,#191619e8,#191619b8 66%,#1916197f)}.hero-backdrop img{object-position:58% center}.hero .actions{margin-top:26px;gap:20px}.hero .btn{padding:14px 18px;font-size:11px}.hero .text-link{font-size:10px;gap:12px}.hero-meta{font-size:9px;margin-top:26px}.disciplines{grid-template-columns:1fr;gap:0}.discipline,.discipline+.discipline{min-height:83px;padding:18px 0;gap:18px}.discipline b{width:34px;height:34px}.discipline strong{font-size:13px}.discipline p{font-size:11px}.discipline::after{display:block;top:26px}.highlight{padding:0 23px 26px}.highlight img{width:calc(100% + 46px);margin:0 -23px;height:250px}.highlight h3{font-size:21px}.highlight p{font-size:12px}.service-highlights{gap:28px}.catalogue summary{font-size:13px}.catalogue summary small{font-size:9px;display:block;margin:4px 0 0}.method{gap:27px}.step{margin-bottom:12px;padding:23px 20px}.project-grid{grid-template-columns:1fr;gap:30px}.project-grid figure:nth-child(2),.project-grid figure:nth-child(3){padding-top:0}.project-grid img,.project-grid figure:first-child img{height:280px}.guide-grid{gap:15px}.guide-card h3{font-size:18px}.contact-panel form{padding:23px}.contact-details a{font-size:18px}.contact-left h2{font-size:40px}.footer .brand .brand-logo{width:211px;height:80px}.page-intro h1{font-size:39px;line-height:1.14}.page-intro{padding-bottom:45px}.page-intro img{height:270px}.page-intro .lead{font-size:13px}.group-box .group-word strong{font-size:22px}.project-form-builder{padding:23px}.foot-top{gap:28px}.foot-top a:not(.brand){font-size:11px;overflow-wrap:anywhere}.mobile-dock a{font-size:11px}.town-service{padding:22px}.prose h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){.btn{transition:none}.btn:hover{transform:none}}
