/* Isolated from existing .filter-btn, .project-card, .projects__grid and service galleries. */
.asspg{--sg-ink:#202720;--sg-muted:#61685e;--sg-paper:#f5f3ed;--sg-gold:#b8a159;box-sizing:border-box;background:var(--sg-paper);color:var(--sg-ink);font-family:var(--font-body,"Jost",sans-serif);padding:clamp(48px,6vw,92px) 0;scroll-margin-top:110px}
.asspg *,.asspg *::before,.asspg *::after{box-sizing:border-box}
.asspg [hidden]{display:none!important}
.asspg__shell{width:min(1400px,90%);margin-inline:auto}
.asspg__heading{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:18px}
.asspg__eyebrow{color:#746131;font-size:.7rem;font-weight:500;letter-spacing:.17em;text-transform:uppercase;margin:0 0 10px}
.asspg h2{font-family:var(--font-display,"Cormorant Garamond",Georgia,serif);font-weight:400;font-size:clamp(2.7rem,4.5vw,4.6rem);line-height:1.02;letter-spacing:-.03em;color:var(--sg-ink);margin:0}
.asspg__intro{max-width:32em;font-size:.98rem;line-height:1.7;margin:0;color:#465043}
.asspg__notice{max-width:78em;font-size:.77rem;line-height:1.65;color:var(--sg-muted);margin:0 0 27px}
.asspg__filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.asspg__filter{display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid #c9cbbf;background:transparent;color:#36412f;min-height:44px;padding:10px 15px;font:inherit;font-size:.79rem;line-height:1.4;cursor:pointer;border-radius:2px}
.asspg__filter span{font-size:.67rem;opacity:.8;font-variant-numeric:tabular-nums}
.asspg__filter:hover{border-color:#4d6045;background:#e9ebdf}
.asspg__filter[aria-pressed="true"]{background:#243522;border-color:#243522;color:#fff}
.asspg__count{font-size:.8rem;line-height:1.5;color:var(--sg-muted);min-height:1.5em;margin:0 0 17px}
.asspg__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 22px}
.asspg__card{margin:0;min-width:0}
.asspg__image{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;background:#e0e2d9;border-radius:2px;text-decoration:none}
.asspg__image img{display:block;width:100%;height:100%;object-fit:cover;border:0;transition:transform .3s ease}
.asspg__image img:not([src]){display:none}
.asspg__image noscript img{position:absolute;inset:0}
.asspg__image:hover img{transform:scale(1.035)}
.asspg__zoom{position:absolute;right:12px;bottom:12px;width:35px;height:35px;display:grid;place-items:center;background:rgba(255,255,255,.92);color:#233221;font-size:1.35rem;border-radius:50%}
.asspg figcaption{padding:14px 0 0}
.asspg__room{font-size:.61rem;text-transform:uppercase;letter-spacing:.1em;line-height:1.65;color:#646c5e;margin:0 0 5px;overflow-wrap:anywhere}
.asspg__room span{margin:0 4px;color:#9a9f91}
.asspg h3{font-family:var(--font-body,"Jost",sans-serif);font-weight:400;font-size:1rem;line-height:1.5;letter-spacing:0;color:var(--sg-ink);margin:0}
.asspg__footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;border-top:1px solid #d6d8cc;padding-top:26px;margin-top:34px}
.asspg__footer p{max-width:43em;font-size:.8rem;line-height:1.8;color:var(--sg-muted);margin:0}
.asspg__footer p a{color:#284628;text-decoration:underline;text-underline-offset:3px}
.asspg__button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:48px;padding:13px 21px;border:1px solid #5c6a53;border-radius:0;background:transparent;color:#2d4129;font:inherit;font-size:.78rem;font-weight:500;text-decoration:none;cursor:pointer}
.asspg__button:hover{background:#243522;color:white;border-color:#243522}
.asspg a:focus-visible,.asspg button:focus-visible{outline:3px solid #936d19;outline-offset:4px}
.asspg__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.asspg__dialog{width:min(1200px,96vw);max-width:96vw;max-height:94vh;max-height:94dvh;padding:0;border:1px solid #56604f;border-radius:4px;background:#142011;color:#fff;overflow:auto}
.asspg__dialog:not([open]){display:none}
.asspg__dialog::backdrop{background:rgba(10,16,9,.9)}
.asspg__lightbox{padding:18px 22px}
.asspg__dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.asspg__dialog-header p{margin:0;color:#e8e4d6;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase}
.asspg__dialog button{font:inherit;background:transparent;color:#fff;border:1px solid #74856a;min-height:44px;min-width:44px;padding:9px 13px;cursor:pointer}
.asspg__dialog button:hover{background:#344a2c}
.asspg__dialog button:focus-visible{outline-color:#ead397}
.asspg__dialog-header button{display:flex;gap:17px;align-items:center;font-size:.78rem}
.asspg__dialog-header button span{font-size:1.4rem;line-height:1}
.asspg__stage{height:min(65vh,780px);height:min(65dvh,780px);background:#0c150a;display:grid;place-items:center}
.asspg__stage img{width:100%;height:100%;max-height:65vh;max-height:65dvh;object-fit:contain}
.asspg__dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:15px}
.asspg__dialog-caption{font-size:.98rem;line-height:1.6;margin:0;color:#fff}
.asspg__dialog-note{color:#bfc9b8;font-size:.68rem;line-height:1.6;margin:5px 0 0}
.asspg__arrows{display:flex;align-items:center;gap:12px;flex-shrink:0}
.asspg__arrows p{min-width:60px;text-align:center;margin:0;font-size:.76rem;font-variant-numeric:tabular-nums;color:#dce3d5}
@media(max-width:900px){.asspg__heading{display:block}.asspg__intro{margin-top:18px;max-width:unset}.asspg__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 16px}.asspg__filter{padding:9px 12px}}
@media(max-width:520px){.asspg__shell{width:90%}.asspg__filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.asspg__filter{font-size:.69rem;gap:5px;padding:9px 7px;justify-content:space-between;text-align:left}.asspg__grid{grid-template-columns:1fr;gap:25px}.asspg__footer{display:block}.asspg__footer p{margin-top:20px}.asspg__button{width:100%}.asspg__lightbox{padding:12px}.asspg__stage,.asspg__stage img{height:50vh;height:50dvh;max-height:50vh;max-height:50dvh}.asspg__dialog-bottom{display:block}.asspg__arrows{margin-top:16px;justify-content:center}.asspg__dialog-header{margin-bottom:12px}.asspg__dialog-caption{font-size:.88rem}}
@media(prefers-reduced-motion:reduce){.asspg__image img{transition:none}.asspg__image:hover img{transform:none}}
