/* Home page: new offer sections (Compass, programmes, free samples) */
.cmp-band{background:linear-gradient(160deg,#0F4C57 0%,#1F6F7A 55%,#2C8A8E 100%);color:#EAF9F7;overflow:hidden}
.cmp-band h2{color:#fff}.cmp-band .lead{color:#CFEDEA}
.cmp-band .eyebrow{background:rgba(255,255,255,.14);color:#FFE9B5}
.cmp-art{position:relative;max-width:420px;margin:0 auto;width:100%}
.cmp-art svg{width:100%;height:auto;filter:drop-shadow(0 24px 40px rgba(0,0,0,.28))}
.cmp-needle{transform-box:view-box;transform-origin:180px 180px;animation:needle 6s ease-in-out infinite}
@keyframes needle{0%{transform:rotate(-38deg)}18%{transform:rotate(26deg)}34%{transform:rotate(-14deg)}50%{transform:rotate(8deg)}66%{transform:rotate(-3deg)}100%{transform:rotate(0deg)}}
.cmp-ring{transform-origin:180px 180px;animation:spin 60s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.cmp-petal{transform-box:fill-box;transform-origin:50% 100%;animation:breathe 5s ease-in-out infinite}
.cmp-petal:nth-child(2n){animation-delay:.8s}.cmp-petal:nth-child(3n){animation-delay:1.6s}
@keyframes breathe{50%{transform:scale(1.12)}}
.chips-row{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 26px}
.chips-row span{font:800 .88rem/1 var(--f-body);padding:10px 15px;border-radius:999px;background:rgba(255,255,255,.14);color:#fff}
.cmp-band .btn-p{background:#fff;color:var(--ink);box-shadow:0 10px 26px rgba(0,0,0,.25)}
.cmp-band .btn-p:hover{background:var(--sun-t)}

.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.prog{position:relative;border-radius:var(--r-l);overflow:hidden;min-height:430px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;text-decoration:none;box-shadow:var(--sh-2);transition:transform .4s var(--ease),box-shadow .4s;isolation:isolate}
.prog:hover{transform:translateY(-10px);box-shadow:var(--sh-3)}
.prog img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s var(--ease)}
.prog:hover img{transform:scale(1.07)}
.prog::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(20,14,36,0) 30%,rgba(20,14,36,.88) 92%)}
.prog .in{padding:28px 26px 28px}
.prog .tagp{display:inline-block;font:800 .74rem/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;background:var(--coral);color:#fff;padding:7px 12px;border-radius:999px;margin-bottom:14px}
.prog h3{color:#fff;font-size:1.6rem;margin-bottom:8px}
.prog p{color:#F1EAFB;margin:0 0 16px;font-size:1rem}
.prog .go{font-weight:800;display:inline-flex;gap:8px;align-items:center}
.prog .go::after{content:"→";transition:transform .3s}.prog:hover .go::after{transform:translateX(6px)}
@media (max-width:900px){.prog-grid{grid-template-columns:1fr}.prog{min-height:360px}}

.smp-band{background:var(--cream);overflow:hidden}
.fan{position:relative;height:420px;max-width:520px;margin:0 auto;width:100%}
.fan .bk{position:absolute;left:50%;top:20px;width:34%;transition:transform .6s var(--ease)}
.fan .bk:nth-child(1){transform:translateX(-190%) rotate(-14deg) translateY(30px)}
.fan .bk:nth-child(2){transform:translateX(-120%) rotate(-7deg) translateY(8px)}
.fan .bk:nth-child(3){transform:translateX(-50%) rotate(0) translateY(-8px);z-index:3}
.fan .bk:nth-child(4){transform:translateX(20%) rotate(7deg) translateY(8px)}
.fan .bk:nth-child(5){transform:translateX(90%) rotate(14deg) translateY(30px)}
.fan:hover .bk:nth-child(1){transform:translateX(-215%) rotate(-18deg) translateY(36px)}
.fan:hover .bk:nth-child(2){transform:translateX(-135%) rotate(-9deg) translateY(4px)}
.fan:hover .bk:nth-child(4){transform:translateX(35%) rotate(9deg) translateY(4px)}
.fan:hover .bk:nth-child(5){transform:translateX(115%) rotate(18deg) translateY(36px)}
.fan .bk .meta{display:none}
.sticker{position:absolute;right:2%;top:0;z-index:5;background:var(--sun);color:var(--ink);font:700 1.1rem/1.1 var(--f-head);padding:16px 18px;border-radius:50%;width:92px;height:92px;display:grid;place-items:center;text-align:center;transform:rotate(12deg);box-shadow:var(--sh-2)}
@media (max-width:560px){.fan{height:340px}}

/* free posters band (home) */
.pst-band{padding:84px 0;background:linear-gradient(180deg,var(--paper),var(--cream))}
.pst-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.pst-fan{position:relative;aspect-ratio:1/.9;width:min(100%,460px);margin:0 auto}
.pst-fan figure{position:absolute;left:28%;top:0;width:44%;margin:0;z-index:var(--z);transform:rotate(var(--r));transform-origin:50% 120%;transition:transform .5s var(--ease)}
.pst-fan figure img{width:100%;height:auto;border-radius:6px;background:#fff;box-shadow:0 18px 34px rgba(43,33,64,.26),0 2px 4px rgba(43,33,64,.12)}
.pst-fan:hover figure:nth-child(1){transform:rotate(-14deg) translateX(-14px)}.pst-fan:hover figure:nth-child(2){transform:rotate(14deg) translateX(14px)}
.pst-sticker{position:absolute;right:4%;top:2%;width:84px;height:84px;border-radius:50%;background:var(--sun);color:#2B2140;font:700 1.15rem/1.05 var(--f-head);display:grid;place-items:center;text-align:center;box-shadow:0 10px 22px rgba(138,90,0,.3);transform:rotate(12deg);z-index:9}
@media (max-width:860px){.pst-grid{grid-template-columns:1fr;gap:28px}}
@media (prefers-reduced-motion:reduce){.pst-fan figure{transition:none}}

/* today's HeartWise band (home) */
.td-band{padding:84px 0;background:var(--paper)}
.td-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
@media (max-width:860px){.td-grid{grid-template-columns:1fr;gap:28px}}

/* ---------- fixer 3: shared bits ---------- */
h1,h2,h3,.lead,.sec-head p{text-wrap:balance}
.bk h2{font-size:1.06rem;margin:6px 0 4px;line-height:1.25;font-family:var(--f-head);color:inherit}
.dark .bk h2{color:#fff}

/* looping shelves: a visible Pause / Play button; pauses while a card has focus or a finger is down */
.mq-bar{display:flex;justify-content:center;padding:0 16px}
.mq-pause{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 18px;border-radius:999px;border:2px solid var(--line);background:#fff;color:var(--ink);font:800 .92rem/1 var(--f-body);cursor:pointer}
.mq-pause:hover{border-color:var(--ink)}
.mq-pause i{display:inline-block;width:12px;height:14px;border-left:4px solid currentColor;border-right:4px solid currentColor;box-sizing:border-box}
.mq-pause[aria-pressed="true"] i{width:0;height:0;border:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:12px solid currentColor}
.dark .mq-pause{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.45)}
.dark .mq-pause:hover{border-color:#fff}
.mq-on.is-paused .track,.mq-on.is-paused .lib-track,.marquee:focus-within .track,.lib-marq:focus-within .lib-track{animation-play-state:paused!important}
.lib-marq+.mq-bar{margin-top:14px}
.marquee+.mq-bar{margin:-8px 0 26px}
@media (prefers-reduced-motion:reduce){.mq-bar{display:none}}

/* library: empty state, counts, mobile */
.lib-empty{background:#fff;border:2px dashed var(--line);border-radius:var(--r-l);padding:28px;text-align:center;margin:10px 0 30px}
.lib-empty p{margin:0 0 16px;color:var(--ink-2)}
.chip .n{font-weight:700;opacity:.7;margin-left:6px}
.chip[disabled]{opacity:.45;cursor:not-allowed;border-style:dashed}
.chip[disabled]:hover{border-color:var(--line);color:var(--ink-2)}
@media (max-width:600px){
  .shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}
  .shelf .bk .meta{padding:12px 2px 0}
  .shelf .bk h2,.shelf .bk h3{font-size:.95rem}
  .shelf .bk .ages{font-size:.82rem}
  .filters{flex-wrap:nowrap;overflow-x:auto;margin:0 -24px 12px;padding:2px 24px 8px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  .filters .chip{flex:none;scroll-snap-align:start;padding:12px 15px;min-height:44px;white-space:nowrap}
  .ph-hero .lead{font-size:1rem}
  .count{margin:2px 0 16px}
}

/* book pages: one info card instead of two, buttons close to the title on small screens */
.facts{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.fact-who .fa{display:block;margin-top:10px;font-weight:700;font-size:.95rem;color:var(--ink-2)}
.bp-box-btns{display:contents}
.bp-top{display:none;margin:18px 0 4px}
.xcover{max-width:420px;border-radius:8px 16px 16px 8px;overflow:hidden;box-shadow:var(--sh-3);position:sticky;top:96px;aspect-ratio:1020/1448;background:var(--tt,#fff)}
.xcover img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:960px){
  .bp-top{display:flex}
  .bp-box-btns{display:none}
  .xcover{position:static;margin:0 auto}
  .flip,.xcover{max-width:230px}
  .flip-hint{margin-top:12px}
  .bp{padding-top:28px}
  .facts{grid-template-columns:1fr}
}

/* home hero on a phone */
@media (max-width:480px){
  .hero{padding-top:36px}
  .hero .eyebrow{line-height:1.4;padding:9px 14px;letter-spacing:.1em}
  .hero-meta{display:grid;grid-template-columns:1fr 1fr;gap:20px 16px;margin-top:30px}
  .f-book1{left:3%}.f-book2{right:3%}
  .stage{max-width:100%;margin-top:34px}
}

/* free samples band on the library page */
.lib-free{padding:26px 0 0}
.lib-free-in{display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#fff;border-radius:var(--r-xl);padding:26px 34px;box-shadow:var(--sh-2);border:3px solid var(--leaf-t);position:relative}
.lib-free-in h2{font-size:clamp(1.4rem,2.6vw,2rem);margin:6px 0 6px}
.lib-free-in p{margin:0;color:var(--ink-2);max-width:60ch}
@media (max-width:700px){.lib-free-in{padding:22px 22px}.lib-free-in .btn{width:100%;text-align:center}}

/* HW-14: white label text needs 4.5:1, so the light coral tag uses the darker button coral */
.prog .tagp[style*="var(--coral)"],.prog .tagp:not([style]){background:var(--coral-btn)!important}

/* book facts: the availability, use-alongside and next-step lines span the full width */
.fact-row{grid-column:1/-1}
.fact-row .fa{display:block;margin-top:6px;font-weight:600;font-size:.95rem;color:var(--ink-2)}
.fact-row a{font-weight:700}
