/* Campaigns review: all rules are scoped to this section. */
.campaigns-section { background:var(--paper); color:var(--ink); border-bottom:1px solid var(--rule); scroll-margin-top:5rem; }
.campaigns-heading.section-shell { position:relative; isolation:isolate; padding-block:1.15rem 1.3rem; }
.campaigns-heading::before { content:""; position:absolute; inset:0; z-index:-1; background:var(--red); transform-origin:left; }
.campaigns-eyebrow { margin:0 0 .6rem; font-size:.68rem; line-height:1.3; font-weight:600; text-transform:uppercase; letter-spacing:.16em; }
.campaigns-heading h2 { margin:0; font:700 clamp(2.35rem,4.4vw,4.5rem)/1.04 var(--sans); letter-spacing:-.05em; }
.campaigns-inner.section-shell { padding-block:1.75rem 2rem; }
.campaigns-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1rem,2vw,2rem); }
.campaign-row { position:relative; display:grid; grid-template-rows:7rem minmax(4.5rem,auto) 1fr; gap:.9rem; min-width:0; padding:.5rem clamp(1rem,1.7vw,1.75rem); transition:background-color .2s ease; }
.campaign-row + .campaign-row { border-left:1px solid var(--rule); }
.campaign-row:not(.campaign-row-placeholder):hover,.campaign-row:not(.campaign-row-placeholder):focus-within { background:#ebe7dc; }
.campaign-identity { display:flex; align-items:center; gap:1rem; min-width:0; min-height:7rem; }
.campaign-brand-link { flex:0 0 auto; width:6rem; height:6rem; border-radius:50%; }
.campaign-logo { display:block; width:100%; height:auto; aspect-ratio:1; clip-path:circle(47.5% at 50% 50%); }
.campaign-identity h3 { margin:0; font:700 clamp(1.35rem,2vw,2rem)/1.04 var(--sans); letter-spacing:-.045em; }
.campaign-identity-text { align-items:center; }
.campaign-identity-text h3 { font-size:clamp(1.65rem,2.75vw,2.8rem); white-space:nowrap; letter-spacing:-.065em; }
.campaign-identity-text a { color:inherit; text-decoration:none; }
.campaign-description { margin:0; max-width:29ch; font:400 clamp(1rem,1.35vw,1.25rem)/1.45 var(--sans); }
.campaign-action { display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:1.15rem; padding-top:.1rem; }
.campaign-action p { margin:0; font-size:.63rem; line-height:1.6; text-transform:uppercase; letter-spacing:.14em; }
.campaign-action p br { display:none; }
.campaign-action strong { display:block; margin-top:.1rem; font-size:.85rem; line-height:1.4; font-weight:500; letter-spacing:0; text-transform:none; }
.campaign-action a { display:inline-flex; align-items:center; gap:.6rem; min-height:2.75rem; color:var(--red-dark); border-bottom:1px solid currentColor; text-decoration:none; font-size:.94rem; font-weight:600; }
.campaign-action a span { display:inline-block; transition:transform .2s ease; }
.campaign-action a:hover span,.campaign-action a:focus-visible span { transform:translate(3px,-3px); }
.campaigns-section a:focus-visible { outline:2px solid var(--ink); outline-offset:5px; }
.campaign-row-placeholder { color:#68645c; }
.campaign-row-placeholder .campaign-identity { gap:.85rem; }
.campaign-reserved-mark { display:grid; place-items:center; flex:none; width:3.5rem; height:3.5rem; border:1px dashed #918c81; border-radius:50%; font:300 1.5rem/1 var(--sans); }
.campaign-row-placeholder h3 { font-size:clamp(1.3rem,1.8vw,1.75rem); font-weight:500; }
.campaign-placeholder-note { display:inline-flex; align-items:center; min-height:2.75rem; font-size:.72rem; line-height:1.4; }
@media(min-width:1600px) { .campaign-identity { min-height:7.5rem; } .campaign-brand-link { width:6.5rem; height:6.5rem; } }
@media(min-width:761px) and (max-width:1050px) { .campaigns-list { gap:.85rem; } .campaign-row { padding-inline:.85rem; grid-template-rows:7rem minmax(6rem,auto) 1fr; } .campaign-identity { gap:.7rem; } .campaign-brand-link { width:4.5rem; height:4.5rem; } .campaign-identity h3 { font-size:1.25rem; } .campaign-identity-text h3 { font-size:clamp(1.3rem,2.4vw,1.65rem); } .campaign-description { font-size:1rem; } .campaign-action a { font-size:.82rem; } }
@media(max-width:760px) { .campaigns-heading.section-shell { padding-block:1.15rem 1.3rem; } .campaigns-heading h2 { max-width:14ch; font-size:clamp(2.25rem,8vw,3.5rem); } .campaigns-inner.section-shell { padding-block:1rem 1.5rem; } .campaigns-list { grid-template-columns:1fr; gap:0; } .campaign-row { grid-template-rows:auto auto auto; gap:.85rem; padding:1.35rem 0; } .campaign-row + .campaign-row { border-left:0; border-top:1px solid var(--rule); } .campaign-identity { min-height:0; gap:1rem; } .campaign-brand-link { width:5rem; height:5rem; } .campaign-identity h3 { font-size:clamp(1.45rem,5vw,2rem); } .campaign-identity-text { min-height:3rem; } .campaign-identity-text h3 { font-size:clamp(1.85rem,7vw,2.75rem); } .campaign-description { max-width:36ch; font-size:1.1rem; } .campaign-action { flex-direction:row; align-items:flex-end; gap:1rem; } .campaign-action a { font-size:.86rem; white-space:nowrap; } }
@media(max-width:380px) { .campaign-action { flex-direction:column; align-items:flex-start; gap:.75rem; } .campaign-identity { gap:.8rem; } .campaign-brand-link { width:4.25rem; height:4.25rem; } }
@supports(grid-template-rows:subgrid) { @media(min-width:761px) { .campaigns-list { grid-template-rows:auto auto auto; row-gap:.9rem; } .campaign-row { grid-row:span 3; grid-template-rows:subgrid; } } }
@media(prefers-reduced-motion:reduce) { .campaign-row,.campaign-action a span { transition:none; } .campaign-action a:hover span,.campaign-action a:focus-visible span { transform:none; } }

/* House-only viewport of the supplied transparent mark; the artwork is unchanged. */
.campaign-brand-link-notjustmum { width:9.12rem; height:6rem; border-radius:0; display:flex; align-items:center; }
.campaign-house-crop { position:relative; display:block; width:100%; aspect-ratio:1.52; overflow:hidden; }
.campaign-house-crop img { position:absolute; display:block; width:165%; max-width:none; height:auto; left:-30.9%; top:-15.5%; }
@media(min-width:1600px) { .campaign-brand-link-notjustmum { width:9.88rem; height:6.5rem; } }
@media(min-width:761px) and (max-width:1050px) { .campaign-brand-link-notjustmum { width:6.84rem; height:4.5rem; } }
@media(max-width:760px) { .campaign-brand-link-notjustmum { width:7.6rem; height:5rem; } }
@media(max-width:380px) { .campaign-brand-link-notjustmum { width:6.46rem; height:4.25rem; } }

/* Official CWJ logo, complete and unaltered, on its transparent canvas. */
.campaign-brand-link-cwj { width:7.5rem; border-radius:0; display:flex; align-items:center; }
.campaign-logo-cwj { clip-path:none; aspect-ratio:500/333; object-fit:contain; }
@media(min-width:761px) and (max-width:1050px) { .campaign-brand-link-cwj { width:5rem; } }
@media(max-width:760px) { .campaign-brand-link-cwj { width:6rem; } }

/* Two short paragraphs per campaign, with shared grid alignment. */
.campaign-description { max-width:34ch; font-size:clamp(1rem,1.15vw,1.125rem); line-height:1.5; }
.campaign-description p { margin:0; }
.campaign-description p + p { margin-top:.85em; }
.campaign-identity-cwj { gap:.85rem; }
.campaign-brand-link-cwj { width:6rem; }
.campaign-identity-cwj h3 { font-size:clamp(1.25rem,1.8vw,1.8rem); line-height:1.12; letter-spacing:-.035em; }
@media(min-width:761px) and (max-width:1050px) { .campaign-brand-link-cwj { width:4.5rem; } .campaign-identity-cwj h3 { font-size:1.15rem; } }
@media(max-width:760px) { .campaign-description { max-width:38ch; } .campaign-identity-cwj h3 { font-size:clamp(1.35rem,5vw,2rem); } }

/* Approved black campaign ribbon. */
.campaigns-section.campaigns-black{background:var(--ink);color:var(--paper);border-bottom-color:rgba(241,238,229,.22)}
.campaigns-black .campaigns-heading{background:var(--red);color:var(--ink);box-shadow:none}
.campaigns-black .campaigns-heading::before{background:var(--red)}
.campaigns-black .campaigns-eyebrow{color:var(--ink)}
.campaigns-black .campaign-row+.campaign-row{border-color:rgba(241,238,229,.22)}
.campaigns-black .campaign-row:hover,.campaigns-black .campaign-row:focus-within{background:rgba(241,238,229,.025)}
.campaigns-black .campaign-action p{color:#c5c1b8}
.campaigns-black .campaign-action strong{color:var(--paper)}
.campaigns-black .campaign-action a{color:var(--paper)}
.campaigns-black .campaign-action a span{color:var(--red)}
.campaigns-black .campaign-action a:hover{color:var(--paper)}
.campaigns-black a:focus-visible{outline-color:var(--paper)}
/* Preserve the original CWJ artwork, including its purple/pink lettering. */
.campaigns-black .campaign-logo-cwj{filter:none;opacity:1}
.campaigns-black .campaign-brand-link-cwj::before{content:none}

/* Focused editorial refinement: campaign content and column geometry retained. */
.campaigns-black .campaigns-heading.section-shell{padding-block:.9rem 1rem}
.campaigns-black .campaigns-heading h2{font:300 clamp(2.35rem,4.4vw,4.5rem)/1.02 var(--serif);letter-spacing:-.045em}
.campaigns-black .campaign-brand-link-notjustmum{transform:scale(.9);transform-origin:left center}
.campaigns-black .campaign-brand-link-cwj{transform:none;background:transparent;border-radius:0;padding:0;box-sizing:border-box}
@media(max-width:760px){.campaigns-black .campaigns-heading h2{font-size:clamp(2.25rem,8vw,3.5rem)}}


@media(prefers-reduced-motion:no-preference){
[data-campaign-motion="ready"] .campaigns-heading::before{transform:scaleX(0)}
[data-campaign-motion="ready"] .campaigns-heading h2,[data-campaign-motion="ready"] .campaigns-eyebrow,[data-campaign-motion="ready"] .campaign-row{opacity:0;transform:translateY(10px)}
[data-campaign-motion="visible"] .campaigns-heading::before{animation:review-campaign-band .55s cubic-bezier(.2,.7,.3,1) both}
[data-campaign-motion="visible"] .campaigns-heading h2,[data-campaign-motion="visible"] .campaigns-eyebrow{animation:review-campaign-entry .45s ease-out .12s both}
[data-campaign-motion="visible"] .campaign-row{animation:review-campaign-entry .5s ease-out .2s both}
[data-campaign-motion="visible"] .campaign-row:nth-child(2){animation-delay:.32s}
[data-campaign-motion="visible"] .campaign-row:nth-child(3){animation-delay:.44s}
}
@keyframes review-campaign-band{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes review-campaign-entry{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

@media(min-width:761px) and (max-width:1000px){.campaigns-list{grid-template-columns:minmax(0,1fr);grid-template-rows:none;gap:0}.campaign-row{grid-row:auto;grid-template-columns:minmax(0,2fr) minmax(8rem,1fr);grid-template-rows:auto auto;padding:1.5rem 0;gap:1rem 2rem}.campaign-row+.campaign-row{border-left:0;border-top:1px solid var(--rule)}.campaign-identity{grid-column:1/-1;min-height:0}.campaign-description{max-width:38ch}.campaign-action{justify-content:flex-start}}
