.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;padding:0}
.service-grid{gap:30px}.service-grid .service-card{position:relative;isolation:isolate;background:#fff;border:1px solid #dbe3d5;padding:0 25px 23px;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;flex-direction:column}
.service-grid .service-card:hover,.service-grid .service-card:focus-within{transform:translateY(-5px);box-shadow:0 15px 32px #123d3112;border-color:#9bac8a;background:#fff}
.service-cover{width:calc(100% + 50px);max-width:none;height:200px;margin:0 -25px 24px;object-fit:cover}
.service-card .service-no{font-size:.7rem;margin-bottom:16px}.service-card p{margin-bottom:24px}.service-open,.visual-open{border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;text-align:left;padding:0;cursor:pointer}
.service-open:after{content:'';position:absolute;inset:0;z-index:1}.service-open:focus-visible{outline:none}.service-card:focus-within{outline:3px solid #b3944e;outline-offset:3px}
.gallery-hint{display:flex;gap:12px;align-items:center;font-size:.85rem;font-weight:600;color:var(--green);padding-top:18px;border-top:1px solid var(--line);margin-top:auto}.gallery-hint>span:last-child{margin-left:auto;font-size:1.2rem}.photo-total{font-weight:400;color:var(--muted);font-size:.78rem}
.cinematic-hero .hero-bottom button{padding:0;border:0;background:none;font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;min-height:32px}.cinematic-hero .hero-bottom button:hover{color:var(--gold)}
.visual-open:after{content:'';position:absolute;inset:0}.visual-open:hover{color:#e9d5a0}.visual-open:focus-visible{outline:2px solid var(--gold)}
#service-gallery{width:min(1320px,94vw);max-width:1320px;max-height:calc(100dvh - 50px);border:0;border-radius:8px;padding:0;color:var(--ink);background:#fff;overflow:auto;box-shadow:0 30px 100px #0008;overscroll-behavior:contain}
#service-gallery::backdrop{background:#061912d9;backdrop-filter:blur(7px)}
#service-gallery[open]{animation:gallery-in .34s cubic-bezier(.2,.7,.2,1)}
#service-gallery[open]::backdrop{animation:backdrop-in .28s ease-out}
#service-gallery.closing{animation:gallery-out .18s ease-in forwards}
#service-gallery.closing::backdrop{animation:backdrop-out .18s ease-in forwards}
.gallery-header{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:23px 30px;position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--line)}
.gallery-header .eyebrow{margin:0 0 9px;font-size:.7rem}.gallery-header h2{font-size:clamp(1.8rem,2.6vw,2.6rem);line-height:1.12}.gallery-close{flex-shrink:0;border:1px solid var(--line);background:#f1f4ef;color:var(--green);width:48px;height:48px;border-radius:50%;font-size:2rem;line-height:1;cursor:pointer}.gallery-close:hover{background:var(--green);color:white}
.gallery-content{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,1fr);gap:36px;padding:28px 30px 32px}.gallery-media,.gallery-details{min-width:0}
.gallery-stage{height:clamp(320px,47vh,530px);position:relative;overflow:hidden;background:#0e201a;border-radius:3px;display:flex;align-items:center;justify-content:center;touch-action:pan-y}
#gallery-image{width:100%;height:100%;object-fit:contain}#gallery-image[hidden]{display:none}.gallery-stage[aria-busy=true]:after{content:'Loading photo…';position:absolute;bottom:18px;left:20px;background:#0c251ddd;padding:5px 12px;color:white;font-size:.8rem}
.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border:1px solid #ffffff55;border-radius:50%;background:#07231cbb;color:#fff;font-size:1.45rem;cursor:pointer;z-index:2;transition:background .2s}.gallery-arrow:hover{background:var(--gold);color:var(--deep)}.previous{left:14px}.next{right:14px}
#gallery-counter{position:absolute;right:16px;bottom:16px;border:1px solid #ffffff44;background:#0b251ecc;border-radius:20px;padding:5px 12px;color:white;font-size:.8rem;font-variant-numeric:tabular-nums}
#gallery-error{padding:60px;text-align:center;color:white;font-size:1rem}.gallery-caption{padding:20px 0 17px;min-height:148px}#photo-kind{font-size:.7rem;color:#5c7d48;letter-spacing:.07em;text-transform:uppercase;margin:0 0 6px}.gallery-caption h3{font-size:1.35rem;margin-bottom:8px}#photo-description{font-size:.9rem;color:var(--muted);margin-bottom:8px}#photo-credit{font-size:.75rem;color:#647066;line-height:1.55}#photo-credit a{color:#286342;text-decoration:underline;text-underline-offset:3px}
.gallery-thumbnails{display:flex;gap:10px;overflow-x:auto;padding:3px 3px 10px;scrollbar-width:thin}.gallery-thumbnails button{flex:0 0 95px;width:95px;height:70px;overflow:hidden;padding:0;background:#e9eee6;border:2px solid transparent;border-radius:3px;cursor:pointer;opacity:.64;transition:opacity .2s,transform .2s,border-color .2s}.gallery-thumbnails img{width:100%;height:100%;object-fit:cover}.gallery-thumbnails button:hover{opacity:1}.gallery-thumbnails button[aria-pressed=true]{opacity:1;border-color:var(--green);box-shadow:0 0 0 1px var(--green);transform:translateY(-2px)}
#gallery-intro{font-size:1rem;line-height:1.75;color:#526257;margin-bottom:25px}.gallery-details>h3,.system-background h3{font-size:1.15rem;margin-bottom:15px;letter-spacing:-.02em}.gallery-details ul{padding:0;list-style:none;margin:0 0 28px}.gallery-details li{font-size:.95rem;padding:11px 0 11px 23px;border-bottom:1px solid var(--line);position:relative;line-height:1.55}.gallery-details li:before{content:'✓';position:absolute;left:0;color:#69844d}.system-background{padding:20px;background:#f1f4ee;border-left:2px solid var(--gold);margin-bottom:22px}.system-background p{font-size:.9rem;line-height:1.7;color:#58655a;margin:0}.gallery-sources{font-size:.8rem;color:var(--muted);margin-bottom:26px}.gallery-sources summary{cursor:pointer;color:var(--green);font-size:.88rem;padding:3px 0}.gallery-sources p{margin:12px 0}#gallery-source-links a{display:block;color:var(--green);text-decoration:underline;text-underline-offset:3px;margin:8px 0}.gallery-enquiry{font-size:.88rem;min-height:48px}
@keyframes gallery-in{from{opacity:0;transform:translateY(25px) scale(.98)}to{opacity:1;transform:none}}@keyframes gallery-out{to{opacity:0;transform:translateY(12px) scale(.99)}}@keyframes backdrop-in{from{opacity:0}to{opacity:1}}@keyframes backdrop-out{to{opacity:0}}
@media(max-width:1000px){.service-grid{gap:20px}.service-grid .service-card{padding:0 20px 22px}.service-cover{width:calc(100% + 40px);margin-left:-20px;margin-right:-20px;height:175px}.gallery-content{gap:25px;padding:24px}.gallery-header{padding:20px 24px}.gallery-content{grid-template-columns:minmax(0,1.25fr) minmax(275px,1fr)}}
@media(max-width:750px){#service-gallery{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:6px}.gallery-content{display:block;padding:18px}.gallery-header{padding:17px 18px;gap:14px}.gallery-header h2{font-size:1.7rem}.gallery-header .eyebrow{font-size:.64rem;letter-spacing:.07em;margin-bottom:6px}.gallery-close{width:42px;height:42px;font-size:1.8rem}.gallery-stage{height:clamp(235px,46vh,400px)}.gallery-arrow{width:42px;height:42px}.previous{left:8px}.next{right:8px}.gallery-caption{min-height:0;padding:16px 0}.gallery-caption h3{font-size:1.3rem}.gallery-thumbnails{margin-bottom:24px}.gallery-thumbnails button{flex-basis:82px;width:82px;height:64px}.gallery-details{padding-top:23px;border-top:1px solid var(--line)}.gallery-enquiry{width:100%;justify-content:space-between}.service-cover{height:190px}.service-card .photo-total{display:none}.service-grid .service-card{padding-bottom:22px}}
@media(max-width:450px){.service-grid{grid-template-columns:1fr}.service-cover{height:210px}.service-card .photo-total{display:inline}.gallery-header h2{font-size:1.5rem}.gallery-header .eyebrow{max-width:235px}.gallery-stage{height:250px}}
@media(prefers-reduced-motion:reduce){#service-gallery[open],#service-gallery[open]::backdrop,#service-gallery.closing,#service-gallery.closing::backdrop{animation:none}.service-grid .service-card:hover{transform:none}}
