/* Architectural office: editorial typography, drafting lines, restrained accent. */
:root{--ink:var(--office-ink);--muted:var(--office-subtle);--paper:var(--office-paper);--line:var(--office-line)}
html{scroll-padding-top:110px}
body{background:var(--office-surface);color:var(--office-ink);font-family:'Assistant',sans-serif;font-size:18px;overflow-x:hidden}
h1,h2,h3,summary{font-family:'Heebo',sans-serif;letter-spacing:0;font-weight:500;color:var(--office-ink)}
p{color:var(--office-subtle)}
:focus-visible{outline:2px solid var(--office-accent)!important;outline-offset:5px}
.header{height:100px;position:sticky;top:0;width:100%;margin:0;padding:0 max(5%,calc((100vw - 1320px)/2));border-radius:0;background:var(--office-paper);border:0;border-bottom:1px solid var(--office-line);box-shadow:none;backdrop-filter:none}
.brand{gap:15px}.brand svg{width:46px;height:46px;background:none;padding:0;border-radius:0;stroke:var(--office-ink)}
.brand strong{font-size:40px;font-weight:500;letter-spacing:0}.brand small{font-size:13px;letter-spacing:0;color:var(--office-subtle)}
.header nav{gap:30px;font-size:15px}.header nav a{border-radius:0;padding:8px 0;font-weight:500;color:var(--office-ink)}
.header nav a:hover{color:var(--office-accent);background:none}.header nav a.nav-cta{border:1px solid var(--office-line);padding:12px 18px;background:none;color:var(--office-ink)}
.header nav a.nav-cta:hover{border-color:var(--office-accent);background:none}
.menu{border:1px solid var(--office-line);border-radius:0;color:var(--office-ink);background:none}
.eyebrow{display:flex;align-items:center;gap:12px;padding:0;background:none;border-radius:0;color:var(--office-accent);font-size:13px;font-weight:600;letter-spacing:0;margin-bottom:24px}
.eyebrow:before{content:'';width:30px;height:1px;background:var(--office-accent);flex:none}.eyebrow span{display:none}
.hero{position:relative;isolation:isolate;display:block;width:100%;max-width:none;min-height:620px;padding:72px max(5%,calc((100vw - 1296px)/2)) 54px;margin:0 auto;background:var(--office-paper);overflow:hidden}
.hero:before{content:'';position:absolute;inset:-12% -8%;z-index:-1;pointer-events:none;background:var(--office-drawing);mask:url('/assets/architectural-lines.svg') center/cover no-repeat;animation:drawing-drift 28s ease-in-out infinite alternate;transform-origin:70% 50%}
.hero:after{content:'';position:absolute;inset:0 auto 0 55%;width:1px;background:var(--office-grid);pointer-events:none;animation:drawing-axis 16s ease-in-out infinite alternate}
@keyframes drawing-drift{from{transform:translate3d(-18px,12px,0) scale(1)}to{transform:translate3d(24px,-14px,0) scale(1.045)}}
@keyframes drawing-axis{from{transform:translateX(-60px);opacity:.25}to{transform:translateX(80px);opacity:1}}
.hero-copy{width:48%;padding:0;background:none;border-radius:0;position:relative;z-index:2;color:var(--office-ink)}
.hero-copy:after,.hero-art:before,.hero-art:after{display:none}
.hero h1{font-size:54px;line-height:1.22;font-weight:500;letter-spacing:0;margin:0 0 24px;color:var(--office-ink)}
.hero h1 em{font-style:normal;color:var(--office-accent);background:none;border-radius:0;padding:0}
.hero .intro{font-size:19px;line-height:1.85;color:var(--office-subtle);max-width:460px;margin-top:0}
.actions{gap:22px;margin-top:30px}
.button{border-radius:0;background:var(--office-accent);border:1px solid var(--office-accent);color:var(--office-inverse);padding:16px 21px;font-weight:600;box-shadow:none;transition:background .2s}
.button:hover{background:var(--office-accent-hover);transform:none}
.text-link{color:var(--office-ink);font-weight:500;font-size:14px;text-decoration:none;border-bottom:1px solid var(--office-line);text-underline-offset:6px}
.text-link:hover{color:var(--office-accent)}.hero .text-link{color:var(--office-ink)}
.hero-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:42px;padding-top:24px;border-top:1px solid var(--office-line)}
.hero-facts span{padding:0;background:none;border:0;border-radius:0;color:var(--office-subtle);font-size:13px;line-height:1.65}
.hero-facts b{display:block;font-size:18px;font-weight:600;color:var(--office-ink)}
.hero-art{position:absolute;inset:0 auto 0 max(5%,calc((100vw - 1296px)/2));width:42%;max-width:600px;height:auto;display:flex;flex-direction:column;justify-content:center;gap:18px;margin:0;padding:54px 0;border:0;border-radius:0;box-shadow:none;background:none;z-index:1}
.hero-art img{position:static;width:100%;height:350px;object-fit:contain;object-position:center;mix-blend-mode:normal;opacity:1;border:0;border-radius:0;filter:none;transform:none;background:var(--office-paper)}
.art-label{position:static;align-self:flex-start;padding:8px 0;font-size:12px;letter-spacing:0;color:var(--office-subtle);background:none;border-radius:0;transform:none;border-top:1px solid var(--office-accent)}
.art-note{position:static;display:flex;align-items:center;gap:14px;border-top:1px solid var(--office-line);padding:16px 0 0;background:none;border-radius:0;box-shadow:none;font-size:16px;color:var(--office-ink);transform:none;max-width:none}
.art-note small{color:var(--office-subtle);font-size:12px}.note-icon{width:34px;height:34px;background:none;color:var(--office-accent);font-size:28px;border-radius:0;display:grid;place-items:center}
.art-axis{position:static;writing-mode:horizontal-tb;text-align:left;font-size:10px;letter-spacing:0;color:var(--office-subtle)}
.audiences{width:100%;margin:0;padding:22px 5%;display:flex;justify-content:center;gap:5%;background:var(--office-surface);border-top:1px solid var(--office-line);border-bottom:1px solid var(--office-line)}
.audiences span,.audiences span:nth-of-type(n){background:none;border:0;border-radius:0;padding:0;font-size:14px;font-weight:500;color:var(--office-subtle)}.audiences i{display:block;width:3px;height:3px;background:var(--office-line)}
.section{width:100%;max-width:1440px;margin:0 auto;padding:88px 5%;background:none;border-radius:0}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end;margin-bottom:54px}
.section h2,.section-head h2{font-size:39px;line-height:1.32;letter-spacing:0;font-weight:500;margin-top:0;color:var(--office-ink)}
.section-head>p{font-size:17px;max-width:450px;line-height:1.85}.section-head .eyebrow{margin-bottom:18px}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--office-line);background:var(--office-paper)}
.service,.service:nth-child(n){background:none;border:0;border-bottom:1px solid var(--office-line);border-inline-end:1px solid var(--office-line);border-radius:0;margin:0;padding:30px 28px;gap:0;min-height:350px;box-shadow:none;transition:background .2s;align-items:start}
.service:nth-child(3n){border-inline-end:0}.service:hover{background:var(--office-surface);transform:none;box-shadow:inset 0 3px var(--office-accent)}
.number,.service:nth-child(n) .number{font-family:'Assistant',sans-serif;font-size:14px;display:block;width:auto;height:auto;color:var(--office-accent);background:none;border-radius:0;padding:0;margin-bottom:22px;font-weight:600;-webkit-text-fill-color:currentColor}
.service h3,.service:nth-child(n) h3{font-size:22px;line-height:1.5;color:var(--office-ink);margin:0 0 14px;font-weight:500;max-width:none}
.service p,.service:nth-child(n) p{color:var(--office-subtle);font-size:16px;line-height:1.85;margin:0}
.service details{border:0;margin:22px 0 18px;padding:0;width:100%}.service summary,.service:nth-child(n) summary{font-size:14px;color:var(--office-ink);font-weight:500}
.service summary:after,.faq-list summary:after{color:var(--office-accent)}.service details p{margin-top:12px;font-size:14px}
.service>a,.service:nth-child(n)>a{margin-top:auto;color:var(--office-accent);font-size:14px;font-weight:500;border-bottom:0;padding:0}
.projects{max-width:none;background:var(--office-sage)}.projects>.section-head,.project-grid,.filters,.portfolio-note{max-width:1296px;margin-left:auto;margin-right:auto}
.filters{gap:24px;margin-bottom:32px;border-bottom:1px solid var(--office-line)}
.filters button{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;padding:12px 0;color:var(--office-subtle);font-size:15px;font-weight:500}
.filters button.active,.filters button[aria-pressed='true']{background:none;color:var(--office-ink);border-bottom-color:var(--office-accent)}
.project-grid{grid-template-columns:1.15fr 1fr;gap:48px 40px}
.project{border:0;border-radius:0;padding:0;background:none;box-shadow:none;transition:none;color:var(--office-ink)}.project:hover{transform:none;box-shadow:none}
.project-image{height:340px;border-radius:0;background:var(--office-paper);overflow:hidden}
.project-image img{transition:transform .6s ease}.project:hover .project-image img{transform:scale(1.025)}
.project-image img{height:100%;object-fit:cover;filter:none}.project-image.plan img{object-fit:contain;background:var(--office-paper);mix-blend-mode:normal}
.expand{top:auto;bottom:14px;left:14px;border-radius:0;background:var(--office-paper);color:var(--office-ink);padding:7px 12px;font-size:12px;font-weight:500;box-shadow:none}
.project-caption{padding:18px 0;border-bottom:1px solid var(--office-line)}.project-caption small{font-size:12px;color:var(--office-subtle);font-weight:500}
.project-caption h3{font-size:21px;color:var(--office-ink);margin:6px 0 0}
.project-caption>span{background:none;color:var(--office-accent);border-radius:0;width:32px;height:32px;display:grid;place-items:center}
.portfolio-note{padding:0;margin-top:32px;background:none;border-radius:0;font-size:13px;color:var(--office-subtle)}
.steps{grid-template-columns:repeat(4,1fr);gap:28px}
.steps>*{position:relative;background:none;border:0;border-radius:0;border-top:1px solid var(--office-line);padding:24px 0}
.steps>*:nth-child(n){border-top-color:var(--office-line)}.steps span{font-family:'Assistant',sans-serif;font-size:44px;line-height:1;color:var(--office-accent);font-weight:400}
.steps h3{font-size:21px;color:var(--office-ink);margin:24px 0 14px}.steps p{font-size:16px;line-height:1.8}
.about{grid-template-columns:.8fr 1.2fr;gap:9%;align-items:center;border-top:1px solid var(--office-line)}
.about-art{background:none;border-radius:0;padding:42px;min-height:390px;color:var(--office-ink);border-top:1px solid var(--office-line);border-bottom:1px solid var(--office-line)}.about-art:after{display:none}
.arch{border-radius:0;border-color:var(--office-line);bottom:35px;width:70%;height:80%;opacity:1}.arch:after{border-radius:0;border-color:var(--office-line)}
.experience{font-family:'Assistant',sans-serif;font-size:144px;font-weight:400;padding-bottom:22px;color:var(--office-accent)}.experience small{font-family:'Assistant',sans-serif;font-size:16px;color:var(--office-subtle)}
.art-line{background:var(--office-line)}.signature{color:var(--office-subtle);font-size:13px;font-weight:500}
.about-copy{padding:0;border:0;background:none;border-radius:0}.about-copy h2{margin-bottom:28px}.about-copy p:not(.eyebrow){font-size:17px;line-height:1.85;margin-bottom:18px}
.faq{grid-template-columns:.8fr 1.2fr;gap:9%;border-top:1px solid var(--office-line)}
.faq-list{display:block}.faq-list details{background:none;border:0;border-bottom:1px solid var(--office-line);border-radius:0;padding:23px 0}
.faq-list details[open]{background:none;border-color:var(--office-accent)}.faq-list summary{color:var(--office-ink);font-size:18px;font-weight:400;line-height:1.6;gap:20px}.faq-list details p{font-size:16px;line-height:1.85;margin:0;padding:18px 0 0;max-width:600px}
.contact{max-width:none;grid-template-columns:1fr 1fr;gap:10%;background:var(--office-ink);color:var(--office-inverse);padding:80px max(5%,calc((100vw - 1296px)/2));margin-bottom:0;border-radius:0;align-items:start}
.contact .eyebrow{color:var(--office-inverse-muted)}.contact .eyebrow:before{background:var(--office-inverse-muted)}
.contact h2{font-size:44px;color:var(--office-inverse);margin-bottom:24px}.contact p{color:var(--office-inverse-muted);font-size:17px;line-height:1.85}
.contact-phone{font-family:'Assistant',sans-serif;color:var(--office-inverse);font-size:32px;letter-spacing:0;margin-top:30px}.contact-place{color:var(--office-inverse-muted)}
.contact form{background:none;border:0;border-inline-start:1px solid var(--office-subtle);border-radius:0;padding:0 36px 0 0;display:block}
.contact form h3{font-size:25px;color:var(--office-inverse)}.contact form p.form-intro{color:var(--office-inverse-muted);font-size:14px;margin:12px 0 26px}
.contact label{color:var(--office-inverse);font-weight:400;font-size:14px;margin:18px 0 7px}
.contact input,.contact select,.contact textarea{background:var(--office-paper);color:var(--office-ink);border:1px solid var(--office-line);border-radius:0;padding:12px 14px;font-size:16px}
.contact input:focus,.contact select:focus,.contact textarea:focus{outline:2px solid var(--office-inverse-muted);outline-offset:2px;box-shadow:none;background:var(--office-paper)}
.contact ::placeholder{color:var(--office-subtle)}
.contact form .button{background:var(--office-inverse);border-color:var(--office-inverse);color:var(--office-ink);margin-top:22px;border-radius:0;justify-content:space-between;width:100%;font-size:15px}
.contact form .button:hover{background:var(--office-sage)}.contact form .button *{color:inherit}.form-note{color:var(--office-inverse-muted);font-size:12px;margin-top:14px;line-height:1.8}
footer{width:100%;max-width:1440px;margin:0 auto;padding:38px 5% 90px;background:var(--office-surface);border:0;gap:30px;color:var(--office-ink)}
footer p,footer>div{color:var(--office-subtle)}footer button,footer a{color:var(--office-ink)}.footer-brand strong{font-size:30px}
.floating-wa,.floating-wa:hover{width:52px;height:52px;left:22px;bottom:22px;padding:4px;justify-content:center;border-radius:0;background:none;border:0;box-shadow:none;color:var(--office-wa);transform:none}
.floating-wa span{display:none}.floating-wa svg{width:46px;height:46px;color:inherit;filter:none;stroke-width:2;shape-rendering:geometricPrecision}.floating-wa:hover{color:var(--office-wa-hover)}
.skip:not(:focus){position:fixed;top:-100px;right:20px}.skip:focus{top:10px;background:var(--office-paper);color:var(--office-ink)}
dialog{border:1px solid var(--office-line);border-radius:0;background:var(--office-paper);color:var(--office-ink);box-shadow:var(--office-shadow)}
dialog::backdrop{background:var(--office-backdrop);backdrop-filter:blur(3px)}dialog h2{color:var(--office-ink)}dialog p{color:var(--office-subtle)}.project-dialog img{background:var(--office-paper)}
.close{border-radius:0;background:var(--office-paper);color:var(--office-ink);border:1px solid var(--office-line);width:40px;height:40px}
@media(max-width:1100px){.header nav{gap:18px;font-size:13px}.hero h1{font-size:46px}.hero{min-height:650px}.hero-copy{width:49%}.hero-art{width:47%;padding-left:3%}.actions{gap:18px}.hero-facts{gap:10px}.hero-facts b{font-size:16px}.service{padding:28px 20px}.service h3{font-size:20px}.section-head{gap:40px}}
@media(max-width:760px){
html{scroll-padding-top:80px}.header{height:80px;padding:0 6%}.brand strong{font-size:33px}.brand svg{width:36px;height:36px}.brand small{font-size:11px}
.header nav{top:80px;gap:20px;font-size:16px;background:var(--office-paper);padding:24px 6%;border-radius:0;box-shadow:var(--office-shadow)}
.hero{padding:42px 6% 30px;min-height:0}.hero-copy{width:100%}.hero h1{font-size:38px;line-height:1.3}.hero .intro{font-size:17px}.hero .eyebrow{font-size:12px}.actions{gap:20px;align-items:start}.button{font-size:14px}.hero-facts{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px}.hero-facts span{font-size:11px}.hero-facts b{font-size:14px}
.hero-art{position:relative;inset:auto;width:100%;padding:34px 0 0;gap:12px}.hero-art img{height:230px}.art-note{font-size:15px}.art-axis{display:none}.hero:before{inset:0 -70%;opacity:.65}.hero:after{display:none}
.audiences{padding:19px 6%;gap:12px 22px;flex-wrap:wrap}.audiences span{font-size:12px}.audiences i{display:none}
.section{padding:58px 6%}.section-head{grid-template-columns:1fr;gap:22px;margin-bottom:30px}.section h2,.section-head h2{font-size:30px}.section-head>p{margin-top:0;font-size:16px}
.service-grid{grid-template-columns:1fr}.service,.service:nth-child(n){border-inline-end:0;padding:26px 0;min-height:0;background:none}.service h3{font-size:21px}.number{margin-bottom:14px}.service>a{margin-top:4px}
.filters{gap:18px}.filters button{font-size:13px}.project-grid{grid-template-columns:1fr;gap:30px}.project-image{height:245px}.project-caption h3{font-size:19px}.portfolio-note{font-size:12px}
.steps{grid-template-columns:1fr 1fr;gap:22px}.steps span{font-size:34px}.steps h3{font-size:19px;margin-top:18px}.steps p{font-size:15px}
.about{grid-template-columns:1fr;gap:32px}.about-art{min-height:280px;order:2}.experience{font-size:100px}.about-copy h2{font-size:30px}.about-copy p:not(.eyebrow){font-size:16px}
.faq{grid-template-columns:1fr;gap:30px}.faq-list summary{font-size:16px}.faq-list details:first-child{padding-top:0}
.contact{grid-template-columns:1fr;gap:36px;padding:54px 6%}.contact h2{font-size:36px}.contact form{padding:30px 0 0;border-inline-start:0;border-top:1px solid var(--office-subtle)}.contact form .button{font-size:14px;padding:16px}.contact-phone{font-size:30px}
footer{padding:32px 6% 100px;flex-wrap:wrap;gap:24px}footer>div{gap:20px;width:100%}.floating-wa{left:14px;bottom:14px;width:48px;height:48px}
}
/* Hinge-inspired immersive photography and editorial scale. */
h1,h2{font-family:'Frank Ruhl Libre',serif}
.header{height:90px;border-bottom:0}.header nav a.nav-cta{border:0;border-bottom:1px solid var(--office-ink);padding:8px 0}
.hero{padding:0;min-height:0;background:var(--office-paper);display:flex;flex-direction:column;isolation:isolate}
.hero:before{inset:0 0 156px;z-index:-2;background:url('/assets/hero-luxury.jpg') center 55%/cover no-repeat;mask:none;transform-origin:center;animation:photographic-drift 24s ease-in-out infinite alternate}
.hero:after{inset:0 0 156px;width:auto;background:var(--office-photo-overlay);animation:none;z-index:-1}
@keyframes photographic-drift{from{transform:scale(1)}to{transform:scale(1.055)}}
.hero-copy{width:100%;padding:150px max(6%,calc((100vw - 1250px)/2)) 44px;color:var(--office-photo-text)}
.hero .eyebrow{color:var(--office-photo-muted);margin-bottom:26px}.hero .eyebrow:before{background:var(--office-photo-muted)}
.hero h1{font-size:72px;line-height:1.08;font-weight:500;color:var(--office-photo-text);max-width:780px;margin-bottom:26px}.hero h1 em{color:inherit}
.hero .intro{color:var(--office-photo-muted);max-width:520px;font-size:20px;line-height:1.7}
.hero .button{background:var(--office-photo-text);color:var(--office-ink);border-color:var(--office-photo-text)}.hero .button:hover{background:var(--office-sage)}
.hero .text-link{color:var(--office-photo-text);border-color:var(--office-photo-line)}
.hero-facts{max-width:560px;margin-top:36px;border-color:var(--office-photo-line)}.hero-facts span{color:var(--office-photo-muted)}.hero-facts b{color:var(--office-photo-text)}
.hero-art{position:relative;inset:auto;max-width:none;width:100%;height:156px;padding:20px 6%;background:var(--office-paper);display:grid;grid-template-columns:170px 1fr 1fr;gap:32px;align-items:center;direction:rtl}
.hero-art img{grid-column:1;grid-row:1/3;height:116px;width:170px;object-fit:contain}.art-label{grid-column:2;grid-row:1;border:0;margin:0;padding:0;align-self:end}.art-note{grid-column:2;grid-row:2;border:0;padding:0;align-self:start}.art-axis{grid-column:3;grid-row:1/3;font-size:13px;text-align:left}
.section{padding-top:110px;padding-bottom:110px}.section h2,.section-head h2{font-size:52px;line-height:1.15;font-weight:500}.section-head{gap:12%;margin-bottom:62px}
.services .service-grid{background:none}.service,.service:nth-child(n){padding:36px 30px;min-height:360px}.number,.service:nth-child(n) .number{font-size:24px;font-weight:400}
.projects{background:var(--office-paper);border-top:1px solid var(--office-line);border-bottom:1px solid var(--office-line)}.project-grid{gap:64px 44px}.project-image{height:370px}.project-caption h3{font-size:24px}
.process{background:var(--office-sage);max-width:none}.steps{max-width:1296px;margin:auto}.process .section-head{max-width:1296px;margin-left:auto;margin-right:auto}
.about-art{border:0;min-height:420px}.experience{font-family:'Frank Ruhl Libre',serif;font-size:170px}.arch,.arch:after{border-color:var(--office-accent);opacity:.3}
.contact h2{font-family:'Frank Ruhl Libre',serif;font-size:64px}.faq{border-top:1px solid var(--office-line)}
@media(max-width:1100px) and (min-width:761px){.hero h1{font-size:64px}.section h2,.section-head h2{font-size:44px}}
@media(max-width:760px){
 .header{height:80px}.hero:before,.hero:after{inset:0 0 156px}.hero:after{display:block}.hero:before{background-position:42% center;opacity:1}
 .hero-copy{padding:100px 6% 34px}.hero h1{font-size:44px;line-height:1.15}.hero .intro{font-size:17px}.hero .eyebrow{font-size:12px;margin-bottom:22px}.hero-facts{margin-top:30px}
 .hero-art{height:156px;padding:18px 6%;grid-template-columns:100px 1fr;gap:10px 20px}.hero-art img{width:100px;height:100px}.art-note{font-size:14px;gap:8px}.art-note small{font-size:11px}.art-label{font-size:11px}.art-axis{display:none}.note-icon{width:22px;font-size:22px}
 .section{padding:64px 6%}.section h2,.section-head h2{font-size:36px}.section-head{gap:24px;margin-bottom:36px}.service,.service:nth-child(n){padding:28px 0;min-height:0}.number,.service:nth-child(n) .number{font-size:20px}
 .project-image{height:260px}.project-grid{gap:36px}.project-caption h3{font-size:21px}.about-art{min-height:280px}.experience{font-size:130px}.contact h2{font-size:46px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* luxury sales refinement */
.hero h1{font-family:'Frank Ruhl Libre',serif;font-weight:400;letter-spacing:-.5px}
.hero .button{letter-spacing:.3px}
.section-head h2,.section h2{font-family:'Frank Ruhl Libre',serif;font-weight:400}
.floating-wa{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,visibility 0s linear .35s}
html.past-hero .floating-wa{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .35s ease,visibility 0s}
.brand img{height:62px;width:auto;object-fit:contain;object-position:center}
/* Larger text for comfortable reading */
body{font-size:19px}
.eyebrow,.hero .eyebrow{font-size:15px}
.text-link{font-size:16px}
.hero-facts span{font-size:14px}
.art-label{font-size:14px}
.art-note small{font-size:14px}
.audiences span{font-size:16px}
.number,.service:nth-child(n) .number{font-size:15px}
.service summary,.service:nth-child(n) summary{font-size:16px}
.service details p{font-size:15px}
.service>a,.service:nth-child(n)>a{font-size:15px}
.expand{font-size:14px}
.project-caption small{font-size:14px}
.portfolio-note{font-size:14px}
.signature{font-size:17px}
.contact form p.form-intro{font-size:15px}
.contact label{font-size:15px}
.form-note{font-size:13px}
.filters button{font-size:15px}
.art-axis{font-size:12px}
footer p,footer>div,footer button{font-size:14px}
.brand img{height:68px}
.header{align-items:center}
.menu{align-self:center;position:relative;top:12px}
/* Desktop-only logo enlargement; phone keeps the current size. */
.brand img{height:82px}
@media(max-width:760px){.brand img{height:68px}}
/* Desktop menu items sit lower so they line up with the logo's first text line. */
@media(min-width:761px){.header nav{position:relative;top:9px}}

/* Clean inline icons: no decorative text glyphs anywhere in the page. */
.ico{width:1em;height:1em;display:inline-block;vertical-align:-.14em;flex:none}
.project-caption .ico{width:18px;height:18px}
.menu .ico{width:18px;height:18px;vertical-align:-.3em}
.close{display:grid;place-items:center}
.close .ico{width:15px;height:15px}
/* Accordions keep a single plus sign; it turns to a cross when open. */
.service summary:after,.faq-list summary:after{transition:transform .25s ease}
.service details[open] summary:after,.faq-list details[open] summary:after{content:'+';transform:rotate(45deg)}

/* Phone menu: the open panel covers the screen cleanly so nothing is cut off behind it. */
@media(max-width:760px){
  .header nav{min-height:calc(100vh - 80px);z-index:19}
}

/* no dash marks before labels */
.eyebrow:before{content:none!important;display:none!important}

/* Hero caption strip: the picture spans both rows, the two label lines sit in one
   block with one shared right edge and one rhythm, so nothing floats in mid-air. */
.hero-art{align-items:stretch}
.hero-art img{grid-column:1;grid-row:1/3;align-self:center}
.art-label{grid-column:2;grid-row:1/3;align-self:center;justify-self:start;text-align:right;margin:0;padding:0;border:0;font-size:14px}
.art-note{grid-column:3;grid-row:1/3;align-self:center;justify-self:start;text-align:right;margin:0;padding:0;border:0;max-width:none}
.art-note div{display:block}
.art-note small{display:block;margin-top:7px}
.art-axis{grid-column:1;grid-row:3;justify-self:start;text-align:right;font-size:13px}
@media(max-width:1100px){.hero-art{grid-template-columns:150px 1fr 1fr;gap:26px 34px}}
@media(max-width:760px){.hero-art{grid-template-columns:100px 1fr;gap:8px 18px;align-items:center}.art-label{grid-column:2;grid-row:1}.art-note{grid-column:2;grid-row:2}}

/* Hero caption strip, final: one flex row, no empty column, one right edge, one rhythm. */
.hero-art{display:flex;flex-direction:row;align-items:center;gap:0;height:auto;min-height:156px;padding:26px 6%}
.hero-art > *{margin:0}
.hero-art img{order:1;flex:none;width:170px;height:116px;object-fit:contain}
.art-label,.art-note,.art-axis{grid-column:auto;grid-row:auto}
.art-label{order:2;font-size:14px;border:0}
.art-note{order:3;font-size:16px;border:0;max-width:none;padding:0}
.art-note div{display:block}
.art-note small{display:block;margin-top:7px}
.art-axis{order:4;flex:1;text-align:right;font-size:13px;border-left:1px solid var(--office-line);padding-left:22px;margin-left:26px}
@media(max-width:1100px){.hero-art img{width:150px}.art-axis{padding-left:16px;margin-left:18px}}
@media(max-width:760px){.hero-art{min-height:0;gap:16px;padding:18px 6%}.hero-art img{width:96px;height:96px}.art-axis{display:none}.art-note{font-size:15px}.art-note small{font-size:13px}}

/* Hero caption strip, one clean line: picture at the right edge, one text block with a
   single right edge and steady spacing, a quiet drafting rule and note at the left. */
.hero-art{display:flex;flex-direction:row;align-items:center;gap:0;height:auto;min-height:156px;padding:26px 6%}
.hero-art > *{margin:0}
.hero-art img{flex:none;width:170px;height:116px;object-fit:contain}
.art-text{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;min-width:0;text-align:right}
.art-label{font-size:14px;line-height:1.5;border:0;padding:0}
.art-note{font-size:16px;line-height:1.5;border:0;padding:0;max-width:none}
.art-note div{display:block}
.art-note small{display:block;margin-top:8px}
.art-middle{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;align-self:stretch;padding:0 26px}
.art-rule{width:1px;flex:1;background:var(--office-line)}
.art-axis{font-size:13px;line-height:1.5;white-space:nowrap;text-align:center;border:0;padding:0}
@media(max-width:1100px){.hero-art img{width:150px}.art-middle{padding:0 18px}}
@media(max-width:760px){.hero-art{min-height:0;gap:16px;padding:18px 6%}.hero-art img{width:96px;height:96px}.art-middle{display:none}.art-note{font-size:15px}.art-note small{font-size:13px}}

/* Hero caption strip, definitive: picture at the right edge, one text block whose three
   lines share a single right edge and a steady rhythm, a drafting rule and note at the left. */
.hero-art{position:static;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:0;width:auto;max-width:none;height:auto;min-height:156px;margin:0;padding:26px 6%;border:0;background:none;box-shadow:none;z-index:auto}
.hero-art>*{margin:0}
.hero-art img{position:static;order:1;flex:none;width:170px;height:116px;object-fit:contain;object-position:center;background:none;opacity:1;filter:none;transform:none;mix-blend-mode:normal}
.art-text{order:2;flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;max-width:none;text-align:right}
.art-label{position:static;order:0;flex:none;width:auto;background:none;font-size:14px;line-height:1.6;border:0;padding:0}
.art-note{position:static;order:0;flex:none;display:block;width:auto;background:none;box-shadow:none;border:0;border-radius:0;padding:0;max-width:none;margin-top:8px;font-size:16px;line-height:1.6}
.art-note>div{display:block}
.art-note small{display:block;margin-top:7px;font-size:14px}
.art-middle{order:3;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;align-self:stretch;padding:0 26px}
.art-rule{display:block;width:1px;flex:1;min-height:44px;background:var(--office-line)}
.art-axis{position:static;order:0;writing-mode:horizontal-tb;flex:none;width:auto;font-size:13px;letter-spacing:0;line-height:1.6;white-space:nowrap;text-align:center;border:0;padding:0}
@media(max-width:1100px){.hero-art img{width:150px}.art-middle{padding:0 18px}}
@media(max-width:760px){.hero-art{min-height:0;gap:16px;padding:18px 6%}.hero-art img{width:96px;height:96px}.art-middle{display:none}.art-note{font-size:15px}.art-note small{font-size:13px}}

/* Hero caption strip, final and authoritative: one picture at the right edge, one text
   block whose three lines share a single right edge and a steady rhythm, a drafting rule
   and a quiet note at the left. All overrides are explicit so no older rule can leak in. */
.hero-art{position:relative!important;inset:auto!important;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:flex-start!important;gap:0!important;width:100%!important;max-width:none!important;height:auto!important;min-height:156px!important;margin:0!important;padding:26px 6%!important;border:0!important;background:none!important;box-shadow:none!important;order:0!important;align-self:auto!important}
.hero-art>*{margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;order:0!important}
.hero-art img{order:1!important;flex:0 0 auto!important;align-self:center!important;width:170px!important;height:116px!important;object-fit:contain!important;object-position:center!important;opacity:1!important;filter:none!important;transform:none!important;mix-blend-mode:normal!important;position:static!important}
.art-text{order:2!important;flex:1 1 auto!important;align-self:stretch!important;display:block!important;min-width:0!important;max-width:none!important;text-align:right!important}
.art-label{order:0!important;flex:0 0 auto!important;align-self:flex-start!important;display:block!important;width:auto!important;position:static!important;font-size:14px!important;line-height:1.6!important;letter-spacing:0!important;color:var(--office-subtle)!important;border-top:0!important;padding:0!important;margin:0!important}
.art-note{order:0!important;flex:0 0 auto!important;align-self:flex-start!important;display:block!important;width:auto!important;position:static!important;margin-top:8px!important;font-size:16px!important;line-height:1.6!important;color:var(--office-ink)!important}
.art-note>div{display:block!important;text-align:right!important}
.art-note small{display:block!important;margin-top:7px!important;font-size:14px!important;color:var(--office-subtle)!important}
.art-middle{order:3!important;flex:0 0 auto!important;align-self:stretch!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:10px!important;padding:0 26px!important}
.art-rule{display:block!important;width:1px!important;flex:1 1 auto!important;min-height:44px!important;background:var(--office-line)!important}
.art-axis{order:0!important;flex:0 0 auto!important;align-self:auto!important;display:block!important;width:auto!important;position:static!important;writing-mode:horizontal-tb!important;white-space:nowrap!important;font-size:13px!important;letter-spacing:0!important;line-height:1.6!important;text-align:center!important;color:var(--office-subtle)!important}
@media(max-width:1100px){.hero-art img{width:150px!important}.art-middle{padding:0 18px!important}}
@media(max-width:760px){.hero-art{min-height:0!important;padding:18px 6%!important;gap:16px!important}.hero-art img{width:96px!important;height:96px!important}.art-middle{display:none!important}.art-note{font-size:15px!important}.art-note small{font-size:13px!important}}

/* Caption strip breathing room: the text block keeps a clear gap from the drawing and the
   three groups sit evenly across the strip. */
.hero-art{justify-content:space-between!important}
.art-text{margin-inline-end:44px!important}
@media(max-width:1100px){.art-text{margin-inline-end:30px!important}}

/* Hero caption strip, settled: drawing at the right edge, the three lines as one block
   beside it with a clear gap, and a short drafting rule with its note at the left edge. */
.hero-art{position:relative!important;inset:auto!important;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:space-between!important;gap:0!important;width:100%!important;max-width:none!important;height:auto!important;min-height:156px!important;margin:0!important;padding:26px 6%!important;border:0!important;background:none!important;box-shadow:none!important;order:0!important;align-self:auto!important}
.hero-art>*{margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important}
.hero-art img{order:1!important;flex:0 0 auto!important;align-self:center!important;width:170px!important;height:116px!important;object-fit:contain!important;object-position:center!important;opacity:1!important;filter:none!important;transform:none!important;mix-blend-mode:normal!important;position:static!important;margin-inline-start:44px!important}
.art-text{order:2!important;flex:1 1 auto!important;align-self:center!important;display:block!important;min-width:0!important;max-width:none!important;margin-inline-end:44px!important;text-align:right!important}
.art-label{flex:0 0 auto!important;align-self:flex-start!important;display:block!important;width:auto!important;position:static!important;font-size:14px!important;line-height:1.6!important;letter-spacing:0!important;color:var(--office-subtle)!important;border-top:0!important;padding:0!important;margin:0!important}
.art-note{flex:0 0 auto!important;align-self:flex-start!important;display:block!important;width:auto!important;position:static!important;margin:8px 0 0!important;font-size:16px!important;line-height:1.6!important;color:var(--office-ink)!important}
.art-note>div{display:block!important;text-align:right!important}
.art-note small{display:block!important;margin-top:7px!important;font-size:14px!important;color:var(--office-subtle)!important}
.art-middle{order:3!important;flex:0 0 auto!important;align-self:center!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:12px!important;padding:0!important}
.art-rule{display:block!important;width:1px!important;flex:0 0 auto!important;height:52px!important;min-height:0!important;background:var(--office-line)!important}
.art-axis{flex:0 0 auto!important;display:block!important;width:auto!important;position:static!important;writing-mode:horizontal-tb!important;white-space:nowrap!important;font-size:13px!important;letter-spacing:0!important;line-height:1.6!important;text-align:center!important;color:var(--office-subtle)!important}
@media(max-width:1100px){.hero-art img{width:150px!important}.hero-art img,.art-text{margin-inline-end:30px!important}}
@media(max-width:760px){.hero-art{min-height:0!important;padding:18px 6%!important;gap:14px!important}.hero-art img{width:96px!important;height:96px!important;margin-inline-start:14px!important}.art-text{margin-inline-end:14px!important}.art-middle{display:none!important}.art-note{font-size:15px!important}.art-note small{font-size:13px!important}}

/* Caption strip balance: the text block keeps its natural size beside the drawing, so the
   open space is shared evenly between the left note and the drawing instead of pooling in
   the middle of the strip. */
.hero-art{justify-content:space-between!important}
.art-text{flex:0 1 auto!important;max-width:340px!important;margin-inline-end:52px!important}
.art-middle{margin-inline-end:52px!important}
@media(max-width:1100px){.art-text{margin-inline-end:34px!important}.art-middle{margin-inline-end:34px!important}}

/* Hero caption strip, final and authoritative: the drawing sits at the right edge, the three
   lines form one block beside it with a clear gap, and a short drafting rule with its note
   closes the line at the left edge. Spacing uses plain side margins so it always applies. */
.hero-art{position:relative!important;inset:auto!important;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:space-between!important;gap:0!important;width:100%!important;max-width:none!important;height:auto!important;min-height:156px!important;margin:0!important;padding:26px 6%!important;border:0!important;background:none!important;box-shadow:none!important}
.hero-art>*{padding:0!important;border:0!important;background:none!important;box-shadow:none!important}
.hero-art img{order:1!important;flex:0 0 auto!important;align-self:center!important;position:static!important;width:170px!important;height:116px!important;object-fit:contain!important;object-position:center!important;opacity:1!important;filter:none!important;transform:none!important;mix-blend-mode:normal!important;margin:0!important}
.art-text{order:2!important;flex:0 1 auto!important;align-self:center!important;display:block!important;min-width:0!important;max-width:340px!important;text-align:right!important;margin:0!important}
.art-label{display:block!important;width:auto!important;position:static!important;font-size:14px!important;line-height:1.6!important;letter-spacing:0!important;color:var(--office-subtle)!important;border-top:0!important;padding:0!important;margin:0!important}
.art-note{display:block!important;width:auto!important;position:static!important;margin:8px 0 0!important;font-size:16px!important;line-height:1.6!important;color:var(--office-ink)!important}
.art-note>div{display:block!important;text-align:right!important}
.art-note small{display:block!important;margin-top:7px!important;font-size:14px!important;color:var(--office-subtle)!important}
.art-middle{order:3!important;flex:0 0 auto!important;align-self:center!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:12px!important;padding:0!important;margin:0!important}
.art-rule{display:block!important;width:1px!important;flex:0 0 auto!important;height:52px!important;min-height:0!important;background:var(--office-line)!important}
.art-axis{flex:0 0 auto!important;display:block!important;width:auto!important;position:static!important;writing-mode:horizontal-tb!important;white-space:nowrap!important;font-size:13px!important;letter-spacing:0!important;line-height:1.6!important;text-align:center!important;color:var(--office-subtle)!important}
.hero-art img{margin-left:52px!important}
.hero-art > .art-middle{margin-left:52px!important}
@media(max-width:1100px){.hero-art img{width:150px!important}.hero-art img,.hero-art > .art-middle{margin-left:34px!important}}
@media(max-width:760px){.hero-art{min-height:0!important;padding:18px 6%!important}.hero-art img{width:96px!important;height:96px!important;margin-left:16px!important}.art-middle{display:none!important}.art-note{font-size:15px!important}.art-note small{font-size:13px!important}}

/* Hero caption strip, final composition: the drawing at the right edge, one text block filling
   the rest of the line so the strip reads as a single clean unit. */
.hero-art{position:relative!important;inset:auto!important;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:flex-start!important;gap:0!important;width:100%!important;max-width:none!important;height:auto!important;min-height:156px!important;margin:0!important;padding:26px 6%!important;border:0!important;background:none!important;box-shadow:none!important}
.hero-art>*{padding:0!important;border:0!important;background:none!important;box-shadow:none!important;margin:0!important}
.hero-art img{order:1!important;flex:0 0 auto!important;align-self:center!important;position:static!important;width:170px!important;height:116px!important;object-fit:contain!important;object-position:center!important;opacity:1!important;filter:none!important;transform:none!important;mix-blend-mode:normal!important;margin-left:52px!important}
.art-text{order:2!important;flex:1 1 auto!important;align-self:stretch!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;min-width:0!important;max-width:none!important;text-align:right!important}
.art-label{flex:0 0 auto!important;align-self:flex-start!important;display:block!important;width:auto!important;position:static!important;font-size:14px!important;line-height:1.6!important;letter-spacing:0!important;color:var(--office-subtle)!important;border-top:0!important;padding:0!important;margin:0!important}
.art-note{flex:0 0 auto!important;align-self:flex-start!important;display:block!important;width:auto!important;position:static!important;margin:8px 0 0!important;font-size:16px!important;line-height:1.6!important;color:var(--office-ink)!important}
.art-note>div{display:block!important;text-align:right!important}
.art-note small{display:block!important;margin-top:7px!important;font-size:14px!important;color:var(--office-subtle)!important}
.art-middle{display:none!important}
@media(max-width:1100px){.hero-art img{width:150px!important}.hero-art img{margin-left:34px!important}}
@media(max-width:760px){.hero-art{min-height:0!important;padding:18px 6%!important}.hero-art img{width:96px!important;height:96px!important;margin-left:16px!important}.art-note{font-size:15px!important}.art-note small{font-size:13px!important}}
/* 30 years: the about drawing reads as number, label, ground line and signature */
.arch{display:none!important}
.art-line{top:auto!important;bottom:16px!important;height:1px!important;background:var(--office-line)!important}
.signature{left:50%!important;right:auto!important;transform:translateX(-50%)!important;bottom:30px!important;background:none!important;padding:0!important}
