/* Olive Concrete — real project portfolio. Scoped to avoid the landing-page animation. */
.project-gallery-page { background: #0b0c0a; }
.project-gallery-page .info-header { position: relative; }
.project-gallery-page .project-page-hero { background: radial-gradient(circle at 85% 24%, rgba(99,116,80,.19), transparent 32rem), linear-gradient(135deg,#151b14,#0b0c0a); border-bottom: 1px solid rgba(222,193,112,.15); }
.project-hero-shell { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:clamp(2rem,5vw,6rem); max-width:85rem; padding:clamp(4rem,8vw,8rem) clamp(1.25rem,4vw,4.5rem); margin:auto; }
.project-kicker { color:#d7c68f; font-size:.75rem; font-weight:750; letter-spacing:.18em; text-transform:uppercase; }
.project-spark { display:inline-block; width:.5rem; height:.5rem; border-radius:50%; margin-right:.55rem; background:#a0b085; box-shadow:0 0 0 .24rem rgba(146,166,114,.12); }
.project-intro h1 { max-width:13ch; margin:1.15rem 0 1.4rem; font-size:clamp(2.8rem,5.3vw,5.8rem); font-weight:650; line-height:1.02; letter-spacing:-.06em; }
.project-intro h1 em, .project-estimate-cta h2 em { color:#d9bd73; font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.04em; }
.project-lede { max-width:37rem; color:#c9c9bd; font-size:clamp(1.02rem,1.6vw,1.19rem); line-height:1.75; }
.project-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.2rem 1.8rem; margin-top:2rem; }
.project-gold-button { display:inline-flex; align-items:center; justify-content:space-between; gap:2rem; padding:1.05rem 1.2rem; border:1px solid #d2b970; border-radius:999px; background:#d2b970; color:#151610; font-weight:800; font-size:.77rem; line-height:1.4; letter-spacing:.07em; text-transform:uppercase; }
.project-gold-button:hover, .project-gold-button:focus-visible { background:#ead48f; }
.project-phone { border-bottom:1px solid rgba(215,198,143,.6); color:#ead7a0; font-size:.92rem; font-weight:600; }
.project-hero-visual { position:relative; overflow:hidden; background:#23261f; border-radius:3px; box-shadow: 1.2rem 1.2rem 0 rgba(143,155,102,.12); }
.project-hero-visual img { width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; }
.project-visual-caption { position:absolute; bottom:0; left:0; right:0; padding:.95rem 1.25rem; background:linear-gradient(transparent,rgba(0,0,0,.85)); color:#eee4cd; font-size:.78rem; }
.project-gallery-container { max-width:85rem; margin:auto; padding:0 clamp(1.25rem,4vw,4.5rem); }
.project-overview { display:flex; align-items:center; gap:2.8rem; justify-content:space-between; padding:2rem 0; border-bottom:1px solid rgba(255,255,255,.1); }
.project-overview>div { display:flex; align-items:baseline; flex-wrap:wrap; gap:.85rem; min-width:17rem; }
.project-stat { color:#d2b970; font-size:3rem; line-height:1; font-weight:700; letter-spacing:-.07em; }
.project-stat-label { color:#ece7d8; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; }
.project-overview p { max-width:45rem; color:#aaa99f; margin:0; font-size:.9rem; line-height:1.6; }
.project-filters { display:flex; gap:.7rem; flex-wrap:wrap; padding:2rem 0 1rem; }
.project-filters a { border:1px solid rgba(222,193,112,.28); padding:.7rem .95rem; color:#e3dccc; border-radius:99px; font-size:.78rem; }
.project-filters a span { color:#dfbc73; margin-left:.3rem; }
.project-filters a:hover, .project-filters a:focus-visible { background:rgba(222,193,112,.12); border-color:#d2b970; }
.project-category { scroll-margin-top:2rem; padding:clamp(2.4rem,5vw,4.8rem) 0 clamp(2.8rem,5vw,5rem); border-bottom:1px solid rgba(255,255,255,.1); }
.project-category-heading { display:grid; grid-template-columns: minmax(5rem, .2fr) 1fr; gap:1rem; margin-bottom:2rem; }
.project-index { color:#c7b576; font-size:.83rem; font-weight:700; }
.project-category-heading h2 { margin:.35rem 0 .9rem; font-size:clamp(2rem,4vw,3.8rem); font-weight:560; letter-spacing:-.05em; line-height:1.08; }
.project-section-intro { margin:0; color:#bcb9ad; max-width:50rem; font-size:1rem; line-height:1.75; }
.project-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.project-photo-card { margin:0; background:#161913; border:1px solid rgba(255,255,255,.08); overflow:hidden; }
.project-photo-link { display:block; overflow:hidden; background:#22291f; }
.project-photo-card img { display:block; width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; transition:transform .4s ease; }
.project-photo-link:hover img, .project-photo-link:focus-visible img { transform:scale(1.04); }
.project-photo-card figcaption { padding:1.3rem 1.15rem 1.4rem; }
.project-photo-card h3 { margin:0 0 .45rem; font-size:1.12rem; line-height:1.4; letter-spacing:-.02em; color:#f1ead9; }
.project-photo-card p { margin:0; font-size:.88rem; line-height:1.65; color:#aea99c; }
.project-estimate-cta { margin:4.5rem 0; padding:clamp(2rem,5vw,4.5rem); border:1px solid rgba(222,193,112,.28); background:radial-gradient(circle at 90% 0,rgba(222,193,112,.12),transparent 25rem),#151910; }
.project-estimate-cta h2 { margin:.65rem 0 1rem; font-size:clamp(2.2rem,5vw,4rem); font-weight:600; letter-spacing:-.045em; line-height:1.1; }
.project-estimate-cta p:not(.project-kicker) { max-width:40rem; color:#c4c2b4; }
/* Home-page featured project section */
.project-home { background:#111810; color:#f2eee4; padding:clamp(4rem,8vw,8rem) clamp(1.25rem,4vw,4.5rem); border-block:1px solid rgba(222,193,112,.17); }
.project-home-inner { max-width:85rem; margin:auto; }
.project-home-top { display:flex; justify-content:space-between; gap:2rem; align-items:end; margin-bottom:2.4rem; }
.project-home-top h2 { margin:.5rem 0 0; font-size:clamp(2.3rem,4.5vw,4.6rem); font-weight:600; line-height:1.08; letter-spacing:-.055em; }
.project-home-top h2 em { color:#d8be79; font-family:Georgia,serif; font-weight:400; }
.project-home-link { white-space:nowrap; padding:.8rem 0; color:#e7ce8c; font-weight:650; font-size:.86rem; border-bottom:1px solid #e7ce8c; }
.project-home-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.project-home-card { color:inherit; display:block; background:#20261c; border:1px solid rgba(255,255,255,.06); }
.project-home-card img { display:block; width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; }
.project-home-card span { display:flex; justify-content:space-between; gap:.5rem; padding:1.1rem; font-size:.97rem; font-weight:600; }
.project-home-card span b { color:#d6bd78; }
/* Small galleries embedded in service pages */
.page-project-showcase { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:clamp(1.5rem,4vw,4rem); padding-block:3.8rem; border-top:1px solid rgba(255,255,255,.1); }
.page-project-showcase figure { margin:0; }
.page-project-showcase img { width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; }
.page-project-showcase figcaption { font-size:.78rem; color:#aaa99b; padding-top:.5rem; }
.page-project-showcase h2 { font-size:clamp(1.8rem,3.5vw,3rem); line-height:1.1; letter-spacing:-.05em; margin:.4rem 0 1rem; }
.page-project-showcase p { max-width:30rem; color:#c0beb4; }
.page-project-showcase a { color:#d9bd73; font-weight:800; border-bottom:1px solid rgba(217,189,115,.6); }
@media(max-width:950px) { .project-hero-shell { grid-template-columns:1fr; } .project-hero-visual { max-width:43rem; } .project-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .project-overview { align-items:start; flex-direction:column; gap:1rem; } .project-category-heading { grid-template-columns:1fr; } .project-home-top { display:block; } .project-home-link { display:inline-block; margin-top:1.2rem; } .project-home-grid { grid-template-columns:1fr; } .page-project-showcase { grid-template-columns:1fr; } }
@media(max-width:500px) { .project-photo-grid {grid-template-columns:1fr;} .project-hero-shell { padding-block:3rem; } .project-intro h1 { font-size:clamp(2.65rem,12vw,3.8rem); } .project-actions {align-items:stretch;} .project-gold-button {width:100%;} }
@media(prefers-reduced-motion:reduce) { .project-photo-card img {transition:none;} }
