:root{--ink:#262c28;--green:#79a52e;--green-dark:#557521;--paper:#f6f5f0;--line:#d8dcd2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--green-dark);outline-offset:5px}img{display:block;max-width:100%}figure,p,h1,h2,h3{margin:0}p+p{margin-top:20px}.skip{position:fixed;top:-100px;left:12px;background:white;padding:12px;z-index:20}.skip:focus{top:10px}.header{display:flex;align-items:center;justify-content:space-between;padding:16px 5vw;background:var(--paper);border-bottom:1px solid var(--line)}.brand{height:78px;width:110px;overflow:hidden;position:relative}.brand img{width:170px;max-width:none;height:auto;position:absolute;left:-31px;top:-25px}.header nav{display:flex;gap:38px;align-items:center;font-size:14px;font-weight:600}.header nav a:hover,.text-link:hover{color:var(--green-dark)}.nav-contact{border-bottom:1px solid var(--green);padding-bottom:4px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:665px}.hero-copy{padding:86px 5vw 48px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--green-dark);margin-bottom:22px}.hero h1{font-size:clamp(42px,5.2vw,82px);line-height:1.06;letter-spacing:-3px;font-weight:500}.hero h1 em{font-family:Georgia,serif;font-weight:400;color:var(--green-dark)}.intro{max-width:435px;font-size:18px;margin-top:28px;line-height:1.7;color:#596159}.actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:32px}.button{display:inline-flex;align-items:center;gap:35px;background:var(--ink);color:white;padding:15px 22px;font-size:13px;font-weight:600;transition:background .2s}.button:hover{background:var(--green-dark)}.text-link{font-size:13px;font-weight:700;border-bottom:1px solid var(--green);padding-bottom:5px;display:inline-flex;gap:16px}.signature{font-size:12px;color:#697267;margin-top:56px}.hero-photo{position:relative;min-height:600px;background:var(--ink)}.hero-photo img{width:100%;height:100%;object-fit:cover;position:absolute;object-position:57% center}.hero-photo figcaption{position:absolute;left:24px;right:24px;bottom:22px;display:flex;justify-content:space-between;color:white;text-shadow:0 1px 5px black;font-size:10px;letter-spacing:1.5px}.stats{display:grid;grid-template-columns:repeat(4,1fr);padding:38px 5vw;background:var(--ink);color:white;gap:40px}.stats strong{font-size:47px;line-height:1;font-weight:400;letter-spacing:-2px}.stats strong span{color:#a7cd64;font-size:30px}.stats p{font-size:12px;color:#c4cec1;margin-top:10px;max-width:180px}.section{padding:95px 7vw}.section h2{font-size:clamp(34px,3.5vw,54px);line-height:1.12;letter-spacing:-1.8px;font-weight:400}.about{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.about-copy p{font-size:15px;color:#5a625b}.about-copy .large{font-size:21px;line-height:1.55;color:var(--ink);margin-bottom:24px}.about-copy .text-link{margin-top:28px}.services{background:white}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:44px}.section-heading>p{font-size:14px;color:#687067}.service-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{display:flex;align-items:center;cursor:pointer;list-style:none;gap:36px;padding:25px 0}summary::-webkit-details-marker{display:none}.number{font-size:12px;color:var(--green-dark);width:24px;flex-shrink:0}summary h3{font-size:24px;font-weight:400;line-height:1.3}.plus{margin-left:auto;font-size:25px;font-weight:300}details[open] .plus{transform:rotate(45deg)}.service-body{padding:0 54px 29px 60px;display:grid;grid-template-columns:1.4fr 1fr;gap:9vw;font-size:15px;color:#60675f}.service-body .service-example{margin:0;font-family:Georgia,serif;font-size:19px;color:var(--green-dark)}.process{background:#e8ebdf}.process-layout{display:grid;grid-template-columns:1fr 1fr;gap:7vw}.stage-list{display:flex;flex-direction:column}.stage{background:none;text-align:left;border:0;border-bottom:1px solid #c9d1be;padding:17px 0;cursor:pointer;font-size:15px;color:#626a5c;display:flex;gap:30px}.stage span{font-size:11px;color:#778768;width:20px}.stage.active{color:var(--ink);font-weight:700}.stage.active span{color:var(--green-dark)}.stage:hover{color:var(--green-dark)}.stage-content{padding-top:22px}.stage-content h3{font-size:32px;line-height:1.25;font-weight:400;max-width:390px}.stage-content>p:not(.eyebrow){font-size:16px;max-width:410px;margin-top:25px}.stage-content .process-note{font-size:12px!important;color:#69735e;margin-top:42px!important}.gallery{display:grid;grid-template-columns:1.2fr 1fr;gap:30px}.photo-button{position:relative;background:transparent;border:0;padding:0;width:100%;cursor:zoom-in;overflow:hidden}.photo-button img{width:100%;height:390px;object-fit:cover;transition:transform .4s}.photo-button:hover img{transform:scale(1.025)}.photo-button>span{position:absolute;bottom:16px;right:16px;background:var(--paper);padding:5px 14px;font-size:20px}.gallery figcaption{display:flex;justify-content:space-between;gap:15px;margin-top:15px;font-size:12px}.gallery figcaption strong{font-weight:600}.gallery figcaption span{color:#747e6c}.experience-text{display:grid;grid-template-columns:1fr 1.5fr;gap:8vw;padding-top:45px}.experience-text h3{font-size:25px;line-height:1.3;font-weight:400}.experience-text p{font-size:15px;color:#616c60}.judgement{background:var(--ink);color:var(--paper)}.judgement .eyebrow{color:#afd566}.judgement-columns{display:grid;grid-template-columns:1fr 1fr;gap:9vw;margin-top:45px}.judgement h3{font-size:17px;font-weight:500;color:#c1d99b;margin-bottom:15px}.judgement p{font-size:15px;color:#c0c8bd}.contact{display:grid;grid-template-columns:1.6fr 1fr;gap:8vw}.contact>div>p:not(.eyebrow){font-size:15px;color:#65705f;margin-top:20px}.contact-details{padding-top:38px}.contact-details h3{font-size:22px;font-weight:500}.contact-details>p{margin:3px 0 24px!important;font-size:13px!important}.contact-details>a{display:block;font-size:19px;line-height:1.9}.contact-details>a:hover{color:var(--green-dark)}.contact-details .location{margin-top:24px!important}footer{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:32px 5vw;border-top:1px solid var(--line);font-size:11px}footer span{color:#6e7668}footer a{border-bottom:1px solid var(--green);padding-bottom:4px}dialog{border:0;background:var(--paper);padding:40px 24px 16px;max-width:min(1100px,95vw);max-height:95vh;color:var(--ink)}dialog::backdrop{background:#182017db}dialog img{max-height:77vh;max-width:100%;margin:auto;object-fit:contain}dialog p{margin-top:12px;font-size:13px}.close-photo{position:absolute;top:8px;right:18px;background:none;border:0;cursor:pointer;font-size:13px}
@media(min-width:1600px){body{max-width:1800px;margin:auto}.hero-copy{padding-left:100px}}@media(max-width:950px){.hero-copy{padding-top:55px}.hero{min-height:570px}.hero-photo{min-height:570px}.hero h1{font-size:49px}.hero-copy .actions{gap:20px}.section{padding:70px 5vw}.about{gap:5vw}.service-body{gap:30px}.gallery figcaption{display:block}.gallery figcaption span{display:block}.photo-button img{height:300px}.contact{gap:30px}}@media(max-width:680px){html{scroll-padding-top:25px}.header{padding:10px 5vw;position:relative}.brand{height:78px}.menu-toggle{display:block;border:1px solid #bbc5af;background:none;padding:8px 15px;font-size:13px}.header nav{display:none;position:absolute;top:99px;left:0;right:0;background:var(--paper);z-index:5;padding:22px 5vw;gap:20px;box-shadow:0 8px 14px #24312115}.header nav.open{display:flex;flex-direction:column;align-items:flex-start}.hero{display:flex;flex-direction:column}.hero-copy{padding:48px 6vw 35px}.hero h1{font-size:54px;letter-spacing:-2px}.hero .eyebrow{font-size:10px}.intro{font-size:16px;max-width:360px}.signature{margin-top:32px}.hero-photo{min-height:360px}.stats{grid-template-columns:1fr 1fr;padding:32px 6vw;gap:32px}.stats strong{font-size:42px}.section{padding:60px 6vw}.about,.process-layout,.contact{grid-template-columns:1fr;gap:30px}.section h2{font-size:36px;letter-spacing:-1px}.about-copy .large{font-size:19px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:20px}.section-heading br{display:none}summary{gap:16px;padding:22px 0}summary h3{font-size:20px}.service-body{display:block;padding:0 0 24px 40px;font-size:14px}.service-body .service-example{margin-top:20px;font-size:17px}.stage-content{padding-top:0}.stage-content h3{font-size:29px}.gallery{grid-template-columns:1fr;gap:28px}.photo-button img{height:310px}.experience-text{grid-template-columns:1fr;gap:18px}.judgement-columns{grid-template-columns:1fr;gap:32px}.contact-details{padding-top:10px}.contact p br{display:none}footer{flex-direction:column;align-items:flex-start;gap:20px;padding:26px 6vw}.button{gap:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* JMI brand palette */
:root{--ink:#121612;--green:#89b936;--green-dark:#4d6f1f;--paper:#f6f7f1;--line:#d7dfcd}
.header{background:#121612;border-bottom-color:#313c29}
.brand{background:#fff;border-radius:2px}
.header nav{color:#f0f5e9}
.header nav a:hover{color:#b8e06d}
.nav-contact{border-color:#89b936}
.hero-copy{background:#121612;color:#f6f7f1}
.hero-copy .eyebrow{color:#b2dc68}
.hero h1 em{color:#a6d753}
.hero .intro{color:#d0d8c9}
.hero .button{background:#a6d753;color:#121612}
.hero .button:hover{background:#b9e875}
.hero .text-link{color:#f4f8ec;border-color:#a6d753}
.hero .text-link:hover{color:#b9e875}
.hero .signature{color:#becbb4}
.stats{background:#a6d753;color:#121612}
.stats strong{font-weight:500}
.stats strong span{color:#354d13}
.stats p{color:#283c12}
.process{background:#e5edda}
.stage.active{border-bottom-color:#7aa437}
.photo-button>span{background:#a6d753;color:#121612}
.judgement{background:#121612}
.judgement .eyebrow{color:#b2dc68}
.judgement h3{color:#b2dc68}
.contact{background:#edf3e4}
footer{background:#121612;color:#f0f4e9;border-top:3px solid #89b936}
footer span{color:#bdcbb2}
.menu-toggle{color:#f0f4e9;border-color:#89b936}
@media(max-width:680px){.header nav{background:#121612;box-shadow:0 8px 14px #12161233}}

/* Previous works gallery */
.gallery-filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.work-filter{background:transparent;border:1px solid #b9c5ac;padding:9px 16px;font-size:12px;cursor:pointer;color:#344329}
.work-filter.selected{background:#121612;color:#b9e875;border-color:#121612}
.work-filter:hover{border-color:#557521}
.gallery-status{font-size:12px;color:#687461;margin:0 0 26px}
.gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px}
.gallery .photo-button img{height:265px;object-fit:cover}
.gallery .photo-button.full-frame img{object-fit:contain;background:#e5ebdd}
.gallery figcaption{display:block;line-height:1.45}
.gallery figcaption strong{display:block;font-size:13px}
.gallery figcaption span{display:block;font-size:12px;margin-top:4px}
.work-item[hidden]{display:none}
@media(max-width:1000px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.gallery{grid-template-columns:1fr}.gallery .photo-button img{height:300px}.gallery-filters{gap:8px}.work-filter{padding:8px 12px}}

/* Compact collections and labelled photo viewer */
.gallery-instruction{font-size:14px;color:#65705f;margin-bottom:25px}
.collection-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.collage-button{display:block;width:100%;padding:0;border:0;background:#e5ebdd;position:relative;cursor:pointer}
.collage{height:320px;display:grid;grid-template-columns:1.5fr 1fr;grid-template-rows:1fr 1fr;gap:5px;overflow:hidden}
.collage img{width:100%;height:100%;min-height:0;object-fit:cover;transition:filter .2s}
.collage img:first-child{grid-row:1 / 3}
.collage-1{grid-template-columns:1fr;grid-template-rows:1fr}
.collage-1 img:first-child{grid-row:1}
.collage-button:hover img{filter:brightness(1.06)}
.collage-open{position:absolute;bottom:14px;right:14px;background:#a6d753;color:#121612;padding:4px 13px;font-size:20px}
.collection-gallery figcaption{margin-top:17px}
.collection-gallery figcaption strong{font-size:15px;font-weight:500}
.development-copy{max-width:850px;margin-top:34px}
.development-copy p{font-size:17px;line-height:1.8}
#photo-dialog{width:min(1080px,95vw);padding:30px 28px 22px}
.dialog-heading{padding-right:90px;margin-bottom:18px}
.dialog-heading .eyebrow{font-size:10px;margin-bottom:5px}
.dialog-heading h3{font-size:24px;font-weight:500;line-height:1.3}
#photo-dialog #dialog-image{height:min(58vh,590px);width:100%;object-fit:contain;background:#e9ede2}
.dialog-photo-details{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:15px}
.dialog-photo-details #dialog-caption{font-size:16px;margin:0}
#dialog-count{font-size:12px;color:#647159;white-space:nowrap}
.dialog-controls{display:flex;justify-content:space-between;margin-top:20px}
.dialog-controls[hidden]{display:none}
.dialog-controls button{border:1px solid #bdc9ad;background:transparent;padding:9px 15px;cursor:pointer;font-size:13px}
.dialog-controls button:hover{background:#a6d753}
@media(max-width:1000px){.collage{height:260px;grid-template-columns:1fr 1fr}.collection-gallery figcaption strong{font-size:13px}}
@media(max-width:680px){.collection-gallery{grid-template-columns:1fr;gap:30px}.collage{height:290px;grid-template-columns:1.5fr 1fr}.collection-gallery figcaption strong{font-size:16px}.development-copy p{font-size:15px}#photo-dialog{padding:35px 16px 20px}.dialog-heading h3{font-size:20px}.dialog-photo-details #dialog-caption{font-size:14px}}

/* Owner introduction within the business profile */
.about-person{display:flex;align-items:center;gap:24px;margin-top:40px}
.about-person img{width:144px;height:180px;object-fit:cover;object-position:center 25%;filter:saturate(.3);border-left:4px solid #89b936}
.about-person figcaption{max-width:190px;line-height:1.5}
.about-person figcaption .eyebrow{display:block;font-size:9px;letter-spacing:1.5px;line-height:1.7;margin-bottom:12px}
.about-person figcaption strong{display:block;font-size:19px;font-weight:500}
.about-person figcaption>span:last-child{display:block;font-size:12px;color:#63715b;margin-top:4px}
@media(max-width:950px){.about-person{gap:16px}.about-person img{width:120px;height:156px}.about-person figcaption strong{font-size:17px}}
@media(max-width:680px){.about-person{margin-top:28px;gap:24px}.about-person img{width:124px;height:160px}}
