/* Large, permanent gallery: every photo and floor is visible on the page. */
.project-media{margin:0 var(--gutter);min-width:0}
.project-media-stage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;width:100%;margin:0 auto}
.project-media-slide{margin:0;min-width:0}
.project-media-slide[data-kind="exterior"]{grid-column:1/-1}
.project-media-slide[data-kind="plan"]:not(.paired-plan){grid-column:1/-1;width:min(100%,1000px);justify-self:center}
.project-media-open{display:block;position:relative;width:100%;cursor:zoom-in;outline-offset:4px!important}
.project-media-open img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border-radius:0;user-select:none;-webkit-user-drag:none}
.project-media-slide figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:14px 0 0;font-size:17px;line-height:1.5}
.project-media-slide figcaption span{color:var(--muted);font-size:13px;white-space:nowrap}
.media-arrow{display:grid;place-items:center;flex:none;width:48px;height:48px;padding:0;border-radius:50%;background:#263c32;color:#fff;border:1px solid #ffffff80;font-family:Arial,sans-serif;font-size:27px;line-height:1;touch-action:manipulation}
.media-arrow:hover{background:#18221e}
.media-arrow:focus-visible{outline:3px solid #c9debd;outline-offset:3px}
.project-details{padding-top:72px;padding-bottom:64px}
.project-spec .area-net dd{font-size:25px}
.project-rooms{padding-top:0;padding-bottom:64px}
.room-schedule{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.room-schedule summary{padding:24px 0;font-size:20px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}
.room-schedule summary::after{content:'+';font-size:26px}
.room-schedule[open] summary::after{content:'−'}
.room-schedule summary::-webkit-details-marker{display:none}
.room-schedule summary>span{margin-left:auto;color:var(--muted);font-size:15px;align-self:center}
.floor-schedule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:40px;padding:12px 0 28px}
.floor-schedule h3{font-size:26px;margin-bottom:22px}
.floor-schedule table{width:100%;border-collapse:collapse;font-size:15px}
.floor-schedule th,.floor-schedule td{padding:12px 0;border-bottom:1px solid #dedfd7;text-align:left;font-weight:400;vertical-align:top}
.floor-schedule th:last-child,.floor-schedule td:last-child{text-align:right;white-space:nowrap;padding-left:16px}
.floor-schedule thead th{color:var(--muted);font-size:13px}
.floor-schedule tfoot th,.floor-schedule tfoot td{font-weight:500}
.schedule-note{font-size:14px;color:var(--muted);padding:0 0 28px}
.project-intro .back-link{font-size:16px;color:#263c32;border:1px solid #b8c3b5;border-radius:6px;padding:11px 18px}

/* The full-screen viewer has one dark surface; only the original image is light. */
.image-viewer{padding:0;border:0;inset:0;margin:0;width:100%;height:100vh;height:100dvh;max-width:none;max-height:none;background:#101712;color:#fff;border-radius:0;overflow:hidden}
.image-viewer::backdrop{background:#101712}
.viewer-layout{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.viewer-topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:10px 20px;color:#fff}
.viewer-back,.viewer-close{min-height:44px;border:1px solid #ffffff55;border-radius:6px;color:#fff}
.viewer-back{justify-self:start;padding:8px 14px;font-size:15px}
.viewer-close{justify-self:end;width:44px;font-size:28px}
.viewer-canvas{position:relative;min-width:0;min-height:0}
.viewer-stage{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-y pinch-zoom}
.viewer-stage.is-zoomed{touch-action:pan-x pan-y pinch-zoom}
.viewer-scene{display:grid;place-items:center;min-width:100%;min-height:100%}
.viewer-image{display:block;max-width:none;max-height:none;object-fit:contain;padding:0;user-select:none;-webkit-user-drag:none}
.viewer-toolbar{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 16px 16px;color:#fff}
.viewer-title{line-height:1.4;margin:0;font-size:16px;text-align:center;min-width:0}
.viewer-navigation{display:flex;align-items:center;justify-content:center;gap:12px}
.viewer-count{min-width:54px;text-align:center;font-size:16px;font-variant-numeric:tabular-nums}
.viewer-zoom{display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.viewer-zoom button{min-height:44px;min-width:44px;border:1px solid #ffffff55;border-radius:4px;color:#fff}
.viewer-zoom button:disabled{opacity:.4;cursor:default}
.viewer-error,.viewer-loading{padding:20px;text-align:center;grid-area:1/1;margin:0}
.viewer-image{grid-area:1/1}


@media print{.image-viewer{display:none!important}.project-media-stage{width:auto}.project-media-slide[hidden]{display:block!important}.project-media-slide{break-inside:avoid}.project-media-open img{height:auto;max-height:none}}

/* Controls float over the viewer so the image can use the entire screen. */
.image-viewer[open]{display:block;position:fixed;width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100dvh}
.viewer-layout{position:relative;display:block;width:100%;height:100%}
.viewer-canvas{position:absolute;inset:0}
.viewer-topbar{position:absolute;z-index:2;inset:0 0 auto;background:linear-gradient(#101712dc,transparent);pointer-events:none}
.viewer-topbar button,.viewer-zoom{pointer-events:auto;background:#101712b8}
.viewer-toolbar{position:absolute;z-index:2;inset:auto 0 0;flex-direction:row;justify-content:space-between;gap:16px;background:linear-gradient(transparent,#101712ed);pointer-events:none}
.viewer-navigation{pointer-events:auto}
.viewer-image[hidden],.viewer-error[hidden],.viewer-loading[hidden]{display:none!important}
.viewer-title{text-align:left;text-shadow:0 1px 5px #000}


/* Photos fill the viewer; the fit button and floor plans show the whole image. */
.viewer-stage.is-filled{overflow:hidden}

/* One mobile rule set; landscape overrides only the original padding. */
@media(max-width:700px){
  .project-media{margin:0 16px}
  .project-media-stage{grid-template-columns:minmax(0,1fr);gap:28px}
  .project-media-open img{max-height:none}
  .project-media-slide figcaption{font-size:15px;gap:8px;padding-top:10px}
  .project-media-slide figcaption span{font-size:11px}
  .media-arrow{width:48px;height:48px;font-size:25px}
  .project-details{padding-top:44px;padding-bottom:40px}
  .project-rooms{padding-top:0;padding-bottom:42px}
  .room-schedule summary{font-size:18px;flex-wrap:wrap;gap:10px}
  .room-schedule summary>span{font-size:13px;max-width:140px}
  .floor-schedule-grid{grid-template-columns:minmax(0,1fr);gap:30px}
  .viewer-topbar{gap:6px;padding:8px;padding-top:max(8px,env(safe-area-inset-top))}
  .viewer-back{padding:8px;font-size:14px;white-space:nowrap}
  .viewer-toolbar{padding:10px;padding-bottom:max(12px,env(safe-area-inset-bottom));align-items:flex-end;gap:10px}
  .viewer-navigation{gap:6px}
  .viewer-title{font-size:13px}
  .viewer-count{min-width:40px;font-size:14px}
  .viewer-navigation .media-arrow{width:42px;height:42px}
  .viewer-zoom{gap:4px}
}
@media(max-height:500px) and (orientation:landscape){
  .viewer-topbar{padding:4px 10px}
  .viewer-toolbar{padding:4px 10px}
  .viewer-title{font-size:13px}
}
@media(min-width:701px) and (max-height:500px) and (orientation:landscape){
  .viewer-navigation .media-arrow{width:44px;height:44px}
}
