/* M55 inner pages (blog, privacy, 404) — extends m55.css */
.page-article{max-width:820px;margin-inline:auto;padding-block:clamp(40px,7vw,80px) clamp(56px,8vw,96px)}
.page-article h1{font-size:clamp(30px,4.2vw,52px);font-weight:800;line-height:1.15;letter-spacing:-.015em;margin:8px 0 14px;max-width:24ch}
.page-article .meta{color:var(--faint);font-size:14px;margin-bottom:28px;display:flex;flex-wrap:wrap;gap:8px}
.page-article .meta strong{color:var(--primary);font-weight:600}
.page-article h2{font-family:var(--font-display);font-size:clamp(22px,2.6vw,32px);font-weight:700;margin:44px 0 14px;line-height:1.3}
.page-article h3{font-family:var(--font-display);font-size:clamp(18px,1.9vw,22px);font-weight:700;margin:30px 0 10px}
.page-article p,.page-article li{color:var(--muted);font-size:17px;line-height:1.9}
.page-article p{margin:0 0 16px}
.page-article ul,.page-article ol{padding-inline-start:24px;margin:0 0 18px}
.page-article li{margin-bottom:6px}
.page-article li::marker{color:var(--primary)}
.page-article a{color:var(--primary);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--primary) 40%,transparent);text-underline-offset:4px;text-decoration-thickness:1px}
.page-article a:hover{text-decoration-color:var(--primary)}
.page-article strong{color:var(--text);font-weight:600}
.page-article blockquote{margin:24px 0;padding:18px 22px;border-inline-start:3px solid var(--primary);background:var(--glass);border-radius:0 var(--r-sm) var(--r-sm) 0}
.page-article table{width:100%;border-collapse:collapse;margin:20px 0;font-size:15px;display:block;overflow-x:auto}
.page-article th,.page-article td{padding:12px 14px;border:1px solid var(--border);text-align:start;color:var(--muted)}
.page-article th{background:var(--surface-2);color:var(--text);font-weight:600}
.page-article img{border-radius:var(--r-md);border:1px solid var(--border)}
.page-article .cta-box,.page-article .highlight,.page-article .contact-info{margin:28px 0;padding:22px 24px;border-radius:var(--r-md);background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);position:relative;overflow:hidden}
.page-article .cta-box::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 100% at 100% 0%,var(--primary-soft),transparent 60%);pointer-events:none}
.page-article .cta-box h3,.page-article .highlight h3{margin-top:0}
.page-article .cta-box p:last-child,.page-article .highlight p:last-child{margin-bottom:0}
.page-article .cta-box a.inline-link,.page-article .cta-box .btn{position:relative}
.page-article .related{margin-top:48px;padding:24px;border-radius:var(--r-lg);border:1px dashed var(--border-strong);background:var(--glass)}
.page-article .related h3{margin-top:0;font-size:18px}
.page-article .related ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.page-article .related li{margin:0;font-size:15.5px}
.page-article .related a{text-decoration:none;font-weight:500}
.page-article .related a:hover{text-decoration:underline}
.page-article .back-link,.page-article .home-link{display:inline-flex;align-items:center;gap:8px;margin-top:28px;color:var(--primary);font-weight:600;text-decoration:none}
/* blog index */
.blog-index{padding-block:clamp(40px,7vw,80px) clamp(56px,8vw,96px)}
.blog-index h1{font-size:clamp(32px,4.6vw,56px);font-weight:800;letter-spacing:-.015em;margin:8px 0 12px}
.blog-index .intro{color:var(--muted);font-size:clamp(16px,1.2vw,19px);max-width:60ch;margin-bottom:36px}
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.post-card{display:grid;grid-template-rows:auto auto 1fr auto;gap:10px;padding:24px;border-radius:var(--r-lg);border:1px solid var(--border);background:linear-gradient(180deg,var(--surface-2),var(--surface));color:inherit;text-decoration:none;transition:transform .45s var(--ease-out),border-color .3s,box-shadow .45s}
.post-card:hover{transform:translateY(-5px);border-color:var(--primary);box-shadow:var(--shadow-sm)}
.post-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--primary-soft);font-size:22px}
.post-title{font-size:19px;font-weight:700;line-height:1.4;margin:0}
.post-excerpt{color:var(--muted);font-size:14.5px;margin:0}
.post-meta{display:flex;gap:12px;font-size:12px;color:var(--faint);justify-content:flex-start;padding-top:8px;border-top:1px solid var(--border)}
.post-meta span:first-child{font-family:var(--font-mono);direction:ltr;unicode-bidi:isolate;font-size:11.5px}
.home-link{display:inline-flex;align-items:center;gap:8px;margin-top:36px;color:var(--primary);font-weight:600}
/* 404 */
.err{min-height:calc(100svh - 72px);display:grid;place-items:center;text-align:center;padding:60px 0;position:relative;overflow:clip}
.err .code{font-family:var(--font-display);font-weight:800;font-size:clamp(120px,24vw,260px);line-height:.9;letter-spacing:-.04em;background:linear-gradient(180deg,var(--primary),var(--primary-2) 60%,transparent 130%);-webkit-background-clip:text;background-clip:text;color:transparent;direction:ltr}
.err h1{font-size:clamp(24px,3vw,38px);margin:8px 0 12px}
.err p{color:var(--muted);max-width:46ch;margin:0 auto 26px}
.err .actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
