.gallery-hero{
position:relative;
height:720px;
min-height:640px;
overflow:hidden;
background:var(--forest-dark);
color:var(--warm-white);
}

.gallery-hero-media{
position:absolute;
inset:0;
}

.gallery-hero-media img{
width:100%;
height:100%;
object-fit:cover;
object-position:center;
display:block;
}

.gallery-hero-media::after{
content:"";
position:absolute;
inset:0;
background:
linear-gradient(180deg,rgba(15,22,17,.48) 0%,rgba(15,22,17,.16) 32%,rgba(15,22,17,.08) 100%),
linear-gradient(90deg,rgba(15,22,17,.86) 0%,rgba(15,22,17,.62) 42%,rgba(15,22,17,.18) 78%,rgba(15,22,17,.08) 100%);
}

.gallery-hero .container{
position:relative;
z-index:2;
height:100%;
display:flex;
align-items:center;
padding-top:var(--header-height);
}

.gallery-hero-content{
max-width:760px;
padding:70px 0;
}

.gallery-hero .eyebrow{
margin-bottom:26px;
color:var(--sand);
}

.gallery-hero h1{
margin-bottom:28px;
font-size:68px;
line-height:1.05;
color:var(--warm-white);
}

.gallery-hero-content p{
max-width:610px;
font-size:18px;
line-height:1.75;
color:rgba(255,255,255,.78);
}

.gallery-intro{
background:var(--warm-white);
}

.gallery-intro-grid{
display:block;
max-width:900px;
}

.gallery-intro .eyebrow{
display:flex;
margin-bottom:24px;
}

.gallery-intro h2{
max-width:820px;
margin:0 0 28px;
}

.gallery-intro p{
max-width:760px;
margin:0;
font-size:17px;
line-height:1.8;
}

.gallery-main{
padding:0 0 110px;
background:var(--warm-white);
}

.gallery-main-grid{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
grid-auto-rows:280px;
grid-auto-flow:row;
gap:18px;
}

.gallery-photo{
position:relative;
width:100%;
height:100%;
margin:0;
overflow:hidden;
background:var(--cream);
}

.gallery-photo-large{
grid-row:span 2;
}

.gallery-photo-wide{
grid-column:1 / -1;
grid-row:span 2;
}

.gallery-photo-link{
display:block;
width:100%;
height:100%;
overflow:hidden;
}

.gallery-photo img{
width:100%;
height:100%;
object-fit:cover;
object-position:center;
display:block;
transition:transform .75s ease,filter .75s ease;
}

.gallery-photo::after{
content:"";
position:absolute;
inset:0;
background:linear-gradient(
to top,
rgba(15,22,17,.58) 0%,
rgba(15,22,17,.06) 42%,
rgba(15,22,17,0) 70%
);
pointer-events:none;
}

.gallery-photo:hover img{
transform:scale(1.025);
filter:brightness(.96);
}

.gallery-photo figcaption{
position:absolute;
left:24px;
right:24px;
bottom:20px;
z-index:2;
display:flex;
align-items:center;
gap:14px;
color:var(--warm-white);
pointer-events:none;
}

.gallery-photo figcaption span{
font-family:var(--font-display);
font-size:14px;
color:var(--sand);
}

.gallery-photo figcaption p{
font-size:14px;
line-height:1.4;
color:rgba(255,255,255,.9);
}

.gallery-process{
background:var(--cream);
}

.gallery-process-header{
display:block;
max-width:900px;
margin-bottom:52px;
}

.gallery-process-header .eyebrow{
display:flex;
margin-bottom:24px;
}

.gallery-process-header h2{
max-width:820px;
margin:0;
}

.gallery-process-list{
border-top:1px solid var(--line);
}

.gallery-process-item{
display:grid;
grid-template-columns:60px 260px minmax(0,1fr);
gap:30px;
align-items:start;
padding:30px 0;
border-bottom:1px solid var(--line);
}

.gallery-process-item > span{
font-family:var(--font-display);
font-size:15px;
line-height:1.4;
color:var(--wood);
}

.gallery-process-item > div{
display:contents;
}

.gallery-process-item h3{
margin:0;
font-family:var(--font-display);
font-size:25px;
font-weight:400;
line-height:1.3;
color:var(--forest-dark);
}

.gallery-process-item p{
max-width:760px;
margin:0;
font-size:15px;
line-height:1.75;
color:var(--gray);
}

.gallery-nature{
position:relative;
height:700px;
overflow:hidden;
background:var(--forest-dark);
}

.gallery-nature-media{
position:absolute;
inset:0;
}

.gallery-nature-media img{
width:100%;
height:100%;
object-fit:cover;
object-position:center;
display:block;
}

.gallery-nature-media::after{
content:"";
position:absolute;
inset:0;
background:
linear-gradient(90deg,rgba(15,22,17,.72) 0%,rgba(15,22,17,.42) 44%,rgba(15,22,17,.12) 75%,rgba(15,22,17,.05) 100%),
linear-gradient(180deg,rgba(15,22,17,.08) 0%,rgba(15,22,17,.24) 100%);
}

.gallery-nature .container{
position:relative;
z-index:2;
height:100%;
display:flex;
align-items:flex-end;
padding-bottom:72px;
}

.gallery-nature-content{
max-width:650px;
}

.gallery-nature .eyebrow{
margin-bottom:22px;
color:var(--sand);
}

.gallery-nature h2{
margin-bottom:22px;
font-size:48px;
color:var(--warm-white);
}

.gallery-nature p{
max-width:570px;
font-size:17px;
line-height:1.75;
color:rgba(255,255,255,.78);
}

.lightbox{
position:fixed;
inset:0;
z-index:9999;
display:flex;
align-items:center;
justify-content:center;
padding:40px 80px;
background:rgba(8,12,9,.55);
opacity:0;
visibility:hidden;
pointer-events:none;
transition:opacity .25s ease,visibility .25s ease;
}

.lightbox.is-open{
opacity:1;
visibility:visible;
pointer-events:auto;
}

.lightbox-image{
display:block;
max-width:100%;
max-height:calc(100vh - 80px);
width:auto;
height:auto;
object-fit:contain;
}

.lightbox-close{
position:absolute;
top:24px;
right:32px;
z-index:2;
width:48px;
height:48px;
display:flex;
align-items:center;
justify-content:center;
padding:0;
border:0;
background:rgba(15,22,17,.45);
color:#fff;
font-family:Arial,sans-serif;
font-size:38px;
font-weight:300;
line-height:1;
cursor:pointer;
transition:background .2s ease,transform .2s ease;
}

.lightbox-close:hover{
background:rgba(15,22,17,.75);
transform:scale(1.05);
}