/* HeartWise free posters page */
.ps-hero{padding:48px 0 84px;overflow:hidden;position:relative;
  background:radial-gradient(900px 420px at 88% 6%,#FFE3C4 0,rgba(255,227,196,0) 62%),radial-gradient(700px 380px at 2% 96%,#E7DEF5 0,rgba(231,222,245,0) 60%),linear-gradient(180deg,var(--cream),var(--paper))}
.ps-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:start}
.ps-intro h1{font-size:clamp(2.2rem,4.8vw,3.8rem);margin-bottom:.4em}
.ps-intro h1 .s{color:var(--coral-d);display:inline}
.ps-intro .lead{margin-bottom:22px}
.ps-points li{font-weight:600;color:var(--ink-2)}
.ps-points li span{display:block}.ps-points b{color:var(--ink)}

/* fan of posters */
.ps-fan{position:relative;width:min(100%,600px);aspect-ratio:1/.92;margin:30px auto 0 0}
.ps-fan figure{position:absolute;left:27%;top:0;width:46%;margin:0;z-index:var(--z);transform-origin:50% 130%;transform:rotate(var(--r));animation:ps-fan 1.1s var(--ease) both;animation-delay:calc(.1s * var(--i))}
.ps-fan figure img{width:100%;height:auto;border-radius:6px;box-shadow:0 18px 34px rgba(43,33,64,.26),0 2px 4px rgba(43,33,64,.12);background:#fff}
.ps-fan:hover figure{transform:rotate(calc(var(--r) * 1.25))}
@keyframes ps-fan{from{transform:rotate(0) translateY(26px);opacity:0}to{transform:rotate(var(--r));opacity:1}}
.ps-fan::after{content:"Free";position:absolute;right:2%;top:2%;width:84px;height:84px;border-radius:50%;background:var(--sun);color:#2B2140;font:700 1.35rem/84px var(--f-head);text-align:center;box-shadow:0 10px 22px rgba(138,90,0,.3);transform:rotate(12deg);z-index:9;animation:ps-bob 4.6s ease-in-out infinite}
@keyframes ps-bob{50%{transform:rotate(7deg) translateY(-8px)}}

/* gate */
.ps-side{position:sticky;top:96px}
.ps-gate,.ps-done{background:#fff;padding:32px 30px 28px;box-shadow:var(--sh-3);border-color:rgba(43,33,64,.2)}
.ps-gh2{font-size:1.75rem;margin-bottom:6px}
.ps-sub{color:var(--ink-2);margin-bottom:18px}
.ps-needjs{display:none;background:var(--sun-t);color:#4A3200;border-radius:var(--r-s);padding:12px 16px;font-size:.95rem;margin:0 0 18px}
.no-js .ps-needjs:not(.ps-needjs-ns){display:block}
.ps-needjs a{font-weight:800}
.ps-form .req{color:var(--coral-d)}
.ps-form .field input[aria-invalid="true"]{border-color:var(--coral-d);background:#FFF6F3}
.ps-err{color:#A8321A;font-weight:700;font-size:.92rem;margin:8px 0 0}
.ps-priv{font-size:.92rem;color:var(--ink-3);margin:10px 0 0}
.ps-sets{border:0;padding:0;margin:6px 0 4px;min-width:0}
.ps-sets legend{font-weight:800;padding:0;margin-bottom:10px}
.ps-lg2{font-weight:600;color:var(--ink-3);font-size:.92rem}
.ps-picks{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ps-pick{position:relative;display:block;cursor:pointer}
.ps-pick input{position:absolute;z-index:2;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.ps-pk-in{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:66px;padding:10px 12px;border:2px solid var(--line);border-radius:var(--r-m);background:#fff;transition:border-color .2s,background .2s,transform .2s var(--ease)}
.ps-pk-tx{display:flex;flex-direction:column;line-height:1.25}
.ps-pk-tx b{font-family:var(--f-head);font-weight:600;color:var(--ink)}
.ps-pk-tx small{color:var(--ink-2);font-size:.88rem;font-weight:600}
.ps-pk-ck{flex:none;width:26px;height:26px;border-radius:7px;border:2px solid var(--ink-3);background:#fff;position:relative}
.ps-pick:hover .ps-pk-in{border-color:var(--ac);transform:translateY(-2px)}
.ps-pick input:checked + .ps-pk-in{border-color:var(--dk);background:var(--tn)}
.ps-pick input:checked + .ps-pk-in .ps-pk-ck{background:var(--dk);border-color:var(--dk)}
.ps-pick input:checked + .ps-pk-in .ps-pk-ck::after{content:"";position:absolute;left:8px;top:4px;width:7px;height:12px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}
.ps-pick input:focus-visible + .ps-pk-in{outline:3px solid var(--ink);outline-offset:2px}
.ps-check{display:flex;align-items:center;gap:12px;min-height:48px;font-weight:700;cursor:pointer;padding:4px 0;margin-top:6px}
.ps-check input{width:24px;height:24px;flex:none;accent-color:var(--coral-btn);margin:0;cursor:pointer}
.ps-go{justify-content:center;width:100%;margin-top:6px}
.ps-go[disabled]{opacity:.55;cursor:not-allowed}
.ps-live{min-height:1.4em;margin:0;font-weight:700;color:var(--ink-2)}
.ps-done .btn-row{margin-top:6px}.ps-done h2:focus{outline:none}
.ps-hero:has(.ps-done:not([hidden])) .ps-fan{display:none}

/* downloads */
.ps-yours{padding:70px 0 70px;background:var(--paper);scroll-margin-top:72px}
.ps-yours[hidden]{display:none}
.ps-yours.ps-in .ps-sh{animation:ps-rise .8s var(--ease) both}
@keyframes ps-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.ps-sh{max-width:720px;margin-bottom:26px}.ps-sh h2:focus{outline:none}
.ps-prep{display:flex;gap:14px;align-items:center;background:var(--sun-t);color:#4A3200;border-radius:var(--r-m);padding:16px 20px;margin:0 0 22px;max-width:720px}
.ps-prep[hidden]{display:none}.ps-prep img{width:40px;height:40px;flex:none}
.ps-dl-set{margin:0 0 44px}.ps-dl-set[hidden]{display:none}
.ps-dl-h{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;padding-bottom:14px;margin-bottom:20px;border-bottom:3px dotted rgba(43,33,64,.2)}
.ps-dl-h h3{margin:0;font-size:1.6rem;color:var(--dk)}
.ps-dl-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.ps-dl-item{background:#fff;border-radius:var(--r-m);padding:12px;box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:12px;border-top:6px solid var(--ac)}
.ps-dl-item img{width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px rgba(43,33,64,.18)}
.ps-dl-t{font-weight:800;margin:0 0 10px;line-height:1.3;color:var(--ink)}
.ps-get{padding:12px 18px;min-height:46px;font-size:.95rem;width:100%;justify-content:center}
.ps-get.is-off,.ps-zip.is-off{opacity:.6;cursor:not-allowed;pointer-events:none}
.ps-n{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--dk,var(--ink));color:#fff;font:700 .85rem/1 var(--f-head);margin-right:4px}
.ps-more-sets{margin:0}

/* gallery */
.ps-sets-sec{padding:84px 0 70px}
.ps-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 22px}
.ps-tab{font:700 1rem/1 var(--f-head);padding:13px 22px;min-height:48px;border-radius:99px;border:2px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;transition:background .2s,border-color .2s,transform .2s var(--ease)}
.ps-tab:hover{border-color:var(--ac);transform:translateY(-2px)}
.ps-tab[aria-selected="true"]{background:var(--dk);border-color:var(--dk);color:#fff}
.ps-tab:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.ps-tag{color:var(--ink-2);margin:0 0 18px}.ps-tag b{color:var(--dk)}
.ps-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.ps-card{margin:0}
.ps-open{display:block;width:100%;padding:0;border:0;background:#fff;border-radius:10px;cursor:zoom-in;box-shadow:0 10px 26px rgba(43,33,64,.18),0 1px 3px rgba(43,33,64,.1);transition:transform .35s var(--ease),box-shadow .35s var(--ease);overflow:hidden}
.ps-open:hover{transform:translateY(-8px) rotate(-.6deg);box-shadow:0 22px 40px rgba(43,33,64,.26)}
.ps-open:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.ps-open img{width:100%;height:auto;display:block}
.ps-cap{margin:12px 2px 0;font-weight:800;line-height:1.3;color:var(--ink)}
.ps-cta{margin-top:34px}

/* how */
.ps-how{padding:84px 0}
.ps-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:8px}
.ps-step{background:#fff;border-radius:var(--r-l);padding:28px 26px;box-shadow:var(--sh-1)}
.ps-sn{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--sun);color:#2B2140;font:700 1.3rem/1 var(--f-head);margin-bottom:12px}
.ps-step h3{margin:0 0 6px}.ps-step p{margin:0;color:var(--ink-2)}
.ps-next{margin-top:44px}.ps-next h3{margin-bottom:12px}

/* larger view */
.ps-lb{border:0;padding:0;background:transparent;max-width:min(94vw,760px);max-height:96vh;overflow:visible}
.ps-lb::backdrop{background:rgba(30,22,52,.72)}
.ps-lb img{width:auto;max-width:100%;height:auto;max-height:calc(100vh - 150px);object-fit:contain;border-radius:10px;background:#fff;box-shadow:0 30px 70px rgba(0,0,0,.4)}
.ps-lb-x{position:absolute;right:0;top:-48px;min-height:44px;padding:0 20px;border-radius:99px;border:0;background:#fff;color:var(--ink);font:700 1rem var(--f-head);cursor:pointer}

@media (max-width:1080px){.ps-grid,.ps-dl-list{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){.ps-hero-grid{grid-template-columns:1fr;gap:28px}.ps-side{position:static}.ps-steps{grid-template-columns:1fr}.ps-fan{margin:26px auto 0}}
@media (max-width:640px){.ps-grid,.ps-dl-list{grid-template-columns:repeat(2,1fr);gap:14px}.ps-picks{grid-template-columns:1fr}.ps-gate,.ps-done{padding:26px 20px 22px}}
@media (prefers-reduced-motion:reduce){.ps-fan figure,.ps-fan::after,.ps-yours.ps-in .ps-sh{animation:none}.ps-open,.ps-pk-in,.ps-tab{transition:none}}
.ps-dl-item>div{display:flex;flex-direction:column;flex:1}
.ps-dl-item .ps-get{margin-top:auto}

.ps-wp{display:flex;flex-wrap:wrap;gap:18px 32px;align-items:center;justify-content:space-between;background:linear-gradient(135deg,var(--vio-t),#fff);border-radius:var(--r-l);padding:28px 32px;margin:8px 0 34px;box-shadow:var(--sh-1);border:2px solid #D9CBEE}
.ps-wp[hidden]{display:none}.ps-wp h3{margin:.2em 0 .3em;color:var(--vio-d)}.ps-wp p{margin:0;max-width:56ch;color:var(--ink-2)}
.ps-tag a{font-weight:800;color:var(--vio-d)}

/* final fix pass: lightbox with visible previous / next buttons, counter outside the artwork */
.ps-lb-row{display:flex;align-items:center;justify-content:center;gap:12px}
.ps-lb-row img{flex:0 1 auto;min-width:0}
.ps-lb-nav{flex:none;width:52px;height:52px;border-radius:50%;border:0;background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:var(--sh-2);transition:transform .2s var(--ease),background .2s}
.ps-lb-nav:hover{background:var(--sun-t);transform:scale(1.06)}
.ps-lb-nav:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.ps-lb-cap{margin:14px 0 0;text-align:center;color:#fff;font:700 1rem/1.4 var(--f-body)}
.ps-priv a{font-weight:800}
@media (max-width:560px){.ps-lb-row{gap:6px}.ps-lb-nav{width:48px;height:48px}.ps-lb img{max-height:calc(100vh - 170px)}}
