@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');

:root { --cream:#f4f0e8; --paper:#fbfaf7; --forest:#173d32; --forest-2:#285548; --ink:#1d2824; --muted:#6d7770; --line:#d9d6cb; --clay:#b66f4d; --max:1240px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:'DM Sans',system-ui,sans-serif; font-size:16px; line-height:1.65; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--clay); }
.skip { position:absolute; left:-9999px; top:1rem; z-index:20; padding:.65rem 1rem; background:var(--forest); color:#fff; }
.skip:focus { left:1rem; }
header { position:relative; z-index:5; display:flex; align-items:center; justify-content:space-between; gap:2rem; max-width:var(--max); margin:auto; padding:1.35rem 3.5rem; }
.brand { display:inline-flex; align-items:center; gap:.75rem; color:var(--forest); line-height:1.05; }
.brand-logo { display:block; width:240px; max-height:100px; height:auto; object-fit:contain; object-position:left center; }
.footer-logo { width:185px; max-height:78px; }
.brand small { display:block; margin-top:.35rem; font-size:.52rem; letter-spacing:.15em; font-weight:500; }
nav { display:flex; align-items:center; gap:1.55rem; font-size:.78rem; font-weight:600; letter-spacing:.05em; }
nav > a { padding:.4rem 0; }
.nav-cta { padding:.7rem 1rem!important; background:var(--forest); color:#fff; }
.nav-cta:hover { background:var(--clay); color:#fff; }
.service-menu { position:relative; }
.service-menu summary { cursor:pointer; list-style:none; padding:.4rem 0; }
.service-menu summary::-webkit-details-marker { display:none; }
.service-menu summary::after { content:'⌄'; margin-left:.3rem; font-size:.8rem; }
.service-menu[open] > div { position:absolute; top:2.5rem; left:-1rem; display:grid; min-width:15rem; padding:.6rem; background:var(--paper); border:1px solid var(--line); box-shadow:0 15px 40px #183b3017; }
.service-menu div a { padding:.45rem .65rem; font-weight:500; }
.service-menu div a:hover { background:var(--cream); }
.menu-toggle { display:none; border:0; padding:.55rem .75rem; background:var(--forest); color:#fff; font:600 .76rem 'DM Sans',sans-serif; }
main { overflow:hidden; }
.hero, .service-hero { position:relative; max-width:var(--max); min-height:36rem; margin:0 auto; }
.hero > img, .service-hero > img { width:100%; height:100%; min-height:36rem; object-fit:cover; }
.hero::after, .service-hero::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#0d281fc9 0%,#0d281f78 43%,#0d281f13 78%); pointer-events:none; }
.hero-copy { position:absolute; z-index:1; left:7%; top:50%; width:min(620px,80%); transform:translateY(-50%); color:#fff; }
.hero h1, .service-hero h1, h1, h2 { font-family:'DM Serif Display',Georgia,serif; font-weight:400; letter-spacing:-.035em; line-height:1.03; }
h1 { margin:.45rem 0 1.2rem; font-size:clamp(3.3rem,7vw,6.1rem); }
h2 { margin:.5rem 0 1.1rem; font-size:clamp(2.35rem,4vw,4rem); }
h3 { line-height:1.2; }
.hero-copy p:not(.eyebrow), .service-hero > div > p:not(.eyebrow) { max-width:33rem; font-size:1.08rem; }
.eyebrow { margin:0; font-size:.67rem; font-weight:700; letter-spacing:.16em; }
.hero-caption { position:absolute; z-index:1; right:2rem; bottom:1.5rem; color:#fff; font-size:.62rem; font-weight:700; letter-spacing:.14em; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; margin-top:1.15rem; padding:.85rem 1.25rem; background:var(--forest); color:#fff; border:1px solid var(--forest); font-size:.78rem; font-weight:700; letter-spacing:.04em; }
.button:hover { background:var(--clay); border-color:var(--clay); color:#fff; }
.button.light { background:#fff; border-color:#fff; color:var(--forest); }
.button.light:hover { background:var(--clay); border-color:var(--clay); color:#fff; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,9vw,9rem); max-width:var(--max); margin:auto; padding:7.5rem 3.5rem; }
.split > div > p:first-child { margin-top:0; }
.intro { padding-bottom:6rem; }
.intro p { max-width:34rem; }
.service-hero { display:grid; grid-template-columns:1fr 1fr; min-height:31rem; background:var(--forest); color:#fff; }
.service-hero > div { position:relative; z-index:1; align-self:center; padding:4.5rem clamp(2rem,7vw,6.5rem); }
.service-hero > img { min-height:31rem; }
.service-hero::after { left:50%; background:linear-gradient(90deg,var(--forest) 0%,transparent 70%); }
.service-hero h1 { margin:.5rem 0 1rem; font-size:clamp(3rem,5vw,5.3rem); }
.service-hero .button { background:#fff; color:var(--forest); border-color:#fff; }
.detail { padding-top:6rem; padding-bottom:6rem; }
.detail > div:last-child { max-width:38rem; }
.detail h3 { color:var(--forest); font-size:1.3rem; }
.scope { margin:1rem 0 1.5rem; padding:0; list-style:none; border-top:1px solid var(--line); }
.scope li { padding:.8rem 0; border-bottom:1px solid var(--line); font-weight:600; }
.scope li::before { content:'↗'; margin-right:.7rem; color:var(--clay); }
.page-intro { max-width:var(--max); margin:auto; padding:7.5rem 3.5rem 4rem; }
.page-intro h1 { max-width:850px; }
.page-intro > p:last-child { max-width:38rem; font-size:1.12rem; }
.services-section { max-width:var(--max); margin:auto; padding:0 3.5rem 6rem; }
.cards { display:grid; grid-template-columns:repeat(2,1fr); gap:1.2rem; }
.card { background:var(--paper); border:1px solid var(--line); transition:transform .2s,box-shadow .2s; }
.card:hover { color:var(--ink); transform:translateY(-4px); box-shadow:0 15px 35px #183b3015; }
.card img { width:100%; height:16rem; object-fit:cover; }
.card > div { position:relative; padding:1.2rem 1.35rem 1.5rem; }
.card h3 { max-width:80%; margin:.35rem 0 0; font-family:'DM Serif Display',serif; font-size:1.75rem; font-weight:400; }
.number { color:var(--clay); font-size:.7rem; font-weight:700; letter-spacing:.12em; }
.arrow { position:absolute; right:1.3rem; bottom:1.35rem; color:var(--clay); font-size:1.45rem; }
.note { max-width:var(--max); margin:0 auto 6rem; padding:2.4rem 3.5rem; background:#e3dfd3; }
.note h2, .note h3 { margin:.2rem 0 .5rem; color:var(--forest); }
.cta { margin:0 auto; padding:6rem 2rem; background:var(--forest); color:#fff; text-align:center; }
.cta h2 { margin:.65rem 0; font-size:clamp(2.8rem,5vw,5rem); }
.cta p:not(.eyebrow) { max-width:34rem; margin:.6rem auto; }
footer { display:grid; grid-template-columns:1fr 1fr 1fr; align-items:start; gap:2rem; max-width:var(--max); margin:auto; padding:3rem 3.5rem; font-size:.79rem; }
footer > div { display:flex; gap:1.4rem; justify-content:center; }
footer small { grid-column:1 / -1; color:var(--muted); }
.contact-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(3rem,8vw,8rem); max-width:var(--max); margin:auto; padding:7rem 3.5rem 8rem; }
.contact-layout aside h1 { font-size:clamp(3rem,5.2vw,5.3rem); }
.contact-layout aside > p:not(.eyebrow) { max-width:25rem; }
.contact-note { margin-top:4rem; padding-top:1.3rem; border-top:1px solid var(--line); font-size:.9rem; }
.contact-note h3 { margin-top:0; color:var(--forest); }
.form-notice { margin-bottom:1.5rem; padding:1rem 1.2rem; background:#e3dfd3; font-size:.82rem; }
.form-notice p { margin:.2rem 0 0; }
form { display:grid; gap:1.1rem; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
label { display:grid; gap:.35rem; color:var(--forest); font-size:.72rem; font-weight:700; letter-spacing:.05em; }
input, select, textarea { width:100%; border:1px solid #c8c6bc; border-radius:0; padding:.85rem .9rem; background:var(--paper); color:var(--ink); font:400 .95rem 'DM Sans',sans-serif; }
textarea { resize:vertical; min-height:8rem; }
input:focus, select:focus, textarea:focus { outline:2px solid var(--clay); outline-offset:1px; }
.privacy { margin:0; color:var(--muted); font-size:.75rem; }
.review { margin-top:2rem; padding:1.5rem; background:var(--paper); border:1px solid var(--line); }
.review h2 { margin-top:0; font-size:2rem; }
.review dl { display:grid; grid-template-columns:9rem 1fr; gap:.5rem 1rem; margin:1.5rem 0; font-size:.88rem; }
.review dt { color:var(--muted); font-weight:700; }
.review dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.text-button { display:block; margin-top:1rem; padding:0; border:0; background:transparent; color:var(--forest); font:700 .78rem 'DM Sans',sans-serif; text-decoration:underline; cursor:pointer; }
[hidden] { display:none!important; }
@media (max-width:800px) {
  header { padding:1rem 1.25rem; }
  .brand-logo { width:185px; max-height:78px; }
  .menu-toggle { display:block; }
  nav { position:absolute; top:100%; left:1rem; right:1rem; display:none; align-items:stretch; flex-direction:column; gap:.2rem; padding:1rem; background:var(--paper); border:1px solid var(--line); box-shadow:0 15px 30px #183b301a; }
  nav.is-open { display:flex; }
  nav > a, .service-menu summary { padding:.65rem; }
  .nav-cta { text-align:center; }
  .service-menu[open] > div { position:static; box-shadow:none; border:0; min-width:0; padding:0 0 .3rem .5rem; }
  .hero, .service-hero { min-height:33rem; }
  .hero > img { min-height:33rem; }
  .hero-copy { left:1.5rem; width:calc(100% - 3rem); }
  .hero h1 { font-size:clamp(3rem,14vw,5rem); }
  .hero-caption { right:1rem; bottom:1rem; }
  .split, .service-hero, .contact-layout { grid-template-columns:1fr; gap:2.8rem; }
  .split { padding:5rem 1.25rem; }
  .service-hero { min-height:auto; }
  .service-hero > div { padding:4rem 1.5rem 3rem; }
  .service-hero > img { min-height:20rem; max-height:24rem; }
  .service-hero::after { left:0; background:linear-gradient(180deg,var(--forest) 0%,transparent 75%); }
  .page-intro { padding:5rem 1.25rem 3rem; }
  .services-section { padding:0 1.25rem 4rem; }
  .cards { grid-template-columns:1fr; }
  .card img { height:14rem; }
  .note { margin:0 1.25rem 4rem; padding:1.8rem 1.3rem; }
  .cta { padding:4.5rem 1.25rem; }
  footer { grid-template-columns:1fr; padding:2.5rem 1.25rem; gap:1rem; }
  footer > div { justify-content:flex-start; flex-wrap:wrap; }
  footer small { grid-column:auto; }
  .contact-layout { padding:5rem 1.25rem 6rem; }
  .contact-note { margin-top:2.5rem; }
  .form-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
.photo-gallery{max-width:1280px;margin:0 auto;padding:0 5% 80px;columns:3;column-gap:24px}.photo-gallery figure{margin:0 0 28px;break-inside:avoid}.photo-gallery img{width:100%;height:auto;display:block;border-radius:3px}.photo-gallery figcaption{font-size:13px;padding:12px 0;color:#4f5b51}.card{min-height:140px}.card>div{min-height:120px}.hero img{object-position:center 55%}.service-hero:not(:has(img)){grid-template-columns:1fr;max-width:1100px}.service-hero:not(:has(img))>div{max-width:800px}.service-hero img{object-position:center}.feature img{object-position:center 65%}@media(max-width:800px){.photo-gallery{columns:2}}@media(max-width:500px){.photo-gallery{columns:1}}

.trust-strip{text-align:center;padding:24px 5%;background:#e5e9df;color:#173f32;font-weight:700;font-size:14px;letter-spacing:.03em}.trust-strip span{padding:0 18px}@media(max-width:600px){.trust-strip span{padding:0 8px}}

/* Project gallery */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.photo-gallery{max-width:1280px;margin:0 auto;padding:0 5% 80px;columns:initial}
.gallery-pairs{display:grid;gap:2.5rem;margin-bottom:3rem}
.gallery-pair{padding:1.5rem;background:var(--paper);border:1px solid var(--line)}
.gallery-pair h3{margin:0 0 1rem;color:var(--forest);font-family:'DM Serif Display',serif;font-size:1.7rem;font-weight:400}
.pair-grid,.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.gallery-grid{gap:1.5rem}
.gallery-shot,.gallery-card{margin:0;min-width:0}
.gallery-view{display:block;width:100%;padding:0;border:0;background:var(--cream);color:var(--forest);font:inherit;text-align:left;cursor:zoom-in}
.gallery-view img{width:100%;height:clamp(18rem,30vw,28rem);object-fit:contain;display:block}
.gallery-card .gallery-view img{height:clamp(15rem,22vw,22rem)}
.gallery-view span{display:block;padding:.7rem 1rem;color:var(--forest);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.gallery-view:hover span,.gallery-view:focus-visible span{color:var(--clay)}
.gallery-view:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
.gallery-shot figcaption,.gallery-card figcaption{padding:.75rem 0 0;color:var(--muted);font-size:.82rem}
.gallery-shot figcaption strong{margin-right:.3rem;color:var(--clay);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.gallery-dialog{width:min(94vw,1200px);max-width:none;padding:3rem 1rem 1rem;border:1px solid var(--line);background:var(--paper);color:var(--ink)}
.gallery-dialog::backdrop{background:#0d281fcc}
.gallery-dialog img{display:block;width:100%;max-height:82vh;object-fit:contain}
.gallery-close{position:absolute;top:.65rem;right:.75rem;padding:.45rem .7rem;border:1px solid var(--line);background:var(--paper);color:var(--forest);font:600 .75rem 'DM Sans',sans-serif;cursor:pointer}
.gallery-close:hover,.gallery-close:focus-visible{background:var(--forest);color:#fff}
@media(max-width:800px){.photo-gallery{padding:0 1.25rem 4rem}.gallery-pair{padding:1rem}.pair-grid,.gallery-grid{grid-template-columns:1fr}.gallery-view img,.gallery-card .gallery-view img{height:clamp(16rem,65vw,24rem)}.gallery-dialog{padding:3rem .5rem .5rem}}

/* Align the homepage feature and project process with the shared content grid. */
.feature{align-items:center;padding-top:4rem;padding-bottom:4rem;gap:clamp(2rem,6vw,5rem)}
.feature>img{width:100%;height:clamp(24rem,38vw,32rem);object-fit:contain;background:var(--paper)}
.feature>div{max-width:32rem;justify-self:center}
.text-link{display:inline-block;padding:.5rem 0;color:var(--forest);font-weight:700;font-size:.85rem;border-bottom:1px solid var(--forest)}
.process{max-width:var(--max);margin:0 auto;padding:4rem 3.5rem 6rem}
.process>.eyebrow,.process>h2{text-align:center}
.process>h2{max-width:58rem;margin:.7rem auto 2.5rem}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;padding-top:2rem;border-top:1px solid var(--line)}
.steps>div{min-width:0}
.steps b{color:var(--clay);font-size:.8rem;letter-spacing:.12em}
.steps h3{margin:.65rem 0 .6rem;color:var(--forest);font-size:1.25rem}
.steps p{margin:0;max-width:23rem;color:var(--muted)}
@media(max-width:800px){.feature{padding:3rem 1.25rem;gap:2rem}.feature>img{height:auto;max-height:32rem;object-fit:contain}.feature>div{max-width:none;width:100%;justify-self:stretch}.process{padding:3rem 1.25rem 4rem}.process>h2{margin:.7rem auto 2rem}.steps{grid-template-columns:1fr;gap:1.75rem;padding-top:1.75rem}.steps p{max-width:none}}

.faq-section{max-width:var(--max);margin:0 auto 6rem;padding:0 3.5rem}.faq-section>h2{margin:.4rem 0 1.5rem;color:var(--forest)}.faq-list{max-width:56rem;border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{padding:1rem 2rem 1rem 0;color:var(--forest);font-weight:700;cursor:pointer;list-style:none;position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:'+';position:absolute;right:.25rem;font-size:1.25rem;font-weight:400}.faq-list details[open] summary::after{content:'−'}.faq-list details p{max-width:48rem;margin:0;padding:0 0 1rem;color:var(--muted)}@media(max-width:800px){.faq-section{margin-bottom:4rem;padding:0 1.25rem}}

/* Project gallery */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.photo-gallery{max-width:1280px;margin:0 auto;padding:0 5% 80px;columns:initial}
.gallery-pairs{display:grid;gap:2.5rem;margin-bottom:3rem}
.gallery-pair{padding:1.5rem;background:var(--paper);border:1px solid var(--line)}
.gallery-pair h3{margin:0 0 1rem;color:var(--forest);font-family:'DM Serif Display',serif;font-size:1.7rem;font-weight:400}
.pair-grid,.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.gallery-grid{gap:1.5rem}
.gallery-shot,.gallery-card{margin:0;min-width:0}
.gallery-view{display:block;width:100%;padding:0;border:0;background:var(--cream);color:var(--forest);font:inherit;text-align:left;cursor:zoom-in}
.gallery-view img{width:100%;height:clamp(18rem,30vw,28rem);object-fit:contain;display:block}
.gallery-card .gallery-view img{height:clamp(15rem,22vw,22rem)}
.gallery-view span{display:block;padding:.7rem 1rem;color:var(--forest);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.gallery-view:hover span,.gallery-view:focus-visible span{color:var(--clay)}
.gallery-view:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
.gallery-shot figcaption,.gallery-card figcaption{padding:.75rem 0 0;color:var(--muted);font-size:.82rem}
.gallery-shot figcaption strong{margin-right:.3rem;color:var(--clay);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.gallery-dialog{width:min(94vw,1200px);max-width:none;padding:3rem 1rem 1rem;border:1px solid var(--line);background:var(--paper);color:var(--ink)}
.gallery-dialog::backdrop{background:#0d281fcc}
.gallery-dialog img{display:block;width:100%;max-height:82vh;object-fit:contain}
.gallery-close{position:absolute;top:.65rem;right:.75rem;padding:.45rem .7rem;border:1px solid var(--line);background:var(--paper);color:var(--forest);font:600 .75rem 'DM Sans',sans-serif;cursor:pointer}
.gallery-close:hover,.gallery-close:focus-visible{background:var(--forest);color:#fff}
@media(max-width:800px){.photo-gallery{padding:0 1.25rem 4rem}.gallery-pair{padding:1rem}.pair-grid,.gallery-grid{grid-template-columns:1fr}.gallery-view img,.gallery-card .gallery-view img{height:clamp(16rem,65vw,24rem)}.gallery-dialog{padding:3rem .5rem .5rem}}

/* Align the homepage feature and project process with the shared content grid. */
.feature{align-items:center;padding-top:4rem;padding-bottom:4rem;gap:clamp(2rem,6vw,5rem)}
.feature>img{width:100%;height:clamp(24rem,38vw,32rem);object-fit:contain;background:var(--paper)}
.feature>div{max-width:32rem;justify-self:center}
.text-link{display:inline-block;padding:.5rem 0;color:var(--forest);font-weight:700;font-size:.85rem;border-bottom:1px solid var(--forest)}
.process{max-width:var(--max);margin:0 auto;padding:4rem 3.5rem 6rem}
.process>.eyebrow,.process>h2{text-align:center}
.process>h2{max-width:58rem;margin:.7rem auto 2.5rem}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;padding-top:2rem;border-top:1px solid var(--line)}
.steps>div{min-width:0}
.steps b{color:var(--clay);font-size:.8rem;letter-spacing:.12em}
.steps h3{margin:.65rem 0 .6rem;color:var(--forest);font-size:1.25rem}
.steps p{margin:0;max-width:23rem;color:var(--muted)}
@media(max-width:800px){.feature{padding:3rem 1.25rem;gap:2rem}.feature>img{height:auto;max-height:32rem;object-fit:contain}.feature>div{max-width:none;width:100%;justify-self:stretch}.process{padding:3rem 1.25rem 4rem}.process>h2{margin:.7rem auto 2rem}.steps{grid-template-columns:1fr;gap:1.75rem;padding-top:1.75rem}.steps p{max-width:none}}

.policy-content{max-width:800px;margin:0 auto;padding:0 3.5rem 7rem}.policy-content h2{margin:3rem 0 .75rem;color:var(--forest);font-size:clamp(1.8rem,3vw,2.6rem)}.policy-content h2:first-child{margin-top:0}.policy-content p{max-width:60rem;margin:.75rem 0}.policy-content a{color:var(--forest);text-decoration:underline;text-decoration-color:var(--clay);text-underline-offset:3px}.footer-utility{grid-column:1 / -1;display:flex;gap:1rem;align-items:center;color:var(--muted);font-size:.7rem}.footer-utility button{padding:0;border:0;background:transparent;color:inherit;font:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;cursor:pointer}.footer-utility a:hover,.footer-utility button:hover{color:var(--clay)}
@media(max-width:800px){.policy-content{padding:0 1.25rem 5rem}.footer-utility{grid-column:auto;flex-wrap:wrap}}

/* Project gallery */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.photo-gallery{max-width:1280px;margin:0 auto;padding:0 5% 80px;columns:initial}
.gallery-pairs{display:grid;gap:2.5rem;margin-bottom:3rem}
.gallery-pair{padding:1.5rem;background:var(--paper);border:1px solid var(--line)}
.gallery-pair h3{margin:0 0 1rem;color:var(--forest);font-family:'DM Serif Display',serif;font-size:1.7rem;font-weight:400}
.pair-grid,.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.gallery-grid{gap:1.5rem}
.gallery-shot,.gallery-card{margin:0;min-width:0}
.gallery-view{display:block;width:100%;padding:0;border:0;background:var(--cream);color:var(--forest);font:inherit;text-align:left;cursor:zoom-in}
.gallery-view img{width:100%;height:clamp(18rem,30vw,28rem);object-fit:contain;display:block}
.gallery-card .gallery-view img{height:clamp(15rem,22vw,22rem)}
.gallery-view span{display:block;padding:.7rem 1rem;color:var(--forest);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.gallery-view:hover span,.gallery-view:focus-visible span{color:var(--clay)}
.gallery-view:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
.gallery-shot figcaption,.gallery-card figcaption{padding:.75rem 0 0;color:var(--muted);font-size:.82rem}
.gallery-shot figcaption strong{margin-right:.3rem;color:var(--clay);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.gallery-dialog{width:min(94vw,1200px);max-width:none;padding:3rem 1rem 1rem;border:1px solid var(--line);background:var(--paper);color:var(--ink)}
.gallery-dialog::backdrop{background:#0d281fcc}
.gallery-dialog img{display:block;width:100%;max-height:82vh;object-fit:contain}
.gallery-close{position:absolute;top:.65rem;right:.75rem;padding:.45rem .7rem;border:1px solid var(--line);background:var(--paper);color:var(--forest);font:600 .75rem 'DM Sans',sans-serif;cursor:pointer}
.gallery-close:hover,.gallery-close:focus-visible{background:var(--forest);color:#fff}
@media(max-width:800px){.photo-gallery{padding:0 1.25rem 4rem}.gallery-pair{padding:1rem}.pair-grid,.gallery-grid{grid-template-columns:1fr}.gallery-view img,.gallery-card .gallery-view img{height:clamp(16rem,65vw,24rem)}.gallery-dialog{padding:3rem .5rem .5rem}}

/* Align the homepage feature and project process with the shared content grid. */
.feature{align-items:center;padding-top:4rem;padding-bottom:4rem;gap:clamp(2rem,6vw,5rem)}
.feature>img{width:100%;height:clamp(24rem,38vw,32rem);object-fit:contain;background:var(--paper)}
.feature>div{max-width:32rem;justify-self:center}
.text-link{display:inline-block;padding:.5rem 0;color:var(--forest);font-weight:700;font-size:.85rem;border-bottom:1px solid var(--forest)}
.process{max-width:var(--max);margin:0 auto;padding:4rem 3.5rem 6rem}
.process>.eyebrow,.process>h2{text-align:center}
.process>h2{max-width:58rem;margin:.7rem auto 2.5rem}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;padding-top:2rem;border-top:1px solid var(--line)}
.steps>div{min-width:0}
.steps b{color:var(--clay);font-size:.8rem;letter-spacing:.12em}
.steps h3{margin:.65rem 0 .6rem;color:var(--forest);font-size:1.25rem}
.steps p{margin:0;max-width:23rem;color:var(--muted)}
@media(max-width:800px){.feature{padding:3rem 1.25rem;gap:2rem}.feature>img{height:auto;max-height:32rem;object-fit:contain}.feature>div{max-width:none;width:100%;justify-self:stretch}.process{padding:3rem 1.25rem 4rem}.process>h2{margin:.7rem auto 2rem}.steps{grid-template-columns:1fr;gap:1.75rem;padding-top:1.75rem}.steps p{max-width:none}}

.consent-panel{position:fixed;z-index:30;right:1rem;bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;width:min(700px,calc(100% - 2rem));padding:1rem 1.2rem;background:var(--paper);border:1px solid var(--line);box-shadow:0 15px 40px #183b3030;color:var(--ink);font-size:.78rem}.consent-panel[hidden]{display:none}.consent-panel strong{color:var(--forest);font-size:.9rem}.consent-panel p{margin:.2rem 0 0;color:var(--muted)}.consent-actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;justify-content:flex-end}.consent-actions button,.consent-actions a{padding:.5rem .7rem;border:1px solid var(--line);background:var(--paper);color:var(--forest);font:600 .7rem 'DM Sans',sans-serif;cursor:pointer;text-decoration:none;white-space:nowrap}.consent-actions button:first-child{border-color:var(--forest);background:var(--forest);color:#fff}.consent-actions button:disabled{opacity:.5;cursor:default}.consent-actions button:hover:not(:disabled),.consent-actions a:hover{background:var(--clay);border-color:var(--clay);color:#fff}.consent-actions button:focus-visible,.consent-actions a:focus-visible{outline:2px solid var(--clay);outline-offset:2px}@media(max-width:700px){.consent-panel{right:.5rem;bottom:.5rem;width:calc(100% - 1rem);display:block;padding:1rem}.consent-actions{justify-content:flex-start;margin-top:.8rem}}

/* Contact form project-image guidance and previews */
.field-help{display:block;margin:-.35rem 0 1rem;color:var(--muted);font-size:.78rem;line-height:1.5}
.upload-field input[type=file]{padding:.65rem;background:var(--paper)}
.image-previews{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;margin:.1rem 0 1.25rem}
.image-preview{position:relative;min-width:0;border:1px solid var(--line);background:var(--paper)}
.image-preview img{display:block;width:100%;height:5.5rem;object-fit:cover}
.image-remove{display:block;width:100%;padding:.35rem;border:0;border-top:1px solid var(--line);background:var(--paper);color:var(--forest);font:600 .68rem 'DM Sans',sans-serif;cursor:pointer}
.image-remove:hover,.image-remove:focus-visible{background:var(--forest);color:#fff}
@media(max-width:700px){.image-previews{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Project gallery */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.photo-gallery{max-width:1280px;margin:0 auto;padding:0 5% 80px;columns:initial}
.gallery-pairs{display:grid;gap:2.5rem;margin-bottom:3rem}
.gallery-pair{padding:1.5rem;background:var(--paper);border:1px solid var(--line)}
.gallery-pair h3{margin:0 0 1rem;color:var(--forest);font-family:'DM Serif Display',serif;font-size:1.7rem;font-weight:400}
.pair-grid,.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.gallery-grid{gap:1.5rem}
.gallery-shot,.gallery-card{margin:0;min-width:0}
.gallery-view{display:block;width:100%;padding:0;border:0;background:var(--cream);color:var(--forest);font:inherit;text-align:left;cursor:zoom-in}
.gallery-view img{width:100%;height:clamp(18rem,30vw,28rem);object-fit:contain;display:block}
.gallery-card .gallery-view img{height:clamp(15rem,22vw,22rem)}
.gallery-view span{display:block;padding:.7rem 1rem;color:var(--forest);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.gallery-view:hover span,.gallery-view:focus-visible span{color:var(--clay)}
.gallery-view:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
.gallery-shot figcaption,.gallery-card figcaption{padding:.75rem 0 0;color:var(--muted);font-size:.82rem}
.gallery-shot figcaption strong{margin-right:.3rem;color:var(--clay);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.gallery-dialog{width:min(94vw,1200px);max-width:none;padding:3rem 1rem 1rem;border:1px solid var(--line);background:var(--paper);color:var(--ink)}
.gallery-dialog::backdrop{background:#0d281fcc}
.gallery-dialog img{display:block;width:100%;max-height:82vh;object-fit:contain}
.gallery-close{position:absolute;top:.65rem;right:.75rem;padding:.45rem .7rem;border:1px solid var(--line);background:var(--paper);color:var(--forest);font:600 .75rem 'DM Sans',sans-serif;cursor:pointer}
.gallery-close:hover,.gallery-close:focus-visible{background:var(--forest);color:#fff}
@media(max-width:800px){.photo-gallery{padding:0 1.25rem 4rem}.gallery-pair{padding:1rem}.pair-grid,.gallery-grid{grid-template-columns:1fr}.gallery-view img,.gallery-card .gallery-view img{height:clamp(16rem,65vw,24rem)}.gallery-dialog{padding:3rem .5rem .5rem}}

/* Align the homepage feature and project process with the shared content grid. */
.feature{align-items:center;padding-top:4rem;padding-bottom:4rem;gap:clamp(2rem,6vw,5rem)}
.feature>img{width:100%;height:clamp(24rem,38vw,32rem);object-fit:contain;background:var(--paper)}
.feature>div{max-width:32rem;justify-self:center}
.text-link{display:inline-block;padding:.5rem 0;color:var(--forest);font-weight:700;font-size:.85rem;border-bottom:1px solid var(--forest)}
.process{max-width:var(--max);margin:0 auto;padding:4rem 3.5rem 6rem}
.process>.eyebrow,.process>h2{text-align:center}
.process>h2{max-width:58rem;margin:.7rem auto 2.5rem}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;padding-top:2rem;border-top:1px solid var(--line)}
.steps>div{min-width:0}
.steps b{color:var(--clay);font-size:.8rem;letter-spacing:.12em}
.steps h3{margin:.65rem 0 .6rem;color:var(--forest);font-size:1.25rem}
.steps p{margin:0;max-width:23rem;color:var(--muted)}
@media(max-width:800px){.feature{padding:3rem 1.25rem;gap:2rem}.feature>img{height:auto;max-height:32rem;object-fit:contain}.feature>div{max-width:none;width:100%;justify-self:stretch}.process{padding:3rem 1.25rem 4rem}.process>h2{margin:.7rem auto 2rem}.steps{grid-template-columns:1fr;gap:1.75rem;padding-top:1.75rem}.steps p{max-width:none}}

/* Keep homepage artwork inside a predictable hero frame. */
.hero{height:clamp(480px,38vw,550px);min-height:0}
.hero>img{height:100%;min-height:0;object-fit:cover;object-position:center 55%}
.trust-strip{display:flex;align-items:center;justify-content:center;gap:1.5rem;flex-wrap:wrap;padding:1rem 5%}
.trust-credentials{margin:0;display:flex;align-items:center;gap:.75rem}
.trust-credentials span{padding:0}
.trust-cta{margin:0;white-space:nowrap}
@media(max-width:800px){.hero{height:600px;min-height:0}.hero>img{height:100%;min-height:0;object-position:68% center}.hero::after{background:linear-gradient(90deg,#0d281fd9,#0d281f84)}.trust-strip{gap:.85rem;padding:1.15rem 1.5rem}.trust-credentials{font-size:.8rem}}

.trust-actions{display:flex;align-items:center;justify-content:center;gap:.65rem;flex-wrap:wrap}.trust-secondary{background:transparent;color:var(--forest)}.trust-secondary:hover{color:#fff}@media(max-width:600px){.trust-actions{width:100%}.trust-actions .button{padding:.8rem .9rem;font-size:.7rem}}
