@font-face{font-family:'Source Serif 4';src:url('fonts/source-serif-4.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:'Plus Jakarta Sans';src:url('fonts/plus-jakarta-sans.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
.primo-projects{--pp-navy:#000f1e;--pp-panel:#0a2440;--pp-deep:#061a2e;--pp-copper:#ac5522;--pp-copper-hover:#92421a;--pp-accent:#eda572;--pp-text:#fff;--pp-muted:#c7d4e2;--pp-line:#486075;--pp-serif:'Source Serif 4',Georgia,serif;--pp-sans:'Plus Jakarta Sans',Arial,sans-serif;background:var(--pp-navy);color:var(--pp-text);font-family:var(--pp-sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;isolation:isolate}
.primo-projects *,.primo-projects *::before,.primo-projects *::after{box-sizing:border-box}
.primo-projects [hidden]{display:none!important}
.primo-projects h1,.primo-projects h2,.primo-projects h3,.primo-projects p,.primo-projects figure{margin:0}
.primo-projects h1,.primo-projects h2,.primo-projects h3{font-family:var(--pp-serif);font-weight:600;color:var(--pp-text);line-height:1.12;letter-spacing:-.025em;text-wrap:balance}
.primo-projects h1{font-size:clamp(2.1rem,4.25vw,3.75rem)}
.primo-projects h2{font-size:clamp(1.85rem,3.15vw,2.8rem)}
.primo-projects h3{font-size:clamp(1.35rem,1.95vw,1.75rem)}
.primo-projects p{color:var(--pp-muted)}
.primo-projects a{color:inherit}
.primo-projects button,.primo-projects a{-webkit-tap-highlight-color:transparent}
.primo-projects :focus-visible{outline:3px solid #f0c69f;outline-offset:5px}
.pp-wrap{width:min(1280px,calc(100% - clamp(36px,8vw,112px)));margin-inline:auto}
.pp-eyebrow{display:block;color:var(--pp-accent)!important;font:700 .72rem/1.4 var(--pp-sans);letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px!important}
.pp-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border:1px solid var(--pp-copper);border-radius:3px;background:var(--pp-copper);color:white!important;font:700 .75rem/1.45 var(--pp-sans);letter-spacing:.065em;text-transform:uppercase;text-decoration:none;text-align:center;cursor:pointer;transition:background-color .18s,border-color .18s}
.pp-btn:hover{background:var(--pp-copper-hover);border-color:var(--pp-copper-hover)}
.pp-btn--outline{background:transparent;border-color:var(--pp-line);color:var(--pp-text)!important}
.pp-btn--outline:hover{background:var(--pp-panel);border-color:#adc0d1}
.pp-btn--commercial{background:transparent;border-color:var(--pp-accent);color:var(--pp-accent)!important}
.pp-btn--commercial:hover{background:var(--pp-panel);border-color:var(--pp-accent)}
.pp-hero{position:relative;overflow:hidden;background:var(--pp-navy);padding-block:clamp(52px,5.5vw,78px);padding-top:calc(clamp(52px,5.5vw,78px) + var(--pp-global-header-inset,0px))}
.pp-hero-media{position:absolute;inset:0;z-index:-1}
.pp-hero-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:58% 50%}
.pp-hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--pp-navy) 0%,rgba(0,15,30,.96) 25%,rgba(0,15,30,.75) 45%,rgba(0,15,30,.06) 82%),linear-gradient(0deg,rgba(0,15,30,.28),transparent 35%)}
.pp-hero{z-index:0}
.pp-hero-copy{max-width:650px}
.pp-hero-copy p:last-child{max-width:550px;margin-top:24px;font-size:clamp(.95rem,1.25vw,1.1rem);color:#e4edf4}
.pp-library{padding-block:42px 80px;scroll-margin-top:100px}
.pp-library-head{display:flex;gap:20px;align-items:end;justify-content:space-between;margin-bottom:24px}
.pp-library-head p{margin-top:10px}
.pp-status{font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.pp-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px}
.pp-filter{min-width:165px}
.pp-filter[aria-pressed=true]{background:var(--pp-copper);border-color:var(--pp-copper);color:white}
.pp-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 28px}
.pp-photo{min-width:0;background:var(--pp-deep);border:1px solid #263e52}
.pp-photo-image{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--pp-panel);text-decoration:none}
.pp-photo-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
@media(hover:hover){.pp-photo-image:hover img{transform:scale(1.025)}}
.pp-photo figcaption{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;min-height:106px}
.pp-photo h3{font-size:clamp(1.25rem,1.8vw,1.65rem)}
.pp-photo-category{display:block;color:var(--pp-muted);font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;margin-bottom:5px}
.pp-photo figcaption .pp-btn{flex:none;padding-inline:16px}
.pp-details{background:var(--pp-panel);padding-block:clamp(56px,7vw,90px)}
.pp-section-intro{max-width:800px}
.pp-section-intro>p:last-child{margin-top:20px;max-width:760px}
.pp-topics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:42px}
.pp-topics p{margin-top:16px;font-size:.95rem}
.pp-services{padding-block:clamp(56px,7vw,90px)}
.pp-service-list{display:grid;gap:28px;margin-top:40px}
.pp-service{display:grid;grid-template-columns:250px minmax(0,1fr) auto;align-items:center;gap:30px}
.pp-service img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block}
.pp-service .pp-eyebrow{margin-bottom:8px!important}
.pp-service p:last-child{margin-top:12px;max-width:440px;font-size:.95rem}
.pp-service--res .pp-eyebrow{color:#afcce7!important}
.pp-areas{display:flex;align-items:center;justify-content:space-between;gap:28px;border-top:1px solid var(--pp-line);padding-top:32px;margin-top:40px}
.pp-areas .pp-eyebrow{margin-bottom:8px!important}
.pp-area-links{display:flex;gap:12px;flex-wrap:wrap}
.pp-close{position:relative;isolation:isolate;background:var(--pp-deep);overflow:hidden;padding-block:46px}
.pp-close-photo{position:absolute;inset:0 0 0 40%;width:60%;height:100%;object-fit:cover;object-position:50% 55%;opacity:.28;z-index:-2}
.pp-close::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--pp-deep) 33%,rgba(6,26,46,.35) 100%)}
.pp-close-inner{display:flex;align-items:center;justify-content:space-between;gap:36px}
.pp-close h2{font-size:clamp(1.8rem,2.65vw,2.4rem)}
.pp-close p{margin-top:12px}
.pp-close-actions{display:grid;justify-items:center;gap:12px;flex:none}
.pp-phone{font:600 1rem/1.6 var(--pp-sans);font-variant-numeric:lining-nums;text-decoration:underline;text-underline-offset:4px;min-height:44px;display:inline-flex;align-items:center}
.pp-dialog{padding:20px;max-width:none;width:min(1440px,calc(100% - 32px));max-height:calc(100dvh - 24px);border:1px solid var(--pp-line);border-radius:3px;background:var(--pp-navy);color:var(--pp-text);overflow:auto;overscroll-behavior:contain}
.pp-dialog::backdrop{background:rgba(0,7,15,.94)}
.pp-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}
.pp-dialog h2{font-size:clamp(1.2rem,2vw,1.8rem)}
.pp-dialog-stage{position:relative;display:grid;place-items:center;background:#000810;min-height:100px}
.pp-dialog-image{display:block;width:100%;height:min(64dvh,760px);object-fit:contain}
.pp-dialog-error{padding:24px;text-align:center}
.pp-dialog-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;flex-wrap:wrap}
.pp-dialog-nav{display:flex;align-items:center;gap:14px}
.pp-dialog-links{display:flex;gap:20px;flex-wrap:wrap}
.pp-dialog-links a{min-height:44px;display:inline-flex;align-items:center;font-size:.83rem;text-underline-offset:4px}
.pp-dialog-count{color:var(--pp-muted);font-size:.8rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.pp-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(min-width:1600px){.pp-hero-copy{max-width:690px}.pp-hero{padding-bottom:100px;padding-top:calc(100px + var(--pp-global-header-inset,0px))}}
@media(max-width:1100px){.pp-service{grid-template-columns:200px minmax(0,1fr);gap:22px}.pp-service>.pp-btn{grid-column:2;justify-self:start;margin-top:-8px}.pp-service>img{grid-row:span 2;height:190px}.pp-areas{align-items:start;flex-direction:column}.pp-photo figcaption{padding:18px;gap:12px;align-items:start;flex-direction:column}.pp-topics{gap:28px}}
@media(max-width:700px){.pp-wrap{width:calc(100% - 36px)}.pp-hero{padding:0 0 16px;padding-top:var(--pp-global-header-inset,0px)}.pp-hero-media{position:relative;inset:auto;height:clamp(185px,58vw,310px);z-index:-1}.pp-hero-media img{object-position:58% 48%}.pp-hero::after{display:none}.pp-hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,var(--pp-navy),rgba(0,15,30,0) 55%)}.pp-hero-copy{margin-top:-16px;position:relative}.pp-hero-copy .pp-eyebrow{margin-bottom:12px!important}.pp-hero h1{font-size:clamp(1.9rem,7.5vw,2.5rem)}.pp-hero-copy p:last-child{margin-top:16px}.pp-library{padding-block:28px 54px}.pp-library-head{align-items:start;gap:10px;flex-direction:column;margin-bottom:20px}.pp-library-head p{margin-top:8px}.pp-status{font-size:.75rem}.pp-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:24px}.pp-filter{min-width:0;padding-inline:10px;font-size:.7rem}.pp-filter:first-child{grid-column:span 2}.pp-gallery{grid-template-columns:1fr;gap:24px}.pp-photo figcaption{flex-direction:row;align-items:center;gap:12px;padding:16px;min-height:100px}.pp-photo h3{font-size:1.3rem}.pp-photo figcaption .pp-btn{padding-inline:12px;font-size:.67rem}.pp-photo-category{font-size:.66rem}.pp-topics{grid-template-columns:1fr;gap:30px;margin-top:32px}.pp-topics h3{font-size:1.45rem}.pp-topics p{margin-top:12px}.pp-service-list{gap:34px;margin-top:30px}.pp-service{grid-template-columns:1fr;gap:16px}.pp-service>img{grid-row:auto;height:auto;aspect-ratio:2/1;min-height:0}.pp-service>.pp-btn{grid-column:auto;margin:0;justify-self:stretch}.pp-service h3{font-size:1.65rem}.pp-area-links{display:grid;width:100%}.pp-close{padding-block:32px}.pp-close-inner{display:block}.pp-close-actions{margin-top:22px;justify-items:start;gap:8px}.pp-close-photo{inset:0;width:100%;opacity:.13}.pp-close::after{background:rgba(6,26,46,.25)}.pp-dialog{padding:12px;width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.pp-dialog-head{gap:12px}.pp-dialog-head .pp-btn{font-size:.7rem;padding-inline:12px}.pp-dialog-image{height:53dvh}.pp-dialog-bottom{display:grid;gap:10px}.pp-dialog-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pp-dialog-count{grid-column:1/-1;grid-row:1;text-align:center}.pp-dialog-nav .pp-btn{font-size:.65rem;padding-inline:10px}.pp-dialog-links{justify-content:space-between;gap:10px}.pp-dialog-links a{font-size:.74rem}}
@media(min-width:701px) and (max-width:1100px){.pp-hero-copy{max-width:67%}.pp-hero::after{background:linear-gradient(90deg,var(--pp-navy),rgba(0,15,30,.94) 25%,rgba(0,15,30,.8) 55%,rgba(0,15,30,.08)),linear-gradient(0deg,rgba(0,15,30,.28),transparent 35%)}}
@media(max-width:360px){.pp-photo figcaption{align-items:stretch;flex-direction:column}.pp-photo figcaption .pp-btn{width:100%}}
@media(prefers-reduced-motion:reduce){.primo-projects *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
