/* PoliPost marketing design contract v2: shared tokens and primitives.
 * Spec: docs/marketing-design-contract-2026-09-25.md. Loaded (render-blocking, after a.css) only on pages that opt in
 * through render_marketing(): landing, Features, Pricing, Sources. Page sheets add layout only; they do not restyle
 * these primitives. Breakpoints: lg 960, md 880, sm 760, xs 640 (plus min-width 881). */
:root{
  color-scheme:light;
  /* colour */
  --mk-ink:var(--ink); --mk-paper:var(--paper); --mk-seal:var(--seal); --mk-card:var(--card,#fff);
  --mk-text-1:var(--ink); --mk-text-2:#3A4C56; --mk-text-3:var(--graphite,#5A6972);
  --mk-on-ink-1:#FFFFFF; --mk-on-ink-2:#E3E9E9; --mk-on-ink-3:#C6D3DA;
  --mk-ok-ink:#17613A; --mk-ok-tint:#E4F1E8; --mk-warn-ink:#6B4A00; --mk-warn-tint:#FBF3E2; --mk-warn-line:#EBD9B4;
  --mk-surface-inset:#F5F4F0; --mk-surface-sheet:#FBFAF7; --mk-mark-fill:#F1EFE8; --mk-film-bg:#EDE7DA;
  --mk-line-strong:#DCD9D0; --mk-line:var(--line,#E3E0D6); --mk-line-soft:#ECE9E1;
  /* tints: rgb() fallbacks first (support floor: Safari 16.4, Chrome/Edge 111, Firefox 121); color-mix() below */
  --mk-underline:rgb(18 48 61 / .35);
  --mk-underline-on-ink:rgb(255 255 255 / .6);
  --mk-film-pill:rgb(18 48 61 / .94);
  --mk-scrim:rgb(18 48 61 / .45);
  --mk-shadow-overlay:0 24px 60px -24px rgb(18 48 61 / .45);
  --mk-shadow-pill:0 2px 6px rgb(18 48 61 / .25);
  --mk-grain:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1400'%20height='1240'%3E%3Cg%20fill='none'%20stroke='%238A8272'%20stroke-linecap='round'%3E%3Cpath%20d='M180%20210q14-6%2026-2'%20stroke-width='.8'%20stroke-opacity='.09'/%3E%3Cpath%20d='M560%20120q8%2010%204%2024'%20stroke-width='.8'%20stroke-opacity='.07'/%3E%3Cpath%20d='M910%20340q18%202%2030%2012'%20stroke-width='.8'%20stroke-opacity='.1'/%3E%3Cpath%20d='M340%20620q-4%2014%206%2024'%20stroke-width='.8'%20stroke-opacity='.07'/%3E%3Cpath%20d='M1180%20760q16-8%2030-4'%20stroke-width='.8'%20stroke-opacity='.08'/%3E%3Cpath%20d='M120%20940q20%204%2032%2018t14%2026'%20stroke-width='.9'%20stroke-opacity='.11'/%3E%3Cpath%20d='M760%20980q22-12%2040-8'%20stroke-width='.9'%20stroke-opacity='.09'/%3E%3Cpath%20d='M480%20420l5%203'%20stroke-width='1'%20stroke-opacity='.11'/%3E%3Cpath%20d='M1010%201100l4-4'%20stroke-width='1'%20stroke-opacity='.1'/%3E%3Cpath%20d='M1320%20180q-8%2012-2%2026'%20stroke-width='.8'%20stroke-opacity='.07'/%3E%3C/g%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='260'%20height='260'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='.85'%20numOctaves='3'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20values='0%200%200%200%20.24%200%200%200%200%20.21%200%200%200%200%20.16%200%200%200%20.09%200'/%3E%3C/filter%3E%3Crect%20width='260'%20height='260'%20filter='url(%23n)'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='520'%20height='520'%3E%3Cfilter%20id='f'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='.022%20.06'%20numOctaves='2'%20seed='7'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20values='0%200%200%200%20.35%200%200%200%200%20.31%200%200%200%200%20.24%200%200%200%20.05%200'/%3E%3C/filter%3E%3Crect%20width='520'%20height='520'%20filter='url(%23f)'/%3E%3C/svg%3E");
  --mk-torn:polygon(0 3px,3% 9px,6.5% 4px,10% 11px,13% 6px,17% 12px,20.5% 3px,24% 9px,27% 13px,31% 5px,34.5% 10px,38% 4px,41% 12px,45% 7px,48.5% 11px,52% 3px,56% 9px,59% 13px,62.5% 6px,66% 10px,69.5% 4px,73% 11px,76.5% 6px,80% 12px,83.5% 5px,87% 9px,90.5% 3px,94% 10px,97% 6px,100% 11px,100% 100%,0 100%);
  /* type */
  --mk-fs-display-1:clamp(2.125rem,.25rem + 4.4vw,3.25rem);
  --mk-fs-display-2:clamp(1.75rem,1rem + 2vw,2.5rem);
  --mk-fs-heading-3:clamp(1.625rem,1rem + 1.25vw,2.125rem);
  --mk-fs-numeral:clamp(2rem,1rem + 2.2vw,2.75rem); --mk-fs-numeral-sm:2rem;
  --mk-fs-stage-num:2.25rem; --mk-fs-stage-num-sm:1.625rem;
  --mk-fs-title:clamp(1.375rem,1.1rem + .9vw,1.625rem); --mk-fs-title-sm:1.25rem;
  --mk-fs-lede:clamp(1.125rem,1rem + .45vw,1.25rem);
  --mk-fs-body-lg:clamp(1.0625rem,1rem + .25vw,1.125rem);
  --mk-fs-item:1.0625rem; --mk-fs-body:1rem; --mk-fs-small:.9375rem; --mk-fs-fine:.875rem; --mk-fs-caps:.75rem;
  --mk-lh-display:1.06; --mk-lh-heading:1.12; --mk-lh-h3:1.14; --mk-lh-title:1.2; --mk-lh-lede:1.55;
  --mk-lh-body:1.5; --mk-lh-compact:1.4; --mk-lh-small:1.45; --mk-lh-label:1.3;
  --mk-ls-display:-.025em; --mk-ls-heading:-.018em; --mk-ls-h3:-.012em; --mk-ls-title:-.01em; --mk-ls-numeral:-.02em; --mk-ls-caps:.08em;
  --mk-fw-h1:500; --mk-fw-display:500; /* one display weight (D1); the alternative is --mk-fw-display:700 */
  --mk-measure-lede:26em; --mk-measure-text:30em; --mk-measure-wide:47.5rem;
  /* space: the layout scale, then the control-inset sub-scale (padding inside controls and icon-label gaps only) */
  --mk-sp-4:4px; --mk-sp-8:8px; --mk-sp-12:12px; --mk-sp-16:16px; --mk-sp-20:20px; --mk-sp-24:24px; --mk-sp-28:28px;
  --mk-sp-32:32px; --mk-sp-40:40px; --mk-sp-48:48px; --mk-sp-56:56px; --mk-sp-64:64px; --mk-sp-80:80px; --mk-sp-96:96px;
  --mk-ctl-2:2px; --mk-ctl-6:6px; --mk-ctl-10:10px; --mk-ctl-14:14px; --mk-ctl-18:18px;
  --mk-wrap:1196px; --mk-gutter:22px; --mk-hero-top:44px; --mk-hero-gap:52px;
  --mk-sp-section:80px; --mk-sp-block:64px; --mk-sp-head:48px;
  /* shape and motion */
  --mk-r-tag:4px; --mk-r-frame:6px; --mk-r-card:12px; --mk-r-band:16px; --mk-r-pill:999px;
  --mk-dur-quick:120ms; --mk-dur-reveal:280ms; --mk-dur-move:340ms;
  --mk-ease:cubic-bezier(.2,.8,.2,1); --mk-ease-pop:cubic-bezier(.34,1.4,.4,1); /* ease-pop: landing stage numeral only */
}
@supports (color:color-mix(in srgb,red,blue)){:root{
  --mk-underline:color-mix(in srgb,var(--ink) 35%,transparent);
  --mk-underline-on-ink:color-mix(in srgb,#fff 60%,transparent);
  --mk-film-pill:color-mix(in srgb,var(--ink) 94%,transparent);
  --mk-scrim:color-mix(in srgb,var(--ink) 45%,transparent);
  --mk-shadow-overlay:0 24px 60px -24px color-mix(in srgb,var(--ink) 45%,transparent);
  --mk-shadow-pill:0 2px 6px color-mix(in srgb,var(--ink) 25%,transparent);
}}
@media(max-width:960px){:root{--mk-sp-section:64px}}
@media(max-width:880px){:root{--mk-hero-top:32px}}
@media(max-width:760px){:root{--mk-hero-top:28px;--mk-sp-section:56px;--mk-sp-block:48px;--mk-sp-head:32px}}
@media(max-width:640px){:root{--mk-gutter:16px}}

/* ---------- Paper: one sheet for the page, the sticky header and the phone menu ---------- */
body.mk-page{background-image:var(--mk-grain)}
body.mk-page .mk-head{background-image:var(--mk-grain)}
@media(max-width:880px){body.mk-page .mk-links{background-image:var(--mk-grain)}}
body.mk-page .ccbar{background-image:var(--mk-grain)}

/* ---------- Base text inside the contract scope ---------- */
.mk-page main{font-size:var(--mk-fs-body);line-height:var(--mk-lh-body)}
.mk-page main :is(h1,h2,h3,h4){text-wrap:balance}
.mk-page main :is(p,li,blockquote,figcaption,dd){text-wrap:pretty}
.mk-page main :is(p,li,h1,h2,h3,h4,a,dd,summary){hyphens:manual}

/* ---------- Type roles ---------- */
.mk-h1{margin:0;font-family:var(--display);font-size:var(--mk-fs-display-1);font-weight:var(--mk-fw-h1);line-height:var(--mk-lh-display);letter-spacing:var(--mk-ls-display);color:var(--mk-text-1)}
.mk-h1 .h1-s{display:inline}
@media(min-width:761px){.mk-h1 .h1-s{display:block}}
.mk-h2{margin:0;font-family:var(--display);font-size:var(--mk-fs-display-2);font-weight:var(--mk-fw-display);line-height:var(--mk-lh-heading);letter-spacing:var(--mk-ls-heading);color:var(--mk-text-1);max-width:16em}
.mk-h3{margin:0;font-family:var(--display);font-size:var(--mk-fs-heading-3);font-weight:var(--mk-fw-display);line-height:var(--mk-lh-h3);letter-spacing:var(--mk-ls-h3);color:var(--mk-text-1)}
.mk-lede{margin:var(--mk-sp-24) 0 0;max-width:var(--mk-measure-lede);font-size:var(--mk-fs-lede);line-height:var(--mk-lh-lede);color:var(--mk-text-2)}
@media(max-width:760px){.mk-lede{margin-top:var(--mk-sp-16)}}
.mk-note{margin:var(--mk-sp-16) 0 0;font-size:var(--mk-fs-small);line-height:var(--mk-lh-small);font-weight:400;color:var(--mk-text-3)}
@media(max-width:760px){.mk-note{margin-top:var(--mk-sp-12)}}
.mk-fine{font-size:var(--mk-fs-fine);line-height:var(--mk-lh-small);font-weight:400;color:var(--mk-text-3)}
.mk-caps{font-size:var(--mk-fs-caps);line-height:var(--mk-lh-label);font-weight:700;letter-spacing:var(--mk-ls-caps);text-transform:uppercase;color:var(--mk-text-3)}

/* ---------- Actions: buttons and links ---------- */
.mk-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--mk-sp-12) var(--mk-sp-24)}
.mk-page .btn{border-width:1px}
.mk-page .btn.lg{min-height:52px;padding:var(--mk-ctl-14) 24px;font-size:var(--mk-fs-item);line-height:1.2;justify-content:center;text-align:center}
.btn-tail{display:inline-flex;align-items:center;gap:var(--mk-sp-8);white-space:nowrap}
.mk-link{display:inline-flex;align-items:center;gap:var(--mk-sp-8);min-height:24px;font-size:var(--mk-fs-item);font-weight:700;line-height:1.3;color:var(--mk-text-1);text-decoration:underline;text-decoration-color:var(--mk-underline);text-decoration-thickness:1.5px;text-underline-offset:4px;transition:text-decoration-color var(--mk-dur-quick) var(--mk-ease)}
.mk-link:active{text-decoration-color:var(--mk-seal)}
.mk-more{display:inline-flex;align-items:center;gap:var(--mk-sp-8);max-width:100%;min-height:44px;font-size:var(--mk-fs-item);font-weight:700;line-height:1.4;color:var(--mk-seal);text-decoration:none}
.mk-more>span{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.mk-more>.i{flex:none}
.mk-more:active>span{text-decoration-thickness:2px}
/* Inside a note line the jump link is plain inline text, so a wrapped label keeps its arrow on the last word (joined by &nbsp;). */
.mk-more.sm{display:inline;min-height:0;padding-block:var(--mk-sp-4);font-size:inherit}
.mk-link-inline{color:var(--mk-seal);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.mk-link-inline:active{text-decoration-thickness:2px}
.mk-on-ink .mk-link{color:var(--mk-on-ink-1);text-decoration-color:var(--mk-underline-on-ink)}
.mk-on-ink .mk-link:active{text-decoration-color:var(--mk-on-ink-1)}
@media(hover:hover) and (pointer:fine){
  .mk-page .btn:hover{box-shadow:none}
  .mk-link:hover{text-decoration-color:var(--mk-seal)}
  .mk-on-ink .mk-link:hover{text-decoration-color:var(--mk-on-ink-1)}
  .mk-more:hover>span,.mk-link-inline:hover{text-decoration-thickness:2px}
}
@media(max-width:760px){.mk-page .btn.lg{min-height:48px;padding:12px 20px}}
@media(max-width:760px),(pointer:coarse){.mk-link{min-height:44px}}
@media(max-width:640px){
  .mk-actions{flex-direction:column;align-items:stretch;row-gap:var(--mk-sp-8)}
  .mk-actions>.btn{width:100%}
  .mk-actions>.mk-link{align-self:center;justify-content:center}
}

/* ---------- Stage marker (Features): italic seal numeral, stage name, plan line ---------- */
.mk-stage{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--mk-sp-4) var(--mk-sp-12);margin:0}
.mk-stage-num{font-family:var(--display);font-size:var(--mk-fs-stage-num-sm);font-style:italic;font-weight:500;line-height:1;color:var(--mk-seal)}
.mk-stage-name{font-size:var(--mk-fs-item);font-weight:700;line-height:1.3;color:var(--mk-text-1)}
@media(max-width:760px){.mk-stage-num{display:none}}
/* Plan availability: a plain metadata line ("Advocate · Coalition"), never colour or a tinted pill (D3). */
.mk-plans{display:inline-flex;flex-wrap:wrap;font-size:var(--mk-fs-fine);font-weight:500;line-height:1.3;color:var(--mk-text-3)}
.mk-plans>span:not(.mk-sr)+span::before{content:"·";margin:0 .4em}
.mk-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* ---------- FAQ disclosure: ruled rows, item-role questions, a drawn plus/minus marker (Sina Nova has no minus glyph) ---------- */
.mk-faq{max-width:var(--mk-measure-wide)}
.mk-faq details{border-top:1px solid var(--mk-line)}
.mk-faq summary{display:flex;align-items:center;justify-content:space-between;gap:var(--mk-sp-16);min-height:48px;padding:12px 0;cursor:pointer;list-style:none;font-size:var(--mk-fs-item);font-weight:700;line-height:1.4;color:var(--mk-text-1)}
.mk-faq summary::-webkit-details-marker{display:none}
.mk-faq .faq-ic{flex:none;display:inline-grid;color:var(--mk-text-3);transition:color var(--mk-dur-quick) var(--mk-ease)}
.mk-faq .faq-ic .i{grid-area:1/1}
.mk-faq .faq-ic .i+.i,.mk-faq details[open] .faq-ic .i:first-child{visibility:hidden}
.mk-faq details[open] .faq-ic .i+.i{visibility:visible}
.mk-faq details p{margin:0 0 var(--mk-sp-16);max-width:var(--mk-measure-text);font-size:var(--mk-fs-body);line-height:var(--mk-lh-body);color:var(--mk-text-2)}
@media(hover:hover) and (pointer:fine){.mk-faq summary:hover .faq-ic{color:var(--mk-text-1)}.mk-faq summary:hover .faq-q{text-decoration:underline;text-decoration-color:var(--mk-underline);text-underline-offset:4px}}
@media(prefers-reduced-motion:reduce){.mk-faq .faq-ic{transition:none}}

/* ---------- Closing band: one component on every page (pp_mk_band) ---------- */
.mk-band-sec{margin-top:var(--mk-sp-section);padding-bottom:var(--mk-sp-section)}
.mk-band{position:relative;overflow:hidden;display:block;padding:var(--mk-sp-40);background:var(--mk-ink);color:var(--mk-on-ink-1);border-radius:0 0 var(--mk-r-band) var(--mk-r-band);clip-path:var(--mk-torn)}
.mk-band>*:not(.mk-stamp){position:relative;z-index:1}
.mk-stamp{position:absolute;right:-28px;top:-24px;z-index:0;width:228px;height:auto;color:var(--mk-paper);pointer-events:none}
.mk-stamp text{font-family:var(--display)}
.mk-band-copy{max-width:var(--mk-measure-wide)}
.mk-band-title{margin:0;max-width:19em;font-family:var(--display);font-size:var(--mk-fs-display-2);font-weight:var(--mk-fw-display);line-height:var(--mk-lh-heading);letter-spacing:var(--mk-ls-heading);color:var(--mk-on-ink-1)}
.mk-band-lede{margin:var(--mk-sp-16) 0 0;max-width:var(--mk-measure-text);font-size:var(--mk-fs-lede);line-height:1.5;color:var(--mk-on-ink-2)}
.mk-band .mk-actions{margin-top:var(--mk-sp-24)}
.mk-band .mk-note{color:var(--mk-on-ink-3)}
.mk-on-ink :focus-visible{outline-color:#fff}
.mk-reveal{opacity:0;transform:translateY(16px);transition:opacity var(--mk-dur-reveal) var(--mk-ease),transform var(--mk-dur-move) var(--mk-ease)}
.mk-reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.mk-reveal,.mk-reveal.is-visible{opacity:1;transform:none;transition:none}}
@media(min-width:641px) and (max-width:960px){.mk-band-title{max-width:calc(100% - 150px)}}
@media(max-width:760px){.mk-stamp{width:170px;right:-34px}}
@media(max-width:640px){.mk-band{padding:var(--mk-sp-28) 22px}.mk-stamp{width:120px;right:-30px;top:-34px}}

/* ---------- Print: the page prints as a document ---------- */
@media print{
  .mk-band{background:none;color:var(--mk-ink);clip-path:none;border:1px solid var(--mk-line-strong);border-radius:0}
  .mk-band-title,.mk-band-lede,.mk-band .mk-note,.mk-on-ink .mk-link{color:var(--mk-ink)}
  .mk-stamp,.lp-film{display:none}
  .mk-reveal{opacity:1!important;transform:none!important}
  .mk-band,.lc-stage,.pf2-stage,.pf2-stage-shot,.ps-table,.mp-card{break-inside:avoid}
}

/* ---------- Forced colours (Windows high contrast) ---------- */
@media(forced-colors:active){
  .mk-band{border:1px solid CanvasText;clip-path:none}
}
