/* One representative cover per category; full, uncropped photographs live in
   the gallery. Without the JS enhancement every inline category stays usable. */
.work-category-browser{container-type:inline-size}
.work-cover-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-break,34px)}
.work-cover{margin:0;min-width:0}
.work-cover-open{display:block;border-radius:20px;min-width:0}
.work-cover-frame{aspect-ratio:4/3;border-radius:20px;background:var(--sand)}
.work-cover-frame img{width:100%;height:100%;object-fit:cover;object-position:var(--work-focal,50% 50%)}
.work-cover-copy{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-bound,12px);padding-block-start:var(--sp-bound,12px)}
.work-cover-copy strong{font-family:var(--display);font-size:clamp(24px,2.3vw,32px);font-weight:400;line-height:1.1}
.work-cover-copy > span{display:inline-flex;align-items:center;gap:8px;min-height:44px;flex:none;font-family:var(--body);font-size:14px;font-weight:600;color:var(--brass-ink,var(--espresso))}
.work-cover .work-description{margin-block-start:4px;font-size:13px}
.work-category-fallback{margin-block-start:var(--sp-break,34px)}
.work-category-fallback summary{font-family:var(--display);font-size:clamp(24px,3vw,32px);min-height:52px;padding-block:var(--sp-bound,12px);cursor:pointer}
.work-category-content{margin-block-start:var(--sp-flow,22px)}
.work-series{min-width:0}
.work-series + .work-series{margin-block-start:calc(var(--sp-break,34px) * 1.5)}
.work-series-title{margin:0 0 .65em;font-size:clamp(24px,2.4vw,32px);line-height:1.08;overflow-wrap:anywhere}
.work-category-browser[data-work-enhanced] > .work-category-fallback{display:none}
.work-category-dialog{margin:auto;padding:0;width:min(1200px,calc(100% - 24px));max-width:calc(100% - 24px);max-height:calc(100dvh - 24px);border:1px solid var(--line);border-radius:24px;background:var(--paper);color:var(--ink);overflow:auto;box-shadow:0 24px 100px rgba(0,0,0,.32)}
.work-category-dialog::backdrop{background:rgba(10,8,6,.82);backdrop-filter:blur(8px)}
.work-category-shell{padding-inline:var(--sp-break,34px);padding-block-end:var(--sp-break,34px);min-width:0}
.work-category-top{position:sticky;inset-block-start:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-bound,12px);padding-block:var(--sp-flow,22px);background:var(--paper)}
.work-category-top h2{margin:0;min-width:0;font-size:clamp(28px,3vw,42px);line-height:1.08}
.work-category-close{font:inherit;background:var(--surface);border-color:var(--line);color:var(--ink)}
.work-category-close:hover{background:var(--sand)}
.work-category-close span{font-size:23px;line-height:1}
.work-category-dialog .work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-break,34px) var(--sp-flow,22px)}
.work-category-dialog .work-category-content{margin:0}
.work-category-dialog .work-grid-natural.is-measured{row-gap:0}
.work-category-dialog .work-grid-natural.is-measured .work-item{padding-block-end:var(--sp-break,34px)}
.work-category-dialog .work-open{scroll-margin-block-start:104px}
.work-category-dialog .work-description{color:var(--ink-soft)}
.work-category-dialog .work-item.reveal{opacity:1;filter:none;transform:none;transition:none}
.work-cover-open:focus-visible,.work-category-dialog .work-open:focus-visible,.work-category-dialog .work-control:focus-visible{outline:2px solid var(--espresso);outline-offset:4px}
.work-lightbox .work-control:focus-visible,.work-lightbox .under-link:focus-visible{outline:2px solid var(--brass-bright);outline-offset:4px}
@container (max-width:900px){.work-cover-grid{gap:var(--sp-flow,22px)}.work-cover-copy{display:block}.work-cover-copy > span{display:flex;margin-block-start:4px}}
@container (max-width:600px){.work-cover-grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-break,34px)}.work-cover-copy{display:flex;flex-wrap:wrap}}
@media(max-width:900px){.work-category-dialog .work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.work-category-shell{padding-inline:var(--sp-flow,22px);padding-block-end:var(--sp-flow,22px)}.work-category-dialog .work-grid{grid-template-columns:minmax(0,1fr)}.work-category-top h2{font-size:28px}.work-category-top{align-items:flex-start}.work-category-close{flex:none}}
@media(prefers-reduced-motion:no-preference){
  .work-cover-frame img{transition:transform var(--dur-4) var(--ease-out)}
  .work-category-dialog[open] .work-item{animation:work-gallery-arrive var(--dur-4) var(--ease-out) both;animation-delay:calc(var(--work-index,0) * var(--rv-stagger))}
  @keyframes work-gallery-arrive{from{opacity:.65;filter:blur(var(--rv-blur));transform:translateY(var(--rv-y)) scale(var(--rv-scale))}to{opacity:1;filter:none;transform:none}}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.work-cover-open:hover .work-cover-frame img{transform:scale(1.025)}}
@media(forced-colors:active){.work-cover-open:focus-visible,.work-category-dialog .work-open:focus-visible,.work-category-dialog .work-control:focus-visible,.work-lightbox .work-control:focus-visible,.work-lightbox .under-link:focus-visible{outline-color:Highlight}}

/* Booking belongs inside the modal's top layer. The footer stays in flow so
   the last photograph can scroll fully clear; measured chrome also governs
   focus clearance and the full-image preview at enlarged text sizes. */
.work-property-fallback{margin-block:0 0 var(--sp-flow,22px)}
.work-property-fallback .under-link{min-height:44px}
.work-category-browser[data-work-enhanced] .work-property-fallback{display:none}
.work-category-dialog,.work-lightbox{scroll-padding-block-start:calc(var(--work-header-h,80px) + 12px);scroll-padding-block-end:calc(var(--work-footer-h,0px) + 12px)}
.work-category-shell{--work-gallery-pad:var(--sp-break,34px);padding-block-end:0}
.work-category-top{z-index:3;flex-wrap:wrap}
.work-category-top h2{flex:1 1 min-content;min-width:min-content;overflow-wrap:normal}
.work-category-top form{flex:none;margin-inline-start:auto}
.work-category-dialog .work-open{scroll-margin-block-start:calc(var(--work-header-h,80px) + 12px);scroll-margin-block-end:calc(var(--work-footer-h,0px) + 12px)}
.work-category-booking,.work-lightbox-footer{position:sticky;inset-block-end:0;z-index:2;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;padding-block:14px calc(14px + env(safe-area-inset-bottom,0px))}
.work-category-booking{margin-inline:calc(0px - var(--work-gallery-pad));padding-inline:max(var(--work-gallery-pad),env(safe-area-inset-left,0px)) max(var(--work-gallery-pad),env(safe-area-inset-right,0px));border-top:1px solid var(--line);background:var(--paper)}
.work-category-booking[hidden],.work-image-booking[hidden]{display:none}
.work-property-booking{min-height:44px;max-width:100%;white-space:normal;text-align:center;justify-content:center;gap:10px}
.work-property-booking .btn-t{min-width:0;overflow-wrap:anywhere}
.work-category-booking .work-property-booking{width:100%}
.work-property-booking:focus-visible{outline:2px solid var(--espresso);outline-offset:4px}
.work-lightbox-shell{padding-block-end:0}
.work-lightbox-top{position:sticky;inset-block-start:0;z-index:3;flex-wrap:wrap;background:var(--onyx);padding-block:8px}
.work-lightbox-top form{margin-inline-start:auto}
.work-lightbox-bottom{display:block}
.work-lightbox-stage img{max-height:max(140px,calc(100dvh - var(--work-header-h,80px) - var(--work-footer-h,80px) - 150px))}
.work-lightbox-footer{margin-inline:calc(0px - var(--s-3));padding-inline:max(var(--s-3),env(safe-area-inset-left,0px)) max(var(--s-3),env(safe-area-inset-right,0px));background:var(--onyx);border-top:1px solid var(--line-dk);justify-content:space-between}
.work-lightbox-footer .work-lightbox-nav{gap:8px;flex:none}
.work-lightbox-footer .work-control{min-width:44px;min-height:44px;padding:10px 12px}
.work-image-booking{display:flex;flex:1 1 170px;min-width:0}
.work-image-booking .work-property-booking{width:100%;background:var(--paper);color:var(--ink);border-color:var(--paper)}
.work-lightbox .work-property-booking:focus-visible{outline-color:var(--brass-bright)}
@media(max-width:600px){.work-category-shell{--work-gallery-pad:var(--sp-flow,22px);padding-block-end:0}}
@media(forced-colors:active){.work-property-booking:focus-visible{outline-color:Highlight}}
