/* =====================================================================
   CrochetOasis category pages (2026-10-18)
   Reference-led hero banners, pattern library and right-hand guide rail.
   Scoped to .co-category-page so no other template inherits these rules.
   ===================================================================== */
.co-category-page{
  --co-burgundy:#8A1C2B;
  --co-burgundy-deep:#6E1422;
  --co-cat-cream:#F9EFE1;
  --co-cat-cream-2:#F4E6D2;
  --co-cat-charcoal:#20272A;
  --co-cat-blush:#E9CBC4;
}

/* ---------- hero banner ---------- */
.co-cat-hero{
  position:relative;isolation:isolate;overflow:hidden;
  display:flex;flex-direction:column;
  background:var(--co-cat-cream);color:var(--co-cat-charcoal);
  border-bottom:1px solid rgba(150,112,77,.18);
}
.co-cat-hero::before{
  content:"";position:absolute;inset:0 48% 0 0;z-index:0;pointer-events:none;
  background-image:var(--co-tex-yarn);background-size:26px 18px;opacity:.045;
}
.co-cat-hero__inner{
  position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;
  min-height:clamp(340px,24vw,392px);
  padding-block:clamp(1.5rem,2.8vw,2.6rem);
}
.co-cat-hero__media{
  position:absolute;inset:0 0 0 auto;z-index:1;width:52%;overflow:hidden;
  background:var(--co-cat-cream-2);
}
.co-cat-hero__media img{
  display:block;width:100%;height:100%;object-fit:cover;object-position:56% 50%;
}
.co-cat-hero__media::before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,
    var(--co-cat-cream) 0%,
    rgba(249,239,225,.94) 5%,
    rgba(249,239,225,.74) 12%,
    rgba(249,239,225,.40) 22%,
    rgba(249,239,225,.12) 36%,
    rgba(249,239,225,0) 53%);
}
.co-cat-hero__media::after{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,248,238,.10),rgba(82,40,24,.09));
}
.co-cat-hero__copy{position:relative;z-index:3;max-width:min(39rem,52%)}

.co-cat-hero__crumbs{margin:0 0 clamp(.9rem,1.4vw,1.35rem)}
.co-cat-hero__crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;list-style:none;margin:0;padding:0}
.co-cat-hero__crumbs li{display:inline-flex;align-items:center;gap:.45rem;font-size:var(--co-fs-sm);line-height:1.3}
.co-cat-hero__crumbs li+li::before{content:"\203A";color:#98866F;font-size:1.05em;line-height:1}
.co-cat-hero__crumbs a{color:var(--co-cat-charcoal);text-decoration:none;font-weight:500}
.co-cat-hero__crumbs a:hover{color:var(--co-burgundy);text-decoration:underline;text-underline-offset:.18em}
.co-cat-hero__crumbs [aria-current]{color:var(--co-burgundy);font-weight:600}

.co-cat-hero h1{
  margin:0 0 .7rem;font-size:clamp(2.45rem,4.9vw,4.3rem);line-height:.98;
  letter-spacing:-.03em;font-weight:600;color:var(--co-cat-charcoal);
  text-wrap:balance;
}
.co-cat-hero__accent{color:var(--co-burgundy)}
.co-cat-hero__lead{margin-right:.12em}

.co-cat-hero__desc{
  max-width:34rem;margin:0 0 clamp(1.25rem,2vw,1.7rem);
  font-size:clamp(1rem,.38vw + .92rem,1.24rem);line-height:1.55;color:#36413F;
}

.co-cat-hero__features{
  display:inline-grid;grid-template-columns:repeat(3,max-content);column-gap:1.2rem;
  list-style:none;margin:0;padding:0;max-width:100%;
}
.co-cat-hero__features li{display:flex;align-items:flex-start;gap:.6rem;padding:0 1.05rem;border-left:1px solid rgba(138,28,43,.22)}
.co-cat-hero__features li:first-child{padding-left:0;border-left:0}
.co-cat-hero__feature-icon{flex:0 0 auto;display:inline-flex;color:var(--co-burgundy)}
.co-cat-hero__feature-icon svg{display:block;width:1.85rem;height:1.85rem;stroke-width:1.55}
.co-cat-hero__feature-text{display:block;min-width:0}
.co-cat-hero__feature-text strong{
  display:block;font-family:var(--co-font-body);font-size:.94rem;font-weight:700;
  line-height:1.25;color:var(--co-cat-charcoal);letter-spacing:0;
}
.co-cat-hero__feature-text span{display:block;margin-top:.15rem;font-size:.82rem;line-height:1.35;color:#4C5754}

.co-cat-hero__spray{
  position:absolute;left:52%;bottom:-1.4rem;z-index:2;width:9.5rem;
  color:var(--co-burgundy);opacity:.13;pointer-events:none;
}
.co-cat-hero__spray-art{display:block;width:100%;height:auto}

/* ---------- category body ---------- */
.co-category-page .co-band[id],
.co-category-page .co-cat-body[id]{scroll-margin-top:96px}
.co-cat-body{padding-block:clamp(2.25rem,4.5vw,4rem);background:var(--co-paper)}
.co-cat-body__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(2rem,3vw,3rem);align-items:start}
.co-cat-main{min-width:0}
.co-cat-main__head{
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:.75rem 1.5rem;margin-bottom:clamp(1.35rem,2.2vw,2rem);padding-bottom:1rem;
  border-bottom:1px solid var(--co-line);
}
.co-cat-main__head .co-kicker{margin:0 0 .35rem}
.co-cat-main__head h2{margin:0 0 .35rem;font-size:clamp(1.8rem,2.6vw,2.5rem);letter-spacing:-.02em}
.co-cat-main__note{max-width:62ch;margin:0;font-size:.98rem;line-height:1.6;color:var(--co-ink-2)}
.co-cat-main__count{
  margin:0 0 .2rem;padding:.28rem .7rem;border:1px solid var(--co-line-strong);
  border-radius:var(--co-r-pill);font-size:var(--co-fs-2xs);font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--co-ink-2);white-space:nowrap;
}
.co-cat-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));
  align-items:stretch;
}
.co-cat-grid .co-card__title{font-size:1.38rem}
.co-cat-pager{margin-top:2rem}

/* notes card balances the grid while a new hub has only one pattern */
.co-cat-notes{
  align-self:start;display:flex;flex-direction:column;gap:.7rem;
  padding:clamp(1.4rem,2.4vw,2rem);
  background:
    linear-gradient(135deg,rgba(255,255,255,.72),rgba(255,255,255,.28)),
    var(--co-cat-cream-2);
  border:1px dashed var(--co-line-strong);border-radius:var(--co-r-md);
}
.co-cat-notes .co-kicker{margin:0}
.co-cat-notes h3{margin:0;font-size:1.45rem;line-height:1.2}
.co-cat-notes p{margin:0;font-size:.96rem;line-height:1.62;color:var(--co-ink-2)}
.co-cat-notes__link{
  align-self:flex-start;margin-top:.35rem;font-size:var(--co-fs-sm);font-weight:700;
  color:var(--co-burgundy);text-decoration:none;border-bottom:1px solid currentColor;
  padding-bottom:.1rem;
}
.co-cat-notes__link:hover{color:var(--co-burgundy-deep)}

/* ---------- right rail ---------- */
.co-cat-rail{display:grid;gap:1.15rem;min-width:0}
.co-cat-promo{
  position:relative;isolation:isolate;overflow:hidden;
  padding:1.5rem 1.4rem 1.45rem;border-radius:var(--co-r-md);
  background:linear-gradient(150deg,var(--co-burgundy) 0%,var(--co-burgundy-deep) 100%);
  color:#FBF2E4;box-shadow:var(--co-e2);
}
.co-cat-promo__spray{
  position:absolute;right:-2.2rem;bottom:-2.4rem;z-index:-1;width:9rem;
  color:#F4DAC7;opacity:.2;pointer-events:none;
}
.co-cat-promo__spray-art{display:block;width:100%;height:auto}
.co-cat-promo__kicker{
  margin:0 0 .45rem;font-size:var(--co-fs-2xs);font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:#EFCDB8;
}
.co-cat-promo__title{margin:0 0 .6rem;font-size:1.45rem;line-height:1.16;color:#FFF9F0;letter-spacing:-.01em}
.co-cat-promo__text{margin:0 0 1.05rem;font-size:.9rem;line-height:1.62;color:#F0D8C9}
.co-cat-promo__btn{
  min-height:40px;padding:.55rem 1rem;border:1px solid #FBF2E4;
  background:#FBF2E4;color:var(--co-burgundy-deep);font-size:var(--co-fs-xs);
}
.co-cat-promo__btn:hover{background:#fff;border-color:#fff;color:var(--co-burgundy-deep)}

.co-cat-rail__panel{
  padding:1.25rem 1.2rem;background:var(--co-surface);
  border:1px solid var(--co-line);border-radius:var(--co-r-md);
}
.co-cat-rail__heading{
  margin:0 0 .85rem;padding-bottom:.7rem;border-bottom:1px solid var(--co-line);
  font-size:1.02rem;line-height:1.25;letter-spacing:.01em;
  font-family:var(--co-font-body);font-weight:700;
}
.co-cat-rail__contents{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.co-cat-rail__contents a{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:.35rem 0;font-size:var(--co-fs-sm);font-weight:600;color:var(--co-ink-2);
  text-decoration:none;
}
.co-cat-rail__contents a::after{content:"\203A";color:var(--co-line-strong);font-size:1.1em}
.co-cat-rail__contents a:hover{color:var(--co-burgundy)}
.co-cat-rail__contents a:hover::after{color:var(--co-burgundy)}

.co-cat-rail__list{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.co-cat-rail__item{display:grid;grid-template-columns:56px minmax(0,1fr);gap:.7rem;align-items:center}
.co-cat-rail__thumb{
  display:block;width:56px;height:56px;overflow:hidden;border-radius:var(--co-r-sm);
  background:var(--co-sand);border:1px solid var(--co-line);
}
.co-cat-rail__thumb img{display:block;width:100%;height:100%;object-fit:cover}
.co-cat-rail__thumb--motif{display:grid;place-items:center}
.co-cat-rail__motif{width:30px;height:auto;color:var(--co-burgundy)}
.co-cat-rail__item-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.co-cat-rail__item-text a{
  font-family:var(--co-font-display);font-size:.98rem;line-height:1.24;
  font-weight:600;color:var(--co-ink);text-decoration:none;
}
.co-cat-rail__item-text a:hover{color:var(--co-burgundy)}
.co-cat-rail__item-text .co-meta{font-size:var(--co-fs-2xs)}
.co-cat-rail__more{
  display:inline-block;margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--co-line);
  width:100%;font-size:var(--co-fs-xs);font-weight:700;color:var(--co-burgundy);
  text-decoration:none;
}
.co-cat-rail__more:hover{color:var(--co-burgundy-deep);text-decoration:underline;text-underline-offset:.18em}

/* ---------- stitch dictionary inside the body ---------- */
.co-cat-letters{margin:0 0 1.5rem}
.co-cat-letters ul{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;margin:0;padding:0}
.co-cat-letters a{
  display:grid;place-items:center;width:34px;height:34px;
  border:1px solid var(--co-line-strong);border-radius:var(--co-r-xs);
  background:var(--co-surface);font-size:var(--co-fs-xs);font-weight:700;
  color:var(--co-ink-2);text-decoration:none;
}
.co-cat-letters a:hover{background:var(--co-burgundy);border-color:var(--co-burgundy);color:#fff}
.co-cat-dict{gap:1.6rem}
.co-cat-dict .co-dict__letter{margin-bottom:.4rem}

/* ---------- guides library page ---------- */
.co-cat-library__content{
  margin-top:2rem;padding:1.4rem 1.5rem;background:var(--co-surface);
  border:1px solid var(--co-line);border-radius:var(--co-r-md);
}
.co-cat-library__content .co-prose{max-width:none;font-size:var(--co-fs-sm)}
.co-cat-library__content .co-prose p:last-child{margin-bottom:0}

/* ---------- responsive ---------- */
@media (min-width:1024px){
  .co-cat-body__grid{grid-template-columns:minmax(0,1fr) 19.5rem}
}
@media (max-width:1023px){
  .co-cat-rail{grid-template-columns:repeat(2,minmax(0,1fr))}
  .co-cat-promo{grid-column:1/-1}
}
@media (max-width:900px){
  .co-cat-hero{display:flex;flex-direction:column}
  .co-cat-hero::before{inset:0}
  .co-cat-hero__inner{order:1;min-height:0;padding-block:1.45rem 1.2rem}
  .co-cat-hero__copy{max-width:none}
  .co-cat-hero h1{font-size:clamp(2.25rem,7.4vw,3rem)}
  .co-cat-hero__desc{max-width:38rem;font-size:1rem}
  .co-cat-hero__media{
    position:relative;inset:auto;order:2;width:100%;
    height:clamp(190px,44vw,270px);margin-top:-.35rem;
  }
  .co-cat-hero__media::before{
    background:linear-gradient(180deg,
      var(--co-cat-cream) 0%,
      rgba(249,239,225,.72) 12%,
      rgba(249,239,225,.18) 34%,
      rgba(249,239,225,0) 58%);
  }
  .co-cat-hero__media::after{background:linear-gradient(180deg,rgba(255,248,238,.10),rgba(82,40,24,.06))}
  .co-cat-hero__features{display:grid;grid-template-columns:minmax(0,1fr);gap:.7rem;margin-top:.2rem;width:100%;max-width:none}
  .co-cat-hero__features li{
    display:grid;grid-template-columns:1.85rem minmax(0,1fr);align-items:center;
    gap:.7rem;padding:0;border-left:0;
  }
  .co-cat-hero__spray{display:none}
}
@media (max-width:700px){
  .co-cat-body{padding-block:2rem}
  .co-cat-main__head{align-items:flex-start}
  .co-cat-main__count{margin:0}
  .co-cat-rail{grid-template-columns:minmax(0,1fr)}
  .co-cat-grid .co-card__title{font-size:1.28rem}
  .co-cat-grid .co-card__body{padding:1.15rem}
  .co-cat-grid .co-card__foot{gap:.5rem .85rem}
}
@media (max-width:420px){
  .co-cat-hero__crumbs{font-size:var(--co-fs-xs)}
  .co-cat-hero__feature-text strong{font-size:.9rem}
  .co-cat-hero__feature-text span{font-size:.8rem}
  .co-cat-promo{padding:1.3rem 1.2rem}
}
@media (prefers-reduced-motion:reduce){
  .co-cat-hero__media img{transition:none}
}
