
:root{
  --brand-green:#719430;
  --text:#666;
  --muted:#999;
  --line:#dedede;
  --canvas:#e1e1e1;
  --white:#fff;
  --gap:15px;
  --item-margin:10px;
  --item-padding:15px;
  --header-h:104px;
  --footer-min-h:76px;
  --font:"Open Sans","Noto Sans TC","PingFang TC","Microsoft JhengHei",Arial,sans-serif;
}
*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body{position:relative;min-height:100vh;min-height:100svh;margin:0;background:#fff;color:var(--text);font-family:var(--font);font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column}
main{display:block;flex:1 0 auto;min-height:calc(100vh - var(--header-h) - var(--footer-min-h));min-height:calc(100svh - var(--header-h) - var(--footer-min-h))}
img{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button{color:inherit}
.skip-link{position:fixed;left:12px;top:-80px;z-index:10000;background:#111;color:#fff;padding:9px 14px}.skip-link:focus{top:12px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{height:var(--header-h);background:#fff;position:relative;z-index:50;flex:0 0 auto}
.site-header.is-fixed{box-shadow:0 1px 8px rgba(0,0,0,.12)}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 34px 0 30px}
.header-inner img{max-height:100%;width:auto}
.site-logo{display:flex;align-items:center;height:100%;width:auto;line-height:0}.site-logo img{display:block;max-height:100%;width:auto;height:auto}
.primary-nav{display:flex;align-items:center;gap:31px;height:100%}
.nav-link{display:flex;align-items:center;height:100%;font-size:12px;font-weight:600;letter-spacing:.07em;color:#7b7b7b;position:relative;transition:color .25s ease}
.nav-link:hover,.nav-link:focus-visible,.nav-link.is-active{color:#222}
.nav-link.is-active:after{content:"";position:absolute;left:0;right:0;bottom:25px;height:1px;background:#777}
.facebook-link{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#777;transition:background .25s ease}
.facebook-link:hover,.facebook-link:focus-visible{background:#3b5998}.facebook-link svg{width:17px;height:17px;fill:#fff}
.menu-toggle{display:none;background:none;border:0;padding:8px}.menu-toggle span{display:block;width:25px;height:2px;background:#666;margin:5px 0}
.listing-page{background:var(--canvas);min-height:60vh}
.masonry-section{width:100%;overflow:hidden;background:var(--canvas);padding-bottom:28px}
.filter-row{height:58px;display:flex;justify-content:flex-end;align-items:flex-end;padding:0 15px 15px 15px}
.av_textblock_section{width:100%;text-align:right}
.filter-list{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;color:var(--brand-green);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:13px;line-height:1}
.filter-button{position:relative;border:0;background:transparent;padding:4px 5px 5px;cursor:pointer;color:var(--brand-green);font-family:inherit;font-size:13px;font-weight:400;letter-spacing:0;line-height:1;transition:color .2s ease}
.filter-button:hover,.filter-button:focus-visible,.filter-button.is-active{color:var(--brand-green)}
.filter-button.is-active{font-weight:700}
.filter-button.is-active:after{content:"";position:absolute;left:5px;right:5px;bottom:0;height:1px;background:var(--brand-green)}
.masonry-grid{--columns:5;--item-margin:10px;width:100%;position:relative;background:var(--canvas)}
.masonry-grid.columns-4{--columns:4}
.masonry-grid.columns-5{--columns:5}
.no-js .masonry-grid{column-count:var(--columns);column-gap:0}
.no-js .masonry-item{display:inline-block;width:100%;padding:var(--item-padding);margin:0 var(--item-margin) var(--item-margin) 0}
.js .masonry-item{position:absolute;left:0;top:0;width:calc((100% / var(--columns)) - var(--item-margin));padding:var(--item-padding);margin:0 var(--item-margin) var(--item-margin) 0;opacity:1;transform:translate3d(0,0,0);transition:transform .42s cubic-bezier(.2,.65,.3,1)}
.masonry-slot{width:100%;opacity:1;transform:none;transform-origin:50% 100%;transform-style:preserve-3d;backface-visibility:hidden;will-change:transform,opacity}
.js .masonry-slot{opacity:0;transform:perspective(1000px) translateZ(300px) translateY(200px) rotateX(-70deg)}
.masonry-item.is-revealed .masonry-slot{animation:avia_msonry_show .8s 1 cubic-bezier(.175,.885,.320,1.075) var(--reveal-delay,0ms) both}
@keyframes avia_msonry_show{
  0%{transform:perspective(1000px) translateZ(300px) translateY(200px) rotateX(-70deg);opacity:0}
  100%{transform:perspective(1000px) translateZ(0) translateY(0) rotateX(0);opacity:1}
}
.masonry-item.is-filtered-out{display:none!important}
.content-card{display:block;background:#fff;overflow:hidden}
.card-media{position:relative;overflow:hidden;background:#e9e9e9;line-height:0}
.card-media>img{display:block;width:100%;height:auto;transform:scale(1);transition:transform .4s ease-in-out;will-change:transform}
.content-card:hover .card-media>img,.content-card:focus-visible .card-media>img{transform:scale(1.05)}
.card-media.is-placeholder{aspect-ratio:4/3;display:grid;place-items:center;background:#f8f8f8;border:1px solid #ededed}
.card-media.is-placeholder>img{width:55%;height:auto;object-fit:contain;transform:none!important}
.work-caption{background:#fff;padding:20px;text-align:left}
.work-title{margin:0;color:#666;font-size:15px;line-height:1.3em;font-weight:700;letter-spacing:0}
.work-description{margin:0;padding-top:4px;color:#719430;font-size:15px;line-height:1.45;font-weight:400}
.pagination{display:flex;align-items:center;justify-content:space-between;width:100%;padding:18px 25px 0 15px;color:#888;font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:12px}
.pagination-pages{display:flex;align-items:center;gap:8px}
.pagination .page-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:50%;background:#fff;color:#777;line-height:1;transition:color .2s ease,box-shadow .2s ease}
.pagination a.page-number:hover,.pagination a.page-number:focus-visible{color:var(--brand-green);box-shadow:0 0 0 1px rgba(113,148,48,.35)}
.pagination .page-number[aria-current]{color:var(--brand-green);font-weight:700}
.pagination-status{margin-left:auto;text-align:right;color:var(--brand-green)}
.site-footer{background:#fff;color:#719430;font-size:11px;letter-spacing:.02em;flex:0 0 auto}
.footer-inner{min-height:76px;display:flex;align-items:center;justify-content:center;padding:20px 30px;text-align:center}.footer-inner p{margin:0}
.back-to-top{position:fixed;right:18px;bottom:18px;z-index:45;width:42px;height:42px;border:0;background:rgba(70,70,70,.82);color:#fff;cursor:pointer;opacity:0;visibility:hidden;transition:.25s}.back-to-top.is-visible{opacity:1;visibility:visible}.back-to-top:hover{background:#222}
/* details */
.detail-page{background:#fff}
.detail-media-list{max-width:1320px;margin:0 auto;padding:42px 30px 14px}
.detail-media{margin:0 0 34px;text-align:center}
.media-open{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;line-height:0}
.media-open>img{display:block;width:100%;height:auto}
.detail-media figcaption{margin-top:8px;color:#999;font-size:12px;line-height:1.5;text-align:left}
.is-placeholder-media{max-width:1040px;margin-left:auto;margin-right:auto}.placeholder-canvas{display:grid;place-items:center;aspect-ratio:16/9;background:#f5f5f5;border:1px solid #e9e9e9}.placeholder-canvas img{width:min(310px,45%);height:auto}
.article-body{width:100%;max-width:1320px;margin:0 auto;padding:42px 30px 72px}
.article-lead{margin:0 0 13px;color:#777;font-size:13px}
.article-body h1{margin:0 0 24px;color:#5d5d5d;font-size:24px;line-height:1.4;font-weight:700}
.article-body time{display:block;margin:-14px 0 28px;color:#999;font-size:12px}
.rich-text{color:#666;font-size:15px;line-height:1.95}.rich-text p{margin:0 0 1.2em}.rich-text ul{padding-left:1.25em}.article-english{margin-top:30px;padding-top:25px;border-top:1px solid #e6e6e6;color:#777}
.article-category{margin:32px 0 0;color:#719430;font-size:14px}.article-category span{color:#999;margin-right:10px}
.related-section{background:var(--canvas);padding-bottom:28px}.related-heading{height:64px;display:flex;align-items:flex-end;justify-content:flex-end;padding:0 15px 16px}.related-heading h2{margin:0;color:#777;font-size:13px;font-weight:600;text-transform:uppercase}
.load-more-wrap{text-align:center;padding:20px 15px 4px}.load-more{min-width:116px;border:1px solid #aaa;background:transparent;padding:9px 19px;color:#666;font-size:12px;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:.25s}.load-more:hover,.load-more:focus-visible{background:#666;color:#fff;border-color:#666}.load-more[hidden]{display:none}.load-more.is-loading{opacity:.55;pointer-events:none}
.side-project-nav-frame{position:absolute;inset:0;z-index:40;pointer-events:none}
.side-project-nav-sticky{position:sticky;top:calc(50vh - 43px);height:86px;pointer-events:none}
.side-project-nav-frame .side-project-nav{pointer-events:auto}
.side-project-nav{position:absolute;top:0;z-index:1;display:flex;align-items:stretch;width:48px;height:86px;margin-top:0;overflow:hidden;background:rgba(65,65,65,.88);color:#fff;transition:width .34s cubic-bezier(.22,.61,.36,1),background .2s ease;box-shadow:0 4px 18px rgba(0,0,0,.14)}
.side-project-nav:hover,.side-project-nav:focus-visible{width:318px;background:#222}
.side-prev{left:0}.side-next{right:0;flex-direction:row-reverse}
.side-nav-arrow{display:grid;place-items:center;flex:0 0 48px;width:48px;height:86px;font-size:34px;line-height:1;font-weight:200}
.side-nav-preview{display:flex;align-items:center;gap:12px;flex:0 0 270px;width:270px;padding:8px 12px 8px 5px;opacity:0;transform:translateX(-14px);transition:opacity .24s ease .04s,transform .3s ease}
.side-next .side-nav-preview{padding:8px 5px 8px 12px;transform:translateX(14px)}
.side-project-nav:hover .side-nav-preview,.side-project-nav:focus-visible .side-nav-preview{opacity:1;transform:translateX(0)}
.side-nav-preview img{flex:0 0 92px;width:92px;height:68px;object-fit:cover;background:#fff}
.side-nav-preview img.is-placeholder{object-fit:contain;padding:7px}
.side-nav-copy{min-width:0;display:block;line-height:1.35}
.side-nav-copy small{display:block;margin-bottom:5px;color:#a8c56c;font-size:9px;font-weight:700;letter-spacing:.13em}
.side-nav-copy strong{display:-webkit-box;overflow:hidden;color:#fff;font-size:12px;font-weight:600;-webkit-line-clamp:3;-webkit-box-orient:vertical}
/* lightbox */
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center;color:#fff;overscroll-behavior:contain}
.lightbox.is-open{display:flex}
.lightbox-stage{width:min(1420px,calc(100vw - 130px));height:calc(100vh - 42px);min-height:0;display:flex;flex-direction:column;align-items:stretch;justify-content:center}
.lightbox-viewport{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none;cursor:default}
.lightbox-viewport[hidden],.lightbox-video-stage[hidden],.lightbox-video-stage video[hidden],.lightbox-video-stage iframe[hidden],.lightbox-image[hidden]{display:none!important}
.lightbox-video-stage{position:relative;flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center}
.lightbox-viewport.is-zoomed{cursor:grab}
.lightbox-viewport.is-dragging{cursor:grabbing}
.lightbox-image{display:block;max-width:none;max-height:none;width:auto;height:auto;object-fit:contain;border:0;transform:translate3d(0,0,0) scale(1);transform-origin:50% 50%;will-change:transform;user-select:none;-webkit-user-drag:none;transition:transform .12s ease-out}
.lightbox-viewport.is-dragging .lightbox-image{transition:none}
.lightbox-video-stage video,.lightbox-video-stage iframe{display:block;max-width:100%;max-height:100%;width:auto;height:auto;border:0}
.lightbox-video-stage iframe{width:min(1200px,85vw);aspect-ratio:16/9}
.lightbox-meta{flex:0 0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;min-height:54px;padding-top:9px}
.lightbox-toolbar{grid-column:1;justify-self:start;display:flex;align-items:center;gap:6px}
.lightbox-toolbar[hidden]{display:none}
.lightbox-tool{height:34px;min-width:36px;padding:0 10px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.08);color:#fff;font:inherit;cursor:pointer}
.lightbox-tool:hover,.lightbox-tool:focus-visible{background:rgba(255,255,255,.18)}
.lightbox-tool:disabled{opacity:.35;cursor:not-allowed}
.lightbox-zoom-value{min-width:52px;color:#fff;font-size:12px;text-align:center;font-variant-numeric:tabular-nums}
.lightbox-caption{grid-column:2;margin:0;color:#ddd;font-size:12px;text-align:center}
.lightbox-counter{grid-column:3;justify-self:end;color:#bbb;font-size:12px;font-variant-numeric:tabular-nums}
.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;border:0;background:rgba(255,255,255,.08);color:#fff;cursor:pointer}
.lightbox-close{top:18px;right:20px;width:44px;height:44px;font-size:32px}
.lightbox-prev,.lightbox-next{top:50%;width:46px;height:70px;margin-top:-35px;font-size:40px}
.lightbox-prev{left:16px}.lightbox-next{right:16px}
/* about */
.section-inner{max-width:1180px;margin:0 auto;padding-left:30px;padding-right:30px}
.about-page{background:var(--canvas)}.split-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:76px;align-items:center;padding-top:80px;padding-bottom:80px}.split-layout.reverse{grid-template-columns:minmax(320px,.86fr) minmax(0,1.14fr)}
.about-copy h1,.about-copy h2,.services-title h2{margin:0 0 30px;color:#555;font-size:24px;line-height:1.4;font-weight:700}.about-copy p{margin:0 0 1.25em;color:#666;line-height:2}.about-visual{margin:0;text-align:center}.about-visual img{display:block;width:100%;height:auto}.about-visual.tall img{max-height:720px;object-fit:cover;object-position:center}
.company-section{border-top:1px solid rgba(0,0,0,.08)}.honors-section{background:rgba(255,255,255,.42)}.honors-section .split-layout{align-items:start}.record-list{list-style:none;margin:0;padding:0}.record-list li{padding:5px 0;border-bottom:1px solid rgba(130,130,130,.17);font-size:14px;line-height:1.6}.award-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.award-grid img{display:block;width:100%;height:auto}
.experience-section{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:start;padding-top:80px;padding-bottom:80px}.experience-media>img{display:block;width:100%}.experience-pair{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:15px}.experience-pair img{width:100%;height:100%;object-fit:cover}.experience-copy h2{margin-top:0}
.services-title{padding-top:65px;padding-bottom:30px;border-top:1px solid rgba(0,0,0,.08)}
.service-band{color:#666;background:transparent;padding:0 30px 18px}
.service-band-inner{max-width:1120px;margin:0 auto;padding:34px 38px;display:grid;grid-template-columns:260px 1fr;gap:52px;background:#fff;border-top:3px solid #719430;box-shadow:0 1px 0 rgba(0,0,0,.05)}
.service-band h3{margin:0;color:#719430;font-size:20px;line-height:1.4;font-weight:700}
.service-band p{margin:0 0 16px;color:#666;line-height:1.9}
.service-band h4{margin:0 0 6px;color:#719430;font-size:13px;font-weight:700}
.service-band ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px;margin:0;padding:0;list-style:none}
.service-band li{color:#666}
.service-band li:before{content:"●";color:#719430;font-size:8px;margin-right:8px;vertical-align:2px}
.service-meeting,.service-strategy,.service-design,.service-management,.service-marketing{background:transparent}
.about-contact{padding-top:50px;padding-bottom:64px;text-align:center;color:#666;font-size:13px}.about-contact p{margin:0}.about-contact a{color:#719430}
/* contacts */
.contacts-page{background:#fff}
.contacts-page>section:nth-child(odd){background:var(--canvas)}
.contacts-page>section:nth-child(even){background:#fff}
.contacts-hero{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;align-items:center;padding-top:100px;padding-bottom:100px}
.contacts-logo img{display:block;width:100%;height:auto}
.contacts-info h1{margin:0 0 9px;color:#555;font-size:24px}
.contacts-info h2{margin:0 0 25px;color:#666;font-size:18px}
.contacts-info address{font-style:normal;line-height:1.9;margin-bottom:27px}
.contacts-info address span{color:#888;font-size:13px}
.contacts-info dl{margin:0}
.contacts-info dl div{display:grid;grid-template-columns:100px 1fr;padding:8px 0;border-bottom:1px solid rgba(0,0,0,.10)}
.contacts-info dt{font-size:12px;color:#777}
.contacts-info dd{margin:0}
.contacts-info a:hover{color:#719430}
.contact-form-section{padding:75px 0}
.contact-form-grid{display:grid;grid-template-columns:.65fr 1.35fr;gap:80px}
.contact-form-grid h2{margin:0 0 18px;color:#555;font-size:24px}
.contact-form-intro p{margin:0 0 14px;color:#666;line-height:1.9}
.required-note{font-size:12px}.required-note span,.required-mark{color:#719430;font-weight:700}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.contact-form .form-field{display:flex;flex-direction:column;gap:6px;color:#777;font-size:13px}
.contact-form .field-label{display:flex;align-items:center;gap:4px;min-height:23px;white-space:nowrap;line-height:1.4}
.contact-form .full{grid-column:1/-1}
.contact-form input,.contact-form textarea{width:100%;border:1px solid #d3d3d3;background:#fff;padding:11px 12px;color:#555;border-radius:0;transition:border-color .18s ease,outline-color .18s ease,background-color .18s ease}
.contact-form textarea.message{resize:vertical;min-height:150px;max-height:520px}
.contact-form input:focus,.contact-form textarea:focus{outline:1px solid #719430;border-color:#719430}
.contact-form .is-invalid input,.contact-form .is-invalid textarea{border-color:#a54545;outline-color:#a54545;background:#fffafa}
.field-error{display:block;min-height:16px;color:#a54545;font-size:12px;line-height:1.35}
.contact-actions{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding-top:2px}
.captcha-field{flex:1;min-width:0}
.captcha-row{display:grid;grid-template-columns:160px 42px minmax(120px,220px);gap:8px;align-items:center}
.captcha-image{display:block;width:160px;height:48px;background:#fff;border:1px solid #d3d3d3}
.captcha-refresh{width:42px;height:48px;border:1px solid #d3d3d3;background:#fff;color:#666;cursor:pointer;font-size:20px;transition:color .18s ease,border-color .18s ease}
.captcha-refresh:hover,.captcha-refresh:focus-visible{color:#719430;border-color:#719430}
.captcha-row input{height:48px}
.submit-wrap{display:flex;justify-content:flex-end;align-items:flex-end;padding-bottom:22px}
.contact-submit{min-width:112px;border:0;background:#888;color:#e7e7e7;padding:12px 30px;cursor:not-allowed;transition:background-color .2s ease,color .2s ease,opacity .2s ease}
.contact-submit.is-ready{background:#719430;color:#fff;cursor:pointer}
.contact-submit:focus-visible{outline:2px solid #000;outline-offset:3px}
.form-status{margin:0;color:#719430;font-size:13px;min-height:20px;text-align:right}
.location-section{padding-top:75px;padding-bottom:75px}
.location-placeholder{width:100%;aspect-ratio:3/2;min-height:480px;display:grid;place-items:center;align-content:center;background:#fff;border:1px solid rgba(0,0,0,.08);text-align:center;color:#888}
.location-placeholder img{width:min(320px,42%);height:auto}
.location-placeholder p{margin:20px 0 0}
@media (min-width:781px){
  .site-header.is-fixed{position:fixed;top:0;left:0;right:0;z-index:900;animation:pave_header_drop .24s ease-out both}
  .site-header.is-fixed + main{margin-top:var(--header-h)}
  @keyframes pave_header_drop{from{transform:translateY(-100%)}to{transform:translateY(0)}}
}
@media (max-width:1400px){.masonry-grid.columns-5{--columns:4}.header-inner{padding-left:24px;padding-right:25px}}
@media (max-width:1050px){:root{--header-h:88px}.masonry-grid.columns-5,.masonry-grid.columns-4{--columns:3}.primary-nav{gap:22px}.split-layout,.split-layout.reverse,.experience-section{gap:45px}.contacts-hero{gap:55px}}
@media (max-width:780px){
  :root{--header-h:76px}.header-inner{padding:0 18px}.site-logo{height:100%;width:auto}.menu-toggle{display:block;z-index:2}.primary-nav{position:absolute;top:100%;left:0;right:0;height:auto;display:none;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-top:1px solid #eee;border-bottom:1px solid #ddd;padding:8px 18px 16px}.primary-nav.is-open{display:flex}.nav-link{height:auto;padding:12px 4px}.nav-link.is-active:after{display:none}.facebook-link{margin:10px 4px 4px}
  .masonry-grid.columns-5,.masonry-grid.columns-4{--columns:2}.filter-row{height:auto;min-height:52px;padding-top:12px}.filter-list{justify-content:center}.work-caption{padding:17px}.work-title,.work-description{font-size:14px}.article-body h1{font-size:21px}.detail-media-list,.article-body{padding-left:18px;padding-right:18px}.side-project-nav-sticky{top:calc(50vh - 24px);height:48px}.side-project-nav{position:absolute;top:0;width:40px;height:48px;margin:0}.side-prev{left:0}.side-next{right:0}.lightbox-stage{width:calc(100vw - 36px);height:calc(100vh - 28px)}.lightbox-meta{grid-template-columns:1fr auto;gap:8px;min-height:88px}.lightbox-toolbar{grid-column:1/-1;justify-self:center;order:1}.lightbox-caption{grid-column:1;justify-self:start;text-align:left;order:2}.lightbox-counter{grid-column:2;order:2}.lightbox-prev,.lightbox-next{top:50%;bottom:auto;width:38px;height:58px;margin-top:-29px;font-size:32px}.lightbox-prev{left:0}.lightbox-next{right:0}
  .split-layout,.split-layout.reverse,.experience-section,.contacts-hero,.contact-form-grid{grid-template-columns:1fr;gap:38px}.split-layout{padding-top:58px;padding-bottom:58px}.company-section .about-visual{order:2}.company-section .about-copy{order:1}.award-grid{grid-template-columns:repeat(3,1fr)}.experience-section{padding-top:58px;padding-bottom:58px}.service-band{padding-left:20px;padding-right:20px}.service-band-inner{grid-template-columns:1fr;gap:17px;padding:30px 26px}.contacts-hero{padding-top:68px;padding-bottom:68px}.contacts-logo{max-width:360px}.contact-form-section{padding:58px 0}.section-inner{padding-left:20px;padding-right:20px}
}
@media (max-width:480px){.pagination{padding-left:15px;padding-right:15px}.pagination-pages{gap:6px}.pagination .page-number{width:26px;height:26px}.masonry-grid.columns-5,.masonry-grid.columns-4{--columns:1}.filter-list span{display:none}.filter-button{padding:7px}.work-caption{padding:16px 18px}.award-grid{grid-template-columns:repeat(2,1fr)}.service-band{padding-left:14px;padding-right:14px}.service-band-inner{padding:26px 20px}.service-band ul,.contact-form{grid-template-columns:1fr}.contacts-info dl div{grid-template-columns:82px 1fr}.experience-pair{grid-template-columns:1fr}.footer-inner{padding-left:20px;padding-right:20px}.back-to-top{right:10px;bottom:10px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.masonry-slot{opacity:1!important;transform:none!important;animation:none!important}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.content-card:hover .card-media>img{transform:none}}

/* V4 refinements — 20260802204525 */
.about-intro .about-visual img[src$="pave-brand.gif"]{max-width:491px;margin-inline:auto;image-rendering:auto}

@media (max-width:780px){.contact-actions{align-items:stretch;flex-direction:column}.captcha-field{width:100%}.captcha-row{grid-template-columns:minmax(130px,160px) 42px minmax(100px,1fr)}.submit-wrap{width:100%;padding-bottom:0;justify-content:flex-end}.location-placeholder{min-height:0;aspect-ratio:3/2}}
@media (max-width:480px){.captcha-row{grid-template-columns:1fr 42px}.captcha-row input{grid-column:1/-1}.captcha-image{width:100%;max-width:160px}.contact-submit{width:100%}}

/* V5 refinements — 20260803135424 */
.article-body>.rich-text,.article-body>h1,.article-body>.article-lead,.article-body>time,.article-body>.article-category{width:100%}

/* V6 single-image zoom lightbox — 20260803170450 */
@media (prefers-reduced-motion:reduce){.lightbox-image{transition:none}}

@media(max-width:780px){.side-project-nav.with-preview:hover,.side-project-nav.with-preview:focus-visible{width:42px}.side-project-nav{width:42px;height:58px;margin-top:-29px}.side-nav-arrow{width:42px;height:58px;flex-basis:42px;font-size:29px}.side-nav-preview{display:none}}


/* V8 mixed-media detail navigation and ABOUT sections — 20260805011107 */
.about-page > section.section-inner{max-width:none;width:100%;}
.about-page > section.section-inner > *{max-width:1120px;margin-left:auto;margin-right:auto;}
.about-page > section.split-layout.section-inner{max-width:none;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);padding-left:max(30px,calc((100% - 1120px)/2));padding-right:max(30px,calc((100% - 1120px)/2));}
.about-page > section.split-layout.reverse.section-inner{grid-template-columns:minmax(320px,.86fr) minmax(0,1.14fr);}
.about-page > section.experience-section.section-inner{max-width:none;padding-left:max(30px,calc((100% - 1120px)/2));padding-right:max(30px,calc((100% - 1120px)/2));}
.about-page > section.services-title.section-inner,.about-page > section.about-contact.section-inner{max-width:none;padding-left:max(30px,calc((100% - 1120px)/2));padding-right:max(30px,calc((100% - 1120px)/2));}
.about-page > .section-tone-gray{background:#e1e1e1;}
.about-page > .section-tone-white{background:#fff;}
.honors-section.section-inner{align-items:start;}

.media-open[data-type="video"],.media-open[data-type="youtube"],.media-open[data-type="vimeo"]{position:relative;}
.media-open[data-type="video"]::after,.media-open[data-type="youtube"]::after,.media-open[data-type="vimeo"]::after{content:"VIDEO";position:absolute;left:18px;bottom:18px;padding:7px 11px;background:rgba(0,0,0,.72);color:#fff;font-size:10px;font-weight:700;letter-spacing:.14em;pointer-events:none;}
.lightbox-media-type{grid-column:3;justify-self:end;margin-right:62px;color:#a8c56c;font-size:10px;font-weight:700;letter-spacing:.14em;}
.lightbox-counter{grid-column:3;justify-self:end;}
.lightbox.is-video-mode .lightbox-stage{width:min(1420px,calc(100vw - 130px));}
.lightbox.is-video-mode .lightbox-video-stage{overflow:hidden;padding:12px 0;}
.lightbox.is-video-mode .lightbox-video-stage video{width:auto;height:auto;max-width:100%;max-height:calc(100vh - 126px);object-fit:contain;background:#000;}
.lightbox.is-video-mode .lightbox-video-stage iframe{width:min(1260px,calc(100vw - 150px));height:auto;max-height:calc(100vh - 126px);aspect-ratio:16/9;background:#000;}
.lightbox.is-video-mode .lightbox-caption{grid-column:1/3;justify-self:start;text-align:left;}
.lightbox.is-video-mode .lightbox-media-type{grid-column:3;justify-self:end;margin-right:72px;}
@media(max-width:780px){
  .about-page > section.split-layout.section-inner,.about-page > section.split-layout.reverse.section-inner,.about-page > section.experience-section.section-inner,.about-page > section.services-title.section-inner,.about-page > section.about-contact.section-inner{padding-left:20px;padding-right:20px;}
  .about-page > section.split-layout.section-inner,.about-page > section.split-layout.reverse.section-inner,.about-page > section.experience-section.section-inner{grid-template-columns:1fr;}
  .lightbox-media-type{grid-column:2;grid-row:1;justify-self:end;margin-right:0;}
  .lightbox.is-video-mode .lightbox-video-stage iframe{width:100%;}
  .lightbox.is-video-mode .lightbox-caption{grid-column:1;}
  .lightbox.is-video-mode .lightbox-media-type{grid-column:2;margin-right:0;}
}

/* V8 lightbox metadata alignment */
.lightbox-meta{grid-template-columns:auto minmax(0,1fr) auto auto}
.lightbox-toolbar{grid-column:1}
.lightbox-caption{grid-column:2;min-width:0}
.lightbox-media-type{grid-column:3;justify-self:end;margin-right:0}
.lightbox-counter{grid-column:4;justify-self:end}
.lightbox.is-video-mode .lightbox-caption{grid-column:1/3;justify-self:start;text-align:left}
.lightbox.is-video-mode .lightbox-media-type{grid-column:3;margin-right:0}
.lightbox.is-video-mode .lightbox-counter{grid-column:4}
@media(max-width:780px){
  .lightbox-meta{grid-template-columns:minmax(0,1fr) auto auto}
  .lightbox-toolbar{grid-column:1/-1;grid-row:1;justify-self:center}
  .lightbox-caption{grid-column:1;grid-row:2;justify-self:start;text-align:left}
  .lightbox-media-type{grid-column:2;grid-row:2;justify-self:end}
  .lightbox-counter{grid-column:3;grid-row:2;justify-self:end}
  .lightbox.is-video-mode .lightbox-caption{grid-column:1;grid-row:1}
  .lightbox.is-video-mode .lightbox-media-type{grid-column:2;grid-row:1}
  .lightbox.is-video-mode .lightbox-counter{grid-column:3;grid-row:1}
}

/* V8-R2 portrait-mobile fixed header + right drawer navigation — 20260807185400 */
@media (max-width:780px) and (orientation:portrait){
  .site-header{
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:950;
    width:100%;
    height:var(--header-h);
    background:#fff;
    box-shadow:0 1px 8px rgba(0,0,0,.08);
  }
  .site-header + main{margin-top:var(--header-h)}
  .header-inner{
    position:relative;
    z-index:2;
    width:100%;
    height:var(--header-h);
    background:#fff;
  }
  .site-logo{position:relative;z-index:1002}
  .menu-toggle{
    position:relative;
    z-index:1003;
    width:42px;
    height:42px;
    margin-right:-8px;
    padding:8px;
    cursor:pointer;
    transform:rotate(0deg);
    transition:transform .8s cubic-bezier(.4,0,.2,1);
    transform-origin:50% 50%;
  }
  .menu-toggle span{
    position:absolute;
    left:8px;
    top:50%;
    width:26px;
    height:2px;
    margin:0;
    background:#666;
    transform-origin:50% 50%;
    transition:transform .28s ease,opacity .2s ease;
  }
  .menu-toggle span:nth-child(1){transform:translateY(-8px)}
  .menu-toggle span:nth-child(2){transform:translateY(-1px)}
  .menu-toggle span:nth-child(3){transform:translateY(6px)}
  .menu-toggle[aria-expanded="true"]{transform:rotate(360deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(-1px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-1px) rotate(-45deg)}
  .primary-nav{
    position:fixed;
    top:0;
    right:0;
    left:auto;
    display:flex;
    width:350px;
    max-width:100vw;
    height:100vh;
    height:100dvh;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:var(--header-h) 24px 26px;
    border:0;
    background:#fff;
    box-shadow:-12px 0 28px rgba(0,0,0,.14);
    transform:translate3d(100%,0,0);
    visibility:hidden;
    pointer-events:none;
    transition:transform .42s cubic-bezier(.22,.61,.36,1),visibility 0s linear .42s;
    will-change:transform;
  }
  .primary-nav.is-open{
    display:flex;
    transform:translate3d(0,0,0);
    visibility:visible;
    pointer-events:auto;
    transition:transform .42s cubic-bezier(.22,.61,.36,1),visibility 0s linear 0s;
  }
  .primary-nav .nav-link{
    flex:0 0 auto;
    width:100%;
    height:auto;
    min-height:54px;
    padding:15px 4px;
    border-bottom:1px solid #e5e5e5;
    font-size:13px;
    line-height:24px;
  }
  .primary-nav .nav-link.is-active:after{display:none}
  .primary-nav .facebook-link{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    width:100%;
    height:auto;
    min-height:54px;
    margin:0;
    padding:15px 4px;
    border-bottom:1px solid #e5e5e5;
    border-radius:0;
    background:transparent;
    color:#7b7b7b;
    font-size:13px;
    font-weight:600;
    letter-spacing:.07em;
    line-height:24px;
    transition:color .25s ease;
  }
  .primary-nav .facebook-link:hover,.primary-nav .facebook-link:focus-visible{background:transparent;color:#222}
  .primary-nav .facebook-link svg{display:none}
  .primary-nav .facebook-link:after{content:"facebook"}
  body.mobile-menu-open{overflow:hidden;touch-action:none}
}



/* V8-R3 navigation/detail/lightbox patch — 20260807193000 */
/* Keep the lightbox close control above both image and video viewports. */
.lightbox-viewport,.lightbox-video-stage{z-index:1}
.lightbox-close{z-index:30}

@media (max-width:780px) and (orientation:portrait){
  /* Drawer must cover the logo, while the menu toggle remains clickable above it. */
  .site-logo{z-index:1002}
  .primary-nav{z-index:1004}
  .menu-toggle{z-index:1005}
  .primary-nav.is-open{padding-top:calc(var(--header-h) + 58px)}
  .primary-nav .facebook-link:after{content:"FACEBOOK"}
}


/* V8-R4 mobile navigation + lightbox usability patch — 20260807203400 */
/* Preserve skip-link: it is an accessibility bypass link and stays off-screen until keyboard focus. */

/* Transparent artwork (e.g. black logo PNG) gets a neutral image surface without changing the dark theatre overlay. */
.lightbox-image{background:#f0f0f0}

/* All floating lightbox controls must remain above image/video media. */
.lightbox-viewport,.lightbox-video-stage{z-index:1}
.lightbox-prev,.lightbox-next{z-index:40}
.lightbox-close{z-index:50;line-height:32px}

@media (max-width:780px) and (orientation:portrait){
  /* Use the fixed viewport itself as the width constraint; avoids 100vw overflow on mobile browsers. */
  .primary-nav{
    width:350px;
    max-width:100%;
    overflow-x:hidden;
  }
  .primary-nav > *{min-width:0;max-width:100%}

}

/* V8-R5 detail/lightbox refinement — 20260807225900 */
/* Use layout alignment instead of text/line-height tricks so arrow glyphs stay optically centered. */
.lightbox-prev,.lightbox-next{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  line-height:1;
  background:rgba(255,255,255,.10);
  z-index:40;
}

/* Desktop and tablet retain article previous/next and back-to-top controls.
   Only narrow phone layouts hide them because lateral space is limited. */
@media (max-width:600px){
  .detail-page ~ .side-project-nav-frame,
  .detail-page ~ .back-to-top{display:none!important}
}

/* V8-R6 side navigation / lightbox / ABOUT tone refinement — 20260807231600 */
/* Do not rely on font baselines for chevron centering. The visible arrow is a CSS-drawn shape. */
.lightbox-prev,.lightbox-next{
  position:absolute;
  display:block;
  padding:0;
  font-size:0;
  line-height:0;
  background:rgba(255,255,255,.30);
  z-index:40;
}
.lightbox-prev::before,.lightbox-next::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:14px;
  height:14px;
  border-top:2px solid currentColor;
  border-right:2px solid currentColor;
  transform-origin:50% 50%;
}
.lightbox-prev::before{transform:translate(-38%,-50%) rotate(-135deg)}
.lightbox-next::before{transform:translate(-62%,-50%) rotate(45deg)}

/* Alternating ABOUT sections use dark gray / light gray rather than gray / pure white. */
.about-page > .section-tone-white{background:#f5f5f5}



/* V8-R7 detail category / masonry / side-arrow / lightbox alignment — 20260808000100 */
/* NEWS + OUR WORK detail media and article copy sit on the requested neutral gray surface. */
.detail-page{background:#e6e6e6}
.detail-media-list,.article-body{background:#e6e6e6}

/* Match the legacy detail category treatment: category name only, in an avia_textblock-style H4 at lower left. */
.article-category.avia_textblock{width:100%;margin:34px 0 0;text-align:left}
.article-category.avia_textblock h4{margin:0;color:#719430;font-size:18px;line-height:1.35;font-weight:600;letter-spacing:0}
@media (max-width:989px){.article-category.avia_textblock h4{font-size:17px}}
@media (max-width:767px){.article-category.avia_textblock{margin-top:26px}.article-category.avia_textblock h4{font-size:16px}}

/* Side project arrows are CSS-drawn chevrons, independent of font baseline / line-height. */
.side-nav-arrow{position:relative;display:block;place-items:initial;padding:0;font-size:0;line-height:0}
.side-nav-arrow::before{
  content:"";position:absolute;top:50%;left:50%;width:13px;height:13px;
  border-top:2px solid currentColor;border-right:2px solid currentColor;transform-origin:50% 50%;
}
.side-prev .side-nav-arrow::before{transform:translate(-38%,-50%) rotate(-135deg)}
.side-next .side-nav-arrow::before{transform:translate(-62%,-50%) rotate(45deg)}
@media (max-width:780px){.side-nav-arrow::before{width:11px;height:11px}}

/* Equalize masonry outer gutters: item gaps remain 10px, while first/last cards get half-gap at page edges. */
.js .masonry-item{margin:0 0 var(--item-margin) 0}
.no-js .masonry-grid{column-gap:var(--item-margin);padding-inline:calc(var(--item-margin) / 2)}
.no-js .masonry-item{margin:0 0 var(--item-margin) 0}

/* Lightbox PREV/NEXT vertical center is supplied from the active media viewport, not the full overlay. */
.lightbox-prev,.lightbox-next{top:var(--lightbox-nav-center-y,50%);margin-top:0!important;transform:translateY(-50%)}


/* V8-R8 detail media / side rail / related Load More stabilization — 20260808232500 */
/* Side nav is positioned inside a document-width frame; right:0 now follows the page content box, not scrollbar math. */
.side-project-nav-frame{left:0;right:0}
.side-project-nav-sticky{width:100%}

/* Dynamic related cards remain naturally sized; their exact intrinsic dimensions come from JSON metadata. */
.masonry-item.is-batch-pending .masonry-slot{opacity:0!important;animation:none!important}

@media (max-width:780px){
  .side-project-nav-sticky{top:calc(50vh - 29px);height:58px}
  .side-project-nav{top:0;margin-top:0}
}
.js .masonry-item{height:auto}
