/*
Theme Name: PriveCarte
Theme URI: https://www.privecarte.co.za
Author: Kirosconsult
Author URI: https://www.kirosconsult.com
Description: Bespoke block theme for PriveCarte — vetted personal shopping and escorted delivery for elderly residents of Chatsworth and Durban South. Docket-led identity, dual light/dark themes, PWA-ready.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: privecarte
Tags: blog, business, one-column, block-patterns, full-site-editing, accessibility-ready
*/

/* ════════════════════════════════════════════════════════════
   PriveCarte design system
   Colour tokens live here rather than in theme.json alone so the
   dark theme can be redefined in one place. theme.json mirrors the
   palette for the editor's colour pickers.
   ════════════════════════════════════════════════════════════ */

:root{
  --paper:#E7EAE2;      /* cool sage paper */
  --paper-2:#DDE2D8;
  --card:#F6F8F2;
  --ink:#14211B;        /* green-black */
  --ink-soft:#4C5A51;
  --rule:#C3CBBD;
  --moss:#22463A;       /* brand green */
  --moss-soft:#3C6355;
  --turmeric:#8E5410;   /* burnt ochre — dark enough for 11px labels on sage */
  --turmeric-lift:#E4A340;
  --alert:#8C3B2E;
  --night:#101A16;
  --night-2:#18241F;
  --on-night:#DFE5DA;
  --on-night-soft:#94A69B;

  --display:Superclarendon,"Bookman Old Style","Bitstream Charter",Charter,"Iowan Old Style",Georgia,serif;
  --body:"Avenir Next",Avenir,"Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:"SF Mono",SFMono-Regular,Menlo,Consolas,"Roboto Mono",ui-monospace,monospace;

  --wrap:1180px;
  --gut:clamp(20px,5vw,56px);
  --band-y:clamp(64px,9vw,124px);
  --r:14px;
  --shadow:0 1px 2px rgba(20,33,27,.06),0 12px 34px -18px rgba(20,33,27,.34);

  --z-header:90;
  --z-totop:95;
  --z-skip:200;
}
:root[data-theme="dark"]{
  --paper:#0E1613; --paper-2:#131D19; --card:#17231E;
  --ink:#E4E9DF; --ink-soft:#9BAB9F; --rule:#2C3B34;
  --moss:#7FC0A4; --moss-soft:#5E9B82;
  --turmeric:#E4A340; --turmeric-lift:#F0BC6C; --alert:#D97B69;
  --night:#080D0B; --night-2:#111A16;
  --on-night:#DFE5DA; --on-night-soft:#8B9C92;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 34px -18px rgba(0,0,0,.8);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0E1613; --paper-2:#131D19; --card:#17231E;
    --ink:#E4E9DF; --ink-soft:#9BAB9F; --rule:#2C3B34;
    --moss:#7FC0A4; --moss-soft:#5E9B82;
    --turmeric:#E4A340; --turmeric-lift:#F0BC6C; --alert:#D97B69;
    --night:#080D0B; --night-2:#111A16;
    --on-night:#DFE5DA; --on-night-soft:#8B9C92;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 34px -18px rgba(0,0,0,.8);
  }
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:17.5px;line-height:1.62;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;line-height:1.08;margin:0;letter-spacing:-.012em;text-wrap:balance}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}
hr{border:0;border-top:1px solid var(--rule);margin:0}

/* ── accessibility ─────────────────────────────────────── */
/* Fixed dark ground on purpose: --moss inverts to a light green in the
   dark theme, which would leave white-on-light text here. */
.pc-skip{position:absolute;left:-9999px;top:0;background:#101A16;color:#DFE5DA;padding:12px 18px;z-index:var(--z-skip);border-radius:0 0 10px 0;border:1px solid #2A3831}
.pc-skip:focus{left:0}
:focus-visible{outline:3px solid var(--turmeric);outline-offset:3px;border-radius:4px}
.screen-reader-text,.pc-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.screen-reader-text:focus{position:static;width:auto;height:auto;clip:auto;margin:0;padding:12px 18px}

/* ── shell ─────────────────────────────────────────────── */
.pc-wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut)}
.pc-band{padding-block:var(--band-y)}
.pc-band.is-tight{padding-block:clamp(44px,6vw,78px)}
.pc-band.is-night{
  background:var(--night);color:var(--on-night);
  /* remap neutrals so components inside adapt on their own.
     --moss is left alone on purpose: .pc-btn--primary pairs light text with it. */
  --turmeric:var(--turmeric-lift);
  --ink:var(--on-night);
  --ink-soft:var(--on-night-soft);
  --rule:#2A3831;
  --card:var(--night-2);
}
.pc-band.is-night h1,.pc-band.is-night h2,.pc-band.is-night h3{color:var(--on-night)}
.pc-band.is-alt{background:var(--paper-2)}
.pc-band + .pc-band.is-alt{border-top:1px solid var(--rule)}

/* ── header ────────────────────────────────────────────── */
.pc-masthead{
  position:sticky;top:0;z-index:var(--z-header);
  background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:saturate(1.4) blur(12px);
  border-bottom:1px solid var(--rule);
}
.admin-bar .pc-masthead{top:32px}
@media (max-width:782px){.admin-bar .pc-masthead{top:46px}}
.pc-masthead__in{display:flex;align-items:center;gap:22px;min-height:70px}
.pc-brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex:0 0 auto;min-height:44px}
.pc-brand__mark{width:32px;height:32px;flex:0 0 auto}
.pc-brand__name{font-family:var(--display);font-size:20.5px;letter-spacing:-.02em;font-weight:600}
.pc-brand__name em{font-style:normal;color:var(--turmeric)}
.pc-nav{display:flex;gap:3px;margin-left:auto;flex-wrap:wrap;list-style:none;margin-block:0;padding:0}
.pc-nav a{
  display:block;text-decoration:none;font-size:14.6px;
  padding:8px 11px;border-radius:9px;color:var(--ink-soft);white-space:nowrap;
  transition:background .18s,color .18s;
}
.pc-nav a:hover{color:var(--ink);background:color-mix(in srgb,var(--rule) 45%,transparent)}
.pc-nav .current-menu-item > a,.pc-nav a[aria-current="page"]{color:var(--ink);font-weight:600;background:color-mix(in srgb,var(--rule) 55%,transparent)}
.pc-masthead__tools{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.pc-iconbtn{
  width:44px;height:44px;min-width:44px;display:grid;place-items:center;border-radius:10px;
  border:1px solid var(--rule);background:transparent;color:var(--ink);cursor:pointer;
  transition:background .18s,border-color .18s;
}
.pc-iconbtn:hover{background:var(--card);border-color:var(--moss-soft)}
.pc-navtoggle{display:none}
@media (max-width:940px){
  .pc-navtoggle{display:grid}
  .pc-nav{
    position:absolute;left:0;right:0;top:100%;margin:0;
    flex-direction:column;gap:0;padding:10px var(--gut) 18px;
    background:var(--paper);border-bottom:1px solid var(--rule);
    box-shadow:var(--shadow);
  }
  .pc-nav[hidden]{display:none}
  .pc-nav a{padding:13px 8px;font-size:17px;border-bottom:1px solid var(--rule);border-radius:0;min-height:48px}
  .pc-nav li:last-child a{border-bottom:0}
}

/* ── type helpers ──────────────────────────────────────── */
.pc-eyebrow{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--turmeric);margin:0 0 20px;display:flex;align-items:center;gap:10px;
}
.pc-eyebrow::before{content:"";width:26px;height:1px;background:currentColor;flex:0 0 auto}
.pc-eyebrow.is-centred{justify-content:center}
.pc-h-xl{font-size:clamp(36px,5vw,58px);letter-spacing:-.026em}
.pc-h-lg{font-size:clamp(30px,4.4vw,48px);letter-spacing:-.022em}
.pc-h-md{font-size:clamp(23px,2.7vw,31px);letter-spacing:-.014em}
.pc-h-sm{font-size:clamp(18.5px,1.7vw,21px);letter-spacing:-.008em}
.pc-lede{font-size:clamp(18px,1.85vw,21.5px);line-height:1.55;color:var(--ink-soft);max-width:60ch}
.pc-band.is-night .pc-lede{color:var(--on-night-soft)}
.pc-measure{max-width:66ch}
.pc-muted{color:var(--ink-soft)}
.pc-fine{font-size:13.2px;color:var(--ink-soft)}

/* ── buttons ───────────────────────────────────────────── */
.pc-btnrow{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.pc-btnrow.is-centred{justify-content:center}
.pc-btn{
  display:inline-flex;align-items:center;gap:9px;
  font:inherit;font-size:16px;font-weight:600;text-decoration:none;cursor:pointer;
  padding:14px 24px;border-radius:11px;border:1px solid transparent;min-height:48px;
  transition:transform .18s,background .18s,border-color .18s,box-shadow .18s;
}
.pc-btn--primary{background:var(--moss);color:#F4F8F2;box-shadow:0 10px 24px -14px rgba(34,70,58,.9)}
:root[data-theme="dark"] .pc-btn--primary{color:#0B120F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pc-btn--primary{color:#0B120F}}
.pc-btn--primary:hover{transform:translateY(-2px);background:var(--moss-soft)}
.pc-btn--ghost{border-color:var(--rule);color:var(--ink)}
.pc-btn--ghost:hover{transform:translateY(-2px);border-color:var(--moss);background:var(--card)}
.pc-band.is-night .pc-btn--ghost{border-color:#2E3E37;color:var(--on-night)}
.pc-band.is-night .pc-btn--ghost:hover{border-color:var(--turmeric);background:var(--night-2)}
.pc-btn__arrow{transition:transform .18s}
.pc-btn:hover .pc-btn__arrow{transform:translateX(3px)}
.pc-btn[disabled],.pc-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none}

/* ── the docket (signature) ────────────────────────────── */
.pc-docket{
  position:relative;background:var(--card);border:1px solid var(--rule);
  border-radius:12px 12px 0 0;padding:26px 24px 30px;font-family:var(--mono);
  font-size:13.2px;line-height:1.5;box-shadow:var(--shadow);color:var(--ink);
}
.pc-docket::after{
  content:"";position:absolute;left:-1px;right:-1px;bottom:-11px;height:12px;
  background:var(--card);
  -webkit-mask:radial-gradient(circle at 7px 0,transparent 6.6px,#000 7.1px) repeat-x;
  mask:radial-gradient(circle at 7px 0,transparent 6.6px,#000 7.1px) repeat-x;
  -webkit-mask-size:14px 12px;mask-size:14px 12px;
}
.pc-docket__head{text-align:center;border-bottom:1px dashed var(--rule);padding-bottom:16px;margin-bottom:16px}
.pc-docket__title{font-family:var(--display);font-size:19px;letter-spacing:.02em;margin-bottom:5px}
.pc-docket__meta{font-size:11.4px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft)}
.pc-line{
  display:grid;grid-template-columns:1fr auto;gap:4px 14px;align-items:baseline;
  padding:6px 0;border-bottom:1px dotted color-mix(in srgb,var(--rule) 75%,transparent);
}
.pc-line:last-of-type{border-bottom:0}
.pc-line__name{display:flex;flex-wrap:wrap;gap:5px 8px;align-items:baseline}
.pc-line__price{white-space:nowrap;font-variant-numeric:tabular-nums}
.pc-store{
  font-size:10.4px;letter-spacing:.07em;text-transform:uppercase;
  padding:1px 6px;border-radius:4px;border:1px solid var(--rule);color:var(--ink-soft);
}
.pc-store--fl{border-color:var(--moss);color:var(--moss)}
.pc-store--tnp{border-color:var(--turmeric);color:var(--turmeric)}
.pc-line__note{
  grid-column:1/-1;font-size:11.6px;line-height:1.45;color:var(--turmeric);
  padding:6px 0 2px 12px;border-left:2px solid var(--turmeric);margin-top:4px;
}
.pc-docket__total{
  display:grid;grid-template-columns:1fr auto;gap:6px 14px;
  border-top:1px dashed var(--rule);margin-top:14px;padding-top:14px;
  font-variant-numeric:tabular-nums;
}
.pc-docket__total strong{font-size:15px}
.pc-stamp{
  margin-top:18px;border:2px solid var(--moss);color:var(--moss);border-radius:8px;
  padding:9px 12px;text-align:center;font-size:11.4px;letter-spacing:.13em;text-transform:uppercase;
  transform:rotate(-1.4deg);opacity:.94;
}

/* docket line-in animation */
.has-js .pc-docket.is-anim .pc-line,
.has-js .pc-docket.is-anim .pc-docket__total,
.has-js .pc-docket.is-anim .pc-stamp{opacity:0;transform:translateY(6px)}
.has-js .pc-docket.is-anim.is-running .pc-line,
.has-js .pc-docket.is-anim.is-running .pc-docket__total,
.has-js .pc-docket.is-anim.is-running .pc-stamp{animation:pcLineIn .5s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes pcLineIn{to{opacity:1;transform:none}}

/* ── hero ──────────────────────────────────────────────── */
.pc-hero{padding-block:clamp(48px,7vw,92px) clamp(56px,8vw,104px);position:relative;overflow:hidden}
.pc-hero::before{
  content:"";position:absolute;inset:auto -10% 55% -10%;height:120%;pointer-events:none;
  background:radial-gradient(60% 55% at 22% 18%,color-mix(in srgb,var(--turmeric) 13%,transparent),transparent 70%);
  opacity:.75;
}
.pc-hero__grid{position:relative;display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(34px,5vw,64px);align-items:start}
@media (max-width:960px){.pc-hero__grid{grid-template-columns:1fr}}
.pc-hero h1{margin-bottom:24px}
.pc-hero__kicker{
  font-family:var(--mono);font-size:12px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-soft);margin-top:30px;padding-top:20px;border-top:1px solid var(--rule);
}

/* ── the toll list ─────────────────────────────────────── */
.pc-tolls{list-style:none;margin:0;padding:0;font-family:var(--mono);font-size:14.6px}
.pc-tolls li{
  display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;
  padding:14px 0;border-bottom:1px dotted var(--rule);
}
.pc-tolls li:first-child{border-top:1px dotted var(--rule)}
.pc-tolls b{font-weight:400}
.pc-tolls span{color:var(--turmeric);text-align:right;font-variant-numeric:tabular-nums}
.pc-tolls .is-sum{border-bottom:0;padding-top:20px}
.pc-tolls .is-sum b,.pc-tolls .is-sum span{font-family:var(--display);font-size:19px;color:var(--ink)}

/* ── grids & cards ─────────────────────────────────────── */
.pc-grid{display:grid;gap:clamp(16px,2vw,24px)}
.pc-grid--2{grid-template-columns:repeat(2,1fr)}
.pc-grid--3{grid-template-columns:repeat(3,1fr)}
.pc-grid--4{grid-template-columns:repeat(4,1fr)}
.pc-grid--split{grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,68px);align-items:center}
.pc-grid--split.is-top{align-items:start}
@media (max-width:900px){.pc-grid--3,.pc-grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.pc-grid--2,.pc-grid--3,.pc-grid--4,.pc-grid--split{grid-template-columns:1fr}}

.pc-card{
  background:var(--card);border:1px solid var(--rule);border-radius:var(--r);
  padding:clamp(22px,2.4vw,30px);transition:transform .2s,border-color .2s,box-shadow .2s;
}
.pc-card:hover{transform:translateY(-3px);border-color:var(--moss-soft);box-shadow:var(--shadow)}
.pc-card h3{margin-bottom:10px}
.pc-card p{font-size:16.2px;color:var(--ink-soft)}
.pc-card__tag{
  font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--turmeric);display:block;margin-bottom:14px;
}

/* ── tables ────────────────────────────────────────────── */
.pc-tablewrap{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--r);background:var(--card)}
.pc-tablewrap table{border-collapse:collapse;width:100%;min-width:620px;font-size:16px}
.pc-tablewrap th,.pc-tablewrap td{text-align:left;padding:16px 20px;border-bottom:1px solid var(--rule);vertical-align:top}
.pc-tablewrap thead th{
  font-family:var(--mono);font-size:11.4px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:400;background:color-mix(in srgb,var(--rule) 30%,transparent);
}
.pc-tablewrap tbody tr:last-child td{border-bottom:0}
.pc-tablewrap td strong{font-family:var(--display);font-size:17.5px;font-weight:600}
.pc-tablewrap td .pc-muted{font-size:15.2px}
.pc-count{font-family:var(--mono);font-size:22px;color:var(--turmeric)}
.pc-vs td:first-child{font-family:var(--display);font-size:17px;font-weight:600;white-space:nowrap}
.pc-tick{color:var(--moss);font-weight:700}
.pc-cross{color:var(--alert);font-weight:700}

/* ── last-meter diagram ────────────────────────────────── */
.pc-lastmeter{width:100%;height:auto;border-radius:var(--r);overflow:hidden}
.pc-lm-label{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;fill:var(--on-night-soft)}
.pc-lm-key{font-family:var(--mono);font-size:12.5px;fill:var(--on-night)}

/* ── whatsapp thread ───────────────────────────────────── */
/* A phone screen. Fixed palette on purpose — reads the same in either
   theme and on either band, so nothing inherits a surprise colour. */
.pc-thread{
  background:#16211C;border:1px solid #2A3831;border-radius:18px;padding:20px 16px;
  display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow);color:#DFE5DA;
}
.pc-thread__head{display:flex;align-items:center;gap:11px;padding:0 6px 14px;border-bottom:1px solid #2A3831;margin-bottom:6px}
.pc-thread__head strong{font-family:var(--display)}
.pc-thread .pc-muted{color:#94A69B;font-size:13px}
.pc-avatar{
  width:38px;height:38px;border-radius:50%;background:#2E7A5E;color:#F2F6F0;
  display:grid;place-items:center;font-family:var(--display);font-size:15px;flex:0 0 auto;
}
.pc-bubble{
  max-width:82%;padding:11px 15px;border-radius:16px;font-size:16px;line-height:1.5;
  background:#1E2C26;border:1px solid #2E3E37;position:relative;color:#DFE5DA;
}
.pc-bubble--them{align-self:flex-start;border-bottom-left-radius:5px}
.pc-bubble--us{align-self:flex-end;border-bottom-right-radius:5px;background:#27483C;border-color:#356052}
.pc-bubble time{display:block;font-family:var(--mono);font-size:10.6px;letter-spacing:.06em;color:#B3C3B8;margin-top:6px}
.pc-voice{display:flex;align-items:center;gap:11px;min-width:210px}
.pc-voice__play{width:30px;height:30px;border-radius:50%;background:#2E7A5E;display:grid;place-items:center;flex:0 0 auto}
.pc-voice__wave{display:flex;align-items:center;gap:2.5px;height:22px;flex:1}
.pc-voice__wave i{display:block;width:2.5px;border-radius:2px;background:#6FAF92}
.pc-voice__len{font-family:var(--mono);font-size:11.5px;color:#B3C3B8}

/* ── app / dashboard surface ───────────────────────────── */
.pc-app{border:1px solid var(--rule);border-radius:16px;overflow:hidden;background:var(--card);box-shadow:var(--shadow)}
.pc-app__bar{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--rule) 28%,transparent)}
.pc-dot{width:9px;height:9px;border-radius:50%;background:var(--rule)}
.pc-app__url{font-family:var(--mono);font-size:12px;color:var(--ink-soft);margin-left:8px;background:var(--paper);border:1px solid var(--rule);border-radius:7px;padding:4px 12px}
.pc-app__body{padding:clamp(18px,2.4vw,28px);display:grid;gap:20px}
.pc-app__row{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}
@media (max-width:760px){.pc-app__row{grid-template-columns:1fr}}
.pc-panel{border:1px solid var(--rule);border-radius:12px;padding:20px;background:var(--paper)}
.pc-panel__label{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px;display:flex;justify-content:space-between;gap:10px}
.pc-meter{height:12px;border-radius:99px;background:color-mix(in srgb,var(--rule) 70%,transparent);overflow:hidden;margin:6px 0 12px}
.pc-meter__fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--moss),var(--turmeric));width:0;transition:width 1.1s cubic-bezier(.2,.7,.3,1)}
.pc-figure{font-family:var(--display);font-size:clamp(26px,3.2vw,34px);letter-spacing:-.02em;display:block;font-variant-numeric:tabular-nums}
.pc-figure small{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-top:6px;letter-spacing:.1em}
.pc-compare{list-style:none;margin:0;padding:0;font-family:var(--mono);font-size:14px}
.pc-compare li{display:grid;grid-template-columns:1fr auto;gap:10px;padding:9px 0;border-bottom:1px dotted var(--rule);font-variant-numeric:tabular-nums}
.pc-compare li:last-child{border-bottom:0}
.pc-compare .is-win{color:var(--moss);font-weight:600}
.pc-compare .is-win::after{content:" ✓"}
.pc-feed{list-style:none;margin:0;padding:0}
.pc-feed li{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:12px 0;border-bottom:1px solid color-mix(in srgb,var(--rule) 60%,transparent);font-size:15.4px}
.pc-feed li:last-child{border-bottom:0}
.pc-feed time{font-family:var(--mono);font-size:11.6px;color:var(--ink-soft);white-space:nowrap;padding-top:3px}
.pc-pill{display:inline-block;font-family:var(--mono);font-size:10.8px;letter-spacing:.1em;text-transform:uppercase;padding:2px 9px;border-radius:99px;border:1px solid currentColor}
.pc-pill--ok{color:var(--moss)}
.pc-pill--warn{color:var(--turmeric)}
.pc-pill--info{color:var(--ink-soft)}
.pc-ticklist{list-style:none;margin:0;padding:0;display:grid;gap:11px;font-size:15.8px}
.pc-ticklist li{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start;color:var(--ink-soft)}
.pc-ticklist li::before{content:"—";color:var(--turmeric);font-family:var(--mono)}

/* ── step sequences ────────────────────────────────────── */
.pc-steps{list-style:none;counter-reset:pcs;margin:0;padding:0;display:grid;gap:4px}
.pc-steps li{counter-increment:pcs;display:grid;grid-template-columns:auto 1fr;gap:22px;padding:24px 0;border-top:1px solid var(--rule);align-items:start}
.pc-steps li::before{content:counter(pcs,decimal-leading-zero);font-family:var(--mono);font-size:11.6px;letter-spacing:.12em;color:var(--turmeric);padding-top:5px;white-space:nowrap}
.pc-steps--phase li::before{content:"Phase " counter(pcs);text-transform:uppercase}
.pc-steps h3{margin-bottom:8px}
.pc-steps p{color:var(--ink-soft);font-size:16.2px}
@media (max-width:620px){.pc-steps li{grid-template-columns:1fr;gap:8px}}

/* ── pricing ───────────────────────────────────────────── */
.pc-plan{background:var(--card);border:1px solid var(--rule);border-radius:var(--r);padding:clamp(24px,2.6vw,32px);display:flex;flex-direction:column}
.pc-plan--feature{border-color:var(--moss);box-shadow:var(--shadow);position:relative}
.pc-plan__flag{position:absolute;top:-11px;left:clamp(24px,2.6vw,32px);background:var(--moss);color:#F4F8F2;font-family:var(--mono);font-size:10.6px;letter-spacing:.12em;text-transform:uppercase;padding:4px 11px;border-radius:99px}
:root[data-theme="dark"] .pc-plan__flag{color:#0B120F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pc-plan__flag{color:#0B120F}}
.pc-plan__price{font-family:var(--display);font-size:clamp(32px,4vw,42px);letter-spacing:-.025em;margin:14px 0 4px;font-variant-numeric:tabular-nums}
.pc-plan__price sup{font-size:.42em;top:-1.1em;position:relative;letter-spacing:0}
.pc-plan__per{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.pc-plan .pc-ticklist{margin-top:22px}
.pc-plan .pc-btn{margin-top:26px;justify-content:center}

/* ── forms ─────────────────────────────────────────────── */
.pc-form{display:grid;gap:18px}
.pc-field{display:grid;gap:7px}
.pc-field label{font-size:15px;font-weight:600}
.pc-field .pc-hint{font-size:13.6px;color:var(--ink-soft)}
.pc-field .pc-err{font-size:13.8px;color:var(--alert);font-weight:600}
.pc-form input,.pc-form select,.pc-form textarea,
.pc-portal input,.pc-portal select,.pc-portal textarea{
  font:inherit;font-size:16.5px;color:var(--ink);background:var(--card);
  border:1px solid var(--rule);border-radius:10px;padding:12px 14px;width:100%;min-height:48px;
}
.pc-form input:focus,.pc-form select:focus,.pc-form textarea:focus{border-color:var(--moss);outline-offset:1px}
.pc-form textarea{min-height:120px;resize:vertical}
.pc-field.has-error input,.pc-field.has-error select,.pc-field.has-error textarea{border-color:var(--alert)}
.pc-required{color:var(--alert)}
.pc-note{border-left:3px solid var(--moss);background:var(--card);padding:16px 18px;border-radius:0 10px 10px 0;font-size:15.6px}
.pc-note--bad{border-left-color:var(--alert)}
.pc-hp{position:absolute;left:-9999px}

/* ── footer ────────────────────────────────────────────── */
.pc-foot{background:var(--night);color:var(--on-night-soft);padding-block:clamp(48px,6vw,72px) 30px;font-size:15px}
.pc-foot a{color:var(--on-night);text-decoration:none;border-bottom:1px solid transparent}
.pc-foot a:hover{border-bottom-color:var(--turmeric-lift);color:#fff}
.pc-foot__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px}
@media (max-width:800px){.pc-foot__grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.pc-foot__grid{grid-template-columns:1fr}}
.pc-foot h2,.pc-foot h4{font-size:13px;font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--on-night);margin-bottom:14px;font-weight:400}
.pc-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.pc-foot__base{margin-top:44px;padding-top:22px;border-top:1px solid #22302A;display:flex;flex-wrap:wrap;gap:14px 26px;justify-content:space-between;align-items:center;font-size:13.6px}
.pc-foot__legal{max-width:78ch;font-size:12.8px;line-height:1.6;color:#8B9C92;margin-top:18px}

/* ── back to top ───────────────────────────────────────── */
.pc-totop{
  position:fixed;right:20px;bottom:20px;z-index:var(--z-totop);width:46px;height:46px;border-radius:12px;
  display:grid;place-items:center;cursor:pointer;background:var(--moss);color:#F2F6F0;border:0;box-shadow:var(--shadow);
  opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s,transform .25s,visibility .25s;
}
:root[data-theme="dark"] .pc-totop{color:#0B120F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pc-totop{color:#0B120F}}
.pc-totop.is-shown{opacity:1;visibility:visible;transform:none}
.pc-totop:hover{background:var(--moss-soft)}

/* ── reveal on scroll ──────────────────────────────────── */
.has-js .pc-reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
.has-js .pc-reveal.is-in{opacity:1;transform:none}

/* ── install prompt ────────────────────────────────────── */
.pc-install{
  position:fixed;left:50%;transform:translate(-50%,120%);bottom:20px;z-index:var(--z-totop);
  display:flex;align-items:center;gap:14px;max-width:min(520px,calc(100vw - 32px));
  background:var(--card);border:1px solid var(--rule);border-radius:14px;padding:14px 16px;
  box-shadow:var(--shadow);transition:transform .3s cubic-bezier(.2,.7,.3,1);
}
.pc-install.is-shown{transform:translate(-50%,0)}
.pc-install p{font-size:14.6px;margin:0;flex:1}
.pc-install .pc-btn{padding:9px 16px;font-size:14.6px;min-height:40px}

/* ── blog ──────────────────────────────────────────────── */
.pc-postlist{display:grid;gap:clamp(16px,2vw,24px);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.pc-postcard{background:var(--card);border:1px solid var(--rule);border-radius:var(--r);padding:clamp(22px,2.4vw,28px);display:flex;flex-direction:column;gap:10px;transition:transform .2s,border-color .2s}
.pc-postcard:hover{transform:translateY(-3px);border-color:var(--moss-soft)}
.pc-postcard a{text-decoration:none}
.pc-postcard time{font-family:var(--mono);font-size:11.4px;letter-spacing:.12em;text-transform:uppercase;color:var(--turmeric)}
.pc-prose{max-width:68ch;font-size:18px}
.pc-prose h2{font-size:clamp(24px,3vw,32px);margin:1.6em 0 .5em}
.pc-prose h3{font-size:clamp(20px,2.2vw,24px);margin:1.4em 0 .4em}
.pc-prose ul,.pc-prose ol{padding-left:1.3em}
.pc-prose li{margin-bottom:.5em}
.pc-prose blockquote{border-left:3px solid var(--turmeric);margin:1.6em 0;padding-left:20px;font-size:19px;color:var(--ink-soft)}
.pc-prose a{color:var(--moss);text-underline-offset:3px}
.pc-prose img{border-radius:var(--r);margin:1.6em 0}

/* ── portal ────────────────────────────────────────────── */
.pc-portal{display:grid;gap:22px}
.pc-portal__head{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:end}
.pc-portal__nav{display:flex;flex-wrap:wrap;gap:8px}
.pc-portal__nav a{
  text-decoration:none;font-size:14.6px;padding:9px 14px;border-radius:9px;
  border:1px solid var(--rule);color:var(--ink-soft);min-height:40px;display:inline-flex;align-items:center;
}
.pc-portal__nav a:hover{border-color:var(--moss);color:var(--ink)}
.pc-portal__nav a[aria-current="page"]{background:var(--moss);color:#F4F8F2;border-color:var(--moss);font-weight:600}
:root[data-theme="dark"] .pc-portal__nav a[aria-current="page"]{color:#0B120F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pc-portal__nav a[aria-current="page"]{color:#0B120F}}
.pc-login{max-width:440px;margin-inline:auto}
/* Text links that are the only control in their area still need a
   thumb-sized target. */
.pc-portal__head a,.pc-foot ul a,.pc-fine a{display:inline-flex;align-items:center;min-height:44px}
.pc-empty{border:1px dashed var(--rule);border-radius:var(--r);padding:36px 28px;text-align:center;color:var(--ink-soft)}
.pc-empty h3{color:var(--ink);margin-bottom:8px}

/* ── WordPress bits ────────────────────────────────────── */
.alignwide{max-width:1180px;margin-inline:auto}
.alignfull{max-width:none}
.wp-block-image img{border-radius:var(--r)}
.pc-pagination{display:flex;gap:10px;flex-wrap:wrap;margin-top:40px}
.pc-pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;
  padding:0 12px;border:1px solid var(--rule);border-radius:10px;text-decoration:none;font-size:15px;
}
.pc-pagination .page-numbers.current{background:var(--moss);color:#F4F8F2;border-color:var(--moss)}
:root[data-theme="dark"] .pc-pagination .page-numbers.current{color:#0B120F}

/* ════════════════════════════════════════════════════════════
   Block bridge
   Core blocks carry PriveCarte class names; these rules make the
   editor's output land on the design system instead of fighting it.
   ════════════════════════════════════════════════════════════ */

/* Flow layout adds margin-block-start to siblings. Inside a grid or a
   band that is spacing we already own, so neutralise it there. */
.pc-grid > *,
.pc-band > .pc-wrap > .pc-eyebrow{margin-block-start:0}
.wp-block-group.pc-band{margin-block:0}
.wp-block-group.pc-wrap > *:first-child{margin-block-start:0}

/* Centred bands (the CTA panels). */
.pc-centre{text-align:center;max-width:780px;margin-inline:auto}
.pc-centre .pc-lede{margin-inline:auto}

/* Long display headings must never break mid-word in a narrow column. */
.pc-h-xl,.pc-h-lg,.pc-h-md{overflow-wrap:normal;word-break:normal;hyphens:none}

/* Core columns is the split layout. Style it rather than replace it. */
.wp-block-columns.pc-split{gap:clamp(32px,5vw,68px);align-items:center;margin-bottom:0}
.wp-block-columns.pc-split.is-top{align-items:flex-start}
.wp-block-columns.pc-split > .wp-block-column > *:first-child{margin-block-start:0}
@media (max-width:781px){.wp-block-columns.pc-split{gap:36px}}

/* Core buttons rendered as PriveCarte buttons. */
.wp-block-buttons.pc-btnrow{gap:12px;margin-top:34px}
.wp-block-buttons.pc-btnrow.is-centred{justify-content:center}
.pc-btn-wrap .wp-block-button__link{
  display:inline-flex;align-items:center;gap:9px;
  font:inherit;font-size:16px;font-weight:600;text-decoration:none;
  padding:14px 24px;border-radius:11px;border:1px solid transparent;min-height:48px;
  transition:transform .18s,background .18s,border-color .18s;
}
.pc-btn-wrap.is-primary .wp-block-button__link{background:var(--moss);color:#F4F8F2;box-shadow:0 10px 24px -14px rgba(34,70,58,.9)}
:root[data-theme="dark"] .pc-btn-wrap.is-primary .wp-block-button__link{color:#0B120F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pc-btn-wrap.is-primary .wp-block-button__link{color:#0B120F}}
.pc-btn-wrap.is-primary .wp-block-button__link:hover{transform:translateY(-2px);background:var(--moss-soft)}
.pc-btn-wrap.is-ghost .wp-block-button__link{background:transparent;border-color:var(--rule);color:var(--ink)}
.pc-btn-wrap.is-ghost .wp-block-button__link:hover{transform:translateY(-2px);border-color:var(--moss);background:var(--card)}
.pc-band.is-night .pc-btn-wrap.is-ghost .wp-block-button__link{border-color:#2E3E37;color:var(--on-night)}
.pc-band.is-night .pc-btn-wrap.is-ghost .wp-block-button__link:hover{border-color:var(--turmeric);background:var(--night-2)}

/* Headings and text that carry our scale classes. */
.wp-block-heading.pc-h-xl,.wp-block-heading.pc-h-lg,
.wp-block-heading.pc-h-md,.wp-block-heading.pc-h-sm{font-family:var(--display);font-weight:600;line-height:1.08}
p.pc-eyebrow{margin-bottom:20px}

/* Blog list, driven by the query loop. */
.pc-postlist-wrap .pc-postlist{
  display:grid;gap:clamp(16px,2vw,24px);
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  list-style:none;padding:0;margin:40px 0 0;
}
.pc-postlist-wrap .pc-postlist > li{
  background:var(--card);border:1px solid var(--rule);border-radius:var(--r);
  padding:clamp(22px,2.4vw,28px);display:flex;flex-direction:column;gap:10px;
  transition:transform .2s,border-color .2s;
}
.pc-postlist-wrap .pc-postlist > li:hover{transform:translateY(-3px);border-color:var(--moss-soft)}
.pc-postlist-wrap .pc-postlist a{text-decoration:none}
.pc-postmeta{font-family:var(--mono);font-size:11.4px;letter-spacing:.12em;text-transform:uppercase;color:var(--turmeric);margin:0}
.pc-postlist-wrap .wp-block-post-excerpt__more-text{display:none}

/* Search field. */
.wp-block-search__input{
  font:inherit;font-size:16.5px;color:var(--ink);background:var(--card);
  border:1px solid var(--rule);border-radius:10px;padding:12px 14px;min-height:48px;
}
.wp-block-search__button{
  background:var(--moss);color:#F4F8F2;border:0;border-radius:10px;
  padding:12px 20px;min-height:48px;font-weight:600;cursor:pointer;
}

/* Login form inside the portal. */
.pc-login .login-username,.pc-login .login-password{display:grid;gap:7px;margin-bottom:16px}
.pc-login label{font-size:15px;font-weight:600}
.pc-login input[type="text"],.pc-login input[type="password"]{
  font:inherit;font-size:16.5px;color:var(--ink);background:var(--card);
  border:1px solid var(--rule);border-radius:10px;padding:12px 14px;width:100%;min-height:48px;
}
.pc-login .login-remember{margin-bottom:18px;font-size:15px;color:var(--ink-soft)}
.pc-login .login-remember input{min-height:auto;width:auto;margin-right:8px}
.pc-login .button-primary,.pc-login #wp-submit{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--moss);color:#F4F8F2;border:1px solid transparent;border-radius:11px;
  padding:14px 24px;min-height:48px;font:inherit;font-size:16px;font-weight:600;cursor:pointer;width:100%;
}
:root[data-theme="dark"] .pc-login #wp-submit{color:#0B120F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pc-login #wp-submit{color:#0B120F}}
.pc-login #wp-submit:hover{background:var(--moss-soft)}

.wp-block-separator{border-top:1px solid var(--rule);border-bottom:0;margin-block:40px}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .has-js .pc-reveal{opacity:1;transform:none}
  .has-js .pc-docket.is-anim .pc-line,
  .has-js .pc-docket.is-anim .pc-docket__total,
  .has-js .pc-docket.is-anim .pc-stamp{opacity:1;transform:none}
}

@media print{
  .pc-masthead,.pc-totop,.pc-install,.pc-foot__legal{display:none !important}
  body{background:#fff;color:#000}
  .pc-docket{box-shadow:none;border-color:#999}
}

/* ── Rate card: market chooser ─────────────────────────────
   The visitor picks their market. Nothing is switched on their
   location, and every rate stays one click away. CSS-only, so it
   works with JavaScript off. */
.pc-rates{border:0;padding:0;margin:0;min-width:0}
.pc-rates__legend{
	font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
	color:var(--ochre);padding:0;margin:0 0 12px
}
.pc-rates__radio{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.pc-rates__pick{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.pc-rates__chip{
	font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
	padding:8px 14px;border:1px solid var(--rule);border-radius:2px;cursor:pointer;
	background:var(--paper);color:var(--ink-soft);min-height:44px;display:inline-flex;align-items:center;
	transition:border-color .15s ease,color .15s ease,background .15s ease
}
.pc-rates__chip:hover{border-color:var(--ochre);color:var(--ink)}
.pc-rates__note{font-size:13.5px;color:var(--ink-soft);max-width:62ch;margin:0 0 26px}

#pc-mkt-za:checked ~ .pc-rates__pick label[for="pc-mkt-za"],
#pc-mkt-uk:checked ~ .pc-rates__pick label[for="pc-mkt-uk"],
#pc-mkt-au:checked ~ .pc-rates__pick label[for="pc-mkt-au"],
#pc-mkt-us:checked ~ .pc-rates__pick label[for="pc-mkt-us"],
#pc-mkt-ca:checked ~ .pc-rates__pick label[for="pc-mkt-ca"],
#pc-mkt-eu:checked ~ .pc-rates__pick label[for="pc-mkt-eu"]{
	background:var(--moss);border-color:var(--moss);color:#fff
}
.pc-rates__radio:focus-visible ~ .pc-rates__pick label{outline:2px solid var(--ochre);outline-offset:3px}

.pc-rate{display:none}
#pc-mkt-za:checked ~ .pc-grid .pc-rate--za,
#pc-mkt-uk:checked ~ .pc-grid .pc-rate--uk,
#pc-mkt-au:checked ~ .pc-grid .pc-rate--au,
#pc-mkt-us:checked ~ .pc-grid .pc-rate--us,
#pc-mkt-ca:checked ~ .pc-grid .pc-rate--ca,
#pc-mkt-eu:checked ~ .pc-grid .pc-rate--eu{display:inline}

.pc-plan__year{
	margin:10px 0 0;padding-top:10px;border-top:1px dotted var(--rule);
	font-size:13.5px;color:var(--ink-soft);line-height:1.45
}
.pc-plan__year strong{color:var(--ink);font-variant-numeric:tabular-nums}
.pc-plan__year em{display:block;font-style:normal;font-family:var(--mono);font-size:10.5px;
	letter-spacing:.06em;text-transform:uppercase;color:var(--ochre);margin-top:4px}

/* ── Click-to-reveal email ───────────────────────────────── */
.pc-email{display:inline-block}
.pc-email__btn{
	font:inherit;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
	background:none;border:1px dashed var(--ochre);color:var(--ochre);border-radius:2px;
	padding:9px 14px;cursor:pointer;min-height:44px
}
.pc-email__btn:hover{background:var(--ochre);color:#fff}
.pc-email__btn:focus-visible{outline:2px solid var(--ochre);outline-offset:3px}
.pc-email__link,.pc-email__plain{font-family:var(--mono);font-size:13.5px;word-break:break-all}

/* ── Partner store categories ────────────────────────────── */
.pc-partners{margin-top:26px}
.pc-partner h3{margin:6px 0 8px}
.pc-rate{white-space:nowrap}
