/*
Theme Name: Viewing 2026
Theme URI: https://viewing.org/
Author: Tom Bradley
Author URI: https://viewing.org/
Description: A bespoke editorial theme for Viewing.org — a web-analytics fieldbook. Warm bone canvas, deep olive-moss ink, and a rust marker accent. Fraunces display serif + Spline Sans body. Built from scratch; no page-builder footprint.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.9
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: viewing-2026
*/

/* ============================================================
   DESIGN TOKENS
   Lane: warm bone canvas + deep olive-moss + rust marker.
   Contrast-tuned: accent/muted text tokens darkened for >=4.5:1.
   ============================================================ */
:root{
  /* canvas */
  --bone:#F4EDDD;          /* page canvas */
  --bone-2:#ECE3CE;        /* card / alt band */
  --bone-3:#E3D8BE;        /* hairline-tinted panel */
  --paper:#FBF7EC;         /* lightest card */

  /* ink */
  --ink:#23271A;           /* primary text (near-black olive) ~13:1 on bone */
  --ink-soft:#3C461F;      /* dark olive headings on bone ~8:1 */
  --muted:#56503E;         /* secondary text on bone ~6.3:1 (PASS) */

  /* structure: olive-moss */
  --olive:#46522A;         /* brand olive (dark sections / fills) */
  --olive-deep:#39431F;    /* deeper olive */
  --olive-line:#7C7E4E;    /* olive hairline on dark */

  /* accent: rust marker */
  --rust:#B5532A;          /* rust for FILLS / RULES / large display only */
  --rust-text:#9A3F18;     /* rust for SMALL TEXT on bone ~5.4:1 (PASS) */
  --rust-soft:#E89B6C;     /* rust tint for text ON DARK olive (PASS on olive) */

  /* on-dark (olive section) text */
  --on-dark:#F4EDDD;       /* body on olive ~10:1 */
  --on-dark-muted:#D7CDB0; /* muted on olive ~6.5:1 (PASS) */

  /* Kadence-block compatibility — ORIGINAL default Kadence global palette.
     Keep these EXACT so any leftover wp:* block referencing var(--global-paletteN) renders intact. */
  --global-palette1:#2B6CB0;
  --global-palette2:#215387;
  --global-palette3:#1A202C;
  --global-palette4:#2D3748;
  --global-palette5:#4A5568;
  --global-palette6:#718096;
  --global-palette7:#EDF2F7;
  --global-palette8:#F7FAFC;
  --global-palette9:#ffffff;

  /* fonts */
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Spline Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --mono:'Spline Sans Mono',ui-monospace,'SF Mono',Menlo,monospace;

  --maxw:1180px;
  --readw:720px;
  --r:4px;                 /* small radius */
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bone);
  color:var(--ink);
  font-family:var(--sans);
  font-size:18px;
  line-height:1.7;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--rust-text);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;transition:color .15s}
a:hover{color:var(--olive)}
h1,h2,h3,h4,h5,h6{
  font-family:var(--serif);
  color:var(--ink-soft);
  font-weight:560;
  line-height:1.12;
  letter-spacing:-0.01em;
  margin:0 0 .5em;
  font-optical-sizing:auto;
}
p{margin:0 0 1.2em}
ul,ol{margin:0 0 1.2em;padding-left:1.3em}
li{margin:.35em 0}
hr{border:0;border-top:1px solid var(--bone-3);margin:2.5rem 0}
code,pre,kbd{font-family:var(--mono)}
:focus-visible{outline:3px solid var(--rust);outline-offset:2px}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--olive);color:#fff;padding:10px 16px;z-index:1000;border-radius:0 0 var(--r) 0}
.skip-link:focus{left:0}

/* layout helpers */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.narrow{max-width:var(--readw);margin:0 auto;padding:0 24px}
.eyebrow{
  font-family:var(--mono);
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--rust-text);
  margin:0 0 14px;
  display:inline-flex;align-items:center;gap:9px;
}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--rust);display:inline-block}
.eyebrow.on-dark{color:#F0B68C}        /* >=4.5:1 on both --olive and --olive-deep */
.eyebrow.on-dark::before{background:#F0B68C}

/* ============================================================
   SITE HEADER
   ============================================================ */
.site-header{
  background:var(--bone);
  border-bottom:1px solid var(--bone-3);
  position:sticky;top:0;z-index:200;
}
.header-inner{
  max-width:var(--maxw);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  gap:20px;padding:14px 24px;
  min-height:64px;
}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex-shrink:0}
.brand:hover{color:inherit}
.brand-mark{width:34px;height:34px;flex-shrink:0;display:block}
.brand-word{
  font-family:var(--serif);
  font-size:25px;
  font-weight:600;
  color:var(--ink);
  letter-spacing:-0.02em;
  line-height:1;
}
.brand-word .dot{color:var(--rust)}
.brand-tag{
  display:block;
  font-family:var(--mono);
  font-size:10.5px;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--muted);
  margin-top:3px;
}

/* primary nav */
.primary-nav{display:flex;align-items:center}
.primary-nav ul{list-style:none;display:flex;gap:4px;margin:0;padding:0;flex-wrap:wrap;align-items:center}
.primary-nav li{margin:0}
.primary-nav a{
  display:block;
  font-family:var(--sans);
  font-size:14.5px;
  font-weight:500;
  color:var(--ink);
  text-decoration:none;
  padding:8px 12px;
  border-radius:var(--r);
  white-space:nowrap;
  transition:background .15s,color .15s;
}
.primary-nav a:hover{background:var(--bone-2);color:var(--olive)}
.primary-nav .current-menu-item>a,
.primary-nav .current_page_item>a,
.primary-nav .current-menu-parent>a,
.primary-nav .current-page-ancestor>a{
  background:var(--olive);
  color:var(--on-dark);     /* >=4.5:1 on its own page */
}
.primary-nav .current-menu-item>a:hover{background:var(--olive-deep);color:var(--on-dark)}

.nav-cta{
  margin-left:8px;
  background:var(--rust)!important;
  color:#fff!important;
  font-weight:600!important;
  padding:9px 16px!important;
}
.nav-cta:hover{background:#9A3F18!important;color:#fff!important}

/* mobile toggle */
.nav-toggle{
  display:none;background:none;border:1px solid var(--bone-3);
  border-radius:var(--r);padding:8px 10px;cursor:pointer;
  color:var(--ink);align-items:center;gap:7px;font-family:var(--mono);
  font-size:12px;text-transform:uppercase;letter-spacing:.1em;
}
.nav-toggle .bars{display:inline-block;width:18px;height:13px;position:relative}
.nav-toggle .bars span{position:absolute;left:0;width:100%;height:2px;background:var(--ink);transition:.2s}
.nav-toggle .bars span:nth-child(1){top:0}
.nav-toggle .bars span:nth-child(2){top:5.5px}
.nav-toggle .bars span:nth-child(3){top:11px}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{
  background:var(--olive-deep);
  color:var(--on-dark);
  margin-top:80px;
  padding:64px 0 28px;
}
.footer-grid{
  max-width:var(--maxw);margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:48px;
}
.site-footer h4{
  font-family:var(--mono);
  font-size:12px;text-transform:uppercase;letter-spacing:.14em;
  color:var(--rust-soft);font-weight:600;margin:0 0 16px;
}
.site-footer .brand-word{color:var(--on-dark)}
.site-footer p{color:var(--on-dark-muted);font-size:15.5px;max-width:34ch}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin:.45em 0}
.site-footer a{color:var(--on-dark);text-decoration:none;font-size:15px}
.site-footer a:hover{color:var(--rust-soft);text-decoration:underline}
.footer-brand .brand{margin-bottom:14px}
.footer-bottom{
  max-width:var(--maxw);margin:40px auto 0;padding:22px 24px 0;
  border-top:1px solid var(--olive-line);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:13.5px;color:var(--on-dark-muted);font-family:var(--mono);letter-spacing:.02em;
}
.footer-bottom a{color:var(--on-dark-muted)}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--sans);font-weight:600;font-size:16px;
  text-decoration:none;padding:13px 26px;border-radius:var(--r);
  border:1.5px solid transparent;cursor:pointer;transition:.15s;
  line-height:1.1;
}
.btn-primary{background:var(--rust);color:#fff;border-color:var(--rust)}
.btn-primary:hover{background:#9A3F18;border-color:#9A3F18;color:#fff}
.btn-olive{background:var(--olive);color:var(--on-dark);border-color:var(--olive)}
.btn-olive:hover{background:var(--olive-deep);color:var(--on-dark)}
.btn-ghost{background:transparent;color:var(--ink-soft);border-color:var(--ink-soft)}
.btn-ghost:hover{background:var(--ink-soft);color:var(--bone)}
.btn-ghost.on-dark{color:var(--on-dark);border-color:var(--on-dark-muted)}
.btn-ghost.on-dark:hover{background:var(--on-dark);color:var(--olive-deep)}
.btn .arr{font-family:var(--mono);transition:transform .15s}
.btn:hover .arr{transform:translateX(3px)}

/* ============================================================
   HERO (front page)
   ============================================================ */
.hero{
  background:var(--olive-deep);
  color:var(--on-dark);
  position:relative;overflow:hidden;
  padding:96px 0 86px;
}
.hero::after{
  /* faint aperture motif, structural not decorative-flood */
  content:"";position:absolute;right:-140px;top:50%;transform:translateY(-50%);
  width:520px;height:520px;border-radius:50%;
  border:1.5px solid var(--olive-line);opacity:.5;
  background:radial-gradient(circle at center, transparent 38%, rgba(124,126,78,.12) 39%, transparent 41%);
}
.hero .wrap{position:relative;z-index:2}
.hero h1{
  color:#fff;font-size:clamp(34px,5.4vw,58px);
  max-width:16ch;margin:0 0 22px;font-weight:560;line-height:1.05;
}
.hero .lede{
  color:var(--on-dark);font-size:clamp(17px,2.2vw,21px);
  max-width:54ch;margin:0 0 34px;line-height:1.6;
}
.hero .actions{display:flex;gap:14px;flex-wrap:wrap}

/* stats strip */
.stats-strip{background:var(--rust);color:#fff}
.stats-strip .wrap{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:30px 24px;
}
.stat{text-align:center;padding:6px 8px}
.stat .num{font-family:var(--serif);font-size:clamp(28px,4vw,40px);font-weight:600;line-height:1;color:#fff}
.stat .lbl{font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.92);margin-top:8px;display:block}

/* ============================================================
   SECTIONS / GENERIC
   ============================================================ */
.section{padding:74px 0}
.section.alt{background:var(--bone-2)}
.section.olive{background:var(--olive);color:var(--on-dark)}
.section.olive h2,.section.olive h3{color:#fff}
.section.olive p{color:var(--on-dark)}
.section-head{max-width:640px;margin:0 0 44px}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head h2{font-size:clamp(27px,3.6vw,38px);margin:0 0 12px}
.section-head p{color:var(--muted);font-size:18px;margin:0}
.section.olive .section-head p{color:var(--on-dark-muted)}

/* ============================================================
   CATEGORY / TOPIC GRID
   ============================================================ */
.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:18px}
.topic-card{
  background:var(--paper);
  border:1px solid var(--bone-3);
  border-left:3px solid var(--rust);
  border-radius:var(--r);
  padding:24px 22px;
  text-decoration:none;color:var(--ink);
  display:flex;flex-direction:column;gap:8px;
  transition:transform .15s,box-shadow .15s,border-color .15s;
}
.topic-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px -16px rgba(35,39,26,.45);border-left-color:var(--olive)}
.topic-card .tc-idx{font-family:var(--mono);font-size:12px;color:var(--rust-text);letter-spacing:.08em}
.topic-card h3{font-size:21px;margin:0;color:var(--ink-soft)}
.topic-card p{font-size:14.5px;color:var(--muted);margin:0;line-height:1.55}
.topic-card .tc-count{margin-top:auto;font-family:var(--mono);font-size:12px;color:var(--olive);font-weight:600}

/* ============================================================
   POST CARDS (archive / blog / latest)
   ============================================================ */
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:30px}
.post-card{
  background:var(--paper);
  border:1px solid var(--bone-3);
  border-radius:var(--r);
  overflow:hidden;display:flex;flex-direction:column;
  transition:transform .15s,box-shadow .15s;
}
.post-card:hover{transform:translateY(-4px);box-shadow:0 16px 38px -20px rgba(35,39,26,.5)}
.post-card .pc-thumb{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--bone-3)}
.post-card .pc-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.post-card:hover .pc-thumb img{transform:scale(1.04)}
.post-card .pc-noimg{
  aspect-ratio:16/9;background:linear-gradient(135deg,var(--olive),var(--olive-deep));
  display:flex;align-items:center;justify-content:center;
}
.post-card .pc-noimg svg{width:52px;height:52px;opacity:.5}
.post-card .pc-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.pc-cat{
  font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;
  color:var(--rust-text);font-weight:600;text-decoration:none;margin-bottom:10px;display:inline-block;
}
.pc-cat:hover{color:var(--olive)}
.post-card h3{font-size:21px;line-height:1.2;margin:0 0 10px}
.post-card h3 a{color:var(--ink-soft);text-decoration:none}
.post-card h3 a:hover{color:var(--rust-text)}
.post-card .pc-excerpt{font-size:15px;color:var(--muted);line-height:1.6;margin:0 0 16px}
.post-card .pc-meta{
  margin-top:auto;font-family:var(--mono);font-size:12px;color:var(--muted);
  display:flex;gap:10px;align-items:center;border-top:1px solid var(--bone-3);padding-top:14px;
}
.post-card .pc-meta .dotsep{color:var(--rust)}

/* ============================================================
   ARCHIVE / PAGE HEADERS
   ============================================================ */
.page-masthead{
  background:var(--olive-deep);color:var(--on-dark);
  padding:64px 0 56px;position:relative;overflow:hidden;
}
.page-masthead::after{
  content:"";position:absolute;right:-90px;top:-90px;width:300px;height:300px;border-radius:50%;
  border:1.5px solid var(--olive-line);opacity:.45;
}
.page-masthead .wrap{position:relative;z-index:2}
.page-masthead h1{color:#fff;font-size:clamp(30px,4.6vw,46px);margin:0 0 14px;max-width:20ch}
.page-masthead p{color:var(--on-dark);font-size:18px;max-width:60ch;margin:0}
.page-masthead .crumbs{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--on-dark-muted);margin-bottom:16px}
.page-masthead .crumbs a{color:var(--on-dark-muted)}
.page-masthead .crumbs a:hover{color:var(--rust-soft)}

/* ============================================================
   SINGLE POST
   ============================================================ */
.single-wrap{padding:54px 0 20px}
.article-head{max-width:var(--readw);margin:0 auto 34px;padding:0 24px}
.article-head .a-cat{
  font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.12em;
  color:var(--rust-text);font-weight:600;text-decoration:none;
}
.article-head h1{font-size:clamp(30px,4.6vw,46px);margin:16px 0 18px;line-height:1.1}
.article-head .a-meta{
  font-family:var(--mono);font-size:13.5px;color:var(--muted);
  display:flex;gap:12px;align-items:center;flex-wrap:wrap;
}
.article-head .a-meta .dotsep{color:var(--rust)}
.article-feat{max-width:980px;margin:0 auto 40px;padding:0 24px}
.article-feat img{width:100%;border-radius:var(--r);border:1px solid var(--bone-3)}

.article-body{max-width:var(--readw);margin:0 auto;padding:0 24px;font-size:18.5px}
.article-body>*{margin-left:auto;margin-right:auto}
.article-body h2{font-size:clamp(25px,3.3vw,33px);margin:1.8em 0 .55em;padding-top:.2em}
.article-body h3{font-size:clamp(21px,2.6vw,25px);margin:1.5em 0 .5em;color:var(--olive)}
.article-body h4{font-size:19px;margin:1.4em 0 .5em;color:var(--ink-soft)}
.article-body p{margin:0 0 1.3em}
.article-body a{color:var(--rust-text);font-weight:500}
.article-body ul,.article-body ol{margin:0 0 1.4em;padding-left:1.4em}
.article-body li{margin:.5em 0}
.article-body li::marker{color:var(--rust)}
.article-body img{border-radius:var(--r);margin:1.8em auto;border:1px solid var(--bone-3)}
.article-body figure{margin:1.8em 0}
.article-body figcaption{font-size:14px;color:var(--muted);text-align:center;margin-top:8px;font-family:var(--mono)}
.article-body blockquote{
  margin:1.8em 0;padding:18px 26px;border-left:4px solid var(--rust);
  background:var(--bone-2);border-radius:0 var(--r) var(--r) 0;
  font-family:var(--serif);font-size:21px;color:var(--ink-soft);font-style:italic;
}
.article-body blockquote p{margin:0}
.article-body code{
  background:var(--bone-2);border:1px solid var(--bone-3);border-radius:3px;
  padding:2px 6px;font-size:.85em;color:var(--olive-deep);
}
.article-body pre{
  background:var(--ink);color:var(--bone);border-radius:var(--r);
  padding:20px 22px;overflow-x:auto;font-size:14.5px;line-height:1.6;margin:1.8em 0;
}
.article-body pre code{background:none;border:0;color:inherit;padding:0}
.article-body strong{color:var(--ink-soft);font-weight:600}
.article-body hr{margin:2.4em 0}

/* tables in content */
.article-body table,.entry-content table{
  width:100%;border-collapse:collapse;margin:1.8em 0;font-size:15.5px;
  border:1px solid var(--bone-3);border-radius:var(--r);overflow:hidden;display:block;overflow-x:auto;
}
.article-body table thead th,.entry-content table thead th{
  background:var(--olive);color:var(--on-dark);text-align:left;padding:13px 16px;
  font-family:var(--sans);font-weight:600;font-size:14px;
}
.article-body table td,.article-body table th,.entry-content table td,.entry-content table th{
  padding:12px 16px;border-bottom:1px solid var(--bone-3);vertical-align:top;
}
.article-body table tbody tr:nth-child(even),.entry-content table tbody tr:nth-child(even){background:var(--bone-2)}

/* TOC plugin reskin */
#toc_container,.toc_widget_list{
  background:var(--paper)!important;border:1px solid var(--bone-3)!important;
  border-left:3px solid var(--rust)!important;border-radius:var(--r)!important;
  font-family:var(--sans)!important;
}
#toc_container .toc_title{font-family:var(--mono)!important;font-size:13px!important;text-transform:uppercase!important;letter-spacing:.1em!important;color:var(--rust-text)!important}
#toc_container a{color:var(--olive-deep)!important}

/* author box (mu-plugin) reskin */
.author-box,.post-author-box{
  max-width:var(--readw);margin:48px auto 0;padding:26px 28px;
  background:var(--bone-2);border:1px solid var(--bone-3);border-radius:var(--r);
  display:flex;gap:20px;align-items:flex-start;
}
.author-box img{border-radius:50%;width:74px;height:74px;flex-shrink:0;border:2px solid var(--rust)}
.author-box h3,.author-box strong{font-family:var(--serif);color:var(--ink-soft)}
.author-box p{font-size:15px;color:var(--muted);margin:.3em 0 0}

/* tags / post terms */
.post-terms{max-width:var(--readw);margin:32px auto 0;padding:0 24px}
.post-terms .pt-label{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-right:8px}
.tagchip{
  display:inline-block;font-family:var(--mono);font-size:12.5px;
  background:var(--bone-2);border:1px solid var(--bone-3);color:var(--olive-deep);
  padding:5px 12px;border-radius:20px;margin:4px 4px 0 0;text-decoration:none;
}
.tagchip:hover{background:var(--olive);color:var(--on-dark);border-color:var(--olive)}

/* related / read-next */
.read-next{background:var(--bone-2);padding:60px 0;margin-top:64px;border-top:1px solid var(--bone-3)}

/* ============================================================
   PAGE (generic semantic content) — About/Privacy/Contact body
   ============================================================ */
.page-body{max-width:var(--readw);margin:0 auto;padding:54px 24px;font-size:18px}
.page-body.wide{max-width:var(--maxw)}
.page-body h2{font-size:clamp(25px,3.2vw,32px);margin:1.6em 0 .5em}
.page-body h2:first-child{margin-top:0}
.page-body h3{font-size:21px;color:var(--olive);margin:1.4em 0 .5em}
.page-body p{margin:0 0 1.2em;color:var(--ink)}
.page-body a{color:var(--rust-text);font-weight:500}
.page-body ul li::marker{color:var(--rust)}

/* feature cards used in About / generic */
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin:8px 0}
.feature-card{
  background:var(--paper);border:1px solid var(--bone-3);border-top:3px solid var(--rust);
  border-radius:var(--r);padding:26px 24px;
}
.feature-card h3{font-size:20px;color:var(--ink-soft);margin:0 0 10px}
.feature-card p{font-size:15px;color:var(--muted);margin:0;line-height:1.6}
.feature-card .fc-mark{
  width:40px;height:40px;border-radius:var(--r);background:var(--olive);
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;
}
.feature-card .fc-mark svg{width:22px;height:22px;color:var(--bone)}

/* chip list (toolkit / expertise) */
.chiplist{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 8px;padding:0;list-style:none}
.chiplist li{
  margin:0;font-family:var(--mono);font-size:14px;
  background:var(--bone-2);border:1px solid var(--bone-3);color:var(--olive-deep);
  padding:8px 15px;border-radius:var(--r);
}
.arrowlist{list-style:none;padding:0;margin:0 0 1.2em}
.arrowlist li{position:relative;padding-left:28px;margin:.5em 0}
.arrowlist li::before{content:"\2192";position:absolute;left:0;color:var(--rust-text);font-family:var(--mono);font-weight:700}

/* ============================================================
   CONTACT
   ============================================================ */
.contact-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:44px;align-items:start;max-width:var(--maxw);margin:0 auto;padding:54px 24px}
.contact-card{background:var(--paper);border:1px solid var(--bone-3);border-radius:var(--r);padding:34px 32px}
.contact-card h2{margin-top:0;font-size:25px}
.contact-aside .panel{background:var(--bone-2);border:1px solid var(--bone-3);border-radius:var(--r);padding:26px 24px;margin-bottom:22px}
.contact-aside .panel.olive{background:var(--olive);border-color:var(--olive)}
.contact-aside .panel.olive h3,.contact-aside .panel.olive p{color:var(--on-dark)}
.contact-aside .panel h3{margin:0 0 12px;font-size:18px;color:var(--ink-soft)}
.contact-aside .panel p{font-size:15px;color:var(--muted);margin:0}

/* WPForms reskin */
.wpforms-container{margin:0!important}
.wpforms-form label.wpforms-field-label{
  font-family:var(--sans)!important;font-weight:600!important;font-size:14.5px!important;
  color:var(--ink-soft)!important;margin-bottom:7px!important;
}
.wpforms-field-description{font-size:13px!important;color:var(--muted)!important;font-family:var(--sans)!important}
.wpforms-form input[type=text],
.wpforms-form input[type=email],
.wpforms-form input[type=url],
.wpforms-form input[type=tel],
.wpforms-form textarea,
.wpforms-form select{
  font-family:var(--sans)!important;font-size:16px!important;
  background:var(--bone)!important;border:1.5px solid var(--bone-3)!important;
  border-radius:var(--r)!important;color:var(--ink)!important;padding:11px 14px!important;
  width:100%!important;transition:border-color .15s!important;
}
.wpforms-form input:focus,.wpforms-form textarea:focus,.wpforms-form select:focus{
  border-color:var(--rust)!important;outline:none!important;
}
.wpforms-form button[type=submit],.wpforms-submit{
  font-family:var(--sans)!important;font-weight:600!important;font-size:16px!important;
  background:var(--rust)!important;color:#fff!important;border:0!important;
  border-radius:var(--r)!important;padding:13px 30px!important;cursor:pointer!important;
  transition:background .15s!important;
}
.wpforms-form button[type=submit]:hover,.wpforms-submit:hover{background:#9A3F18!important}
.wpforms-form .wpforms-field{padding:0 0 18px 0!important}
.wpforms-form .wpforms-required-label{color:var(--rust-text)!important}

/* ============================================================
   404 / SEARCH
   ============================================================ */
.notfound{text-align:center;padding:90px 24px;overflow-x:hidden}
.notfound .big{font-family:var(--serif);font-size:clamp(72px,16vw,160px);color:var(--rust);line-height:1;margin:0}
.notfound .search-form{width:100%;max-width:520px;box-sizing:border-box}
.notfound h1{font-size:30px;margin:8px 0 14px}
.notfound p{color:var(--muted);max-width:50ch;margin:0 auto 26px}
.search-form{display:flex;gap:10px;max-width:520px;margin:24px auto 0}
.search-form input[type=search]{
  flex:1;font-family:var(--sans);font-size:16px;padding:12px 16px;
  border:1.5px solid var(--bone-3);border-radius:var(--r);background:var(--paper);color:var(--ink);
}
.search-form input[type=search]:focus{border-color:var(--rust);outline:none}

/* pagination */
.pagination{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:56px 0 0;font-family:var(--mono)}
.pagination a,.pagination span{
  display:inline-block;padding:9px 15px;border:1px solid var(--bone-3);border-radius:var(--r);
  text-decoration:none;color:var(--ink);font-size:14px;background:var(--paper);
}
.pagination a:hover{background:var(--bone-2);color:var(--olive)}
.pagination .current{background:var(--olive);color:var(--on-dark);border-color:var(--olive)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .contact-layout{grid-template-columns:1fr;gap:30px}
}
@media (max-width:820px){
  body{font-size:17px}
  .nav-toggle{display:inline-flex}
  .primary-nav{
    position:fixed;inset:64px 0 auto 0;background:var(--bone);
    border-bottom:1px solid var(--bone-3);
    transform:translateY(-130%);transition:transform .25s;
    box-shadow:0 18px 30px -18px rgba(35,39,26,.5);max-height:calc(100vh - 64px);overflow:auto;
  }
  .primary-nav.open{transform:translateY(0)}
  .primary-nav ul{flex-direction:column;align-items:stretch;gap:0;padding:10px 14px 18px}
  .primary-nav a{padding:12px 14px;font-size:16px;border-radius:var(--r)}
  .primary-nav .nav-cta{margin:8px 0 0!important;text-align:center;justify-content:center}
  .hero::after{width:340px;height:340px;right:-150px}
}
@media (max-width:560px){
  .header-inner{min-height:60px;padding:12px 18px}
  .primary-nav{inset:60px 0 auto 0}
  .stats-strip .wrap{grid-template-columns:repeat(2,1fr);gap:18px 8px}
  .section{padding:56px 0}
  .single-wrap{padding:40px 0 10px}
  .author-box{flex-direction:column;gap:14px}
}
@media (max-width:430px){
  .footer-grid{grid-template-columns:1fr;gap:30px}
  .footer-bottom{flex-direction:column;gap:8px}
}
@media (max-width:380px){
  .wrap,.narrow{padding-left:18px;padding-right:18px}
  .post-grid{grid-template-columns:1fr}
  .topic-grid{grid-template-columns:1fr}
  .notfound{padding-left:16px;padding-right:16px}
  .search-form{flex-direction:column}
  .search-form .btn{width:100%;justify-content:center}
}
