/* PhotoBox V29 – media-led editorial refinements. Builds on the client-approved V28. */
.pb29-section{padding:92px 7%;background:#fff;color:#241b2b;position:relative;overflow:hidden}
.pb29-section.pb29-corporate{background:#f5f0fc}
.pb29-section.pb29-warm{background:#f6f0e7;color:#43332f}
.pb29-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:32px}
.pb29-eyebrow{font-size:12px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:#7525b5;margin:0 0 15px}
.pb29-warm .pb29-eyebrow{color:#976958}
.pb29-head h2{font-size:clamp(36px,4vw,62px);line-height:1.02;letter-spacing:-.045em;margin:0;max-width:880px}
.pb29-head>p{max-width:295px;line-height:1.5;color:#655a63;font-size:15px;margin:0}
.pb29-filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:26px}
.pb29-filter{border:1px solid #c4b8c7;color:#33283b;background:#fff;padding:11px 17px;cursor:pointer;border-radius:4px;font-size:13px;font-weight:750}
.pb29-filter[aria-pressed="true"]{color:white;border-color:#61269a;background:#61269a}
.pb29-media-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.pb29-card{position:relative;overflow:hidden;min-width:0;min-height:230px;aspect-ratio:4/5;border-radius:6px;background:#e9e3ed;color:white}
.pb29-card.pb29-wide{grid-column:span 2;aspect-ratio:1.7}
.pb29-card.pb29-hidden{display:none}
.pb29-card img,.pb29-card video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease}
.pb29-card:hover img{transform:scale(1.035)}
.pb29-card .pb29-card-shade{pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(13,9,23,.68));}
.pb29-card .pb29-card-label{position:absolute;left:14px;bottom:14px;right:14px;z-index:2;color:white;font-size:14px;font-weight:750;text-shadow:0 2px 16px rgba(0,0,0,.6)}
.pb29-card button{cursor:pointer;position:absolute;inset:0;z-index:3;border:0;background:transparent;color:white;font:inherit;text-align:left}
.pb29-card .pb29-play{position:absolute;top:12px;right:12px;border-radius:100%;background:#fff;color:#251a29;display:grid;place-items:center;width:42px;height:42px;box-shadow:0 3px 16px #0004;font-size:18px}
.pb29-card .pb29-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.pb29-gallery-more{margin:24px 0 0;display:flex;justify-content:space-between;gap:20px;align-items:center}
.pb29-gallery-more p{font-size:13px;line-height:1.5;color:#625a66;max-width:670px;margin:0}
.pb29-gallery-more a{font-weight:800;color:#6229aa;font-size:14px;white-space:nowrap;text-decoration:underline;text-underline-offset:5px}
.pb29-story-media{margin-top:22px}
.pb29-story-media .pb29-media-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.pb29-story-media .pb29-card{aspect-ratio:4/5;min-height:130px}
.pb29-story-media .pb29-card.pb29-wide{aspect-ratio:1.5}
.pb29-modal{padding:0;border:0;border-radius:9px;background:#161017;color:white;width:min(900px,92vw);max-height:90vh;box-shadow:0 22px 90px #0008}
.pb29-modal::backdrop{background:rgba(0,0,0,.85)}
.pb29-modal-inner{padding:22px}
.pb29-modal-header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px}
.pb29-modal-header h3{font-size:18px;margin:0;font-weight:750}
.pb29-close{font-size:26px;background:#fff;color:#21192c;border:0;cursor:pointer;border-radius:50%;width:42px;height:42px}
.pb29-modal video{width:100%;max-height:72vh;object-fit:contain;background:#000;border-radius:5px}
.pb29-card:focus-within,.pb29-filter:focus-visible,.pb29-close:focus-visible{outline:3px solid #e35054;outline-offset:3px}
@media(max-width:1000px){.pb29-section{padding:70px 5%}.pb29-media-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.pb29-section{padding:60px 5%}.pb29-head{display:block}.pb29-head>p{margin-top:16px}.pb29-media-grid,.pb29-story-media .pb29-media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.pb29-card{min-height:0}.pb29-card.pb29-wide{aspect-ratio:1.3}.pb29-gallery-more{display:block}.pb29-gallery-more a{display:inline-block;margin-top:15px}.pb29-card .pb29-card-label{font-size:12px;left:10px;bottom:10px}.pb29-filter{font-size:12px;padding:10px 13px}}
@media(prefers-reduced-motion:reduce){.pb29-card img{transition:none}}
