/* Zach Pennington CMS and commerce presentation layer. */
.zjp-cover{display:block;width:100%;height:100%;object-fit:cover}
.page-home .hero{position:relative;isolation:isolate;height:clamp(680px,57vw,1040px);overflow:visible}
.page-home .hero__media-shell{position:absolute;z-index:0;top:0;left:0;width:min(86vw,1651px);height:calc(100% + clamp(80px,7vw,140px));pointer-events:none;-webkit-mask-image:linear-gradient(90deg,#000 0 54%,rgba(0,0,0,.98) 58%,rgba(0,0,0,.82) 64%,rgba(0,0,0,.45) 72%,rgba(0,0,0,.16) 79%,transparent 86%),linear-gradient(180deg,#000 0 58%,rgba(0,0,0,.9) 67%,rgba(0,0,0,.42) 79%,rgba(0,0,0,.1) 90%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,#000 0 54%,rgba(0,0,0,.98) 58%,rgba(0,0,0,.82) 64%,rgba(0,0,0,.45) 72%,rgba(0,0,0,.16) 79%,transparent 86%),linear-gradient(180deg,#000 0 58%,rgba(0,0,0,.9) 67%,rgba(0,0,0,.42) 79%,rgba(0,0,0,.1) 90%,transparent 100%);mask-composite:intersect}
.page-home .hero__media-shell .hero__media{width:100%;height:100%;aspect-ratio:auto;object-position:center 28%}
.page-home.is-admin .hero__media-shell{pointer-events:auto}
.page-home .hero__body{position:relative;z-index:1;grid-column:2}
.page-home .cats{position:relative;z-index:2}
.zjp-preview-note{max-width:34rem;margin-top:2vw;color:var(--muted);letter-spacing:.06em;line-height:1.8}
.cat>.arrow{position:absolute;right:1.91vw;bottom:2.9vw;color:var(--muted);transition:transform .35s var(--ease),color .35s var(--ease)}
.cat:hover>.arrow{transform:translateX(5px);color:var(--cream)}
.card__media{display:block;overflow:hidden;background:var(--card)}
.card__media img{transition:transform .7s var(--ease),opacity .5s var(--ease)}
.card:hover .card__media img{transform:scale(1.025);opacity:.9}
.trust__mark{width:clamp(30px,2.66vw,51px);aspect-ratio:1;flex:none;position:relative;transform:rotate(45deg);border:1px solid var(--muted)}
.trust__mark::after{content:"";position:absolute;inset:27%;border:1px solid var(--muted)}
.nav__links .is-current{color:var(--cream)}
.nav__cart [data-cart-count]:not(:empty)::before{content:" ("}
.nav__cart [data-cart-count]:not(:empty)::after{content:")"}

.foot__grid{grid-template-columns:1.3fr .7fr .8fr 1.25fr;gap:4vw;padding-bottom:2.75vw}
.foot__newsletter p{margin-top:1.18vw;color:var(--muted);font-size:var(--fs-meta);line-height:1.7;max-width:28rem}
.newsletter{display:grid;grid-template-columns:1fr auto;margin-top:1.4vw;border:1px solid var(--line-strong)}
.newsletter .form-row,.newsletter .form-field{display:contents}.newsletter label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.newsletter input{min-width:0;width:100%;border:0;background:transparent;color:var(--cream);padding:.9em 1em;font:inherit}
.newsletter input::placeholder{color:var(--dim)}
.newsletter button{padding:.8em 1.2em;border-left:1px solid var(--line-strong);font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;color:var(--cream-2)}
.newsletter .form-status{grid-column:1/-1;margin:0;padding:0 1em .8em}
.foot__bottom{margin:0 4.04vw;border-top:1px solid var(--line-dim);padding:1.95vw 0 2.45vw;display:flex;justify-content:space-between;align-items:center;gap:2rem;color:var(--dim);font-size:var(--fs-meta)}
.nlh-attribution-band a{color:var(--dim)}

.zjp-catalog{padding:clamp(64px,7vw,132px) var(--gutter) clamp(80px,9vw,170px);min-height:60vh}
.zjp-catalog__head{max-width:820px;margin-bottom:clamp(40px,5vw,92px)}
.zjp-catalog__head h1{margin-top:.35em;font-family:var(--serif);font-size:clamp(48px,7vw,122px);font-weight:500;line-height:.95;letter-spacing:-.02em}
.zjp-catalog__intro{margin-top:2rem;max-width:650px;color:var(--muted);font-size:clamp(15px,1vw,19px);line-height:1.9;letter-spacing:.04em}
.zjp-catalog__empty{max-width:720px;padding:clamp(32px,4vw,64px);border:1px solid var(--line);background:var(--card);color:var(--muted);letter-spacing:.05em;line-height:1.8}
.zjp-editorial__body{max-width:760px;color:var(--cream-2);font-size:clamp(17px,1.2vw,22px);line-height:1.95}.zjp-editorial__body p+p{margin-top:1.2em}
.shop-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(28px,3vw,60px) clamp(14px,1.3vw,26px)}
.shop-card{position:relative;min-width:0}
.shop-card__link{display:flex;flex-direction:column;height:100%}
.shop-card__img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--card);filter:saturate(.9);transition:opacity .4s var(--ease)}
.shop-card__link:hover .shop-card__img{opacity:.84}
.shop-card__title{margin-top:1.25rem;font-size:var(--fs-meta);line-height:1.5;letter-spacing:.16em;text-transform:uppercase;color:var(--cream)}
.shop-card__price{margin-top:.75rem;color:var(--cream-2);font-size:var(--fs-meta);letter-spacing:.1em}
.shop-card__badge{position:absolute;top:1rem;left:1rem;padding:.5em .75em;background:rgba(12,12,14,.9);color:var(--cream-2);font-size:11px;letter-spacing:.15em;text-transform:uppercase}
.zjp-pagination{display:flex;justify-content:flex-end;gap:2rem;margin-top:4rem}.zjp-pagination a{padding:.8rem 1.2rem;border:1px solid var(--line-strong);letter-spacing:.12em;text-transform:uppercase}

.zjp-search-page{max-width:700px;margin-bottom:4rem}
.zjp-search-page label{display:block;margin-bottom:.75rem;color:var(--muted);font-size:12px;letter-spacing:.15em;text-transform:uppercase}
.zjp-search-page>div{display:grid;grid-template-columns:1fr auto;border:1px solid var(--line-strong)}
.zjp-search-page input{min-width:0;border:0;background:transparent;color:var(--cream);padding:1rem 1.25rem}
.zjp-search-page button{padding:1rem 1.4rem;border-left:1px solid var(--line-strong);letter-spacing:.14em;text-transform:uppercase}

.cms-shop{min-height:100vh;background:var(--bg);color:var(--cream);font-family:var(--sans)}
.cms-shop .nav,.cms-shop .foot{width:100%}
.shop-notice{margin:0;padding:1rem var(--gutter);border-bottom:1px solid var(--line);background:#171516;color:var(--cream-2);text-align:center;font-size:14px}
.zjp-product{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);gap:clamp(40px,6vw,110px);padding:clamp(52px,6vw,112px) var(--gutter) clamp(80px,9vw,170px)}
.zjp-product__gallery{min-width:0}
.zjp-product__primary{display:block;width:100%;max-height:78vh;object-fit:contain;object-position:center;background:var(--card)}
.zjp-product__thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:8px}
.zjp-product__thumb{padding:0;border:1px solid transparent;background:var(--card)}
.zjp-product__thumb.is-current{border-color:var(--muted)}
.zjp-product__thumb img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.zjp-product__info{align-self:start;position:sticky;top:2rem}
.zjp-product__vendor{color:var(--muted);font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.zjp-product__title{margin-top:.6em;font-family:var(--serif);font-size:clamp(42px,4.2vw,78px);font-weight:500;line-height:1.03}
.zjp-product__price{margin-top:2rem;color:var(--cream-2);font-size:18px;letter-spacing:.12em}
.zjp-product__stock{margin-top:.7rem;color:var(--muted);font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.zjp-product__form{display:grid;gap:1rem;margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--line)}
.zjp-product__form label{color:var(--muted);font-size:11px;letter-spacing:.15em;text-transform:uppercase}
.zjp-product__form select,.zjp-product__form input{width:100%;border:1px solid var(--line-strong);background:transparent;color:var(--cream);padding:1rem}
.zjp-product__form button,.zjp-cart__checkout{border:1px solid var(--cream-2);background:var(--cream);color:var(--bg);padding:1.15rem 1.4rem;letter-spacing:.16em;text-transform:uppercase}
.zjp-product__form button:disabled{opacity:.45;cursor:not-allowed}
.zjp-product__description{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--line);color:var(--muted);line-height:1.8}
.zjp-product__description p+p{margin-top:1em}

.zjp-cart{padding:clamp(64px,7vw,130px) var(--gutter) clamp(80px,9vw,170px);min-height:65vh}
.zjp-cart h1{font-family:var(--serif);font-size:clamp(48px,6vw,104px);font-weight:500}
.zjp-cart__empty{margin-top:3rem;color:var(--muted)}
.zjp-cart__lines{margin-top:4rem;border-top:1px solid var(--line)}
.zjp-cart__line{display:grid;grid-template-columns:120px minmax(0,1fr) 140px 130px auto;gap:2rem;align-items:center;padding:2rem 0;border-bottom:1px solid var(--line)}
.zjp-cart__img{width:120px;height:140px;object-fit:cover;background:var(--card)}
.zjp-cart__product{font-family:var(--serif);font-size:24px}
.zjp-cart__options,.zjp-cart__unit{margin-top:.5rem;color:var(--muted);font-size:13px}
.zjp-cart__qty input{width:74px;border:1px solid var(--line-strong);background:transparent;color:var(--cream);padding:.7rem}
.zjp-cart__qty button,.zjp-cart__remove{display:block;margin-top:.5rem;color:var(--muted);font-size:12px;text-decoration:underline}
.zjp-cart__summary{max-width:480px;margin:3rem 0 0 auto;padding:2rem;border:1px solid var(--line)}
.zjp-cart__subtotal{display:flex;justify-content:space-between;font-size:18px}
.zjp-cart__note{margin-top:1rem;color:var(--muted);font-size:13px}
.zjp-cart__checkout{display:block;width:100%;margin-top:2rem;text-align:center}
.zjp-cart__continue{display:inline-block;margin-top:2rem;color:var(--muted);border-bottom:1px solid var(--line-strong)}

@media(max-width:1200px){
  .page-home .hero{display:block;height:auto;min-height:0}
  .page-home .hero__media-shell{position:relative;width:100%;height:auto;aspect-ratio:16/11;pointer-events:auto;-webkit-mask-image:linear-gradient(180deg,#000 0 75%,rgba(0,0,0,.55) 88%,transparent 100%);mask-image:linear-gradient(180deg,#000 0 75%,rgba(0,0,0,.55) 88%,transparent 100%)}
  .page-home .hero__body{grid-column:auto}
  .foot__grid{grid-template-columns:1fr 1fr}.foot__brand,.foot__newsletter{grid-column:1/-1}
  .shop-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .zjp-product{grid-template-columns:1fr}.zjp-product__info{position:static;max-width:760px}
}
@media(max-width:760px){
  .page-home .hero__media-shell{aspect-ratio:4/3}
  .page-home .hero__media-shell .hero__media{object-position:center 25%}
  .zjp-preview-note{margin-top:1.5rem}.cat>.arrow{right:5vw;bottom:6vw}
  .foot__grid{grid-template-columns:1fr}.foot__brand,.foot__newsletter{grid-column:auto}.newsletter{grid-template-columns:1fr}.newsletter button{border-left:0;border-top:1px solid var(--line-strong)}
  .foot__bottom{padding:7vw 0;flex-direction:column;align-items:flex-start}
  .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.8rem 10px}.shop-card__title{letter-spacing:.1em}
  .zjp-product{padding-inline:var(--gutter)}.zjp-product__thumbs{grid-template-columns:repeat(4,1fr)}
  .zjp-cart__line{grid-template-columns:86px 1fr;gap:1rem}.zjp-cart__img{width:86px;height:104px}.zjp-cart__qty,.zjp-cart__line-total,.zjp-cart__remove-form{grid-column:2}
}
@media(max-width:430px){.shop-grid{grid-template-columns:1fr}.shop-card__img{aspect-ratio:4/5}}
