/* Full posters, a quiet seven-second rotation, and controls that remain reachable. */
.promotions-section{padding:70px 0 60px;background:var(--paper);border-bottom:1px solid var(--line)}
.promotions-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:28px}.promotions-heading .eyebrow{margin:0 0 12px}.promotions-heading h2{font:normal clamp(32px,3.4vw,50px)/1.08 Georgia,serif;letter-spacing:-.025em;margin:0}.promotions-controls{display:flex;align-items:center;gap:10px;flex-shrink:0}.promotions-controls .icon-button{border:1px solid var(--line);color:var(--ink);width:46px;height:46px;min-width:46px;background:transparent;border-radius:50%}.promotions-controls .icon-button:hover{border-color:var(--green)}.promotions-controls>span{font-size:13px;color:var(--muted);min-width:42px;text-align:center;font-variant-numeric:tabular-nums}
.promotions-stage{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:center;max-width:880px;margin:auto;min-width:0}.promotions-stage.has-peeks{max-width:none;grid-template-columns:minmax(0,.6fr) minmax(0,1.3fr) minmax(0,.6fr)}.promotion-poster{margin:0;min-width:0;overflow:hidden;border-radius:3px;background:color-mix(in srgb,var(--ink) 5%,var(--paper));position:relative}.promotion-poster.is-prev,.promotion-poster.is-next{opacity:.45;pointer-events:none;height:400px}.promotion-poster.is-current{height:clamp(360px,42vw,560px)}.promotion-poster button{border:0;padding:18px;display:block;width:100%;height:100%;background:transparent;cursor:zoom-in;color:var(--ink)}.promotion-poster img{width:100%;height:100%;object-fit:contain;display:block}.promotion-poster.is-prev img,.promotion-poster.is-next img{object-fit:cover;padding:0}.promotion-image-error{display:grid;place-items:center;position:absolute;inset:0;padding:25px;text-align:center;color:var(--muted);pointer-events:none}
.promotions-caption{max-width:760px;min-height:0;margin:24px auto 0;text-align:center}.promotions-caption h3{font:normal clamp(24px,2.4vw,34px)/1.15 Georgia,serif;margin:0 0 10px;overflow-wrap:anywhere}.promotions-caption p{margin:0;color:var(--muted);line-height:1.65;white-space:pre-line;overflow-wrap:anywhere}.promotions-caption:has(h3[hidden]):has(p[hidden]){margin:0}
.promotions-thumbs{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:26px auto 0;max-width:820px}.promotions-thumbs button{width:70px;height:64px;border:1px solid var(--line);padding:4px;cursor:pointer;background:var(--paper);border-radius:3px}.promotions-thumbs img{width:100%;height:100%;display:block;object-fit:contain}.promotions-thumbs button[aria-pressed=true]{border-color:var(--green);outline:1px solid var(--green);outline-offset:2px}.promotions-section button:focus-visible,.promotion-lightbox button:focus-visible{outline:3px solid var(--green);outline-offset:4px}
.promotion-lightbox{width:min(1100px,calc(100% - 24px));max-height:calc(100svh - 24px);padding:20px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:8px;overflow:auto}.promotion-lightbox::backdrop{background:rgb(15 20 15 / .8)}.promotion-lightbox header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 16px}.promotion-lightbox h2{font:normal 26px/1.2 Georgia,serif;margin:0;overflow-wrap:anywhere}.promotion-lightbox button{min-height:44px;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:10px 16px;border-radius:5px;cursor:pointer}.promotion-lightbox>img{display:block;width:100%;max-height:72svh;object-fit:contain;margin:auto}.promotion-lightbox>p{color:var(--muted);white-space:pre-line;overflow-wrap:anywhere}
@media(max-width:760px){.promotions-section{padding:40px 0}.promotions-heading{align-items:start;flex-direction:column;gap:20px;margin-bottom:22px}.promotions-controls{align-self:flex-end}.promotions-stage.has-peeks{display:block}.promotion-poster.is-prev,.promotion-poster.is-next{display:none}.promotion-poster.is-current{height:420px;max-height:66svh}.promotion-poster button{padding:10px}.promotions-caption{margin-top:18px;text-align:left}.promotions-thumbs{justify-content:flex-start;margin-top:20px;gap:10px}.promotions-thumbs button{width:54px;height:54px}.promotion-lightbox{padding:14px}.promotion-lightbox h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.promotions-section *,.promotion-lightbox *{animation:none!important;transition:none!important}}

/* Keep keyboard focus inside the clipped poster frame. */
.promotion-poster button:focus-visible{outline-offset:-5px}
