/*
Theme Name: Oktnx 2026
Theme URI: https://oktnx.com
Author: Oktnx
Description: Custom editorial "privacy ledger" theme for Oktnx.com — cool slate-grey base, burnt-orange/tangerine structural accent, Newsreader serif + IBM Plex Mono technical labels. Built from scratch for a privacy-first analytics publication.
Version: 1.0.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: oktnx-2026
*/

/* ============================================================
   DESIGN TOKENS — "privacy ledger"
   Slate-grey base · burnt-orange/tangerine accent · mono labels
   ============================================================ */
:root{
  --ink:        #1c1f26;   /* near-black slate ink */
  --ink-soft:   #2c313c;
  --mute:       #5b6472;   /* muted slate */
  --mute-2:     #5E6573;
  --paper:      #f4f5f3;   /* warm off-white */
  --paper-2:    #ecedea;   /* slightly deeper panel */
  --card:       #ffffff;
  --rule:       #d9dad5;   /* hairline rules */
  --rule-2:     #e7e8e4;
  --slate-dark: #181b21;   /* dark sections / footer */
  --slate-900:  #14171c;

  --burnt:      #A63509;   /* burnt orange — primary accent */
  --tang:       #EA6A2A;   /* tangerine — bright accent */
  --tang-soft:  #fbe9dd;   /* faint orange wash */
  --tang-line:  #f1c4a4;

  --maxw: 1180px;
  --readw: 720px;
  --radius: 2px;

  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --mono:  "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--serif);
  font-size:19px;
  line-height:1.66;
  color:var(--ink);
  background:var(--paper);
  font-synthesis-weight:none;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--burnt); text-decoration:none; }
a:hover{ text-decoration:underline; text-underline-offset:3px; }
hr{ border:0; border-top:1px solid var(--rule); margin:2.4rem 0; }

h1,h2,h3,h4,h5{
  font-family:var(--serif);
  font-weight:560;
  line-height:1.18;
  color:var(--ink);
  letter-spacing:-0.01em;
  margin:0 0 .5em;
}
h1{ font-size:clamp(2.1rem,5vw,3.25rem); }
h2{ font-size:clamp(1.55rem,3.2vw,2.1rem); }
h3{ font-size:1.32rem; }
p{ margin:0 0 1.15em; }

::selection{ background:var(--tang); color:#fff; }

.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 28px; }

/* mono utility labels — the technical motif */
.eyebrow{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--burnt);
  font-weight:500;
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  margin:0 0 1rem;
}
.eyebrow::before{
  content:"";
  width:22px; height:0; border-top:2px solid var(--tang);
  display:inline-block;
}
.mono{ font-family:var(--mono); }

/* skip link */
.skip-link{ position:absolute; left:-9999px; }
.skip-link:focus{
  left:12px; top:12px; z-index:1000; background:var(--ink); color:#fff;
  padding:10px 16px; font-family:var(--mono); font-size:.8rem;
}

/* ============================================================
   HEADER / MASTHEAD
   ============================================================ */
.site-header{
  background:var(--paper);
  border-bottom:1px solid var(--rule);
  position:sticky; top:0; z-index:200;
}
.masthead{
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; min-height:72px;
}
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; }
.brand:hover{ text-decoration:none; }
.brand-mark{ width:30px; height:30px; flex:0 0 auto; }
.brand-text{ display:flex; flex-direction:column; line-height:1; }
.brand-name{
  font-family:var(--serif); font-weight:600; font-size:1.32rem;
  color:var(--ink); letter-spacing:-.01em;
}
.brand-tag{
  font-family:var(--mono); font-size:.6rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--mute); margin-top:3px;
}

.primary-nav ul{ list-style:none; display:flex; gap:30px; margin:0; padding:0; }
.primary-nav a{
  font-family:var(--mono); font-size:.78rem; letter-spacing:.04em;
  text-transform:uppercase; color:var(--ink-soft); padding:6px 0;
  position:relative;
}
.primary-nav a:hover{ color:var(--burnt); text-decoration:none; }
.primary-nav .current-menu-item > a,
.primary-nav .current_page_item > a{ color:var(--burnt); }
.primary-nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-1px; height:2px;
  background:var(--tang); transition:right .2s ease;
}
.primary-nav a:hover::after,
.primary-nav .current-menu-item > a::after,
.primary-nav .current_page_item > a::after{ right:0; }

.nav-toggle{
  display:none; background:none; border:1px solid var(--rule);
  width:42px; height:38px; cursor:pointer; padding:0;
  align-items:center; justify-content:center; border-radius:var(--radius);
}
.nav-toggle span{ display:block; width:18px; height:2px; background:var(--ink); position:relative; }
.nav-toggle span::before,.nav-toggle span::after{
  content:""; position:absolute; left:0; width:18px; height:2px; background:var(--ink);
}
.nav-toggle span::before{ top:-6px; } .nav-toggle span::after{ top:6px; }

/* ============================================================
   HERO / FRONT PAGE
   ============================================================ */
.hero{
  background:var(--slate-dark);
  color:#eef0ee;
  border-bottom:3px solid var(--burnt);
  position:relative;
  overflow:hidden;
}
.hero::after{
  /* faint ledger grid motif */
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:linear-gradient(var(--rule-grid) 1px,transparent 1px),
                   linear-gradient(90deg,var(--rule-grid) 1px,transparent 1px);
  --rule-grid:rgba(255,255,255,.035);
  background-size:34px 34px;
}
.hero-inner{ position:relative; z-index:1; padding:88px 0 78px; max-width:860px; }
.hero .eyebrow{ color:var(--tang); }
.hero .eyebrow::before{ border-top-color:var(--tang); }
.hero h1{ color:#fff; font-size:clamp(2.4rem,6vw,4rem); font-weight:560; margin-bottom:.4em; }
.hero h1 em{ font-style:italic; color:var(--tang); }
.hero-lead{
  font-size:1.28rem; color:#c4c8cd; max-width:620px; line-height:1.55; margin-bottom:2rem;
}
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; }

.btn{
  font-family:var(--mono); font-size:.8rem; letter-spacing:.04em; text-transform:uppercase;
  padding:14px 26px; border-radius:var(--radius); display:inline-block; cursor:pointer;
  border:1px solid transparent; transition:background .15s,color .15s,border-color .15s;
}
.btn:hover{ text-decoration:none; }
.btn-primary{ background:var(--burnt); color:#fff; border-color:var(--burnt); }
.btn-primary:hover{ background:var(--tang); border-color:var(--tang); }
.btn-ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.4); }
.btn-ghost:hover{ border-color:var(--tang); color:var(--tang); }
.btn-dark{ background:var(--ink); color:#fff; border-color:var(--ink); }
.btn-dark:hover{ background:var(--burnt); border-color:var(--burnt); }

/* hero stat ledger */
.hero-ledger{
  display:flex; flex-wrap:wrap; gap:0; margin-top:48px;
  border-top:1px solid rgba(255,255,255,.13);
}
.hero-ledger .led{
  padding:20px 30px 0 0; margin-right:30px;
  border-right:1px solid rgba(255,255,255,.1);
}
.hero-ledger .led:last-child{ border-right:0; margin-right:0; }
.led-num{ font-family:var(--mono); font-size:1.7rem; color:var(--tang); font-weight:500; }
.led-lab{ font-family:var(--mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:#9aa2b1; margin-top:4px; }

/* ============================================================
   SECTIONS
   ============================================================ */
.section{ padding:72px 0; }
.section-alt{ background:var(--paper-2); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.section-head{ max-width:680px; margin-bottom:42px; }
.section-head h2{ margin-bottom:.35em; }
.section-head p{ color:var(--mute); font-size:1.1rem; margin:0; }

/* value pillars — bordered ledger cells, NOT soft cards */
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:1px solid var(--rule); background:var(--card); }
.pillar{
  padding:34px 30px; border-right:1px solid var(--rule); position:relative;
}
.pillar:last-child{ border-right:0; }
.pillar-idx{ font-family:var(--mono); font-size:.7rem; color:var(--burnt); letter-spacing:.1em; }
.pillar h3{ margin:.7rem 0 .5rem; font-size:1.25rem; }
.pillar p{ color:var(--mute); font-size:1rem; margin:0; line-height:1.6; }
.pillar::before{ content:""; position:absolute; top:0; left:0; width:36px; height:3px; background:var(--burnt); }

/* ============================================================
   ARTICLE CARDS (archive / latest)
   ============================================================ */
.post-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); }
.post-grid.cols-2{ grid-template-columns:repeat(2,1fr); }
.card{
  background:var(--card); display:flex; flex-direction:column;
  transition:background .15s;
}
.card:hover{ background:#fff; }
.card-media{ aspect-ratio:16/9; overflow:hidden; background:var(--paper-2); border-bottom:1px solid var(--rule); }
.card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.card:hover .card-media img{ transform:scale(1.04); }
.card-media.noimg{
  display:flex; align-items:center; justify-content:center;
  background:var(--slate-dark);
}
.card-media.noimg .ph{
  font-family:var(--mono); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--tang); opacity:.8;
}
.card-body{ padding:24px 26px 28px; display:flex; flex-direction:column; flex:1; }
.card-meta{ font-family:var(--mono); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--mute-2); margin-bottom:.8rem; display:flex; gap:10px; align-items:center; }
.card-meta .cat{ color:var(--burnt); }
.card h3{ font-size:1.3rem; line-height:1.25; margin:0 0 .55rem; }
.card h3 a{ color:var(--ink); }
.card h3 a:hover{ color:var(--burnt); text-decoration:none; }
.card-excerpt{ color:var(--mute); font-size:1rem; line-height:1.55; margin:0 0 1.1rem; }
.card-more{ margin-top:auto; font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--burnt); }
.card-more::after{ content:" →"; }

/* ============================================================
   SINGLE POST
   ============================================================ */
.post-header{ border-bottom:1px solid var(--rule); padding:60px 0 40px; }
.post-header .wrap{ max-width:var(--readw); }
.post-cat{ font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--burnt); }
.post-title{ font-size:clamp(2rem,4.5vw,3rem); margin:.5rem 0 .8rem; }
.post-byline{
  display:flex; flex-wrap:wrap; align-items:center; gap:14px;
  font-family:var(--mono); font-size:.74rem; letter-spacing:.04em; text-transform:uppercase; color:var(--mute);
  margin-top:1rem; padding-top:1rem; border-top:1px solid var(--rule);
}
.post-byline .sep{ color:var(--rule); }
.post-byline strong{ color:var(--ink); font-weight:600; }

.post-hero-img{ margin:0 0 0; border-bottom:1px solid var(--rule); }
.post-hero-img img{ width:100%; max-height:520px; object-fit:cover; }

.entry{ padding:48px 0 30px; }
.entry .wrap{ max-width:var(--readw); }
.entry p,.entry ul,.entry ol{ font-size:1.12rem; line-height:1.74; color:var(--ink-soft); }
.entry h2{ margin-top:2.2em; padding-top:.2em; }
.entry h2::before{
  content:""; display:block; width:42px; height:3px; background:var(--burnt); margin-bottom:.7rem;
}
.entry h3{ margin-top:1.7em; }
.entry a{ color:var(--burnt); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
.entry img{ border:1px solid var(--rule); border-radius:var(--radius); margin:1.6em auto; }
.entry figure{ margin:1.8em 0; }
.entry figure img{ margin:0 auto; }
.entry figcaption{ font-family:var(--mono); font-size:.74rem; color:var(--mute); text-align:center; margin-top:.7rem; }
.entry blockquote{
  margin:1.8em 0; padding:.3em 0 .3em 26px; border-left:3px solid var(--tang);
  font-style:italic; color:var(--ink); font-size:1.2rem;
}
.entry ul,.entry ol{ padding-left:1.3em; }
.entry li{ margin-bottom:.5em; }
.entry ul li::marker{ color:var(--burnt); }
.entry code{ font-family:var(--mono); font-size:.86em; background:var(--paper-2); padding:.12em .4em; border-radius:var(--radius); border:1px solid var(--rule); }
.entry pre{
  background:var(--slate-dark); color:#e4e6e3; padding:22px 24px; border-radius:var(--radius);
  overflow:auto; font-family:var(--mono); font-size:.9rem; line-height:1.6; border-left:3px solid var(--burnt);
}
.entry pre code{ background:none; border:0; padding:0; color:inherit; }
.entry table{
  width:100%; border-collapse:collapse; margin:1.8em 0; font-size:.98rem;
  border:1px solid var(--rule);
}
.entry th{ background:var(--slate-dark); color:#fff; font-family:var(--mono); font-size:.74rem; letter-spacing:.04em; text-transform:uppercase; text-align:left; padding:12px 14px; font-weight:500; }
.entry td{ padding:12px 14px; border-top:1px solid var(--rule); border-right:1px solid var(--rule-2); color:var(--ink-soft); }
.entry tr:nth-child(even) td{ background:var(--paper); }
.entry table a{ word-break:break-word; }
/* Wide tables must never break the page width — scroll instead */
.entry .table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:1.8em 0; border:1px solid var(--rule); }
.entry .table-scroll table{ margin:0; border:0; min-width:560px; }
.entry .table-scroll table th:first-child,.entry .table-scroll table td:first-child{ position:sticky; left:0; }

/* ============================================================
   MU-PLUGIN REBRAND (author box + tags) — override teal w/ slate+orange
   The mu-plugins inject inline <style> at higher priority; we win via specificity.
   ============================================================ */
.oktnx-author-box.oktnx-author-box{
  background:var(--paper-2)!important;
  border:1px solid var(--rule)!important;
  border-left:3px solid var(--burnt)!important;
  border-radius:var(--radius)!important;
  gap:24px!important;
}
.oktnx-author-box .oktnx-author-avatar{ border:3px solid var(--burnt)!important; border-radius:var(--radius)!important; }
.oktnx-author-box .oktnx-author-label{ font-family:var(--mono); color:var(--burnt)!important; }
.oktnx-author-box .oktnx-author-name{ font-family:var(--serif); }
.oktnx-author-box .oktnx-author-link{ font-family:var(--mono); font-size:.74rem!important; text-transform:uppercase; letter-spacing:.04em; color:var(--burnt)!important; }
.oktnx-author-box .oktnx-author-link:hover{ color:var(--tang)!important; }

.oktnx-post-tags.oktnx-post-tags{ border-top:1px solid var(--rule)!important; }
.oktnx-post-tags .oktnx-tags-label{ font-family:var(--mono); }
.oktnx-post-tags .oktnx-tag{
  background:var(--tang-soft)!important; color:var(--burnt)!important;
  border:1px solid var(--tang-line)!important; border-radius:var(--radius)!important;
  font-family:var(--mono); font-size:.72rem!important; letter-spacing:.03em;
}
.oktnx-post-tags .oktnx-tag:hover{ background:var(--burnt)!important; color:#fff!important; border-color:var(--burnt)!important; }

/* ============================================================
   POST FOOTER NAV
   ============================================================ */
.post-nav{ border-top:1px solid var(--rule); margin-top:30px; }
.post-nav .wrap{ max-width:var(--readw); display:flex; justify-content:space-between; gap:20px; padding-top:34px; padding-bottom:34px; }
.post-nav a{ font-family:var(--mono); font-size:.78rem; text-transform:uppercase; letter-spacing:.03em; color:var(--ink); max-width:46%; }
.post-nav a span{ display:block; color:var(--mute-2); font-size:.66rem; margin-bottom:6px; }
.post-nav a:hover{ color:var(--burnt); text-decoration:none; }
.post-nav .nxt{ text-align:right; margin-left:auto; }

/* ============================================================
   PAGE (about / privacy / generic) — semantic styled
   ============================================================ */
.page-header{ background:var(--slate-dark); color:#fff; border-bottom:3px solid var(--burnt); }
.page-header .wrap{ padding-top:66px; padding-bottom:58px; max-width:820px; }
.page-header .eyebrow{ color:var(--tang); } .page-header .eyebrow::before{ border-top-color:var(--tang); }
.page-header h1{ color:#fff; }
.page-header p.lead{ color:#c4c8cd; font-size:1.2rem; max-width:620px; margin:.6rem 0 0; }

.page-body{ padding:56px 0 64px; }
.page-body .wrap{ max-width:var(--readw); }
.page-body h2{ margin-top:1.8em; }
.page-body h2:first-child{ margin-top:0; }
.page-body h2::before{ content:""; display:block; width:42px; height:3px; background:var(--burnt); margin-bottom:.6rem; }
.page-body p,.page-body li{ font-size:1.1rem; line-height:1.72; color:var(--ink-soft); }
.page-body a{ text-decoration:underline; text-underline-offset:2px; }
.page-body ul,.page-body ol{ padding-left:1.3em; }
.page-body li{ margin-bottom:.5em; }
.page-body li::marker{ color:var(--burnt); }
.page-body img{ border:1px solid var(--rule); border-radius:var(--radius); }

/* about-specific composed blocks (semantic html in page content) */
.bio-grid{ display:grid; grid-template-columns:280px 1fr; gap:40px; align-items:start; margin:0 0 8px; }
.bio-portrait img{ width:100%; border:1px solid var(--rule); border-radius:var(--radius); }
.cred-box{ margin-top:20px; border:1px solid var(--rule); border-left:3px solid var(--burnt); padding:18px 20px; background:var(--card); }
.cred-box h4{ font-family:var(--mono); font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; color:var(--burnt); margin:0 0 .7rem; }
.cred-box ul{ margin:0; padding-left:1.1em; font-size:.96rem; }
.cred-box li{ color:var(--mute); margin-bottom:.4em; }
.expertise-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); margin:1.6em 0; }
.expertise-grid .ex{ background:var(--card); padding:24px 22px; }
.expertise-grid .ex h3{ font-size:1.12rem; margin:0 0 .5rem; }
.expertise-grid .ex p{ font-size:.96rem; color:var(--mute); margin:0; }
.expertise-grid .ex .ex-idx{ font-family:var(--mono); font-size:.7rem; color:var(--tang); }
.pull-quote{ margin:1.6em 0; padding:1.2em 0 1.2em 26px; border-left:3px solid var(--tang); font-family:var(--serif); font-style:italic; font-size:1.35rem; color:var(--ink); }
.cta-band{ background:var(--slate-dark); color:#fff; border-top:3px solid var(--burnt); margin-top:48px; }
.cta-band .wrap{ max-width:760px; padding:54px 28px; text-align:center; }
.cta-band h2{ color:#fff; } .cta-band h2::before{ display:none; }
.cta-band p{ color:#c4c8cd; }

/* contact form area */
.contact-shell{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.contact-aside .ca-block{ border-top:1px solid var(--rule); padding:20px 0; }
.contact-aside .ca-block:first-child{ border-top:0; padding-top:0; }
.contact-aside .ca-lab{ font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--burnt); margin-bottom:.4rem; }
.contact-aside a{ text-decoration:underline; }
/* style native WP comment-form-as-contact if used */
.contact-form-wrap input[type=text],
.contact-form-wrap input[type=email],
.contact-form-wrap textarea{
  width:100%; font-family:var(--serif); font-size:1rem; padding:12px 14px;
  border:1px solid var(--rule); border-radius:var(--radius); background:var(--card); margin-bottom:14px;
}
.contact-form-wrap input:focus,.contact-form-wrap textarea:focus{ outline:2px solid var(--tang); border-color:var(--tang); }
.contact-form-wrap label{ font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:var(--mute); display:block; margin-bottom:6px; }

/* ============================================================
   ARCHIVE / SEARCH HEADERS
   ============================================================ */
.archive-header{ border-bottom:1px solid var(--rule); padding:54px 0 38px; }
.archive-header .eyebrow{ margin-bottom:.6rem; }
.archive-header h1{ font-size:clamp(1.8rem,4vw,2.6rem); margin:0; }
.archive-header p{ color:var(--mute); margin:.7rem 0 0; max-width:600px; }
.archive-list{ padding:48px 0 64px; }

/* pagination */
.pagination{ display:flex; gap:8px; flex-wrap:wrap; margin-top:48px; font-family:var(--mono); }
.pagination .page-numbers{
  display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px;
  padding:0 12px; border:1px solid var(--rule); color:var(--ink); font-size:.82rem; border-radius:var(--radius);
}
.pagination .page-numbers:hover{ border-color:var(--burnt); color:var(--burnt); text-decoration:none; }
.pagination .current{ background:var(--burnt); color:#fff; border-color:var(--burnt); }

/* search form */
.search-form{ display:flex; gap:0; max-width:480px; margin-top:18px; }
.search-form input[type=search]{
  flex:1; font-family:var(--serif); font-size:1rem; padding:12px 16px;
  border:1px solid var(--rule); border-right:0; border-radius:var(--radius) 0 0 var(--radius); background:var(--card);
}
.search-form input[type=search]:focus{ outline:none; border-color:var(--burnt); }
.search-form button{
  font-family:var(--mono); font-size:.76rem; text-transform:uppercase; letter-spacing:.04em;
  background:var(--burnt); color:#fff; border:1px solid var(--burnt); padding:0 22px; cursor:pointer;
  border-radius:0 var(--radius) var(--radius) 0;
}
.search-form button:hover{ background:var(--tang); border-color:var(--tang); }

/* ============================================================
   404
   ============================================================ */
.error-404{ padding:90px 0; text-align:center; }
.error-404 .code{ font-family:var(--mono); font-size:5rem; color:var(--tang); line-height:1; }
.error-404 h1{ margin:.4em 0 .3em; }
.error-404 p{ color:var(--mute); max-width:460px; margin:0 auto 1.8em; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{ background:var(--slate-900); color:#b9bec6; border-top:3px solid var(--burnt); }
.footer-top{ padding:58px 0 40px; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; }
.footer-brand .brand-name{ color:#fff; }
.footer-brand p{ color:#8b929c; font-size:.96rem; max-width:300px; margin:.9rem 0 0; }
.footer-col h4{ font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--tang); margin:0 0 1rem; }
.footer-col ul{ list-style:none; margin:0; padding:0; }
.footer-col li{ margin-bottom:.6rem; }
.footer-col a{ color:#b9bec6; font-size:.96rem; }
.footer-col a:hover{ color:#fff; text-decoration:none; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.08); padding:22px 0; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.footer-bottom p{ margin:0; font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; color:#A6ACB6; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px){
  body{ font-size:18px; }
  .pillars,.expertise-grid{ grid-template-columns:1fr; }
  .pillar{ border-right:0; border-bottom:1px solid var(--rule); }
  .pillar:last-child{ border-bottom:0; }
  .expertise-grid .ex{ border-bottom:1px solid var(--rule); }
  .post-grid,.post-grid.cols-2{ grid-template-columns:1fr 1fr; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .bio-grid{ grid-template-columns:1fr; }
  .bio-portrait{ max-width:280px; }
  .contact-shell{ grid-template-columns:1fr; gap:28px; }
}
@media (max-width:680px){
  .wrap{ padding:0 18px; }
  .primary-nav{
    position:fixed; inset:72px 0 auto 0; background:var(--paper);
    border-bottom:1px solid var(--rule); transform:translateY(-130%); transition:transform .25s ease;
    box-shadow:0 12px 24px rgba(0,0,0,.08);
  }
  .primary-nav.open{ transform:translateY(0); }
  .primary-nav ul{ flex-direction:column; gap:0; padding:8px 18px 18px; }
  .primary-nav li{ border-bottom:1px solid var(--rule-2); }
  .primary-nav li:last-child{ border-bottom:0; }
  .primary-nav a{ display:block; padding:14px 0; font-size:.85rem; }
  .primary-nav a::after{ display:none; }
  .nav-toggle{ display:inline-flex; }
  .hero-inner{ padding:60px 0 54px; }
  .hero-ledger .led{ padding-right:20px; margin-right:20px; }
  .post-grid,.post-grid.cols-2{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns:1fr; gap:30px; }
  .post-nav .wrap{ flex-direction:column; }
  .post-nav .nxt{ text-align:left; }
  .post-nav a{ max-width:100%; }
  .section{ padding:52px 0; }
}

/* contrast/legibility fixes (controller round) */
.brand-tag{ font-size:11px!important; letter-spacing:.14em; }
@media(max-width:600px){ .brand-tag{ display:none!important; } }
