/* Resources: index, category listings and articles (Stage 3 Phase 2). Ported from the Stage 2
   prototype (site_src/pages_resources.py, RES_CSS). The legacy article components at the end
   restyle the classes the CMS article bodies already use, so the body HTML stays unchanged. */

/* category navigation */
.cats{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}
.cats a{display:inline-flex;gap:8px;align-items:baseline;padding:10px 16px;border:1.5px solid var(--line-2);border-radius:999px;text-decoration:none;font-weight:700;font-size:15px;background:#fff}
.cats a small{font-weight:600;color:var(--grey)}
.cats a:hover{border-color:var(--ink)}
.cats a[aria-current="page"]{background:var(--ink);border-color:var(--ink);color:#fff}
.cats a[aria-current="page"] small{color:#C9CED8}

/* featured item (index) */
.feat{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(24px,5vw,64px);align-items:end;padding-bottom:48px;border-bottom:2px solid var(--ink)}
.feat a.t{text-decoration:none;font-family:var(--f-voice);font-style:italic;font-size:clamp(34px,4.6vw,62px);line-height:1.04;display:block;margin-top:14px}
.feat a.t:hover{color:var(--blue)}
.feat p{font-size:18px}
.feat .feat-go{margin-top:16px}
@media (max-width:860px){.feat{grid-template-columns:1fr}}

/* listing rows */
.toc{list-style:none}
.toc li a{display:grid;grid-template-columns:110px 120px minmax(0,1fr) 150px;gap:8px 28px;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;align-items:baseline}
.toc li a:hover .tt{color:var(--blue)}
.toc .d{font-size:14px;color:var(--grey);font-variant-numeric:tabular-nums;font-weight:600}
.toc .ty{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--cat,var(--ember-deep))}
/* category tint behind a listing and behind an article body (Weeb, 2026-10-12) */
.list-sec,.art-sec{background:var(--cat-tint)}
.toc .tt{font-weight:750;font-size:19px;line-height:1.3;letter-spacing:-.01em}
.toc .ex{display:block;font-weight:400;font-size:15.5px;color:var(--grey);margin-top:4px;letter-spacing:0}
.toc .k{font-size:13px;font-weight:700;color:var(--grey);text-align:right;white-space:nowrap}
.toc .k.ext{color:var(--ink)}
@media (max-width:860px){.toc li a{grid-template-columns:1fr auto}.toc .tt{grid-column:1/-1}.toc .k{text-align:left}}
.arch{margin-top:56px}
.arch h2{font-family:var(--f-voice);font-style:italic;font-weight:400;font-size:clamp(26px,2.8vw,36px)}
.arch-l{margin:6px 0 8px}

/* put it to work: the three tracks */
.rel-tracks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--ink);margin-top:24px}
.rel-tracks a{padding:20px 20px 20px 0;text-decoration:none;font-weight:900;text-transform:uppercase;letter-spacing:-.035em;font-size:clamp(22px,2.4vw,30px);line-height:1;border-bottom:1px solid var(--line-2)}
.rel-tracks a small{display:block;font-weight:500;text-transform:none;letter-spacing:0;font-size:15px;color:var(--grey);margin-top:8px}
.rel-tracks a:hover{color:var(--blue)}
@media (max-width:760px){.rel-tracks{grid-template-columns:1fr}}

/* article opener */
.art-open{background:var(--sand-2);padding-block:clamp(48px,6vw,88px) clamp(36px,4vw,56px);border-bottom:1px solid var(--line)}
.art-open .crumbs{font-size:14px;color:var(--grey);margin-bottom:22px}
.art-open .crumbs a{color:var(--grey);text-decoration:none}
.art-open .crumbs a:hover{color:var(--ink);text-decoration:underline}
.art-open h1{font-family:var(--f-voice);font-style:italic;font-weight:400;font-size:clamp(38px,5.4vw,72px);line-height:1.04;max-width:16em}
.art-open .sub{font-size:20px;margin-top:18px;max-width:36em;color:var(--ink)}
.art-open .mt{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:24px;align-items:center}

/* article layout: body and side rail */
.art{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:clamp(32px,6vw,88px);align-items:start}
.art .body{max-width:68ch;font-size:18px;line-height:1.75}
.art .body>section+section{margin-top:8px}
.art .body p{margin:0 0 1em}
.art .body h2{font-weight:800;font-size:clamp(22px,2.2vw,28px);letter-spacing:-.015em;line-height:1.25;margin:44px 0 12px;scroll-margin-top:96px}
.art .body>section:first-child h2:first-child{margin-top:0}
.art .body h3{font-weight:700;font-size:20px;line-height:1.3;margin:32px 0 10px}
.art .body h4{font-weight:700;font-size:17px;line-height:1.35;margin:24px 0 8px}
.art .body ul{list-style:disc;padding-left:1.4em;margin:0 0 1em}
.art .body ol{list-style:decimal;padding-left:1.4em;margin:0 0 1em}
.art .body li{margin-bottom:.35em}
.art .body a:not(.btn){color:var(--blue);text-underline-offset:3px}
.art .body strong{font-weight:700}
.art .body blockquote{margin:28px 0;padding-left:20px;border-left:3px solid var(--ember);font-family:var(--f-voice);font-style:italic;font-size:clamp(22px,2.2vw,28px);line-height:1.3}
.art .body blockquote p{margin:0}
.art aside{position:sticky;top:96px;border-top:2px solid var(--ink);padding-top:16px}
.art aside h3{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);margin-bottom:10px}
.art aside nav a{display:block;text-decoration:none;font-size:15px;line-height:1.4;padding:5px 0;color:var(--grey)}
.art aside nav a:hover{color:var(--ink)}
.art aside .svc{margin-top:28px;padding:18px;background:var(--sand-2);border-radius:12px}
.art aside .svc:first-child{margin-top:0}
.art aside .svc a{display:block;text-decoration:none;color:var(--ink);font-weight:800;font-size:18px}
.art aside .svc a:hover{color:var(--blue)}
@media (max-width:960px){.art{grid-template-columns:1fr}.art aside{position:static}}

/* download box and closing call to action inside the article */
.dl{margin-top:40px;padding:24px;border:1px solid var(--line-2);border-radius:12px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.dl p{margin:0;font-weight:700}
.endcta{background:var(--ink);color:#fff;border-radius:16px;padding:clamp(28px,4vw,48px);margin-top:56px}
.endcta h2{color:#fff;font-family:var(--f-voice);font-style:italic;font-weight:400;font-size:clamp(28px,3vw,40px);line-height:1.1;margin:0 0 10px}
.endcta p{color:#C9CED8;margin:0 0 22px;font-size:17px;line-height:1.6}
/* the end box sits inside the article body: pin its colours above the body text rules */
.art .body .endcta h2{color:#fff}
.art .body .endcta p{color:#C9CED8}
.relart h2{font-family:var(--f-voice);font-style:italic;font-weight:400;font-size:clamp(26px,2.8vw,36px)}

/* legacy article components (classes used inside CMS article bodies) */
.art .body .mb-12{margin-bottom:0}
.art .body .mt-8{margin-top:32px}
.art .body .card-grid{display:grid;gap:12px;margin:24px 0}
.art .body .card-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.art .body .card-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.art .body .q-card,.art .body .tool-card,.art .body .mistake-card{border-radius:12px;padding:16px 18px;font-size:16px;line-height:1.55}
.art .body .q-card{background:var(--ember-tint);border:1px solid rgba(180,68,26,.18)}
.art .body .q-card__row{display:flex;align-items:flex-start;gap:12px}
.art .body .q-card__num,.art .body .mistake-card__num{flex:none;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;line-height:1}
.art .body .q-card__num{background:var(--ember-deep);color:#fff}
.art .body .q-card h4,.art .body .tool-card h4,.art .body .phase-card h4{margin:0 0 6px;font-size:16px}
.art .body .q-card p,.art .body .tool-card p,.art .body .mistake-card p,.art .body .phase-card p{margin:0}
.art .body .tool-card{background:var(--sand-2);border:1px solid var(--line-2)}
.art .body .tool-card ul{margin:8px 0}
.art .body .tool-card em{display:block;margin-top:8px}
.art .body .mistake-card{display:flex;align-items:flex-start;gap:12px;background:var(--red-tint);border:1px solid rgba(168,32,42,.16)}
.art .body .mistake-card__num{background:#fff;color:var(--red-deep)}
.art .body .mistake-card p{font-weight:600}
.art .body .phase-card{border-left:3px solid var(--blue);padding:6px 0 6px 16px;font-size:16px;line-height:1.55}
.art .body .phase-card p{color:var(--grey)}
.art .body .btn--primary{display:inline-flex;align-items:center;height:48px;padding:0 24px;border-radius:8px;background:var(--blue);color:#fff;font:600 15px/1 var(--f-stmt);text-decoration:none}
.art .body .btn--primary:hover{background:var(--blue-deep)}
@media (max-width:760px){.art .body .card-grid--3,.art .body .card-grid--2{grid-template-columns:1fr}}

/* Category colour on buttons and links in Resources bodies (Weeb, 2026-10-12). Book a call and the
   closing band stay Sarius Blue: none of these rules reach them. */
.cats a[class*="cat-"]{border-color:var(--cat);color:var(--cat)}
.cats a[class*="cat-"] small{color:var(--cat)}
.cats a[class*="cat-"]:hover{border-color:var(--cat-dk);color:var(--cat-dk)}
.cats a[class*="cat-"][aria-current="page"]{background:var(--cat);border-color:var(--cat);color:#fff}
.cats a[class*="cat-"][aria-current="page"] small{color:#fff}
.cats a[class*="cat-"][aria-current="page"]:hover{background:var(--cat-dk);border-color:var(--cat-dk)}
.feat[class*="cat-"] .tlink{color:var(--cat)}
.feat[class*="cat-"] .tlink::after{background:var(--cat)}
.feat[class*="cat-"] .tlink:hover{color:var(--cat-dk)}
.toc li[class*="cat-"] .k{color:var(--cat)}
.toc li[class*="cat-"] a:hover .tt,.toc li[class*="cat-"] a:hover .k{color:var(--cat-dk)}
.art-sec .body a:not(.btn){color:var(--cat)}
.art-sec .body a:not(.btn):hover{color:var(--cat-dk)}
.art-sec .body .btn--primary{background:var(--cat);color:#fff}
.art-sec .body .btn--primary:hover{background:var(--cat-dk);color:#fff}
.art-sec .dl .btn-p{background:var(--cat)}
.art-sec .dl .btn-p::before{background:var(--cat-dk)}
.art-sec aside .svc a:hover{color:var(--cat-dk)}

/* WCAG AA on the category tints (Weeb, 2026-10-12): grey secondary text falls below 4.5:1 on every
   tint, so inside tinted sections it uses Ink; size and weight keep it secondary. */
.list-sec .toc .d,.art-sec .toc .d{color:var(--ink);font-weight:500}
.list-sec .toc .ex,.art-sec .toc .ex{color:var(--ink)}
.art-sec .art aside h3{color:var(--ink)}
.art-sec .art aside nav a{color:var(--ink)}
.art-sec .art aside nav a:hover{color:var(--cat-dk)}
.art-sec .art .body .phase-card p{color:var(--ink)}
