  :root{
    --ink:#0E0D0C;
    --ink-2:#1A1817;
    --paper:#F6F4F1;
    --paper-2:#EDE9E4;
    --maroon:#8B1A2B;
    --maroon-deep:#6E1322;
    --maroon-bright:#E04B63;
    --green:#04A74E;
    --grey:#6E6763;
    --grey-light:#A49C97;
    --hairline:#D9D3CC;
    --glass:rgba(255,255,255,.07);
    --glass-line:rgba(255,255,255,.16);
    --serif:"Playfair Display",Georgia,serif;
    --sans:"Archivo","Helvetica Neue",Arial,sans-serif;
    --mono:"IBM Plex Mono",ui-monospace,monospace;
    --shell:1180px;
  }

  *,*::before,*::after{ box-sizing:border-box; }
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:var(--sans); font-size:16px; line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; }
  button{ font:inherit; cursor:pointer; }
  :focus-visible{ outline:2px solid var(--maroon-bright); outline-offset:3px; }

  .shell{ width:100%; max-width:var(--shell); margin:0 auto; padding-inline:24px; }
  @media (max-width:520px){ .shell{ padding-inline:18px; } }

  /* ---------- photographic grounds (placeholders) ---------- */
  .photo{ position:relative; overflow:hidden; background:var(--ink); isolation:isolate; }
  .photo::before{
    content:""; position:absolute; inset:0; z-index:0;
    background:
      radial-gradient(70% 55% at 78% 22%, rgba(255,255,255,.17), transparent 62%),
      radial-gradient(46% 40% at 18% 78%, rgba(255,255,255,.09), transparent 66%),
      linear-gradient(118deg,#2A2624 0%,#191615 44%,#0C0B0A 100%);
  }
  .photo::after{
    content:""; position:absolute; inset:0; z-index:1; opacity:.5;
    background:
      repeating-linear-gradient(104deg, rgba(255,255,255,.035) 0 1px, transparent 1px 7px),
      repeating-linear-gradient(16deg, rgba(0,0,0,.16) 0 1px, transparent 1px 11px);
  }
  .photo.v2::before{
    background:
      radial-gradient(64% 50% at 22% 26%, rgba(255,255,255,.15), transparent 60%),
      radial-gradient(50% 44% at 84% 74%, rgba(255,255,255,.07), transparent 64%),
      linear-gradient(200deg,#262221 0%,#151312 50%,#0B0A09 100%);
  }
  .photo.v3::before{
    background:
      radial-gradient(58% 46% at 50% 14%, rgba(255,255,255,.16), transparent 58%),
      radial-gradient(46% 40% at 12% 88%, rgba(255,255,255,.08), transparent 62%),
      linear-gradient(148deg,#242120 0%,#171514 46%,#0A0908 100%);
  }
  .photo.v4::before{
    background:
      radial-gradient(60% 52% at 86% 36%, rgba(255,255,255,.14), transparent 60%),
      radial-gradient(44% 38% at 24% 82%, rgba(255,255,255,.07), transparent 64%),
      linear-gradient(226deg,#282423 0%,#161413 48%,#0B0A09 100%);
  }
  .photo > *{ position:relative; z-index:2; }
  .scrim{ position:absolute; inset:0; z-index:1; background:rgba(8,7,7,.52); }

  /* ---------- header ---------- */
  .site-head{
    position:sticky; top:env(safe-area-inset-top,0px); z-index:60;
    background:rgba(14,13,12,.55);
    backdrop-filter:blur(18px) saturate(1.2);
    -webkit-backdrop-filter:blur(18px) saturate(1.2);
    border-bottom:1px solid rgba(255,255,255,.09);
  }
  .head-in{
    display:flex; align-items:center; justify-content:space-between; gap:20px;
    padding-block:16px;
  }
  .brand{ display:flex; flex-direction:column; line-height:1; text-decoration:none; }
  .brand b{
    font-family:var(--sans); font-weight:700; font-size:22px; letter-spacing:.13em;
    color:#fff;
  }
  .brand small{
    font-family:var(--sans); font-size:8.5px; letter-spacing:.42em;
    color:rgba(255,255,255,.62); margin-top:4px; padding-left:2px;
  }
  .nav{ display:flex; gap:26px; }
  .nav button{
    background:none; border:0; padding:4px 0; color:rgba(255,255,255,.74);
    font-size:14.5px; letter-spacing:.01em; position:relative; transition:color .2s;
  }
  .nav button:hover{ color:#fff; }
  .nav button[aria-current="page"]{ color:#fff; }
  .nav button[aria-current="page"]::after{
    content:""; position:absolute; left:0; right:0; bottom:-2px; height:1.5px;
    background:var(--maroon-bright);
  }
  .head-cta{
    background:rgba(255,255,255,.06); color:#fff;
    border:1px solid rgba(255,255,255,.28); border-radius:100px;
    padding:11px 22px; font-size:14px; font-weight:500; white-space:nowrap;
    transition:background .25s,border-color .25s,color .25s;
  }
  /* per brief: header CTA turns green on hover */
  .head-cta:hover{ background:var(--green); border-color:var(--green); color:#fff; }
  .burger{ display:none; background:none; border:0; color:#fff; padding:6px; }
  .burger svg{ display:block; }
  @media (max-width:900px){
    .nav{
      display:none; position:absolute; left:0; right:0; top:100%;
      flex-direction:column; gap:0; padding:8px 24px 18px;
      background:rgba(14,13,12,.96);
      backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
      border-bottom:1px solid rgba(255,255,255,.1);
    }
    .nav.open{ display:flex; }
    .nav button{ padding:13px 0; text-align:left; border-bottom:1px solid rgba(255,255,255,.07); }
    .nav button[aria-current="page"]::after{ display:none; }
    .burger{ display:block; }
    .head-cta{ padding:9px 16px; font-size:13px; }
  }
  @media (max-width:520px){ .head-cta{ display:none; } }

  /* ---------- hero ---------- */
  .hero{ min-height:clamp(480px,74vh,660px); display:flex; align-items:center; padding-block:84px; }
  .hero-in{ width:100%; max-width:var(--shell); margin:0 auto; padding-inline:24px; }
  @media (max-width:520px){ .hero-in{ padding-inline:18px; } }
  .hero h1{
    font-family:var(--serif); font-weight:400; color:#fff;
    font-size:clamp(34px,5.6vw,60px); line-height:1.1; letter-spacing:-.012em;
    margin:0 0 20px; max-width:15ch; text-wrap:balance;
  }
  .hero h1 em{ font-style:italic; color:#fff; }
  .hero p.lede{
    margin:0 0 30px; max-width:52ch; font-size:17px; line-height:1.62;
    color:rgba(255,255,255,.82);
  }
  .hero-cta{ display:flex; flex-wrap:wrap; gap:12px; }
  .btn{
    display:inline-flex; align-items:center; gap:9px;
    border-radius:100px; padding:13px 26px; font-size:14.5px; font-weight:500;
    border:1px solid transparent; text-decoration:none; transition:all .24s;
  }
  .btn-solid{ background:var(--maroon); color:#fff; }
  .btn-solid:hover{ background:var(--maroon-deep); }
  .btn-ghost{ background:rgba(255,255,255,.05); color:#fff; border-color:rgba(255,255,255,.34); }
  .btn-ghost:hover{ background:rgba(255,255,255,.13); }
  .btn-dark{ background:var(--ink); color:#fff; }
  .btn-dark:hover{ background:var(--maroon); }

  .scroll-cue{
    display:flex; flex-direction:column; align-items:center; gap:7px;
    margin-top:52px;
  }
  .cue-mouse{
    width:19px; height:30px; border:1.5px solid var(--maroon-bright); border-radius:11px;
    display:flex; justify-content:center; padding-top:5px;
  }
  .cue-dot{
    width:3px; height:6px; border-radius:2px; background:var(--maroon-bright);
    animation:cueD 1.9s ease-in-out infinite;
  }
  @keyframes cueD{
    0%{transform:translateY(0);opacity:1}
    60%{transform:translateY(9px);opacity:0}
    100%{transform:translateY(0);opacity:0}
  }
  .cue-label{ font-size:9px; letter-spacing:.24em; text-transform:uppercase; color:rgba(255,255,255,.9); }
  .cue-chev{ animation:cueC 1.9s ease-in-out infinite; }
  @keyframes cueC{
    0%,100%{transform:translateY(0);opacity:.5}
    50%{transform:translateY(3px);opacity:1}
  }

  /* ---------- section furniture ---------- */
  section{ padding-block:clamp(64px,8vw,104px); }
  .sec-head{ text-align:center; margin-bottom:46px; }
  .eyebrow{
    font-family:var(--mono); font-size:11px; letter-spacing:.3em; text-transform:uppercase;
    color:var(--grey); display:inline-flex; align-items:center; gap:16px; margin-bottom:18px;
  }
  .eyebrow::before,.eyebrow::after{ content:""; width:52px; height:1px; background:var(--hairline); }
  .eyebrow.on-dark{ color:rgba(255,255,255,.62); }
  .eyebrow.on-dark::before,.eyebrow.on-dark::after{ background:rgba(255,255,255,.22); }
  h2.display{
    font-family:var(--serif); font-weight:400; font-size:clamp(28px,4.2vw,46px);
    line-height:1.16; letter-spacing:-.012em; margin:0 0 16px; text-wrap:balance;
  }
  h2.display em{ font-style:italic; color:var(--maroon); }
  .sec-head p{ margin:0 auto; max-width:64ch; color:var(--grey); font-size:16px; }
  .on-dark h2.display,.on-dark .sec-head p{ color:#fff; }
  .on-dark .sec-head p{ color:rgba(255,255,255,.72); }

  /* ---------- pillar accordion ---------- */
  .pillars{ display:flex; gap:10px; height:520px; }
  .pill{
    position:relative; border-radius:16px; overflow:hidden; cursor:pointer;
    border:1px solid rgba(255,255,255,.14);
    flex:0 0 74px; transition:flex-basis .55s cubic-bezier(.22,.8,.3,1);
    background:var(--ink);
  }
  .pill.open{ flex:1 1 auto; cursor:default; }
  .pill .bg{ position:absolute; inset:0; z-index:0; }
  .pill .veil{ position:absolute; inset:0; z-index:1; background:linear-gradient(92deg,rgba(9,8,8,.93) 0%,rgba(9,8,8,.78) 42%,rgba(9,8,8,.30) 100%); }
  .pill.closed .veil{ background:rgba(9,8,8,.72); }
  .pill-closed-label{
    position:absolute; inset:0; z-index:3;
    display:flex; flex-direction:column; align-items:center; gap:18px; padding-block:26px;
  }
  .pill.open .pill-closed-label{ display:none; }
  .pill-closed-label .num{ font-family:var(--mono); font-size:12px; color:rgba(255,255,255,.66); }
  .pill-closed-label .vert{
    writing-mode:vertical-rl; text-orientation:mixed;
    font-size:10px; letter-spacing:.26em; text-transform:uppercase;
    color:rgba(255,255,255,.82); white-space:nowrap;
  }
  .pill-body{
    position:relative; z-index:3; height:100%; display:none;
    flex-direction:column; justify-content:center; gap:14px;
    padding:38px 40px; max-width:560px;
  }
  .pill.open .pill-body{ display:flex; }
  .pill-body .num{ font-family:var(--mono); font-size:12px; color:rgba(255,255,255,.66); display:flex; align-items:center; gap:12px; }
  .pill-body .num::after{ content:""; width:26px; height:1px; background:var(--maroon-bright); }
  .pill-body h3{
    font-family:var(--serif); font-weight:400; color:#fff; margin:0;
    font-size:clamp(24px,3vw,34px); line-height:1.14;
  }
  .pill-body p{ margin:0; color:rgba(255,255,255,.76); font-size:14.5px; line-height:1.6; }
  .checks{ list-style:none; margin:4px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
  .checks li{ display:flex; align-items:center; gap:11px; color:#fff; font-size:14px; }
  .checks i{
    flex:0 0 18px; height:18px; border-radius:50%; background:var(--maroon);
    display:grid; place-items:center;
  }
  .checks svg{ display:block; }
  .invest{
    align-self:flex-start; margin-top:8px;
    background:linear-gradient(97deg,var(--maroon) 0%,var(--maroon-deep) 100%);
    color:#fff; border:0; border-radius:100px; padding:12px 24px;
    font-size:14px; font-weight:500; display:inline-flex; align-items:center; gap:10px;
  }
  @media (max-width:860px){
    .pillars{ flex-direction:column; height:auto; }
    .pill{ flex:0 0 auto; }
    .pill.closed{ min-height:64px; }
    .pill-closed-label{ flex-direction:row; justify-content:flex-start; gap:14px; padding:20px 22px; }
    .pill-closed-label .vert{ writing-mode:horizontal-tb; }
    .pill-body{ padding:28px 22px; max-width:none; }
  }

  /* ---------- glass cards ---------- */
  .glass{
    background:var(--glass); border:1px solid var(--glass-line); border-radius:16px;
    backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  }
  .glass-light{
    background:#fff; border:1px solid var(--hairline); border-radius:16px;
  }

  .reasons{ display:flex; flex-direction:column; gap:14px; }
  .reason{ display:grid; grid-template-columns:1.35fr .65fr; gap:0; overflow:hidden; align-items:stretch; }
  .reason:nth-child(even){ grid-template-columns:.65fr 1.35fr; }
  .reason:nth-child(even) .r-text{ order:2; }
  .reason:nth-child(even) .r-art{ order:1; }
  .r-text{ padding:34px 36px; display:flex; flex-direction:column; gap:11px; justify-content:center; }
  .r-text .num{ font-family:var(--mono); font-size:12px; color:var(--maroon); letter-spacing:.06em; }
  .r-text h3{ font-family:var(--serif); font-weight:400; font-size:26px; margin:0; line-height:1.2; }
  .r-text p{ margin:0; color:var(--grey); font-size:15px; max-width:52ch; }
  .r-art{ background:var(--paper-2); display:grid; place-items:center; padding:26px; min-height:190px; }
  .r-art svg{ width:100%; max-width:210px; height:auto; }
  @media (max-width:760px){
    .reason,.reason:nth-child(even){ grid-template-columns:1fr; }
    .reason:nth-child(even) .r-text{ order:1; }
    .reason:nth-child(even) .r-art{ order:2; }
  }

  /* ---------- marquee ---------- */
  .marquee{ overflow:hidden; mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent); -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent); }
  .marquee-track{ display:flex; gap:76px; width:max-content; animation:slide 34s linear infinite; align-items:center; }
  .marquee:hover .marquee-track{ animation-play-state:paused; }
  @keyframes slide{ to{ transform:translateX(-50%); } }
  .marquee img{
    height:54px; width:auto; filter:grayscale(1) contrast(.9); opacity:.62;
    transition:filter .3s,opacity .3s;
  }
  .marquee img:hover{ filter:none; opacity:1; }
  @media (prefers-reduced-motion:reduce){ .marquee-track{ animation:none; } }

  /* ---------- problems / solutions panels ---------- */
  .stack{ display:flex; flex-direction:column; gap:14px; }
  .item{ display:grid; grid-template-columns:104px 1fr; gap:26px; padding:32px 34px; align-items:start; }
  .item .icon{ display:grid; place-items:center; }
  .item .icon svg{ width:74px; height:74px; }
  .item h3{ font-family:var(--serif); font-weight:400; font-size:24px; margin:0 0 10px; line-height:1.22; color:#fff; }
  .item .kicker{ font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.5); display:block; margin-bottom:7px; }
  .item p{ margin:0 0 14px; color:rgba(255,255,255,.76); font-size:15px; }
  .cost{
    margin:0; padding-top:14px; border-top:1px solid rgba(255,255,255,.13);
    color:var(--maroon-bright); font-size:14.5px; font-weight:500;
  }
  .cost b{ font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.5); display:block; font-weight:400; margin-bottom:5px; }
  @media (max-width:680px){
    .item{ grid-template-columns:1fr; gap:16px; padding:26px 22px; }
    .item .icon{ justify-items:start; }
    .item .icon svg{ width:56px; height:56px; }
  }
  .pso{ display:flex; flex-direction:column; gap:12px; }
  .pso-row{ display:grid; grid-template-columns:96px 1fr; gap:10px; }
  .pso-row b{ font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.46); padding-top:3px; font-weight:400; }
  .pso-row span{ color:rgba(255,255,255,.78); font-size:15px; }
  .pso-row.out span{ color:var(--maroon-bright); font-weight:500; }
  .price{
    margin-top:16px; padding-top:14px; border-top:1px solid rgba(255,255,255,.13);
    font-family:var(--mono); font-size:13px; color:#fff;
  }
  .price em{ font-style:normal; color:rgba(255,255,255,.5); }
  @media (max-width:680px){ .pso-row{ grid-template-columns:1fr; gap:2px; } }

  .strip{ background:var(--maroon); color:#fff; }
  .strip-in{
    display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:16px 34px;
    padding-block:34px; text-align:center;
  }
  .strip-in p{ margin:0; font-family:var(--serif); font-size:clamp(20px,2.6vw,26px); }
  .strip .btn-ghost{ border-color:rgba(255,255,255,.55); }

  /* ---------- TBS ---------- */
  .tbs{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  .tbs-card{
    position:relative; border-radius:16px; overflow:hidden; min-height:400px;
    border:1px solid rgba(255,255,255,.14); cursor:pointer; background:var(--ink);
    transition:transform .4s cubic-bezier(.22,.8,.3,1);
  }
  .tbs-card .veil{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(9,8,8,.30) 0%,rgba(9,8,8,.86) 72%); transition:background .4s; }
  .tbs-card.on .veil{ background:linear-gradient(180deg,rgba(9,8,8,.22) 0%,rgba(9,8,8,.90) 62%); }
  .tbs-card.on{ transform:translateY(-6px); }
  .tbs-in{ position:relative; z-index:2; height:100%; display:flex; flex-direction:column; padding:28px; }
  .tbs-in .num{ font-family:var(--mono); font-size:12px; color:rgba(255,255,255,.62); }
  .tbs-in .rule{ width:26px; height:2px; background:var(--maroon-bright); margin:8px 0 14px; }
  .tbs-in h3{ font-family:var(--sans); font-weight:700; color:#fff; font-size:38px; margin:0; letter-spacing:-.02em; }
  .tbs-in .sub{ font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.66); margin-top:6px; }
  .tbs-in .body{
    margin-top:auto; color:rgba(255,255,255,.82); font-size:14px; line-height:1.55;
    max-height:0; opacity:0; overflow:hidden; transition:max-height .45s ease,opacity .35s ease;
  }
  .tbs-card.on .body{ max-height:200px; opacity:1; }
  @media (max-width:820px){ .tbs{ grid-template-columns:1fr; } .tbs-card{ min-height:240px; } .tbs-in .body{ max-height:200px; opacity:1; } }

  /* ---------- process ring ---------- */
  .ring-wrap{ display:grid; grid-template-columns:1fr; justify-items:center; }
  .ring{ position:relative; width:min(520px,92vw); aspect-ratio:1; }
  .ring-node{
    position:absolute; top:50%; left:50%; width:104px; height:104px; margin:-52px 0 0 -52px;
    border-radius:50%; display:grid; place-items:center; text-align:center;
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    color:rgba(255,255,255,.8); font-size:12.5px; letter-spacing:.06em;
    cursor:pointer; transition:transform .35s cubic-bezier(.22,.8,.3,1),background .3s,border-color .3s,color .3s;
  }
  .ring-node:hover{ color:#fff; border-color:rgba(255,255,255,.4); }
  .ring-node.on{
    background:var(--maroon); border-color:var(--maroon); color:#fff;
    transform:translate(var(--x),var(--y)) scale(1.14);
  }
  .ring-node span{ font-family:var(--mono); font-size:10px; display:block; opacity:.7; margin-bottom:3px; }
  .ring-core{
    position:absolute; inset:27%; border-radius:50%;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
    text-align:center; padding:18px;
    border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.035);
  }
  .ring-core h4{ font-family:var(--serif); font-weight:400; color:#fff; font-size:23px; margin:0; }
  .ring-core p{ margin:0; font-size:13px; color:rgba(255,255,255,.72); line-height:1.5; }
  @media (max-width:620px){
    .ring{ display:none; }
  }
  .ring-list{ display:none; flex-direction:column; gap:10px; width:100%; }
  @media (max-width:620px){ .ring-list{ display:flex; } }
  .ring-list button{
    text-align:left; padding:16px 18px; border-radius:12px;
    background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); color:#fff;
  }
  .ring-list button.on{ background:var(--maroon); border-color:var(--maroon); }
  .ring-list b{ display:block; font-size:15px; margin-bottom:3px; }
  .ring-list small{ color:rgba(255,255,255,.72); font-size:13px; }

  /* ---------- systems ---------- */
  .systems{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
  @media (max-width:760px){ .systems{ grid-template-columns:1fr; } }
  .sys{ padding:28px 30px; display:flex; flex-direction:column; gap:10px; }
  .sys h4{ font-family:var(--serif); font-weight:400; font-size:21px; margin:0; }
  .sys p{ margin:0; color:var(--grey); font-size:14.5px; }
  .sys dl{ margin:6px 0 0; display:grid; grid-template-columns:auto 1fr; gap:6px 14px; font-size:13px; }
  .sys dt{ font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--grey-light); padding-top:2px; }
  .sys dd{ margin:0; color:var(--ink); }

  /* ---------- connect ---------- */
  .connect-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:14px; }
  @media (max-width:880px){ .connect-grid{ grid-template-columns:1fr; } }
  .cbox{ padding:30px 32px; display:flex; flex-direction:column; gap:14px; }
  .cbox h3{ font-family:var(--serif); font-weight:400; font-size:24px; margin:0; color:#fff; }
  .cbox p{ margin:0; color:rgba(255,255,255,.74); font-size:14.5px; }
  .cal{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); border-radius:12px; padding:18px; }
  .cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; color:#fff; font-size:14px; }
  .cal-head span{ font-family:var(--mono); font-size:12px; color:rgba(255,255,255,.6); }
  .cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }
  .cal-grid i{
    font-family:var(--mono); font-style:normal; font-size:10px; text-align:center;
    color:rgba(255,255,255,.42); padding-bottom:4px;
  }
  .cal-grid button{
    aspect-ratio:1; border-radius:7px; border:1px solid transparent; background:rgba(255,255,255,.05);
    color:rgba(255,255,255,.75); font-size:12.5px; font-family:var(--mono);
    display:grid; place-items:center; transition:all .2s;
  }
  .cal-grid button:disabled{ opacity:.24; cursor:not-allowed; }
  .cal-grid button.free{ border-color:rgba(224,75,99,.5); color:#fff; }
  .cal-grid button.free:hover{ background:var(--maroon); border-color:var(--maroon); }
  .cal-grid button.sel{ background:var(--maroon); border-color:var(--maroon); color:#fff; }
  .slots{ display:flex; flex-wrap:wrap; gap:7px; margin-top:13px; }
  .slots button{
    border-radius:100px; padding:7px 15px; font-size:12.5px; font-family:var(--mono);
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.2); color:#fff;
  }
  .slots button:hover{ border-color:var(--maroon-bright); }
  .slots button.sel{ background:var(--maroon); border-color:var(--maroon); }

  .field{ display:flex; flex-direction:column; gap:6px; }
  .field label{ font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); }
  .field input,.field textarea,.field select{
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); border-radius:9px;
    padding:11px 13px; color:#fff; font:inherit; font-size:14.5px; width:100%;
  }
  .field input::placeholder,.field textarea::placeholder{ color:rgba(255,255,255,.34); }
  .field textarea{ resize:vertical; min-height:86px; }
  .two-up{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  @media (max-width:520px){ .two-up{ grid-template-columns:1fr; } }
  .office{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px 28px; }
  @media (max-width:620px){ .office{ grid-template-columns:1fr; } }
  .office div b{ font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.5); display:block; margin-bottom:5px; font-weight:400; }
  .office div span{ color:#fff; font-size:15px; }

  /* ---------- footer ---------- */
  .site-foot{ background:var(--ink); color:#fff; padding-block:56px 26px; }
  .foot-grid{ display:grid; grid-template-columns:1fr 1.1fr .8fr; gap:40px; }
  @media (max-width:880px){ .foot-grid{ grid-template-columns:1fr; gap:32px; } }
  .foot-brand b{ font-size:20px; font-weight:700; letter-spacing:.13em; display:block; }
  .foot-brand small{ font-size:8.5px; letter-spacing:.42em; color:rgba(255,255,255,.55); display:block; margin:4px 0 16px 2px; }
  .foot-brand p{ margin:0; color:rgba(255,255,255,.7); font-size:14.5px; line-height:1.8; }
  .foot-brand .tag{ color:var(--maroon-bright); font-weight:500; }
  .foot-col h5{
    font-family:var(--mono); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;
    color:rgba(255,255,255,.5); margin:0 0 14px; font-weight:400;
  }
  .sub-btn{
    background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.22); color:#fff;
    border-radius:100px; padding:11px 20px; font-size:14px; transition:all .22s;
  }
  .sub-btn:hover{ background:var(--maroon); border-color:var(--maroon); }
  .foot-contact{ margin-top:20px; color:rgba(255,255,255,.7); font-size:14.5px; line-height:1.85; }
  .foot-contact a{ text-decoration:none; }
  .foot-contact a:hover{ color:var(--maroon-bright); }
  .socials{ display:grid; grid-template-columns:repeat(3,44px); gap:9px; }
  .socials a{
    width:44px; height:44px; border-radius:10px; display:grid; place-items:center;
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
    color:rgba(255,255,255,.8); transition:all .22s;
  }
  .socials a:hover{ background:var(--maroon); border-color:var(--maroon); color:#fff; }
  .foot-bottom{
    margin-top:42px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12);
    display:flex; flex-wrap:wrap; gap:10px 24px; align-items:center; justify-content:space-between;
    font-size:13px; color:rgba(255,255,255,.55);
  }
  .foot-bottom nav{ display:flex; gap:20px; }
  .foot-bottom a{ text-decoration:none; }
  .foot-bottom a:hover{ color:#fff; }

  /* ---------- modal ---------- */
  .modal-back{
    position:fixed; inset:0; z-index:100; background:rgba(8,7,7,.72);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
    display:grid; place-items:center; padding:20px;
  }
  .modal{
    width:100%; max-width:440px; background:#151312; color:#fff;
    border:1px solid rgba(255,255,255,.14); border-radius:18px; padding:30px;
    display:flex; flex-direction:column; gap:15px;
  }
  .modal h3{ font-family:var(--serif); font-weight:400; font-size:24px; margin:0; }
  .modal p{ margin:0; color:rgba(255,255,255,.7); font-size:14.5px; }
  .modal .row{ display:flex; gap:10px; justify-content:flex-end; margin-top:4px; }
  .modal .x{ background:none; border:0; color:rgba(255,255,255,.6); font-size:14px; padding:12px 16px; }

  /* ---------- notice ---------- */
  .mock-note{
    background:var(--ink-2); color:rgba(255,255,255,.72); font-size:12.5px;
    border-bottom:1px solid rgba(255,255,255,.1);
  }
  .mock-note .shell{ display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; justify-content:center; padding-block:9px; text-align:center; }
  .mock-note b{ color:#fff; font-weight:500; }

  /* ---------- reveal ---------- */
  @media (prefers-reduced-motion:no-preference){
    .route > *{ animation:rise .5s cubic-bezier(.22,.8,.3,1) both; }
    .route > *:nth-child(2){ animation-delay:.05s; }
    .route > *:nth-child(3){ animation-delay:.1s; }
    .route > *:nth-child(4){ animation-delay:.15s; }
    .route > *:nth-child(n+5){ animation-delay:.2s; }
    @keyframes rise{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
  }
  [hidden]{ display:none !important; }


/* WordPress theme adaptations */
body.admin-bar .site-head{top:32px}
.paper-section{background:var(--paper)}
.section-layer{position:relative;z-index:2}
.head-actions{display:flex;align-items:center;gap:10px}
.hero-bg,.pill .bg,.tbs-card .bg{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04)}
.hero .hero-bg{z-index:0}.hero .scrim{z-index:1;background:linear-gradient(90deg,rgba(8,7,7,.86),rgba(8,7,7,.52))}.hero-in{position:relative;z-index:2}
.nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}.nav a{color:rgba(255,255,255,.74);font-size:14.5px;text-decoration:none}.nav a:hover,.nav .current-menu-item>a{color:#fff}
.nav .current-menu-item>a{position:relative}.nav .current-menu-item>a:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1.5px;background:var(--maroon-bright)}
.hero-label{font-family:var(--mono);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.66);margin-bottom:16px}
.photo.has-image:before,.photo.has-image:after{display:none}.pill .veil,.tbs-card .veil{z-index:1}
.pill{border-color:rgba(255,255,255,.24)}.tbs-card{border-color:rgba(255,255,255,.22)}
.pillar-detail{color:rgba(255,255,255,.62)!important;font-size:13.5px!important}
.invest{text-decoration:none}
.reason{background:#fff}.client-logo{height:54px;width:auto;max-width:180px;object-fit:contain;filter:grayscale(1);opacity:.66}
.roster-section{background:var(--paper-2);padding-block:64px}.roster-title{display:flex;justify-content:center;margin-bottom:30px}
.callback-form{display:flex;flex-direction:column;gap:11px}.honeypot{position:absolute!important;left:-9999px!important}
.form-status{border-radius:10px;padding:12px 14px;margin-bottom:16px}.form-status.success{background:#e7f5eb;color:#175e2f}.form-status.error{background:#fbe9ec;color:#7b1526}
.booking-link{align-self:flex-start}.cal-placeholder{display:grid;place-items:center;min-height:250px;text-align:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:28px}
.booking-mark{font-family:var(--serif);font-size:34px;color:#fff;margin-bottom:12px}.booking-link-note{color:rgba(255,255,255,.65);font-size:13px;margin-top:10px}
.connect-side{display:flex;flex-direction:column;gap:14px}.office-box{margin-top:14px}.office a{color:inherit;text-decoration:none}.office a:hover{color:var(--maroon-bright)}
.modal-back[hidden]{display:none!important}.modal-back{display:grid}.modal .field input{color:#fff}.modal .notice{font-size:13px;color:var(--maroon-bright)}
.modal form{display:flex;flex-direction:column;gap:15px}.modal-open{overflow:hidden}.foot-contact b{display:block;font-weight:500;color:#fff;margin-bottom:6px}.socials span{font-family:var(--mono);font-size:11px;font-weight:500}
.generic-page{min-height:60vh;padding-top:96px}.generic-page .entry-content{max-width:760px}.generic-page h1{font-family:var(--serif);font-size:clamp(36px,5vw,56px);font-weight:400}.generic-page h2,.generic-page h3{font-family:var(--serif);font-weight:400}.generic-page a{color:var(--maroon)}
.skip-link{position:absolute;left:-9999px;top:auto}.skip-link:focus{left:18px;top:18px;z-index:1000;background:#fff;color:#000;padding:10px 14px;border-radius:6px}
.ring-node{--x:0px;--y:0px;transform:translate(var(--x),var(--y))}.ring-node.step-0{--x:0px;--y:-190px}.ring-node.step-1{--x:165px;--y:-95px}.ring-node.step-2{--x:165px;--y:95px}.ring-node.step-3{--x:0px;--y:190px}.ring-node.step-4{--x:-165px;--y:95px}.ring-node.step-5{--x:-165px;--y:-95px}
@media(max-width:900px){.nav ul{flex-direction:column;gap:0}.nav li{border-bottom:1px solid rgba(255,255,255,.07)}.nav a{display:block;padding:13px 0}.nav .current-menu-item>a:after{display:none}}
@media(max-width:782px){body.admin-bar .site-head{top:46px}}
@media(max-width:520px){.hero{min-height:560px}.hero h1{font-size:38px}.pill-body{display:flex!important}.pill-closed-label{display:none!important}.pill{min-height:430px}.marquee-track{gap:38px}.client-logo{height:42px}.foot-bottom nav{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.marquee-track{animation:none}}


/* --- brand monochrome treatment --- */
.hero-bg,
.pill .bg,
.tbs-card .bg {
  filter: grayscale(1) contrast(1.06) brightness(0.96);
}

/* --- wordmark --- */
.brand-mark{display:block;height:60px;width:auto;max-width:none}
.foot-mark{display:block;height:72px;width:auto;max-width:none;margin-bottom:18px}
@media (max-width:900px){.brand-mark{height:50px}}
@media (max-width:520px){.brand-mark{height:42px}.foot-mark{height:60px}}

/* --- cookie bar --- */
.cookie-bar{position:fixed;left:0;right:0;bottom:0;z-index:120;background:rgba(14,13,12,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.14);padding:16px 0 calc(16px + env(safe-area-inset-bottom,0px))}
.cookie-in{max-width:1180px;margin:0 auto;padding-inline:24px;display:flex;align-items:center;gap:18px 28px;flex-wrap:wrap;justify-content:space-between}
.cookie-in p{margin:0;color:rgba(255,255,255,.80);font-size:14px;line-height:1.55;max-width:70ch}
.cookie-in a{color:#E04B63}
.cookie-actions{display:flex;gap:10px;flex-shrink:0}
.cookie-actions .btn{padding:10px 20px;font-size:14px}
@media (max-width:640px){.cookie-in{padding-inline:18px}.cookie-actions{width:100%}.cookie-actions .btn{flex:1;justify-content:center}}

/* --- footer refinements --- */
.foot-brand{text-align:center;display:flex;flex-direction:column;align-items:center}
.foot-brand .foot-mark{margin-inline:auto}
.foot-brand p{text-align:center}
.foot-bottom{padding-inline:8px}
.foot-bottom>span{padding-left:16px}
.foot-bottom>nav{padding-right:16px}
@media (max-width:880px){.foot-bottom{justify-content:center;text-align:center}.foot-bottom>span,.foot-bottom>nav{padding:0}}

/* client roster: full colour, even slots */
.marquee img,.client-logo{filter:none!important;opacity:1!important}
.marquee-track{align-items:center;gap:0}
.client-logo{height:44px;width:auto;max-width:150px;object-fit:contain;margin-inline:34px;flex:0 0 auto;transition:transform .25s ease}
.marquee img:hover,.client-logo:hover{transform:scale(1.06)}
@media (max-width:640px){.client-logo{height:36px;max-width:120px;margin-inline:22px}}
.marquee .client-logo{height:46px;max-width:140px;mix-blend-mode:multiply}
@media (max-width:640px){.marquee .client-logo{height:36px;max-width:112px}}

/* --- roster optical sizing --- */
.marquee .client-logo{height:46px;max-width:150px;margin-inline:32px;mix-blend-mode:multiply;object-fit:contain}
.marquee .client-logo[alt="Sawa Media"]{height:88px;max-width:240px}
.marquee .client-logo[alt="SunGate Solar"]{height:36px;max-width:130px;transform:translateY(-6px)}
.marquee .client-logo[alt="ICOC South Sudan"]{height:52px;max-width:150px}
.marquee .client-logo[alt="DigniPads"]{height:50px;max-width:140px}
.marquee .client-logo[alt="Leading Star"]{height:46px;max-width:130px}
@media (max-width:640px){
  .marquee .client-logo{height:36px;max-width:112px;margin-inline:20px}
  .marquee .client-logo[alt="Sawa Media"]{height:66px;max-width:180px}
  .marquee .client-logo[alt="SunGate Solar"]{height:28px;max-width:100px}
  .marquee .client-logo[alt="ICOC South Sudan"]{height:41px}
  .marquee .client-logo[alt="DigniPads"]{height:39px}
}

/* === v2 readability and design pass === */
:root{--serif:"Source Serif 4",Georgia,"Times New Roman",serif;--sans:"Source Sans 3","Helvetica Neue",Arial,sans-serif;--ink-soft:#4A4541;}
body{font-family:var(--sans);font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
h1,h2,h3,h4{font-family:var(--serif);}

/* contrast: body copy */
.sec-head p{color:var(--ink-soft);font-size:17px;}
.on-dark .sec-head p{color:rgba(255,255,255,.84);}
.r-text p,.sys p{color:var(--ink-soft);font-size:16px;}
.item p,.pso-row span,.cbox p{color:rgba(255,255,255,.86);font-size:16px;}
.pso-row b,.item .kicker{color:rgba(255,255,255,.62);}
.hero p.lede{color:rgba(255,255,255,.90);font-size:18px;line-height:1.6;max-width:56ch;}
.foot-brand p,.foot-contact{color:rgba(255,255,255,.80);}
.eyebrow{color:var(--ink-soft);}
.cookie-in p{color:rgba(255,255,255,.88);}

/* hero: two lines, larger measure */
.hero h1{font-weight:600;font-size:clamp(30px,3.7vw,46px);line-height:1.16;letter-spacing:-.015em;max-width:min(100%,44ch);}
.hero h1 em{font-style:italic;font-weight:400;}
@media (max-width:900px){.hero h1{max-width:min(100%,22ch);font-size:clamp(28px,5.2vw,38px);}}
h2.display{font-weight:600;letter-spacing:-.012em;}
h2.display em{font-style:italic;font-weight:400;}

/* === Why Choose Us: dark glass, editorial numerals === */
.reason,.reason.glass-light{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14);border-radius:20px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:border-color .35s ease,transform .35s cubic-bezier(.22,.8,.3,1);}
.reason:hover{border-color:rgba(224,75,99,.45);transform:translateY(-3px);}
.r-text{padding:40px 44px;gap:14px;position:relative;}
.r-text .num{font-family:var(--serif);font-size:54px;line-height:1;font-weight:400;color:rgba(255,255,255,.16);letter-spacing:-.02em;margin-bottom:2px;}
.r-text h3{font-size:30px;font-weight:600;color:#fff;line-height:1.16;letter-spacing:-.01em;}
.r-text h3::after{content:"";display:block;width:34px;height:2px;background:var(--maroon-bright);margin-top:14px;}
.r-text p{color:rgba(255,255,255,.80);font-size:16px;max-width:54ch;}
.r-art{background:transparent;border-left:1px solid rgba(255,255,255,.10);padding:32px;}
.r-art svg{stroke:rgba(255,255,255,.34);max-width:170px;}
.reason:hover .r-art svg{stroke:rgba(224,75,99,.60);transition:stroke .35s ease;}
@media (max-width:760px){.r-text{padding:30px 24px;}.r-art{border-left:0;border-top:1px solid rgba(255,255,255,.10);}}

/* === Process ring: refined === */
.ring::before{content:"";position:absolute;inset:12%;border-radius:50%;border:1px solid rgba(255,255,255,.12);pointer-events:none;}
.ring-node{width:98px;height:98px;margin:-49px 0 0 -49px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.20);font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.01em;color:rgba(255,255,255,.86);line-height:1.25;padding:6px;}
.ring-node span{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;opacity:.55;margin-bottom:4px;}
.ring-node:hover{border-color:rgba(255,255,255,.48);background:rgba(255,255,255,.09);color:#fff;}
.ring-node.on{background:var(--maroon);border-color:var(--maroon);color:#fff;box-shadow:0 10px 34px rgba(139,26,43,.45);}
.ring-node.on span{opacity:.75;}
.ring-core{inset:25%;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);gap:10px;padding:24px;}
.ring-core h4{font-size:26px;font-weight:600;color:#fff;letter-spacing:-.01em;}
.ring-core h4::before{content:"";display:block;width:26px;height:2px;background:var(--maroon-bright);margin:0 auto 12px;}
.ring-core p{font-size:14px;color:rgba(255,255,255,.82);line-height:1.5;max-width:26ch;}
.ring-list button{border-radius:14px;padding:18px 20px;}
.ring-list b{font-family:var(--serif);font-size:17px;font-weight:600;margin-bottom:5px;}
.ring-list small{color:rgba(255,255,255,.80);}
.ring-list button.on{box-shadow:0 8px 26px rgba(139,26,43,.4);}

/* === footer middle column === */
.foot-col{text-align:left;}
.foot-col h5.h5-accent{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--maroon-bright);margin:0 0 16px;font-weight:500;}
.foot-col .sub-btn{display:inline-flex;align-items:center;margin:0;}
.foot-contact{margin-top:22px;text-align:left;}
.foot-contact b{display:block;font-weight:600;color:#fff;margin-bottom:6px;font-family:var(--sans);}



/* ---------- v2.2: closing CTA band, engagements, insights ---------- */
.cta-band{background:var(--ink);color:#fff;text-align:center;padding-block:clamp(64px,9vw,108px)}
.cta-band h2.display{color:#fff;margin-bottom:18px}
.cta-band h2.display em{color:var(--maroon-bright)}
.cta-band p{max-width:58ch;margin:0 auto 30px;color:rgba(255,255,255,.74);font-size:17px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.engagements{padding-block:clamp(72px,9vw,112px)}
.eng-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px}
.eng-card{background:#fff;border:1px solid var(--hairline);border-radius:18px;padding:26px 26px 28px;display:flex;flex-direction:column;gap:16px}
.eng-top{display:flex;align-items:center;gap:14px}
.eng-logo{width:56px;height:56px;object-fit:contain;border-radius:12px;background:var(--paper);padding:6px;flex:none}
.eng-card h3{font-family:var(--serif);font-weight:600;font-size:21px;line-height:1.2;margin:0}
.eng-note{display:block;margin-top:3px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey)}
.eng-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.eng-tags li{font-size:12.5px;line-height:1.3;padding:5px 11px;border-radius:100px;border:1px solid var(--hairline);color:var(--ink-2);background:var(--paper)}
.eng-card p{margin:0;color:var(--grey);font-size:15.5px}
.post-meta{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);margin:0 0 22px}
.insights-intro{max-width:760px;margin:0 auto 40px;text-align:center}
.insights-intro h1{margin-bottom:14px}
.insights-intro p{color:var(--grey);font-size:17px;margin:0}
.post-list{display:grid;gap:18px;max-width:860px;margin:0 auto;padding-bottom:clamp(40px,6vw,72px)}
.post-card{background:#fff;border:1px solid var(--hairline);border-radius:18px;padding:28px 30px}
.post-card .post-meta{margin-bottom:8px}
.generic-page .post-card h2{font-size:clamp(22px,2.6vw,28px);line-height:1.2;margin:0 0 10px}
.generic-page .post-card h2 a{color:var(--ink);text-decoration:none}
.generic-page .post-card h2 a:hover{color:var(--maroon)}
.post-card p{margin:0 0 14px;color:var(--grey)}
.generic-page .post-card .read-more{font-weight:600;text-decoration:none}
@media (max-width:520px){.eng-card,.post-card{padding:22px}}
.eng-next{background:var(--ink);border-color:var(--ink);color:#fff;text-decoration:none;justify-content:center;transition:background .24s}
.eng-next:hover{background:var(--ink-2)}
.eng-next .eng-note{color:rgba(255,255,255,.6);margin:0}
.eng-next h3{color:#fff}
.eng-next p{color:rgba(255,255,255,.72)}
.eng-link{display:inline-flex;align-items:center;gap:9px;color:var(--maroon-bright);font-weight:600;font-size:15px}
.insights-intro h1{line-height:1.12;text-wrap:balance}
.generic-page article > h1{line-height:1.12;text-wrap:balance}


/* ---------- v2.3: readability and polish pass ---------- */
/* Header: solid, not muddy grey over light pages */
.site-head{background:rgba(14,13,12,.94)}
.head-cta:hover{background:var(--maroon);border-color:var(--maroon)}
/* Dark sections: accent italics and supporting copy must be legible */
.photo h2.display em,.on-dark h2.display em,.cta-band h2.display em{color:var(--maroon-bright)}
.photo .sec-head p,.photo .sec-head > p{color:rgba(255,255,255,.84)}
/* Small labels: larger, calmer tracking, stronger colour */
.eyebrow,.hero-label{font-size:12px;letter-spacing:.22em}
.eyebrow.on-dark,.hero-label{color:rgba(255,255,255,.78)}
.item .kicker,.pso-row b{font-size:11.5px;letter-spacing:.14em;color:rgba(255,255,255,.72)}
.sys dt{font-size:11.5px;letter-spacing:.12em;color:var(--grey)}
.sys dl{font-size:14.5px}
.sys dd{color:var(--ink-2)}
.field label{font-size:11.5px;letter-spacing:.12em;color:rgba(255,255,255,.76)}
.cbox b{font-size:11.5px;letter-spacing:.12em;color:rgba(255,255,255,.72)}
.tbs-in .sub{font-size:12px;letter-spacing:.16em;color:rgba(255,255,255,.8)}
.eng-note,.post-meta{font-size:11.5px;letter-spacing:.12em}
/* Solutions: outcome is the key line — make it the clearest, not the faintest */
.pso-row.out span{color:#fff;font-weight:600}
.pso-row.out b{color:var(--maroon-bright)}
.price{font-family:var(--sans);font-size:15.5px;font-weight:600;letter-spacing:0}
.price em{color:rgba(255,255,255,.66);font-weight:400}
/* Pillars: body copy over photography */
.pill-body p{font-size:15.5px;color:rgba(255,255,255,.86)}
.pillar-detail{color:rgba(255,255,255,.8)!important;font-size:15px!important}
.pill-closed-label .vert{font-size:10.5px;letter-spacing:.14em}
/* Comfortable line length on long-form dark cards */
.item p,.pso-row span{max-width:72ch}
/* Article buttons: brand maroon, white text */
.generic-page .wp-block-button__link,.entry-content .wp-block-button__link{background:var(--maroon);color:#fff!important;text-decoration:none;font-weight:600;padding:14px 28px;transition:background .2s}
.generic-page .wp-block-button__link:hover{background:var(--maroon-deep)}
.entry-content > article > p,.entry-content li{max-width:68ch}
.generic-page .entry-content h2{margin-top:2.2em}
.cost b,.office div b,.foot-col h5{font-size:11.5px;letter-spacing:.14em;color:rgba(255,255,255,.72)}
.pso-row.out b{color:#F2899A}


/* ---------- v2.4: Phase 1 premium pass ---------- */
/* Labels: sans small caps instead of monospace */
:root{--mono:var(--sans)}
.eyebrow,.hero-label,.item .kicker,.cost b,.pso-row b,.sys dt,.field label,.office div b,.foot-col h5,.eng-note,.post-meta,.tbs-in .sub,.roster-title{font-weight:600}
/* Cards: calmer, more corporate geometry */
.card{background:#fff;border:1px solid var(--hairline);border-radius:10px;box-shadow:0 1px 2px rgba(14,13,12,.04)}
.eng-card,.post-card,.cbox,.reason,.reason.glass-light,.tbs-card,.sys{border-radius:10px}
/* Problems + Solutions: light reading surface */
.list-section{padding-block:clamp(64px,8vw,104px)}
.list-section .stack{gap:18px}
.list-section .item{padding:34px 38px;transition:border-color .2s}
.list-section .item:hover{border-color:#C9C1B8}
.list-section .item h3{color:var(--ink);font-weight:600}
.list-section .item p,.list-section .pso-row span{color:var(--ink-soft)}
.list-section .item .kicker,.list-section .cost b,.list-section .pso-row b{color:var(--grey)}
.list-section .cost{border-top-color:var(--hairline);color:var(--maroon);font-weight:600}
.list-section .icon svg{stroke:var(--maroon)}
.list-section .pso-row.out span{color:var(--ink);font-weight:600}
.list-section .pso-row.out b{color:var(--maroon)}
.list-section .price{border-top-color:var(--hairline);color:var(--ink)}
.list-section .price em{color:var(--grey)}
/* Methodology systems cards */
.sys.card{padding:30px 32px}
/* Pillars: static 2x2 grid */
.pillar-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.pillar-card{background:#fff;border:1px solid var(--hairline);border-radius:10px;padding:34px 36px;display:flex;flex-direction:column;gap:14px;box-shadow:0 1px 2px rgba(14,13,12,.04)}
.pillar-card .num{font-size:13px;font-weight:600;color:var(--maroon);letter-spacing:.14em;display:flex;align-items:center;gap:12px}
.pillar-card .num::after{content:"";width:28px;height:1px;background:var(--maroon)}
.pillar-card h3{font-family:var(--serif);font-weight:600;font-size:clamp(22px,2.4vw,27px);line-height:1.2;margin:0;color:var(--ink)}
.pillar-card .promise{margin:0;color:var(--ink);font-weight:600;font-size:16.5px}
.pillar-card .detail{margin:0;color:var(--ink-soft);font-size:15.5px;line-height:1.6}
.pillar-card .checks{flex:1;margin-top:2px}
.pillar-card .checks li{color:var(--ink-2);font-size:15px}
.pillar-card .checks i{color:#fff;font-size:10px;font-style:normal}
.pillar-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-top:8px;padding-top:18px;border-top:1px solid var(--hairline)}
.pillar-foot .from{font-size:15px;color:var(--ink-soft)}
.pillar-foot .from b{color:var(--ink);font-size:17px}
.pillar-link{color:var(--maroon);font-weight:600;text-decoration:none;display:inline-flex;gap:8px;align-items:center;font-size:15px}
.pillar-link:hover{color:var(--maroon-deep)}
@media (max-width:860px){.pillar-grid{grid-template-columns:1fr}.pillar-card{padding:26px 24px}}
/* Logos: single static row */
.logo-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:28px 64px}
.logo-row .client-logo{margin:0;height:44px;max-width:150px;object-fit:contain;mix-blend-mode:multiply;filter:grayscale(1)!important;opacity:.8!important;transition:filter .25s,opacity .25s}
.logo-row .client-logo:hover{filter:none!important;opacity:1!important;transform:none}
.logo-row .client-logo[alt="Sawa Media"]{height:64px;max-width:170px}
.logo-row .client-logo[alt="SunGate Solar"]{height:30px;max-width:110px}
.logo-row .client-logo[alt="ICOC South Sudan"]{height:44px}
.logo-row .client-logo[alt="DigniPads"]{height:42px}
/* Connect: solid cards, inline booking */
.connect-section .cbox.glass{background:var(--ink-2);border-color:rgba(255,255,255,.12);backdrop-filter:none;-webkit-backdrop-filter:none}
.cal-embed{background:#fff;border-radius:8px;overflow:hidden;margin-top:4px}
.cal-embed iframe{display:block;width:100%;height:700px;border:0}
.booking-box .booking-link-note a{color:#fff}
@media (max-width:900px){.cal-embed iframe{height:760px}}
.list-section .stack{max-width:980px;margin-inline:auto}
.logo-row{gap:32px 72px}
.logo-row .client-logo{height:52px;max-width:170px}
.logo-row .client-logo[alt="Sawa Media"]{height:78px;max-width:200px}
.logo-row .client-logo[alt="SunGate Solar"]{height:36px;max-width:130px}
.logo-row .client-logo[alt="ICOC South Sudan"]{height:54px}
.logo-row .client-logo[alt="DigniPads"]{height:56px}
.logo-row .client-logo[alt="Leading Star"]{height:50px}


/* ---------- v2.5: reasons row, engagements accordion, waitlist ---------- */
/* Reasons: one row, three columns */
.reasons-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.reason-card{position:relative;padding:38px 32px 40px;border-radius:12px;background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.12);overflow:hidden;isolation:isolate;transition:transform .55s cubic-bezier(.2,.8,.2,1),border-color .45s ease,box-shadow .55s ease}
.reason-card::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 90% at 50% 0%,rgba(224,75,99,.18),transparent 62%);opacity:0;transition:opacity .55s ease}
.rc-icon svg{width:54px;height:54px;stroke:rgba(255,255,255,.72);transition:stroke .45s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.rc-num{display:block;margin:28px 0 10px;font-size:13px;font-weight:600;letter-spacing:.16em;color:var(--maroon-bright)}
.reason-card h3{font-family:var(--serif);font-weight:600;font-size:clamp(22px,2.2vw,26px);line-height:1.2;color:#fff;margin:0 0 12px}
.reason-card p{margin:0;color:rgba(255,255,255,.82);font-size:15.5px;line-height:1.65}
.rc-line{position:absolute;left:32px;right:32px;bottom:0;height:2px;background:var(--maroon-bright);transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
html.js-reveal .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1),border-color .45s ease,box-shadow .55s ease}
html.js-reveal .reveal.in{opacity:1;transform:none;transition-delay:var(--d,0ms)}
html.js-reveal .reveal.done{transition-delay:0ms;transition:transform .55s cubic-bezier(.2,.8,.2,1),border-color .45s ease,box-shadow .55s ease}
.reason-card:hover,html.js-reveal .reason-card.reveal.done:hover{transform:translateY(-8px);border-color:rgba(224,75,99,.55);box-shadow:0 28px 56px -28px rgba(0,0,0,.8)}
.reason-card:hover::before{opacity:1}
.reason-card:hover .rc-icon svg{stroke:var(--maroon-bright);transform:scale(1.08)}
.reason-card:hover .rc-line{transform:scaleX(1)}
@media (max-width:900px){.reasons-row{grid-template-columns:1fr;gap:14px}.reason-card{padding:30px 26px 32px}}
/* Engagements: compact accordion */
.engagements{padding-block:clamp(64px,8vw,100px)}
.engagements .sec-head{margin-bottom:36px}
.eng-acc{display:flex;gap:10px;height:300px}
.eng-panel{position:relative;flex:0 0 92px;border-radius:12px;background:var(--ink);color:#fff;overflow:hidden;cursor:pointer;outline-offset:3px;transition:flex-basis .75s cubic-bezier(.22,.8,.3,1),flex-grow .75s cubic-bezier(.22,.8,.3,1),background .4s ease}
.eng-panel.open{flex:1 1 auto;cursor:default;background:radial-gradient(90% 120% at 100% 0%,rgba(139,26,43,.35),transparent 60%),var(--ink)}
.eng-panel.closed:hover{background:var(--ink-2)}
.eng-closed{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;gap:20px;padding:22px 0;transition:opacity .35s ease}
.eng-panel.open .eng-closed{opacity:0;pointer-events:none}
.eng-vert{writing-mode:vertical-rl;transform:rotate(180deg);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.82);white-space:nowrap}
.eng-logo{width:52px;height:52px;border-radius:10px;background:#fff;padding:6px;object-fit:contain;flex:none}
.eng-open{position:absolute;inset:0;padding:36px 44px;display:flex;flex-direction:column;justify-content:center;gap:16px;width:min(640px,100%);opacity:0;transform:translateX(16px);pointer-events:none;transition:opacity .35s ease,transform .5s cubic-bezier(.2,.8,.2,1)}
.eng-panel.open .eng-open{opacity:1;transform:none;pointer-events:auto;transition:opacity .5s ease .28s,transform .7s cubic-bezier(.2,.8,.2,1) .28s}
.eng-open .eng-top{display:flex;align-items:center;gap:16px}
.eng-open h3{font-family:var(--serif);font-weight:600;font-size:clamp(24px,2.6vw,30px);line-height:1.15;margin:0;color:#fff}
.eng-open .eng-note{color:rgba(255,255,255,.66)}
.eng-open .eng-tags li{background:transparent;border-color:rgba(255,255,255,.22);color:rgba(255,255,255,.88)}
.eng-open p{margin:0;color:rgba(255,255,255,.84);font-size:16px;line-height:1.6;max-width:56ch}
.eng-acc.running:not(.touched) .eng-panel.open::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--maroon-bright);transform-origin:left;animation:engProgress 7s linear forwards}
@keyframes engProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.eng-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px 24px;margin-top:34px}
.eng-foot p{margin:0;font-family:var(--serif);font-size:clamp(20px,2.2vw,24px);color:var(--ink)}
@media (max-width:860px){
  .eng-acc{flex-direction:column;height:auto;gap:8px}
  .eng-panel{flex:0 0 auto}
  .eng-closed{position:relative;flex-direction:row;padding:12px 16px;gap:14px}
  .eng-vert{writing-mode:horizontal-tb;transform:none}
  .eng-closed .eng-logo{width:42px;height:42px}
  .eng-panel.open .eng-closed{display:none}
  .eng-open{position:relative;width:auto;padding:26px 22px;display:none}
  .eng-panel.open .eng-open{display:flex}
}
@media (prefers-reduced-motion:reduce){.eng-panel,.eng-open,.reason-card,.rc-line,.rc-icon svg{transition:none!important}}
/* Newsletter waitlist */
.nl-note{margin:0 0 14px;color:rgba(255,255,255,.76);font-size:14.5px;line-height:1.55;max-width:34ch}
.nl-badge{display:inline-block;margin:0 0 12px;padding:5px 12px;border-radius:100px;background:rgba(139,26,43,.12);color:var(--maroon);font-size:12px;font-weight:600;letter-spacing:.08em}
.nl-fine{margin:6px 0 0;font-size:12.5px;color:var(--grey)}
.nl-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:90;max-width:min(560px,calc(100% - 32px));background:var(--ink);color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:14px 20px;font-size:15px;box-shadow:0 18px 40px -18px rgba(0,0,0,.6)}
.nl-toast.error{border-color:var(--maroon-bright)}
.modal .nl-badge{align-self:flex-start;width:max-content;background:rgba(224,75,99,.16);color:#F2A1AE;border:1px solid rgba(224,75,99,.35)}
.modal .nl-fine{color:rgba(255,255,255,.66)}
@media (max-width:860px){.eng-acc.running .eng-panel.open::after{display:none}}
