@charset "UTF-8";
:root{--forest:#233c31;--deep:#192a23;--green:#526950;--leaf:#c4d5a3;--cream:#f5f2e9;--beige:#e4ddce;--ink:#242824;--muted:#646a61;--line:#d6d8cb;--white:#fffefa;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--cream);font-size:16px;line-height:1.65}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #8caa61;outline-offset:5px}img{max-width:100%;display:block}button{cursor:pointer}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif);letter-spacing:-.045em;line-height:1.08}h1{font-size:clamp(3rem,5.3vw,5.8rem)}h2{font-size:clamp(2.4rem,4vw,4.3rem)}h3{font-size:1.42rem;line-height:1.35}p+p{margin-top:1em}.container{width:min(1312px,calc(100% - 104px));margin-inline:auto}.section{padding-block:110px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:600;line-height:1.5;display:block;margin-bottom:24px}.muted{color:var(--muted)}.skip-link{position:fixed;left:16px;top:-100px;padding:12px 20px;background:var(--white);z-index:999}.skip-link:focus{top:16px}.header{height:104px;background:var(--cream);position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(35,60,49,.13)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:28px}.wordmark{display:flex;align-items:center;gap:12px;line-height:1.18;flex-shrink:0}.wordmark-ag{font-family:var(--serif);font-size:3rem;letter-spacing:-.07em;line-height:1}.wordmark-name{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;padding-left:12px;border-left:1px solid #a3aa96;line-height:1.55}.main-nav{display:flex;align-items:center;gap:28px;font-size:.88rem}.main-nav>a{padding:10px 0;position:relative}.main-nav>a[aria-current=page]:after{content:'';position:absolute;bottom:4px;left:0;width:100%;height:1px;background:var(--forest)}.main-nav>a:hover{color:var(--green)}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:17px 24px;background:var(--forest);color:var(--white);border:1px solid var(--forest);font-size:.88rem;line-height:1.35;font-weight:500;transition:background .2s,transform .2s;min-height:54px}.button:hover{background:var(--deep)}.button.light{background:var(--leaf);border-color:var(--leaf);color:var(--deep)}.button.light:hover{background:#d7e2bf}.button.outline{border-color:currentColor;background:transparent}.button.outline:hover{background:#ffffff12}.arrow{font-size:1.3rem;line-height:.8}.header .button{min-height:46px;padding:14px 19px;gap:16px}.menu-toggle{display:none;background:transparent;border:0;padding:12px;color:var(--forest);font-size:1rem}.hero{display:grid;grid-template-columns:.87fr 1.13fr;min-height:650px;background:var(--forest);color:var(--cream)}.hero-copy{padding:86px 55px 70px max(52px,calc((100vw - 1312px)/2));display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.hero h1{max-width:640px}.hero h1 em{font-weight:400;color:var(--leaf)}.hero .eyebrow{color:var(--leaf);margin-bottom:32px}.hero-description{max-width:410px;line-height:1.75;margin-top:28px;color:#e0e4d9;font-size:1.02rem}.hero-actions{display:flex;gap:26px;align-items:center;margin-top:34px;flex-wrap:wrap}.text-link{border-bottom:1px solid currentColor;display:inline-flex;gap:18px;padding-block:7px;line-height:1.4;font-size:.92rem}.hero-photo{position:relative;min-height:620px;overflow:hidden}.hero-photo>img{width:100%;height:100%;object-fit:cover;object-position:53% 50%}.photo-note{position:absolute;bottom:24px;right:26px;background:rgba(20,36,27,.86);color:var(--white);padding:11px 16px;font-size:.75rem;letter-spacing:.035em}.proof{background:var(--beige)}.proof-grid{display:grid;grid-template-columns:1fr 1fr 1fr;padding-block:30px;gap:32px}.proof-item{display:flex;gap:20px;align-items:center;border-right:1px solid #b9beab;padding-right:30px}.proof-item:last-child{border:0}.proof-number{font-family:var(--serif);font-size:2.5rem;line-height:1.1;white-space:nowrap;color:var(--forest)}.proof-label{font-size:.83rem;line-height:1.5;max-width:175px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:70px;margin-bottom:48px}.section-heading h2{max-width:750px}.section-heading p{max-width:350px;color:var(--muted)}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.service-photo{height:430px;width:100%;object-fit:cover;transition:transform .5s}.service-card>a{display:block;overflow:hidden}.service-card:hover .service-photo{transform:scale(1.025)}.service-info{padding-top:27px;display:grid;grid-template-columns:1fr auto;gap:20px}.service-info h3{font-family:var(--serif);font-size:2.4rem;letter-spacing:-.035em;margin-bottom:13px}.service-info p{max-width:510px;color:var(--muted)}.round-link{align-self:start;border:1px solid var(--forest);width:47px;height:47px;display:grid;place-items:center;font-size:1.5rem;border-radius:50%;line-height:1}.service-tags{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.8rem;color:var(--forest);margin-top:20px}/* Large project photographs, with individual crops for each composition. */
.projects{background:var(--beige)}
.projects-showcase{width:min(1512px,calc(100% - 64px));margin-inline:auto}
.project-grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:80px clamp(32px,5vw,88px);align-items:start}
.project{min-width:0}
.project--featured{grid-column:1/-1}
.project--detail{margin-top:100px}
.project-image-button{display:block;position:relative;overflow:hidden;padding:0;border:0;width:100%;background:var(--forest);color:var(--cream);text-align:left}
.project-img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .6s}
.project--featured .project-img{aspect-ratio:16/9;object-position:50% 85%}
.project--portrait .project-img{aspect-ratio:4/5;object-position:50% 75%}
.project-image-button:hover .project-img{transform:scale(1.025)}
.project-image-button:focus-visible{outline-offset:6px}
.zoom-hint{position:absolute;right:24px;bottom:24px;display:inline-flex;align-items:center;gap:24px;padding:12px 17px;background:var(--cream);color:var(--forest);font-size:.8rem;line-height:1.3}
.zoom-hint>span{font-size:1.35rem;line-height:1}
.project-details{padding-top:27px}
.project-label{display:flex;align-items:center;gap:17px;text-transform:uppercase;font-size:.72rem;letter-spacing:.13em;line-height:1.5;color:var(--forest);margin-bottom:13px}
.project-label>span{letter-spacing:0;padding-right:17px;border-right:1px solid #9da18f}
.project h3{font-family:var(--serif);font-size:clamp(2rem,3vw,3.2rem);letter-spacing:-.035em;line-height:1.13;max-width:18ch;color:var(--forest)}
.project-details p{font-size:.96rem;color:var(--muted);max-width:440px;margin-top:18px}
.project--featured .project-details{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:end}
.project--featured h3{font-size:clamp(2.4rem,3.8vw,3.8rem);max-width:21ch}
.project--featured .project-details p{margin-top:0;justify-self:end}
.project-caption{margin-top:60px;padding-top:23px;border-top:1px solid #b9beab;font-size:.82rem;color:var(--muted)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start}.about-copy p{color:var(--muted);margin-bottom:20px}.signature{font-family:var(--serif);font-style:italic;font-size:1.8rem;color:var(--forest);display:block;margin-top:30px}.signature-role{font-size:.8rem}.values{margin-top:50px;border-top:1px solid var(--line)}.value-row{display:grid;grid-template-columns:160px 1fr;gap:35px;padding-block:22px;border-bottom:1px solid var(--line)}.value-row strong{font-weight:500}.value-row p{font-size:.9rem;color:var(--muted);margin:0}.process{background:var(--forest);color:var(--cream)}.process .eyebrow{color:var(--leaf)}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:56px}.process-step{border-top:1px solid #ffffff45;padding-top:22px}.step-num{font-family:var(--serif);font-size:1.5rem;color:var(--leaf);margin-bottom:35px;display:block}.process h3{font-family:var(--serif);font-size:1.85rem;margin-bottom:17px}.process p{color:#d3dccd;font-size:.96rem;max-width:350px}.coverage{padding-block:62px;border-bottom:1px solid var(--line)}.coverage-inner{display:flex;align-items:center;justify-content:space-between;gap:60px}.coverage h2{font-size:2.35rem;margin-bottom:16px}.coverage p{font-size:.95rem;max-width:650px;color:var(--muted)}.coverage-places{max-width:360px;line-height:2;color:var(--forest);font-size:.9rem}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:105px}.contact-copy>p{color:var(--muted);max-width:410px;margin-top:27px}.contact-details{margin-top:38px;border-top:1px solid var(--line);padding-top:27px}.contact-details span{display:block;font-size:.85rem;color:var(--muted)}.contact-details strong{display:block;font-family:var(--serif);font-weight:400;font-size:1.8rem;margin-top:5px}.contact-details small{display:block;font-size:.8rem;color:var(--muted);margin-top:4px}.enquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:24px}.field{display:flex;flex-direction:column;gap:8px}.field label{font-size:.84rem}.field input,.field select,.field textarea{border:1px solid #b5bfae;background:transparent;border-radius:0;padding:13px 14px;color:var(--ink);width:100%;min-height:49px}.field textarea{resize:vertical;min-height:128px}.full{grid-column:1/-1}.form-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px}.form-note{font-size:.78rem;line-height:1.6;color:var(--muted);max-width:270px}.form-status{font-size:.9rem;color:var(--forest);padding:16px;border:1px solid var(--green);background:#e7ecdf}.form-status:empty{display:none}.footer{background:var(--deep);color:var(--cream);padding-block:47px 25px}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:32px;padding-bottom:34px}.footer .wordmark-ag{font-size:3.8rem}.footer-links{display:flex;gap:28px;font-size:.85rem}.footer-bottom{border-top:1px solid #ffffff2a;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:.76rem;color:#bcc8b8}.subhero .hero-copy{padding-top:64px;padding-bottom:64px}.subhero h1{font-size:clamp(3rem,4.7vw,5.1rem)}.subhero.joinery-hero{background:var(--beige);color:var(--forest)}.joinery-hero .hero-description,.joinery-hero .eyebrow{color:var(--forest)}.joinery-hero .hero-photo>img{object-position:50% 60%}.breadcrumb{display:flex;gap:12px;align-items:center;font-size:.78rem;margin-bottom:35px}.breadcrumb a{opacity:.75}.subhero .eyebrow{margin-bottom:22px}.intro-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:100px}.intro-grid p{color:var(--muted);margin-top:4px}.feature-section{background:var(--beige)}.feature-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:80px;align-items:center}.feature-grid>img{width:100%;height:550px;object-fit:cover}.feature-copy h2{margin-bottom:30px}.feature-copy>p{color:var(--muted)}.feature-copy .text-link{margin-top:25px;color:var(--forest)}.service-list{margin-top:36px;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #bdc5b3}.service-list span{padding:14px 0;font-size:.86rem;border-bottom:1px solid #bdc5b3}.service-list span:before{content:'·';margin-right:12px;color:var(--green)}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:50px}.detail-card{border-top:1px solid var(--line);padding-top:28px}.detail-card h3{font-family:var(--serif);font-size:1.9rem;margin-bottom:19px}.detail-card p{color:var(--muted);font-size:.95rem}.detail-card ul{padding:0;list-style:none;margin-top:24px}.detail-card li{font-size:.86rem;padding:10px 0;border-bottom:1px solid var(--line)}.commercial-band{background:var(--beige);padding:46px 52px;display:flex;justify-content:space-between;gap:45px;align-items:center;margin-top:65px}.commercial-band h3{font-family:var(--serif);font-size:2.1rem}.commercial-band p{font-size:.95rem;color:var(--muted);max-width:650px;margin-top:10px}.commercial-band .text-link{flex-shrink:0}.uses-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.use-card img{width:100%;height:345px;object-fit:cover}.use-card h3{font-family:var(--serif);font-size:1.95rem;margin-top:24px}.use-card p{color:var(--muted);margin-top:15px;font-size:.94rem}.spec-grid{display:grid;grid-template-columns:1fr 1.07fr;gap:95px}.spec-list{border-top:1px solid var(--line)}.spec-item{display:grid;grid-template-columns:1fr;gap:10px;padding-block:23px;border-bottom:1px solid var(--line)}.spec-item h3{font-size:1.05rem}.spec-item p{font-size:.92rem;color:var(--muted)}.large-image{position:relative;margin-top:60px}.large-image>img{width:100%;height:520px;object-fit:cover;object-position:center 53%}.large-image figcaption{font-size:.82rem;color:var(--muted);margin-top:15px}.faq{background:var(--beige)}.faq-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:100px}.faq details{border-top:1px solid #b6bfac}.faq details:last-child{border-bottom:1px solid #b6bfac}.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:25px;padding:23px 0;font-size:1rem}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';font-size:1.5rem;line-height:1.1;color:var(--forest)}.faq details[open] summary:after{content:'−'}.faq details p{padding:0 35px 25px 0;font-size:.94rem;color:var(--muted)}dialog{border:none;padding:0;background:var(--cream);width:min(1100px,calc(100% - 32px));max-height:92vh;overflow:auto}dialog::backdrop{background:#0b1710e6}.lightbox-head{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;gap:20px}.lightbox-head p{font-size:.9rem}.lightbox-close{border:1px solid var(--line);background:transparent;padding:7px 14px;font-size:.9rem}.lightbox-img{width:100%;max-height:76vh;object-fit:contain;background:#1b261e}.lightbox-note{padding:15px 22px;font-size:.82rem;color:var(--muted)}
@media(min-width:1600px){.hero{min-height:730px}.hero-copy{padding-right:80px}.photo-note{right:40px}}
@media(max-width:1150px){.container{width:calc(100% - 64px)}.header{height:90px}.main-nav{gap:19px}.main-nav>a{font-size:.82rem}.wordmark-ag{font-size:2.6rem}.wordmark-name{font-size:.65rem}.header .button{padding:13px;gap:10px;font-size:.8rem}.hero-copy{padding:65px 34px 65px 32px}.hero-photo{min-height:590px}.hero{min-height:590px}.hero h1{font-size:4.2rem}.hero-description{font-size:.95rem}.hero-actions{gap:16px}.section{padding-block:80px}.service-photo{height:360px}.section-heading{gap:40px}.about-grid,.contact-grid,.intro-grid,.faq-grid,.spec-grid{gap:60px}.proof-item{gap:12px;padding-right:15px}.proof-grid{gap:20px}.proof-number{font-size:2.1rem}.proof-label{font-size:.76rem}.feature-grid{gap:45px}.process-grid,.detail-grid{gap:30px}.uses-grid{gap:22px}.use-card img{height:300px}.hero-actions .button{gap:18px}}
@media(max-width:900px){.header{height:85px}.header-inner{gap:15px}.menu-toggle{display:block;margin-left:auto}.header-inner>.button{display:none}.main-nav{display:none;position:absolute;left:0;right:0;top:84px;background:var(--cream);padding:20px 32px 32px;border-bottom:1px solid var(--line);box-shadow:0 10px 16px #14281b0a}.main-nav.open{display:flex;align-items:stretch;flex-direction:column;gap:4px}.main-nav>a{font-size:1rem;padding:13px 0}.main-nav>a[aria-current=page]:after{width:25px}.hero h1{font-size:3.5rem}.hero-copy{padding:55px 28px 55px 32px}.hero-photo{min-height:560px}.hero{min-height:560px}.hero-actions{flex-direction:column;align-items:flex-start}.hero-description{margin-top:23px}.proof-grid{gap:18px}.proof-item{display:block}.proof-label{margin-top:8px}.proof-number{font-size:2.15rem}.section-heading{align-items:flex-start;flex-direction:column;gap:25px}.section-heading p{max-width:550px}.service-photo{height:330px}.service-info h3{font-size:2rem}.about-grid{gap:40px}.value-row{grid-template-columns:1fr;gap:8px}.coverage-inner{align-items:flex-start;gap:30px}.coverage-places{max-width:260px}.contact-grid{gap:40px;grid-template-columns:.85fr 1.15fr}.form-bottom{align-items:flex-start;flex-direction:column}.footer-top{align-items:flex-start}.footer-links{flex-wrap:wrap;max-width:250px;gap:15px 22px}.footer-bottom{font-size:.74rem}.subhero h1{font-size:3.5rem}.intro-grid{gap:40px}.feature-grid{gap:35px}.feature-grid>img{height:460px}.service-list{grid-template-columns:1fr}.detail-grid{gap:25px}.detail-card h3{font-size:1.65rem}.commercial-band{padding:35px;flex-direction:column;align-items:flex-start}.use-card img{height:250px}.use-card h3{font-size:1.65rem}.spec-grid{gap:45px}.faq-grid{gap:45px}.large-image>img{height:390px}}
@media(max-width:680px){html{scroll-padding-top:85px}.container{width:calc(100% - 40px)}.header-inner{gap:12px}.wordmark-ag{font-size:2.65rem}.wordmark-name{font-size:.63rem}.hero,.subhero.joinery-hero{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:48px 25px 48px 20px;min-height:0}.hero h1,.subhero h1{font-size:clamp(2.9rem,11vw,4.2rem);max-width:590px}.hero .eyebrow{font-size:.72rem;margin-bottom:25px}.hero-description{max-width:460px;font-size:1rem;margin-top:25px}.hero-actions{flex-direction:row;align-items:center;gap:24px;margin-top:30px}.button{padding:17px 20px;gap:18px}.hero-photo,.subhero .hero-photo{height:390px;min-height:0;width:100%}.hero-photo>img{object-position:50% 55%}.photo-note{font-size:.7rem;padding:9px 12px;bottom:14px;right:14px}.proof-grid{grid-template-columns:1fr 1fr;gap:24px 15px;padding-block:27px}.proof-item{padding-right:12px}.proof-item:nth-child(2){border:0}.proof-item:last-child{grid-column:1/-1;display:flex;gap:19px;align-items:center;padding-top:21px;border-top:1px solid #b9beab}.proof-number{font-size:2rem}.proof-label{font-size:.78rem;max-width:170px}.proof-item:last-child .proof-label{margin-top:0;max-width:180px}.section{padding-block:64px}.eyebrow{font-size:.72rem;margin-bottom:18px}h2{font-size:2.8rem}.section-heading{margin-bottom:33px;gap:22px}.service-grid{grid-template-columns:1fr;gap:42px}.service-photo{height:360px}.service-info{padding-top:23px}.service-info h3{font-size:2.25rem}.service-info p{font-size:.95rem}.service-tags{font-size:.76rem;gap:7px 15px}.about-grid,.intro-grid,.contact-grid,.spec-grid,.faq-grid,.feature-grid{grid-template-columns:1fr;gap:35px}.about-copy p{font-size:.97rem}.values{margin-top:28px}.value-row{grid-template-columns:130px 1fr;gap:20px;font-size:.92rem}.value-row p{font-size:.85rem}.signature{margin-top:24px}.process-grid,.detail-grid{grid-template-columns:1fr;gap:35px;margin-top:35px}.step-num{margin-bottom:20px}.process p{max-width:100%}.process h3{font-size:1.9rem}.coverage{padding-block:45px}.coverage-inner{display:block}.coverage h2{font-size:2.2rem}.coverage-places{margin-top:23px;max-width:none;font-size:.85rem}.contact-grid{gap:36px}.contact-copy>p{margin-top:22px}.contact-details{margin-top:26px;padding-top:22px}.contact-details strong{font-size:1.6rem}.enquiry-form{gap:20px 16px}.field label{font-size:.82rem}.field input,.field select,.field textarea{font-size:1rem;padding:12px 10px}.form-bottom{gap:20px}.form-bottom .button{width:100%}.form-note{max-width:100%;font-size:.78rem}.footer{padding-block:36px 22px}.footer-top{flex-direction:column;gap:30px}.footer .wordmark-ag{font-size:3rem}.footer-links{max-width:none;gap:16px 25px}.footer-bottom{flex-direction:column;gap:9px}.breadcrumb{margin-bottom:27px}.joinery-hero .hero-photo>img{object-position:center 50%}.feature-grid>img{height:470px}.service-list{grid-template-columns:1fr 1fr}.detail-card h3{font-size:1.9rem}.detail-card ul{margin-top:20px}.commercial-band{padding:28px 24px;margin-top:40px;gap:24px}.commercial-band h3{font-size:1.8rem}.uses-grid{grid-template-columns:1fr;gap:38px}.use-card img{height:370px}.use-card h3{font-size:2rem;margin-top:20px}.use-card p{margin-top:12px}.large-image{margin-top:40px}.large-image>img{height:340px}.spec-item{padding-block:22px}.faq summary{padding-block:22px;font-size:.98rem}.faq details p{padding-right:15px}.lightbox-head{padding:13px 16px}.lightbox-note{padding:13px 16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* The supplied logo stays intact on a charcoal brand header. */
:root{--leaf:#bad66e;--deep:#111a14}
.header{background:#0b0d0c;color:var(--cream);border-bottom-color:#ffffff18}
.brand-logo{display:block;flex-shrink:0}.brand-logo img{width:165px;height:99px;object-fit:contain}
.header .main-nav>a[aria-current=page]:after{background:var(--leaf)}
.header .main-nav>a:hover{color:var(--leaf)}
.menu-toggle{color:var(--cream)}.mobile-contact{display:none}
.footer .brand-logo img{width:235px;height:141px}
.hero-photo>img{position:absolute;inset:0}
.joinery-hero h1 em{color:#526950}

@media(max-width:1150px){.header .brand-logo img{width:145px;height:87px}}
@media(max-width:900px){.header .brand-logo img{width:135px;height:81px}.header .main-nav{color:var(--ink)}.header .main-nav>a:hover{color:var(--forest)}.header .main-nav>a[aria-current=page]:after{background:var(--forest)}.mobile-contact{display:block}}
@media(max-width:680px){.header .brand-logo img{width:129px;height:77px}.footer .brand-logo img{width:200px;height:120px}}

@media(max-width:900px){
  .project-grid{gap:56px 32px}
  .project--detail{margin-top:65px}
  .project--featured .project-details{gap:30px}
  .project-details p{font-size:.9rem}
  .zoom-hint{right:16px;bottom:16px;gap:18px}
}
@media(max-width:680px){
  .projects-showcase{width:100%}
  .project-grid{grid-template-columns:minmax(0,1fr);gap:48px}
  .project--detail{margin-top:0}
  .project--featured .project-img{aspect-ratio:4/3}
  .project-details{padding:23px 20px 0}
  .project--featured .project-details{display:block}
  .project h3,.project--featured h3{font-size:2.35rem;max-width:20ch}
  .project-details p,.project--featured .project-details p{margin-top:16px;font-size:.95rem;max-width:100%}
  .project-caption{font-size:.78rem;margin-top:38px}
  .zoom-hint{right:16px;bottom:16px;padding:11px 14px}
}

/* Joinery projects share the large photographic treatment used on Home. */
.joinery-feature-heading{align-items:start}
.joinery-feature-intro{max-width:480px}
.joinery-feature-intro p{max-width:none}
.joinery-feature-intro .text-link{margin-top:24px;color:var(--forest)}
.joinery-kitchens .project-img{aspect-ratio:16/10;object-position:50% 55%}
.joinery-service-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;border-top:1px solid #b9beab;margin-top:42px;padding-top:22px;color:var(--forest);font-size:.9rem}
.joinery-interior-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(32px,5vw,88px);align-items:start}
.project--living .project-img{aspect-ratio:3/2}
.project--door{margin-top:100px}
.project--door .project-img{aspect-ratio:3/4;object-position:center}
.joinery-kitchens .project-details p,.joinery-interiors .project-details p,.joinery-outdoors .project-details p{font-size:1rem}
.joinery-kitchens .project-label,.joinery-interiors .project-label,.joinery-outdoors .project-label{font-size:.875rem;letter-spacing:.08em}
.joinery-kitchens .zoom-hint,.joinery-interiors .zoom-hint,.joinery-outdoors .zoom-hint{font-size:.875rem}
.joinery-scope{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:70px;border-top:1px solid var(--line);padding-top:36px}
.joinery-scope h3{font-family:var(--serif);font-size:2rem;letter-spacing:-.025em;margin-bottom:15px}
.joinery-scope p{color:var(--muted);max-width:520px}
.joinery-scope ul{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.joinery-scope li{border-bottom:1px solid var(--line);padding-block:12px;font-size:.9rem}
.joinery-outdoors{background:var(--forest);color:var(--cream)}
.joinery-outdoors .eyebrow,.joinery-outdoors .project-label{color:var(--leaf)}
.joinery-outdoors .section-heading p,.joinery-outdoors .project-details p{color:#dce2d6}
.joinery-outdoors .project h3{color:var(--cream)}
.joinery-outdoors .project-img{aspect-ratio:16/9;object-position:center}
.joinery-outdoor-footer{display:flex;justify-content:space-between;align-items:center;gap:28px;margin-top:36px;border-top:1px solid #ffffff45;padding-top:25px}
.joinery-outdoor-footer .service-tags{color:var(--leaf);margin:0;font-size:.875rem;gap:10px 24px}
.joinery-outdoor-footer .text-link{flex-shrink:0}
.joinery-commercial{padding-block:64px}
.joinery-commercial .commercial-band{margin:0}
.joinery-commercial .project-caption{margin-top:32px}
@media(max-width:900px){
  .joinery-feature-intro{max-width:580px}
  .joinery-interior-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:32px}
  .project--door{margin-top:65px}
  .joinery-scope{gap:36px;margin-top:50px}
  .joinery-scope ul{grid-template-columns:1fr}
  .joinery-outdoor-footer{align-items:start;flex-direction:column}
}
@media(max-width:680px){
  .joinery-kitchens .project-img{aspect-ratio:3/2}
  .joinery-service-strip{grid-template-columns:1fr 1fr;gap:15px 24px;margin-top:30px;font-size:.875rem}
  .joinery-interior-grid{grid-template-columns:minmax(0,1fr);gap:48px}
  .project--door{margin-top:0}
  .joinery-scope{grid-template-columns:1fr;gap:36px;margin-top:42px;padding-top:28px}
  .joinery-scope ul{grid-template-columns:1fr 1fr;gap:0 20px}
  .joinery-outdoors .project-img{aspect-ratio:16/9}
  .joinery-outdoor-footer{margin-top:30px}
  .joinery-commercial{padding-block:48px}
}

/* Garden rooms: large views of the outside, the interior and the finish. */
.garden-projects .project--featured .project-img{aspect-ratio:16/9;object-position:50% 57%}
.garden-projects .project-details p,.garden-setting-photos .project-details p{font-size:1rem}
.garden-projects .project-label,.garden-setting-photos .project-label{font-size:.875rem;letter-spacing:.08em}
.garden-projects .zoom-hint,.garden-setting-photos .zoom-hint{font-size:.875rem}
.garden-setting-photos{margin-top:76px}
.garden-details-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,5vw,88px);align-items:start}
.garden-details-grid .project-img{aspect-ratio:4/3;object-position:center}
.project--evening{margin-top:100px}
.project--evening .project-img{aspect-ratio:3/2}
.commercial-showcase{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:clamp(40px,6vw,90px);align-items:center}
.commercial-photo .project-image-button>img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center;transition:transform .6s}
.commercial-photo .project-image-button:hover>img{transform:scale(1.025)}
.commercial-photo figcaption{font-size:.875rem;color:var(--muted);padding-top:16px}
.commercial-photo .zoom-hint{font-size:.875rem}
.commercial-copy h2{font-size:clamp(2.4rem,3.5vw,3.8rem)}
.commercial-copy p{margin-top:25px;color:var(--muted);max-width:450px}
.commercial-copy p+p{margin-top:1em}
.commercial-copy .text-link{margin-top:28px;color:var(--forest)}
@media(max-width:900px){
  .garden-details-grid{gap:32px}
  .project--evening{margin-top:65px}
  .commercial-showcase{grid-template-columns:minmax(0,1fr);gap:35px}
  .commercial-copy{max-width:660px}
  .commercial-copy p{max-width:none}
}
@media(max-width:680px){
  .garden-projects .project--featured .project-img{aspect-ratio:4/3}
  .garden-details-grid{grid-template-columns:minmax(0,1fr);gap:48px}
  .garden-setting-photos{margin-top:48px}
  .project--evening{margin-top:0}
  .commercial-photo figcaption{padding-inline:20px}
  .commercial-copy{padding-inline:20px}
}

/* All three pages inherit the same hero columns and responsive image sizing. */

/* Customer reviews use the same editorial rhythm and forest / beige palette. */
.reviews{background:var(--beige)}
.reviews-heading{margin-bottom:42px}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.review-card{background:var(--cream);padding:clamp(26px,3.2vw,48px);min-height:360px;display:flex;flex-direction:column;align-items:flex-start}
.review-card:first-child{background:var(--forest);color:var(--cream)}
.review-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;color:var(--muted);font-size:.84rem}
.review-card:first-child .review-meta{color:#d1dfc6}
.review-stars{color:#547246;font-size:1.12rem;letter-spacing:.12em;line-height:1}
.review-card:first-child .review-stars{color:var(--leaf)}
.review-card blockquote{font-family:var(--serif);font-size:clamp(1.34rem,1.75vw,1.82rem);line-height:1.37;letter-spacing:-.025em;margin:35px 0 40px}
.review-card figcaption{margin-top:auto;padding-top:19px;border-top:1px solid currentColor;width:100%;display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:.88rem}
.review-card figcaption strong{font-weight:600}
.review-card figcaption span{color:var(--muted);text-align:right}
.review-card:first-child figcaption span{color:#d1dfc6}
.contact-phone{display:inline-block;font-family:var(--serif);font-size:1.8rem;line-height:1.35;margin-top:5px;color:var(--forest);border-bottom:1px solid var(--green)}
.contact-phone:hover{color:var(--green)}
@media(max-width:1050px){.review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.review-card:first-child{grid-column:1/-1;min-height:290px}.review-card:first-child blockquote{max-width:820px}}
@media(max-width:680px){.review-grid{grid-template-columns:1fr}.review-card,.review-card:first-child{grid-column:auto;min-height:0;padding:27px}.review-card blockquote{margin:26px 0 34px;font-size:1.5rem}.review-card figcaption{flex-direction:column;gap:3px}.review-card figcaption span{text-align:left}.contact-phone{font-size:1.65rem}}

.ag-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
