/* v3.2 Canada work cards — appended design language, portfolio page only */
.ca-intro{grid-template-columns:1fr;max-width:var(--wrap);padding-bottom:0}
.ca-intro .txt{max-width:820px}
.ca-actions{display:flex;flex-wrap:wrap;gap:.8rem 1.2rem;margin-top:1.4rem;align-items:center}
.ca-pdf{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.15rem;border:1px solid rgba(135,22,26,.35);color:var(--crimson);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;background:var(--paper-2);transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);min-height:44px}
.ca-pdf:hover{background:var(--crimson);color:#FBF6EE;border-color:var(--crimson);transform:translateY(-2px)}
.ca-pdf .ic-sm{flex-shrink:0}
.ca-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;max-width:var(--wrap);margin:0 auto;padding:2rem 1.6rem 3.4rem}
.ca-card{position:relative;display:flex;flex-direction:column;border:var(--edge);background:var(--paper-2);overflow:hidden;transition:border-color .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease)}
.ca-card::after{content:"";position:absolute;inset-inline-start:0;top:0;width:3px;height:0;background:var(--crimson);transition:height .5s var(--ease);z-index:2}
.ca-card:hover{transform:translateY(-4px);border-color:rgba(135,22,26,.35);box-shadow:var(--shadow)}
.ca-card:hover::after{height:100%}
.ca-vis{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--paper-3);border-bottom:var(--edge)}
.ca-vis img{width:100%;height:100%;object-fit:cover}
.ca-body{padding:1.25rem 1.35rem 1.45rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
.ca-kicker{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--crimson);font-weight:500;margin:0}
.ca-card h3{font-family:var(--serif);font-weight:600;font-size:1.32rem;margin:0;line-height:1.25;color:var(--ink)}
body.lang-fa .ca-card h3{font-family:var(--fa);font-weight:700}
.ca-meta{font-size:.82rem;color:var(--ink-3);margin:0;line-height:1.5}
.ca-body p{color:var(--ink-2);margin:0;font-size:.92rem;line-height:1.65}
.ca-note{font-size:.8rem;color:var(--ink-3);font-style:italic;margin:.2rem 0 0;line-height:1.55}
.ca-text .ca-vis{display:flex;align-items:center;justify-content:center;background:var(--paper);padding:1.6rem}
.ca-mono{text-align:center}
.ca-mono .nm{font-family:var(--serif);font-weight:500;font-size:clamp(1.6rem,3vw,2.1rem);color:var(--ink);letter-spacing:.02em;line-height:1.2;margin:0}
.ca-mono .rule{width:2.2rem;height:2px;background:var(--crimson);margin:.9rem auto 0}
.ca-older{max-width:var(--wrap);margin:0 auto;padding:1.2rem 1.6rem 0;border-top:var(--edge)}
.ca-older p{margin:0;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
@media (max-width:980px){
  .ca-grid{grid-template-columns:repeat(2,1fr);gap:1rem;padding:1.6rem 1.2rem 2.6rem}
}
@media (max-width:620px){
  .ca-grid{grid-template-columns:1fr;gap:.9rem}
  .ca-intro{padding-top:2.6rem}
}

/* v3.3: cards open a case lightbox; text is not clipped; images in the modal are uncropped */
.ca-card{overflow:visible;cursor:pointer}
.ca-body{flex:1 0 auto;min-height:0}
.ca-vis img{object-fit:contain}
.ca-open{position:absolute;inset:0;z-index:3;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer}
.ca-open:focus-visible{outline:2px solid var(--crimson);outline-offset:-2px}

.ca-lb{position:fixed;inset:0;z-index:960;display:none;place-items:center;padding:4.2rem 1.2rem 5.4rem;background:rgba(26,22,20,.9);backdrop-filter:blur(6px)}
.ca-lb.on{display:grid}
.ca-lb-panel{width:min(920px,96vw);max-height:calc(100svh - 7.2rem);overflow:auto;background:var(--paper-2);border:var(--edge);box-shadow:0 30px 80px -30px rgba(0,0,0,.7);-webkit-overflow-scrolling:touch}
.ca-lb-vis{background:var(--paper);border-bottom:var(--edge);display:grid;place-items:center;min-height:200px}
.ca-lb-vis img{width:100%;height:auto;max-height:min(52vh,560px);object-fit:contain;background:var(--paper)}
.ca-lb-vis.is-typo{min-height:220px;padding:2.4rem 1.4rem}
.ca-lb-typo{text-align:center}
.ca-lb-typo .nm{font-family:var(--serif);font-weight:500;font-size:clamp(1.8rem,4vw,2.6rem);color:var(--ink);margin:0;line-height:1.2}
.ca-lb-typo .rule{width:2.4rem;height:2px;background:var(--crimson);margin:1rem auto 0}
.ca-lb-copy{padding:1.4rem 1.5rem 1.7rem}
.ca-lb-copy .ca-kicker{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--crimson);font-weight:500;margin:0 0 .45rem}
.ca-lb-copy h3{font-family:var(--serif);font-weight:600;font-size:clamp(1.5rem,3vw,2rem);margin:0 0 .45rem;line-height:1.25;color:var(--ink)}
body.lang-fa .ca-lb-copy h3{font-family:var(--fa);font-weight:700}
.ca-lb-copy .ca-meta{font-size:.9rem;color:var(--ink-3);margin:0 0 .8rem;line-height:1.5}
.ca-lb-copy p{color:var(--ink-2);margin:0;font-size:1rem;line-height:1.75}
.ca-lb-copy .ca-note{font-size:.88rem;color:var(--ink-3);font-style:italic;margin:.85rem 0 0;line-height:1.6}
.ca-lb-close{position:absolute;top:1rem;inset-inline-end:1.1rem;color:rgba(251,246,238,.8);min-width:48px;min-height:48px;display:inline-grid;place-items:center;z-index:2}
.ca-lb-close:hover{color:#FBF6EE}
.ca-lb-bar{position:absolute;bottom:1rem;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:.8rem;color:#FBF6EE}
.ca-lb-bar button{min-width:48px;min-height:48px;display:inline-grid;place-items:center;color:rgba(251,246,238,.85)}
.ca-lb-bar button:hover{color:#FBF6EE}
.ca-lb-pos{font-variant-numeric:tabular-nums;font-size:.9rem;min-width:4.5rem;text-align:center}
.ca-lb-close:focus-visible,.ca-lb-bar button:focus-visible{outline:2px solid #FBF6EE;outline-offset:2px;box-shadow:0 0 0 4px var(--ink)}
@media (max-width:620px){
  .ca-lb{padding:3.6rem .6rem 5rem}
  .ca-lb-vis img{max-height:38vh}
  .ca-lb-copy{padding:1.15rem 1.1rem 1.4rem}
}
