/* Action8 Projects — scoped to .a8p, reusing the tokens of the existing city landing pages (.a8r). */
.a8p{--a8-red:#d62b31;--a8-red-brand:#ee3d43;--a8-navy:#282d3b;--a8-dark:#222529;--a8-text:#4a4f5c;--a8-muted:#6b7080;--a8-line:#e6e7eb;--a8-soft:#f6f6f8;font-family:Poppins,sans-serif;color:var(--a8-text);font-size:16px;line-height:1.7;text-align:left}
.a8p *{box-sizing:border-box}
.a8p .a8p-wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.a8p h1,.a8p h2,.a8p h3,.a8p h4{font-family:Poppins,sans-serif;color:var(--a8-dark);margin:0 0 14px;line-height:1.25;letter-spacing:-.01em;text-transform:none}
.a8p h2{font-size:26px;font-weight:700}
.a8p p{margin:0 0 16px}
.a8p img{display:block;max-width:100%;height:auto}
.a8p a:focus-visible,.a8p button:focus-visible{outline:3px solid #ffb400;outline-offset:3px}
.a8p .a8p-eyebrow{display:inline-block;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--a8-red);margin-bottom:10px}
.a8p .a8p-lead{font-size:18px;max-width:760px}

/* Buttons */
.a8p .a8p-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.a8p .a8p-btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 26px;border-radius:6px;font-weight:600;font-size:16px;text-decoration:none;border:2px solid transparent;transition:background .2s,color .2s,border-color .2s}
.a8p .a8p-btn-primary{background:var(--a8-red);color:#fff}
.a8p .a8p-btn-primary:hover{background:#b8232a;color:#fff}
.a8p .a8p-btn-ghost{border-color:currentColor;color:var(--a8-dark);background:transparent}
.a8p .a8p-btn-ghost:hover{background:var(--a8-dark);color:#fff;border-color:var(--a8-dark)}

/* Hero */
.a8p .a8p-hero{background:var(--a8-dark);color:#c9ccd4;padding:40px 44px 44px;position:relative;border-radius:14px;overflow:hidden;margin-top:24px}
.a8p .a8p-hero:before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--a8-red-brand)}
.a8p .a8p-hero h1{color:#fff;font-size:40px;font-weight:700;margin-bottom:14px;max-width:900px}
.a8p .a8p-hero .a8p-eyebrow{color:#ff8a8e}
.a8p .a8p-hero .a8p-lead{color:#c9ccd4;margin-bottom:0}
.a8p .a8p-hero-link{margin:16px 0 0}
.a8p .a8p-hero-link a{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.a8p .a8p-crumbs ol{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:6px;font-size:13.5px;color:#9a9eaa}
.a8p .a8p-crumbs li+li:before{content:"/";margin-right:6px;color:#5d6270}
.a8p .a8p-crumbs a{color:#c9ccd4;text-decoration:none}
.a8p .a8p-crumbs a:hover{color:#fff;text-decoration:underline}

/* Filters */
.a8p .a8p-archive-body{padding-top:36px;padding-bottom:20px;transition:opacity .15s}
.a8p .a8p-archive-body.is-loading{opacity:.45;pointer-events:none}
.a8p .a8p-filters{display:grid;gap:14px;padding-bottom:26px;border-bottom:1px solid var(--a8-line);margin-bottom:22px}
.a8p .a8p-filter-row{display:grid;grid-template-columns:80px 1fr;gap:12px;align-items:start}
.a8p .a8p-filter-label{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--a8-muted);padding-top:10px}
.a8p .a8p-pills{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.a8p .a8p-pills li{margin:0;padding:0}
.a8p .a8p-pills a{display:inline-block;padding:8px 16px;border:1px solid var(--a8-line);border-radius:999px;font-size:14.5px;font-weight:500;line-height:1.5;text-decoration:none;color:var(--a8-dark);background:#fff;transition:border-color .2s,color .2s,background .2s;white-space:nowrap}
.a8p .a8p-pills a:hover{border-color:var(--a8-red);color:var(--a8-red)}
.a8p .a8p-pills a.is-active{background:var(--a8-dark);border-color:var(--a8-dark);color:#fff}
.a8p .a8p-count{font-size:14px;color:var(--a8-muted);margin-bottom:18px}
.a8p .a8p-empty{padding:48px 20px;text-align:center;background:var(--a8-soft);border-radius:10px}

/* Cards */
.a8p .a8p-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.a8p .a8p-card{background:#fff;border:1px solid var(--a8-line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;position:relative;transition:box-shadow .2s,transform .2s}
.a8p .a8p-card:hover{box-shadow:0 10px 30px rgba(34,37,41,.10);transform:translateY(-2px)}
.a8p .a8p-card-media{display:block;aspect-ratio:4/3;background:var(--a8-soft);overflow:hidden}
.a8p .a8p-card-media img{width:100%;height:100%;object-fit:cover}
.a8p .a8p-card-noimg{display:block;width:100%;height:100%;background:linear-gradient(135deg,#eceef2,#f6f6f8)}
.a8p .a8p-card-body{padding:18px 20px 22px;display:flex;flex-direction:column;flex:1}
.a8p .a8p-card-meta{font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--a8-red);margin-bottom:6px}
.a8p .a8p-card-title{font-size:18px;font-weight:600;line-height:1.35;margin-bottom:8px}
.a8p .a8p-card-title a{color:var(--a8-dark);text-decoration:none}
.a8p .a8p-card-title a:after{content:"";position:absolute;inset:0}
.a8p .a8p-card:hover .a8p-card-title a{color:var(--a8-red)}
.a8p .a8p-card-text{font-size:14.5px;line-height:1.65;margin:0;color:var(--a8-text)}

/* Pagination */
.a8p .a8p-pagination{margin-top:36px}
.a8p .a8p-pagination ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.a8p .a8p-pagination li{margin:0}
.a8p .a8p-pagination a,.a8p .a8p-pagination span{display:inline-flex;min-width:44px;min-height:44px;padding:0 14px;align-items:center;justify-content:center;border:1px solid var(--a8-line);border-radius:6px;font-weight:600;font-size:14.5px;text-decoration:none;color:var(--a8-dark);background:#fff}
.a8p .a8p-pagination .current{background:var(--a8-dark);border-color:var(--a8-dark);color:#fff}
.a8p .a8p-pagination a:hover{border-color:var(--a8-red);color:var(--a8-red)}

/* Reusable section (city pages, service pages, homepage) */
.a8p.a8p-section,.a8p .a8p-section{padding:64px 0;clear:both}
.a8p .a8p-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px}
.a8p .a8p-section-title{font-size:32px;font-weight:700;margin-bottom:0}
.a8p .a8p-section-head .a8p-lead{margin:12px 0 0;font-size:16.5px}
.a8p .a8p-more{flex:none;font-weight:600;color:var(--a8-red);text-decoration:none;white-space:nowrap}
.a8p .a8p-more:hover{text-decoration:underline}
.a8p.a8p-single .a8p-section{padding-top:16px}

/* Single project */
.a8p .a8p-single-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;padding-top:44px;padding-bottom:24px;align-items:start}
.a8p .a8p-cover{margin:0 0 32px}
.a8p .a8p-cover img{width:100%;border-radius:12px}
.a8p .a8p-content{margin-bottom:36px}
.a8p .a8p-content ul,.a8p .a8p-content ol{margin:0 0 16px 20px;padding:0}
.a8p .a8p-content a,.a8p .a8p-facts dd a,.a8p .a8p-related-links a{color:var(--a8-red);text-decoration:underline;text-underline-offset:3px}
.a8p .a8p-gallery-wrap,.a8p .a8p-videos{margin-bottom:36px}
.a8p .a8p-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.a8p .a8p-gallery a{display:block;aspect-ratio:4/3;border-radius:8px;overflow:hidden;background:var(--a8-soft)}
.a8p .a8p-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.a8p .a8p-gallery a:hover img{transform:scale(1.04)}
.a8p .a8p-video{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#000;margin-bottom:14px}
.a8p .a8p-video iframe,.a8p .a8p-video video{position:absolute;inset:0;width:100%;height:100%;border:0}
.a8p .a8p-side{position:sticky;top:110px;display:grid;gap:20px}
.a8p .a8p-facts,.a8p .a8p-related-links{border:1px solid var(--a8-line);border-radius:10px;padding:24px;background:#fff}
.a8p .a8p-facts h2,.a8p .a8p-related-links h2{font-size:18px;margin-bottom:14px}
.a8p .a8p-facts dl{margin:0;display:grid;grid-template-columns:96px 1fr;gap:10px 12px;font-size:15px}
.a8p .a8p-facts dt{font-weight:600;color:var(--a8-muted);font-size:13px;text-transform:uppercase;letter-spacing:.06em;padding-top:3px}
.a8p .a8p-facts dd{margin:0;color:var(--a8-dark);font-weight:500}
.a8p .a8p-facts dd a{display:inline-block;margin-right:8px}
.a8p .a8p-facts .a8p-btn{width:100%}
.a8p .a8p-related-links ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:15px}
.a8p .a8p-related-links li{margin:0}

/* CTA */
.a8p .a8p-cta{background:var(--a8-navy);border-radius:14px;padding:44px 32px;margin:36px 0 56px;text-align:center;color:#d3d6dd}
.a8p .a8p-cta h2{color:#fff;font-size:28px}
.a8p .a8p-cta p{max-width:620px;margin:0 auto}
.a8p .a8p-cta .a8p-btns{justify-content:center}
.a8p .a8p-cta .a8p-btn-ghost{color:#fff}
.a8p .a8p-cta .a8p-btn-ghost:hover{background:#fff;color:var(--a8-dark);border-color:#fff}

/* Lightbox */
.a8p-lightbox{position:fixed;inset:0;z-index:99999;background:rgba(15,17,20,.94);display:flex;align-items:center;justify-content:center;padding:56px 16px}
.a8p-lightbox[hidden]{display:none}
.a8p-lightbox img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}
.a8p-lightbox button{position:absolute;width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.a8p-lightbox button:hover{background:rgba(255,255,255,.28)}
.a8p-lightbox .a8p-lb-close{top:12px;right:12px}
.a8p-lightbox .a8p-lb-prev{left:12px;top:50%;margin-top:-24px}
.a8p-lightbox .a8p-lb-next{right:12px;top:50%;margin-top:-24px}
.a8p-lightbox.is-single .a8p-lb-prev,.a8p-lightbox.is-single .a8p-lb-next{display:none}

@media (max-width:1024px){
	.a8p .a8p-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.a8p .a8p-single-grid{grid-template-columns:1fr;gap:28px}
	.a8p .a8p-side{position:static}
	.a8p .a8p-hero h1{font-size:34px}
}
@media (max-width:640px){
	.a8p .a8p-grid{grid-template-columns:1fr;gap:18px}
	.a8p .a8p-hero{padding:28px 22px 30px;margin-top:16px}
	.a8p .a8p-hero h1{font-size:28px}
	.a8p .a8p-lead{font-size:16.5px}
	.a8p .a8p-filter-row{grid-template-columns:1fr;gap:6px}
	.a8p .a8p-filter-label{padding-top:0}
	.a8p .a8p-pills{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;margin:0 -20px;padding-left:20px;padding-right:20px;-webkit-overflow-scrolling:touch}
	.a8p .a8p-pills a{padding:10px 16px}
	.a8p .a8p-section-head{flex-direction:column;align-items:flex-start;gap:12px}
	.a8p .a8p-section-title{font-size:26px}
	.a8p.a8p-section,.a8p .a8p-section{padding:44px 0}
	.a8p .a8p-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
	.a8p .a8p-cta{padding:32px 20px}
	.a8p .a8p-cta h2{font-size:23px}
	.a8p .a8p-btns .a8p-btn{width:100%}
}
@media (prefers-reduced-motion:reduce){.a8p *{transition:none!important}}
