/* =====================================================================
   Catalogue page — loads AFTER style.css and re-uses its variables
   (--red, --pink, --tan, --gold, --bg-alt, --font-display, --font-body).
   Every class here starts with "cat-" so it can't clash with the rest
   of the site or with Bootstrap.
   ===================================================================== */

.cat-page{background:var(--bg)}
.cat-head{text-align:center;margin-bottom:54px}

/* ---------- featured catalogue ---------- */
.cat-intro{padding:90px 0 100px}
.cat-feat{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:clamp(30px,6vw,90px);align-items:center;width:100%;max-width:1100px;margin:0 auto;padding:0 40px}

.cat-poster{display:block;width:100%;max-width:420px;justify-self:center;background:none;padding:8px;border:1px solid var(--red);cursor:pointer;transition:transform .4s,box-shadow .4s;-webkit-tap-highlight-color:transparent}
.cat-poster img{display:block;width:100%;height:auto;aspect-ratio:2300/2576;object-fit:cover}
.cat-poster:hover,.cat-poster:focus-visible{transform:translateY(-4px);box-shadow:0 18px 40px rgba(219,0,0,.25)}
@media (max-width:860px){.cat-poster{max-width:340px}}
.cat-feat-wrap,#catFeatured{overflow-x:clip}
.cat-feat-text .eyebrow-script{color:var(--tan);margin-bottom:10px}
.cat-feat-title{font-size:clamp(2rem,4vw,3rem);font-weight:700;line-height:1.2}
.cat-feat-sub{font-family:var(--font-display);font-style:italic;font-size:1.25rem;color:#eee;margin:6px 0 0}
.cat-feat-ded{margin:22px 0;padding-left:16px;border-left:2px solid var(--red)}
.cat-feat-meta{font-size:.74rem;letter-spacing:2px;text-transform:uppercase;color:var(--tan);margin:0 0 28px}
.cat-actions{display:flex;flex-wrap:wrap;gap:14px}
.cat-actions .btn-outline-brand{cursor:pointer}

/* ---------- quote ---------- */
.cat-quote{background:var(--bg-alt);text-align:center;padding:80px 0 90px;border-block:1px solid #151515}
.cat-orn{display:block;color:var(--red);font-size:1.6rem;margin-bottom:10px}
.cat-quote q{display:block;max-width:44rem;margin:0 auto;font-family:var(--font-display);font-style:italic;font-size:1.8rem;line-height:1.5;color:#eee;quotes:none}
.cat-cite{margin:20px 0 0;font-size:.82rem}

/* ---------- the five series ---------- */
.cat-series-head{margin:80px 0 44px;padding-top:70px;border-top:1px solid #1b1b1b}
.cat-series-intro{max-width:44rem;margin:18px auto 0;font-family:var(--font-display);font-style:italic;font-size:1.15rem;color:#ddd}
.cat-series{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:24px;text-align:left}
.cat-series-card{display:flex;flex-direction:column;padding:0;font:inherit;color:inherit;cursor:pointer;background:#000;border:1px solid #202020;transition:border-color .3s}
.cat-series-card:hover{border-color:var(--red)}
.cat-series-img{overflow:hidden;background:#111;aspect-ratio:2300/2576}
.cat-series-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.cat-series-card:hover .cat-series-img img{transform:scale(1.06)}
.cat-series-body{padding:20px 20px 24px;display:flex;flex-direction:column;flex:1}
.cat-series-no{font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--red)}
.cat-series-card h3{font-size:1.15rem;line-height:1.35;margin:6px 0 10px}
.cat-series-card p{font-size:.86rem;line-height:1.7;margin:0 0 16px;flex:1}
.cat-series-go{font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:var(--gold)}

/* ---------- catalogue cards (shown only if there is more than one catalogue) ---------- */
.cat-library{padding:100px 0 60px}
.cat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:30px}
.cat-card{display:block;text-align:left;padding:0;font:inherit;color:inherit;cursor:pointer;background:var(--bg-alt);border:1px solid #202020;transition:border-color .3s}
.cat-card:hover{border-color:var(--red)}
.cat-card-cover{overflow:hidden;background:#111;aspect-ratio:2300/2576}
.cat-card-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.cat-card:hover .cat-card-cover img{transform:scale(1.06)}
.cat-card-info{padding:22px 24px 26px}
.cat-card h3{font-size:1.3rem;line-height:1.3}
.cat-card p{margin:6px 0 14px;font-size:.9rem}
.cat-card-go{font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:var(--gold)}

/* ---------- browse: chapter chips + page grid ---------- */
.cat-browse{background:var(--bg-alt);padding:100px 0;border-top:1px solid #151515}
.cat-tabs,.cat-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:34px}
.cat-tabs[hidden]{display:none}
.cat-tabs button,.cat-chips button{background:transparent;border:1px solid #3a3a3a;color:var(--tan);font-family:var(--font-body);font-size:.74rem;letter-spacing:2px;text-transform:uppercase;padding:10px 22px;cursor:pointer;transition:.25s}
.cat-tabs button:hover,.cat-chips button:hover{border-color:var(--red);color:#fff}
.cat-tabs button[aria-selected="true"]{background:var(--red);border-color:var(--red);color:#fff}
.cat-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:16px}
.cat-sheet button{position:relative;overflow:hidden;padding:0;border:1px solid #2a2a2a;background:#111;cursor:pointer}
.cat-sheet img{width:100%;aspect-ratio:2300/2576;object-fit:cover;transition:transform .5s}
.cat-sheet button:hover img{transform:scale(1.08)}
.cat-sheet button::after{content:"+";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:2.4rem;color:#fff;background:rgba(219,0,0,.45);opacity:0;transition:opacity .3s}
.cat-sheet button:hover::after{opacity:1}
.cat-sheet span{position:absolute;left:8px;bottom:8px;z-index:1;font-size:.7rem;line-height:1.7;background:#000;color:var(--tan);padding:0 9px}

/* =====================================================================
   READER
   ===================================================================== */
.cat-reader{position:fixed;inset:0;z-index:2000;background:#000;color:#eee;display:flex;flex-direction:column;animation:catFade .3s}
.cat-reader[hidden]{display:none}
@keyframes catFade{from{opacity:0}to{opacity:1}}
.cat-reader-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px clamp(12px,3vw,28px);border-bottom:1px solid #151515}
.cat-reader-title{display:flex;flex-direction:column;min-width:0}
.cat-reader-title strong{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--red);letter-spacing:2px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-reader-title span{font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--tan);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-reader-tools{display:flex;align-items:center;gap:8px}
.cat-reader-tools button,.cat-reader-tools .cat-pdf{background:none;border:1px solid #3a3a3a;color:#ddd;min-width:40px;height:40px;padding:0 12px;font-size:1rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);transition:.25s}
.cat-reader-tools .cat-pdf{font-size:.72rem;letter-spacing:2px;white-space:nowrap}
.cat-reader-tools .cat-pdf[hidden]{display:none}
.cat-reader-tools button:hover,.cat-reader-tools .cat-pdf:hover,.cat-reader-tools button[aria-pressed="true"]{background:var(--red);border-color:var(--red);color:#fff}
.cat-reader-main{flex:1;min-height:0;display:flex;align-items:stretch;position:relative}
.cat-stage{flex:1;min-width:0;display:flex;overflow:auto;padding:clamp(8px,2vw,24px);touch-action:pan-y}
.cat-spread{margin:auto;display:flex;max-width:100%;max-height:100%;height:100%;justify-content:center;box-shadow:0 0 0 1px #2a2a2a,0 20px 60px rgba(0,0,0,.8)}
.cat-spread.next{animation:catNext .45s cubic-bezier(.2,.7,.2,1)}
.cat-spread.prev{animation:catPrev .45s cubic-bezier(.2,.7,.2,1)}
@keyframes catNext{from{opacity:0;transform:translateX(34px)}to{opacity:1;transform:none}}
@keyframes catPrev{from{opacity:0;transform:translateX(-34px)}to{opacity:1;transform:none}}
.cat-spread img{height:100%;width:auto;max-width:100%;object-fit:contain;background:#fff;user-select:none;-webkit-user-drag:none}
.cat-spread.two img:first-child{box-shadow:inset -18px 0 24px -18px rgba(0,0,0,.35)}
.cat-spread.two img:last-child{box-shadow:inset 18px 0 24px -18px rgba(0,0,0,.35)}
.cat-reader.zoomed .cat-stage{cursor:grab}
.cat-reader.zoomed .cat-spread{height:auto;max-height:none;max-width:none;width:190%}
.cat-reader.zoomed .cat-spread img{height:auto;width:100%;flex:1;min-width:0}
.cat-arrow{width:clamp(38px,5vw,64px);background:none;border:0;color:#fff;font-size:1.8rem;cursor:pointer;opacity:.5;transition:.25s}
.cat-arrow:hover{opacity:1;color:var(--pink)}
.cat-arrow:disabled{opacity:.12;cursor:default}
.cat-strip{display:flex;gap:8px;overflow-x:auto;padding:10px clamp(12px,3vw,28px);border-top:1px solid #151515;background:var(--bg-alt)}
.cat-strip[hidden]{display:none}
.cat-strip button{flex:none;border:2px solid transparent;background:none;padding:0;cursor:pointer;opacity:.55;transition:.25s}
.cat-strip button.on{border-color:var(--red);opacity:1}
.cat-strip button:hover{opacity:1}
.cat-strip img{height:84px;width:auto}
.cat-reader-bottom{display:flex;align-items:center;gap:16px;padding:12px clamp(12px,3vw,28px) 16px}
.cat-reader-bottom input{flex:1;accent-color:var(--red)}
.cat-reader-bottom span{font-size:.78rem;letter-spacing:2px;min-width:7.5em;text-align:right;color:var(--tan)}

/* ---------- responsive (the site's own breakpoint is 860px) ---------- */
@media (max-width:860px){
  .cat-feat{grid-template-columns:1fr;text-align:center;padding:0 40px}
  .cat-feat-ded{text-align:left}
  .cat-actions{justify-content:center}
}
@media (max-width:760px){
  .cat-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:rgba(0,0,0,.55);height:64px;width:38px}
  .cat-arrow.prev{left:0}.cat-arrow.next{right:0}
  .cat-reader-tools #catRFull{display:none}
}
@media (max-width:600px){
  .cat-feat{padding:0 20px}
  .cat-intro,.cat-library,.cat-browse{padding-top:64px;padding-bottom:64px}
  .cat-quote{padding:60px 0 64px}
  .cat-series-head{margin-top:56px;padding-top:50px}
  .cat-series{grid-template-columns:1fr 1fr;gap:14px}
  .cat-series-body{padding:14px 14px 18px}
  .cat-quote q{font-size:1.4rem}
  .cat-sheet{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
}
@media (prefers-reduced-motion:reduce){
  .cat-reader *,.cat-page *{animation:none!important;transition:none!important}
}
