/* Maple & Pine Press — site styles (from the client-approved design mockup) */
.site{
  --ink:#1c1a17;
  --ink-soft:#4a453e;
  --cream:#faf7f1;
  --paper:#ffffff;
  --parchment:#f3eee4;
  --accent:#8c2f22;
  --accent-dark:#6e2419;
  --gold:#b08d47;
  --line:#e2dcce;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --sans:-apple-system,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  font-family:var(--serif);
  background:var(--cream);
  color:var(--ink);
  line-height:1.65;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
}
.site *{box-sizing:border-box;}
.site main{flex:1;animation:hp-rise .45s ease both;}
@keyframes hp-rise{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion: reduce){
  .site main{animation:none;}
  .site .card, .site .hp-btn, .site .buy, .site nav a{transition:none !important;}
}

.site .topbar{background:var(--ink);color:#d9d2c4;font-family:var(--sans);font-size:12.5px;letter-spacing:.04em;text-align:center;padding:8px 16px;}
.site .topbar b{color:#fff;font-weight:600;}

.site-header{background:var(--cream);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;}
.site .hwrap{max-width:1120px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:76px;}
.site .wordmark{cursor:pointer;user-select:none;line-height:1.1;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:13px;}
.site .wm-shield{display:block;flex:none;height:46px;width:auto;}
.site .wm-text{display:block;}
.site .wm1{display:block;font-size:21px;letter-spacing:.22em;font-weight:700;}
.site .wm2{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.42em;color:var(--accent);text-transform:uppercase;margin-top:2px;}
.site nav{display:flex;gap:6px;font-family:var(--sans);align-items:center;}
.site nav a{font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;padding:10px 13px;border-radius:4px;cursor:pointer;transition:color .15s;}
.site nav a:hover{color:var(--accent);}
.site nav a.active{color:var(--accent);font-weight:600;}
.site nav a.cta{background:var(--accent);color:#fff;font-weight:600;}
.site nav a.cta:hover{background:var(--accent-dark);color:#fff;}

.site .wrap{max-width:1120px;margin:0 auto;padding:0 24px;}

.site .hero{background:linear-gradient(160deg,#211d18 0%,#33291f 55%,#48331f 100%);color:#f4efe4;overflow:hidden;}
.site .hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;padding-top:72px;padding-bottom:72px;}
.site .kicker{font-family:var(--sans);font-size:11.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;}
.site .hero h1{font-size:46px;line-height:1.12;font-weight:600;margin:0 0 10px;}
.site .hero .sub{font-size:19px;font-style:italic;color:#d8cdb8;margin-bottom:22px;}
.site .hero p.blurb{font-size:16px;color:#cfc6b4;max-width:520px;margin:0 0 30px;}
.site .btnrow{display:flex;gap:14px;flex-wrap:wrap;}
.site .hp-btn{font-family:var(--sans);font-size:13.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;padding:14px 26px;border-radius:3px;cursor:pointer;text-decoration:none;display:inline-block;border:1px solid transparent;transition:all .15s;}
.site .hp-btn.primary{background:var(--accent);color:#fff;}
.site .hp-btn.primary:hover{background:#a03a2b;}
.site .hp-btn.ghost{border-color:#8a7c62;color:#e8dfc9;background:transparent;}
.site .hp-btn.ghost:hover{border-color:#d8cdb8;color:#fff;}
.site .hero-cover{justify-self:center;position:relative;}
.site .hero-cover img{width:300px;display:block;border-radius:3px;box-shadow:0 30px 60px rgba(0,0,0,.55),0 4px 14px rgba(0,0,0,.4);transform:rotate(1.5deg);}
.site .badge{position:absolute;top:-14px;right:-18px;z-index:2;background:var(--gold);color:#241c0e;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:8px 14px;border-radius:2px;box-shadow:0 6px 16px rgba(0,0,0,.35);}

.site section.band{padding:72px 0;}
.site .sechead{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:40px;gap:20px;flex-wrap:wrap;}
.site .sechead h2{font-size:30px;font-weight:600;margin:0;}
.site .sechead .rule{flex:1;height:1px;background:var(--line);min-width:60px;}
.site .sechead a{font-family:var(--sans);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);text-decoration:none;cursor:pointer;white-space:nowrap;}

.site .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:36px;}
.site .card{cursor:pointer;transition:transform .18s;text-decoration:none;color:var(--ink);display:block;}
.site .card:hover{transform:translateY(-5px);}
.site .cover{aspect-ratio:5/8;border-radius:3px;box-shadow:0 14px 30px rgba(28,24,18,.22),0 2px 6px rgba(28,24,18,.15);overflow:hidden;position:relative;margin-bottom:16px;background:#ddd;}
.site .cover img{width:100%;height:100%;object-fit:cover;display:block;}
.site .cover.mock{display:flex;flex-direction:column;justify-content:space-between;padding:22px 18px;color:#fff;}
.site .cover.mock .mtit{font-size:22px;line-height:1.15;font-weight:700;}
.site .cover.mock .mauth{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.85;}
.site .cover.mock .mtag{font-family:var(--sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:.7;}
.site .cov-glider{background:radial-gradient(circle at 75% 15%,#ffd98a 0%,rgba(255,217,138,0) 34%),linear-gradient(165deg,#2e6f8e 0%,#7fb6c9 55%,#e8b96b 100%);}
.site .cov-spider{background:radial-gradient(circle at 22% 20%,#cfd8a8 0%,rgba(207,216,168,0) 40%),linear-gradient(160deg,#233c2b 0%,#3f6b45 60%,#7a9b57 100%);}
.site .cov-soon{background:repeating-linear-gradient(45deg,#efe9db,#efe9db 12px,#e7dfcd 12px,#e7dfcd 24px);color:var(--ink-soft)!important;border:1px dashed #c9c0ab;box-shadow:none;}
.site .card h3{font-size:18px;font-weight:600;line-height:1.3;margin:0;}
.site .card .meta{font-family:var(--sans);font-size:12.5px;color:var(--ink-soft);margin-top:5px;}
.site .pill{display:inline-block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:4px 10px;border-radius:20px;margin-bottom:10px;}
.site .pill.policy{background:#f4e3df;color:var(--accent-dark);}
.site .pill.kids{background:#e4ecdd;color:#3c5f33;}
.site .pill.soon{background:#eee7d6;color:#8a7440;}

.site .strip{background:var(--ink);color:#cfc6b4;padding:64px 0;}
.site .strip .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;text-align:center;}
.site .strip h3{color:#fff;font-size:19px;margin:0 0 10px;font-weight:600;}
.site .strip p{font-size:14.5px;margin:0;}
.site .strip .num{font-size:34px;color:var(--gold);display:block;margin-bottom:8px;font-weight:600;}

.site .newsl{background:var(--parchment);border-top:1px solid var(--line);padding:64px 0;text-align:center;}
.site .newsl h2{font-size:28px;margin:0 0 10px;}
.site .newsl p{color:var(--ink-soft);max-width:520px;margin:0 auto 26px;}
.site .nlform{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.site .nlform input{font-family:var(--sans);font-size:15px;padding:13px 18px;border:1px solid #cfc6ae;border-radius:3px;width:320px;max-width:80vw;background:#fff;color:var(--ink);}
.site .nlform input:focus{outline:2px solid var(--gold);border-color:var(--gold);}
.site .nlbtn{font-family:var(--sans);font-size:13.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;padding:14px 26px;border-radius:3px;cursor:pointer;border:none;background:var(--accent);color:#fff;transition:background .15s;}
.site .nlbtn:hover{background:#a03a2b;}
.site .nlnote{font-family:var(--sans);font-size:12px;color:#8d8570;margin-top:14px;}
.site .nlok{color:#3c5f33;font-weight:600;margin-top:14px;}
.site .nlerr{color:var(--accent-dark);font-weight:600;margin-top:14px;}

.site .pagehead{background:var(--parchment);border-bottom:1px solid var(--line);padding:56px 0 46px;}
.site .pagehead h1{font-size:38px;font-weight:600;margin:0;}
.site .pagehead p{color:var(--ink-soft);max-width:640px;margin:8px 0 0;}
.site .filters{display:flex;gap:10px;margin:34px 0 38px;flex-wrap:wrap;font-family:var(--sans);}
.site .fbtn{font-size:13px;letter-spacing:.05em;padding:9px 20px;border-radius:24px;border:1px solid #cfc6ae;background:#fff;color:var(--ink-soft);cursor:pointer;transition:all .15s;}
.site .fbtn:hover{border-color:var(--accent);color:var(--accent);}
.site .fbtn.on{background:var(--ink);border-color:var(--ink);color:#fff;}

.site .crumbs{font-family:var(--sans);font-size:12.5px;color:#9a917c;padding:22px 0 0;}
.site .crumbs a{color:var(--accent);cursor:pointer;text-decoration:none;}
.site .detail{display:grid;grid-template-columns:340px 1fr;gap:60px;padding:44px 0 72px;align-items:start;}
.site .dcover img{width:100%;border-radius:3px;box-shadow:0 24px 48px rgba(28,24,18,.3);}
.site .dmeta{font-family:var(--sans);font-size:13px;color:var(--ink-soft);border:1px solid var(--line);border-radius:4px;background:#fff;margin-top:24px;}
.site .dmeta > div{display:flex;justify-content:space-between;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line);}
.site .dmeta > div:last-child{border-bottom:none;}
.site .dmeta b{color:var(--ink);font-weight:600;}
.site .dinfo h1{font-size:36px;line-height:1.15;font-weight:600;margin:0;}
.site .dinfo .dsub{font-size:19px;font-style:italic;color:var(--ink-soft);margin:8px 0 4px;}
.site .dinfo .dauth{font-family:var(--sans);font-size:14px;letter-spacing:.06em;color:var(--accent);text-transform:uppercase;margin:14px 0 24px;}
.site .buyrow{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px;align-items:center;}
.site .buy{font-family:var(--sans);font-size:13.5px;font-weight:600;padding:13px 22px;border-radius:3px;border:1.5px solid var(--accent);color:var(--accent);text-decoration:none;cursor:pointer;transition:all .15s;background:#fff;display:inline-block;}
.site .buy:hover{background:var(--accent);color:#fff;}
.site .buynote{font-family:var(--sans);font-size:12.5px;color:#8d8570;margin:0 0 30px;}
.site .dinfo h4{font-family:var(--sans);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:#9a917c;margin:30px 0 12px;}
.site .dinfo p{margin:0 0 16px;font-size:16.5px;}
.site blockquote.pull{border-left:3px solid var(--gold);padding:6px 0 6px 22px;font-style:italic;font-size:19px;color:var(--ink-soft);margin:28px 0;}
.site .dinfo .authlink{color:var(--accent);cursor:pointer;text-decoration:none;}

.site .about2col{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:64px 0;align-items:start;}
.site .about2col h2{font-size:28px;margin:0 0 16px;font-weight:600;}
.site .about2col p{margin:0 0 16px;color:var(--ink-soft);font-size:16.5px;}
.site .founder{background:#fff;border:1px solid var(--line);border-radius:5px;padding:36px;}
.site .founder .init{width:76px;height:76px;border-radius:50%;background:var(--ink);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;margin-bottom:18px;}
.site .founder h3{font-size:21px;margin:0 0 2px;}
.site .founder .role{font-family:var(--sans);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;}
.site .creds{font-family:var(--sans);font-size:13px;color:var(--ink-soft);line-height:2;}
.site .creds span{display:inline-block;background:var(--parchment);border-radius:3px;padding:2px 9px;margin:0 6px 6px 0;}

.site .subgrid{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:56px 0 72px;align-items:start;}
.site .subgrid h2{font-size:26px;margin:0 0 14px;font-weight:600;}
.site .subgrid p,.site .subgrid li{color:var(--ink-soft);font-size:16px;margin-bottom:12px;}
.site .subgrid ol{padding-left:22px;margin:0;}
.site .sform{background:#fff;border:1px solid var(--line);border-radius:5px;padding:36px;font-family:var(--sans);}
.site .sform label{display:block;font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:18px 0 6px;}
.site .sform label:first-child{margin-top:0;}
.site .sform input,.site .sform select,.site .sform textarea{width:100%;font-family:var(--sans);font-size:15px;padding:12px 14px;border:1px solid #cfc6ae;border-radius:3px;background:var(--cream);color:var(--ink);}
.site .sform textarea{min-height:110px;resize:vertical;}
.site .sform input:focus,.site .sform select:focus,.site .sform textarea:focus{outline:2px solid var(--gold);border-color:var(--gold);}
.site .sbtn{width:100%;margin-top:24px;border:none;font-family:var(--sans);font-size:13.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;padding:14px 26px;border-radius:3px;cursor:pointer;background:var(--accent);color:#fff;transition:background .1s, transform .1s;}
.site .sbtn:hover{background:var(--accent-dark);}
.site .sbtn:active{transform:scale(.985);}
.site .sbtn:disabled{opacity:.6;cursor:wait;}
.site .formok{color:#3c5f33;font-weight:600;margin-top:14px;text-align:center;}
.site .fieldnote{font-family:var(--sans);font-size:12px;color:#8d8570;line-height:1.5;margin-top:6px;}
.site .checkrow{display:flex;gap:10px;align-items:flex-start;margin-top:20px;font-size:13px !important;font-weight:400 !important;text-transform:none !important;letter-spacing:0 !important;color:var(--ink-soft) !important;line-height:1.5;cursor:pointer;}
.site .checkrow input{width:auto;margin-top:2px;accent-color:var(--accent);cursor:pointer;}
.site .formerr{color:var(--accent-dark);font-weight:600;margin-top:14px;text-align:center;}

.site .xgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:32px;padding:56px 0 72px;}
.site .xcard{background:#fff;border:1px solid var(--line);border-radius:6px;padding:30px;display:flex;flex-direction:column;gap:14px;transition:transform .18s, box-shadow .18s;}
.site .xcard:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(28,24,18,.12);}
.site .xhead{display:flex;gap:16px;align-items:center;}
.site .xinit{width:56px;height:56px;border-radius:12px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;flex-shrink:0;}
.site .xtag{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:2px;}
.site .xcard h3{font-size:21px;font-weight:600;margin:0;}
.site .xblurb{color:var(--ink-soft);font-size:15.5px;margin:0;flex:1;}
.site .xvisit{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);text-decoration:none;border-top:1px solid var(--line);padding-top:16px;transition:color .15s;}
.site .xvisit:hover{color:var(--accent-dark);}

.site-footer{background:var(--ink);color:#a89f8b;padding:56px 0 32px;font-family:var(--sans);font-size:13.5px;}
.site-footer .fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:44px;margin-bottom:44px;}
.site-footer .fmark{font-family:var(--serif);color:#fff;font-size:18px;letter-spacing:.2em;margin-bottom:12px;}
.site-footer h5{color:#fff;font-size:12px;letter-spacing:.18em;text-transform:uppercase;margin:0 0 14px;}
.site-footer a{display:block;color:#a89f8b;text-decoration:none;margin-bottom:9px;cursor:pointer;}
.site-footer a:hover{color:var(--gold);}
.site-footer p{margin:0;}
.site-footer .fbottom{border-top:1px solid #35302a;padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12px;color:#736c5c;}

/* Author Toolkit */
.site .tkgrid{display:grid;grid-template-columns:1fr 1fr;gap:44px;padding:56px 0 72px;align-items:start;}
.site .tksec h2{font-size:24px;font-weight:600;margin:0 0 10px;}
.site .tksec > p{color:var(--ink-soft);font-size:15.5px;margin:0 0 18px;}
.site .tkmatch{font-family:var(--sans);font-size:13.5px;color:var(--ink-soft);border:1px solid var(--line);border-radius:4px;background:var(--cream);padding:10px 14px;margin-bottom:8px;line-height:1.5;}
.site .tkmatch b{display:block;color:var(--ink);}
.site .fieldnote a{color:var(--accent);}
@media(max-width:880px){.site .tkgrid{grid-template-columns:1fr;}}

/* Press Assistant */
.site .pa-root{position:fixed;bottom:22px;right:22px;z-index:90;display:flex;flex-direction:column;align-items:flex-end;gap:12px;}
.site .pa-fab{font-family:var(--sans);font-size:13.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--accent);color:#fff;border:none;border-radius:26px;padding:14px 24px;cursor:pointer;box-shadow:0 10px 26px rgba(28,24,18,.3);transition:background .15s, transform .12s;}
.site .pa-fab:hover{background:var(--accent-dark);transform:translateY(-1px);}
.site .pa-panel{width:340px;max-width:calc(100vw - 44px);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 24px 60px rgba(28,24,18,.28);overflow:hidden;display:flex;flex-direction:column;}
.site .pa-head{background:var(--ink);color:#f4efe4;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;}
.site .pa-title{font-size:17px;font-weight:600;}
.site .pa-sub{font-family:var(--sans);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);}
.site .pa-close{background:none;border:none;color:#d9d2c4;font-size:24px;line-height:1;cursor:pointer;padding:0 2px;}
.site .pa-close:hover{color:#fff;}
.site .pa-log{height:280px;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--cream);}
.site .pa-msg{font-family:var(--sans);font-size:14px;line-height:1.5;padding:10px 13px;border-radius:10px;max-width:85%;}
.site .pa-msg.assistant{background:#fff;border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:3px;}
.site .pa-msg.user{background:var(--accent);color:#fff;align-self:flex-end;border-bottom-right-radius:3px;}
.site .pa-busy{color:#8d8570;font-style:italic;}
.site .pa-inputrow{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:#fff;}
.site .pa-inputrow input{flex:1;font-family:var(--sans);font-size:14px;padding:10px 12px;border:1px solid #cfc6ae;border-radius:6px;background:var(--cream);color:var(--ink);}
.site .pa-inputrow input:focus{outline:2px solid var(--gold);border-color:var(--gold);}
.site .pa-send{font-family:var(--sans);font-size:12.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:var(--accent);color:#fff;border:none;border-radius:6px;padding:10px 16px;cursor:pointer;}
.site .pa-send:hover{background:var(--accent-dark);}
.site .pa-send:disabled{opacity:.6;cursor:wait;}
.site .pa-note{font-family:var(--sans);font-size:10.5px;color:#9a917c;text-align:center;padding:6px 10px 10px;background:#fff;}

@media(max-width:880px){
  .site .hero .wrap,.site .detail,.site .about2col,.site .subgrid{grid-template-columns:1fr;}
  .site .strip .wrap{grid-template-columns:1fr;gap:32px;}
  .site-footer .fgrid{grid-template-columns:1fr 1fr;}
  .site .hero h1{font-size:34px;}
  .site nav a{padding:8px 8px;font-size:12px;}
  .site .hwrap{flex-direction:column;height:auto;padding:14px 16px;gap:10px;}
  .site .wm-shield{height:38px;}
  .site-header{position:static;}
}

/* The Arms (shield) sits left of the text wordmark. The header bar is capped at
   1120px, so the shield's extra width would otherwise push "Browse Catalog" onto
   a second line on ordinary desktop widths: tighten wordmark and nav at the base
   desktop size, and hide the subtitle below 1060px. */
@media(min-width:881px){
  .site .wm-shield{height:42px;}
  .site .wordmark{gap:11px;}
  .site .wm1{font-size:19px;letter-spacing:.155em;}
  .site .wm2{font-size:9.5px;letter-spacing:.28em;}
  .site nav{gap:2px;}
  .site nav a{padding:10px 10px;font-size:13px;}
}
@media(max-width:1060px) and (min-width:881px){
  .site .wm2{display:none;}
  .site .wm-shield{height:38px;}
  .site nav a{padding:9px 7px;font-size:12.5px;letter-spacing:.03em;}
}

/* ── Author Toolkit: Print Cover Studio + Interior Layout Studio ──────────
   Semantic colours here mean something and are not decoration:
   accent = trim/cut line, gold = gutter (binding), blue = safe area.
   Blue is the one hue borrowed from outside the press palette, because
   prepress convention reads it as "keep inside this" and nothing in the
   house palette carries that meaning. */
.site .wrap.tk{ padding-bottom:64px }
.site .tk-grid{ display:grid; grid-template-columns:300px minmax(0,1fr); gap:28px; align-items:start }
@media(max-width:880px){ .site .tk-grid{ grid-template-columns:1fr } }

.site .tk-panel{ background:var(--paper); border:1px solid var(--line); padding:20px }
.site .tk-panel + .tk-panel{ margin-top:20px }
.site .tk-legend{ font-family:var(--sans); font-size:10.5px; letter-spacing:.13em;
  text-transform:uppercase; color:var(--ink-soft); margin:0 0 14px;
  padding-bottom:9px; border-bottom:1px solid var(--line) }

.site .tk-field{ display:flex; flex-direction:column; gap:6px; margin-bottom:16px }
.site .tk-field:last-child{ margin-bottom:0 }
.site .tk-field > span:first-child{ font-family:var(--sans); font-size:12.5px; font-weight:500; color:var(--ink-soft) }
.site .tk-field input[type=text], .site .tk-field input:not([type]), .site .tk-field input[type=number], .site .tk select{
  font-family:var(--sans); font-size:14px; color:var(--ink); background:var(--cream);
  border:1px solid var(--line); padding:8px 10px; width:100%; border-radius:2px }
.site .tk-field input[type=number]{ font-variant-numeric:tabular-nums }
.site .tk input:focus-visible, .site .tk select:focus-visible{ outline:2px solid var(--accent); outline-offset:1px }
.site .tk input[type=range]{ width:100%; accent-color:var(--accent); margin:2px 0 0; padding:0; border:0; background:none }
.site .tk-hint{ font-family:var(--sans); font-size:11.5px; color:var(--ink-soft); opacity:.85 }
.site .tk-check{ display:flex; flex-direction:row; align-items:center; gap:9px; margin-bottom:16px }
.site .tk-check input{ width:16px; height:16px; accent-color:var(--accent); flex:none }
.site .tk-check span{ font-family:var(--sans); font-size:13.5px; color:var(--ink) }

.site .tk-stage{ background:var(--parchment); border:1px solid var(--line); padding:22px }
.site .tk-stagehead{ display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between;
  align-items:baseline; margin-bottom:16px }
.site .tk-stagehead h2{ font-family:var(--serif); font-size:17px; font-weight:500; margin:0 }
.site .tk-scale{ font-family:var(--sans); font-size:11px; color:var(--ink-soft); font-variant-numeric:tabular-nums }
.site .tk-preview{ width:100%; overflow-x:auto }
.site .tk-preview svg{ display:block; width:100%; height:auto; min-width:440px }

.site .tk-key{ display:flex; flex-wrap:wrap; gap:14px; margin-top:16px; padding-top:14px; border-top:1px solid var(--line) }
.site .tk-key span{ display:flex; align-items:center; gap:6px; font-family:var(--sans); font-size:11.5px; color:var(--ink-soft) }
.site .tk-key i{ width:15px; height:0; border-top-width:2px; border-top-style:dashed; flex:none }

.site .tk-specs{ width:100%; border-collapse:collapse; font-family:var(--sans); font-size:13.5px }
.site .tk-specs td{ padding:9px 0; border-bottom:1px solid var(--line) }
.site .tk-specs td:first-child{ color:var(--ink-soft); padding-right:10px }
.site .tk-specs td:last-child{ text-align:right; font-variant-numeric:tabular-nums; font-weight:500; white-space:nowrap }
.site .tk-specs tr:last-child td{ border-bottom:none }

.site .tk-chip{ display:inline-flex; align-items:center; font-size:11.5px; font-weight:600; padding:4px 9px; border-radius:2px }
.site .tk-chip.ok{ background:#e6ede6; color:#2f5c3a }
.site .tk-chip.warn{ background:#f6ebdd; color:#8a5a21 }

.site .tk-notice{ font-family:var(--sans); font-size:13px; padding:10px 12px; margin-top:12px; border-left:3px solid }
.site .tk-notice.ok{ background:#e6ede6; color:#2f5c3a; border-color:currentColor }
.site .tk-notice.warn{ background:#f6ebdd; color:#8a5a21; border-color:currentColor }
.site .tk-notice.bad{ background:#f6e1de; color:#8c2f22; border-color:currentColor }

.site .tk-copy{ margin-top:18px; font-family:var(--sans); font-size:13px; font-weight:500;
  background:var(--accent); color:var(--paper); border:none; border-radius:2px;
  padding:10px 16px; cursor:pointer }
.site .tk-copy:hover{ background:var(--accent-dark) }
.site .tk-copy:focus-visible{ outline:2px solid var(--ink); outline-offset:2px }

.site .tk-foot{ margin-top:34px; padding-top:18px; border-top:1px solid var(--line);
  font-family:var(--sans); font-size:12px; color:var(--ink-soft); max-width:76ch }

/* SVG tokens for the to-scale templates */
.site .wrap.tk{
  --tk-paper:var(--paper); --tk-sunk:var(--parchment); --tk-sheet:var(--paper);
  --tk-ink:var(--ink); --tk-ink2:var(--ink-soft); --tk-ink3:#9a9382;
  --tk-rule:var(--line); --tk-pine:var(--ink); --tk-pine-soft:var(--cream);
  --tk-trim:var(--accent); --tk-safe:#2c6e8f; --tk-gutter:var(--gold);
  --tk-reserve:#a9a294; --tk-textblock:var(--cream); --tk-serif:var(--serif);
}
.site .tklink{ display:inline-block; font-family:var(--sans); font-size:14px; font-weight:500;
  color:var(--paper); background:var(--accent); padding:10px 16px; border-radius:2px;
  text-decoration:none }
.site .tklink:hover{ background:var(--accent-dark) }
.site .tklink:focus-visible{ outline:2px solid var(--ink); outline-offset:2px }

/* ── Catalogue: four lists, 60 titles, generated book pages ─────────────── */
.site .pill.practice{background:#e6e9f0;color:#3a4a63;}
.site .pill.fiction{background:#efe4ee;color:#5f3559;}

/* Mock covers, tinted per list so a shelf of 60 still reads as sorted. */
.site .cover.mock.policy{background:linear-gradient(160deg,#6e2419,#2f1a14);}
.site .cover.mock.practice{background:linear-gradient(160deg,#3a4a63,#1d2534);}
.site .cover.mock.fiction{background:linear-gradient(160deg,#5f3559,#2a172a);}
.site .cover.mock.kids{background:linear-gradient(160deg,#3c5f33,#1d2e1a);}

.site .catcount{font-family:var(--sans);font-size:12.5px;letter-spacing:.04em;
  color:var(--ink-soft);margin:-18px 0 26px;}
.site .card .meta .sub{display:block;margin-bottom:3px;color:var(--ink-soft);opacity:.85;}

/* Book page */
.site .pagehead .booksub{font-family:var(--serif);font-size:19px;font-style:italic;
  color:var(--ink-soft);margin:10px 0 0;max-width:680px;}
.site .bookpage{padding:52px 0 76px;}
.site .bookgrid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:52px;align-items:start;}
.site .bookcover img,.site .bookcover .cover.mock{width:100%;aspect-ratio:2/3;object-fit:cover;
  border-radius:2px;box-shadow:0 2px 4px rgba(28,26,23,.10),0 18px 40px -18px rgba(28,26,23,.35);}
.site .bookmeta dl{display:grid;grid-template-columns:auto 1fr;gap:10px 26px;margin:0 0 30px;
  font-family:var(--sans);font-size:14px;}
.site .bookmeta dt{color:var(--ink-soft);font-size:11px;letter-spacing:.13em;
  text-transform:uppercase;padding-top:3px;}
.site .bookmeta dd{margin:0;color:var(--ink);}
.site .buyrow{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:26px;}
.site .buylink{display:inline-block;font-family:var(--sans);font-size:14px;font-weight:500;
  background:var(--accent);color:#fff;padding:12px 22px;border-radius:2px;text-decoration:none;}
.site .buylink:hover{background:var(--accent-dark);}
.site .buylink:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
.site .soonnote{font-family:var(--sans);font-size:14px;color:#8a5a21;background:#f6ebdd;
  padding:12px 14px;border-left:3px solid currentColor;margin-bottom:26px;}
.site .backlink{font-family:var(--sans);font-size:13.5px;}
.site .backlink a{color:var(--ink-soft);text-decoration:none;}
.site .backlink a:hover{color:var(--accent);}
.site .alsoin{margin-top:60px;padding-top:28px;border-top:1px solid var(--line);}
.site .alsoin h2{font-size:19px;font-weight:600;margin:0 0 14px;}
.site .alsoin ul{list-style:none;padding:0;margin:0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px 32px;}
.site .alsoin a{font-family:var(--serif);font-size:16px;color:var(--ink);text-decoration:none;
  border-bottom:1px solid var(--line);display:inline-block;padding-bottom:2px;}
.site .alsoin a:hover{color:var(--accent);border-color:var(--accent);}
@media(max-width:820px){
  .site .bookgrid{grid-template-columns:1fr;gap:30px;}
  .site .bookcover{max-width:240px;}
}

/* Book description */
.site .bookdesc{margin:0 0 30px;max-width:62ch;}
.site .bookdesc p{font-family:var(--serif);font-size:16.5px;line-height:1.62;
  color:var(--ink);margin:0 0 14px;}
.site .bookdesc p:first-child{font-size:18px;}
.site .bookdesc p:last-child{margin-bottom:0;}
.site .card .meta .excerpt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;margin-top:6px;color:var(--ink-soft);opacity:.9;line-height:1.45;}

/* square / landscape covers: show the whole artwork */
.site .cover.contain{background:#2a2622;}
.site .cover.contain img{object-fit:contain;}
.site .bookcover img.contain{object-fit:contain;background:#2a2622;}

/* ══════════════════════════════════════════════════════════════
   drzahirhasan.com — the author site uses the same construction as
   Maple & Pine Press (above), with its own accent: deep green for the
   author, brick red for the press. Everything below adjusts or adds.
   ══════════════════════════════════════════════════════════════ */
.site{--accent:#2f5d46;--accent-dark:#234634;}
.site .hp-btn.primary:hover{background:#3a7256;}
.site .nlbtn:hover{background:#3a7256;}
.site .pill.policy{background:#e9e3d6;color:#5b4a2a;}
.site .pill.kids{background:#e4ecdd;color:#3c5f33;}
.site .pill.fiction{background:#e6e1ec;color:#4d3a5e;}
.site .pill.practice{background:#e2e8ee;color:#34495e;}

/* wordmark: the author's name, with the surname in the accent */
.site .wm1 .wm-sur{color:var(--accent);}
.site .wm1{letter-spacing:.08em;font-size:20px;white-space:nowrap;}
.site .wm2{letter-spacing:.34em;white-space:nowrap;}
.site nav a{white-space:nowrap;padding:10px 11px;}
@media(min-width:881px) and (max-width:1060px){.site nav a{padding:9px 7px;font-size:12.5px;letter-spacing:.03em;}}

/* hero: portrait in place of the press's book cover */
.site .hero-photo{justify-self:center;position:relative;}
.site .hero-photo img{width:320px;height:auto;max-width:80vw;aspect-ratio:4/5;object-fit:cover;display:block;border-radius:3px;
  box-shadow:0 30px 60px rgba(0,0,0,.55),0 4px 14px rgba(0,0,0,.4);transform:rotate(-1.5deg);border:5px solid #f4efe4;}
.site .hero-photo .badge{right:auto;left:-18px;}

/* series blocks on the list pages */
.site .series + .series{margin-top:52px;}
.site .series h3{font-size:22px;font-weight:600;margin:0 0 4px;}
.site .series .snote{font-family:var(--sans);font-size:13px;color:#8d8570;margin:0 0 20px;}

/* book page */
.site .bookpage{padding:40px 0 72px;}
.site .alsoin .grid{margin-top:8px;}
.site .buylink.alt{background:#fff;color:var(--accent);border:1.5px solid var(--accent);}
.site .buylink.alt:hover{background:var(--accent);color:#fff;}

/* about */
.site .about-photo img{width:100%;border-radius:4px;box-shadow:0 24px 48px rgba(28,24,18,.28);display:block;}
.site .about-photo figcaption{font-family:var(--sans);font-size:12.5px;color:#8d8570;margin-top:10px;text-align:center;}
.site .lists4{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:24px;padding:0 0 72px;}
.site .lists4 a{background:#fff;border:1px solid var(--line);border-radius:6px;padding:26px;text-decoration:none;color:var(--ink);transition:transform .18s, box-shadow .18s;display:block;}
.site .lists4 a:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(28,24,18,.12);}
.site .lists4 h3{font-size:19px;margin:0 0 8px;font-weight:600;color:var(--accent);}
.site .lists4 p{color:var(--ink-soft);font-size:15px;margin:0;}

/* contact */
.site .contactcard{background:#fff;border:1px solid var(--line);border-radius:5px;padding:36px;}
.site .contactcard h3{font-size:21px;margin:0 0 6px;}
.site .contactcard p{color:var(--ink-soft);margin:0 0 18px;}
.site .nlform.left{justify-content:flex-start;}

/* newsletter form inside the parchment band (Kit's inline form) */
.site .nlform input{flex:1 1 260px;}
.site .formkit-alert{font-family:var(--sans);font-size:14px;list-style:none;margin:14px auto 0;padding:10px 14px;max-width:520px;border-radius:3px;}
.site .formkit-alert-success{background:#e4ecdd;color:#3c5f33;}
.site .formkit-alert-error{background:#f4e3df;color:#6e2419;}

/* legacy pages (apps, the two series pages, games) keep their own inner
   styling; only the shell is shared. Give them breathing room. */
.site .legacy-main{padding:0 0 40px;}

@media(max-width:880px){
  .site .hero-photo img{width:240px;transform:none;}
  .site .lists4{padding-bottom:48px;}
}
.site .alsoin .grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:22px;}
.site .alsoin .card h3{font-size:15px;}
.site .alsoin .pill{display:none;}
.site .about-photo img{height:auto;}
.site img{max-width:100%;}
@media(max-width:880px){
  .site nav{flex-wrap:wrap;justify-content:center;gap:2px 0;}
  .site .hero .wrap{padding-top:44px;padding-bottom:44px;}
  .site .hero-photo{order:-1;}
}
