/* ============================================================
   cc-project.css — shared styles for individual project pages
   ============================================================ */

/* ── PAGE HERO ── */
.page-hero{position:relative;min-height:80vh;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(64px,9vw,112px);padding-top:140px;overflow:hidden;}
.page-hero-media{position:absolute;inset:0;}
.page-hero-media .ph{position:absolute;inset:0;}
.page-hero-scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(38,37,34,.96) 0%,rgba(38,37,34,.38) 50%,rgba(38,37,34,.55) 100%),linear-gradient(to right,rgba(38,37,34,.65) 0%,rgba(38,37,34,0) 60%);z-index:1;}
.page-hero-frame{position:absolute;inset:24px;border:1px solid rgba(255,255,255,.18);pointer-events:none;z-index:3;}
.page-hero-body{position:relative;z-index:2;}
.page-hero .eyebrow{color:var(--gold-soft);margin-bottom:22px;}
.page-hero .eyebrow::before{background:var(--gold-soft);}
.proj-hero-type{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:16px;}
.proj-hero-type::before{content:"";width:20px;height:1px;background:var(--gold);flex-shrink:0;}
.proj-hero-title{font-family:var(--serif);font-weight:600;font-size:clamp(52px,7vw,96px);line-height:.98;color:#fff;margin:0;letter-spacing:-.02em;}
.proj-hero-sub{font-family:var(--sans);font-size:clamp(14px,1.2vw,17px);color:rgba(255,255,255,.7);margin:20px 0 0;letter-spacing:.04em;}
@media(max-width:600px){.page-hero-frame{inset:14px;}.proj-hero-title{font-size:clamp(42px,12vw,72px);}}

/* ── STATS STRIP ── */
.proj-stats-strip{background:var(--ink-900);display:grid;grid-template-columns:repeat(4,1fr);}
.pstat{padding:clamp(22px,3vw,36px) clamp(20px,3vw,36px);border-left:1px solid rgba(255,255,255,.08);text-align:left;}
.pstat:first-child{border-left:none;}
.pstat-n{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(28px,3.5vw,44px);color:var(--gold-soft);line-height:1;}
.pstat-l{font-family:var(--sans);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#7a766e;margin-top:6px;}
@media(max-width:720px){.proj-stats-strip{grid-template-columns:repeat(2,1fr);}.pstat:nth-child(3){border-left:none;}.pstat:nth-child(3),.pstat:nth-child(4){border-top:1px solid rgba(255,255,255,.08);}}
@media(max-width:420px){.proj-stats-strip{grid-template-columns:1fr;}.pstat{border-left:none;border-top:1px solid rgba(255,255,255,.08);}.pstat:first-child{border-top:none;}}

/* ── PROJECT STORY (split) ── */
.proj-story{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;}
.proj-story-media{position:relative;min-height:500px;overflow:hidden;}
.proj-story-media .ph{position:absolute;inset:0;}
.proj-story-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s ease;}
.proj-story-media img.is-loaded{opacity:1;}
.proj-story-panel{background:var(--paper-2);padding:clamp(48px,6vw,88px) clamp(36px,5vw,72px);display:flex;flex-direction:column;justify-content:center;}
.proj-story-panel .eyebrow{margin-bottom:22px;}
.proj-story-panel h2{font-family:var(--serif);font-weight:600;font-size:clamp(28px,3vw,42px);line-height:1.08;color:var(--ink);margin:0 0 24px;}
.proj-story-panel h2 em{font-style:italic;color:var(--gold-ink);}
.proj-story-panel p{font-family:var(--sans);font-size:clamp(14.5px,1vw,16px);line-height:1.74;color:var(--ink-soft);margin:0 0 18px;}
.proj-story-panel p:last-child{margin-bottom:0;}
@media(max-width:860px){.proj-story{grid-template-columns:1fr;}.proj-story-media{min-height:340px;}}

/* ── PHOTO GALLERY (before/during/after) ── */
.proj-gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:300px;gap:4px;}
.proj-gallery-item{position:relative;overflow:hidden;}
.proj-gallery-item .ph{position:absolute;inset:0;}
.proj-gallery-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s ease,transform 1s cubic-bezier(.2,.7,.2,1);}
.proj-gallery-item img.is-loaded{opacity:1;}
.proj-gallery-item:hover img.is-loaded{transform:scale(1.04);}
.proj-gallery-label{position:absolute;left:14px;bottom:14px;z-index:2;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.85);background:rgba(38,37,34,.7);padding:5px 12px;backdrop-filter:blur(4px);}
.proj-gallery-item--wide{grid-column:span 2;}
@media(max-width:860px){.proj-gallery{grid-auto-rows:260px;}}
@media(max-width:640px){.proj-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:220px;}.proj-gallery-item--wide{grid-column:span 2;}}
@media(max-width:420px){.proj-gallery{grid-template-columns:1fr;grid-auto-rows:240px;}.proj-gallery-item--wide{grid-column:auto;}}

/* ── HIGHLIGHTS LIST ── */
.proj-highlights{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line);}
.proj-highlight{padding:22px 0;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:14px;}
.proj-highlight:nth-child(odd){padding-right:32px;border-right:1px solid var(--line);}
.proj-highlight:nth-child(even){padding-left:32px;}
.proj-highlight::before{content:"✦";font-size:8px;color:var(--gold);margin-top:5px;flex-shrink:0;}
.proj-highlight span{font-family:var(--sans);font-size:14px;line-height:1.6;color:var(--ink-soft);}
.proj-highlight strong{color:var(--ink);font-weight:600;}
@media(max-width:560px){.proj-highlights{grid-template-columns:1fr;}.proj-highlight{border-right:none!important;padding-right:0!important;padding-left:0!important;}}

/* ── TESTIMONIAL ── */
.proj-testimonial{max-width:800px;margin:0 auto;text-align:center;}
.proj-testimonial .qmark{font-family:var(--serif);font-size:96px;line-height:.6;color:var(--gold-line);height:40px;display:block;margin-bottom:8px;}
.proj-testimonial blockquote{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(20px,2.4vw,30px);line-height:1.36;color:#fff;margin:0 0 32px;padding:0;border:none;}
.proj-testimonial blockquote em{font-style:normal;color:var(--gold-soft);}
.proj-testimonial-attr{display:flex;align-items:center;justify-content:center;gap:14px;}
.proj-testimonial-av{width:46px;height:46px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:18px;font-weight:600;color:var(--ink-deep);}
.proj-testimonial-meta .nm{font-family:var(--serif);font-size:18px;color:#fff;}
.proj-testimonial-meta .dt{font-family:var(--sans);font-size:12.5px;color:#aca79c;margin-top:3px;}

/* ── PROJECT NAV (prev / next) ── */
.proj-nav{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);}
.proj-nav-item{display:flex;flex-direction:column;padding:clamp(28px,4vw,48px) clamp(24px,3vw,48px);text-decoration:none;color:inherit;transition:background .3s;}
.proj-nav-item:hover{background:var(--paper-2);}
.proj-nav-item:first-child{border-right:1px solid var(--line);}
.proj-nav-dir{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mut);margin-bottom:10px;display:flex;align-items:center;gap:8px;}
.proj-nav-item:last-child .proj-nav-dir{justify-content:flex-end;}
.proj-nav-name{font-family:var(--serif);font-weight:600;font-size:clamp(22px,2.6vw,32px);color:var(--ink);line-height:1.1;}
.proj-nav-type{font-family:var(--sans);font-size:12px;color:var(--ink-mut);letter-spacing:.06em;margin-top:6px;}
.proj-nav-item:last-child{text-align:right;}
@media(max-width:560px){.proj-nav{grid-template-columns:1fr;}.proj-nav-item:first-child{border-right:none;border-bottom:1px solid var(--line);}}
