/* Copyright (c) 2026 Timothy Parks. All rights reserved. Proprietary and confidential.
   Base stylesheet v2.0.0 (2026-10-18). Structure only: every colour, font, width and radius is a token from
   framework/theme_tokens.json. The site's pinned theme (framework/themes/<name>.css) is appended to this file
   at build time and sets the tokens. Owner chat 2026-10-18: "fix all ... 5 variations customizable by CSS". */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--base-size);line-height:var(--line)}
.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;background:var(--cta);color:var(--cta-ink);padding:.5rem;z-index:9}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}

/* frame: wide on a computer, reading text kept to a comfortable measure */
main{max-width:var(--wrap);margin:0 auto;padding:0 1.25rem 4rem}
main>section,main>.ctaband,main>.crosslinks,main>.byline,main>.sources,main>.leadform,main>.bloglist,main>.glossary-index,main>p,main>ul{max-width:var(--measure);margin-left:auto;margin-right:auto}
h1,h2,h3{font-family:var(--font-head);font-weight:var(--head-weight);text-wrap:balance}
h1{font-size:clamp(1.9rem,4.5vw,var(--h1-size));line-height:1.15;letter-spacing:-.015em;margin:2rem 0 1.25rem;max-width:var(--wrap)}
h1::before{content:"";display:block;width:2.75rem;height:4px;background:var(--cta);border-radius:2px;margin-bottom:1rem}
h2{font-size:1.4rem;letter-spacing:-.01em;margin:var(--section-space) 0 .6rem}
h3{font-size:1.08rem;margin:1.4rem 0 .3rem}
p{margin:.75rem 0}ul{margin:.75rem 0;padding-left:1.2rem}li{margin:.3rem 0}
a{color:var(--accent)}

/* top bar: full-width band, contents at the frame width */
.nav{position:relative;z-index:50;background:var(--nav-bg);color:var(--nav-ink);padding:.75rem 1.25rem;display:flex;gap:1rem;align-items:center;justify-content:space-between;max-width:var(--wrap);margin:0 auto}
.nav::before{content:"";position:absolute;top:0;bottom:0;left:-100vmax;right:-100vmax;background:var(--nav-bg);z-index:-1}
.nav a{color:var(--nav-ink)}
.nav .brand{font-family:var(--font-head);font-weight:var(--head-weight);font-size:1.15rem;text-decoration:none;color:var(--nav-ink);letter-spacing:-.01em}
.nav a[aria-current]{font-weight:700}
.nav .navmenu{position:relative}
.nav summary{cursor:pointer;list-style:none;font-size:1rem;font-weight:700;color:var(--nav-ink);min-height:44px;display:flex;align-items:center;padding:.55rem 1.1rem;border:2px solid var(--nav-ink);border-radius:var(--radius);user-select:none}
.nav summary::-webkit-details-marker{display:none}
.nav summary::after{content:" \25BE";margin-left:.35rem}
.nav details[open] summary::after{content:" \25B4"}
.nav .navmenu ul{list-style:none;position:absolute;right:0;top:calc(100% + .5rem);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);padding:.4rem 0;margin:0;min-width:16rem;max-height:70vh;overflow:auto;z-index:60;display:flex;flex-direction:column;font-size:.97rem}
.nav .navmenu li{margin:0}
.nav .navmenu a{display:block;padding:.6rem 1rem;text-decoration:none;color:var(--surface-ink)}
.nav .navmenu a:hover,.nav .navmenu a[aria-current]{background:var(--band);color:var(--ink)}

/* the one action colour */
.cta{display:inline-block;background:var(--cta);color:var(--cta-ink);text-decoration:none;font-weight:700;padding:.75rem 1.4rem;border-radius:var(--radius);border:0;box-shadow:var(--shadow)}
.cta:hover,.cta:focus-visible{background:var(--cta-hover);color:var(--cta-ink)}
.ctaband{background:var(--band);border:var(--border-w) solid var(--rule);border-radius:var(--radius-lg);padding:1.4rem;margin:var(--section-space) auto;text-align:center}
.ctaband .cta{margin:.3rem}

/* photo placeholder until a real job photo is in the media registry (beats the old inline styles) */
[data-media-slot]{margin:1rem 0!important;padding:1rem!important;min-height:200px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.9rem!important;border:2px dashed currentColor!important;border-radius:var(--radius)!important;opacity:.75!important}

.crosslinks ul{list-style:none;padding:0;border-top:1px solid var(--rule);padding-top:1rem;margin-top:var(--section-space)}
.faq h3{margin-top:1.2rem}
.footer{border-top:1px solid var(--rule);margin-top:3rem;padding:1.5rem 1.25rem;text-align:center;color:var(--ink2);font-size:.9rem}
.footer .creds{color:var(--ink);font-weight:600}
table{border-collapse:collapse;width:100%;font-size:.95rem;margin:1rem 0}
th,td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--rule)}
th{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2)}

.leadform{border:var(--border-w) solid var(--rule);border-radius:var(--radius-lg);padding:1.25rem;margin:var(--section-space) auto;background:var(--surface);color:var(--surface-ink);box-shadow:var(--shadow)}
.leadform h2{margin-top:0;color:var(--surface-ink)}
.leadform label{display:block;font-size:.9rem;font-weight:600;margin:.85rem 0 .25rem}
.leadform input,.leadform textarea,.leadform select{width:100%;padding:.65rem .7rem;border:var(--border-w) solid var(--field-rule);border-radius:var(--radius);background:var(--field-bg);color:var(--field-ink);font:inherit}
.leadform input:focus,.leadform textarea:focus{outline:3px solid var(--focus);outline-offset:1px}
.leadform button{margin-top:1rem;cursor:pointer;font:inherit;font-weight:700}
.cf-consent{font-size:.86rem;color:var(--ink2);margin-top:.9rem}
.cf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Copyright (c) 2026 Timothy Parks. 375px: wide tables scroll inside their own box, never the page (peer review lane 3, 2026-10-18). */
@media (max-width:640px){table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}main{padding:0 1rem 3rem}.nav{padding:.6rem 1rem}}

/* theme: craftsman (framework/themes/craftsman.css, pinned) */
/* Copyright (c) 2026 Timothy Parks. All rights reserved. Proprietary and confidential. Theme: craftsman v1.0.0 */
:root{
--bg:#faf6ec;--surface:#f1e9d6;--surface-ink:#2b2118;--band:#ebe1c9;
--ink:#2b2118;--ink2:#5a4a3a;--rule:#d4c7a8;--accent:#2f5a34;
--cta:#a8431a;--cta-ink:#ffffff;--cta-hover:#8a3411;--focus:#1f5f8b;
--hero-bg:#2c4a2f;--hero-ink:#faf6ec;--nav-bg:#3b2a1c;--nav-ink:#faf6ec;
--field-bg:#ffffff;--field-ink:#2b2118;--field-rule:#7d6d55;
--font-body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
--font-head:Georgia,"Iowan Old Style",Charter,"Palatino Linotype",serif;
--head-weight:700;--base-size:18px;--line:1.65;--h1-size:2.4rem;
--radius:8px;--radius-lg:14px;--shadow:0 2px 8px rgba(59,42,28,.15);--border-w:1px;
--wrap:70rem;--measure:44rem;--hero-cols:1.3fr 1fr;--gap:1.75rem;--section-space:2.75rem;
}
@media (prefers-color-scheme: dark){
:root{
--bg:#1c1812;--surface:#2a241b;--surface-ink:#f1e9d6;--band:#332b20;
--ink:#f1e9d6;--ink2:#c9bda3;--rule:#4a3f30;--accent:#9cc48a;
--cta:#d9693a;--cta-ink:#1c1812;--cta-hover:#e8895e;--focus:#8cc4ee;
--hero-bg:#22301f;--hero-ink:#f5efe0;--nav-bg:#120f0a;--nav-ink:#f1e9d6;
--field-bg:#2a241b;--field-ink:#f5efe0;--field-rule:#8f8168;
}
}
