/* Quiet architectural lines; actual-photo placeholders stay pure white. */
.manifesto{background-image:linear-gradient(90deg,transparent calc(50% - .5px),rgba(117,99,78,.065) 50%,transparent calc(50% + .5px))}
.services{background-image:linear-gradient(rgba(117,99,78,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(117,99,78,.025) 1px,transparent 1px);background-size:88px 88px}
.portfolio{background-image:linear-gradient(90deg,transparent 7.95%,rgba(117,99,78,.08) 8%,transparent 8.05%,transparent 91.95%,rgba(117,99,78,.08) 92%,transparent 92.05%)}
.about{background-image:linear-gradient(135deg,rgba(255,255,255,.025),transparent 55%)}
.process{background-image:radial-gradient(rgba(117,99,78,.12) .65px,transparent .65px);background-size:22px 22px}
.contact{background-image:linear-gradient(90deg,transparent 7.95%,rgba(117,99,78,.13) 8%,transparent 8.05%,transparent 91.95%,rgba(117,99,78,.13) 92%,transparent 92.05%),radial-gradient(ellipse at 50% 0,rgba(255,255,255,.42),transparent 72%)}
.line-icon{width:25px;height:25px;flex-shrink:0;display:block}
.step-icon{width:66px;height:66px;display:flex;align-items:center;justify-content:center;border:1px solid #c9bdab;background:#f5f2eb;margin-top:24px;margin-bottom:23px;border-radius:50%}
.step-icon .line-icon{width:30px;height:30px;color:#75634e}
.process-steps h3{margin-top:0}.process-steps li{position:relative}
.process-steps li:not(:last-child)::after{content:'→';position:absolute;right:-23px;top:117px;color:#aa9578;font-size:18px;font-weight:300}
.contact-buttons>*{display:grid;grid-template-columns:27px auto;column-gap:13px;row-gap:6px;align-content:center;justify-content:center;min-width:204px;padding:21px 24px}
.contact-buttons .line-icon{grid-column:1;grid-row:1/3;align-self:center}
.contact-buttons small{grid-column:2;text-align:left}.contact-buttons>button:disabled{opacity:.78}
@media(max-width:760px){
 .services{background-size:64px 64px}.manifesto{background-image:none}
 .process-steps li{grid-template-columns:50px 1fr;column-gap:18px;padding:28px 0}
 .process-steps li>span{grid-column:1;grid-row:1;font-size:13px;text-align:center;align-self:start;padding-top:1px}
 .step-icon{grid-column:1;grid-row:2/4;width:48px;height:48px;margin:7px 0 0}
 .step-icon .line-icon{width:24px;height:24px}
 .process-steps h3{grid-column:2;grid-row:2;margin:5px 0 10px}
 .process-steps p{grid-column:2;grid-row:3}
 .process-steps li:not(:last-child)::after{display:none}
 .contact-buttons>*{display:flex;min-width:0;flex-direction:column;gap:9px;padding:19px 6px}
 .contact-buttons .line-icon{width:23px;height:23px;margin-bottom:2px}
 .contact-buttons small{text-align:center;font-size:9px}
 .portfolio{background-image:none}
}
@media(max-width:760px){.process-steps p br{display:block}}
/* Preserve the supplied project photographs without cropping. */
.project .photo-empty:has(img),.project:nth-child(2) .photo-empty:has(img){aspect-ratio:auto;background:#e8e1d5;border:0;display:block;overflow:hidden}
.project .photo-empty img{display:block;width:100%;height:auto;object-fit:contain}
.project-grid{row-gap:55px}.project-bottom{gap:16px;align-items:baseline}
@media(max-width:760px){.project-bottom{flex-wrap:wrap;gap:8px}.project h3{font-size:17px}}
/* Click / swipe gallery: photographs remain uncropped. */
.work-gallery{display:block;width:100%}
.work-stage{display:block;position:relative;width:100%;aspect-ratio:3/2;max-height:760px;padding:0;border:0;overflow:hidden;background:#e9e4dc;cursor:pointer;touch-action:pan-y pinch-zoom;color:white}
.work-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.work-hint{position:absolute;z-index:2;right:22px;bottom:20px;font-size:11px;letter-spacing:.1px;background:rgba(34,30,25,.62);padding:12px 16px;pointer-events:none;backdrop-filter:blur(5px)}
.work-hint>span{margin-left:16px}
.work-toolbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:23px 0;gap:16px}
.work-toolbar>p{font-size:18px;font-weight:550;margin:0}
.work-navigation{display:flex;align-items:center;gap:18px}
.work-navigation button{width:44px;height:44px;background:transparent;border:1px solid #bcb09f;border-radius:50%;color:#514536;cursor:pointer;font-size:22px;transition:background .2s,color .2s}
.work-navigation button:hover{background:#655641;color:white}
.work-count{font-size:12px;letter-spacing:2px;color:#75634e;font-variant-numeric:tabular-nums;min-width:60px;text-align:center}
.work-dots{display:flex;justify-content:center;gap:5px;padding-top:15px}
.work-dots button{width:35px;height:32px;padding:0;border:0;background:transparent;cursor:pointer;position:relative}
.work-dots button::after{content:'';position:absolute;left:4px;right:4px;top:15px;height:2px;background:#d0c6b8;transition:background .2s}
.work-dots button[aria-pressed=true]::after{background:#665039}
@media(max-width:760px){.work-stage{aspect-ratio:4/3}.work-toolbar{padding:16px 0}.work-toolbar>p{font-size:16px}.work-navigation{gap:10px}.work-navigation button{width:40px;height:40px}.work-count{font-size:10px;min-width:50px}.work-hint{font-size:9px;padding:8px 10px;right:10px;bottom:10px}.work-hint>span{margin-left:8px}}
@media(prefers-reduced-motion:reduce){.work-navigation button,.work-dots button::after{transition:none}}

/* Translucent full-row service images. */
.services .service{position:relative;isolation:isolate;grid-template-columns:110px minmax(0,1fr) 25%;column-gap:28px;row-gap:12px;min-height:270px;padding:44px 24px;transition:min-height .55s ease,padding .55s ease}
.services .service.preview-open{min-height:640px;padding-top:420px;padding-bottom:54px}
.service-no{grid-column:1;grid-row:1/3;align-self:start;padding-top:8px}
.service h3{grid-column:2;grid-row:1;align-self:end}.service p{grid-column:2;grid-row:2;align-self:start}
.service-tag{grid-column:3;grid-row:1/3;display:block;text-align:right}
.service-trigger{font:inherit;letter-spacing:inherit;color:inherit;border:0;background:none;padding:6px 0;cursor:pointer;text-align:left}
.service-trigger::after{content:'↗';display:inline-block;margin-left:18px;font-size:17px;color:#9a876e;transition:transform .35s}
.preview-open .service-trigger::after{transform:translate(3px,-3px)}
.service-preview{position:absolute;z-index:-1;inset:0;margin:0;opacity:0;visibility:hidden;transition:opacity .55s ease,inset .55s ease,visibility .55s;overflow:hidden;background:#ede8df;pointer-events:none}
.service-preview img{width:100%;height:100%;object-fit:cover;object-position:center 58%;display:block;opacity:1;transform:scale(1.035);transition:transform .8s ease}
.service-preview::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(17,16,13,.88),rgba(17,16,13,.38) 32%,rgba(17,16,13,.04) 65%)}
.service-preview figcaption{position:absolute;z-index:1;bottom:15px;right:24px;color:#fff;font-size:10px;pointer-events:auto}
.service-preview a{text-underline-offset:3px}.service-preview a:hover{text-decoration:underline}
.preview-open .service-preview{opacity:1;visibility:visible;inset:0 -40px}.preview-open .service-preview img{transform:scale(1)}
@media(max-width:900px) and (min-width:761px){.services .service{grid-template-columns:75px minmax(0,1fr) 20%;column-gap:18px}.service p{font-size:12px}}
@media(max-width:760px){.services .service{display:block;min-height:215px;padding:28px 12px}.services .service.preview-open{min-height:540px;padding:330px 16px 64px}.service-no{display:block;margin-bottom:10px;padding:0}.service h3{margin-bottom:8px}.service-tag{display:none}.preview-open .service-preview{inset:0 -8px}.service p br{display:block}.service-preview figcaption{right:12px;bottom:10px}}
@media(prefers-reduced-motion:reduce){.services .service,.service-preview,.service-preview img,.service-trigger::after{transition:none}}

.services .service.preview-open h3,.services .service.preview-open p,.services .service.preview-open .service-no,.services .service.preview-open .service-tag,.services .preview-open .service-trigger::after{color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.2)}
.services .service.preview-open .service-no{align-self:end;padding-bottom:12px}
.services .service.preview-open .service-tag{align-self:end;padding-bottom:16px}
.services .service.preview-open h3{font-size:clamp(26px,2.3vw,36px)}
@media(max-width:760px){.services .service.preview-open h3{font-size:26px}.services .service.preview-open .service-no{padding-bottom:0}.service-preview img{object-position:center}.services .service.preview-open p{font-size:13px}.service-preview::after{background:linear-gradient(0deg,rgba(17,16,13,.92),rgba(17,16,13,.38) 40%,transparent 75%)}}

.service-grid{overflow-anchor:none}


@media(min-width:1101px){.process-steps{grid-template-columns:repeat(6,minmax(0,1fr));gap:22px}}
@media(min-width:761px) and (max-width:1100px){.process-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.process-steps li:nth-child(3)::after{display:none}}
