@font-face{font-family:Casa;src:url('./Sans-latin.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Casa;src:url('./SansSemi-latin.woff') format('woff');font-style:normal;font-weight:600;font-display:swap}
:root{--paper:#faf9f6;--ink:#292923;--muted:#62695d;--line:#d4d5cc;--control:#7d8574;--dark:#343831;--gutter:clamp(24px,4.45vw,64px);--max:1280px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Casa,Arial,sans-serif;font-size:16px;line-height:1.8}img{max-width:100%;height:auto;display:block}a{color:inherit;text-underline-offset:6px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--muted);outline-offset:5px}.skip{position:absolute;top:-120px;left:24px;z-index:20;background:#fff;padding:12px}.skip:focus{top:12px}.wrap{width:min(calc(100% - 2 * var(--gutter)),var(--max));margin-inline:auto}.site-header{background:#fff}.header-inner{min-height:116px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;gap:15px;text-decoration:none;flex-shrink:0}.brand img{height:76px;width:auto}.brand span{font-size:12px;line-height:1.8;letter-spacing:.13em}.brand b{font-weight:400;display:block}.desktop-nav{display:flex;align-items:center;gap:32px;font-size:13px;letter-spacing:.03em}.desktop-nav a{text-decoration:none;padding:12px 0}.desktop-nav a[aria-current=page]{border-bottom:1px solid var(--ink)}.mobile-nav{display:none;position:relative}.mobile-nav summary{list-style:none;min-width:48px;min-height:48px;display:flex;align-items:center;justify-content:center;font-size:13px}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav nav{position:absolute;right:0;top:54px;z-index:10;background:#fff;border:1px solid var(--line);padding:16px 24px;width:250px;box-shadow:0 12px 25px #29292312}.mobile-nav a{display:block;padding:11px 0;text-decoration:none}.preview-note{text-align:center;font-size:11px;letter-spacing:.025em;line-height:1.7;color:var(--muted);background:#f0efea;padding:7px 24px}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:.16em;color:var(--muted);margin:0 0 20px}h1,h2,h3{font-weight:400;line-height:1.35}h1{font-size:clamp(32px,3.34vw,48px);letter-spacing:.035em;margin:20px 0 24px}h2{font-size:clamp(28px,2.5vw,36px);letter-spacing:.015em}h3{font-size:23px}.lede{color:var(--muted);font-size:17px;max-width:710px;margin:0 auto;line-height:1.85}.home-intro,.page-intro{text-align:center;padding:72px 0 58px}.home-intro h1{max-width:850px;margin-inline:auto}.home-intro .lede{max-width:630px}.actions{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-top:35px}.button{min-height:54px;display:inline-flex;align-items:center;justify-content:center;text-align:center;padding:13px 22px;text-decoration:none;background:var(--dark);border:1px solid var(--dark);color:#fff;font-size:13px;letter-spacing:.025em}.actions .button{width:248px}.button.outline{background:transparent;border-color:var(--control);color:var(--ink)}.text-link{display:inline-block;font-size:14px;padding:7px 0;border-bottom:1px solid var(--control);text-decoration:none}.home-hero{margin:0 auto}.home-hero img{width:100%;height:auto}.photo-caption{display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted);padding-top:13px}.section{padding-block:98px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:36px}.section-head h2{margin:10px 0 0;max-width:700px}.section-head .eyebrow{margin-bottom:14px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 32px}.project-card a{text-decoration:none}.project-card figure{margin:0}.project-card img{width:100%;height:auto}.project-card .card-image{background:#f0efea;display:flex;align-items:center;justify-content:center;aspect-ratio:3/2;overflow:hidden}.project-card .card-image img{width:100%;height:100%;object-fit:contain}.project-card h3{margin:21px 0 7px;font-size:22px}.project-card p{font-size:14px;color:var(--muted);margin:0}.project-card .card-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase}.editorial-pair{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.editorial-pair .portrait{width:100%;max-width:520px;margin:0}.editorial-pair .portrait img{width:100%}.editorial-copy{max-width:520px}.editorial-copy p:not(.eyebrow){color:var(--muted)}.editorial-copy .text-link{margin-top:18px}.line-section{border-block:1px solid var(--line)}.service-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px}.service-cards h3{margin:12px 0 16px}.service-cards p{font-size:15px;color:var(--muted)}.service-cards .eyebrow{margin-bottom:10px}.process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px}.process-grid h3{font-size:21px}.process-grid p{font-size:15px;color:var(--muted)}.process-number{font-size:12px;color:var(--muted);letter-spacing:.13em}.enquiry-band{text-align:center;padding:84px 0 90px;border-top:1px solid var(--line)}.enquiry-band h2{max-width:760px;margin:20px auto}.enquiry-band p:not(.eyebrow){max-width:650px;margin-inline:auto;color:var(--muted)}.site-footer{background:#eeede7;padding:52px 0 26px}.footer-top{display:flex;justify-content:space-between;gap:50px}.footer-brand{font-size:14px;letter-spacing:.12em;line-height:1.8}.footer-description{font-size:14px;color:var(--muted);max-width:370px}.footer-contact{font-size:14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;margin-top:38px;border-top:1px solid var(--line);padding-top:22px;font-size:12px;color:var(--muted)}.footer-bottom nav{display:flex;flex-wrap:wrap;gap:22px}.footer-bottom a{text-decoration:none}.footer-compact{padding-top:30px}.footer-compact .footer-bottom{margin-top:0}.breadcrumb{font-size:12px;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap;margin:32px 0 0}.case-header{max-width:800px;margin:58px auto 48px;text-align:center}.case-header h1{font-size:42px}.case-header p:not(.eyebrow){color:var(--muted);font-size:17px}.case-photo{margin:0}.case-photo img{width:100%}.photo-open{padding:0;border:0;background:transparent;display:block;width:100%;cursor:zoom-in}.case-photo figcaption{font-size:12px;color:var(--muted);padding-top:12px}.case-hero.portrait{max-width:720px;margin-inline:auto}.case-story{display:grid;grid-template-columns:1fr 1.5fr;gap:80px;padding:68px 0;border-bottom:1px solid var(--line)}.case-story h2{margin:0;font-size:30px}.case-story p{margin:0;color:var(--muted)}.case-gallery{display:grid;grid-template-columns:1fr 1fr;gap:44px 32px;padding:68px 0}.case-gallery .landscape{grid-column:1/-1;max-width:1060px;width:100%;margin-inline:auto}.case-gallery .small-source{max-width:420px;margin-inline:auto}.case-related{padding:54px 0 84px;border-top:1px solid var(--line)}.case-related h2{margin:0 0 30px}.filters{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin:0 0 46px}.filters button{background:transparent;border:1px solid var(--control);padding:11px 19px;font-size:13px;min-height:46px}.filters button[aria-pressed=true]{background:var(--dark);color:#fff;border-color:var(--dark)}[hidden]{display:none!important}.project-count{text-align:center;font-size:12px;color:var(--muted);margin-top:28px}.prose{max-width:850px;margin-inline:auto}.prose p{color:var(--muted)}.prose h2{margin-top:52px;font-size:30px}.about-split{display:grid;grid-template-columns:1fr 1.35fr;gap:80px;padding:68px 0;border-top:1px solid var(--line)}.about-split h2{margin:0}.about-split p{margin:0 0 20px;color:var(--muted)}.service-overview{display:grid;grid-template-columns:1fr 1.5fr;gap:64px;padding:48px 0;border-top:1px solid var(--line)}.service-overview h2{margin:0;font-size:30px}.service-overview p{margin:0 0 20px;color:var(--muted)}.service-overview .text-link{margin-top:8px}.service-story>header{margin:64px auto;max-width:820px;text-align:center}.service-story p,.service-story li{color:var(--muted)}.service-story>section{padding:45px 0;border-top:1px solid var(--line)}.service-story>section>h2{font-size:29px;max-width:780px}.service-story>section>p,.service-story>section>ul{max-width:820px}.service-considerations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}.service-considerations h3{font-size:21px}.service-story>section.service-enquiry{padding-bottom:76px}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;padding:10px 0 80px}.direct-contact h2{font-size:28px;margin-top:0}.direct-contact>p{color:var(--muted)}.contact-lines{display:flex;flex-direction:column;align-items:flex-start;gap:15px;margin:28px 0}.contact-actions{display:flex;flex-wrap:wrap;gap:12px}label{font-size:13px}select,textarea{width:100%;border:1px solid var(--control);border-radius:0;background:#fff;color:var(--ink);min-height:48px;padding:10px 12px}textarea{resize:vertical;min-height:115px}.lightbox{overflow:auto;border:0;padding:24px;background:var(--paper);max-width:min(1100px,calc(100vw - 32px));max-height:94vh}.lightbox::backdrop{background:#111c}.lightbox img{max-height:calc(94vh - 210px);max-width:100%;width:auto;margin:auto;object-fit:contain}.lightbox button{display:block;margin:0 0 18px auto;border:1px solid var(--control);background:#fff;padding:9px 18px;min-height:44px}.lightbox p{font-size:13px;color:var(--muted)}.noscript{padding:12px 24px;text-align:center;font-size:13px;background:#eeede7}
@media(max-width:1000px){.desktop-nav{gap:20px;font-size:12px}.brand span{font-size:11px}.editorial-pair{gap:45px}.contact-grid{gap:45px}.service-cards,.process-grid{gap:28px}}
@media(max-width:850px){.desktop-nav{display:none}.mobile-nav{display:block}.header-inner{min-height:92px}.brand img{height:62px}.brand span{font-size:11px}.home-intro,.page-intro{padding:50px 0 42px}.section{padding-block:65px}.section-head{align-items:start;flex-direction:column;gap:18px}.editorial-pair{gap:35px}.service-cards,.process-grid{grid-template-columns:1fr}.service-cards article,.process-grid article{max-width:650px}.contact-grid{grid-template-columns:1fr;gap:45px}.case-story,.about-split,.service-overview{grid-template-columns:1fr;gap:24px}.service-considerations{grid-template-columns:1fr;gap:16px}.footer-top{gap:35px}}
@media(max-width:620px){body{font-size:15px}.preview-note{font-size:10px;padding-block:8px}.home-intro h1{font-size:32px;letter-spacing:.02em}.lede{font-size:15px;line-height:1.85}.home-intro .lede{max-width:325px}.actions{gap:14px;margin-top:28px}.actions .button{width:280px}.home-intro{padding:40px 0 38px}.page-intro{padding:38px 0}.photo-caption{font-size:11px;gap:12px}.section{padding-block:54px}.project-grid{grid-template-columns:1fr;gap:34px}.project-card h3{font-size:21px;margin-top:17px}.editorial-pair{grid-template-columns:1fr;gap:34px}.editorial-pair .portrait{max-width:100%}.editorial-copy h2{margin-top:13px}.section-head{margin-bottom:28px}.section-head h2{font-size:28px}.enquiry-band{padding:56px 0}.footer-top{flex-direction:column;gap:24px}.site-footer{padding-top:36px}.footer-bottom{margin-top:26px}.case-header{margin:38px auto 32px}.case-header h1{font-size:32px}.case-header p:not(.eyebrow){font-size:15px}.case-story{padding:44px 0;gap:22px}.case-story h2{font-size:27px}.case-gallery{grid-template-columns:1fr;padding:44px 0;gap:32px}.case-gallery .landscape{grid-column:auto}.case-gallery .small-source{max-width:100%}.case-related{padding:42px 0 54px}.about-split{padding:44px 0}.service-story>header{margin:38px auto}.service-story>section{padding:34px 0}.service-story>section>h2{font-size:26px}.service-overview{padding:36px 0}.contact-grid{padding-bottom:54px}.contact-actions .button{flex:1}.lightbox{padding:15px}.footer-compact{padding-top:24px}.footer-compact .footer-bottom{margin-top:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.portfolio-grid>.project-card:last-child:nth-child(odd){grid-column:1/-1;max-width:624px;width:100%;margin-inline:auto}

.photo-navigation{display:flex;align-items:center;justify-content:space-between;gap:20px}.photo-navigation button{margin:0;min-width:92px}.photo-navigation button:disabled{opacity:.55;cursor:default}.photo-navigation span{font-size:12px;color:var(--muted);text-align:center}.case-gallery{scroll-margin-top:24px}@media(max-width:620px){.photo-navigation{gap:12px}.photo-navigation button{min-width:75px;padding-inline:10px}}

.details-link{text-align:center;padding:0 0 38px}.details-intro nav{display:flex;justify-content:center;gap:12px 28px;flex-wrap:wrap;padding:0 0 48px;font-size:13px}.detail-study{border-top:1px solid var(--line);padding:52px 0 0;scroll-margin-top:24px}.detail-study>header{max-width:800px}.detail-study h2{margin:12px 0 0}.detail-study .case-gallery{padding-top:32px}.details-prompt{border-top:1px solid var(--line);padding:48px 0 72px}.details-prompt p{color:var(--muted)}@media(max-width:620px){.details-intro nav{justify-content:flex-start;gap:14px 25px}.detail-study{padding-top:38px}.detail-study .case-gallery{padding-top:26px}}

.detail-study .case-gallery.single-study{grid-template-columns:1fr}.detail-study .single-study .case-photo{margin-inline:auto}
/* Focused gallery navigation and image-led category discovery. */
.desktop-nav a[aria-current=true]{border-bottom:1px solid var(--ink)}
.category-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:48px 32px}.category-card{flex:0 1 calc((100% - 64px)/3);min-width:0;position:relative}.category-card>a{display:flex;flex-direction:column;height:100%;text-decoration:none}.category-cover{aspect-ratio:3/4;background:#f0efea;display:flex;align-items:center;justify-content:center}.category-cover img{width:100%;height:100%;object-fit:contain}.category-card h3{font-size:23px;margin:22px 0 12px;line-height:1.4}.category-card p{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 18px}.category-card .text-link{align-self:flex-start;margin-top:auto}.category-hub{padding-bottom:80px}.category-section{padding:54px 0 80px;border-top:1px solid var(--line)}.category-section.section{padding-block:84px}.category-section.section .category-card{flex-basis:calc((100% - 96px)/4)}.category-section.section .category-card h3{font-size:21px}.legacy-study-anchor{position:absolute;top:0;scroll-margin-top:30px}.category-tabs{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 25px;margin:0 0 46px;font-size:13px}.category-tabs a{padding:8px 0;text-decoration:none;border-bottom:1px solid transparent}.category-tabs a[aria-current=page]{border-color:var(--control)}.category-intro{max-width:760px;margin:54px auto 0;text-align:center}.category-intro h2{font-size:28px}.category-intro p{color:var(--muted)}.category-next{padding:54px 0 80px;border-top:1px solid var(--line)}.category-next>h2{text-align:center}.category-next>.text-link{display:table;margin:35px auto 0}.category-next .category-card{flex-basis:calc((100% - 32px)/2);max-width:405px}
@media(max-width:1050px){.desktop-nav{display:none}.mobile-nav{display:block}.header-inner{min-height:92px}.brand img{height:62px}.brand span{font-size:11px}}
@media(max-width:1000px){.category-card{flex-basis:calc((100% - 32px)/2)}.category-section.section .category-card{flex-basis:calc((100% - 32px)/2)}}
@media(max-width:620px){.category-grid{gap:38px}.category-card,.category-section.section .category-card,.category-next .category-card{flex-basis:100%;max-width:none}.category-card h3{margin-top:18px}.category-hub{padding-bottom:54px}.category-section,.category-section.section{padding:45px 0 54px}.category-tabs{justify-content:flex-start;gap:8px 20px;margin-bottom:32px}.category-intro{margin-top:38px;text-align:left}.category-next{padding:42px 0 54px}}
.craft-intro{border-bottom:1px solid var(--line)}.craft-columns{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-bottom:24px}.craft-columns>p{max-width:550px;margin:0;color:var(--muted)}.craft-columns ul{padding:0;margin:0;list-style:none}.craft-columns li+li{margin-top:24px}.craft-columns strong{display:block;font-weight:600;font-size:15px}.craft-columns span{display:block;font-size:14px;color:var(--muted);margin-top:5px}.case-actions{gap:16px;margin-top:28px}.case-actions .button{width:auto;min-width:225px}.case-service-links{display:flex;flex-wrap:wrap;gap:14px 25px;margin-top:22px;font-size:13px}.case-service-links a{padding:6px 0}@media(max-width:850px){.craft-columns{grid-template-columns:1fr;gap:32px}}@media(max-width:620px){.case-actions .button{width:100%}}
.service-hero{margin:0 auto 54px}.service-story-heading{max-width:830px;margin:58px auto 44px;text-align:center}.service-story-heading p{color:var(--muted)}.service-planning{border-top:1px solid var(--line);padding:50px 0}.service-planning>p{max-width:850px;color:var(--muted)}.service-planning h2{max-width:840px}.planning-links{display:flex;flex-wrap:wrap;gap:16px 30px;font-size:14px;margin-top:25px}.planning-links a{padding-block:6px}.service-references{padding:60px 0 80px;border-top:1px solid var(--line)}.service-planning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px;padding:26px 0 64px}.service-planning-grid h2{font-size:25px}.service-planning-grid p{color:var(--muted);font-size:15px}.service-faq{padding:52px 0 68px;border-top:1px solid var(--line);max-width:950px;margin-inline:auto}.service-faq details{border-bottom:1px solid var(--line);padding:20px 0}.service-faq summary{cursor:pointer;font-size:17px;line-height:1.6;padding:6px 28px 6px 0}.service-faq p{color:var(--muted);max-width:830px}@media(max-width:850px){.service-planning-grid{grid-template-columns:1fr;gap:20px}.service-story-heading{margin-top:40px}}@media(max-width:620px){.service-hero{margin-bottom:38px}.service-story-heading h1{font-size:32px}.service-planning,.service-references,.service-faq{padding-block:40px}.service-planning-grid{padding-bottom:40px}.service-faq summary{font-size:16px}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Projects discovery: scoped compact opening and accessible mobile filter rail. */
.projects-index .page-intro{padding:42px 0 26px}
.projects-index .page-intro h1{margin:0 0 14px}
.projects-index .page-intro .lede{max-width:660px}
.projects-index .filters{margin-bottom:26px}
.projects-index .filter-hint{display:none}
.projects-index .details-link{padding:0;margin-top:24px}
.projects-index .details-link .text-link{min-height:46px;padding-block:10px}
@media(max-width:620px){
.projects-index .page-intro{padding:28px 0 20px}
.projects-index .page-intro h1{font-size:32px}
.projects-index .page-intro .lede{max-width:340px;line-height:1.75}
.projects-index .filter-hint{display:block;margin:0 0 2px;font-size:12px;color:var(--muted)}
.projects-index .filters{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;gap:10px;margin:0 -8px 20px;padding:8px;scroll-padding-inline:8px;overscroll-behavior-x:contain;scrollbar-width:thin}
.projects-index .filters button{flex:0 0 auto;min-height:46px;white-space:nowrap;padding-inline:16px}
.projects-index .details-link{margin-top:22px}
}

/* Focus reveal is immediate for every motion preference and affects this rail only. */
.projects-index .filters{scroll-behavior:auto}

/* Contact-only conversation guidance. No enquiry controls. */
.contact-guidance{border:1px solid var(--line);padding:32px;background:#fff}
.contact-guidance h2{font-size:27px;margin:0 0 14px}
.contact-guidance p{color:var(--muted)}
.contact-guidance .hint{font-size:13px;margin-bottom:0}
.contact-lines a{overflow-wrap:anywhere}
.contact-actions .button{min-height:48px;text-align:center}
@media(max-width:620px){.contact-guidance{padding:24px 20px}.contact-actions .button{flex:1 1 100%;white-space:normal}}

/* 1.0.1: restrained profile links and a static, local-photo showcase. */
.instagram-link{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 8px;min-height:44px}
.external-link-mark{font-size:14px;line-height:1;letter-spacing:0}
.desktop-nav{gap:25px}
.desktop-nav .nav-instagram{display:inline-flex;flex-direction:row;align-items:center;gap:7px;min-height:44px;padding:12px 0}
.mobile-nav .nav-instagram{display:flex;align-items:baseline;border-top:1px solid var(--line);margin-top:8px;padding-top:14px}
.mobile-nav a[aria-current]{text-decoration:underline;text-underline-offset:5px}
.instagram-intro{color:var(--muted);max-width:570px;margin:20px 0 0;font-size:15px}
.instagram-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.instagram-grid figure{margin:0;min-width:0}
.instagram-grid img{width:100%;height:auto}
.instagram-grid figcaption{font-size:12px;color:var(--muted);margin-top:14px}
.instagram-action{margin-top:28px}
.portfolio-social{display:flex;align-items:baseline;justify-content:space-between;gap:16px 32px;border-top:1px solid var(--line);padding-block:27px 32px}
.portfolio-social p{margin:0;font-size:14px;color:var(--muted)}
.contact-brief-points{padding-left:21px;color:var(--muted);margin:0 0 22px}
.contact-brief-points li+li{margin-top:8px}
@media(min-width:1051px) and (max-width:1200px){.desktop-nav{gap:18px;font-size:12px}.header-inner{gap:20px}.brand span{font-size:11px}}
@media(max-width:850px){.instagram-grid{gap:20px}.portfolio-social{align-items:flex-start;flex-direction:column;gap:8px}}
@media(max-width:620px){.instagram-grid{grid-template-columns:1fr;gap:30px}.instagram-action{margin-top:20px}.portfolio-social{padding-block:22px 28px}}

/* 1.0.1 editorial family: full-frame local photographs, no decorative crops or text overlays. */
.home-opening{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);grid-template-rows:auto auto;gap:0 54px;padding-block:48px 72px}
.home-opening-title{grid-column:1;grid-row:1;align-self:end}
.home-opening-title .eyebrow{margin-bottom:21px}
.home-opening-title h1{font-size:clamp(38px,3.45vw,50px);line-height:1.18;letter-spacing:.015em;margin:0 0 26px}
.home-opening-photo{grid-column:2;grid-row:1/3;margin:0;align-self:center;min-width:0}
.home-opening-photo img{width:100%;height:auto}
.home-opening .photo-caption{font-size:11px;gap:14px;flex-wrap:wrap}
.home-opening-copy{grid-column:1;grid-row:2;align-self:start}
.home-opening-copy .lede{margin:0;font-size:16px}
.home-opening-copy .actions{align-items:flex-start;justify-content:flex-start;flex-direction:column;gap:12px;margin-top:27px}
.home-opening-copy .actions .button{width:auto;min-width:236px}
.home-opening+.section{border-top:1px solid var(--line);padding-top:68px}
.home-selected{grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 32px}
.home-selected .home-featured{grid-column:1/-1;margin-bottom:8px}
.home-featured>a{display:grid;grid-template-columns:1.6fr 1fr;gap:58px;align-items:center}
.home-featured .card-image{aspect-ratio:auto}
.home-featured .card-image img{height:auto}
.featured-project-copy{max-width:370px}
.home-featured .eyebrow{font-size:10px;margin:0 0 18px}
.home-featured h3{font-size:32px;margin:0 0 18px;line-height:1.25}
.home-featured .featured-project-copy>p:not(.eyebrow){font-size:15px;line-height:1.85}
.home-featured .text-link{margin-top:20px}
.services-index .page-intro{text-align:left;padding:48px 0 38px}
.services-index .page-intro h1{max-width:780px;font-size:40px;line-height:1.2;margin:0 0 20px}
.services-index .page-intro .eyebrow{margin-bottom:17px}
.services-index .page-intro .lede{margin:0;max-width:830px;font-size:15px}
.service-discovery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding-bottom:65px}
.service-discovery-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.service-discovery-image{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:3/2;background:#eeede7;margin-bottom:26px}
.service-discovery-image img{width:100%;height:100%;object-fit:contain}
.service-discovery-card .eyebrow{font-size:10px;margin-bottom:9px}
.service-discovery-card h2{font-size:27px;margin:0 0 12px}
.service-discovery-card>p:not(.eyebrow){font-size:14px;color:var(--muted);margin:0 0 16px}
.service-discovery-card .text-link{margin-top:auto}
.service-opening{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:55px;align-items:center;padding-top:46px;margin-bottom:34px}
.service-opening-heading{margin:0;text-align:left;max-width:none}
.service-opening-heading .eyebrow{font-size:10px;margin:0 0 20px}
.service-opening-heading h1{font-size:clamp(30px,2.7vw,40px);line-height:1.22;letter-spacing:.01em;margin:0 0 20px}
.service-opening-heading>p:not(.eyebrow){font-size:15px;color:var(--muted);line-height:1.85;margin:0}
.service-opening-heading .actions{justify-content:flex-start;margin-top:26px}
.service-opening-heading .actions .button{width:auto;min-width:226px;max-width:100%}
.service-opening .service-hero{margin:0;min-width:0}
.service-opening .service-hero img{width:100%;height:auto}
.service-opening .service-hero figcaption{font-size:11px;margin-top:10px;line-height:1.6}
.service-opening-context{max-width:890px;padding:14px 0 35px;color:var(--muted);font-size:16px}
.service-opening-context p{margin:0}
.editorial-opening{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);grid-template-rows:auto auto;gap:0 58px;padding-block:48px 70px}
.editorial-opening-title{grid-column:1;grid-row:1;align-self:end}
.editorial-opening-title h1{font-size:clamp(32px,2.7vw,40px);line-height:1.22;letter-spacing:.01em;margin:0 0 24px}
.editorial-opening-title .eyebrow{margin-bottom:20px}
.editorial-opening>figure{grid-column:2;grid-row:1/3;margin:0;align-self:center;min-width:0}
.editorial-opening img{width:100%;height:auto}
.editorial-opening figcaption{font-size:11px;color:var(--muted);margin-top:12px}
.editorial-opening-copy{grid-column:1;grid-row:2;align-self:start}
.editorial-opening-copy .lede{font-size:15px;line-height:1.85;margin:0}
.approach-story{max-width:960px;padding-bottom:62px}
.approach-story .approach-step-heading{font-size:28px;border-top:1px solid var(--line);padding-top:32px;margin-top:34px}
.case-header{max-width:920px;margin:36px 0 32px;text-align:left}
.case-header h1{font-size:clamp(32px,3vw,42px);margin:14px 0 18px}
.case-header .eyebrow{margin-bottom:14px}
.case-header p:not(.eyebrow){font-size:16px;max-width:780px}
@media(max-width:1050px){.home-opening{gap:0 34px}.home-opening-title h1{font-size:38px}.home-opening-copy .lede{font-size:15px}.service-opening,.editorial-opening{column-gap:34px}.home-featured>a{gap:36px}}
@media(max-width:850px){
 .home-opening,.editorial-opening{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:0;padding-block:36px 48px}
 .home-opening-title,.editorial-opening-title{grid-column:1;grid-row:1}
 .home-opening-copy{grid-column:1;grid-row:2;margin-top:0}
 .home-opening-photo{grid-column:1;grid-row:3;margin-top:26px}
 .editorial-opening>figure{grid-column:1;grid-row:2}
 .editorial-opening-copy{grid-column:1;grid-row:3;margin-top:23px}
 .home-opening-title h1{font-size:42px;margin-bottom:27px}
 .home-opening-title h1 br{display:none}
 .home-opening-title .eyebrow,.editorial-opening-title .eyebrow{margin-bottom:13px}
 .home-opening-copy .actions{flex-direction:row;align-items:center;gap:18px 28px;margin-top:23px}
 .home-opening-copy .lede{font-size:16px}
 .home-opening+.section{padding-top:48px}
 .home-selected{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 26px}
 .home-selected>.project-card:last-child{grid-column:1/-1;max-width:620px}
 .home-featured>a{grid-template-columns:1fr;gap:23px}.featured-project-copy{max-width:590px}
 .service-discovery{grid-template-columns:1fr;gap:44px;max-width:720px}
 .service-discovery-image{aspect-ratio:auto;margin-bottom:21px}.service-discovery-image img{height:auto}
 .services-index .page-intro h1{font-size:36px}
 .service-opening{grid-template-columns:1fr;gap:28px;padding-top:34px;margin-bottom:23px}
 .service-opening-heading h1{font-size:36px;max-width:670px}
 .service-opening-heading>p:not(.eyebrow){max-width:700px}
 .service-opening-heading .actions{margin-top:22px}
 .service-opening-context{padding:12px 0 28px;font-size:15px}
 .editorial-opening-title h1{font-size:36px;max-width:700px}
 .editorial-opening-copy .lede{max-width:740px;font-size:16px}
}
@media(max-width:620px){
 .home-opening{padding-block:29px 42px}.home-opening-title h1{font-size:34px;line-height:1.18;max-width:310px;margin-bottom:23px}
 .home-opening-title .eyebrow{font-size:9px;letter-spacing:.14em}.home-opening-copy .lede{font-size:15px}
 .home-opening .photo-caption{font-size:10px;gap:6px 18px}.home-opening .photo-caption span{max-width:205px}
 .home-opening-copy .actions{align-items:flex-start;flex-direction:column;gap:9px;margin-top:23px}
 .home-opening-copy .actions .button{width:100%;min-width:0}
 .home-selected{grid-template-columns:1fr;gap:34px}.home-selected>.project-card:last-child{grid-column:auto}
 .home-featured h3{font-size:28px}.home-featured .eyebrow{margin-bottom:10px}.home-featured .text-link{margin-top:14px}
 .service-discovery{padding-bottom:42px}.service-discovery-card h2{font-size:27px}
 .services-index .page-intro{padding:32px 0}.services-index .page-intro h1{font-size:32px}
 .service-opening-heading h1{font-size:31px}.service-opening-heading .eyebrow{margin-bottom:14px}
 .service-opening{padding-top:28px;gap:25px}.service-opening-heading .actions .button{width:auto;min-width:0}
 .editorial-opening{padding-block:31px 44px}.editorial-opening-title h1{font-size:31px;margin-bottom:24px}
 .editorial-opening-copy .lede{font-size:15px}.approach-story{padding-bottom:43px}
 .approach-story .approach-step-heading{font-size:25px;padding-top:26px;margin-top:28px}
 .case-header{margin:25px 0 27px}.case-header h1{font-size:31px}.case-header p:not(.eyebrow){font-size:15px}
}

/* Service source order follows title, full photograph, then brief and action. */
.service-opening{grid-template-rows:auto auto;row-gap:0}
.service-opening-heading{grid-column:1;grid-row:1;align-self:end}
.service-opening .service-hero{grid-column:2;grid-row:1/3;align-self:center}
.service-opening-copy{grid-column:1;grid-row:2;align-self:start}
.service-opening-copy>p{font-size:15px;color:var(--muted);line-height:1.85;margin:0}
.service-opening-copy .actions{justify-content:flex-start;margin-top:26px}
.service-opening-copy .actions .button{width:auto;min-width:226px;max-width:100%}
@media(max-width:850px){.service-opening{grid-template-columns:1fr;grid-template-rows:auto auto auto}.service-opening-heading{grid-column:1;grid-row:1}.service-opening .service-hero{grid-column:1;grid-row:2}.service-opening-copy{grid-column:1;grid-row:3;margin-top:23px}.service-opening-heading h1{margin-bottom:25px}.service-opening-copy .actions{margin-top:22px}}
@media(max-width:620px){.service-opening-copy .actions .button{min-width:0}}
/* A quiet, high-contrast closing invitation; direct Contact page remains unchanged. */
.enquiry-band{background:var(--dark);border-top:0;padding:64px 50px 68px;margin-bottom:72px;color:#faf9f6}
.enquiry-band h2{color:#faf9f6}
.enquiry-band .eyebrow,.enquiry-band p:not(.eyebrow){color:#e3e5df}
.enquiry-band .button{background:#faf9f6;color:#292923;border-color:#faf9f6}
.enquiry-band .button.outline{background:transparent;color:#faf9f6;border-color:#b7bcae}
.enquiry-band a:focus-visible{outline-color:#faf9f6}
@media(max-width:620px){.enquiry-band{padding:44px 23px 48px;margin-bottom:45px}.enquiry-band h2{font-size:28px}.enquiry-band .actions .button{width:100%}}
.planning-links a[aria-current=page]{font-weight:600;text-decoration-thickness:2px}

/* Analytics consent notice */
.consent-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:1000;max-width:760px;margin-inline:auto;background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 10px 30px rgba(41,41,35,.14);padding:20px 22px;display:flex;align-items:center;gap:22px}
.consent-banner p{margin:0;font-size:14px;line-height:1.65;color:var(--ink)}
.consent-banner p a{color:inherit}
.consent-actions{display:flex;gap:10px;flex:none}
.consent-actions .button{min-height:46px;min-width:112px;padding:10px 22px;cursor:pointer;font-family:inherit}
@media(max-width:620px){.consent-banner{flex-direction:column;align-items:stretch;gap:14px;padding:18px}.consent-actions .button{flex:1;min-width:0}}

/* Floating WhatsApp link */
.wa-float{position:fixed;right:20px;bottom:calc(20px + var(--consent-offset,0px));z-index:900;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 18px 0 15px;border-radius:999px;background:var(--dark);color:#fff;text-decoration:none;font-size:13px;letter-spacing:.03em;line-height:1;box-shadow:0 6px 18px rgba(41,41,35,.18);transition:bottom .2s ease}
.wa-float:hover{background:var(--ink)}
.wa-float:focus-visible{outline:2px solid var(--dark);outline-offset:3px}
.menu-open .wa-float,html:has(.mobile-nav[open]) .wa-float{display:none}
@media(max-width:620px){.wa-float{right:16px;bottom:calc(16px + var(--consent-offset,0px))}}
@media(prefers-reduced-motion:reduce){.wa-float{transition:none}}
@media print{.wa-float{display:none}}
/* Keep the last footer links clear of the floating WhatsApp link */
.site-footer{padding-bottom:88px}

/* Home and Contact: earlier service discovery and a clearer direct-contact route. */
.home-service-routes.section{padding-block:40px 42px;border-bottom:1px solid var(--line)}
.home-service-routes .section-head{margin-bottom:24px}
.home-service-routes .section-head h2{font-size:26px;margin-top:0}
.home-service-routes .section-head .eyebrow{margin-bottom:10px}
.home-service-routes .service-cards{gap:32px}
.home-service-routes .service-cards h3{font-size:21px;margin:8px 0 10px}
.home-service-routes .service-cards p:not(.eyebrow){font-size:14px;margin:0 0 12px}
.home-service-routes .service-cards .eyebrow{font-size:10px;margin:0 0 8px}
.home-service-routes .text-link{min-height:44px}
.home-service-routes+.section{padding-top:56px}
.contact-page .page-intro{padding:42px 0 30px}
.contact-page .page-intro .eyebrow{margin-bottom:14px}
.contact-page .page-intro h1{margin:0 0 14px}
.contact-page .page-intro .lede{max-width:660px}
.contact-page .contact-grid{padding-top:0;gap:56px;align-items:start}
.contact-page .direct-contact h2{margin-bottom:14px}
.contact-page .contact-actions{margin-top:20px}
.contact-page .contact-lines{margin:20px 0}
.contact-page .contact-guidance{padding:26px 28px}
.contact-page .contact-guidance h2{font-size:25px}
@media(max-width:850px){
 .home-service-routes.section{padding-block:32px 36px}
 .home-service-routes .service-cards{gap:24px}
 .home-service-routes .service-cards article+article{border-top:1px solid var(--line);padding-top:20px}
 .home-service-routes+.section{padding-top:42px}
 .contact-page .contact-grid{gap:30px}
}
@media(max-width:620px){
 .home-service-routes .section-head h2{font-size:25px}
 .contact-page .page-intro{padding:28px 0 24px}
 .contact-page .page-intro .lede{max-width:340px;line-height:1.75}
 .contact-page .direct-contact h2{font-size:26px}
 .contact-page .contact-guidance{padding:22px 20px}
}

/* 1.0.9: scoped alignment and balanced card layouts. */
.about-intro{text-align:center;padding-bottom:58px}
.about-intro p{text-wrap:pretty}
.about-split > div > h3:first-child{margin-top:0}
.founder-contact{font-size:14px}
.founder-contact span{white-space:nowrap}
.case-header .case-actions{justify-content:flex-start}
.category-cover{position:relative;flex:none;overflow:hidden}
.category-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
@media(min-width:851px){#service-joinery-storage .service-considerations{grid-template-columns:repeat(2,minmax(0,1fr))}}
