.homepage{--paper:#f1f0e7;--ink:#123027;--muted:#5d6b61;--gold:#bd9e45;background:var(--paper);color:var(--ink);overflow:hidden}
.homepage *{box-sizing:border-box}
.section-pad{padding:100px var(--page-gutter)}
.homepage h2{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(42px,4.3vw,76px);line-height:1.04;letter-spacing:-.025em;margin:0}
.homepage h2 em{font-weight:400;color:#637365}
.homepage p{font-size:16px;line-height:1.75}
.homepage img{display:block;width:100%;object-fit:cover}
.homepage figure{margin:0}
.homepage button{cursor:pointer}
.homepage a:focus-visible,.homepage button:focus-visible,.homepage summary:focus-visible,.project-strip:focus-visible{outline:2px solid #b59537;outline-offset:5px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:38px}
.homepage .section-kicker,.micro-label,.project-tag,.service-tags{font-size:10px;line-height:1.6;letter-spacing:.2em;font-weight:600}
.homepage .section-kicker{margin:0 0 30px}.section-heading .section-kicker{margin:0}
.micro-label{color:var(--muted)}
.story-heading{display:grid;grid-template-columns:1.25fr .75fr;gap:10%;align-items:end;margin-bottom:68px}
.story-heading p{max-width:430px;margin:0 0 7px;color:var(--muted)}
.story-heading .project-tag{margin-top:32px}
.project-tag{display:inline-block;border-top:1px solid #a6aea0;padding-top:14px}
.stage-marquee{display:flex;align-items:flex-start;min-height:570px;margin-inline:clamp(0px,1.2vw,20px);padding-top:10px}
.stage-card{--stage-border:rgba(255,255,255,.96);--stage-depth:drop-shadow(14px 18px 22px rgba(15,31,24,.14));position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;overflow:hidden;background:#f8f7f0;color:var(--ink);box-shadow:0 22px 46px rgba(38,52,43,.13);filter:var(--stage-depth)}
.stage-card-existing{z-index:1;flex:1 1 0;height:440px;margin:92px -9px 0 0;clip-path:polygon(0 5.5%,100% 0,100% 100%,0 100%)}
.stage-card-progress{--stage-depth:drop-shadow(18px 20px 26px rgba(15,31,24,.21));z-index:2;flex:1.06 1 0;height:482px;margin:50px -9px 0 0;clip-path:polygon(0 4%,100% 0,100% 100%,0 100%)}
.stage-card-completed{--stage-depth:drop-shadow(0 22px 30px rgba(15,31,24,.2));z-index:3;flex:1.62 1 0;height:540px;margin:0;clip-path:polygon(0 2.8%,100% 0,100% 100%,0 100%)}
.stage-outline{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none;overflow:visible;fill:none;stroke:var(--stage-border);stroke-width:4;stroke-linejoin:miter;stroke-linecap:square;transition:stroke 190ms ease}
.stage-outline polygon{vector-effect:non-scaling-stroke;shape-rendering:geometricPrecision}
.stage-card:hover{--stage-border:#b48e2d}
.stage-card-media{position:relative;display:block;min-height:0;overflow:hidden;background:#d8ddd1}
.stage-card-existing::after,.stage-card-progress::after{content:"";position:absolute;inset:0 0 0 auto;width:42px;z-index:4;pointer-events:none;background:linear-gradient(270deg,rgba(15,31,24,.29),rgba(15,31,24,.11) 48%,transparent)}
.stage-card-progress::after{width:48px;background:linear-gradient(270deg,rgba(15,31,24,.34),rgba(15,31,24,.13) 50%,transparent)}
.stage-card-progress::before,.stage-card-completed::before{content:"";position:absolute;left:0;width:2px;z-index:6;pointer-events:none;background:#b48e2d;box-shadow:4px 0 12px rgba(180,142,45,.55);opacity:0;transition:opacity 190ms ease}
.stage-card-progress::before{top:42px;bottom:0}
.stage-card-completed::before{top:50px;bottom:8px}
.stage-card-existing:hover + .stage-card-progress::before,.stage-card-progress:hover + .stage-card-completed::before{opacity:1}
.stage-card-media img{height:100%;object-position:center;transform:scale(1.015)}
.stage-card:nth-child(2) .stage-card-media img{object-position:52% center}
.stage-card:nth-child(3) .stage-card-media img{object-position:56% 36%;transform:scale(1)}
.stage-card-copy{display:grid;grid-template-columns:62px minmax(0,1fr);gap:22px;min-height:126px;padding:23px 25px;background:rgba(248,247,240,.98)}
.stage-index{font-family:"Instrument Serif",Georgia,serif;font-size:34px;line-height:1;color:#b48e2d;border-right:1px solid #d4d0bd;padding-right:20px}
.stage-card-copy strong{display:block;font-family:"Instrument Serif",Georgia,serif;font-size:27px;line-height:1;font-weight:400}
.stage-card-copy small{display:block;max-width:360px;margin-top:8px;color:var(--muted);font-size:13px;line-height:1.45}
.stage-rail{display:grid;grid-template-columns:auto 1fr;gap:55px;align-items:center;margin-top:42px;color:var(--muted)}
.stage-rail>span{font-size:10px;font-weight:600;letter-spacing:.2em;white-space:nowrap}
.stage-rail>div{position:relative;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #a9b3a5}
.stage-rail>div>span{position:relative;min-height:58px;padding:15px 0 0;text-align:center;color:var(--ink);font-size:12px}
.stage-rail>div>span i{position:absolute;top:-7px;left:50%;width:14px;height:14px;border:1px solid #6f8173;border-radius:50%;background:var(--paper);transform:translateX(-50%)}
.stage-rail>div>span.is-current{color:#9b7621}.stage-rail>div>span.is-current i{background:#c4a344;border-color:#c4a344;transform:translateX(-50%) scale(1.15)}

.trade-ribbon{display:flex;align-items:center;background:#d8c883;color:#16362a;border-block:1px solid #bdac64;padding:24px 0;gap:20px}.ribbon-window{overflow:hidden;flex:1}.ribbon-track{display:flex;width:max-content;animation:trades-scroll 42s linear infinite}.ribbon-track>span{flex:none;font-size:13px;letter-spacing:.19em;font-weight:600;white-space:nowrap}.ribbon-track i{font-style:normal;padding:0 40px;font-size:20px}.ribbon-pause{margin-right:25px;border:1px solid #16362a66;background:transparent;color:inherit;width:44px;height:44px}.trade-ribbon.is-paused .ribbon-track,.trade-ribbon:hover .ribbon-track,.trade-ribbon:focus-within .ribbon-track{animation-play-state:paused}@keyframes trades-scroll{to{transform:translateX(-50%)}}
.services-section{background:#fafaf4}.services-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:10%}.services-intro>p{max-width:400px;color:var(--muted);margin:25px 0 35px}.service-directory{padding-top:8px}.service-directory details{border-top:1px solid #bec7b9}.service-directory details:last-child{border-bottom:1px solid #bec7b9}.service-directory summary{list-style:none;display:flex;align-items:center;gap:18px;padding:27px 0;cursor:pointer;font-size:clamp(15px,1.4vw,23px);line-height:1.4}.service-directory summary::-webkit-details-marker{display:none}.service-directory summary>span{font-size:10px;color:var(--muted)}.service-directory summary b{font-size:22px;font-weight:400;margin-left:auto}.service-directory details[open] summary b{transform:rotate(45deg)}.service-directory details[open] summary{color:#7c662b}.service-directory details p{margin:0 0 18px 32px;color:var(--muted);max-width:450px;font-size:14px}.service-tags{font-size:9px;margin:0 0 29px 32px;letter-spacing:.13em}
.work-section{padding-right:0}

.process-section{background:#fafaf4}.process-section h2{font-size:clamp(38px,3.6vw,62px)}.process-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px;margin-top:55px}.process-steps article{border-top:1px solid #a9b4a1;padding-top:22px}.process-steps article>span{font-family:"Instrument Serif",Georgia,serif;font-size:28px;color:#8c7735}.process-steps h3{font-family:"Instrument Serif",Georgia,serif;font-size:33px;font-weight:400;margin:28px 0 10px}.process-steps p{font-size:14px;color:var(--muted);margin:0}
.contact-section{background:#dce1cf}.contact-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:10%;align-items:end}.contact-layout p{max-width:390px;color:var(--muted);margin:0 0 30px}.contact-phone{display:flex;justify-content:space-between;gap:20px;font-size:clamp(24px,2.4vw,38px);letter-spacing:-.04em;border-bottom:1px solid #819076;padding-bottom:20px}.contact-layout .micro-label{display:block;margin-top:15px;font-size:9px}.site-footer{padding:38px var(--page-gutter);display:flex;align-items:center;justify-content:space-between;gap:30px;background:#0f291f;color:#eeefdf}.footer-brand{letter-spacing:.22em;font-size:23px}.site-footer p{font-size:12px;color:#abbba8}
@media(max-width:1000px){.section-pad{padding:75px var(--page-gutter)}.story-heading{gap:6%}.services-layout{gap:6%}.work-section{padding-right:0}.process-steps{gap:22px}.contact-layout{gap:5%}}
@media(max-width:600px){.section-pad{padding:60px 24px}.homepage h2{font-size:43px}.section-heading{margin-bottom:28px}.section-heading>.micro-label{display:none}.story-heading,.services-layout,.coordination,.contact-layout{grid-template-columns:1fr;gap:30px}.story-heading{margin-bottom:28px}.story-heading p{font-size:14px}.trade-ribbon{padding:15px 0}.ribbon-track>span{font-size:11px}.ribbon-track i{padding:0 22px}.service-directory summary{font-size:17px}.work-section{padding-right:0}.process-steps{grid-template-columns:1fr 1fr;gap:32px 24px;margin-top:35px}.process-steps h3{margin-top:16px}.process-steps p{font-size:13px}.contact-layout p{font-size:14px}.site-footer{flex-wrap:wrap;padding:35px 24px}.site-footer p{order:3;width:100%;margin:0}}
@media(prefers-reduced-motion:reduce){.ribbon-track{animation:none}.ribbon-window{overflow-x:auto}.ribbon-track>span[aria-hidden]{display:none}.ribbon-pause{display:none}.homepage *{scroll-behavior:auto!important;transition:none!important}}

@media(max-width:1000px) and (min-width:601px){
  .story-heading{grid-template-columns:1.05fr .95fr;gap:6%;margin-bottom:52px}
  .stage-marquee{min-height:505px}
  .stage-card-existing{height:385px;margin-top:80px}
  .stage-card-progress{height:420px;margin-top:45px}
  .stage-card-completed{height:475px;margin-top:0}
  .stage-card-progress::before{top:35px;bottom:0}
  .stage-card-completed::before{top:45px;bottom:10px}
  .stage-card-copy{grid-template-columns:48px minmax(0,1fr);gap:14px;min-height:128px;padding:20px 17px}
  .stage-index{font-size:28px;padding-right:13px}
  .stage-card-copy strong{font-size:23px}
  .stage-card-copy small{font-size:12px}
}

@media(max-width:600px){
  .project-story{padding-inline:0}
  .project-story>.section-heading,.project-story>.story-heading{margin-inline:24px}
  .story-heading{gap:22px;margin-bottom:32px}
  .story-heading p{font-size:14px;margin:0}
  .story-heading .project-tag{margin-top:23px}
  .stage-marquee{min-height:0;margin:0;padding:18px 24px 34px;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .stage-marquee::-webkit-scrollbar{display:none}
  .stage-card,.stage-card:nth-child(2),.stage-card:nth-child(3){flex:0 0 78vw;height:450px;margin:0;scroll-snap-align:center;opacity:1;box-shadow:0 16px 34px rgba(38,52,43,.12)}
  .stage-card-existing{clip-path:polygon(0 5.5%,100% 0,100% 100%,0 100%)}
  .stage-card-progress{--stage-depth:drop-shadow(10px 12px 17px rgba(15,31,24,.18));clip-path:polygon(0 4%,100% 0,100% 100%,0 100%)}
  .stage-card-completed{--stage-depth:drop-shadow(0 14px 20px rgba(15,31,24,.2));flex-basis:88vw;height:485px;clip-path:polygon(0 2.8%,100% 0,100% 100%,0 100%)}
  .stage-card-progress::before{top:0;bottom:0}
  .stage-card-completed::before{top:0;bottom:35px}
  .stage-card-copy{grid-template-columns:46px minmax(0,1fr);gap:14px;min-height:130px;padding:21px 18px}
  .stage-index{font-size:27px;padding-right:13px}
  .stage-card-copy strong{font-size:25px}
  .stage-card-copy small{font-size:12px}
  .stage-rail{grid-template-columns:1fr;gap:18px;margin:12px 24px 0}
  .stage-rail>div{margin-inline:5px}
  .stage-rail>div>span{font-size:10px}
}

/* Fit the complete desktop case study into one viewport at 100% zoom. */
@media(min-width:1001px){
  .project-story{height:100svh;min-height:720px;padding-top:clamp(28px,4svh,46px);padding-bottom:clamp(28px,4svh,46px)}
  .project-story>.section-heading{margin-bottom:16px}
  .project-story>.story-heading{margin-bottom:20px}
  .project-story .story-heading h2{font-size:clamp(48px,3.6vw,60px);line-height:.98}
  .project-story .story-heading p{font-size:14px;line-height:1.6}
  .project-story .story-heading .project-tag{margin-top:18px;padding-top:10px}
  .stage-marquee{--stage-three-height:clamp(390px,52svh,500px);min-height:var(--stage-three-height);padding-top:0}
  .stage-card-existing{height:calc(var(--stage-three-height) - 100px)}
  .stage-card-progress{height:calc(var(--stage-three-height) - 58px)}
  .stage-card-completed{height:var(--stage-three-height)}
  .stage-rail{margin-top:18px}
  .stage-rail>div>span{min-height:40px}
}

/* Section 02: editorial service directory with a live project image. */
.services-section{
  position:relative;
  isolation:isolate;
  height:auto;
  min-height:0;
  padding:clamp(32px,4svh,50px) var(--page-gutter) clamp(42px,5svh,62px);
  overflow:hidden;
  background:
    radial-gradient(circle at 44% 48%,rgba(54,91,70,.22),transparent 33%),
    radial-gradient(circle at 9% 72%,rgba(36,75,57,.18),transparent 30%),
    linear-gradient(112deg,#0a241c 0%,#0d2b21 46%,#0a211a 100%);
  color:#f3f1e5;
}
.services-section::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.13;
  pointer-events:none;
  background-image:repeating-linear-gradient(115deg,transparent 0,transparent 19px,rgba(255,255,255,.018) 20px);
}
.services-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:20px;
  margin-bottom:clamp(20px,3svh,34px);
  color:rgba(231,235,224,.68);
  font-size:9px;
  font-weight:600;
  letter-spacing:.32em;
}
.services-meta span:first-child{color:#f1f0e5;font-size:13px;letter-spacing:.23em}
.services-meta span:last-child::after{content:"";display:inline-block;width:58px;height:1px;margin-left:22px;vertical-align:middle;background:#b99a4d}
.services-layout{
  --services-frame:630px;
  display:grid;
  grid-template-columns:minmax(270px,.88fr) minmax(310px,1.05fr) minmax(390px,1.18fr);
  gap:clamp(24px,2.5vw,46px);
  height:var(--services-frame);
  align-items:stretch;
}
.services-intro{
  display:flex;
  flex-direction:column;
  align-self:stretch;
  min-width:0;
  padding:3px 0 0;
}
.services-intro>.section-kicker{margin:0 0 clamp(22px,3svh,32px);color:rgba(220,227,216,.72);font-size:9px;letter-spacing:.28em}
.services-intro h2{font-size:clamp(44px,3.45vw,64px);line-height:1.02;color:#f8f6ea}
.services-intro h2 em{color:#c6a45d}
.services-lead{max-width:370px;margin:clamp(24px,3.5svh,38px) 0 0;color:rgba(220,226,217,.76);font-size:clamp(14px,1.05vw,17px)!important;line-height:1.7!important}
.service-cta{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  width:min(250px,100%);
  min-height:54px;
  margin-top:clamp(18px,2.5svh,30px);
  padding:0 22px;
  border:1px solid #c8aa60;
  border-radius:2px;
  background:#c8aa60;
  color:#10271f;
  font-size:13px;
  font-weight:650;
  transition:background-color 190ms ease,color 190ms ease,transform 160ms ease;
}
.service-cta span{font-size:21px;transition:transform 190ms ease}
.service-cta:hover{background:#dfc77d}
.service-cta:hover span{transform:translateX(4px)}
.service-cta:active{transform:scale(.985)}
.service-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:auto;padding-top:28px}
.service-facts>span{display:flex;align-items:center;gap:10px;min-width:0;padding:0 14px;border-left:1px solid rgba(200,210,194,.22)}
.service-facts>span:first-child{padding-left:0;border-left:0}
.service-facts svg{width:26px;height:26px;flex:0 0 26px;fill:none;stroke:#c9aa5f;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.service-facts small{color:rgba(226,231,222,.82);font-size:10px;line-height:1.55}
.services-signoff{display:block;margin-top:34px;padding-top:13px;border-top:1px solid rgba(200,210,194,.25);color:rgba(222,228,218,.62);font-size:8px;letter-spacing:.27em}
.service-visual{position:relative;align-self:stretch;min-width:0;height:var(--services-frame);max-height:none;margin:0;overflow:hidden;border:1px solid rgba(221,225,211,.2);background:#132b22}
.service-visual>img{height:100%;object-position:center;transition:opacity 180ms ease,transform 420ms cubic-bezier(.23,1,.32,1)}
.service-visual:hover>img{transform:scale(1.012)}
.service-visual.is-changing>img{opacity:.25}
.service-visual-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,22,17,.94) 0%,rgba(7,22,17,.54) 16%,transparent 42%),linear-gradient(90deg,rgba(7,22,17,.16),transparent 32%);pointer-events:none}
.service-visual figcaption{position:absolute;left:20px;right:135px;bottom:20px;display:grid;gap:7px}
.service-visual figcaption span{font-size:9px;font-weight:700;letter-spacing:.2em}
.service-visual figcaption strong{color:rgba(247,246,237,.84);font-size:13px;font-weight:450;line-height:1.45}
.service-image-controls{position:absolute;right:18px;bottom:18px;display:flex;align-items:center;gap:9px}
.service-image-controls button{display:grid;place-items:center;width:37px;height:37px;padding:0;border:1px solid rgba(239,239,226,.42);border-radius:50%;background:rgba(8,27,20,.55);color:#fff;font-size:18px;transition:border-color 180ms ease,background-color 180ms ease,color 180ms ease}
.service-image-controls button:hover{border-color:#c6a45d;background:#c6a45d;color:#10271f}
.service-image-controls span{min-width:45px;color:#f0ead9;font-size:11px;font-weight:650;letter-spacing:.08em;text-align:center}
.service-directory{display:flex;flex-direction:column;align-self:stretch;min-width:0;width:100%;height:var(--services-frame);border-top:1px solid rgba(198,210,193,.24)}
.service-directory details{display:flex;flex:1 1 0;flex-direction:column;justify-content:center;min-height:0;border-bottom:1px solid rgba(198,210,193,.24);transition:flex-grow 200ms ease,background-color 180ms ease,border-color 180ms ease}
.service-directory details[open]{flex-grow:1.45;border-left:2px solid #c6a45d;background:linear-gradient(90deg,rgba(198,164,93,.13),rgba(198,164,93,.025) 72%,transparent)}
.service-directory summary{display:grid;grid-template-columns:34px minmax(135px,1.08fr) minmax(120px,.88fr) 25px;gap:12px;align-items:center;min-height:72px;padding:clamp(14px,2svh,22px) 10px  clamp(14px,2svh,22px) 3px;list-style:none;cursor:pointer;color:#f3f1e5}
.service-directory summary::-webkit-details-marker{display:none}
.service-directory summary>span{color:rgba(222,227,217,.58);font-size:11px;font-variant-numeric:tabular-nums}
.service-directory summary>strong{font-family:"Instrument Serif",Georgia,serif;font-size:clamp(18px,1.45vw,23px);font-weight:400;line-height:1.08}
.service-directory summary>small{color:rgba(216,224,214,.68);font-size:11px;line-height:1.55}
.service-directory summary>b{display:grid;place-items:center;color:rgba(239,241,231,.66);font-size:21px;font-weight:300}
.service-directory summary>b::before{content:"+"}
.service-directory details[open] summary{color:#d0ae60}
.service-directory details[open] summary>span{color:#d0ae60}
.service-directory details[open] summary>b::before{content:"→"}
.service-directory details>p{max-width:390px;margin:-5px 42px 8px;color:rgba(220,226,216,.7);font-size:11px;line-height:1.55}
.service-directory .service-tags{margin:0 42px 16px;color:rgba(224,228,217,.8);font-size:8px;line-height:1.5;letter-spacing:.16em}

@media(max-width:1100px) and (min-width:1001px){
  .services-layout{grid-template-columns:minmax(245px,.82fr) minmax(280px,.95fr) minmax(360px,1.18fr);gap:20px}
  .service-directory summary{grid-template-columns:29px minmax(125px,1fr) minmax(105px,.8fr) 22px;gap:8px}
  .service-directory summary>small{font-size:10px}
  .service-facts>span{padding-inline:8px;gap:7px}
  .service-facts svg{width:22px;height:22px;flex-basis:22px}
}

@media(max-width:1000px){
  .services-section{height:auto;min-height:0;padding:70px var(--page-gutter);overflow:visible}
  .services-meta{margin-bottom:48px}
  .services-layout{grid-template-columns:1fr;height:auto;gap:48px}
  .services-intro{min-height:540px;padding:0}
  .services-intro h2{font-size:clamp(52px,7vw,72px)}
  .services-lead{max-width:520px}
  .service-facts{max-width:520px;margin-top:auto}
  .service-visual{height:min(74svh,650px);max-height:none}
  .service-directory{display:block;height:auto;margin-top:8px}
  .service-directory details{display:block}
}

@media(max-width:600px){
  .services-section{padding:56px 24px}
  .services-meta{display:none}
  .services-layout{gap:36px}
  .services-intro{min-height:0}
  .services-intro>.section-kicker{margin-bottom:22px}
  .services-intro h2{font-size:46px}
  .services-lead{font-size:14px!important;margin-top:24px}
  .service-cta{width:100%;margin-top:26px}
  .service-facts{margin-top:38px;padding-top:0}
  .service-facts>span{display:grid;justify-items:start;gap:8px;padding:0 8px}
  .service-facts svg{width:23px;height:23px}
  .services-signoff{margin-top:25px}
  .service-visual{height:540px}
  .service-visual figcaption{right:104px}
  .service-image-controls{right:14px;bottom:15px;gap:5px}
  .service-image-controls button{width:34px;height:34px}
  .service-image-controls span{display:none}
  .service-directory summary{grid-template-columns:28px 1fr 22px;gap:10px;padding:20px 6px 20px 0}
  .service-directory summary>small{display:none}
  .service-directory summary>b{grid-column:3}
  .service-directory details>p{margin:0 34px 9px;font-size:11px}
  .service-directory .service-tags{margin:0 34px 18px}
}

/* Condensed editorial type system carried through the full homepage. */
.homepage{
  --gold:#c8a348;
  --display-font:"Barlow Condensed","Arial Narrow",Impact,sans-serif;
  --body-font:"Manrope","Segoe UI",sans-serif;
  font-family:var(--body-font);
}
.homepage h2,
.stage-index,
.stage-card-copy strong,
.service-directory summary>strong,
.project-strip h3,
.craft-sequence figcaption span,
.process-steps article>span,
.process-steps h3{
  font-family:var(--display-font);
}
.homepage h2{
  font-size:clamp(52px,5vw,88px);
  font-weight:700;
  line-height:.9;
  letter-spacing:.005em;
  text-transform:uppercase;
}
.homepage h2 em{
  color:#cba953;
  font-style:normal;
  font-weight:700;
}
.homepage .section-kicker,
.micro-label,
.project-tag,
.service-tags,
.stage-rail>span,
.text-link,
.ribbon-track>span,
.services-meta,
.services-intro>.section-kicker,
.services-signoff,
.service-visual figcaption span,
.service-cta{
  font-family:var(--body-font);
  font-weight:700;
  text-transform:uppercase;
}
.section-heading .section-kicker::after{
  content:"";
  display:inline-block;
  width:42px;
  height:1px;
  margin-left:18px;
  vertical-align:middle;
  background:#b8943c;
}
.stage-index{font-weight:500;letter-spacing:.01em}
.stage-card-copy strong{
  font-size:30px;
  font-weight:600;
  line-height:.95;
  letter-spacing:.015em;
  text-transform:uppercase;
}
.service-directory summary>strong{
  font-size:clamp(21px,1.65vw,27px);
  font-weight:600;
  line-height:.92;
  letter-spacing:.015em;
  text-transform:uppercase;
}
.services-intro h2{font-size:clamp(54px,4.15vw,76px)}
.project-story .story-heading h2{font-size:clamp(55px,4.15vw,72px)}
.project-strip h3,.process-steps h3{
  font-weight:600;
  line-height:.96;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.craft-sequence figcaption span,.process-steps article>span{font-weight:500}
.contact-phone{font-family:var(--display-font);font-weight:600;letter-spacing:.01em;text-transform:uppercase}
.footer-brand{font-family:var(--display-font);font-weight:600;letter-spacing:.16em}
.footer-brand img{display:block;width:168px;height:auto}
.service-cta{letter-spacing:.04em}
.service-directory details[open]{border-left-color:#d2ad50}
.service-directory details[open] summary,
.service-directory details[open] summary>span{color:#dbba62}

@media(max-width:600px){
  .homepage h2{font-size:50px;line-height:.9}
  .services-intro h2{font-size:52px}
  .stage-card-copy strong{font-size:27px}
  .service-directory summary>strong{font-size:22px}
  .footer-brand img{width:145px}
}

/* A compact company portrait between the service offer and coordinated delivery.
   It runs the full width of the page rather than floating as a card on a green
   ground: the band itself is the panel, and the photograph carries on to the
   right edge. The band is a warmer stone than the sections either side of it —
   #services above and #work below are both near-white — so the step in tone is
   what marks it out, helped by a hairline top and bottom. */
.about-section{
  position:relative;
  isolation:isolate;
  padding:0;
  overflow:hidden;
  background:#ebe5d6;
  color:#12372c;
  border-block:1px solid rgba(18,55,44,.17);
}
.about-section::before{
  content:"";
  position:absolute;
  width:430px;
  height:430px;
  left:-165px;
  bottom:-250px;
  border:1px solid rgba(18,55,44,.1);
  border-radius:50%;
  box-shadow:0 0 0 86px rgba(18,55,44,.017);
  pointer-events:none;
}
.about-card{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);
  align-items:stretch;
  width:100%;
  min-height:0;
  margin:0;
  overflow:hidden;
  background:transparent;
  box-shadow:none;
}
.about-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:clamp(44px,4vw,64px) clamp(36px,3.4vw,60px) clamp(44px,4vw,64px) var(--page-gutter);
}
.about-brandline{display:flex;align-items:flex-start;justify-content:space-between;gap:34px}
.about-wordmark{display:block;flex:none;box-sizing:border-box;width:180px;padding:4px 8px;background:#12372c;line-height:0}
.about-wordmark img{display:block;width:100%;height:auto}
.about-motto{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;color:#68756d;font-size:7px;font-weight:500;line-height:1.55;letter-spacing:.25em}
.about-motto i{grid-row:1 / span 3;width:25px;height:1px;margin-top:4px;background:#b28b35}
.about-intro{margin-top:24px;padding-top:0}
.about-section .section-kicker{margin:0 0 11px;color:#b28b35;font-size:8px;letter-spacing:.3em}
.about-section h2{
  /* The house heading: every other h2 and h3 on the site is Barlow Condensed,
     uppercase, 700. This one was the last survivor of an abandoned serif —
     and since "Instrument Serif" is not among the fonts the page loads, it was
     falling all the way through to Georgia, which is why it read as a font
     from somewhere else entirely. Sized at the lower end of the house range,
     because this is a compact band rather than a full section.

     The line break is an explicit <br> in the markup, as it is on the other
     two-line headings across the site, so it lands in the same place whatever
     the font metrics are. max-width is only a safety net below it. */
  max-width:700px;
  color:#12372c;
  font-family:var(--display-font);
  font-size:clamp(38px,3.4vw,54px);
  font-weight:700;
  line-height:.92;
  letter-spacing:.005em;
  text-transform:uppercase;
}
.about-intro>p:last-child{max-width:520px;margin:14px 0 0;color:#56685f;font-size:12px;line-height:1.55}
.about-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:19px;border-block:1px solid rgba(18,55,44,.16)}
.about-facts>span{display:grid;grid-template-columns:38px 1fr;gap:9px;align-items:center;min-height:64px;padding:9px 10px 9px 0}
.about-facts>span+span{padding-left:19px;border-left:1px solid rgba(18,55,44,.16)}
.about-facts i{display:grid;place-items:center;width:34px;height:34px;border:1px solid #bd963f;border-radius:50%}
.about-facts svg{width:17px;height:17px;fill:none;stroke:#12372c;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
/* the same label treatment as the audience strip under the hero, which is the
   same idea — an icon beside a short two-line credential */
.about-facts strong{font-family:var(--display-font);font-size:13.5px;font-weight:700;line-height:1.3;letter-spacing:1.1px;text-transform:uppercase}
.about-cta{display:flex;align-items:center;justify-content:space-between;width:194px;margin-top:17px;padding:12px 16px;border:1px solid #b89139;background:#c5a04e;color:#12372c;font-size:7.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;transition:background-color 190ms ease,color 190ms ease,transform 190ms ease}
.about-cta .icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.55}
.about-photo{position:relative;min-width:0;min-height:clamp(430px,38vw,560px);margin:0;overflow:hidden;background:#1b3e32}
.about-photo>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 18%;filter:saturate(.88) contrast(1.03)}

@media(hover:hover){
  .about-cta:hover{background:#12372c;color:#f5f1e8;transform:translateY(-2px)}
}
@media(max-width:1180px){
  .about-card{grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);min-height:0}
  .about-copy{padding:clamp(36px,4vw,50px) clamp(26px,2.8vw,38px) clamp(36px,4vw,50px) var(--page-gutter)}
  .about-photo{min-height:clamp(380px,40vw,470px)}
  .about-brandline{gap:20px}
  .about-wordmark{width:150px}
  .about-facts>span{grid-template-columns:42px 1fr;gap:9px;padding-right:9px}
  .about-facts>span+span{padding-left:12px}
  .about-facts i{width:38px;height:38px}
  .about-facts strong{font-size:12.5px}
}
@media(max-width:920px){
  .about-section{padding:0}
  .about-card{grid-template-columns:1fr;min-height:0}
  .about-copy{padding:46px var(--page-gutter) 42px}
  .about-intro{margin-top:24px;padding-top:0}
  .about-section h2{max-width:700px;font-size:clamp(36px,5.4vw,50px)}
  .about-intro>p:last-child{max-width:650px}
  .about-photo{height:340px;min-height:0}
  .about-photo>img{object-position:50% 18%}
}
@media(max-width:600px){
  .about-section{padding:0}
  .about-copy{padding:34px var(--page-gutter) 32px}
  .about-brandline{align-items:center}
  .about-wordmark{width:124px}
  .about-motto{font-size:6px;letter-spacing:.2em}
  .about-motto i{width:17px}
  .about-intro{margin-top:21px}
  .about-section .section-kicker{font-size:8px}
  .about-section h2{font-size:34px;line-height:.94}
  .about-intro>p:last-child{font-size:11.5px;line-height:1.52}
  .about-facts{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}
  .about-facts>span{display:flex;min-height:76px;gap:7px;flex-direction:column;align-items:flex-start;padding:10px 7px 9px 0}
  .about-facts>span+span{padding-left:8px;border-top:0;border-left:1px solid rgba(18,55,44,.13)}
  .about-facts i{width:30px;height:30px}
  .about-facts svg{width:15px;height:15px}
  .about-facts strong{font-size:10.5px;line-height:1.24;letter-spacing:.8px}
  .about-cta{width:100%;margin-top:17px}
  .about-photo{height:285px;min-height:0}
}

/* Section 04: three real projects with a clear route into the future archive. */
.work-section{
  position:relative;
  padding:clamp(76px,8vw,116px) var(--page-gutter) clamp(70px,7vw,104px);
  border-bottom:1px solid rgba(18,48,39,.14);
  background:
    radial-gradient(circle at 95% 8%,rgba(202,174,103,.09),transparent 25%),
    #f8f6ef;
}
.projects-editorial{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.55fr);gap:clamp(60px,12vw,210px);align-items:end;margin-bottom:52px}
.projects-intro .section-kicker{display:flex;align-items:center;gap:18px;margin-bottom:28px;color:#9a7830}
.projects-intro .section-kicker::after{content:"";width:51px;height:1px;background:#b9953f}
.projects-intro h2{font-size:clamp(58px,5vw,88px);line-height:.87}

.projects-intro>p:not(.section-kicker){max-width:520px;margin:25px 0 0;color:#5c6b62;font-size:14px;line-height:1.65}
.projects-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;min-width:225px;margin-top:22px;padding:0 0 9px;border-bottom:1px solid #aa812d;color:#173b30;font-size:9px;font-weight:700;letter-spacing:.19em;text-transform:uppercase}
.projects-cta .icon,.project-link .icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform 180ms ease}
.projects-note{max-width:310px;padding-bottom:5px}
.projects-note>span{color:#75827a;font-size:8px;font-weight:700;letter-spacing:.19em}
.projects-note>i{display:block;width:37px;height:1px;margin:20px 0;background:#b28a34}
.projects-note>p{margin:0;color:#53635a;font-size:14px;line-height:1.65}

.project-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.project-card{min-width:0;border:1px solid rgba(18,48,39,.16);background:#fffdf7;box-shadow:0 15px 31px rgba(28,45,37,.075);transition:border-color 200ms ease,box-shadow 220ms ease,transform 220ms var(--ease-out)}
.project-card-media{position:relative;display:block;height:292px;overflow:hidden;background:#d9ddd4}
.project-card-media::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(180deg,transparent,rgba(10,34,26,.58))}
.project-card-media img{width:100%;height:100%;object-fit:cover;transition:transform 420ms cubic-bezier(.22,.8,.2,1),filter 250ms ease}
.project-card:nth-child(1) .project-card-media img{object-position:50% 48%}
.project-card:nth-child(2) .project-card-media img{object-position:54% 40%}
.project-card:nth-child(3) .project-card-media img{object-position:50% 52%}
.project-card-media>span{position:absolute;z-index:2;left:20px;bottom:17px;color:#fffdf2;font-size:7px;font-weight:700;letter-spacing:.17em}
.project-card-copy{display:grid;grid-template-columns:57px minmax(0,1fr);gap:20px;min-height:164px;padding:22px 21px 19px}
.project-number{padding-right:18px;border-right:1px solid #d8d1bc;color:#b28a34;font-family:var(--display-font);font-size:34px;font-weight:600;line-height:1}
.project-card-copy h3{margin:0;color:#14382d;font-family:var(--display-font);font-size:24px;font-weight:600;line-height:.95;letter-spacing:.02em;text-transform:uppercase}
.project-card-copy p{max-width:350px;margin:7px 0 0;color:#647168;font-size:11px;line-height:1.5}
.project-link{display:flex;align-items:center;justify-content:space-between;gap:24px;width:158px;margin-top:13px;padding-bottom:7px;border-bottom:1px solid #d4c396;color:#173b30;font-size:8px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;transition:border-color 180ms ease,color 180ms ease}
.project-link .icon{width:14px;height:14px;color:#a98028}
.projects-signoff{display:flex;align-items:center;gap:13px;margin:30px 0 0!important;color:#748078!important;font-size:7px!important;font-weight:700;line-height:1!important;letter-spacing:.2em}
.projects-signoff i{width:3px;height:3px;border-radius:50%;background:#b28a34}

@media(hover:hover) and (pointer:fine){
  .projects-cta:hover .icon,.project-link:hover .icon{transform:translateX(4px)}
  .project-card:hover{border-color:rgba(178,138,52,.64);box-shadow:0 21px 40px rgba(28,45,37,.13);transform:translateY(-4px)}
  .project-card:hover .project-card-media img{transform:scale(1.025);filter:saturate(1.04)}
  .project-card:hover .project-link{border-color:#b28a34;color:#9a7424}
}

@media(max-width:1050px){
  .projects-editorial{gap:55px}
  .project-card-media{height:250px}
  .project-card-copy{grid-template-columns:45px minmax(0,1fr);gap:14px;padding-inline:16px}
  .project-number{font-size:29px;padding-right:12px}
  .project-card-copy h3{font-size:21px}
}

@media(max-width:760px){
  .work-section{padding:68px 0 70px}
  .projects-editorial{grid-template-columns:1fr;gap:33px;margin:0 24px 40px}
  .projects-intro h2{font-size:56px}
  .projects-intro>p:not(.section-kicker){font-size:13px}
  .projects-note{max-width:330px}
  .projects-note>p{font-size:13px}
  .project-gallery{display:flex;gap:14px;padding:5px 24px 28px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .project-gallery::-webkit-scrollbar{display:none}
  .project-card{flex:0 0 83vw;scroll-snap-align:center}
  .project-card-media{height:270px}
  .project-card-copy{grid-template-columns:49px minmax(0,1fr);min-height:158px;padding:20px 18px}
  .project-number{font-size:31px}
  .project-card-copy h3{font-size:23px}
  .projects-signoff{margin:3px 24px 0!important}
}

@media(max-width:390px){
  .projects-intro h2{font-size:51px}
  .project-card{flex-basis:86vw}
  .project-card-media{height:245px}
}

@media(prefers-reduced-motion:reduce){
  .project-card,.project-card-media img,.projects-cta .icon,.project-link .icon{transition:none!important}
}

/* Section 06: a single, continuous route from the first conversation to delivery. */
.process-section{
  position:relative;
  min-height:760px;
  overflow:hidden;
  background:
    radial-gradient(circle at 92% 0,rgba(215,222,205,.36),transparent 28%),
    #fbfaf5;
  color:#12382d;
}
.process-section::before{content:"";position:absolute;right:-72px;top:-215px;width:300px;height:300px;border:1px solid rgba(183,143,53,.22);border-radius:50%}
.process-header{position:relative;z-index:1}
.process-header .section-kicker{margin-bottom:34px;color:#24463b}
.process-header h2{max-width:none;font-size:clamp(56px,5.4vw,92px);line-height:.88;letter-spacing:.004em;white-space:nowrap}
.process-steps{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(34px,5vw,88px);
  margin-top:78px;
  border-top:1px solid #a9b5aa;
}
.process-terminal{
  position:absolute;
  right:-14px;
  top:-14px;
  display:grid;
  width:28px;
  height:28px;
  place-items:center;
  border:1px solid rgba(195,153,57,.82);
  border-radius:50%;
  background:#12382d;
  box-shadow:0 0 0 5px rgba(18,56,45,.08),0 5px 14px rgba(18,56,45,.16);
  color:#d4ad4d;
}
.process-terminal .icon{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8}
.process-steps article{position:relative;min-width:0;padding:37px 12px 0 0;border:0}
.process-steps .process-node{position:absolute;left:0;top:-6px;display:block;width:12px;height:12px;border:0;border-radius:50%;background:#b08a31;box-shadow:0 0 0 0 transparent}
.process-steps article:first-child .process-node{top:-9px;width:18px;height:18px;border:1px solid #b9c2b7;background:#f4f3e9;box-shadow:0 0 0 5px rgba(169,181,170,.13)}
.process-node i{position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:50%;background:#ae8932;transform:translate(-50%,-50%)}
.process-steps article:not(:first-child) .process-node i{display:none}
.process-steps .process-index{display:block;color:#a88128;font-family:var(--display-font);font-size:29px;font-weight:600;line-height:1;letter-spacing:.02em}
.process-steps h3{margin:18px 0 9px;color:#12382d;font-family:var(--display-font);font-size:31px;font-weight:600;line-height:1;letter-spacing:.025em;text-transform:uppercase}
.process-steps p{max-width:310px;margin:0;color:#66736b;font-size:13px;line-height:1.65}
.process-footer{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-top:73px;padding-top:25px;border-top:1px solid #a9b5aa}
.process-footer>span{color:#74877b;font-size:9px;font-weight:600;letter-spacing:.2em}
.process-footer>a{display:flex;align-items:center;justify-content:space-between;gap:50px;min-width:270px;padding:0 0 13px;border-bottom:1px solid #a9b5aa;color:#60776a;font-size:9px;font-weight:700;letter-spacing:.21em;text-transform:uppercase;transition:border-color 180ms ease,color 180ms ease}
.process-footer .icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.35;transition:transform 180ms ease}

@media(hover:hover) and (pointer:fine){
  .process-footer>a:hover{border-color:#a7812e;color:#9a7526}
  .process-footer>a:hover .icon{transform:translateX(5px)}
}

@media(max-width:1050px){
  .process-header h2{font-size:clamp(52px,6.7vw,72px);white-space:normal}
  .process-steps{gap:34px;margin-top:65px}
  .process-steps h3{font-size:27px}
  .process-steps p{font-size:12px}
}

@media(max-width:700px){
  .process-section{min-height:0;padding:67px 24px 72px}
  .process-header .section-kicker{margin-bottom:27px}
  .process-header h2{font-size:52px;line-height:.9}
  .process-steps{grid-template-columns:1fr;gap:0;margin:50px 0 0 8px;padding-left:38px;border-top:0;border-left:1px solid #a9b5aa}
  .process-terminal{right:auto;left:-14px;top:auto;bottom:-14px;transform:rotate(90deg)}
  .process-steps article{min-height:160px;padding:0 0 38px 8px}
  .process-steps article:last-child{padding-bottom:16px}
  .process-steps .process-node,.process-steps article:first-child .process-node{left:-47px;top:0;width:17px;height:17px;border:1px solid #b9c2b7;background:#f4f3e9;box-shadow:0 0 0 4px rgba(169,181,170,.13)}
  .process-steps article:not(:first-child) .process-node i{display:block}
  .process-steps .process-index{font-size:26px}
  .process-steps h3{margin:13px 0 8px;font-size:27px}
  .process-steps p{max-width:300px;font-size:12px}
  .process-footer{display:grid;gap:28px;margin-top:55px;padding-top:23px}
  .process-footer>a{min-width:0;width:100%}
}

@media(max-width:390px){
  .process-header h2{font-size:48px}
}

@media(prefers-reduced-motion:reduce){
  .process-footer>a,.process-footer .icon{transition:none!important}
}

/* Footer: company details, navigation and contact information. */
.site-footer{
  position:relative;
  display:block;
  overflow:hidden;
  padding:68px var(--page-gutter) 27px;
  background:
    radial-gradient(circle at 80% -15%,rgba(37,92,72,.3),transparent 35%),
    linear-gradient(120deg,#0c2b22 0%,#0d3428 52%,#09271e 100%);
  color:#f1eee0;
}
.site-footer::before{content:"";position:absolute;left:32%;top:-180px;width:520px;height:320px;border:1px solid rgba(212,173,77,.07);border-radius:50%;pointer-events:none}
.footer-main{position:relative;display:grid;grid-template-columns:.92fr 1.3fr .84fr;min-height:255px}
.footer-identity{padding-right:clamp(38px,4.5vw,74px)}
.footer-brand{display:inline-block}
.footer-brand img{display:block;width:190px;height:auto}

.footer-company{padding:13px clamp(40px,5vw,78px) 8px;border-right:1px solid rgba(232,234,215,.3);border-left:1px solid rgba(232,234,215,.3)}

.footer-description{max-width:430px;margin:29px 0 35px;color:#d3dbd0;font-size:15px;line-height:1.65}

.footer-nav a,.footer-back,.footer-label,.footer-policies,.footer-location{font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase}

.footer-connect{display:flex;flex-direction:column;padding:11px 0 8px clamp(40px,5vw,78px)}
.footer-back{display:flex;align-items:center;justify-content:space-between;width:145px;padding-bottom:13px;border-bottom:1px solid rgba(238,239,223,.68);color:#f1eee0}
.footer-back span{font-size:15px;transition:transform 180ms ease}

.footer-legal{position:relative;display:flex;align-items:center;justify-content:space-between;gap:40px;margin-top:42px;padding-top:24px;border-top:1px solid rgba(232,234,215,.35)}
.footer-legal p{margin:0;color:#b7c4b8;font-size:12px;line-height:1.5}
.footer-meta{display:flex;align-items:center;gap:45px}
.footer-policies{display:flex;gap:28px;color:#cbd4ca}
.footer-location{padding-left:39px;border-left:1px solid rgba(232,234,215,.35);color:#dce1d7;white-space:nowrap}

@media(hover:hover) and (pointer:fine){

  .footer-back:hover span{transform:translateY(-4px)}

}

@media(max-width:980px){
  .site-footer{padding-top:58px}
  .footer-main{grid-template-columns:1fr 1.15fr}
  .footer-identity{padding-right:48px}
  .footer-company{padding-right:0;border-right:0}
  .footer-connect{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.15fr;align-items:end;margin-top:46px;padding:35px 0 0;border-top:1px solid rgba(232,234,215,.3)}
  .footer-back{align-self:start}

  .footer-legal{align-items:flex-end}
  .footer-meta{gap:28px}
}

@media(max-width:650px){
  .site-footer{padding:53px 24px 25px}
  .footer-main{display:block}
  .footer-identity{padding:0 0 38px}
  .footer-brand img{width:170px}

  .footer-company{padding:37px 0;border-right:0;border-left:0;border-top:1px solid rgba(232,234,215,.3);border-bottom:1px solid rgba(232,234,215,.3)}
  .footer-description{margin:24px 0 30px;font-size:14px}

  .footer-connect{display:flex;margin:0;padding:36px 0 5px;border:0}
  .footer-back{order:2;margin-top:42px}

  .footer-legal{display:block;margin-top:37px;padding-top:22px}
  .footer-legal p{font-size:11px}
  .footer-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:24px}
  .footer-policies{display:grid;gap:9px}
  .footer-location{padding-left:20px;font-size:9px}
}

@media(prefers-reduced-motion:reduce){
  .footer-nav a,.footer-nav a::after,.footer-back span{transition:none!important}
}

/* Compact shared footer: one clear statement after the contact call-to-action. */
.site-footer{
  position:relative;
  display:block;
  overflow:hidden;
  padding:44px var(--page-gutter) 25px;
  background:radial-gradient(circle at 64% -55%,rgba(42,100,78,.22),transparent 44%),linear-gradient(118deg,#0b2d23 0%,#0c3428 54%,#09281f 100%);
  color:#f1eee0;
}
.site-footer::before{content:"";position:absolute;left:42%;top:-205px;width:470px;height:300px;border:1px solid rgba(212,173,77,.055);border-radius:50%;pointer-events:none}
.footer-main{position:relative;display:grid;grid-template-columns:.8fr 1.35fr .72fr;align-items:center;min-height:145px}
.footer-identity{display:flex;align-items:center;height:100%;padding:0 clamp(42px,5vw,82px) 0 18px}
.footer-brand{display:inline-block}
.footer-brand img{display:block;width:205px;height:auto}
.footer-company{display:flex;align-items:center;height:88px;padding:0 clamp(46px,6vw,94px);border-right:1px solid rgba(232,234,215,.25);border-left:1px solid rgba(232,234,215,.25)}
.footer-description{max-width:540px;margin:0;color:#d6ddd3;font-size:15px;line-height:1.7}
.footer-connect{display:flex;align-items:center;justify-content:center;height:100%;padding:0 18px}
.footer-back{display:flex;align-items:center;justify-content:space-between;width:170px;padding:0 0 16px;border-bottom:1px solid #c8a64e;color:#f1eee0;font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.footer-back span{font-size:17px;line-height:1;transition:transform 200ms var(--ease-out),color 180ms ease}
.footer-legal{position:relative;display:flex;align-items:center;justify-content:space-between;gap:40px;margin:14px 0 0;padding:23px 10px 0;border-top:1px solid rgba(232,234,215,.32)}
.footer-legal p{margin:0;color:#bcc8bd;font-size:11px;line-height:1.5}
.footer-meta{display:flex;align-items:center;gap:44px}
.footer-policies{display:flex;gap:29px;color:#d0d8ce;font-size:9px;font-weight:700;letter-spacing:.23em;text-transform:uppercase}
.footer-location{padding-left:39px;border-left:1px solid rgba(232,234,215,.32);color:#dfe3da;font-size:9px;font-weight:700;letter-spacing:.23em;text-transform:uppercase;white-space:nowrap}
@media(hover:hover) and (pointer:fine){.footer-back:hover{color:#d5b45f}.footer-back:hover span{transform:translateY(-4px);color:#d5b45f}}
@media(max-width:900px){.site-footer{padding-top:40px}.footer-main{grid-template-columns:.8fr 1.2fr;min-height:0}.footer-identity{padding:0 38px 0 0}.footer-company{height:100px;padding:0 0 0 38px;border-right:0}.footer-connect{grid-column:1/-1;justify-content:flex-end;margin-top:30px;padding:25px 0 0;border-top:1px solid rgba(232,234,215,.25)}.footer-legal{margin-top:28px}}
@media(max-width:600px){.site-footer{padding:35px 24px 23px}.footer-main{display:block}.footer-identity{height:auto;padding:0}.footer-brand img{width:170px}.footer-company{height:auto;margin-top:30px;padding:27px 0 0;border-top:1px solid rgba(232,234,215,.25);border-left:0}.footer-description{font-size:13px}.footer-connect{display:flex;margin-top:27px;padding-top:25px}.footer-back{width:150px}.footer-legal{display:block;margin-top:28px;padding:20px 0 0}.footer-legal p{font-size:10px}.footer-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-top:20px}.footer-policies{display:grid;gap:8px}.footer-location{padding-left:18px;font-size:8px}}
@media(prefers-reduced-motion:reduce){.footer-back span{transition:none!important}}

/* Controlled editorial variation: portfolio masthead and a quieter craft study. */
.work-section{padding-top:72px}
.projects-editorial{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);column-gap:10%;row-gap:22px;align-items:start;margin-bottom:38px}
.projects-intro{display:contents}
.projects-intro .section-kicker{grid-column:1/-1;margin:0;padding-bottom:18px;border-bottom:1px solid #c7cbbb;color:#66746a}
.projects-intro .section-kicker::after{display:none}
.projects-intro h2{grid-column:1;grid-row:2;font-size:clamp(38px,3.6vw,58px);line-height:1;max-width:650px;color:#14382d}
.projects-intro>p:not(.section-kicker){grid-column:2;grid-row:2;margin:0;max-width:490px;font-size:15px;line-height:1.7}
.projects-cta{grid-column:2;grid-row:3;justify-self:start;margin:0;min-width:210px}
.projects-note{grid-column:1;grid-row:3;max-width:440px;padding:0}
.projects-note>span{font-size:10px;letter-spacing:.14em}
.projects-note>i{display:none}
.projects-note>p{font-size:13px;line-height:1.65;margin:10px 0 0;max-width:390px}

@media(max-width:1000px){
  .projects-editorial{column-gap:6%}

}
@media(max-width:760px){
  .projects-editorial{grid-template-columns:1fr;row-gap:21px;margin:0 24px 28px}
  .projects-intro .section-kicker{grid-column:1}
  .projects-intro h2{grid-column:1;grid-row:2;font-size:40px;max-width:410px}
  .projects-intro>p:not(.section-kicker){grid-column:1;grid-row:3;font-size:14px;max-width:520px}
  .projects-cta{grid-column:1;grid-row:4}
  .projects-note{grid-column:1;grid-row:5;max-width:520px;margin-top:9px;padding-top:20px;border-top:1px solid #c7cbbb}
  .projects-note>p{max-width:480px}

}

/* Homepage motion system: branded handoff, one-time editorial reveals and quiet depth. */

.motion-locked{overflow:hidden}
.has-motion .hero-photo,.has-motion .eyebrow,.has-motion h1,.has-motion .hero-description,.has-motion .hero-actions,.has-motion .credibility{animation:none!important}
[data-motion-ready]{will-change:transform,opacity}
[data-motion-ready="media"]{will-change:clip-path}

@keyframes loader-content-in{
  from{opacity:0;transform:translate3d(0,12px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes loader-progress{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}
@keyframes loader-mark{
  0%,100%{opacity:.6;transform:scale(.92)}
  50%{opacity:1;transform:scale(1)}
}

@media(prefers-reduced-motion:reduce){

  [data-motion-ready]{opacity:1!important;transform:none!important;clip-path:none!important;will-change:auto!important}
}

/* ==========================================================================
   Phone layouts (see the matching block at the end of homepage.js).
   Only the new controls exist outside the media queries, and they are
   hidden there, so the desktop page is unchanged.
   ========================================================================== */
.stage-deck-nav,.stage-deck-hint{display:none}

/* --- project stages: swipe deck ------------------------------------------ */
@media(max-width:600px){
  .stage-marquee{gap:12px;padding:14px calc(22vw - 24px) 20px 24px;scroll-padding-left:24px;overscroll-behavior-x:contain}
  .stage-card,.stage-card:nth-child(2),.stage-card:nth-child(3),.stage-card.stage-card-completed{
    flex:0 0 78vw;
    height:452px;
    scroll-snap-align:start;
    scale:calc(.94 + var(--deck-focus,1) * .06);
    transform-origin:0 50%;
  }
  .stage-card::before{display:none}
  /* cards either side of the one in view fade back into the page */
  .stage-card::after,.stage-card-existing::after,.stage-card-progress::after{content:"";position:absolute;inset:0;width:auto;z-index:6;background:#f1f0e7;opacity:calc((1 - var(--deck-focus,1)) * .5);pointer-events:none}
  .stage-rail{display:none}

  .stage-deck-hint{
    position:absolute;
    right:12px;
    bottom:14px;
    z-index:5;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:9px 12px 9px 15px;
    border:1px solid rgba(239,230,196,.28);
    border-radius:999px;
    background:rgba(11,33,27,.82);
    -webkit-backdrop-filter:blur(6px);
    backdrop-filter:blur(6px);
    color:#f4efd9;
    font-family:var(--body-font);
    font-size:10px;
    font-weight:700;
    line-height:1;
    letter-spacing:.2em;
    text-transform:uppercase;
    box-shadow:0 8px 20px rgba(8,24,19,.25);
    transition:opacity 260ms ease,transform 260ms ease;
  }
  .stage-deck-hint svg{width:16px;height:16px;fill:none;stroke:#d5b65f;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;animation:deck-hint 1.4s cubic-bezier(.45,0,.2,1) infinite}
  .stage-marquee.is-swiped .stage-deck-hint{opacity:0;transform:translateX(8px)}

  .stage-deck-nav{display:block;margin:4px 24px 0}
  .stage-deck-nav__top{display:flex;align-items:center;justify-content:space-between;gap:14px}
  .stage-deck-nav__label{display:flex;align-items:center;gap:10px;color:var(--muted);font-family:var(--body-font);font-size:10px;font-weight:700;line-height:1.4;letter-spacing:.18em;text-transform:uppercase}
  .stage-deck-nav__label::before{content:"";flex:0 0 22px;height:1px;background:#b8943c}
  .stage-deck-nav__arrows{display:flex;flex:none;align-items:center;gap:6px}
  .stage-deck-nav__arrows button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(18,48,39,.3);border-radius:50%;background:transparent;color:#123027;transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,opacity 180ms ease}
  .stage-deck-nav__arrows button[data-deck-step="1"]{border-color:#123027;background:#123027;color:#efe3bd}
  .stage-deck-nav__arrows button:active{transform:scale(.95)}
  .stage-deck-nav__arrows button:disabled{opacity:.28}
  .stage-deck-nav__arrows svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
  .stage-deck-nav__count{min-width:50px;color:var(--muted);font-family:var(--body-font);font-size:11px;font-weight:700;letter-spacing:.1em;text-align:center;font-variant-numeric:tabular-nums}
  .stage-deck-nav__count b{color:#123027}

  .stage-deck-nav__steps{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}
  .stage-deck-nav__line{position:absolute;top:20px;left:16.667%;right:16.667%;height:1px;background:#b9c0b2}
  .stage-deck-nav__line i{position:absolute;inset:0;background:#b8943c;transform:scaleX(0);transform-origin:left}
  .stage-deck-nav__steps button{position:relative;display:grid;justify-items:center;gap:10px;min-height:48px;padding:14px 2px 4px;border:0;background:none;color:var(--muted);font-family:var(--body-font);font-size:10px;font-weight:700;line-height:1.2;letter-spacing:.14em;text-transform:uppercase;transition:color 180ms ease}
  .stage-deck-nav__steps button i{width:13px;height:13px;border:1px solid #6f8173;border-radius:50%;background:#f1f0e7;transition:background-color 200ms ease,border-color 200ms ease,box-shadow 200ms ease,transform 200ms ease}
  .stage-deck-nav__steps button.is-past i{border-color:#b8943c;background:#b8943c}
  .stage-deck-nav__steps button.is-active{color:#123027}
  .stage-deck-nav__steps button.is-active i{border-color:#c4a344;background:#c4a344;box-shadow:0 0 0 5px rgba(196,163,68,.2);transform:scale(1.12)}
}

@keyframes deck-hint{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(4px)}
}

/* --- services: photo inside the open service ------------------------------ */
@media(max-width:760px){
  .service-directory details>.service-visual{
    height:clamp(250px,76vw,400px);
    margin:2px 42px 16px;
    touch-action:pan-y;
    animation:service-open 420ms cubic-bezier(.23,1,.32,1) both;
  }
  .service-directory details>.service-visual .service-visual-shade{background:linear-gradient(0deg,rgba(7,22,17,.9) 0%,rgba(7,22,17,.45) 22%,transparent 46%),linear-gradient(180deg,rgba(7,22,17,.45),transparent 24%)}
  .service-directory details>.service-visual figcaption{left:16px;right:16px;bottom:14px}
  .service-directory details>.service-visual figcaption span{display:none}
  .service-directory details>.service-visual figcaption strong{font-size:12px}
  .service-directory details>.service-visual .service-image-controls{top:12px;right:12px;bottom:auto;gap:6px}
  .service-directory details>.service-visual .service-image-controls button{width:40px;height:40px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
  .service-directory details>.service-visual .service-image-controls span{display:none}
  .service-directory details[open]>p,.service-directory details[open]>.service-tags{animation:service-open 420ms cubic-bezier(.23,1,.32,1) 60ms both}
  .service-directory details[open] summary>b::before{content:"−"}
}
@media(max-width:600px){
  .service-directory details>.service-visual{margin:2px 10px 16px 34px}
}

@keyframes service-open{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}

/* --- selected projects: cards stack as you scroll ------------------------- */
@media(max-width:760px){
  /* `clip` rather than `hidden`, so the sticky cards follow the window */
  .homepage{display:flow-root;overflow:clip}
  .project-gallery{--stack-top:84px;display:grid;grid-template-columns:minmax(0,1fr);gap:22px;padding:5px 24px 6px;overflow:visible}
  .project-card{
    position:sticky;
    top:var(--stack-top);
    scale:calc(1 - var(--stack-cover,0) * .06);
    transform-origin:50% 0;
    box-shadow:0 -6px 18px rgba(28,45,37,.06),0 16px 32px rgba(28,45,37,.1);
    transition:border-color 200ms ease;
  }
  .project-card:nth-child(2){top:calc(var(--stack-top) + 14px)}
  .project-card:nth-child(3){top:calc(var(--stack-top) + 28px)}
  .project-card::after{content:"";position:absolute;inset:0;z-index:3;background:#0b211b;opacity:calc(var(--stack-cover,0) * .3);pointer-events:none}
}

@media(prefers-reduced-motion:reduce){
  .stage-deck-hint svg,.service-directory details>.service-visual,.service-directory details[open]>p,.service-directory details[open]>.service-tags{animation:none!important}
}

/* ==========================================================================
   Phones: "who we work with" rows and the "who we are" band
   ========================================================================== */
@media(max-width:600px){
  /* every row divided the same way: a hairline above each one after the first
     (the tablet rule gave the second row an extra left edge, like a box) */
  .audience-bar .audience-item:nth-child(n){border-left:0;border-top:1px solid var(--rail-divider)}
  .audience-bar .audience-item:first-child{border-top:0}

  /* who we are: a short band, photograph beside the words */
  .about-card{
    display:grid;
    grid-template-columns:38% minmax(0,1fr);
    grid-template-areas:
      "photo intro"
      "facts facts"
      "cta cta";
    column-gap:16px;
    padding:30px var(--page-gutter) 26px;
  }
  .about-copy{display:contents}
  .about-brandline{display:none}

  .about-photo{
    grid-area:photo;
    align-self:stretch;
    height:auto;
    min-height:190px;
    border-radius:2px;
    box-shadow:0 12px 26px rgba(18,55,44,.16);
  }
  .about-photo>img{object-position:58% 26%}

  .about-intro{grid-area:intro;align-self:center;margin:0;padding:2px 0}
  .about-section .section-kicker{margin:0 0 9px;font-size:10px;letter-spacing:.24em}
  .about-section h2{font-size:26px;line-height:.93}
  .about-section h2 br{display:none}
  .about-intro>p:last-child{margin-top:10px;font-size:12.5px;line-height:1.5}

  .about-facts{
    grid-area:facts;
    margin-top:22px;
    border-top:1px solid rgba(18,55,44,.16);
    border-bottom:0;
  }
  .about-facts>span,
  .about-facts>span+span{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:7px;
    min-height:0;
    padding:14px 6px 12px;
    text-align:center;
  }
  .about-facts>span+span{border-left:1px solid rgba(18,55,44,.13)}
  .about-facts i{width:30px;height:30px}
  .about-facts svg{width:15px;height:15px}
  .about-facts strong{font-size:10.5px;line-height:1.22;letter-spacing:.6px}
  .about-facts strong br{display:none}

  .about-section .about-cta{
    grid-area:cta;
    justify-self:start;
    display:inline-flex;
    gap:14px;
    width:auto;
    min-height:44px;
    margin-top:4px;
    padding:0 2px;
    border:0;
    border-bottom:1px solid #b89139;
    background:none;
    color:#12372c;
    font-size:11px;
    letter-spacing:.2em;
  }
  .about-cta .icon{color:#a98028}
}

@media(max-width:600px){
  /* the faint background icons: centred on the right of each row, not cut off at the bottom */
  .audience-bar .audience-item>.audience-watermark,
  .audience-bar .audience-item:last-child>.audience-watermark{
    top:50%;
    right:6px;
    bottom:auto;
    width:84px;
    height:84px;
    transform:translateY(-50%);
  }
}

/* "Who we are": the boxed logo and motto are gone at every size; the logo is
   already in the header, and the kicker introduces the section */
.about-section .about-brandline{display:none}
.about-section .about-intro{margin-top:0}

/* "Who we are": insurance and SafeContractor credential above the button */
.about-accreditation{display:flex;align-items:center;gap:12px;margin-top:18px}
.about-accreditation__badge{flex:none;width:56px;height:56px;border-radius:50%;object-fit:contain;background:#fff;box-shadow:0 6px 16px rgba(18,55,44,.12)}
.about-accreditation__icon{flex:none;display:grid;place-items:center;width:38px;height:38px;border:1px solid #bd963f;border-radius:50%;color:#12372c}
.about-accreditation__icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.homepage .about-accreditation p{display:grid;gap:4px;margin:0;line-height:1}
.about-accreditation strong{color:#12372c;font-family:var(--display-font);font-size:17px;font-weight:700;line-height:1;letter-spacing:.05em;text-transform:uppercase}
.about-accreditation span{color:#9b7a2c;font-size:10px;font-weight:700;line-height:1.3;letter-spacing:.16em;text-transform:uppercase}
@media(max-width:600px){
  .about-card{grid-template-areas:"photo intro" "facts facts" "accred accred" "cta cta"}
  .about-accreditation{grid-area:accred;margin-top:16px}
}
.about-section .about-accreditation .about-accreditation__badge{width:56px;height:56px;max-width:none;object-fit:contain}

/* The moving trades ribbon: the separator is drawn here rather than typed as
   a character, because phones render ✳ and similar symbols as colour emoji. */
.ribbon-track i{
  display:inline-block;
  width:7px;
  height:7px;
  margin:0 40px;
  padding:0;
  background:currentColor;
  transform:rotate(45deg);
  vertical-align:middle;
  font-size:0;
}
@media(max-width:600px){
  .ribbon-track i{width:6px;height:6px;margin:0 22px}
}
