/* 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: "field" (Mackie Knife Co. draft: iron grey, steel, bone, oiled walnut / saddle leather) ====
   Any brand in tools/sitecopy.py with "design": "field" 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):
     Literata (headings, wordmark)  Copyright 2017 The Literata Project Authors
     Inter (body)                   Copyright 2020 The Inter Project Authors
   Palette: iron, steel, bone paper, walnut / leather, dusky heather for small rules only (the saltire).
   Distinct from the coffee browns, the watch heather/sage and the SteadyHarden teal.
   All text pairs below are WCAG AA (>= 4.5:1). Ornament: a thin rule with a small saltire; nothing else. */
@font-face{font-family:"Literata";src:url(/assets/fonts/literata-700.woff2) format("woff2");font-weight:600 700;font-style:normal;font-display:swap}
@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}

.design-field{
 --iron:#232527;--iron-2:#2f3235;--iron-3:#3d4145;--steel:#8e9296;--steel-l:#cfd2d4;--bone:#eeeae2;--paper:#f8f6f1;
 --walnut:#4a3324;--leather:#7d5131;--leather-l:#c89a6e;--heather:#7a5f6e;--heather-l:#c4aebb;
 --bg:var(--paper);--fg:#232527;--muted:#55595d;--accent:var(--leather);--accent-fg:#ffffff;--rule:#d6d0c4;
 --card:#ffffff;--line:#d6d0c4;--max:70rem;--measure:40rem;
 --serif:"Literata",Georgia,"Times New Roman",serif;
 --font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
 font-size:1.0625rem;line-height:1.7;
}
.design-field .wrap{padding:0 1.5rem}
.design-field h1,.design-field h2,.design-field h3{font-family:var(--serif);font-weight:700;letter-spacing:-.005em;color:var(--iron)}
.design-field h1{font-size:clamp(2.4rem,6.4vw,3.8rem);line-height:1.05}
.design-field h2{font-size:clamp(1.6rem,3.2vw,2.15rem);margin:0;line-height:1.15}
.design-field main p,.design-field main ul.ticks{max-width:var(--measure)}
.design-field a{color:var(--leather)}
.design-field .ph{background:#fff1b8;color:#3a2a00}
.design-field .eyebrow{font:600 .78rem/1.2 var(--font);letter-spacing:.16em;text-transform:uppercase;color:var(--leather);margin:0 0 .8rem}

/* header: iron bar */
.design-field header.site{background:var(--iron);border-bottom:3px solid var(--walnut)}
.design-field header.site .wrap{padding-top:.8rem;padding-bottom:.8rem}
.design-field .brand{display:flex;align-items:center;gap:.75rem;font:700 1.3rem/1.15 var(--serif);color:var(--bone)}
.design-field .brand sup.tm{font:600 .55em/1 var(--font);vertical-align:super;margin-left:.08em}
.design-field .brand img{width:52px;height:52px;flex:none}
.design-field .brand small{font:600 .68rem/1.5 var(--font);letter-spacing:.14em;text-transform:uppercase;color:#b4b8bb;font-style:normal}
.design-field nav a{color:var(--steel-l);font:600 .86rem/1.4 var(--font)}
.design-field nav a:hover,.design-field nav a[aria-current=page]{color:#ffffff;text-decoration-color:var(--leather-l);text-decoration-thickness:2px}

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

/* hero: iron with a faint satin (brushed) finish */
.design-field .hero-band{background:var(--iron);color:#dcdfe1;
 background-image:repeating-linear-gradient(180deg,rgba(255,255,255,.022) 0 1px,transparent 1px 3px);border-bottom:0;box-shadow:inset 0 -3px 0 var(--walnut)}
.design-field .hero-band h1{color:var(--bone);margin:0 0 .6rem}
.design-field .hero-band .eyebrow{color:var(--leather-l)}
.design-field .hero-grid{display:grid;gap:2rem 3.5rem;align-items:center}
.design-field .hero-copy{min-width:0}
.design-field .hero-crest{justify-self:center;width:min(13rem,58vw)}
.design-field .hero-crest-k3{width:min(20rem,82vw);justify-self:start}   /* horizontal mark: line up with the left-aligned hero text when stacked */
.design-field .hero-crest img{display:block;width:100%;height:auto}
.design-field .hero-band .lede{color:var(--steel-l);font:400 1.3rem/1.45 var(--font);margin:0 0 1.3rem}
.design-field .hero-band .mission{font:400 1.05rem/1.7 var(--font);border-left:2px solid var(--leather-l);padding:.1rem 0 .1rem 1.1rem;margin:0 0 1.4rem;color:#d3d6d8}
.design-field .status-line{font:600 .8rem/1.3 var(--font);letter-spacing:.16em;text-transform:uppercase;color:var(--steel-l);margin:0 0 1.8rem;display:flex;align-items:center;gap:.7rem}
.design-field .status-line::before{content:"";width:2.2rem;height:1px;background:var(--leather-l);flex:none}
.design-field .actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:0}
.design-field .btn{display:inline-block;font:600 .92rem/1 var(--font);letter-spacing:.02em;padding:.95rem 1.35rem;text-decoration:none;border:1px solid var(--leather-l);background:var(--leather-l);color:var(--iron);border-radius:3px}
.design-field .btn:hover{background:#d8b08a;border-color:#d8b08a}
.design-field .btn-line{background:transparent;color:var(--bone);border-color:#6b7074}
.design-field .btn-line:hover{background:rgba(200,154,110,.12);border-color:var(--leather-l)}
@media (min-width:52rem){.design-field .hero-grid{grid-template-columns:15rem 1fr}.design-field .hero-crest{width:100%}
 .design-field .hero-grid:has(.hero-crest-k3){grid-template-columns:22rem 1fr}}

/* section heads: numeral over a fine rule; the story head carries the saltire rule */
.design-field .sec-head{border-top:1px solid #bdb6a8;padding-top:1rem;margin-bottom:2rem}
.design-field .sec-head .eyebrow{color:var(--muted);letter-spacing:.2em}
.design-field .sec-title{font:700 clamp(1.6rem,3.2vw,2.15rem)/1.15 var(--serif);color:var(--iron);margin:0}
.design-field .saltire{display:block;width:120px;height:auto;margin:1.1rem 0 0}
.design-field .split{display:grid;gap:0 3.5rem}
@media (min-width:52rem){.design-field .split{grid-template-columns:15rem 1fr}.design-field .split .sec-head{margin-bottom:0}}
.design-field .story p:first-child{margin-top:0}

/* what we're making: illustration + feature list */
.design-field .make-grid{display:grid;gap:2.5rem 4rem;align-items:center}
.design-field .art{margin:0;background:var(--bone);border:1px solid var(--rule);border-radius:4px;padding:1.5rem 1.25rem 1rem}
.design-field .art img{display:block;width:100%;height:auto}
.design-field .art figcaption{font:400 .85rem/1.4 var(--font);color:var(--muted);text-align:center;margin-top:.8rem}
.design-field .features{list-style:none;margin:0;padding:0;display:grid;gap:0}
.design-field .features li{padding:1.15rem 0;border-top:1px solid var(--rule)}
.design-field .features li:last-child{border-bottom:1px solid var(--rule)}
.design-field .features h3{font-size:1.35rem;margin:0 0 .25rem;line-height:1.2}
.design-field .features p{margin:0;color:#3d4145}
@media (min-width:52rem){.design-field .make-grid{grid-template-columns:minmax(18rem,1.1fr) 1fr}}

/* signup card */
.design-field .card{border-radius:4px;border:1px solid var(--rule);border-top:3px solid var(--walnut);background:#ffffff;padding:1.6rem 1.7rem;margin:0;max-width:40rem}
.design-field main>.wrap .card{margin:1.5rem 0}
.design-field .coming{border-radius:0;background:transparent;color:var(--iron);padding:0;font:700 clamp(1.4rem,3vw,1.8rem)/1.2 var(--serif)}
.design-field .signup label{font-weight:600;font-size:.9rem;color:var(--iron-3)}
.design-field .signup input[type=email],.design-field .contact-form input[type=text],.design-field .contact-form textarea{border-radius:3px;border:1px solid #8e9296;background:#ffffff;color:var(--iron)}
.design-field .signup input[type=email]:focus,.design-field .contact-form input:focus,.design-field .contact-form textarea:focus{border-color:var(--leather);outline:2px solid var(--leather);outline-offset:0}
.design-field .signup button{border-radius:3px;background:var(--iron);color:var(--bone);font-weight:600}
.design-field .signup button:hover{filter:none;background:var(--iron-3)}
.design-field .fine{color:var(--muted)}

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

/* footer */
.design-field footer.site{background:var(--iron);color:#b4b8bb;border-top:3px solid var(--walnut);padding:2.2rem 0 2.6rem}
.design-field footer.site strong{font-family:var(--serif);color:var(--bone)}
.design-field footer.site a,.design-field footer.site .linkbtn{color:var(--steel-l)}
.design-field footer.site a:hover,.design-field footer.site .linkbtn:hover{color:#ffffff}
.design-field :focus-visible{outline-color:var(--leather)}
.design-field footer.site :focus-visible,.design-field header.site :focus-visible,.design-field .hero-band :focus-visible{outline-color:var(--leather-l)}
body.design-field{display:flex;flex-direction:column;min-height:100vh}
body.design-field>main{flex:1 0 auto}
