/* =====================================================================
   CrochetOasis base layer: element defaults, typography, a11y affordances
   Loads after the GeneratePress parent stylesheet.
   ===================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--co-paper);color:var(--co-text);
  font-family:var(--co-font-body);font-size:var(--co-fs-base);line-height:var(--co-lh-body);
  font-weight:400;font-synthesis-style:italic;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
body.co-body--texture{background-image:var(--co-tex-yarn);background-size:24px 16px;background-color:var(--co-paper)}

/* ---------- headings ---------- */
h1,h2,h3,h4,h5,h6{
  font-family:var(--co-font-display);font-weight:600;color:var(--co-ink);
  margin:0 0 var(--co-s4);line-height:var(--co-lh-head);
  font-variation-settings:"opsz" 40,"SOFT" 0,"WONK" 0;letter-spacing:-.012em;
}
h1{font-size:var(--co-fs-4xl);line-height:var(--co-lh-tight);font-weight:600}
h2{font-size:var(--co-fs-3xl);margin-top:var(--co-s8)}
h3{font-size:var(--co-fs-2xl);margin-top:var(--co-s7)}
h4{font-size:var(--co-fs-xl);margin-top:var(--co-s6);font-weight:600}
h5,h6{font-size:var(--co-fs-base);font-family:var(--co-font-body);font-weight:700;letter-spacing:.01em}
h1 a,h2 a,h3 a,h4 a{color:inherit;text-decoration:none}
h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover{color:var(--co-link)}

/* ---------- text ---------- */
p,ul,ol,dl,table,figure,pre,blockquote{margin:0 0 var(--co-s5)}
.co-prose,.co-lead{max-width:var(--co-w-prose)}
.co-prose{font-size:var(--co-fs-base);line-height:var(--co-lh-prose)}
.co-lead{font-size:var(--co-fs-lg);line-height:1.55;color:var(--co-ink-2)}
.co-prose ul,.co-prose ol{padding-left:1.25em}
.co-prose li{margin-bottom:var(--co-s2)}
.co-prose li::marker{color:var(--co-cat,var(--co-rose))}
.co-prose strong{font-weight:700;color:var(--co-ink)}
.co-prose em{font-family:var(--co-font-display);font-style:italic;font-size:1.02em}
.co-prose a{color:var(--co-link);text-decoration-thickness:1px;text-underline-offset:.18em}
.co-prose a:hover{color:var(--co-link-hover)}
.co-prose hr{border:0;height:1px;background:var(--co-rule);margin:var(--co-s8) 0}
.co-kicker{
  font-family:var(--co-font-body);font-size:var(--co-fs-xs);font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--co-ink-3);margin:0 0 var(--co-s3);
}
.co-kicker--cat{color:var(--co-cat,var(--co-rose))}
.co-meta{font-size:var(--co-fs-sm);color:var(--co-ink-2);margin:0}
.co-meta a{color:var(--co-ink-2);text-decoration:underline;text-underline-offset:.15em}
.co-meta a:hover{color:var(--co-ink)}
.co-num{font-family:var(--co-font-display);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

/* ---------- links, focus, selection ---------- */
a{color:var(--co-link);text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{color:var(--co-link-hover)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--co-focus);outline-offset:2px;border-radius:var(--co-r-xs)
}
::selection{background:#F0D9C6;color:var(--co-ink)}
.co-skip{position:absolute;left:-9999px;top:0;z-index:9999;padding:var(--co-s3) var(--co-s5);
  background:var(--co-ink);color:#fff;font-weight:700;border-radius:0 0 var(--co-r-sm) 0}
.co-skip:focus{left:0;color:#fff}
.co-visually-hidden,.screen-reader-text{position:absolute !important;width:1px;height:1px;overflow:hidden;
  clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}

/* ---------- media + rules ---------- */
img,svg,video,iframe{max-width:100%;height:auto}
figure{margin:0}
figcaption,.co-caption{font-size:var(--co-fs-sm);color:var(--co-ink-2);margin-top:var(--co-s3)}
hr.co-rule{border:0;height:1px;margin:var(--co-s7) 0;background:var(--co-rule)}
/* stitched hairline: a real crochet-adjacent detail, used sparingly */
.co-rule--stitch{height:6px;border:0;margin:var(--co-s7) 0 0;
  background-image:repeating-linear-gradient(90deg,var(--co-line-strong) 0 10px,transparent 10px 18px);
  background-size:100% 2px;background-repeat:repeat-x;background-position:0 center}

/* ---------- embedded WP content sanitiser ---------- */
.entry-content>*:first-child{margin-top:0}
.wp-block-image{border-radius:var(--co-r-sm);overflow:hidden}
.alignwide{max-width:var(--co-w);margin-left:auto;margin-right:auto}
.alignfull{max-width:none}
blockquote{margin-left:0;padding:var(--co-s2) 0 var(--co-s2) var(--co-s6);border-left:3px solid var(--co-cat,var(--co-rose));
  font-family:var(--co-font-display);font-size:var(--co-fs-lg);font-style:italic;color:var(--co-ink-2)}
code,kbd,samp{font-family:ui-monospace,"DejaVu Sans Mono",monospace;font-size:.94em;
  background:var(--co-sand);padding:.1em .35em;border-radius:var(--co-r-xs)}
