/* Trellis — Blog: post cards (blog index + related) and article typography (single posts) */

/* ---------- Cards ---------- */
.tr-blog{padding:clamp(56px,7vw,104px) var(--tr-gutter);max-width:1320px;margin:0 auto}
.tr-blog-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin:0 0 clamp(28px,3.4vw,44px);border-bottom:1px solid var(--tr-line);padding-bottom:22px}
.tr-blog-head h2{font-size:clamp(26px,2.6vw,38px);font-weight:300}
.tr-blog-head .tr-blog-count{font-family:var(--tr-display);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--tr-sage);white-space:nowrap}
.tr-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(22px,2.4vw,36px)}
.tr-pcard{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--tr-line);transition:border-color .5s var(--tr-ease),box-shadow .6s var(--tr-ease-out),transform .6s var(--tr-ease-out)}
.tr-pcard:hover{border-color:rgba(196,122,74,.45);box-shadow:0 26px 50px -30px rgba(26,32,23,.35);transform:translateY(-4px)}
.tr-pcard-media{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--tr-olive)}
.tr-pcard-media img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.02);transition:transform 1.4s var(--tr-ease-out),opacity .6s ease}
.tr-pcard:hover .tr-pcard-media img{transform:scale(1.07)}
.tr-pcard-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(26,32,23,.35));pointer-events:none}
.tr-pcard-body{display:flex;flex-direction:column;flex:1;padding:clamp(22px,2vw,30px)}
.tr-pcard-cats{font-family:var(--tr-display);font-weight:500;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--tr-terra);margin:0 0 14px}
.tr-pcard-cats span+span::before{content:"\00B7";margin:0 .6em;color:var(--tr-sage)}
.tr-pcard h3{font-size:clamp(20px,1.6vw,24px);font-weight:300;line-height:1.22;letter-spacing:-.01em;margin:0 0 14px}
.tr-pcard h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.tr-pcard h3 a:focus-visible{outline:none}
.tr-pcard:focus-within{outline:2px solid var(--tr-terra);outline-offset:3px}
.tr-pcard-ex{font-size:14px;line-height:1.7;color:rgba(63,73,56,.82);margin:0 0 22px}
.tr-pcard-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:18px;border-top:1px solid var(--tr-line)}
.tr-pcard-meta{font-family:var(--tr-display);font-size:12px;color:var(--tr-sage);letter-spacing:.02em}
.tr-pcard-meta span+span::before{content:"\00B7";margin:0 .55em}
.tr-pcard .tr-link{font-size:10.5px;padding-bottom:6px}
/* Featured (first) card: spans the full row, image beside text */
.tr-pcard--feature{grid-column:1/-1;flex-direction:row}
.tr-pcard--feature .tr-pcard-media{flex:0 0 56%;aspect-ratio:auto;min-height:360px}
.tr-pcard--feature .tr-pcard-body{padding:clamp(28px,3.6vw,56px);justify-content:center}
.tr-pcard--feature h3{font-size:clamp(26px,2.6vw,38px)}
.tr-pcard--feature .tr-pcard-ex{font-size:15px;max-width:46ch}
.tr-pcard-flag{position:absolute;left:0;top:22px;z-index:2;background:var(--tr-terra);color:var(--tr-ivory);font-family:var(--tr-display);font-weight:500;font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:8px 14px}
@media (max-width:1060px){.tr-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.tr-pcard--feature{flex-direction:column}.tr-pcard--feature .tr-pcard-media{flex:none;aspect-ratio:16/10;min-height:0}}
@media (max-width:640px){.tr-cards{grid-template-columns:1fr}.tr-blog-head{flex-direction:column;align-items:start}}

/* Homepage blog section: hairline separator with a centered terracotta diamond, centered in the gap above the heading */
.tr-home-blog{position:relative}
.tr-home-blog::before,.tr-home-blog::after{top:clamp(56px,6.4vw,80px)}
.tr-home-blog::before{content:"";position:absolute;left:50%;width:min(1240px,calc(100% - 2 * var(--tr-gutter)));height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,var(--tr-line) 12%,var(--tr-line) 88%,transparent)}
.tr-home-blog::after{content:"";position:absolute;left:50%;width:7px;height:7px;background:var(--tr-terra);transform:translate(-50%,-50%) rotate(45deg);box-shadow:0 0 0 6px var(--tr-ivory)}
.tr-home-blog{padding-top:clamp(136px,15vw,196px)}

/* ---------- Single post ---------- */
.tr-post-hero .tr-ihero-content{max-width:1200px}
.tr-post-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 0;font-family:var(--tr-display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tr-stone);margin-top:26px}
.tr-post-meta span+span::before{content:"";display:inline-block;width:4px;height:4px;background:var(--tr-terra);transform:rotate(45deg) translateY(-2px);margin:0 14px}
.tr-post-wrap{display:grid;grid-template-columns:240px minmax(0,740px);justify-content:center;gap:clamp(40px,5vw,88px);padding:clamp(48px,6vw,88px) var(--tr-gutter) clamp(56px,6vw,96px);max-width:1320px;margin:0 auto}
.tr-toc{position:sticky;top:calc(var(--tr-header-h) + var(--tr-adminbar) + 32px);align-self:start;max-height:calc(100vh - var(--tr-header-h) - 64px);overflow:auto}
.tr-toc-label{display:block;font-family:var(--tr-display);font-weight:500;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--tr-sage);margin:0 0 16px}
.tr-toc ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--tr-line);counter-reset:t}
.tr-toc li{margin:0}
.tr-toc a{position:relative;display:block;padding:8px 0 8px 18px;font-family:var(--tr-display);font-weight:300;font-size:13.5px;line-height:1.4;color:rgba(63,73,56,.75);transition:color .3s ease}
.tr-toc a::before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:var(--tr-terra);transform:scaleY(0);transition:transform .45s var(--tr-ease)}
.tr-toc a:hover{color:var(--tr-olive)}
.tr-toc a.is-active{color:var(--tr-olive);font-weight:400}
.tr-toc a.is-active::before{transform:scaleY(1)}
.tr-toc-share{margin-top:28px;padding-top:22px;border-top:1px solid var(--tr-line)}
.tr-toc-share a{font-family:var(--tr-display);font-size:12px;letter-spacing:.06em;color:var(--tr-sage)}
.tr-toc-share a:hover{color:var(--tr-terra)}

.tr-pbody{font-size:17px;line-height:1.8;color:var(--tr-olive)}
.tr-pbody > *:first-child{margin-top:0}
.tr-pbody p{margin:0 0 1.3em}
.tr-pbody h2{font-size:clamp(26px,2.4vw,34px);font-weight:300;line-height:1.18;margin:2.2em 0 .7em;padding-top:.9em;border-top:1px solid var(--tr-line)}
.tr-pbody h2:first-child{border-top:0;padding-top:0}
.tr-pbody h3{font-size:clamp(20px,1.7vw,24px);font-weight:400;line-height:1.3;margin:1.8em 0 .6em}
.tr-pbody h4{font-size:17px;font-weight:500;margin:1.6em 0 .5em}
.tr-pbody a{color:var(--tr-olive);text-decoration:underline;text-decoration-color:var(--tr-terra);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .3s ease}
.tr-pbody a:hover{color:var(--tr-terra)}
.tr-pbody strong{font-weight:600}
.tr-pbody ul,.tr-pbody ol{margin:0 0 1.5em;padding:0}
.tr-pbody ul{list-style:none}
.tr-pbody ul li{position:relative;padding-left:26px;margin:0 0 .65em}
.tr-pbody ul li::before{content:"";position:absolute;left:4px;top:.72em;width:6px;height:6px;background:var(--tr-terra);transform:rotate(45deg)}
.tr-pbody ol{list-style:none;counter-reset:o}
.tr-pbody ol li{position:relative;padding-left:40px;margin:0 0 .8em;counter-increment:o}
.tr-pbody ol li::before{content:counter(o,decimal-leading-zero);position:absolute;left:0;top:.12em;font-family:var(--tr-display);font-weight:500;font-size:12px;letter-spacing:.1em;color:var(--tr-terra)}
.tr-pbody figure{margin:2.2em 0}
.tr-pbody img{display:block;max-width:100%;height:auto}
.tr-pbody figcaption,.tr-pbody .wp-element-caption{font-family:var(--tr-display);font-size:12.5px;line-height:1.5;color:var(--tr-sage);margin-top:12px;padding-left:14px;border-left:2px solid var(--tr-terra)}
.tr-pbody blockquote{margin:2em 0;padding:4px 0 4px 26px;border-left:2px solid var(--tr-terra);font-family:var(--tr-display);font-weight:300;font-size:clamp(20px,1.8vw,24px);line-height:1.45}
.tr-pbody blockquote p:last-child{margin:0}
.tr-pbody table{width:100%;border-collapse:collapse;margin:2em 0;font-size:14.5px;display:block;overflow-x:auto}
.tr-pbody th,.tr-pbody td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--tr-line);vertical-align:top}
.tr-pbody th{font-family:var(--tr-display);font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tr-sage)}
.tr-pbody hr{border:0;border-top:1px solid var(--tr-line);margin:2.5em 0}
.tr-pbody code{font-size:.9em;background:rgba(63,73,56,.07);padding:2px 6px}

.tr-author{max-width:1020px;margin:0 auto clamp(56px,6vw,96px);padding:0 var(--tr-gutter)}
.tr-author-in{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3vw,40px);align-items:center;padding:clamp(26px,3vw,40px);background:var(--tr-ivory-2);border:1px solid var(--tr-line)}
.tr-author-mark{width:84px;height:84px;display:grid;place-items:center;background:var(--tr-olive)}
.tr-author-mark svg{width:58px;height:58px}
.tr-author .tr-eyebrow{margin:0 0 8px}
.tr-author h2{font-size:clamp(22px,2vw,28px);font-weight:300;margin:0 0 10px}
.tr-author p{font-size:14.5px;line-height:1.7;color:rgba(63,73,56,.85);margin:0 0 14px}
@media (max-width:1000px){
  .tr-post-wrap{grid-template-columns:minmax(0,740px)}
  .tr-toc{position:static;max-height:none;border:1px solid var(--tr-line);padding:20px 22px;background:var(--tr-ivory-2)}
  .tr-toc-share{display:none}
}
@media (max-width:560px){.tr-author-in{grid-template-columns:1fr}.tr-pbody{font-size:16px}}
