:root{--measure:760px}

/* Blog - extends styles.css tokens (DM Sans, paper/ink/acid) */
.blog-hero{padding:clamp(60px,8vw,110px) var(--gutter) clamp(30px,4vw,50px)}
.blog-hero h1{font-size:clamp(2.75rem,6vw,5.25rem);line-height:.94;letter-spacing:-.06em;margin:20px 0 26px}

.post-list{padding:0 var(--gutter) 110px;display:grid;gap:18px}
.post-card{background:white;border:1px solid var(--line);border-radius:22px;padding:30px}
.post-meta{display:flex;align-items:center;gap:10px;font-size:var(--t-micro);font-weight:800;letter-spacing:.14em;color:var(--soft);text-transform:uppercase}
.post-meta i{width:6px;height:6px;border-radius:50%;background:var(--dot)}
.post-card h2{font-size:clamp(1.5rem,2.6vw,2.125rem);letter-spacing:-.04em;margin:16px 0 10px}
.post-card h2 a{text-decoration:none}
.post-card h2 a:hover{border-bottom:3px solid var(--acid)}
.post-card>p{font-size:var(--t-base);line-height:1.6;color:var(--soft);max-width:62ch}
.read-link,.back-link{display:inline-block;margin-top:12px;font-size:var(--t-xs);font-weight:700;text-decoration:none;border-bottom:2px solid var(--acid);padding-bottom:2px}
/* Centred reading column: --measure of text, with the same side gutters the
   header nav uses so the two agree at every width. border-box means the padding
   sits outside the measure rather than eating into it. */
.post{max-width:calc(var(--measure) + var(--gutter) * 2);margin-inline:auto;padding:clamp(50px,7vw,90px) var(--gutter) 100px}
.post-header h1{font-size:clamp(2.5rem,5.4vw,4.25rem);line-height:.98;letter-spacing:-.055em;margin:18px 0 20px}
.post-header{margin-bottom:34px}
.post-header .post-meta{margin-top:6px}
.post-body p{font-size:var(--t-md);line-height:1.75;color:var(--ink);margin:0 0 22px}
.post-body a{color:inherit;border-bottom:2px solid var(--acid);text-decoration:none}
.post-body h2{font-size:clamp(1.625rem,3vw,2.125rem);letter-spacing:-.04em;margin:40px 0 16px}
.post-body ul,.post-body ol{font-size:var(--t-md);line-height:1.7;padding-left:24px;margin:0 0 22px}
.post-body blockquote{margin:26px 0;padding:18px 22px;border-left:3px solid var(--acid);background:white;border-radius:0 14px 14px 0;font-size:var(--t-md);line-height:1.65}
.post-body img{max-width:100%;border-radius:16px;border:1px solid var(--line)}
.post-cta{background:var(--ink);color:var(--paper);border-radius:24px;padding:34px;margin-top:44px}
.post-cta h3{font-size:var(--t-h2);letter-spacing:-.03em;margin:0 0 10px}
.post-cta p{color:var(--side-text);font-size:var(--t-base);line-height:1.6;margin:0 0 20px}
.post-cta .nav-cta{background:var(--acid);color:var(--ink);display:inline-block;text-decoration:none}
@media(max-width:560px){.post-card{padding:22px}.post{padding-top:40px}}

/* Landing blog teaser */
.blog-teaser{padding:110px clamp(20px,7vw,110px);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:6vw;align-items:center;border-top:1px solid var(--line)}
.blog-teaser-head h2{font-size:clamp(2.25rem,4.6vw,4rem);line-height:.98;letter-spacing:-.055em;margin:16px 0 0}

.blog-teaser .post-card h3{font-size:clamp(var(--t-h4),2.2vw,var(--t-h2));letter-spacing:-.035em;margin:14px 0 8px}
.blog-teaser .post-card h3 a{text-decoration:none}
.blog-teaser .post-card h3 a:hover{border-bottom:3px solid var(--acid)}
@media(max-width:900px){.blog-teaser{grid-template-columns:1fr;padding:75px 20px}}
@media(max-width:900px){.top nav a.nav-cta{display:inline-block;padding:10px 13px;font-size:var(--t-xs)}}
.post-body table{width:100%;border-collapse:collapse;margin:0 0 26px;font-size:var(--t-base);background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.post-body thead th{text-align:left;font-size:var(--t-micro);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);background:var(--paper);padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap}.post-body td{padding:14px 16px;border-top:1px solid var(--line);line-height:1.55;vertical-align:top;color:var(--ink)}.post-body tbody tr:first-child td{border-top:0}.post-body td:first-child{font-weight:650}@media (max-width:640px){.post-body table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.post-body thead,.post-body tbody{display:table;width:100%;min-width:540px}}
