/* Kindquill shared styles (round 4, 2026-10-11). Page-specific styles stay inline and load after this file. */
:root {
  --cream: #FAF5EB; --ink: #1A1A1A; --muted: #555555; --gray: #555555;
  --sage: #8CA88A; --sage-text: #46613F; --line: #857B66;
}
body { letter-spacing: .02em; word-spacing: .08em; line-height: 1.65; }
a { color: var(--ink); }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--sage-text); outline-offset: 2px; border-radius: 6px; }
.site-header { display: flex; flex-direction: column; gap: 10px; margin: 8px 0 34px; text-align: left; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); align-self: flex-start; min-height: 44px; }
.brand .mark { width: 50px; height: 50px; border: 3px solid var(--sage); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex: none; margin: 0; }
.wordmark { font-size: 1.35rem; font-weight: 600; letter-spacing: .01em; }
.site-nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.site-nav a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; padding: 10px 14px;
  border: 1.5px solid var(--line); border-radius: 22px; font-size: .9rem; font-weight: 400; color: var(--ink); text-decoration: none; }
.site-nav a[aria-current="page"] { background: var(--ink); color: var(--cream); border-color: var(--ink); font-weight: 500; }
.buyline { font-size: .95rem; color: var(--muted); margin: 16px 0; }
.foot { text-align: left; color: var(--muted); font-size: .875rem; margin-top: 36px; }
@media (max-width: 480px) { .site-nav a { font-size: .875rem; padding: 10px 12px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* Shared notify / free-page signup component (2026-10-12). One form, one list (MailerLite mI3R08), edition tag in kq_edition. */
:root { --err:#8A2B1E; --panel-sage:#E3EDE1; }
.kq-signup { background:#fff; border:1px solid #E8E1D2; border-radius:14px; padding:22px 22px 20px; margin:18px 0; }
.kq-signup h2 { font-size:1.15rem; font-weight:600; line-height:1.35; margin:0 0 6px; }
.kq-signup .kq-lead { font-size:.95rem; color:var(--muted); margin:0 0 14px; }
.kq-field { margin-bottom:14px; }
.kq-field label { display:block; font-weight:500; font-size:.95rem; margin-bottom:6px; }
.kq-field .req { font-weight:400; color:var(--muted); }
.kq-field input { width:100%; min-height:48px; padding:10px 14px; font:inherit; font-size:1rem; color:var(--ink); background:#fff; border:1.5px solid var(--line); border-radius:10px; }
.kq-field input:focus-visible, .kq-consent input:focus-visible { outline:3px solid var(--sage-text); outline-offset:2px; }
.kq-field input[aria-invalid="true"] { border-color:var(--err); }
.kq-consent { display:flex; gap:12px; align-items:flex-start; margin:4px 0; min-height:44px; }
.kq-consent input { width:24px; height:24px; flex:none; margin-top:2px; accent-color:var(--ink); }
.kq-consent label { font-size:.9rem; line-height:1.5; }
.kq-err { color:var(--err); font-size:.9rem; margin-top:6px; }
.kq-err:empty { display:none; }
.kq-btn { display:block; width:100%; min-height:52px; background:var(--ink); color:var(--cream); border:none; border-radius:10px; font:inherit; font-weight:500; font-size:1rem; padding:14px; margin-top:14px; cursor:pointer; }
.kq-fine { font-size:.875rem; color:var(--muted); margin-top:10px; }
.kq-demo { background:var(--panel-sage); border-radius:10px; padding:8px 12px; font-size:.85rem; margin-bottom:12px; }
.kq-thanks:focus { outline:none; }
.kq-thanks h2 { font-size:1.25rem; }
.kq-row { display:flex; flex-wrap:wrap; gap:4px 14px; font-size:.95rem; margin:10px 0 0; }
.ed-cards { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:12px 0 0; padding:0; }
.ed-cards li { background:#fff; border:1px solid #E8E1D2; border-radius:12px; padding:14px 14px 12px; margin:0; }
.ed-cards .ed-name { font-weight:600; font-size:1rem; color:var(--ink); }
.ed-cards .ed-age { font-size:.88rem; color:var(--muted); }
.ed-cards .ed-price { font-size:.95rem; color:var(--ink); margin:6px 0; }
.ed-cards a { font-size:.92rem; }
@media (max-width:420px) { .ed-cards { grid-template-columns:1fr; } }
.fmt-table { width:100%; border-collapse:collapse; font-size:.9rem; margin:10px 0 6px; background:#fff; border:1px solid #E8E1D2; border-radius:10px; }
.fmt-table th, .fmt-table td { text-align:left; vertical-align:top; padding:9px 10px; border-bottom:1px solid #F0EADC; color:var(--ink); }
.fmt-table th { font-weight:600; background:#F7F1E4; }
.fmt-note { font-size:.88rem; color:var(--muted); }
.offer { background:var(--panel-sage); border-radius:10px; padding:10px 14px; font-size:.92rem; margin:12px 0; color:var(--ink); }
.section ul.ed-cards { padding-left:0; }
.section ul.ed-cards li { list-style:none; }
.fmt-table { table-layout:fixed; }
.fmt-table td, .fmt-table th { overflow-wrap:anywhere; }
@media (max-width:480px) { .fmt-table { font-size:.82rem; } .fmt-table th, .fmt-table td { padding:8px 6px; } }
/* Store buttons (2026-10-12). Disabled until STORE_LINKS in /kq-stores.js has a URL. */
.kq-stores { display:flex; flex-wrap:wrap; gap:6px; }
.kq-store { display:inline-block; min-height:40px; padding:8px 12px; border-radius:8px; font-size:.85rem; line-height:1.4; text-decoration:none; background:var(--ink); color:var(--cream); }
span.kq-store[aria-disabled="true"] { background:#F7F1E4; color:var(--muted); border:1px dashed var(--line); cursor:default; }
.kq-pricefrom { font-size:.95rem; margin:10px 0 0; }
.fmt-ed { margin:14px 0 4px; font-size:1rem; font-weight:600; }
.fmt-table .kq-store { overflow-wrap:normal; word-break:normal; }
