.gallery-page{background:#fffaf5;color:#132814}
.gallery-page .rococo-nav{z-index:30}
.gallery-page .nav-link.active{color:var(--green)}
.gallery-page .nav-link.active::after{transform:scaleX(1)}

.gallery-hero{
  min-height:62vh;
  display:flex;
  align-items:flex-end;
  position:relative;
  overflow:hidden;
  padding:clamp(90px,12vw,165px) 0 70px;
  background:
    linear-gradient(112deg,rgba(255,250,245,.95),rgba(241,192,185,.56)),
    radial-gradient(circle at 82% 22%,rgba(89,126,74,.18),transparent 33%);
}
.gallery-back-wrap{position:absolute;z-index:3;top:34px;left:50%;transform:translateX(-50%)}
.gallery-back{
  width:max-content;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:11px 16px;
  border:1px solid rgba(33,98,28,.18);
  border-radius:999px;
  background:rgba(255,250,245,.72);
  color:var(--green);
  font-size:.82rem;
  font-weight:700;
  backdrop-filter:blur(12px);
  transition:.25s ease;
}
.gallery-back svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.gallery-back:hover{color:var(--green);background:white;transform:translateX(-3px);box-shadow:0 12px 30px rgba(33,98,28,.12)}
.gallery-hero::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(33,98,28,.3),transparent);
}
.gallery-hero-inner{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);
  gap:70px;
  align-items:end;
}
.gallery-hero h1{
  margin:10px 0 0;
  color:var(--green);
  font:400 clamp(4.5rem,10vw,9.5rem)/.78 "Anton",sans-serif;
  letter-spacing:-.035em;
  text-transform:uppercase;
}
.gallery-hero h1 span,.gallery-hero h1 em{display:block}
.gallery-hero h1 em{
  color:transparent;
  -webkit-text-stroke:1.5px var(--green);
  font-family:"PT Serif",serif;
  font-weight:400;
  text-transform:none;
  letter-spacing:-.05em;
}
.gallery-hero-orb{position:absolute;border-radius:50%;pointer-events:none}
.gallery-hero-orb-a{width:340px;height:340px;right:8%;top:-90px;border:1px solid rgba(33,98,28,.16)}
.gallery-hero-orb-b{width:160px;height:160px;right:26%;top:90px;background:rgba(241,192,185,.35);filter:blur(2px)}
.gallery-intro{padding-bottom:12px}
.gallery-intro>p{font:400 1.1rem/1.65 "PT Serif",serif;color:#3b533b;margin:0 0 34px}
.gallery-intro>span{display:flex;align-items:baseline;gap:12px;color:var(--green);font:.72rem "Roboto",sans-serif;letter-spacing:.18em}
.gallery-intro b{font:400 3rem/1 "Anton",sans-serif;letter-spacing:0}

.gallery-showcase{padding:110px 0;background:#fffaf5}
.gallery-heading-row{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:40px;
  margin-bottom:44px;
}
.gallery-heading-row h2{
  color:var(--green);
  font:400 clamp(2.8rem,5vw,5.5rem)/.9 "Anton",sans-serif;
  margin:8px 0 0;
}
.gallery-heading-row>p{margin:0;color:#647063;font:italic 1rem "PT Serif",serif}
.rococo-gallery-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-auto-rows:115px;
  gap:18px;
}
.gallery-tile{
  grid-column:span 4;
  grid-row:span 4;
  position:relative;
  overflow:hidden;
  padding:0;
  border:0;
  border-radius:28px;
  background:#e8ddd4;
  text-align:left;
  cursor:zoom-in;
  box-shadow:0 18px 60px rgba(19,40,20,.08);
}
.gallery-tile.tile-tall{grid-column:span 5;grid-row:span 6}
.gallery-tile.tile-wide{grid-column:span 7;grid-row:span 4}
.gallery-tile:nth-child(4n){grid-column:span 7;grid-row:span 5}
.gallery-tile:nth-child(5n){grid-column:span 5;grid-row:span 5}
.gallery-tile img{width:100%;height:100%;object-fit:cover;transition:transform .75s cubic-bezier(.2,.7,.2,1),filter .4s ease}
.gallery-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(10,30,12,.78));transition:opacity .35s}
.gallery-tile>span{
  position:absolute;
  z-index:2;
  left:22px;
  right:22px;
  bottom:18px;
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:14px;
  color:white;
}
.gallery-tile small{font:400 .92rem "Anton";color:var(--pink);letter-spacing:.08em}
.gallery-tile strong{font:700 1.15rem "PT Serif",serif;text-align:right}
.gallery-tile:hover img,.gallery-tile:focus-visible img{transform:scale(1.045);filter:saturate(1.05)}
.gallery-tile:focus-visible{outline:3px solid var(--pink);outline-offset:4px}
.gallery-empty{grid-column:1/-1;padding:80px 24px;text-align:center;border:1px dashed rgba(33,98,28,.2);border-radius:28px;color:var(--green2)}

.gallery-cta{
  margin-top:80px;
  padding:44px 50px;
  display:grid;
  grid-template-columns:90px 1fr auto;
  align-items:center;
  gap:34px;
  border-radius:30px;
  background:var(--green);
  color:white;
  box-shadow:0 30px 90px rgba(19,40,20,.18);
}
.gallery-cta>img{width:90px;height:90px;object-fit:contain;filter:brightness(0) invert(1);opacity:.9}
.gallery-cta .mini-label{color:var(--pink)}
.gallery-cta h2{margin:8px 0 0;font:400 clamp(1.7rem,3vw,3rem)/1.05 "PT Serif",serif}
.gallery-cta .pill-btn{background:var(--pink);color:var(--green);white-space:nowrap}
.gallery-cta .pill-btn:hover{background:white;color:var(--green)}

.gallery-footer{background:var(--ink);color:white;padding:44px 0}
.gallery-footer .container{display:flex;align-items:center;justify-content:space-between;gap:30px}
.gallery-footer-brand{display:flex;align-items:center;gap:14px}
.gallery-footer-brand img{width:58px;height:58px;object-fit:contain;filter:brightness(0) invert(1)}
.gallery-footer-brand>span{font:400 1.65rem "PT Serif",serif;letter-spacing:.16em}
.gallery-footer-brand small{display:block;margin-top:4px;color:var(--pink);font:500 .52rem "Roboto",sans-serif;letter-spacing:.18em}
.gallery-footer p{margin:0;color:#c8d3c6;font-size:.8rem}
.gallery-footer>a:last-child{color:var(--pink);font-weight:700}

.gallery-lightbox{
  width:min(980px,calc(100vw - 32px));
  max-width:none;
  height:min(820px,calc(100dvh - 32px));
  max-height:none;
  padding:0;
  border:0;
  border-radius:30px;
  overflow:hidden;
  background:#101b11;
  color:white;
  box-shadow:0 35px 120px rgba(0,0,0,.55);
}
.gallery-lightbox::backdrop{background:rgba(8,17,9,.86);backdrop-filter:blur(12px)}
.gallery-lightbox figure{width:100%;height:100%;margin:0;display:grid;grid-template-rows:1fr auto}
.gallery-lightbox figure img{width:100%;height:100%;min-height:0;object-fit:contain;background:#101b11}
.gallery-lightbox figcaption{display:flex;justify-content:space-between;gap:20px;padding:18px 28px;background:#162418}
.gallery-lightbox figcaption span{color:var(--pink);font:400 .9rem "Anton";letter-spacing:.1em}
.gallery-lightbox figcaption strong{font:700 1rem "PT Serif",serif}
.lightbox-close,.lightbox-nav{
  position:absolute;
  z-index:3;
  border:0;
  color:white;
  display:grid;
  place-items:center;
  background:rgba(19,40,20,.72);
  backdrop-filter:blur(10px);
}
.lightbox-close{right:16px;top:16px;width:46px;height:46px;border-radius:50%;font-size:1.8rem}
.lightbox-nav{top:50%;width:52px;height:70px;transform:translateY(-50%);font-size:2.5rem}
.lightbox-prev{left:14px;border-radius:18px}
.lightbox-next{right:14px;border-radius:18px}

@media(max-width:991.98px){
  .gallery-hero{min-height:auto;padding:90px 0 60px}
  .gallery-hero-inner{grid-template-columns:1fr;gap:42px}
  .gallery-intro{max-width:480px}
  .rococo-gallery-grid{grid-auto-rows:95px}
  .gallery-tile{grid-column:span 6}
  .gallery-tile.tile-tall{grid-column:span 6;grid-row:span 6}
  .gallery-tile.tile-wide{grid-column:span 6;grid-row:span 4}
  .gallery-tile:nth-child(4n),.gallery-tile:nth-child(5n){grid-column:span 6}
  .gallery-cta{grid-template-columns:70px 1fr;padding:38px}
  .gallery-cta>img{width:70px;height:70px}
  .gallery-cta>a{grid-column:2}
}
@media(max-width:767.98px){
  .gallery-hero{padding:70px 0 48px}
  .gallery-back-wrap{top:22px}
  .gallery-hero h1{font-size:clamp(4rem,20vw,6rem)}
  .gallery-heading-row{align-items:flex-start;flex-direction:column;margin-bottom:28px}
  .gallery-showcase{padding:75px 0}
  .rococo-gallery-grid{display:block}
  .gallery-tile,.gallery-tile.tile-tall,.gallery-tile.tile-wide,.gallery-tile:nth-child(4n),.gallery-tile:nth-child(5n){
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:4/5;
    margin-bottom:16px;
    border-radius:22px;
  }
  .gallery-tile:nth-child(even){aspect-ratio:1/1}
  .gallery-cta{margin-top:55px;grid-template-columns:1fr;gap:20px;padding:32px 26px}
  .gallery-cta>img{width:66px;height:66px}
  .gallery-cta>a{grid-column:auto;width:100%}
  .gallery-footer .container{align-items:flex-start;flex-direction:column}
  .gallery-lightbox{width:100vw;height:100dvh;border-radius:0}
  .lightbox-nav{width:44px;height:60px}
}
@media(prefers-reduced-motion:reduce){
  .gallery-tile img{transition:none}
}
