/* Blog, article and contact templates. Tokens only: no new colours. */
.bl-hero{padding-top:72px;padding-bottom:56px}
.bl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:48px 40px;padding-bottom:112px}
.bl-card{color:var(--ink);text-decoration:none;display:flex;flex-direction:column;gap:18px;border-radius:var(--radius-lg)}
.bl-card:hover .bl-title{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.bl-cover{aspect-ratio:3/2;border-radius:24px;background:var(--surface-100);overflow:hidden;display:block}
.bl-cover img{width:100%;height:100%;object-fit:cover;display:block}
.bl-cover-ph{background:var(--teal-tint)}
.bl-badges{display:flex;flex-wrap:wrap;gap:8px}
.bl-title{font-size:30px;line-height:34px;font-weight:700;letter-spacing:-0.025em}
.bl-meta{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;color:var(--ink-muted);text-transform:uppercase}
.bl-excerpt{margin:0;color:var(--ink-muted);font-size:17px;line-height:27px}

.ar-head{padding-top:56px;padding-bottom:32px;max-width:960px}
.ar-cover{margin:0 auto 56px;max-width:1320px;padding:0 24px;box-sizing:border-box}
.ar-cover img{width:100%;height:auto;max-height:640px;object-fit:cover;border-radius:var(--radius-xl);display:block}
.prose{max-width:68ch;margin:0 auto;padding:0 24px 96px;box-sizing:border-box;font-size:19px;line-height:31px;color:var(--ink)}
.prose>*+*{margin-top:1.15em}
.prose h2,.prose h3,.prose h4{font-weight:800;letter-spacing:-0.035em;line-height:1.08;margin-top:2em;margin-bottom:0}
.prose h2{font-size:clamp(30px,3.4vw,42px)}
.prose h3{font-size:clamp(24px,2.6vw,30px)}
.prose h4{font-size:21px}
.prose a{color:var(--teal-text);text-underline-offset:3px;text-decoration-thickness:2px}
.prose ul,.prose ol{padding-left:1.4em}
.prose li+li{margin-top:.4em}
.prose blockquote{margin-left:0;margin-right:0;padding:4px 0 4px 24px;border-left:4px solid var(--teal);font-size:23px;line-height:34px;font-weight:600;letter-spacing:-0.015em}
.prose figure{margin:2em 0 0}
.prose figure img{width:100%;height:auto;border-radius:var(--radius-lg);display:block}
.prose figcaption{margin-top:10px;font-size:14px;line-height:20px;color:var(--ink-muted)}
.prose pre{background:var(--surface-100);border-radius:var(--radius-md);padding:16px 20px;overflow:auto;font:400 14px/22px var(--font-mono)}
.prose code{font-family:var(--font-mono);font-size:.9em}
.ar-byline{display:flex;align-items:center;gap:14px;margin-top:28px}
.ar-byline img{width:44px;height:44px;border-radius:999px;object-fit:cover}

/* Contact form */
.ct-wrap{display:flex;flex-wrap:wrap;gap:48px 80px;align-items:flex-start;padding-top:72px;padding-bottom:112px}
.ct-form{flex:1 1 440px;min-width:0;background:var(--surface-50);border-radius:var(--radius-lg);padding:32px;display:grid;gap:18px;box-sizing:border-box}
.ct-form .sm-field-box.ct-area{border-radius:var(--radius-lg);align-items:stretch}
.ct-form textarea.sm-input{resize:vertical;min-height:150px;padding:14px 18px}
.ct-form select.sm-input{appearance:auto;padding-right:14px}
.ct-hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.ct-status{margin:0;font-size:16px;line-height:24px}
.ct-status[data-state="ok"]{font-weight:600}

/* ---- inquiry form ---- */
.ct-form{flex:1 1 560px;gap:28px}
.ct-set{border:0;margin:0;padding:0;min-width:0;display:grid;gap:18px}
.ct-legend{padding:0;margin-bottom:4px;font-size:22px;line-height:28px;font-weight:700;letter-spacing:-0.02em;color:var(--navy);display:flex;gap:12px;align-items:baseline}
.ct-legend .cf-mono{color:var(--teal-text);font-size:12px}
.ct-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:18px}
.ct-opt{font-weight:400;color:var(--ink-muted)}
.ct-hint{margin:0;color:var(--ink-muted);font-size:15px;line-height:23px}
.ct-checks{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.ct-chip{position:relative;cursor:pointer}
.ct-chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.ct-chip span{display:inline-block;padding:10px 16px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface-0);font-size:15px;line-height:20px;transition:background .12s,border-color .12s,color .12s}
.ct-chip input:checked+span{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.ct-chip input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
.ct-tick{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:23px;cursor:pointer;margin-top:10px}
.ct-tick input{width:20px;height:20px;margin:1px 0 0;flex:none;accent-color:var(--navy)}
.ct-done{flex:1 1 560px;min-width:0;background:var(--teal-tint);border-radius:var(--radius-lg);padding:40px 32px;display:grid;gap:16px;justify-items:start}
.ct-done[hidden]{display:none}
.ct-done p{margin:0;font-size:18px;line-height:28px}
