:root{--bg:#faf6ee;--paper:#fffdf8;--ink:#2b2622;--muted:#6a5f55;--green:#2f5d50;--green-d:#234a3f;--gold:#e0a43a;--clay:#c96f4a;--line:#e7dccb;--r:16px;--shadow:0 1px 2px rgba(60,40,20,.06),0 6px 20px rgba(60,40,20,.07);
--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font:1rem/1.6 var(--sans)}
img{max-width:100%;height:auto;display:block}
a{color:var(--green)}a:hover{color:var(--clay)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:6px}
h1,h2,h3{font-family:var(--serif);line-height:1.2;color:var(--ink);margin:0 0 .5em}
h1{font-size:clamp(2rem,6vw,3.2rem);letter-spacing:-.01em}
h2{font-size:clamp(1.5rem,4vw,2.1rem)}
h3{font-size:1.12rem}
p{margin:0 0 1em}
.wrap{width:min(1160px,100% - 2.5rem);margin-inline:auto}
.narrow{width:min(720px,100% - 2.5rem)}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:10}.skip:focus{left:1rem}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.small{font-size:.9rem;color:var(--muted)}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:700;color:var(--clay);margin-bottom:.6rem}
/* header */
.site-head{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px;flex-wrap:wrap;padding:.4rem 0}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:1.2rem;font-weight:700}
.brand em{font-style:normal;color:var(--green)}
.logo{width:36px;height:36px;flex:none}
nav ul{list-style:none;margin:0;padding:0;display:flex;gap:.25rem}
nav a{display:block;padding:.5rem .7rem;text-decoration:none;color:var(--ink);font-weight:600;border-radius:8px}
nav a:hover{background:#f1e8d8;color:var(--ink)}
/* buttons */
.btn{display:inline-block;background:var(--green);color:#fff;text-decoration:none;font-weight:700;padding:.8rem 1.3rem;border-radius:999px;border:2px solid var(--green);transition:background .15s}
.btn:hover{background:var(--green-d);border-color:var(--green-d);color:#fff}
.btn-ghost{background:transparent;color:var(--green)}.btn-ghost:hover{background:var(--green);color:#fff}
.btn-sm{padding:.45rem .95rem;font-size:.92rem}
.cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
/* hero */
.hero{padding:3rem 0 2.5rem;background:radial-gradient(1200px 400px at 85% -10%,#efe2c9 0,transparent 60%),var(--bg)}
.hero-grid{display:grid;gap:2.5rem;align-items:center}
.lede{font-size:1.12rem;color:var(--muted);max-width:38em}
.hero-art{margin:0;position:relative;padding-bottom:12%}
.hero-art img{border-radius:var(--r);box-shadow:var(--shadow);border:6px solid var(--paper)}
.hero-art img:first-child{transform:rotate(-1.5deg);width:88%}
.hero-art img:last-child{position:absolute;right:0;bottom:0;width:58%;transform:rotate(2.5deg)}
/* makes */
.makes{padding:1rem 0 2rem}
.make-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.make-list a{display:grid;grid-template-columns:auto 1fr;column-gap:.8rem;align-items:center;padding:1rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink);height:100%}
.make-list a:hover{border-color:var(--green)}
.make-list .ico{grid-row:span 2;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#e9f0ec;color:var(--green);font-weight:800;font-size:1.15rem}
.make-list span:last-child{font-size:.88rem;color:var(--muted)}
/* free */
.free{padding:2rem 0}
.free-grid{display:grid;gap:1.5rem;align-items:center;background:var(--green);color:#f6efe2;border-radius:calc(var(--r) + 8px);padding:1.25rem}
.free-grid h2{color:#fff}.free-grid .eyebrow{color:var(--gold)}
.free-img img{border-radius:var(--r)}
.free .btn{background:var(--gold);border-color:var(--gold);color:var(--ink)}.free .btn:hover{background:#f0b955;border-color:#f0b955}
/* shelves */
.shop-anchor{scroll-margin-top:80px}
.shelf{padding:2.5rem 0;scroll-margin-top:64px}
.shelf:nth-of-type(even){background:#f4ecdf}
.shelf-head{max-width:46em;margin-bottom:1.5rem}.shelf-head p{color:var(--muted);margin:0}
.grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);transition:transform .15s}
.card:hover{transform:translateY(-2px)}
.card-img img{aspect-ratio:16/9;object-fit:cover;width:100%;border-bottom:1px solid var(--line)}
.card-body{padding:1rem 1rem .25rem;flex:1}
.card-body p:last-child{font-size:.93rem;color:var(--muted)}
.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:hover{color:var(--green);text-decoration:underline}
.tag{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--clay);margin-bottom:.35rem}
.card-foot{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem 1rem}
.price{font-weight:800;font-size:1.1rem}.price.free{color:var(--green)}
.more{margin-top:1.25rem}
.tools{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.tool{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:var(--r);padding:1.1rem}
.tool h3 a{color:var(--ink);text-decoration:none}.tool p{color:var(--muted);font-size:.93rem}
.link-arrow{font-weight:700;text-decoration:none}
/* about/contact */
.about{padding:3rem 0;scroll-margin-top:64px}
.about-grid{display:grid;gap:2rem}
.promise{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.promise li{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem;display:grid}
.promise span{color:var(--muted);font-size:.93rem}
.contact{padding:3rem 0;text-align:center;background:#efe4d2;scroll-margin-top:64px}
.contact .btn{word-break:break-all}
.doc{padding:2.5rem 0 3rem}.doc h2{font-size:1.3rem;margin-top:1.6em}
/* footer */
.site-foot{background:var(--ink);color:#e9e1d4;padding:2.5rem 0 1rem}
.site-foot a{color:#f3e7d3}.site-foot .brand{color:#fff}.site-foot .brand em{color:var(--gold)}
.site-foot .small{color:#bfb3a3}
.foot-grid{display:grid;gap:1.5rem}
.foot-h{font-family:var(--sans);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gold)}
.site-foot ul{list-style:none;padding:0;margin:0}.site-foot li{margin:.3rem 0}
.fine{border-top:1px solid #4a423b;padding-top:1rem;margin-top:1.5rem}
@media (min-width:760px){
.hero{padding:4.5rem 0 3.5rem}
.hero-grid{grid-template-columns:1.05fr 1fr}
.free-grid{grid-template-columns:1fr 1.1fr;padding:2rem;gap:2.5rem}
.about-grid{grid-template-columns:1.3fr 1fr;align-items:start}
.foot-grid{grid-template-columns:2fr 1fr 1fr}
}
@media (max-width:420px){nav a{padding:.45rem .5rem}.brand{font-size:1.05rem}}
@media (max-width:480px){.nav{flex-wrap:nowrap;gap:.25rem}.brand span{font-size:.98rem}.logo{width:30px;height:30px}nav a{padding:.4rem .4rem;font-size:.9rem}nav ul{gap:0}}
