/* Heretic Photo — reusable portfolio detail page components */
/* ============================================================
   Portfolio detail page components
   These are intentionally reusable across category pages.
   ============================================================ */
.page-hero{
  position:relative;
  min-height:clamp(620px,82vh,900px);
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  border-bottom:1px solid var(--line-soft);
  background:#050505;
}
.page-hero__media{position:absolute;inset:0}
.page-hero__media img{
  width:100%;height:100%;display:block;object-fit:cover;object-position:center 42%;
  filter:saturate(.78) contrast(1.04) brightness(.75);
}
.page-hero__overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(2,2,2,.92) 0%,rgba(2,2,2,.72) 36%,rgba(2,2,2,.28) 70%,rgba(2,2,2,.15) 100%),
    linear-gradient(0deg,rgba(2,2,2,.94) 0%,rgba(2,2,2,.25) 48%,rgba(2,2,2,.12) 100%);
}
.page-hero__inner{
  position:relative;z-index:2;
  width:min(1640px,calc(100% - (var(--gutter)*2)));
  margin:0 auto;
  padding:clamp(130px,18vh,210px) 0 clamp(58px,8vw,105px);
}
.page-hero__kicker{
  color:var(--gold2);font-family:InterLocal,sans-serif;font-size:.64rem;
  font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:18px;
}
.page-hero__title{
  max-width:1000px;margin:0;
  color:var(--bone);font-family:OswaldLocal,Impact,sans-serif;
  font-size:clamp(4.6rem,10vw,10.5rem);font-weight:600;line-height:.78;
  letter-spacing:-.05em;text-transform:uppercase;
}
.page-hero__title span{
  display:block;color:transparent;
  -webkit-text-stroke:1.2px rgba(233,228,221,.78);
  text-stroke:1.2px rgba(233,228,221,.78);
}
.page-hero__summary{
  max-width:650px;margin:28px 0 0;color:#aaa29b;
  font-size:clamp(.88rem,1.25vw,1.02rem);line-height:1.8;
}
.page-hero__meta{
  display:flex;flex-wrap:wrap;gap:12px 34px;margin-top:30px;padding-top:22px;
  border-top:1px solid rgba(233,228,221,.16);max-width:720px;
}
.page-hero__meta span{
  font-family:OswaldLocal,Impact,sans-serif;font-size:.64rem;letter-spacing:.15em;
  text-transform:uppercase;color:#817a73;
}
.page-hero__meta strong{color:var(--bone);font-weight:500}

.portfolio-intro{padding:clamp(72px,9vw,135px) 0 clamp(55px,7vw,95px)}
.portfolio-intro__grid{
  display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(55px,9vw,150px);align-items:start;
}
.portfolio-intro__eyebrow{
  color:var(--gold2);font-family:InterLocal,sans-serif;font-size:.62rem;
  font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:18px;
}
.portfolio-intro__title{
  margin:0;color:var(--bone);font-family:OswaldLocal,Impact,sans-serif;
  font-size:clamp(3rem,6vw,6.4rem);font-weight:600;line-height:.86;
  letter-spacing:-.04em;text-transform:uppercase;
}
.portfolio-intro__title span{
  display:block;color:transparent;-webkit-text-stroke:1px rgba(233,228,221,.56);
}
.portfolio-intro__copy{max-width:720px}
.portfolio-intro__copy p{margin:0 0 18px;color:#938c85;font-size:.9rem;line-height:1.9}
.portfolio-intro__copy p:first-child{color:#d6d0ca;font-size:1rem}

.editorial-gallery{padding:0 0 clamp(78px,10vw,150px)}
.editorial-gallery__toolbar{
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  margin-bottom:20px;padding-top:2px;
}
.editorial-gallery__kicker{
  color:var(--gold2);font-family:InterLocal,sans-serif;font-size:.58rem;
  font-weight:700;letter-spacing:.18em;text-transform:uppercase;
}
.editorial-gallery__note{
  margin:7px 0 0;color:#6f6862;font-family:InterLocal,sans-serif;
  font-size:.68rem;letter-spacing:.04em;
}
.editorial-gallery__grid{
  column-count:3;column-gap:12px;
}
.editorial-gallery__grid[data-columns="4"]{column-count:4}
.editorial-gallery__item{
  position:relative;display:block;width:100%;margin:0 0 12px;padding:0;
  break-inside:avoid;overflow:hidden;border:1px solid rgba(233,228,221,.12);
  background:#090909;cursor:zoom-in;text-align:left;
}
.editorial-gallery__item img{
  width:100%;height:auto;display:block;
  filter:saturate(.76) contrast(1.04) brightness(.86);
  transition:transform .65s cubic-bezier(.2,.72,.2,1),filter .3s ease;
}
.editorial-gallery__item::after{
  content:"View";position:absolute;left:14px;bottom:12px;
  color:rgba(233,228,221,.9);font-family:OswaldLocal,Impact,sans-serif;
  font-size:.54rem;letter-spacing:.16em;text-transform:uppercase;
  opacity:0;transform:translateY(6px);transition:.22s ease;
}
.editorial-gallery__item:hover img{transform:scale(1.018);filter:saturate(.9) contrast(1.04) brightness(.93)}
.editorial-gallery__item:hover::after,.editorial-gallery__item:focus-visible::after{opacity:1;transform:none}
.editorial-gallery__item:focus-visible{outline:1px solid var(--gold2);outline-offset:4px}
.editorial-gallery__caption{
  display:flex;justify-content:space-between;gap:20px;padding-top:6px;
  color:#655f59;font-family:InterLocal,sans-serif;font-size:.58rem;
  letter-spacing:.13em;text-transform:uppercase;
}

.content-band{
  border-block:1px solid var(--line-soft);
  background:linear-gradient(135deg,#070706,#0a0908);
}
.content-band__grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.75fr);
  gap:clamp(50px,9vw,150px);padding-top:clamp(70px,8vw,115px);
  padding-bottom:clamp(70px,8vw,115px);align-items:start;
}
.content-band__kicker{
  color:var(--gold2);font-family:InterLocal,sans-serif;font-size:.62rem;
  font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:16px;
}
.content-band__title{
  margin:0 0 28px;color:var(--bone);font-family:OswaldLocal,Impact,sans-serif;
  font-size:clamp(3rem,5.5vw,6rem);line-height:.88;font-weight:600;
  letter-spacing:-.04em;text-transform:uppercase;
}
.content-band__body{max-width:720px;color:#948d86;font-size:.9rem;line-height:1.9}
.content-band__body p{margin:0 0 17px}
.content-band__aside{
  border-left:1px solid var(--gold);padding-left:clamp(22px,3vw,38px);
}
.content-band__aside h3{
  margin:0 0 14px;color:var(--bone);font-family:OswaldLocal,Impact,sans-serif;
  font-size:clamp(1.65rem,2.5vw,2.5rem);font-weight:500;line-height:1;
  text-transform:uppercase;
}
.content-band__aside p{margin:0;color:#8e8780;font-size:.82rem;line-height:1.8}
.content-band__aside a{
  display:inline-block;margin-top:20px;color:var(--gold2);font-family:OswaldLocal,Impact,sans-serif;
  font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;
  border-bottom:1px solid rgba(178,154,115,.45);padding-bottom:4px;
}

.category-cta{
  position:relative;overflow:hidden;min-height:clamp(500px,60vw,760px);
  display:flex;align-items:center;border-bottom:1px solid var(--line-soft);
}
.category-cta__media{position:absolute;inset:0}
.category-cta__media img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  filter:saturate(.66) contrast(1.05) brightness(.55);
}
.category-cta__overlay{
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(2,2,2,.93),rgba(2,2,2,.62) 48%,rgba(2,2,2,.25));
}
.category-cta__content{
  position:relative;z-index:2;width:min(1640px,calc(100% - (var(--gutter)*2)));
  margin:auto;padding:80px 0;
}
.category-cta__kicker{
  color:var(--gold2);font-family:InterLocal,sans-serif;font-size:.62rem;
  font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:17px;
}
.category-cta__title{
  max-width:900px;margin:0;color:var(--bone);font-family:OswaldLocal,Impact,sans-serif;
  font-size:clamp(4rem,8vw,8.8rem);font-weight:600;line-height:.82;
  letter-spacing:-.045em;text-transform:uppercase;
}
.category-cta__title span{
  display:block;color:transparent;-webkit-text-stroke:1px rgba(233,228,221,.7);
}
.category-cta__copy{max-width:580px;color:#a39b94;font-size:.86rem;line-height:1.8;margin:25px 0 0}
.category-cta__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}

/* Generic image viewer usable on any gallery page. */
.image-viewer{
  position:fixed;inset:0;z-index:900;display:none;place-items:center;
  background:rgba(0,0,0,.94);padding:clamp(18px,4vw,60px);
}
.image-viewer.is-open{display:grid}
.image-viewer img{max-width:100%;max-height:88vh;object-fit:contain}
.image-viewer__close{
  position:absolute;right:22px;top:18px;width:48px;height:48px;border:1px solid rgba(233,228,221,.26);
  border-radius:50%;background:#080808;color:var(--bone);font-size:1.5rem;cursor:pointer;
}

/* Responsive category-page behavior */
@media(max-width:900px){
  .page-hero{min-height:720px}
  .page-hero__media img{object-position:62% center}
  .page-hero__overlay{
    background:
      linear-gradient(0deg,rgba(2,2,2,.96) 0%,rgba(2,2,2,.66) 42%,rgba(2,2,2,.16) 80%),
      linear-gradient(90deg,rgba(2,2,2,.55),rgba(2,2,2,.12));
  }
  .portfolio-intro__grid,.content-band__grid{grid-template-columns:1fr;gap:38px}
  .content-band__aside{max-width:620px}
  .editorial-gallery__grid,.editorial-gallery__grid[data-columns="4"]{column-count:2}
}
@media(max-width:620px){
  .page-hero{min-height:660px}
  .page-hero__inner{padding-bottom:46px}
  .page-hero__title{font-size:clamp(4.25rem,21vw,6.8rem)}
  .page-hero__summary{font-size:.84rem;line-height:1.7}
  .page-hero__meta{gap:10px 20px}
  .portfolio-intro{padding-top:64px}
  .portfolio-intro__title{font-size:clamp(3.2rem,16vw,5rem)}
  .editorial-gallery__grid,.editorial-gallery__grid[data-columns="4"]{column-count:1;column-gap:0}
  .editorial-gallery__item{margin-bottom:10px}
  .editorial-gallery__toolbar{margin-bottom:14px}
  .editorial-gallery__caption{display:none}
  .content-band__aside{border-left:0;border-top:1px solid var(--gold);padding:25px 0 0}
  .category-cta{min-height:590px}
  .category-cta__title{font-size:clamp(3.6rem,17vw,6rem)}
}
