/* Poppins — Copyright 2020 The Poppins Project Authors.
   SIL Open Font License 1.1: /assets/poppins-OFL.txt */
@font-face{font-family:Poppins;src:url('/assets/poppins-300.woff2') format('woff2');font-style:normal;font-weight:300;font-display:swap}
@font-face{font-family:Poppins;src:url('/assets/poppins-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Poppins;src:url('/assets/poppins-500.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
:root{--paper:#ffffff;--ink:#171817;--muted:#62645f;--line:#d3d4cd;--accent:#ae472e;--pad:clamp(22px,4.2vw,80px);--page-width:1920px;--font:Poppins,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:115px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;font-weight:400;line-height:1.75;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;width:100%;max-width:100%;height:auto}figure,p,h1,h2,h3{margin:0}h1,h2,h3{font-weight:300;line-height:1.17;letter-spacing:-.045em}h1{font-size:clamp(3.2rem,7.6vw,8.5rem)}h2{font-size:clamp(2rem,3.7vw,4rem)}h3{font-size:clamp(1.4rem,2vw,2.15rem)}p+p{margin-top:1.3em}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:7px}::selection{background:#e7b29e;color:#171817}.wrap{padding-left:var(--pad);padding-right:var(--pad);max-width:var(--page-width);margin-left:auto;margin-right:auto}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:500;line-height:1.7}.brand-name{text-transform:lowercase}.arrow-icon{display:inline-flex;flex:0 0 auto;width:1em;height:1em;vertical-align:middle;line-height:1}.arrow-icon svg{display:block;width:100%;height:100%;overflow:visible}.index{font-size:.8rem;letter-spacing:.07em;color:var(--muted)}.lead{font-size:clamp(1.125rem,1.7vw,1.5rem);line-height:1.65;font-weight:300}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:44px;padding:6px 0;border-bottom:1px solid currentColor;font-size:.875rem;transition:color .2s}.text-link span{font-size:1.25rem}.text-link:hover{color:var(--accent)}.skip-link{position:fixed;top:8px;left:12px;padding:12px 24px;background:var(--ink);color:#fff;z-index:100;transform:translateY(-160%)}.skip-link:focus{transform:none}.site-header{display:flex;align-items:center;justify-content:space-between;padding:28px var(--pad);min-height:98px;max-width:var(--page-width);margin-left:auto;margin-right:auto;background:var(--paper);position:relative;z-index:20;gap:32px}.brand{width:clamp(245px,26vw,410px);display:block}.brand img{height:auto}.site-header nav{display:flex;align-items:center;gap:clamp(24px,2.8vw,48px)}.site-header nav a{font-size:.875rem;padding:9px 0;position:relative}.site-header nav a:after{content:'';position:absolute;height:1px;background:var(--ink);bottom:6px;left:0;right:0;transform:scaleX(0);transform-origin:left;transition:transform .2s}.site-header nav a:hover:after,.site-header nav a[aria-current]:after{transform:scaleX(1)}.menu-toggle{display:none}.hero-heading{display:flex;gap:40px;justify-content:space-between;align-items:flex-end;padding:65px 0 50px}.hero-heading .eyebrow{margin-bottom:24px}.hero-heading h1{font-size:clamp(3.2rem,6.9vw,7.6rem)}.hero-aside{width:270px;flex-shrink:0;padding-bottom:6px}.hero-aside p{font-size:.9375rem;line-height:1.85}.hero-aside .text-link{margin-top:22px}.hero-project{display:block;position:relative;overflow:hidden}.hero-project>img{aspect-ratio:16/9;object-fit:cover;object-position:50% 60%;transition:transform 1s}.hero-project:hover>img{transform:scale(1.015)}.hero-label{position:absolute;bottom:0;left:0;right:0;padding:34px 28px 21px;color:#fff;display:flex;justify-content:space-between;gap:20px;background:linear-gradient(transparent,rgba(0,0,0,.72));font-size:.875rem;line-height:1.5}.hero-action{display:inline-flex;align-items:center;justify-content:flex-end;gap:12px}.hero-action .arrow-icon{font-size:1.25rem}.intro-section{display:grid;grid-template-columns:1fr 2.15fr;gap:40px;padding-top:135px;padding-bottom:135px}.intro-section>.eyebrow{padding-top:11px}.intro-section h2{margin-bottom:32px;max-width:900px}.intro-copy{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:920px;margin-bottom:30px}.intro-copy p{margin:0;color:var(--muted);font-size:.9375rem}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:42px}.section-heading .eyebrow{margin-bottom:18px}.section-heading>p{max-width:320px;font-size:.9375rem}.projects-section{padding-bottom:130px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.project-card{min-width:0;display:block}.project-image{position:relative;overflow:hidden;aspect-ratio:16/9}.project-image img{height:100%;aspect-ratio:16/9;object-fit:cover;object-position:var(--cover-position,50% 50%);transition:transform .7s}.staggered .project-card:nth-child(2n){margin-top:130px}.image-action{position:absolute;bottom:18px;right:18px;background:var(--paper);border-radius:50%;width:48px;height:48px;display:grid;place-items:center;font-size:1.45rem;transition:transform .25s}.project-card:hover img{transform:scale(1.025)}.project-card:hover .image-action{transform:rotate(45deg)}.project-caption{display:flex;justify-content:space-between;gap:20px;padding-top:23px}.project-caption .eyebrow{font-size:.75rem;color:var(--muted);margin-bottom:8px}.project-caption h3{font-size:clamp(1.5rem,2.3vw,2.6rem)}.project-caption .index{padding-top:3px}.services-home{background:#242721;color:#f8f8f5;padding:98px 0 112px}.services-home .section-heading{margin-bottom:55px}.services-home .section-heading>p{color:#c7cbc0}.service-list>a{display:grid;grid-template-columns:75px 1fr 30px;gap:24px;align-items:center;padding:30px 0;border-top:1px solid #52574c;transition:color .2s}.service-list>a:last-child{border-bottom:1px solid #52574c}.service-list .index{color:#b9beaf}.service-list h3{font-size:clamp(1.5rem,2.55vw,2.8rem)}.service-list>a>span:last-child{font-size:1.5rem;transition:transform .2s}.service-list>a:hover{color:#e9b4a0}.service-list>a:hover>span:last-child{transform:translate(3px,-3px)}.contact-band{padding-top:115px;padding-bottom:120px}.contact-band>.eyebrow{margin-bottom:30px}.contact-band>div{display:flex;justify-content:space-between;align-items:center;gap:40px}.contact-band h2{font-size:clamp(2.5rem,5vw,5.5rem)}.round-link{width:156px;height:156px;border:1px solid var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;gap:18px;font-size:.9rem;flex-shrink:0;transition:background .2s,color .2s}.round-link span{font-size:1.8rem}.round-link:hover{background:var(--ink);color:var(--paper)}.site-footer{padding:0 var(--pad) 22px;max-width:var(--page-width);margin:auto}.footer-top{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:center;border-top:1px solid var(--line);padding-top:55px;padding-bottom:55px}.footer-wordmark{display:block;justify-self:start;width:clamp(190px,22vw,310px);max-width:100%;line-height:0}.wordmark-graphic{display:block;width:100%;aspect-ratio:649/135;overflow:hidden}.wordmark-graphic img{width:231.124807396%;max-width:none;height:auto}.footer-top>p{justify-self:center;text-align:center;font-size:.875rem;line-height:1.8}.footer-contacts{display:grid;justify-self:end;justify-items:end;text-align:right;font-size:.875rem;line-height:1.8;gap:0}.footer-contacts>a{box-shadow:0 1px 0 transparent}.footer-contacts>a:hover{box-shadow:0 1px 0 currentColor}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;font-size:.75rem;color:var(--muted);gap:20px}.footer-bottom>a{display:inline-flex;align-items:center;gap:8px}.page-intro{padding-top:85px;padding-bottom:85px}.page-intro>.eyebrow{margin-bottom:30px}.page-intro .lead{margin-top:35px}.studio-story{display:grid;grid-template-columns:.9fr 1fr;gap:10vw;align-items:center;padding-top:20px;padding-bottom:120px}.studio-image>img{aspect-ratio:.78;object-fit:cover}.image-note,figcaption{font-size:.75rem;color:var(--muted);margin-top:12px;line-height:1.8}.story-copy h2{margin:25px 0 35px}.story-copy>p:not(.eyebrow){color:var(--muted)}.team-section{padding-top:30px;padding-bottom:120px}.team-list{border-top:1px solid var(--line)}.team-list h3{font-size:clamp(1.5rem,2.4vw,2.6rem)}.method-section{display:grid;grid-template-columns:1fr 1.2fr;gap:9vw;padding-top:70px;padding-bottom:100px;border-top:1px solid var(--line)}.method-section h2{margin-top:22px}.method-list article{display:grid;grid-template-columns:45px 1fr;gap:20px;padding:27px 0}.method-list h3{margin-bottom:13px}.method-list p{color:var(--muted);font-size:.9375rem}.service-index{display:grid;grid-template-columns:1fr 1fr;gap:0 6vw;padding-bottom:75px}.service-index>a{position:relative;display:flex;align-items:center;gap:20px;padding:22px 0;font-size:.9375rem}.service-index>a>span:first-child{color:var(--muted);font-size:.75rem}.service-index>a>span:last-child{margin-left:auto}.service-index>a:hover{color:var(--accent)}.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding:75px 0 85px;border-top:1px solid var(--line);scroll-margin-top:25px}.service-detail .eyebrow{margin-bottom:23px}.service-detail h2{max-width:570px}.service-detail>div>p:not(.eyebrow){color:var(--muted)}.service-detail ul{list-style:none;padding:0;margin:27px 0 22px}.service-detail li{padding:12px 0;font-size:.9375rem}.project-index{padding-top:5px;padding-bottom:70px}.project-index .staggered .project-card:nth-child(2n){margin-top:160px}.project-intro{padding-top:40px;padding-bottom:65px}.back-link{display:inline-flex;align-items:center;gap:10px;font-size:.875rem;min-height:44px;margin-bottom:30px}.back-link:hover{color:var(--accent)}.project-intro>.eyebrow{margin-bottom:25px}.project-lead{display:grid;grid-template-columns:1fr 1fr;gap:8vw;margin-top:38px}.project-lead>p:last-child{margin:0;color:var(--muted);max-width:520px}.project-cover>img{aspect-ratio:1.7;object-fit:cover}.project-description{display:grid;grid-template-columns:1fr 2.15fr;gap:40px;padding-top:100px;padding-bottom:100px}.project-description>.eyebrow{padding-top:10px}.project-description h2{margin-bottom:35px}.project-description>div>p{max-width:820px;color:var(--muted)}.project-gallery{display:grid;grid-template-columns:1.05fr 1fr;gap:8vw;align-items:start;padding-top:10px;padding-bottom:85px}.project-gallery figure:nth-child(2){margin-top:115px}.project-gallery img{height:auto}.next-project{border-top:1px solid var(--line);padding-top:50px;padding-bottom:65px}.next-link{display:flex;justify-content:space-between;align-items:center;gap:40px;font-weight:300;font-size:clamp(2rem,4.4vw,4.8rem);line-height:1.25;letter-spacing:-.04em;margin-top:20px}.next-link:hover{color:var(--accent)}.contact-intro{padding-bottom:60px}.contact-main{display:grid;grid-template-columns:1.8fr 1fr;gap:8vw;padding-bottom:110px}.contact-main>div:first-child{padding-top:35px;min-width:0}.contact-main .eyebrow{margin-bottom:18px}.email-link{display:inline-flex;gap:24px;align-items:center;font-size:clamp(1.3rem,2.65vw,2.8rem);line-height:1.4;letter-spacing:-.03em;border-bottom:1px solid var(--ink);padding-bottom:12px;overflow-wrap:anywhere}.email-link:hover{color:var(--accent)}.contact-main>div>p:not(.eyebrow){color:var(--muted);font-size:.9375rem;max-width:570px;margin-top:25px}.phone-link{display:inline-flex;align-items:center;gap:12px;font-size:1.2rem;margin-top:30px;min-height:44px}.locations{padding-bottom:125px}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw;border-top:1px solid var(--line)}.location-grid article{padding:25px 0}.location-grid h3{font-size:2.6rem;margin:18px 0 22px}.location-grid address{font-style:normal;color:var(--muted);margin-bottom:25px}
@media(min-width:1700px){}
@media(max-width:1050px){.hero-heading{gap:30px}.hero-heading h1{font-size:6.6vw}.hero-aside{width:220px}.brand{width:270px}.site-header nav{gap:25px}.intro-section,.project-description{grid-template-columns:.7fr 2fr}.project-grid{gap:5vw}.studio-story{gap:6vw}.contact-main{grid-template-columns:1.8fr 1fr;gap:5vw}}
@media(max-width:760px){html{scroll-padding-top:30px}.site-header{padding-top:25px;padding-bottom:25px;min-height:80px;gap:20px;flex-wrap:wrap}.brand{width:245px;max-width:calc(100% - 85px)}.menu-toggle{display:flex;align-items:baseline;justify-content:space-between;gap:14px;background:none;border:0;color:var(--ink);padding:10px 0;min-height:44px;font-size:.875rem;line-height:1}.menu-toggle>span{font-size:1.4rem;line-height:1}.js .site-header nav{display:none}.site-header nav{width:100%;justify-content:space-between;gap:16px}.js .site-header nav.is-open{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:10px 0 6px}.site-header nav a{font-size:1rem}.hero-heading{display:block;padding-top:40px;padding-bottom:30px}.hero-heading .eyebrow{font-size:.75rem;margin-bottom:23px;letter-spacing:.09em}.hero-heading h1{font-size:clamp(2.7rem,8.9vw,4.5rem);line-height:1.15}.hero-aside{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;width:auto;margin-top:30px;padding-bottom:0}.hero-aside p{font-size:.875rem}.hero-aside .text-link{font-size:.8rem;gap:15px;margin:0}.hero-label{padding:36px 18px 18px;font-size:.75rem}.hero-label>span:last-child{max-width:100px;text-align:right}.intro-section{display:block;padding-top:75px;padding-bottom:75px}.intro-section>.eyebrow{padding-top:0;margin-bottom:28px}.intro-section h2{margin-bottom:25px}.intro-copy{gap:24px;margin-bottom:22px}.intro-copy p{font-size:.875rem}.section-heading{display:block;margin-bottom:30px}.section-heading .eyebrow{margin-bottom:14px}.section-heading>.text-link{margin-top:20px}.project-grid{gap:32px}.staggered .project-card:nth-child(2n){margin-top:75px}.project-caption{padding-top:16px;gap:10px}.project-caption h3{font-size:1.4rem}.project-caption .eyebrow{font-size:.75rem;letter-spacing:.08em}.project-caption .index{display:none}.image-action{width:38px;height:38px;font-size:1.2rem;bottom:10px;right:10px}.projects-section{padding-bottom:75px}.services-home{padding:65px 0 70px}.services-home .section-heading{margin-bottom:36px}.services-home .section-heading>p{margin-top:20px;font-size:.875rem}.service-list>a{grid-template-columns:30px 1fr 22px;gap:15px;padding:25px 0}.service-list h3{font-size:1.35rem;line-height:1.3}.contact-band{padding-top:70px;padding-bottom:75px}.contact-band h2{font-size:clamp(2rem,5.5vw,3rem)}.contact-band>div{gap:20px}.round-link{width:112px;height:112px;font-size:.8rem;gap:10px}.round-link span{font-size:1.3rem}.footer-top{grid-template-columns:1fr;justify-items:center;align-items:start;gap:25px;padding-top:40px;padding-bottom:35px}.footer-wordmark{width:190px;justify-self:center}.footer-top>p{font-size:.8rem}.footer-contacts{grid-column:auto;justify-self:center;justify-items:center;text-align:center;font-size:.875rem}.footer-bottom{font-size:.75rem;flex-wrap:wrap;gap:12px}.page-intro{padding-top:55px;padding-bottom:55px}.page-intro>.eyebrow{margin-bottom:25px}h1{font-size:clamp(3rem,9vw,5rem)}.page-intro .lead{margin-top:28px;font-size:1.125rem}.studio-story{display:flex;flex-direction:column-reverse;align-items:stretch;gap:38px;padding-top:0;padding-bottom:65px}.story-copy h2{margin:18px 0 25px}.story-copy>p:not(.eyebrow){font-size:.9375rem}.studio-image{max-width:540px}.studio-image>img{aspect-ratio:1}.team-section{padding-top:0;padding-bottom:65px}.team-list h3{font-size:1.5rem}.method-section{display:block;padding-top:50px;padding-bottom:35px}.method-section h2{margin-top:18px}.method-list{margin-top:35px}.method-list article{grid-template-columns:30px 1fr;gap:16px}.service-index{grid-template-columns:1fr;padding-bottom:35px}.service-index>a{padding:19px 0;font-size:.875rem}.service-detail{grid-template-columns:1fr;gap:26px;padding:45px 0 50px}.service-detail .eyebrow{margin-bottom:18px}.service-detail>div>p:not(.eyebrow){font-size:.9375rem}.service-detail li{font-size:.875rem}.project-index .staggered .project-card:nth-child(2n){margin-top:75px}.project-intro{padding-top:25px;padding-bottom:40px}.back-link{margin-bottom:20px}.project-intro>.eyebrow{font-size:.75rem;margin-bottom:20px}.project-lead{grid-template-columns:1fr;gap:18px;margin-top:28px}.project-lead>p:last-child{font-size:.9375rem}.project-cover>img{aspect-ratio:1.25}.project-description{grid-template-columns:1fr;gap:25px;padding-top:60px;padding-bottom:60px}.project-description>.eyebrow{padding-top:0}.project-description h2{margin-bottom:25px}.project-description>div>p{font-size:.9375rem}.project-gallery{gap:24px;padding-bottom:55px}.project-gallery figure:nth-child(2){margin-top:75px}.next-project{padding-top:35px;padding-bottom:45px}.next-link{font-size:2rem;gap:25px}.contact-main{grid-template-columns:1fr;padding-bottom:60px;gap:35px}.contact-main>div:first-child{padding-top:25px}.email-link{font-size:clamp(1.05rem,4.4vw,2rem);gap:12px}.contact-intro .lead br{display:none}.locations{padding-bottom:65px}.location-grid{gap:30px}.location-grid h3{font-size:2rem}.location-grid address{font-size:.875rem}}
@media(max-width:450px){.hero-aside{align-items:flex-start}.hero-aside .text-link{max-width:140px;line-height:1.5}.intro-copy{grid-template-columns:1fr;gap:18px}.project-grid{grid-template-columns:1fr;gap:40px}.staggered .project-card:nth-child(2n),.project-index .staggered .project-card:nth-child(2n){margin-top:0}.project-caption h3{font-size:1.6rem}.project-caption .eyebrow{font-size:.75rem}.contact-band>div{display:block}.round-link{margin-top:30px;width:100px;height:100px}.contact-band h2{font-size:2.5rem}.footer-top{grid-template-columns:1fr;gap:23px}.footer-contacts{grid-column:auto}.footer-top>p{font-size:.875rem}.project-gallery{grid-template-columns:1fr;gap:35px}.project-gallery figure:nth-child(2){margin-top:0}.location-grid{grid-template-columns:1fr;gap:10px}.location-grid article{padding-top:20px}.next-link{font-size:1.8rem}.site-header nav{flex-wrap:wrap}.brand{width:232px}.menu-toggle{gap:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Project facts and the casa dz photographic sequence. */
.project-facts{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(90px,.5fr) minmax(220px,1.8fr);gap:24px;max-width:920px;margin:0;padding:24px 0 0}.project-facts div{min-width:0}.project-facts dt{color:var(--muted);font-size:.875rem;margin-bottom:4px}.project-facts dd{margin:0;font-size:1rem;line-height:1.6}.project-cover-natural>img{aspect-ratio:auto;height:auto;object-fit:contain}.casa-gallery{padding-bottom:70px}.gallery-pair{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:clamp(24px,6vw,100px);margin-bottom:80px}.casa-gallery figure{min-width:0}.casa-gallery img{height:auto;aspect-ratio:auto}.gallery-living{grid-template-columns:1fr 1.12fr}.gallery-living figure:nth-child(2){margin-top:100px}.gallery-details{margin-left:auto;margin-right:auto;gap:10vw;padding:15px 4vw 0}.gallery-details figure:nth-child(2){margin-top:100px}.gallery-wide{margin-bottom:80px}.gallery-private{grid-template-columns:1.28fr .85fr;align-items:center;gap:9vw}.project-card-interni-in-terracotta{--cover-position:50% 60%}
@media(max-width:760px){.project-facts{grid-template-columns:1fr 1fr;gap:18px;padding-top:20px}.project-facts>div:nth-child(3){grid-column:1/-1}.gallery-pair{gap:24px;margin-bottom:45px}.gallery-living figure:nth-child(2),.gallery-details figure:nth-child(2){margin-top:50px}.gallery-details{padding:0;gap:24px}.gallery-wide{margin-bottom:45px}.gallery-private{gap:24px}.casa-gallery{padding-bottom:45px}}
@media(max-width:700px){.gallery-pair{grid-template-columns:1fr;gap:36px}.gallery-living figure:nth-child(2),.gallery-details figure:nth-child(2){margin-top:0}.gallery-private{grid-template-columns:1fr}}

/* Language navigation uses real page links and works without JavaScript. */
.language-switch{display:flex;align-items:center;gap:2px;border-left:1px solid var(--line);padding-left:16px;white-space:nowrap}.site-header nav .language-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:44px;padding:8px 0;color:var(--muted)}.site-header nav .language-switch a[aria-current]{color:var(--ink);font-weight:500}.language-switch>span{color:var(--line);font-size:.75rem}.site-header nav .language-switch a:after{left:8px;right:8px}
@media(max-width:960px){.site-header{flex-wrap:wrap;gap:20px;align-items:baseline}.brand{max-width:calc(100% - 85px);line-height:0}.menu-toggle{display:flex;align-items:baseline;justify-content:space-between;gap:14px;background:none;border:0;color:var(--ink);padding:10px 0;min-height:44px;font-size:.875rem;line-height:1}.menu-toggle>span{font-size:1.4rem;line-height:1}.site-header nav{width:100%;flex-wrap:wrap;justify-content:space-between;gap:16px}.js .site-header nav{display:none}.js .site-header nav.is-open{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:10px 0 6px}.site-header nav a{font-size:1rem}.language-switch{width:100%;border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:8px;margin-top:8px}.site-header nav .language-switch a{min-width:40px}}

/* Competition galleries preserve the proportions of supplied drawings. */

.school-gallery figure{min-width:0}.school-gallery img{height:auto;aspect-ratio:auto}.school-context{gap:clamp(24px,5vw,80px)}.school-context figure:nth-child(2){margin-top:80px}.school-plans{grid-template-columns:2.15fr 1fr;gap:clamp(28px,6vw,100px);align-items:center}.school-planting{--media-width:60%;margin:0 auto 55px}.school-gallery-final{padding-bottom:70px}
@media(max-width:700px){.school-context figure:nth-child(2){margin-top:0}.school-plans{grid-template-columns:1fr;gap:36px}.school-plans figure:nth-child(2){justify-self:center}.school-planting{width:100%;margin-bottom:35px}.school-gallery-final{padding-bottom:45px}}

/* Technical drawings stay crisp while their presentation is more compact. */
.drawing-inset{--media-width:85%;margin-left:auto;margin-right:auto}
@media(max-width:700px){.drawing-inset{width:100%}}

/* Project credits and the fallmerayer competition. */
.project-facts-credits{grid-column:2/-1}.project-card-scuola-superiore-fallmerayer{--cover-position:50% 65%}.fallmerayer-concept{grid-template-columns:.75fr 1.35fr;align-items:center;gap:clamp(28px,5vw,80px)}
@media(max-width:700px){.fallmerayer-concept{grid-template-columns:1fr;gap:36px}.fallmerayer-concept figure:first-child{justify-self:center}}

/* ex cinema corso: pair the functional diagram with the circulation view. */
.cinema-functions{grid-template-columns:.65fr 1.35fr;gap:clamp(28px,7vw,110px);align-items:center}.cinema-functions figure:first-child{justify-self:center}.cinema-plans:last-child{margin-bottom:0}
@media(max-width:760px){.project-facts-credits{grid-column:1/-1}}
@media(max-width:700px){.cinema-functions{grid-template-columns:1fr;gap:36px}}

/* Rignalla: pair complementary interior views in the project gallery. */

.rignalla-daylight{grid-template-columns:1fr 1.2fr;align-items:center}
.rignalla-bathrooms{grid-template-columns:1.34fr 1fr;align-items:center;margin-bottom:0}
.rignalla-wellness{align-items:center;margin-top:clamp(45px,6vw,100px)}
.projects-more{display:flex;justify-content:flex-end;margin-top:clamp(36px,5vw,72px)}
/* Services: two audience paths, preserving the shared two-column rhythm and full-width rules. */
.service-audiences>a{align-items:flex-start;padding-top:26px;padding-bottom:28px}
.service-audiences>a>span:first-child{padding-top:5px}
.service-audiences>a>.arrow-icon{margin-top:6px;font-size:1.25rem}
.service-audience-label{min-width:0;display:grid;gap:6px}
.service-audience-label strong{font-size:clamp(1rem,1.45vw,1.3rem);font-weight:400;line-height:1.45}
.service-audience-label>span{font-size:.8125rem;line-height:1.65;color:var(--muted)}
.service-path-heading>p:last-child{max-width:470px;margin-top:30px;font-size:.9375rem}
.service-path>div,.service-partner>div{min-width:0}
.service-offering,.service-offering h3{scroll-margin-top:35px}
.service-offering+.service-offering{margin-top:48px}
.service-offering h3{font-size:clamp(1.45rem,2vw,2rem);letter-spacing:-.035em;line-height:1.3;margin-bottom:16px}
.service-offering>p,.service-partner-copy>p{font-size:.9375rem;color:var(--muted)}
.service-offering ul{margin:22px 0 24px}
.service-offering li{position:relative;padding:5px 0 5px 16px;font-size:.875rem}
.service-offering li::before{content:"";position:absolute;left:0;top:16px;width:3px;height:3px;border-radius:50%;background:var(--muted)}
.service-offerings>.text-link{margin-top:30px}
.service-private-path{row-gap:55px}
.service-private-intro>p{font-size:.9375rem;max-width:560px}
.service-private-offerings{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:58px 8vw}
.service-private-offerings>.service-offering{display:flex;flex-direction:column;min-width:0;margin-top:0}
.service-private-offerings .text-link{align-self:flex-start;margin-top:auto}
.service-path .text-link,.service-partner .text-link{max-width:100%;line-height:1.6;gap:20px}
.service-partner-logo{width:min(100%,360px);height:auto;margin-top:38px}
.service-partner-phases{margin:28px 0 24px}
.service-partner-phases>div+div{margin-top:24px}
.service-partner-phases dt{font-weight:500;font-size:.875rem;margin-bottom:6px}
.service-partner-phases dd{margin:0;color:var(--muted);font-size:.9375rem}
.services-contact{padding-top:55px}
.services-contact-note{margin-top:28px;max-width:540px;color:var(--muted);font-size:.9375rem}
@media(max-width:760px){
  .service-audiences>a{padding-top:22px;padding-bottom:24px;gap:18px}
  .service-path-heading>p:last-child{margin-top:22px;max-width:600px}
  .service-path{gap:38px}
  .service-offering+.service-offering{margin-top:38px}
  .service-private-offerings{grid-template-columns:1fr;gap:40px}
  .service-private-offerings>.service-offering{margin-top:0}
  .service-partner{gap:32px}
  .service-partner-logo{width:min(100%,300px);margin-top:28px}
  .services-contact{padding-top:30px}
  .services-contact-note{margin-top:24px;font-size:.875rem}
}
/* Show only the left 1740px of the 2048x882 cinema view at every viewport width. */
.rignalla-cinema-frame{position:relative;aspect-ratio:1740/882;overflow:hidden}
.rignalla-cinema-frame>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:left center}
@media(max-width:700px){.rignalla-daylight,.rignalla-bathrooms{grid-template-columns:1fr;gap:36px}}

/* Page dividers share the footer's centred content edges. */
.site-header::after{content:"";position:absolute;left:var(--pad);right:var(--pad);bottom:0;border-bottom:1px solid var(--line);pointer-events:none}
.section-rule{position:relative;border-top:0}
.section-rule::before{content:"";position:absolute;top:0;left:var(--pad);right:var(--pad);border-top:1px solid var(--line);pointer-events:none}
.project-facts-frame{margin-top:28px;border-top:1px solid var(--line)}
.service-index>a:nth-child(odd)::before{content:"";position:absolute;top:0;left:0;width:calc(200% + 6vw);border-top:1px solid var(--line);pointer-events:none}
.contact-business-card{min-width:0;align-self:start;padding-top:35px}
.contact-business-card img{width:100%;height:auto}
@media(max-width:760px){.project-facts-frame{margin-top:24px}.service-index>a::before{content:"";position:absolute;top:0;left:0;border-top:1px solid var(--line);pointer-events:none}.service-index>a::before,.service-index>a:nth-child(odd)::before{width:100%}.contact-business-card{padding-top:0}}
@media(max-width:450px){.location-grid article+article{border-top:1px solid var(--line)}}

/* casa dz: a large vector plan sits between the gallery photographs. */
.casa-plan{--media-width:max(50%,576px);margin:0 auto 80px}
@media(max-width:700px){.casa-plan{width:100%;margin-bottom:45px}}


/* Founder rows open on hover, keyboard activation or touch. */
.team-member{border-bottom:1px solid var(--line)}
.team-member summary{display:grid;grid-template-columns:70px minmax(0,1fr) auto 24px;gap:25px;align-items:center;padding:30px 0;cursor:pointer;list-style:none}
.team-member summary::-webkit-details-marker{display:none}
.team-member summary::marker{content:""}
.team-member summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.team-member summary:hover h3,.team-member[open] summary h3{color:var(--accent)}
.team-role{font-size:.875rem;color:var(--muted)}
.team-indicator{position:relative;width:20px;height:20px;justify-self:end}
.team-indicator::before,.team-indicator::after{content:"";position:absolute;background:currentColor;top:9px;left:2px;width:16px;height:1px}
.team-indicator::after{transform:rotate(90deg);transition:transform .2s}
.team-member[open] .team-indicator::after{transform:rotate(0)}
.team-panel{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start;padding:12px 0 52px 95px}
.team-member:not([open]) .team-panel{display:none}
.team-portrait{width:100%;max-width:240px;aspect-ratio:3/4}
.team-portrait img{width:100%;height:100%;aspect-ratio:3/4;object-fit:contain}
.team-bio{max-width:720px;color:var(--muted);font-size:.9375rem;line-height:1.85}
.team-bio p:last-child{color:var(--ink)}
@media(max-width:1050px){.team-member summary{grid-template-columns:40px minmax(0,1fr) auto 24px}.team-panel{padding-left:65px;gap:32px}}
@media(max-width:760px){.team-member summary{grid-template-columns:30px minmax(0,1fr) 20px;gap:8px 12px;padding:23px 0}.team-role{grid-column:2;grid-row:2;font-size:.8rem}.team-indicator{grid-column:3;grid-row:1/3}.team-panel{grid-template-columns:1fr;padding:4px 0 34px;gap:24px}.team-bio{font-size:.9375rem}}

/* Match the casa dz plan width while preserving the vector drawings. */
.rignalla-drawing{--media-width:max(50%,576px);margin:0 auto 80px}

.rignalla-drawing:last-child{margin-bottom:0}
.rignalla-drawing-final{--media-width:max(65%,720px);margin-top:clamp(110px,9vw,200px)}
.rignalla-drawing-final:last-child{margin-bottom:clamp(40px,4vw,80px)}
@media(max-width:700px){.rignalla-drawing{width:100%;margin-bottom:45px}.rignalla-drawing-final{margin-top:72px}.rignalla-drawing-final:last-child{margin-bottom:28px}}


/* Wide windows use the available page width, including aligned dividers/footer. */
@media(min-width:1921px){:root{--page-width:100%}}

/* Fit the complete project image to both the gallery and the viewport height.
   The figure itself shrinks, so captions remain aligned with the visible image.
   82vh is the fallback for browsers without stable viewport units. */
.project-detail :is(.casa-gallery,.school-gallery) figure{
  width:var(--media-width,100%);
  max-width:min(100%,calc(82vh * var(--media-ratio)));
  max-width:min(100%,calc(82svh * var(--media-ratio)));
  margin-left:auto;
  margin-right:auto;
}
.project-detail .project-cover{
  width:100%;
  max-width:calc(82vh * var(--media-ratio) + 2 * var(--pad));
  max-width:calc(82svh * var(--media-ratio) + 2 * var(--pad));
}
@media(max-width:700px){
  .casa-plan,.rignalla-drawing,.drawing-inset,.school-planting{--media-width:100%}
  .project-detail :is(.casa-gallery,.school-gallery) figure,.project-detail .project-cover{max-width:100%}
}

/* Captions align with the left edge of their own responsive figure. */
.project-detail figure figcaption{text-align:left}
.project-detail .drawing-caption-aligned>figcaption{margin-left:var(--drawing-caption-inset,0%)}

/* The Cinema Corso sheets share one scale and three aligned original-image regions.
   These viewports change layout only; all source linework and lettering is retained. */
.cinema-plans{align-items:start}
.cinema-plan-part{position:relative;width:100%;overflow:hidden;background:#fff}
.cinema-plan-title{aspect-ratio:1560/76}
.cinema-plan-drawing{aspect-ratio:1560/1310;margin-top:calc(100% * 16 / 1560)}
.cinema-plan-legend{aspect-ratio:1560/68;margin-top:calc(100% * 6 / 1560)}
.cinema-plan-part>img{position:absolute;top:0;left:0;width:var(--source-width);max-width:none;height:auto;transform:translate(var(--crop-x),var(--crop-y))}
.cinema-plan>figcaption{padding-left:calc(100% * 2 / 1560)}

/* casa dc: paired details alternate with larger, uncropped single photographs. */
@media(min-width:701px){
  .casa-dc-project .dc-pair-detail{grid-template-columns:.8fr 1.2fr;align-items:center}
  .casa-dc-project .dc-pair-room{grid-template-columns:1.2fr .8fr;align-items:center}
  .casa-dc-project .casa-gallery figure.dc-solo{
    max-width:min(100%,calc(104vh * var(--media-ratio)));
    max-width:min(100%,calc(104svh * var(--media-ratio)));
    margin-bottom:clamp(80px,8vw,150px);
  }
}

/* Mobile refinements: keep the CTA inside its circle and show the full portrait. */
@media(max-width:760px){
  .contact-band .round-link{width:132px;height:132px;gap:8px;font-size:.8rem;white-space:nowrap}
  .contact-band .round-link .arrow-icon{font-size:1.2rem}
  .studio-image>img{aspect-ratio:2/3;height:auto;object-fit:contain}
}
@media(max-width:960px){
  .site-header{align-items:baseline}
  .brand{display:inline-flex;align-items:baseline}
  .menu-toggle{align-items:baseline;justify-content:flex-start;gap:0;line-height:1.2;text-decoration:none;flex-shrink:0;transform:translateY(-.375rem)}
  .menu-toggle>.menu-toggle-label{position:relative;display:inline-flex;align-items:baseline;gap:6px;font:inherit;line-height:inherit;white-space:nowrap;text-decoration:none}
  .menu-toggle-label::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleY(.5);transform-origin:center;pointer-events:none}
  .menu-toggle-icon{font:inherit;line-height:inherit;text-decoration:none}
}

/* Return to the portfolio after each gallery, before the next-project rule. */
.project-return{display:flex;justify-content:flex-end;padding-bottom:clamp(24px,3vw,40px)}

/* The original business-card artwork rests on a subtle white paper edge. */
.contact-business-card{padding-left:6px;padding-right:6px}
.business-card-paper{
  position:relative;
  aspect-ratio:1.88;
  overflow:hidden;
  background:#fff;
  border:1px solid #e9e9e9;
  box-shadow:0 1px 2px rgba(23,24,23,.06),0 4px 10px rgba(23,24,23,.055);
}
.business-card-paper img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 76%}

/* Preserve the original Google embed and attribution without CSS colour filters.
   A custom Silver map requires supported Google Maps styling and its own configuration. */
.location-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,5vw,90px)}
.location-grid article{min-width:0}
.location-map{
  position:relative;
  width:90%;
  aspect-ratio:8/5;
  min-height:240px;
  max-height:420px;
  background:#f5f5f5;
  isolation:isolate;
}
.location-map iframe{
  display:block;
  width:100%;
  height:100%;
  position:absolute;
  inset:0;
  border:0;
}
.location-map-link{
  position:absolute;
  z-index:1;
  inset:0 0 26px;
  cursor:pointer;
}
/* Leave Google's bottom attribution/terms links accessible. */
.location-map-link:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.location-map-caption{margin-top:20px;font-size:.875rem;min-height:44px}
@media(max-width:760px){
  .contact-business-card{padding-left:5px;padding-right:5px;margin-bottom:24px}
  .location-grid{grid-template-columns:1fr;gap:25px}
  .location-grid article+article{border-top:1px solid var(--line)}
  .location-map{width:100%;aspect-ratio:3/2;min-height:240px;max-height:380px}
  .location-map-caption{margin-top:15px}
}

/* Contact enquiry: the existing white canvas, typography and aligned rules. */
.contact-inquiry{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(35px,7vw,130px);padding-top:55px;padding-bottom:110px;scroll-margin-top:30px}
.inquiry-intro h2{font-size:clamp(2.5rem,4.4vw,5rem);line-height:1.12;letter-spacing:-.045em;margin:22px 0 32px}.inquiry-intro>p:not(.eyebrow){max-width:460px;color:var(--muted);font-size:1rem}.inquiry-intro .text-link{margin-top:22px}
.contact-form{min-width:0}.form-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 28px}.form-field{min-width:0;display:flex;flex-direction:column;gap:9px}.form-field label{font-size:.875rem}.form-field label span,.field-hint{color:var(--muted);font-size:.75rem;line-height:1.65}
.form-field :is(input,select,textarea){width:100%;min-width:0;border:1px solid var(--line);border-radius:0;background:#fff;padding:14px 15px;color:var(--ink);font:inherit;font-size:1rem;line-height:1.5;box-shadow:none}.form-field select{min-height:54px}.form-field textarea{resize:vertical;min-height:150px}.form-field :is(input,select,textarea):focus{outline:1px solid var(--ink);outline-offset:2px;border-color:var(--ink)}.form-field textarea::placeholder{color:#787a75;font-size:.875rem}.form-wide{grid-column:1/-1}
.form-note{font-size:.75rem;color:var(--muted);line-height:1.6}.form-mode{font-size:.8rem;line-height:1.6;padding:14px 16px;background:#f6f6f4;border-left:2px solid #a7a8a3;margin:0 0 22px}.form-mode a{text-decoration:underline;text-underline-offset:3px}.form-attachments{margin:30px 0 28px}.upload-label{border:1px dashed #abada7;display:grid;grid-template-columns:24px 1fr;gap:3px 12px;padding:20px;cursor:pointer;font-size:.875rem}.upload-label .field-hint{grid-column:2}.upload-plus{font-size:1.65rem;line-height:1.2;grid-row:1/3}.form-attachments input[type=file]{display:block;max-width:100%;margin-top:12px;font:inherit;font-size:.75rem}.form-attachments>p{margin-top:10px}
.attachment-list{list-style:none;padding:0;margin:12px 0 0}.attachment-list li{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding:10px 0;font-size:.75rem}.attachment-list li span{overflow-wrap:anywhere}.attachment-list button{border:0;background:none;color:var(--ink);font:inherit;text-decoration:underline;cursor:pointer;padding:10px 0}
.privacy-check{display:flex;align-items:flex-start;gap:12px;font-size:.8125rem;line-height:1.6}.privacy-check input{flex:0 0 auto;width:19px;height:19px;margin-top:2px;accent-color:var(--ink)}.privacy-check a{text-decoration:underline;text-underline-offset:3px}.privacy-check+.field-hint{margin:10px 0 0 31px}.form-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-submit-row{display:flex;align-items:center;flex-wrap:wrap;gap:16px 24px;margin-top:30px}.inquiry-submit{display:inline-flex;justify-content:space-between;align-items:center;gap:40px;padding:17px 22px;min-height:58px;background:var(--ink);color:#fff;border:1px solid var(--ink);font:inherit;font-size:.9375rem;cursor:pointer}.inquiry-submit:hover{background:#333532}.inquiry-submit:disabled{opacity:.5;cursor:wait}.inquiry-submit:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.form-submit-row p{max-width:230px;margin:0}.form-status{font-size:.875rem;line-height:1.7;margin:20px 0 0;overflow-wrap:anywhere}.form-status.is-error{color:#8d3122}
.privacy-copy{padding-top:45px;padding-bottom:100px}.privacy-copy-inner{max-width:800px;margin:0 auto;font-size:.9375rem;line-height:1.8}.privacy-copy h2{font-size:1.5rem;margin:35px 0 14px}.privacy-copy a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:900px){.contact-inquiry{grid-template-columns:1fr;gap:35px;padding-bottom:75px}.inquiry-intro>p:not(.eyebrow){max-width:600px}.inquiry-intro h2 br{display:none}}
@media(max-width:540px){.form-fields{grid-template-columns:1fr;gap:22px}.contact-inquiry{padding-top:32px}.form-submit-row{align-items:stretch;flex-direction:column;gap:12px}.inquiry-submit{width:100%}.form-submit-row p{max-width:none}.upload-label{padding:16px;column-gap:8px}}
