/* Reference detail, isolated from the service section layouts. */
.ap-project{padding-block:clamp(28px,4vw,64px) clamp(40px,5vw,88px)}
.ap-project-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--ap-muted);margin-bottom:clamp(32px,4vw,64px)}
.ap-project-breadcrumb a,.ap-project-bottom a{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--ap-ink)}
.ap-project-breadcrumb a{min-height:44px}
.ap-project-breadcrumb a:hover,.ap-project-bottom a:hover{color:#b93400}
.ap-project-hero{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.2fr);grid-template-areas:"heading cover" "summary cover";column-gap:clamp(32px,4vw,72px);row-gap:26px;align-items:start}
.ap-project-heading{grid-area:heading;align-self:end;min-width:0}
.ap-project h1{margin:0;font-size:clamp(40px,4.4vw,72px);line-height:1.04;letter-spacing:-.025em;text-wrap:balance;overflow-wrap:anywhere}
.ap-project-services{display:flex;flex-wrap:wrap;gap:8px 16px;list-style:none;margin:0 0 24px;padding:0;color:var(--ap-muted);font-size:11px;font-weight:650;letter-spacing:.09em;text-transform:uppercase}
.ap-project-services li{display:flex;align-items:center;gap:9px}
.ap-project-services li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ap-orange);flex-shrink:0}
.ap-project-summary{grid-area:summary;min-width:0}
.ap-project-description{font-size:clamp(16px,1.2vw,19px);line-height:1.8;color:var(--ap-muted);max-width:42em}
.ap-project-description p{margin:0 0 1em}
.ap-project-description p:last-child{margin-bottom:0}
.ap-project-cover{grid-area:cover;align-self:center;min-width:0;margin:0;padding:clamp(8px,1.1vw,16px);border:1px dashed #aab9b6;border-radius:18px;background:rgba(238,243,241,.82);box-shadow:0 20px 48px -32px rgba(16,24,22,.3)}
.ap-project-cover img{display:block;width:100%;height:auto;max-height:740px;object-fit:contain;border-radius:10px;margin:0}
.ap-project-visit{display:inline-flex;justify-content:center;align-items:center;gap:24px;min-height:52px;max-width:100%;margin-top:28px;padding:12px 20px;border:1px solid var(--ap-ink);border-radius:10px;background:var(--ap-ink);color:#fff;text-decoration:none;font-size:14px;font-weight:700;line-height:1.5;transition:background-color .18s,border-color .18s}
.ap-project-visit:hover{color:#fff;background:#a92e00;border-color:#a92e00}
.ap-project a:focus-visible{outline:3px solid #b93400;outline-offset:5px}
.ap-project-hero--text{grid-template-columns:1fr;grid-template-areas:"heading" "summary";max-width:920px}
.ap-project-story{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start;margin:clamp(36px,4vw,64px) 0 0;padding:clamp(24px,3vw,48px);border:1px solid var(--ap-line);border-radius:18px;background:#fff;overflow-wrap:anywhere}
.ap-project-story--with-image{grid-template-columns:minmax(0,.72fr) minmax(0,1.6fr)}
/* Let the text set the image height; keep very long stories from creating a giant crop. */
.ap-project-story figure.ap-project-story-image{position:relative;align-self:stretch;min-height:280px;max-height:880px;margin:0;max-width:100%;overflow:hidden;border-radius:12px;background:var(--ap-surface,#eef3f1)}
.ap-project-story figure.ap-project-story-image img{position:absolute;inset:0;display:block;width:100%;height:100%;margin:0;object-fit:cover}
.ap-project-story-content{min-width:0;font-size:18px;line-height:1.8}
.ap-project-story-content>:first-child{margin-top:0}
.ap-project-story-content>:last-child{margin-bottom:0}
.ap-project-story-content h2{font-size:clamp(28px,2.8vw,40px);line-height:1.15;margin:1.5em 0 .65em}
.ap-project-story-content .ap-project-story-title{margin:0 0 24px;font-size:clamp(30px,3vw,44px);line-height:1.12}
.ap-project-story-content h3{font-size:clamp(22px,2.2vw,28px);margin:1.5em 0 .65em}
.ap-project-story-content p,.ap-project-story-content ul,.ap-project-story-content ol{max-width:none;margin-block:0 1.25em}
.ap-project-story li+li{margin-top:.4em}
.ap-project-story :is(figure,.wp-caption){max-width:100%;margin:2em 0}
.ap-project-story img{max-width:100%;height:auto;border-radius:12px}
.ap-project-story :is(figcaption,.wp-caption-text){font-size:13px;color:var(--ap-muted);margin-top:10px;line-height:1.6}
.ap-project-story blockquote{margin:2em 0;padding:0 0 0 24px;border-left:3px solid var(--ap-orange)}
.ap-project-story iframe{max-width:100%}
.ap-project-story .wp-video,.ap-project-story video{max-width:100%;height:auto}
.ap-project-story .alignwide{width:100%;max-width:none}
.ap-project-story .alignfull{width:100%;max-width:100%;margin-inline:0}
.ap-project-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px 24px;margin-top:clamp(28px,3vw,44px);padding-top:24px;border-top:1px solid var(--ap-line);font-size:14px;font-weight:650}
.ap-project-bottom a{min-height:48px}
.ap-project-bottom .ap-project-back,.ap-project-breadcrumb a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;text-decoration-color:#aab9b6}
.ap-project-bottom .ap-project-contact{justify-content:center;min-height:52px;padding:12px 24px;border:1px solid var(--ap-ink);border-radius:10px;background:var(--ap-ink);color:#fff;text-decoration:none;transition:background-color .18s,border-color .18s}
.ap-project-bottom .ap-project-contact:hover{background:#a92e00;border-color:#a92e00;color:#fff}
@media(min-width:1600px){.ap-project h1{font-size:clamp(64px,4vw,84px)}}
@media(max-width:960px){
 .ap-project-hero{grid-template-columns:1fr;grid-template-areas:"heading" "cover" "summary";gap:28px}
 .ap-project h1{max-width:18ch;font-size:clamp(38px,6.6vw,58px)}
 .ap-project-cover{max-width:100%;width:100%}
 .ap-project-cover img{max-height:620px}
 .ap-project-summary{max-width:46em}
 .ap-project-story{grid-template-columns:1fr;gap:24px}
 .ap-project-story figure.ap-project-story-image{min-height:0;max-height:460px;aspect-ratio:4/3}
}
@media(max-width:600px){
 .ap-project{padding-top:20px}
 .ap-project-breadcrumb{margin-bottom:24px;font-size:12px}
 .ap-project-services{margin-bottom:16px;font-size:10px}
 .ap-project h1{font-size:clamp(36px,9vw,46px);line-height:1.06}
 .ap-project-cover{border-radius:13px;padding:7px}
 .ap-project-cover img{border-radius:7px}
 .ap-project-description,.ap-project-story-content{font-size:16px;line-height:1.8}
 .ap-project-story{padding:22px 20px;border-radius:13px}
 .ap-project-visit{width:100%;margin-top:24px;justify-content:center}
 .ap-project-bottom{align-items:stretch;flex-direction:column;gap:12px;padding-top:18px}
 .ap-project-bottom .ap-project-back{align-self:flex-start}
}
@media(prefers-reduced-motion:reduce){.ap-project-visit,.ap-project-bottom .ap-project-contact{transition:none}}

/* The full-resolution image keeps its original proportions. */
.ap-project-enlarge{display:block;position:relative;cursor:zoom-in;border-radius:10px}
.ap-project-enlarge-icon{position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.6);color:#172321}
.ap-project-enlarge-icon svg{display:block}
.ap-project-enlarge:hover .ap-project-enlarge-icon,.ap-project-enlarge:focus-visible .ap-project-enlarge-icon{background:rgba(255,255,255,.9)}
body.ap-project-lightbox-open{overflow:hidden}
.ap-project-lightbox{width:calc(100vw - 32px);max-width:none;max-height:100vh;max-height:100dvh;margin:auto;padding:58px 0 16px;border:0;background:transparent;overflow:auto;color:#fff}
.ap-project-lightbox::backdrop{background:rgba(10,15,14,.94)}
.ap-project-lightbox img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 90px);max-height:calc(100dvh - 90px);object-fit:contain;margin:0 auto}
.ap-project-lightbox-close{position:absolute;right:0;top:0;min-width:88px;min-height:44px;padding:10px 18px;border:1px solid #ffffff70;border-radius:8px;background:#fff;color:#171d1d;font:600 15px/1.4 Inter,sans-serif;cursor:pointer}
.ap-project-lightbox-close:hover{background:#e9efec}
.ap-project-lightbox-close:focus-visible{outline:3px solid #ff8b60;outline-offset:3px}

.ap-project-breadcrumb .ap-project-edit{margin-left:auto;padding:8px 14px;border:1px solid var(--ap-line);border-radius:8px;background:#fff;text-decoration:none;font-weight:600}
