.carousel-track{scroll-behavior:auto;scroll-snap-stop:always;touch-action:pan-x pan-y pinch-zoom}
.carousel-slide{scroll-snap-stop:always}
.project-carousel .carousel-slide>a{height:clamp(310px,45vw,530px)}
.project-carousel .carousel-slide img{display:block;width:100%;height:100%;object-fit:contain}
.project-carousel .carousel-slide figcaption{background:var(--paper);color:var(--ink);padding:26px;min-height:0}
.project-carousel figcaption h3{font-size:clamp(1.55rem,3vw,2.1rem);margin:12px 0}
.project-carousel figcaption p{font-size:.92rem;max-width:900px}
.project-carousel .text-link{margin-top:20px}
.project-carousel .carousel-thumbs img{width:100%;height:100%;object-fit:cover}
.photo-viewer{position:fixed;inset:0;margin:0;padding:0;border:0;width:100%;height:100vh;height:100dvh;max-width:none;max-height:none;background:#101918;color:#fff;overflow:hidden}
.photo-viewer[open]{display:block}
.viewer-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100%;min-width:0;min-height:0;background:#101918;color:#fff}
.viewer-shell:fullscreen{width:100%;height:100%;margin:0;padding:0}
.viewer-tools [aria-pressed=true]{border-color:var(--teal);background:#ffffff24}
.photo-viewer::backdrop{background:#101918}
.viewer-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));padding-top:max(10px,env(safe-area-inset-top));border-bottom:1px solid #ffffff24}
.viewer-toolbar h2{font-size:15px;line-height:1.4;font-weight:500;margin:0;overflow-wrap:anywhere}
.viewer-tools{display:flex;gap:5px;align-items:center}
.photo-viewer button{min-width:44px;min-height:44px;background:#ffffff0e;color:#fff;border:1px solid #ffffff50;border-radius:4px;cursor:pointer;font:inherit}
.photo-viewer button:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.photo-viewer button:disabled{opacity:.3;cursor:default}
.viewer-tools [data-viewer=close]{font-size:26px}
.viewer-tools [data-viewer=zoom-reset]{min-width:61px;font-size:12px}
.viewer-viewport{display:grid;place-items:center;min-height:0;min-width:0;overflow:hidden;touch-action:none;overscroll-behavior:contain;position:relative;cursor:grab}
.viewer-viewport:active{cursor:grabbing}
.viewer-image{width:auto;height:auto;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;pointer-events:none;user-select:none;transform-origin:center center;will-change:transform}
.viewer-bottom{padding:8px max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top:1px solid #ffffff24;min-width:0}
.viewer-navigation{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:14px;align-items:center}
.viewer-counter{font-size:12px;color:#adc5bf;text-align:center;margin:0}
.viewer-caption{font-size:14px;line-height:1.45;text-align:center;margin:4px 0;overflow-wrap:anywhere}
.viewer-thumbs{display:flex;gap:8px;overflow-x:auto;max-width:100%;padding:6px 0;overscroll-behavior-x:contain;scrollbar-width:thin}
.viewer-thumbs button{flex:0 0 64px;height:56px;padding:2px;border:2px solid transparent}
.viewer-thumbs button[aria-current]{border-color:var(--teal)}
.viewer-thumbs img{height:100%;width:100%;object-fit:cover}
.viewer-hint{font-size:11px;line-height:1.4;text-align:center;color:#b7c6c1;margin:3px 0}
.base-price-box{border:1px solid #91b3a6;padding:24px;margin:20px 0;background:#f1f7f2;border-radius:4px}
.base-price-box h3{font-size:1.35rem;margin-bottom:16px}
.base-price-equation{font-size:clamp(1.15rem,3vw,1.6rem);font-weight:600;color:#174c42;overflow-wrap:anywhere;margin:14px 0}
.base-price-box h4{font-size:1rem;margin:22px 0 10px}
.base-price-box ul{padding-left:20px;font-size:.86rem;line-height:1.65}
.base-price-box .small-note{margin-top:15px}
.base-price-curve{border-collapse:collapse;width:100%;max-width:520px;font-size:.88rem;margin:16px 0}
.base-price-curve td,.base-price-curve th{padding:8px 12px;border-bottom:1px solid #c5d7cc;text-align:left}
.base-price-details{margin:26px 0;padding:18px 22px;background:#f1f7f2;border:1px solid #c5d7cc;border-radius:4px}
.base-price-details>summary{cursor:pointer;font-weight:600;min-height:30px}
.base-price-details p,.base-price-details li{font-size:.86rem}
.base-price-details ul{padding-left:20px}
@media(max-width:600px){.viewer-toolbar{grid-template-columns:minmax(0,1fr);gap:6px}.viewer-tools{justify-content:flex-end}.viewer-toolbar h2{font-size:13px}.viewer-caption{font-size:12px}.viewer-navigation{gap:8px}.viewer-thumbs button{flex-basis:58px;height:48px}.project-carousel .carousel-slide figcaption{padding:19px}.base-price-box{padding:18px}.base-price-details{padding:16px}}
@media(max-height:500px){.viewer-toolbar h2{font-size:12px}.viewer-thumbs,.viewer-hint{display:none}.viewer-caption{font-size:12px}.viewer-toolbar{grid-template-columns:minmax(0,1fr) auto}.viewer-toolbar,.viewer-bottom{padding-top:5px;padding-bottom:5px}}
