.campaign-back { display:block; margin-bottom:2rem; color:var(--muted); font-size:.82rem; text-decoration:none; }
.campaign-back:hover { color:var(--green); }
.campaign-hero { padding:4rem 0 4.5rem; }
.campaign-hero-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:4rem; align-items:center; }
.campaign-hero h1 { font-size:clamp(2.25rem,4.4vw,4.3rem); max-width:20ch; line-height:1.08; }
.campaign-hero .eyebrow { color:var(--green); }
.campaign-hero .text-link { display:inline-block; margin-top:1.4rem; color:var(--green); }
.campaign-visual { position:relative; border:1px solid var(--line); border-top:3px solid var(--red); background:#060b08; box-shadow:var(--shadow); overflow:hidden; }
.campaign-visual img { display:block; width:100%; height:320px; object-fit:cover; opacity:.82; }
.campaign-visual figcaption { padding:1.8rem; border-top:1px solid var(--line); background:linear-gradient(135deg,#0e1912,#090d0b); }
.campaign-visual figcaption span { color:var(--green); font-size:.72rem; text-transform:uppercase; letter-spacing:.16em; font-weight:700; }
.campaign-visual strong { display:block; margin:.8rem 0; font-size:1.6rem; line-height:1.2; letter-spacing:-.03em; }
.campaign-visual small { color:var(--muted); }
.campaign-body { display:grid; grid-template-columns:240px minmax(0,760px); gap:clamp(2rem,6vw,5rem); justify-content:space-between; padding-block:4.5rem; align-items:start; }
.contents { position:sticky; top:110px; border-top:3px solid var(--green); padding-top:1.2rem; display:grid; gap:.8rem; font-size:.84rem; }
.contents strong { margin-bottom:.25rem; }
.contents a { text-decoration:none; color:var(--muted); border-bottom:1px solid var(--line); padding-bottom:.8rem; }
.contents a:hover { color:var(--green); }
#article { min-width:0; }
#article section { margin-bottom:3.5rem; scroll-margin-top:110px; }
#article h2 { font-size:clamp(1.5rem,2.6vw,2rem); line-height:1.2; letter-spacing:-.035em; margin-bottom:1.3rem; color:var(--white); }
#article h3 { margin-block:1.5rem .8rem; }
#article p, #article li { color:var(--muted); line-height:1.85; }
#article p + p { margin-top:1.1rem; }
#article strong { color:var(--white); }
#article ul, #article ol { padding-left:1.4rem; }
#article li + li { margin-top:.85rem; }
#article li::marker { color:var(--green); font-weight:700; }
#article a:not(.btn) { color:var(--green); text-underline-offset:.2em; }
#article .try, #article .example, #article #tools, #article #enquire { border:1px solid var(--line); padding:clamp(1.3rem,3vw,2rem); background:rgba(13,23,17,.82); }
#article .try { border-top:3px solid var(--green); }
#article .example { border-left:3px solid var(--red); }
#article #enquire { border-top:3px solid var(--red); }
#article .btn { margin-block:1rem; }
#article .sources { font-size:.83rem; }
@media(max-width:980px) {
 .campaign-hero-grid { grid-template-columns:minmax(0,1fr); gap:2rem; }
 .campaign-visual { max-width:600px; }
 .campaign-visual img { height:260px; }
 .campaign-body { grid-template-columns:minmax(0,1fr); padding-block:2.5rem; }
 .contents { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem 1.5rem; }
 .contents strong { grid-column:1/-1; }
}
@media(max-width:520px) {
 .campaign-hero { padding:2.2rem 0 2.5rem; }
 .campaign-hero h1 { font-size:clamp(2rem,9vw,2.8rem); max-width:100%; }
 .campaign-visual img { height:200px; }
 .campaign-visual figcaption { padding:1.3rem; }
 .campaign-visual strong { font-size:1.4rem; }
 .contents { grid-template-columns:minmax(0,1fr); }
 #article section { margin-bottom:2.5rem; }
}

.guide-library-hero { padding-block:3rem; }
.guide-library-hero h1 { max-width:20ch; font-size:clamp(2.3rem,5vw,4.5rem); line-height:1.08; margin-block:1.2rem; }
.guide-library-hero .service-page-lead { max-width:65ch; }
.guide-topics { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:2rem; }
.guide-topics a { color:var(--white); padding:.7rem 1rem; border:1px solid var(--line); border-radius:8px; text-decoration:none; }
.guide-topics a:hover { color:var(--green); }
.guide-library { padding-bottom:4rem; }
.guide-group { margin-block:2rem 4rem; scroll-margin-top:110px; }
.guide-group h2 { font-size:clamp(1.7rem,3vw,2.5rem); margin-bottom:1.5rem; }
.guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; }
.guide-card { border:1px solid var(--line); border-top:3px solid var(--green); padding:1.5rem; background:#0b120f; }
.guide-card h3 { font-size:1.2rem; line-height:1.4; }
.guide-card h3 a { color:var(--white); text-decoration:none; }
.guide-card h3 a:hover { color:var(--green); text-decoration:underline; }
.guide-card p { margin-block:1rem; color:var(--muted); line-height:1.7; }
.guide-card > span { color:var(--green); font-size:.85rem; }
@media(max-width:980px) { .guide-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .guide-grid { grid-template-columns:minmax(0,1fr); } .guide-library-hero { padding-block:2rem; } }
