/* CoreStruct Projects */
.csw-projects{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='254' viewBox='0 0 220 254'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.08' stroke-width='1.2'%3E%3Cpath d='M110 0 220 63.5v127L110 254 0 190.5v-127z'/%3E%3Cpath d='M110 0v127M110 127 220 190.5M110 127 0 190.5'/%3E%3C/g%3E%3C/svg%3E") center/220px 254px,var(--forest);color:var(--white);padding-bottom:calc(var(--pad-section) + 32px)}
.csw-projects .deco.tr i:nth-child(1),.csw-projects .deco.tr i:nth-child(2){background:var(--white)}
.csw-projects .deco.bl i:nth-child(1),.csw-projects .deco.bl i:nth-child(2){background:var(--mint)}
.csw-projects .deco i:nth-child(3){background:var(--sage)}
.csw-projects .sec-head .h2{color:var(--white)}
.csw-projects .sec-head .sec-sub{display:block;margin:0;font:400 var(--fs-body)/1.65 var(--f-head);color:var(--mint);opacity:.85}
.csw-projects .sec-head .eyebrow{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:var(--white)}
.csw-projects .proj-grid{display:grid;grid-template-columns:repeat(var(--proj-cols,4),1fr);gap:20px}
.csw-projects .proj-grid figure{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:3/4;max-width:100%;position:relative;box-shadow:0 24px 48px -24px rgba(0,0,0,.5);outline:1px solid rgba(255,255,255,.08)}
.csw-projects .proj-grid figure:nth-child(even){transform:translateY(32px)}
.csw-projects .proj-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.csw-projects .proj-grid figure:hover img{transform:scale(1.04)}
.csw-projects .proj-grid figcaption{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:24px;opacity:1;background:linear-gradient(0deg,rgba(40,58,43,.85) 0%,rgba(40,58,43,.25) 45%,transparent 70%);-webkit-backdrop-filter:none;backdrop-filter:none;transition:background .35s,backdrop-filter .35s,-webkit-backdrop-filter .35s}
.csw-projects .proj-grid figure:hover figcaption,.csw-projects .proj-grid figure:focus figcaption,.csw-projects .proj-grid figure:focus-within figcaption{background:linear-gradient(0deg,rgba(40,58,43,.8) 0%,rgba(40,58,43,.3) 60%,rgba(40,58,43,.1) 100%);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.csw-projects .proj-grid .pc-title{display:block;margin:0;color:var(--white);font:400 20px/1.25 var(--f-head);transform:none;transition:transform .35s}
.csw-projects .proj-grid .pc-text{display:block;margin:0;font-weight:400;font-family:var(--f-head);color:var(--mint);font-size:15px;line-height:1.5;max-height:0;opacity:0;overflow:hidden;transform:translateY(8px);transition:max-height .4s,opacity .3s,transform .35s}
.csw-projects .proj-grid figure:hover .pc-text,.csw-projects .proj-grid figure:focus .pc-text,.csw-projects .proj-grid figure:focus-within .pc-text{max-height:8em;opacity:1;transform:none}
@media (hover:none){.csw-projects .proj-grid .pc-text{max-height:8em;opacity:1;transform:none}}
.csw-projects .pc-tag{display:block;margin:0;font:700 12px/1 var(--f-accent);letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.csw-projects .pc-link{position:absolute;inset:0;z-index:2;border-radius:inherit}
.csw-projects .pc-link:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.csw-projects .proj-cta{display:flex;justify-content:center;width:100%;grid-column:1/-1;margin-top:calc(clamp(36px,5vw,56px) + 32px)}
.csw-projects .proj-cta .pill:hover > span{background:var(--gold);color:var(--ink);box-shadow:0 10px 22px -10px rgba(0,0,0,.5)}
/* card style: photo + text panel */
.csw-projects .proj-grid2{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.csw-projects .pc2{position:relative;background:var(--mint);color:var(--ink);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 48px -24px rgba(0,0,0,.5);transition:transform .35s,box-shadow .35s}
.csw-projects .pc2:hover{transform:translateY(-4px);box-shadow:0 30px 56px -24px rgba(0,0,0,.6)}
.csw-projects .pc2-media{position:relative;aspect-ratio:4/3;overflow:hidden}
.csw-projects .pc2-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.csw-projects .pc2:hover .pc2-media img{transform:scale(1.04)}
.csw-projects .pc2-px{position:absolute;top:0;right:0;width:60px;height:40px}
.csw-projects .pc2-px i{position:absolute;width:20px;height:20px}
.csw-projects .pc2-px i:nth-child(1){top:0;right:0;background:var(--mint)}
.csw-projects .pc2-px i:nth-child(2){top:0;right:40px;background:var(--mint)}
.csw-projects .pc2-px i:nth-child(3){top:20px;right:20px;background:var(--gold)}
.csw-projects .pc2-body{display:flex;flex-direction:column;gap:12px;padding:20px 20px 24px;flex:1}
.csw-projects .pc2-head{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.csw-projects .pc2-head .pc2-title{margin:0}
.csw-projects .pc2-num{font:700 34px/1 var(--f-head);color:transparent;-webkit-text-stroke:1.5px rgba(90,124,108,.45);flex:none}
.csw-projects .pc2-body .pc2-title{display:block;font:400 19px/1.25 var(--f-head);color:var(--ink);margin:0 0 8px}
.csw-projects .pc2-body .pc2-title::before{content:"";display:block;width:28px;height:3px;background:var(--gold);margin-bottom:10px}
.csw-projects .pc2-body .pc2-text{display:block;font:400 14.5px/1.55 var(--f-head);line-height:1.55;color:var(--ink);opacity:.85;margin:0}
.csw-projects .proj-grid2 + .proj-cta{margin-top:clamp(36px,5vw,56px)}
@media (max-width:1100px){.csw-projects .proj-grid2{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.csw-projects .proj-grid2{grid-template-columns:1fr}}
@media (max-width:860px){.csw-projects .proj-grid{grid-template-columns:repeat(2,1fr)}}
