/* Plexus page types: category/collection indexes, blog list, article, enrollment pack, media, playlist.
   Extends assets/plexus.css (tokens and px-* classes live there). Only layout this file needs on top. */

/* Index tiles: a merchant image fills the tile softly, product silos use the shared cluster. */
.px-tile__cluster--photo{left:0;right:0;bottom:0;top:0;width:auto;height:auto}
.px-tile__cluster--photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:none}
.px-tile--photo .px-label,.px-tile--photo .px-tile__name{background:var(--white);border-radius:var(--r-pill);padding:4px 12px;align-self:flex-start}
.px-tile--photo .px-tile__name{padding:8px 16px 10px;max-width:calc(100% - 52px)}

/* Blog list */
.px-postgrid{display:grid;gap:clamp(16px,2vw,28px);grid-template-columns:1fr}
@media (min-width:700px){.px-postgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.px-postgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.px-post-card .px-card__media{aspect-ratio:3/2;background:var(--photo-1)}
.px-post-card .px-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.px-post-card:hover .px-card__media img{transform:scale(1.03)}
.px-post-card .px-card__title{font-size:clamp(22px,2vw,26px)}
.px-post-card .px-card__title::after{content:"";position:absolute;inset:0;z-index:1}
.px-post-card__meta{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;margin:0}
.px-post-card__more{margin-top:auto;padding-top:var(--s3);font-weight:600;font-size:15px;display:inline-flex;align-items:center;gap:8px}
.px-post-card__more .px-ico{width:16px;height:16px}
.px-pager{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap;margin-top:var(--s10)}
.px-pager__spacer{min-width:1px}

/* Article */
.px-article{max-width:780px;margin-inline:auto}
.px-article__top{display:grid;gap:var(--s4);justify-items:start}
.px-byline{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;color:var(--muted);font-size:15px;margin:0}
.px-byline__sep{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.6}
.px-article__hero{border-radius:var(--r-card);overflow:hidden;aspect-ratio:16/9;background:var(--photo-1);margin:var(--s8) 0 var(--s10)}
.px-article__hero img{width:100%;height:100%;object-fit:cover}
.px-article__body{max-width:68ch;font-size:var(--font_size_body,18px);line-height:1.7;color:var(--ink)}
.px-article__body p{margin:0 0 1.15em}
.px-article__body img{height:auto;border-radius:16px;margin:var(--s6) 0}
.px-article__body a{text-underline-offset:4px}
.px-article__body ol{padding-left:1.2em;display:grid;gap:8px;margin:0 0 var(--s4)}
.px-article__body blockquote{margin:var(--s8) 0;padding-left:var(--s6);border-left:2px solid var(--ink);font-family:var(--font-display);font-size:clamp(22px,2.4vw,28px);line-height:1.3;letter-spacing:-.01em}
.px-article__body iframe,.px-article__body video{width:100%;aspect-ratio:16/9;height:auto;border:0;border-radius:16px;margin:var(--s6) 0}
.px-article__foot{display:grid;gap:var(--s5);margin-top:var(--s12);padding-top:var(--s6);border-top:1px solid var(--line)}

/* Enrollment pack */
.px-pack{display:grid;gap:var(--s8);padding-block:clamp(32px,5vw,64px) var(--section-y)}
@media (min-width:1024px){.px-pack{grid-template-columns:1.1fr .9fr;gap:var(--s16);align-items:start}.px-pack__info{position:sticky;top:calc(var(--nav-h) + 32px)}}
.px-pack__gal{display:grid;gap:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr))}
.px-pack__gal .px-img{aspect-ratio:1/1;border-radius:var(--r-card);background:var(--white)}
.px-pack__gal .px-img:first-child{grid-column:1/-1;aspect-ratio:4/3}
.px-pack__gal .px-img img{padding:6%}
.px-pack__info{display:grid;gap:var(--s5);align-content:start}
.px-pack__title{font-family:var(--font-display);font-weight:700;font-size:clamp(36px,4vw,56px);letter-spacing:-.03em;line-height:.95;margin:0}
.px-pack__price{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}
.px-pack__price strong{font-weight:700;font-size:clamp(24px,2.4vw,30px)}
.px-pack__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}
.px-pack__item{display:grid;grid-template-columns:56px 1fr auto;gap:var(--s4);align-items:center;background:var(--white);border-radius:18px;padding:8px 16px 8px 8px}
.px-pack__item .px-img{width:56px;height:56px;border-radius:12px;background:var(--cream)}
.px-pack__item a{text-decoration:none}
.px-pack__item a:hover{text-decoration:underline;text-underline-offset:4px}
.px-pack__note{background:var(--white);border-radius:var(--r-card);padding:var(--s5);display:grid;gap:var(--s2)}
.px-pack__note ul{margin:0;padding-left:1.1em;display:grid;gap:4px}

/* Media + playlist */
.px-media{border-radius:var(--r-card);overflow:hidden;background:var(--white)}
.px-media--frame{aspect-ratio:16/9;background:var(--night)}
.px-media video,.px-media iframe{width:100%;height:100%;display:block;border:0;object-fit:contain}
.px-media img{width:100%;height:auto;display:block}
.px-media fluid-media-widget,.px-lib fluid-media-widget{display:block;width:100%}
.px-media-meta{display:grid;gap:var(--s5);max-width:68ch;margin-top:var(--s8)}
.px-lib{display:grid;gap:var(--s8)}
.px-lib__frame{background:var(--white);border-radius:var(--r-panel);padding:clamp(12px,2vw,24px);min-height:320px}
