/* Shared lightweight stylesheet for all Mackie Family Co. sites.
   One file, no frameworks, system fonts only (no external requests).
   Each site sets a theme class on <body>. */
:root{--bg:#fbf8f3;--fg:#231f1a;--muted:#5c544a;--accent:#2f5d50;--accent-fg:#fff;--card:#fff;--line:#e4ddd2;--max:44rem;
--font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--serif:Georgia,"Iowan Old Style","Times New Roman",serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.theme-family{--accent:#2f5d50}
.theme-coffee{--bg:#faf6f1;--fg:#2a1e16;--muted:#634f42;--accent:#6b3e26;--line:#e8dccf}
.theme-watch{--bg:#f5f6f8;--fg:#1a1f2b;--muted:#4f5868;--accent:#1f3a5f;--line:#dde1e8}
.theme-steady{--bg:#0f1418;--fg:#e6edf1;--muted:#a9b6bf;--accent:#3fb6a8;--accent-fg:#0b1013;--card:#161d22;--line:#26313a}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:1.0625rem/1.65 var(--font)}
img{max-width:100%;height:auto}
a{color:var(--accent);text-underline-offset:.15em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-fg);padding:.5rem 1rem;z-index:9}
.skip:focus{left:1rem}
.wrap{max-width:var(--max);margin:0 auto;padding:0 1.25rem}
header.site{border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding-top:1rem;padding-bottom:1rem}
.brand{font-family:var(--serif);font-size:1.35rem;font-weight:700;color:var(--fg);text-decoration:none;line-height:1.2}
.brand small{display:block;font:italic .85rem/1.3 var(--serif);color:var(--muted);font-weight:400}
.theme-steady .brand{font-family:var(--mono);letter-spacing:-.02em}
nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 1.1rem}
nav a{color:var(--fg);text-decoration:none;padding:0 .1rem;display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}  /* 44px tap targets */
nav a:hover,nav a[aria-current=page]{color:var(--accent);text-decoration:underline}
main{padding:2.5rem 0 3rem}
.back-links a{display:inline-block;padding:.7rem 0;min-height:44px;box-sizing:border-box}  /* 44px tap targets */
h1,h2,h3{font-family:var(--serif);line-height:1.2;margin:1.8em 0 .5em}
.theme-steady h1,.theme-steady h2,.theme-steady h3{font-family:var(--font)}
h1{font-size:clamp(1.9rem,5vw,2.6rem);margin-top:0}
h2{font-size:1.45rem}
.lede{font-size:1.2rem;color:var(--muted)}
.mission{border-left:4px solid var(--accent);padding:.25rem 0 .25rem 1rem;margin:1.75rem 0;font-family:var(--serif);font-size:1.2rem}
.theme-steady .mission{font-family:var(--font)}
.coming{display:inline-block;background:var(--accent);color:var(--accent-fg);font-weight:700;padding:.3rem .8rem;border-radius:999px;font-size:.95rem;letter-spacing:.02em}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.25rem 1.4rem;margin:1.5rem 0}
.brands{list-style:none;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}
.brands li{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem 1.2rem}
.brands strong{display:block;font-family:var(--serif);font-size:1.1rem}
.ph{background:#fff3b0;color:#3b3000;padding:0 .2em;border-radius:3px}
.theme-steady .ph{background:#4a3f00;color:#fff3b0}
.signup label{display:block;font-weight:600;margin-bottom:.4rem}
.signup .row{display:flex;flex-wrap:wrap;gap:.5rem}
.signup input[type=email]{flex:1 1 14rem;min-width:0;font:inherit;padding:.7rem .85rem;border:2px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg)}
.signup input[type=email]:focus{border-color:var(--accent)}
.signup button{font:inherit;font-weight:700;padding:.7rem 1.2rem;border:0;border-radius:8px;background:var(--accent);color:var(--accent-fg);cursor:pointer}
.signup button:hover{filter:brightness(1.1)}
.hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
/* contact form (POST /contact.php); reuses the .signup button style */
.contact-form label{margin:1rem 0 .35rem}
.contact-form label:first-of-type{margin-top:0}
.contact-form input[type=text],.contact-form input[type=email],.contact-form textarea{display:block;width:100%;box-sizing:border-box;font:inherit;padding:.7rem .85rem;border:2px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg)}
.contact-form textarea{min-height:9rem;resize:vertical}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent)}
.contact-form button{margin-top:1rem}
/* Turnstile placeholder: takes no space until Tech Ops puts the widget in it */
.turnstile-slot{margin:.75rem 0 0;min-height:0}
.turnstile-slot:empty{display:none}
.fine{font-size:.9rem;color:var(--muted);margin:.6rem 0 0}
ul.ticks{padding-left:1.2rem}
ul.ticks li{margin:.35rem 0}
code,.mono{font-family:var(--mono);font-size:.92em}
dt{font-weight:700;margin-top:1.1rem}
dd{margin:.25rem 0 0}
footer.site{border-top:1px solid var(--line);padding:1.5rem 0 2rem;font-size:.92rem;color:var(--muted)}
footer.site p{margin:0}
footer.site a{color:inherit;display:inline-block;padding:.75rem 0;line-height:1.3;min-height:44px;box-sizing:border-box}  /* 44px tap targets */
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{nav,.signup,.skip{display:none}}
.card>h2:first-child{margin-top:0}
.coming{font-family:var(--font)}

/* ---- Cookie consent banner (/assets/consent.js; hidden without JS) ---- */
.consent{position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--card);color:var(--fg);border-top:3px solid var(--accent);
  box-shadow:0 -4px 18px rgba(0,0,0,.18);max-height:60vh;overflow-y:auto;font-size:.95rem;line-height:1.45}
.consent[hidden],.consent-settings[hidden]{display:none}
.consent-in{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.25rem;padding-top:.85rem;padding-bottom:.85rem}
.consent p{margin:0;flex:1 1 22rem;min-width:0}
.consent a{color:inherit;text-decoration:underline;display:inline-block;padding:.6rem 0;min-height:44px;box-sizing:border-box}
.consent-btns{display:flex;gap:.75rem;flex:0 1 auto}
/* Accept and Decline: identical size, colour and weight */
.consent-btn{font-family:inherit;font-size:1rem;font-weight:600;line-height:1.2;min-height:44px;min-width:7.5rem;padding:.7rem 1.2rem;cursor:pointer;
  background:var(--accent);color:var(--accent-fg);border:2px solid var(--accent);border-radius:4px}
.consent-btn:hover{filter:brightness(1.08)}
@media (max-width:30rem){.consent-btns{flex:1 1 100%}.consent-btn{flex:1 1 0;min-width:0}}
@media print{.consent{display:none}}
/* footer "Cookie settings": a <button> that looks like the footer links */
.linkbtn{font:inherit;color:inherit;background:none;border:0;padding:.75rem 0;margin:0;line-height:1.3;min-height:44px;
  text-decoration:underline;text-underline-offset:.15em;cursor:pointer;box-sizing:border-box}
.design-holding footer.site .linkbtn{color:var(--off)}
.design-rustic footer.site .linkbtn{color:var(--cream)}
.design-heritage footer.site .linkbtn{color:var(--ivory)}
.design-steel footer.site .linkbtn{color:var(--steel-l)}
/* News (tools/sitecopy.py NEWS_POSTS): list of posts, newest first */
.news-list{list-style:none;margin:1.5rem 0;padding:0}
.news-list li{margin:0 0 1.75rem}
.news-list h2{margin:0 0 .25rem}
.news-date{margin:0 0 .5rem;font-size:.9rem;opacity:.8}

/* ==== Design system: "steel" (SteadyHarden: dark slate, steel, monospace accents) ====
   Any brand in tools/sitecopy.py with "design": "steel" gets this file appended to the base
   site.css, plus self-hosted fonts in /assets/fonts/.
   Fonts (SIL Open Font License 1.1, no Reserved Font Name, self-hosted, no CDN):
     Inter (body, headings)  Copyright 2020 The Inter Project Authors
     JetBrains Mono (accents) Copyright 2020 The JetBrains Mono Project Authors
   Palette: slate, steel, terminal teal, off-white. All text pairs below are WCAG AA (>= 4.5:1). */
@font-face{font-family:"Inter";src:url(/assets/fonts/inter-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url(/assets/fonts/inter-600.woff2) format("woff2");font-weight:600 700;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/assets/fonts/jbmono-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/assets/fonts/jbmono-700.woff2) format("woff2");font-weight:600 700;font-style:normal;font-display:swap}

.design-steel{
 --slate:#121a22;--slate-2:#1b2530;--slate-3:#243140;--steel:#8696a5;--steel-l:#cdd6de;--teal:#3fb6a8;--teal-l:#6fd3c6;--off:#eef2f5;
 --bg:var(--slate);--fg:#dfe6ec;--muted:#a3b1bd;--accent:var(--teal);--accent-fg:#0b1013;
 --card:var(--slate-2);--line:#2c3a48;--max:70rem;--measure:40rem;
 --font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
 --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
 font-size:1.0625rem;line-height:1.7;
}
.design-steel .wrap{padding:0 1.5rem}
.design-steel h1,.design-steel h2,.design-steel h3{font-family:var(--font);font-weight:700;letter-spacing:-.015em;color:var(--off)}
.design-steel h1{font:700 clamp(2.4rem,6.4vw,3.9rem)/1.02 var(--mono);letter-spacing:-.03em}
.design-steel h2{font-size:clamp(1.6rem,3.2vw,2.1rem);margin:0;line-height:1.15}
.design-steel main p,.design-steel main ul.ticks{max-width:var(--measure)}
.design-steel code{font-family:var(--mono);background:#0c1217;border:1px solid var(--line);padding:.05em .35em;border-radius:4px;color:var(--teal-l);white-space:nowrap}
.design-steel .ph{background:#4a3f00;color:#fff3b0}
.design-steel .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.design-steel .eyebrow{font:400 .8rem/1.2 var(--mono);letter-spacing:.06em;color:var(--teal);margin:0 0 .8rem}
.design-steel .eyebrow::before{content:"// ";color:var(--steel)}

/* header */
.design-steel header.site{background:#0d1319;border-bottom:1px solid var(--line)}
.design-steel header.site .wrap{padding-top:.8rem;padding-bottom:.8rem}
.design-steel .brand{display:flex;align-items:center;gap:.75rem;font:700 1.25rem/1.15 var(--mono);letter-spacing:-.02em;color:var(--off)}
.design-steel .brand img{width:52px;height:52px;flex:none}
.design-steel .brand small{font:400 .74rem/1.4 var(--mono);letter-spacing:0;color:var(--muted);font-style:normal}
.design-steel nav a{color:var(--steel-l);font:400 .88rem/1.4 var(--mono)}
.design-steel nav a:hover,.design-steel nav a[aria-current=page]{color:var(--teal);text-decoration-thickness:2px}

.design-steel main{padding:2.75rem 0 3.5rem}
.design-steel main:has(>.band){padding:0}
.design-steel .band{padding:clamp(3rem,7vw,5rem) 0;border-bottom:1px solid var(--line)}
.design-steel .band-alt{background:#151e27}

/* hero: slate with a faint steel grid */
.design-steel .hero-band{background:var(--slate);
 background-image:linear-gradient(rgba(134,150,165,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(134,150,165,.07) 1px,transparent 1px);
 background-size:48px 48px;background-position:-1px -1px;box-shadow:inset 0 -2px 0 var(--teal)}
.design-steel .hero-grid{display:grid;gap:2rem 3.5rem;align-items:center}
.design-steel .hero-copy{min-width:0}
.design-steel .hero-crest{justify-self:center;width:min(13rem,58vw)}
.design-steel .hero-crest img{display:block;width:100%;height:auto}
.design-steel .hero-band h1{margin:0 0 .6rem}
.design-steel .hero-band .lede{color:var(--steel-l);font:400 1.3rem/1.45 var(--font);margin:0 0 1.3rem}
.design-steel .hero-band .mission{font:400 1.05rem/1.7 var(--font);border-left:2px solid var(--teal);padding:.1rem 0 .1rem 1.1rem;margin:0 0 1.4rem;color:#cbd4dc}
.design-steel .prompt{font:400 .95rem/1.5 var(--mono);color:var(--steel-l);background:#0b1116;border:1px solid var(--line);border-radius:6px;padding:.75rem 1rem;margin:0 0 1.6rem;overflow-wrap:anywhere}
.design-steel .prompt span{color:var(--teal)}
.design-steel .actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:0}
.design-steel .btn{display:inline-block;font:700 .9rem/1 var(--mono);padding:.95rem 1.3rem;text-decoration:none;border:1px solid var(--teal);background:var(--teal);color:#0b1013;border-radius:4px}
.design-steel .btn:hover{background:var(--teal-l);border-color:var(--teal-l)}
.design-steel .btn-line{background:transparent;color:var(--off);border-color:#4a5a6a}
.design-steel .btn-line:hover{background:rgba(63,182,168,.12);border-color:var(--teal)}
@media (min-width:52rem){.design-steel .hero-grid{grid-template-columns:15rem 1fr}.design-steel .hero-crest{width:100%}}

/* section heads */
.design-steel .sec-head{border-top:1px solid #3a4a5a;padding-top:1rem;margin-bottom:2rem}
.design-steel .sec-title{font:700 clamp(1.6rem,3.2vw,2.1rem)/1.15 var(--font);color:var(--off);margin:0}
.design-steel .split{display:grid;gap:0 3.5rem}
@media (min-width:52rem){.design-steel .split{grid-template-columns:15rem 1fr}.design-steel .split .sec-head{margin-bottom:0}}
.design-steel .story p:first-child{margin-top:0}

/* what you get: four numbered panels */
.design-steel .value-grid{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));counter-reset:v}
.design-steel .value-grid li{counter-increment:v;background:var(--slate-2);border:1px solid var(--line);border-top:2px solid var(--teal);border-radius:6px;padding:1.2rem 1.25rem 1.3rem;color:#d3dbe2}
.design-steel .value-grid li::before{content:"0" counter(v);display:block;font:700 .8rem/1 var(--mono);color:var(--teal);margin-bottom:.7rem}

/* signup card */
.design-steel .card{border-radius:6px;border:1px solid var(--line);border-left:2px solid var(--teal);background:var(--slate-2);padding:1.6rem 1.7rem;margin:0;max-width:40rem}
.design-steel main>.wrap .card{margin:1.5rem 0}
.design-steel .coming{border-radius:0;background:transparent;color:var(--off);padding:0;font:700 clamp(1.4rem,3vw,1.8rem)/1.2 var(--font);letter-spacing:-.01em}
.design-steel .signup label{font-family:var(--mono);font-weight:400;font-size:.9rem;color:var(--steel-l)}
.design-steel .signup input[type=email],.design-steel .contact-form input[type=text],.design-steel .contact-form textarea{border-radius:4px;border:1px solid #4a5a6a;background:#0c1217;color:var(--off)}
.design-steel .signup input[type=email]:focus,.design-steel .contact-form input:focus,.design-steel .contact-form textarea:focus{border-color:var(--teal);outline:2px solid var(--teal);outline-offset:0}
.design-steel .signup button{border-radius:4px;background:var(--teal);color:#0b1013;font-family:var(--mono);font-weight:700}
.design-steel .signup button:hover{filter:none;background:var(--teal-l)}

/* plain pages */
.design-steel main>.wrap>h1{font-size:clamp(2rem,5vw,2.8rem);padding-bottom:.8rem;border-bottom:1px solid #3a4a5a;max-width:var(--measure)}
.design-steel main>.wrap>h2{font-size:1.35rem;margin:2rem 0 .4rem}
.design-steel .lede{color:var(--muted)}

/* footer */
.design-steel footer.site{background:#0b1116;color:var(--muted);border-top:1px solid var(--line);padding:2.2rem 0 2.6rem}
.design-steel footer.site strong{font-family:var(--mono);color:var(--off)}
.design-steel footer.site a{color:var(--steel-l)}
.design-steel :focus-visible{outline-color:var(--teal)}
body.design-steel{display:flex;flex-direction:column;min-height:100vh}
body.design-steel>main{flex:1 0 auto}
