:root{
  --printery-green:#39b54a;
  --printery-ink:#151515;
  --printery-muted:#767676;
  --printery-soft:#f6f6f4;
  --printery-soft-2:#fbfbfa;
  --printery-rule:#deded9;
  --printery-max:1260px;
  --printery-copy:840px;
}

.printery-project{background:#fff;color:var(--printery-ink);font-family:inherit;overflow:hidden}
.printery-project *{box-sizing:border-box}
.printery-project__inner{width:min(var(--printery-max),calc(100% - 64px));margin:0 auto}
.printery-project__narrow{width:min(var(--printery-copy),calc(100% - 64px))}

/* Private client review uses the same presentation as the public single-project
   template. The notice is deliberately the only visible review-state change. */
.printery-project__review-wrap{background:#eef5fb;border-top:1px solid #d3e2ef;border-bottom:1px solid #d3e2ef}
.printery-project__review-notice{width:min(var(--printery-max),calc(100% - 64px));margin:0 auto;padding:13px 0;display:flex;gap:12px 18px;flex-wrap:wrap;align-items:baseline;color:#24415a}
.printery-project__review-notice strong{text-transform:uppercase;letter-spacing:.14em;font-size:.7rem}
.printery-project__review-notice span{font-size:.92rem}

.printery-project__hero{background:#fff}
.printery-project__hero-media{background:#f2f2ef;max-height:760px;overflow:hidden}
.printery-project__hero-media img{display:block;width:100%;height:min(56vw,760px);min-height:390px;object-fit:cover}
.printery-project__hero-copy{padding:48px 0 54px;border-bottom:1px solid var(--printery-rule)}
.printery-project__eyebrow{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.printery-service-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid color-mix(in srgb,var(--printery-service) 48%,#fff);border-radius:999px;text-decoration:none!important;color:var(--printery-ink)!important;background:#fff;font-size:.8rem;font-weight:600;line-height:1.1;transition:background .2s ease,border-color .2s ease,transform .2s ease}
.printery-service-chip:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--printery-service);flex:0 0 auto}
.printery-service-chip:hover{background:color-mix(in srgb,var(--printery-service) 7%,#fff);border-color:var(--printery-service);transform:translateY(-1px)}
.printery-project h1,.printery-project h2,.printery-project h3{margin-top:0;color:var(--printery-ink);font-family:'Bodoni Moda',Didot,'Bodoni 72',Georgia,serif;font-weight:500}
.printery-project h1{font-size:clamp(2.75rem,5.4vw,5.1rem);line-height:.98;letter-spacing:-.025em;margin-bottom:24px;max-width:980px}
.printery-project__summary{font-size:clamp(1.08rem,1.8vw,1.42rem);line-height:1.55;max-width:820px;color:#505050;margin:0}
.printery-project__meta{display:flex;flex-wrap:wrap;gap:24px 58px;margin:34px 0 0;padding:0}
.printery-project__meta>div{min-width:150px}
.printery-project__meta dt{text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;font-weight:700;color:#777;margin-bottom:6px}
.printery-project__meta dd{margin:0;font-size:.98rem;color:#222}

.printery-project__highlights{background:#111;color:#fff;padding:30px 0}
.printery-highlights{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0}
.printery-highlight{padding:14px 26px;border-left:1px solid rgba(255,255,255,.16)}
.printery-highlight:first-child{border-left:0}
.printery-highlight strong{display:block;font-size:clamp(1.35rem,2.35vw,2rem);font-family:'Bodoni Moda',Didot,'Bodoni 72',Georgia,serif;font-weight:500;line-height:1.08;margin-bottom:7px}
.printery-highlight span{display:block;color:#d5d5d5;font-size:.82rem;line-height:1.4}

.printery-project__section{padding:68px 0}
.printery-project__section+.printery-project__section{border-top:1px solid var(--printery-rule)}
.printery-section-heading{margin-bottom:30px}
.printery-section-heading>span,.printery-project__credit>.printery-project__inner>span{text-transform:uppercase;letter-spacing:.16em;font-size:.69rem;font-weight:700;color:#747474;display:block;margin-bottom:8px}
.printery-section-heading h2{font-size:clamp(2.25rem,4.15vw,3.85rem);line-height:1.02;margin-bottom:0;letter-spacing:-.015em}
.printery-richtext{font-size:1.02rem;line-height:1.75;color:#444}
.printery-richtext p:last-child{margin-bottom:0}
.printery-richtext a{color:inherit;text-decoration:underline}

/* Gallery: strong lead image + supporting project detail images. */
.printery-gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.printery-gallery__item{grid-column:span 4;background:#f2f2f0;overflow:hidden;min-height:230px;display:block}
.printery-gallery__item--lead{grid-column:span 8;grid-row:span 2}
.printery-gallery__item img,.printery-process-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .75s ease}
.printery-gallery__item:hover img,.printery-process-grid a:hover img{transform:scale(1.035)}
.printery-video{margin-top:28px;padding-top:28px;border-top:1px solid var(--printery-rule)}
.printery-video__embed{position:relative;aspect-ratio:16/9;background:#111;overflow:hidden}
.printery-video__embed iframe,.printery-video__embed video,.printery-video video{width:100%;height:100%;border:0;display:block}
.printery-video__caption{margin:10px 0 0;color:#7a7a7a;font-size:.9rem}

/* Narrative sections */
.printery-story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.printery-story-card{background:var(--printery-soft);padding:30px 32px;min-height:100%;border-top:3px solid #111}
.printery-story-card h3{font-size:clamp(1.7rem,2.6vw,2.15rem);line-height:1.08;margin-bottom:16px}
.printery-story-card .printery-richtext{font-size:.98rem;line-height:1.65}

/* Specifications */
.printery-project__specs{background:#f7f7f5}
.printery-spec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0;border-top:1px solid #d8d8d3;border-left:1px solid #d8d8d3}
.printery-spec-grid>div{padding:20px 22px;border-right:1px solid #d8d8d3;border-bottom:1px solid #d8d8d3;min-height:102px;background:rgba(255,255,255,.82)}
.printery-spec-grid dt{text-transform:uppercase;letter-spacing:.12em;font-size:.65rem;font-weight:700;color:#777;margin-bottom:8px}
.printery-spec-grid dd{margin:0;font-size:.98rem;line-height:1.48;color:#222;overflow-wrap:anywhere}

/* Process should never look like an unfinished 3-column grid when only one or
   two images are supplied. */
.printery-process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}
.printery-process-grid--count-1{grid-template-columns:minmax(0,620px)}
.printery-process-grid--count-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px}
.printery-process-grid a{overflow:hidden;display:block;aspect-ratio:4/3;background:#f2f2f0}

.printery-project__credit{padding:26px 0;background:#111;color:#fff}
.printery-project__credit>.printery-project__inner>span{color:#aaa;margin-bottom:5px}
.printery-project__credit p{margin:0;color:#fff;font-size:1.08rem}
.printery-project__credit a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.printery-project__credit small{display:block;color:#aaa;margin-top:5px;font-size:.78rem}

.printery-project__classification{padding-top:42px;padding-bottom:48px}
.printery-classification{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px}
.printery-classification h3{font-size:1.55rem;margin-bottom:14px}
.printery-tax-links{display:flex;flex-wrap:wrap;gap:8px}
.printery-tax-links a{display:inline-block;border:1px solid #d4d4cf;padding:7px 11px;border-radius:999px;color:#333;text-decoration:none;font-size:.82rem;background:#fff;transition:border-color .2s ease,background .2s ease}
.printery-tax-links a:hover{border-color:#777;background:#f8f8f6}

.printery-project__button{display:inline-block;background:var(--printery-green);color:#fff!important;text-transform:uppercase;letter-spacing:.12em;font-family:'Bodoni Moda',Didot,'Bodoni 72',Georgia,serif;font-weight:700;text-decoration:none!important;padding:14px 26px;border:1px solid #fff;box-shadow:0 0 0 1px var(--printery-green);transition:opacity .2s ease,transform .2s ease}
.printery-project__button:hover{opacity:.88;transform:translateY(-1px)}
.printery-project__button--dark{background:#111;box-shadow:0 0 0 1px #111}

/* Password screen is intentionally restrained: no project imagery or metadata
   is exposed until WordPress authenticates the password. */
.printery-project__hero--locked .printery-project__hero-copy{padding:54px 0 42px;background:#fafaf8}
.printery-project__hero--locked h1{font-size:clamp(2.4rem,4.6vw,4.25rem);margin-bottom:0}
.printery-project__password{min-height:340px;display:flex;align-items:center;padding-top:52px;padding-bottom:64px}
.printery-project__password h2{font-size:2.35rem;margin-bottom:12px}
.printery-project__password>div>p{max-width:700px;color:#666;line-height:1.65}
.printery-project__password form{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.printery-project__password label{display:flex;flex-direction:column;gap:6px;font-weight:600}
.printery-project__password input[type=password]{min-width:280px;padding:12px 14px;border:1px solid #bbb;background:#fff}
.printery-project__password input[type=submit]{padding:12px 18px;background:var(--printery-green);border:0;color:#fff;font-weight:700;cursor:pointer}

.printery-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.94);z-index:999999;display:none;align-items:center;justify-content:center;padding:28px}
.printery-lightbox.is-open{display:flex}
.printery-lightbox img{max-width:min(1400px,96vw);max-height:92vh;object-fit:contain}
.printery-lightbox__close{position:absolute;top:20px;right:24px;border:0;background:transparent;color:#fff;font-size:42px;line-height:1;cursor:pointer}

@media(max-width:900px){
  .printery-project__inner,.printery-project__review-notice{width:min(var(--printery-max),calc(100% - 42px))}
  .printery-project__narrow{width:min(var(--printery-copy),calc(100% - 42px))}
  .printery-story-grid,.printery-spec-grid{grid-template-columns:1fr 1fr}
  .printery-gallery__item,.printery-gallery__item--lead{grid-column:span 6;grid-row:auto}
  .printery-process-grid,.printery-process-grid--count-2{grid-template-columns:1fr 1fr}
  .printery-process-grid--count-1{grid-template-columns:minmax(0,560px)}
  .printery-highlight{border-left:0;border-top:1px solid rgba(255,255,255,.18)}
  .printery-highlight:first-child{border-top:0}
}
@media(max-width:640px){
  .printery-project__inner,.printery-project__narrow,.printery-project__review-notice{width:min(100% - 28px,var(--printery-max))}
  .printery-project__hero-media img{height:70vw;min-height:280px}
  .printery-project__hero-copy{padding:34px 0 38px}
  .printery-project__section{padding:48px 0}
  .printery-project__meta{display:grid;grid-template-columns:1fr 1fr;gap:20px}
  .printery-highlights{grid-template-columns:1fr 1fr}
  .printery-story-grid,.printery-spec-grid,.printery-process-grid,.printery-process-grid--count-1,.printery-process-grid--count-2,.printery-classification{grid-template-columns:1fr;max-width:none}
  .printery-gallery{gap:10px}
  .printery-gallery__item,.printery-gallery__item--lead{grid-column:1/-1;min-height:220px;aspect-ratio:4/3}
  .printery-story-card{padding:25px}
  .printery-project__password input[type=password]{min-width:min(280px,72vw)}
}
@media(prefers-reduced-motion:reduce){
  .printery-gallery__item img,.printery-process-grid img,.printery-project__button,.printery-service-chip{transition:none}
}

/* ========================================================================
   v0.5.0 — Portfolio Frontend Design System / Phase 1
   Hero, taxonomy blocks, primary highlight ribbon and consolidated metadata.
   ======================================================================== */
.printery-project__hero--overlay{position:relative;min-height:clamp(620px,72vw,900px);display:flex;align-items:flex-end;background:#111;color:#fff;isolation:isolate}
.printery-project__hero--overlay .printery-project__hero-media{position:absolute;inset:0;max-height:none;background:#111;z-index:-3}
.printery-project__hero--overlay .printery-project__hero-media img{width:100%;height:100%;min-height:0;max-height:none;object-fit:cover;object-position:center;display:block}
.printery-project__hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(0,0,0,.16) 4%,rgba(0,0,0,.34) 42%,rgba(0,0,0,.88) 100%)}
.printery-project__hero--no-image{min-height:620px;background:radial-gradient(circle at 72% 18%,#343434 0,#111 46%,#050505 100%)}
.printery-project__hero--no-image .printery-project__hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.75))}
.printery-project__hero-content{width:100%;padding:clamp(170px,26vw,330px) 0 clamp(48px,7vw,86px);position:relative;z-index:2}
.printery-project__hero--overlay h1{color:#fff;font-size:clamp(3rem,6.4vw,6.45rem);line-height:.94;max-width:1100px;margin-bottom:24px;text-shadow:0 2px 18px rgba(0,0,0,.3)}
.printery-project__hero--overlay .printery-project__summary{color:rgba(255,255,255,.86);font-size:clamp(1.08rem,1.65vw,1.4rem);max-width:840px;text-shadow:0 1px 12px rgba(0,0,0,.28)}

/* Services now follow the filled rectangular category language already used on
   The Printery blog/archive instead of outlined pills. */
.printery-project__hero--overlay .printery-project__eyebrow{gap:8px;margin:0 0 24px}
.printery-project__hero--overlay .printery-service-chip{border:0;border-radius:0;padding:9px 13px;background:var(--printery-service);color:var(--printery-service-text)!important;text-transform:uppercase;letter-spacing:.055em;font-size:.7rem;font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,.18);transform:none}
.printery-project__hero--overlay .printery-service-chip:before{display:none}
.printery-project__hero--overlay .printery-service-chip:hover{background:var(--printery-service);border:0;filter:brightness(1.08);transform:translateY(-1px)}

/* Consolidated primary metadata belongs directly under the project summary. */
.printery-project__hero--overlay .printery-project__meta{display:grid;grid-template-columns:repeat(4,minmax(135px,1fr));gap:20px 36px;max-width:1040px;margin-top:34px;padding-top:26px;border-top:1px solid rgba(255,255,255,.28)}
.printery-project__hero--overlay .printery-project__meta>div{min-width:0}
.printery-project__hero--overlay .printery-project__meta dt{color:rgba(255,255,255,.62);font-size:.63rem}
.printery-project__hero--overlay .printery-project__meta dd,.printery-project__hero--overlay .printery-project__meta a{color:#fff!important;font-size:.96rem;line-height:1.35}
.printery-project__hero--overlay .printery-project__meta a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.printery-project__credit-note{margin:12px 0 0;color:rgba(255,255,255,.56);font-size:.78rem}

/* Classification is intentionally close to the metadata, not isolated near the
   bottom of the case study. */
.printery-project__hero-classification{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,.75fr);gap:20px 36px;max-width:1040px;margin-top:28px}
.printery-project__hero-classification>div>span{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:.63rem;font-weight:700;color:rgba(255,255,255,.62);margin-bottom:9px}
.printery-project__hero-classification .printery-tax-links{gap:7px}
.printery-project__hero-classification .printery-tax-links a{border:1px solid rgba(255,255,255,.48);border-radius:0;background:rgba(0,0,0,.28);color:#fff!important;padding:7px 10px;font-size:.76rem;line-height:1.2;backdrop-filter:blur(4px)}
.printery-project__hero-classification .printery-tax-links a:hover{background:#fff;color:#111!important;border-color:#fff}

/* First project highlight becomes a branded diagonal corner ribbon. The rest
   continue in the black highlights strip beneath the hero. */
.printery-project__hero-ribbon{position:absolute;z-index:4;top:clamp(88px,9vw,130px);right:clamp(-84px,-4.5vw,-44px);width:clamp(290px,30vw,470px);min-height:92px;padding:18px 72px 18px 58px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:var(--printery-green);color:#fff;transform:rotate(45deg);box-shadow:0 8px 22px rgba(0,0,0,.28);pointer-events:none}
.printery-project__hero-ribbon strong{display:block;max-width:260px;font-family:'Bodoni Moda',Didot,'Bodoni 72',Georgia,serif;font-size:clamp(1.15rem,2vw,1.85rem);font-weight:600;line-height:1.05;overflow-wrap:anywhere}
.printery-project__hero-ribbon span{display:block;max-width:250px;margin-top:4px;font-size:clamp(.62rem,.95vw,.78rem);font-weight:700;line-height:1.25;text-transform:uppercase;letter-spacing:.09em;overflow-wrap:anywhere}

.printery-project__highlights{padding:24px 0;background:#0e0e0e}
.printery-highlights{max-width:1120px;margin:0 auto}
.printery-highlight{padding:12px 24px}
.printery-highlight strong{font-size:clamp(1.2rem,2vw,1.7rem)}

@media(max-width:900px){
  .printery-project__hero--overlay{min-height:700px}
  .printery-project__hero-content{padding-top:250px}
  .printery-project__hero--overlay .printery-project__meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .printery-project__hero-classification{grid-template-columns:1fr}
  .printery-project__hero-ribbon{top:94px;right:-104px;width:390px}
}
@media(max-width:640px){
  .printery-project__hero--overlay{min-height:660px;align-items:flex-end}
  .printery-project__hero-content{padding:240px 0 42px}
  .printery-project__hero--overlay h1{font-size:clamp(2.75rem,13vw,4.2rem)}
  .printery-project__hero--overlay .printery-project__summary{font-size:1rem}
  .printery-project__hero--overlay .printery-project__meta{grid-template-columns:1fr 1fr;gap:18px 22px;margin-top:26px;padding-top:22px}
  .printery-project__hero-classification{margin-top:24px;gap:18px}
  .printery-project__hero-ribbon{top:78px;right:-122px;width:360px;min-height:78px;padding:14px 82px 14px 70px}
  .printery-project__hero-ribbon strong{font-size:1.05rem;max-width:200px}
  .printery-project__hero-ribbon span{font-size:.58rem;max-width:190px}
}

/* ========================================================================
   v0.5.1 — Frontend refinement / Phase 2
   Cleaner hero, black project-information band, video-first media, interactive
   gallery/lightbox navigation, and Trustindex review integration.
   ======================================================================== */

/* Hero: stronger photographic shade. Only the project title and primary
   metadata are rendered over the image in v0.5.1. */
.printery-project__hero-shade{
  background:linear-gradient(180deg,rgba(0,0,0,.46) 0%,rgba(0,0,0,.58) 42%,rgba(0,0,0,.94) 100%);
}
.printery-project__hero--overlay{
  min-height:clamp(580px,68vw,840px);
}
.printery-project__hero-content{
  padding:clamp(180px,29vw,360px) 0 clamp(44px,6vw,72px);
}
.printery-project__hero--overlay h1{
  max-width:1120px;
  margin-bottom:32px;
}
.printery-project__hero--overlay .printery-project__meta{
  margin-top:0;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.34);
}

/* Project information band immediately beneath hero. */
.printery-project__project-info{
  background:#0e0e0e;
  color:#fff;
  padding:34px 0 38px;
  border-top:1px solid rgba(255,255,255,.08);
}
.printery-project__summary--info{
  color:#fff;
  max-width:920px;
  margin:0 0 28px;
  font-size:clamp(1.05rem,1.6vw,1.32rem);
  line-height:1.55;
}
.printery-project__info-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:26px 32px;
}
.printery-project__info-block{grid-column:span 4;min-width:0}
.printery-project__info-block--services{grid-column:1/-1}
.printery-project__info-block--credit{grid-column:span 4}
.printery-project__info-block>span{
  display:block;
  color:#aaa;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:.64rem;
  font-weight:700;
  margin-bottom:10px;
}
.printery-project__info-block p{margin:0;color:#fff;line-height:1.55;font-size:.92rem}
.printery-project__project-info .printery-project__eyebrow{margin:0;gap:8px}
.printery-project__project-info .printery-service-chip{
  border:0;
  border-radius:0;
  background:var(--printery-service);
  color:var(--printery-service-text)!important;
  padding:9px 13px;
  text-transform:uppercase;
  letter-spacing:.055em;
  font-size:.7rem;
  font-weight:700;
  box-shadow:none;
}
.printery-project__project-info .printery-service-chip:before{display:none}
.printery-project__project-info .printery-service-chip:hover{background:var(--printery-service);filter:brightness(1.08);transform:translateY(-1px)}
.printery-project__project-info .printery-tax-links{gap:7px}
.printery-project__project-info .printery-tax-links a{
  border:1px solid rgba(255,255,255,.42);
  border-radius:0;
  color:#fff!important;
  background:transparent;
  padding:8px 11px;
  font-size:.78rem;
}
.printery-project__project-info .printery-tax-links a:hover{background:#fff;color:#111!important;border-color:#fff}

/* Media section: video first, then interactive image gallery. */
.printery-media-subsection+ .printery-media-subsection{margin-top:56px;padding-top:48px;border-top:1px solid var(--printery-rule)}
.printery-media-subsection>h3{
  font-family:'Bodoni Moda',Didot,'Bodoni 72',Georgia,serif;
  font-size:clamp(1.65rem,2.5vw,2.35rem);
  font-weight:500;
  margin:0 0 20px;
}
.printery-video{margin:0;padding:0;border-top:0}
.printery-video__embed{aspect-ratio:16/9}

.printery-gallery-carousel{width:100%}
.printery-gallery-stage{
  position:relative;
  width:100%;
  background:#111;
  overflow:hidden;
  aspect-ratio:16/9;
}
.printery-gallery-stage__link{display:block;width:100%;height:100%;cursor:zoom-in}
.printery-gallery-stage__link img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#f4f4f2;
}
.printery-gallery-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  width:52px;
  height:64px;
  border:0;
  border-radius:0;
  background:rgba(0,0,0,.72);
  color:#fff;
  font-size:27px;
  line-height:1;
  cursor:pointer;
  transition:background .2s ease;
}
.printery-gallery-nav:hover{background:#000}
.printery-gallery-nav--prev{left:0}
.printery-gallery-nav--next{right:0}
.printery-gallery-thumbs{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.printery-gallery-thumb{
  appearance:none;
  display:block;
  padding:0;
  margin:0;
  border:3px solid transparent;
  border-radius:0;
  background:#eee;
  cursor:pointer;
  aspect-ratio:4/3;
  overflow:hidden;
  opacity:.72;
  transition:opacity .2s ease,border-color .2s ease;
}
.printery-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.printery-gallery-thumb:hover{opacity:1}
.printery-gallery-thumb.is-active{opacity:1;border-color:#111}

/* Custom lightbox — independent from Elementor's default colors. */
.printery-lightbox{background:rgba(0,0,0,.96);padding:58px 72px 38px}
.printery-lightbox__image-wrap{display:flex;align-items:center;justify-content:center;width:100%;height:100%;pointer-events:none}
.printery-lightbox img{max-width:min(1500px,92vw);max-height:88vh;object-fit:contain;pointer-events:auto}
.printery-lightbox__close{
  position:absolute;
  top:20px;
  right:20px;
  width:48px;
  height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0!important;
  border-radius:0!important;
  background:#ed1c24!important;
  color:#fff!important;
  font-size:32px;
  line-height:1;
  cursor:pointer;
  padding:0;
  box-shadow:none!important;
}
.printery-lightbox__close:hover{background:#c9141b!important}
.printery-lightbox__nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  width:58px;
  height:72px;
  border:0!important;
  border-radius:0!important;
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
  font-size:34px;
  line-height:1;
  cursor:pointer;
  padding:0;
  box-shadow:none!important;
}
.printery-lightbox__nav:hover{background:rgba(255,255,255,.24)!important}
.printery-lightbox__prev{left:14px}
.printery-lightbox__next{right:14px}
.printery-lightbox__nav[hidden]{display:none!important}

/* Trustindex section. The embed keeps its own review-card styling while the
   section provides a site-consistent black stage around it. */
.printery-project__reviews{
  background:#000;
  color:#fff;
  padding:68px 0 76px;
  border-top:1px solid rgba(255,255,255,.08);
}
.printery-section-heading--dark>span{color:#aaa}
.printery-section-heading--dark h2{color:#fff}
.printery-project__reviews-embed{margin-top:28px}
.printery-project__reviews-embed *{box-sizing:border-box}

@media(max-width:900px){
  .printery-project__hero--overlay{min-height:650px}
  .printery-project__hero-content{padding-top:280px}
  .printery-project__info-block{grid-column:span 6}
  .printery-project__info-block--services{grid-column:1/-1}
  .printery-gallery-thumbs{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:640px){
  .printery-project__hero--overlay{min-height:600px}
  .printery-project__hero-content{padding:250px 0 36px}
  .printery-project__hero--overlay .printery-project__meta{grid-template-columns:1fr 1fr}
  .printery-project__project-info{padding:28px 0 32px}
  .printery-project__info-grid{grid-template-columns:1fr;gap:24px}
  .printery-project__info-block,.printery-project__info-block--services,.printery-project__info-block--credit{grid-column:1/-1}
  .printery-gallery-stage{aspect-ratio:4/3}
  .printery-gallery-nav{width:44px;height:56px;font-size:23px}
  .printery-gallery-thumbs{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .printery-lightbox{padding:62px 48px 28px}
  .printery-lightbox__nav{width:42px;height:58px;font-size:26px}
  .printery-lightbox__prev{left:4px}
  .printery-lightbox__next{right:4px}
  .printery-lightbox__close{top:10px;right:10px;width:44px;height:44px}
}

/* ========================================================================
   v0.5.2 — hero centering, summary card, neutral masonry gallery controls,
   and under-image lightbox navigation.
   ======================================================================== */

/* Center the project identity over the featured image. */
.printery-project__hero--overlay{
  min-height:clamp(560px,62vw,780px);
  align-items:center;
}
.printery-project__hero-content{
  width:100%;
  padding:clamp(64px,8vw,110px) 0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.printery-project__hero-content .printery-project__inner{
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.printery-project__hero--overlay h1{
  font-size:clamp(2.5rem,5vw,4.85rem);
  line-height:1.02;
  max-width:980px;
  margin:0 auto 30px;
  text-align:center;
}
.printery-project__hero--overlay .printery-project__meta{
  width:min(100%,980px);
  grid-template-columns:repeat(4,minmax(135px,1fr));
  gap:18px 30px;
  margin:0 auto;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.34);
  text-align:center;
}
.printery-project__hero--overlay .printery-project__meta dt,
.printery-project__hero--overlay .printery-project__meta dd{
  text-align:center;
}

/* The short summary is the only white card in the black information band. */
.printery-project__summary--info{
  display:block;
  width:fit-content;
  max-width:min(920px,100%);
  color:#111;
  background:#fff;
  padding:20px 22px;
  margin:0 0 30px;
  font-size:clamp(1.05rem,1.6vw,1.32rem);
  line-height:1.55;
  box-shadow:none;
  border:0;
  border-radius:0;
}

/* Main gallery stage: neutral square-edge controls with caret glyphs. */
.printery-gallery-stage{
  border:0;
  border-radius:0;
}
.printery-gallery-nav{
  width:54px;
  height:72px;
  border:0!important;
  border-radius:0!important;
  background:rgba(0,0,0,.58)!important;
  color:#fff!important;
  font-family:Arial,Helvetica,sans-serif;
  font-size:34px;
  font-weight:400;
  box-shadow:none!important;
  outline:0;
  padding:0;
}
.printery-gallery-nav:hover,
.printery-gallery-nav:focus{
  background:rgba(0,0,0,.86)!important;
  color:#fff!important;
}
.printery-gallery-stage__link,
.printery-gallery-stage__link img{
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}

/* Thumbnail waterfall: three masonry columns, natural image proportions,
   no borders, no rounded corners, and no Elementor accent color. */
.printery-gallery-thumbs{
  display:block;
  column-count:3;
  column-gap:10px;
  margin-top:10px;
}
.printery-gallery-thumb{
  appearance:none;
  display:block;
  width:100%;
  aspect-ratio:auto;
  break-inside:avoid;
  padding:0;
  margin:0 0 10px;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:hidden;
  opacity:.72;
  transition:opacity .18s ease;
}
.printery-gallery-thumb img{
  width:100%;
  height:auto;
  object-fit:contain;
  display:block;
  border:0!important;
  border-radius:0!important;
}
.printery-gallery-thumb:hover,
.printery-gallery-thumb:focus,
.printery-gallery-thumb.is-active{
  opacity:1;
  border:0!important;
  outline:0;
  box-shadow:none!important;
}

/* Lightbox uses a centered content stack. Navigation lives under the image. */
.printery-lightbox{
  align-items:center;
  justify-content:center;
  padding:24px 28px 20px;
}
.printery-lightbox__content{
  width:min(1500px,96vw);
  height:min(92vh,980px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.printery-lightbox__image-wrap{
  width:100%;
  min-height:0;
  flex:1 1 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}
.printery-lightbox img{
  max-width:100%;
  max-height:calc(92vh - 105px);
  object-fit:contain;
  pointer-events:auto;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.printery-lightbox__controls{
  flex:0 0 58px;
  height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:56px;
}
.printery-lightbox__nav{
  position:static;
  transform:none;
  width:54px;
  height:54px;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#fff!important;
  font-family:Arial,Helvetica,sans-serif;
  font-size:34px;
  line-height:1;
  padding:0;
  box-shadow:none!important;
}
.printery-lightbox__nav:hover,
.printery-lightbox__nav:focus{
  background:rgba(255,255,255,.10)!important;
  color:#fff!important;
  outline:0;
}
.printery-lightbox__prev,
.printery-lightbox__next{left:auto;right:auto}

@media(max-width:900px){
  .printery-project__hero--overlay{min-height:600px}
  .printery-project__hero-content{padding:82px 0 54px}
  .printery-project__hero--overlay .printery-project__meta{grid-template-columns:repeat(2,minmax(0,1fr));max-width:680px}
  .printery-gallery-thumbs{column-count:3}
}
@media(max-width:640px){
  .printery-project__hero--overlay{min-height:560px}
  .printery-project__hero-content{padding:70px 0 42px}
  .printery-project__hero--overlay h1{font-size:clamp(2.35rem,12vw,3.65rem);margin-bottom:24px}
  .printery-project__hero--overlay .printery-project__meta{grid-template-columns:1fr 1fr;gap:16px 18px;padding-top:18px}
  .printery-project__summary--info{padding:15px 18px;margin-bottom:26px}
  .printery-gallery-nav{width:44px;height:60px;font-size:28px}
  .printery-gallery-thumbs{column-count:2;column-gap:7px}
  .printery-gallery-thumb{margin-bottom:7px}
  .printery-lightbox{padding:16px 14px 12px}
  .printery-lightbox__content{width:100%;height:94vh}
  .printery-lightbox img{max-height:calc(94vh - 105px)}
  .printery-lightbox__controls{gap:42px}
  .printery-lightbox__nav{width:48px;height:48px;font-size:30px}
}


/* ========================================================================
   v0.5.3 — Hero proportion / summary / caret / content-order refinements
   ======================================================================== */

/* Keep the portfolio hero closer to the visual depth of The Printery's blog
   article hero instead of consuming a full screen. Center the project title
   and primary metadata as one balanced composition. */
.printery-project__hero--overlay{
  min-height:clamp(470px,56vh,650px);
  align-items:center;
}
.printery-project__hero-content{
  width:100%;
  min-height:inherit;
  height:100%;
  padding:34px 0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.printery-project__hero-content>.printery-project__inner{width:100%}
.printery-project__hero--overlay h1{
  max-width:980px;
  margin:0 auto 24px;
  font-size:clamp(2.55rem,5vw,5rem);
  line-height:.98;
  text-align:center;
}
.printery-project__hero--overlay .printery-project__meta{
  max-width:1000px;
  margin:0 auto;
  padding-top:22px;
  justify-content:center;
  text-align:center;
}
.printery-project__hero--overlay .printery-project__meta dt,
.printery-project__hero--overlay .printery-project__meta dd{text-align:center}

/* Short summary becomes a full-width white content panel inside the black
   project information band and expands naturally with longer copy. */
.printery-project__summary--info{
  display:block;
  width:100%;
  max-width:none;
  box-sizing:border-box;
  background:#fff;
  color:#111;
  padding:20px 24px;
  margin:0 0 30px;
}

/* Main gallery controls: bare carets, no button box, border, radius, or
   Elementor accent. The light gray hover is the only visual state change. */
.printery-gallery-nav{
  width:48px;
  height:64px;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#111!important;
  box-shadow:none!important;
  font-size:34px;
  padding:0;
}
.printery-gallery-nav:hover,
.printery-gallery-nav:focus{
  background:transparent!important;
  color:#aaa!important;
  outline:0;
}
.printery-gallery-nav--prev{left:12px}
.printery-gallery-nav--next{right:12px}

/* Lightbox controls follow the same bare-caret language, using white against
   the black modal and light gray on hover. */
.printery-lightbox__nav{
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#fff!important;
  box-shadow:none!important;
}
.printery-lightbox__nav:hover,
.printery-lightbox__nav:focus{
  background:transparent!important;
  color:#aaa!important;
  outline:0;
}

@media(max-width:900px){
  .printery-project__hero--overlay{min-height:clamp(450px,58vh,580px)}
  .printery-project__hero-content{padding:30px 0}
  .printery-project__hero--overlay h1{font-size:clamp(2.35rem,8vw,4rem)}
}
@media(max-width:640px){
  .printery-project__hero--overlay{min-height:520px}
  .printery-project__hero-content{padding:28px 0}
  .printery-project__hero--overlay h1{font-size:clamp(2.1rem,11vw,3.35rem);margin-bottom:20px}
  .printery-project__summary--info{padding:18px 20px;margin-bottom:26px}
  .printery-gallery-nav{width:40px;height:54px;font-size:30px}
  .printery-gallery-nav--prev{left:4px}
  .printery-gallery-nav--next{right:4px}
}

/* ========================================================================
   v0.5.4 — seamless black hero transition + summary follows Services
   ======================================================================== */

/* Pull the hero treatment into true black before the photograph ends so the
   transition into the information band feels continuous rather than like a
   separate gray panel. The last ~48px are fully black. */
.printery-project__hero-shade{
  background:linear-gradient(
    180deg,
    rgba(0,0,0,.46) 0%,
    rgba(0,0,0,.58) 42%,
    rgba(0,0,0,.90) 78%,
    #000 calc(100% - 48px),
    #000 100%
  );
}

/* Exact black information band with no dividing outline. */
.printery-project__project-info{
  background:#000000;
  border:0!important;
  border-top:0!important;
  box-shadow:none!important;
}

/* Services remain the first full-width item, followed immediately by the
   project summary, then the remaining taxonomy / credit columns. */
.printery-project__summary-row{
  grid-column:1/-1;
  min-width:0;
}
.printery-project__summary--info{
  margin:0;
}

/* ========================================================================
   v0.6.0 — Elementor portfolio archive shortcode
   [printery_portfolio]
   ======================================================================== */
.printery-portfolio-archive{--archive-gap:26px;width:100%;color:#151515;font-family:inherit}
.printery-portfolio-archive *{box-sizing:border-box}
.printery-portfolio-toolbar{margin:0 0 34px}
.printery-portfolio-search input{width:100%;min-height:54px;border:1px solid #d8d8d8;border-radius:0;background:#f5f5f5;padding:0 18px;font:inherit;color:#111;box-shadow:none;outline:none}
.printery-portfolio-search input:focus{border-color:#111;background:#fff}
.printery-portfolio-filter{margin-top:24px}
.printery-portfolio-filter>span,.printery-portfolio-select>span{display:block;margin-bottom:9px;text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;font-weight:700;color:#666}
.printery-portfolio-service-filters{display:flex;flex-wrap:wrap;gap:8px}
.printery-portfolio-service-filter{appearance:none;border:0;border-radius:0;background:#111;color:#fff;padding:10px 14px;font:inherit;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:filter .18s ease,opacity .18s ease}
.printery-portfolio-service-filter:not([data-printery-filter-service=""]){background:var(--service-color);color:var(--service-text)}
.printery-portfolio-service-filter:hover{filter:brightness(1.12)}
.printery-portfolio-service-filter.is-active{outline:2px solid #111;outline-offset:2px}
.printery-portfolio-select-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px}
.printery-portfolio-select select{width:100%;min-height:48px;border:1px solid #d8d8d8;border-radius:0;background:#fff;padding:0 42px 0 14px;font:inherit;color:#111}
.printery-portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--archive-gap)}
.printery-portfolio-card{min-width:0;background:#111;overflow:hidden}
.printery-portfolio-card__link{display:block;position:relative;text-decoration:none!important;color:#fff!important;height:100%}
.printery-portfolio-card__media{position:relative;aspect-ratio:4/3;background:#252525;overflow:hidden}
.printery-portfolio-card__media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform .6s ease}
.printery-portfolio-card__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08) 18%,rgba(0,0,0,.82) 100%)}
.printery-portfolio-card__content{position:absolute;inset:auto 0 0;padding:24px;z-index:2}
.printery-portfolio-card__services{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.printery-portfolio-card__services span{display:inline-block;background:var(--service-color);color:var(--service-text);padding:7px 9px;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;line-height:1.1}
.printery-portfolio-card h3{margin:0 0 9px;color:#fff!important;font-family:'Bodoni Moda',Didot,'Bodoni 72',Georgia,serif;font-size:clamp(1.55rem,2.2vw,2.25rem);font-weight:500;line-height:1.04}
.printery-portfolio-card p{margin:0 0 14px;color:rgba(255,255,255,.82);font-size:.9rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.printery-portfolio-card__cta{display:inline-flex;align-items:center;gap:6px;color:#fff;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.printery-portfolio-card:hover .printery-portfolio-card__media>img{transform:scale(1.055)}
.printery-portfolio-no-results,.printery-portfolio-empty{padding:28px 0;margin:0;text-align:center;color:#666}
@media(max-width:960px){.printery-portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.printery-portfolio-select-row,.printery-portfolio-grid{grid-template-columns:1fr}.printery-portfolio-card__media{aspect-ratio:5/4}}
@media(prefers-reduced-motion:reduce){.printery-portfolio-card__media>img{transition:none}}


/* ========================================================================
   v0.6.1 — Sample Kit CTA after project Reviews
   ======================================================================== */
.printery-project__sample-kit{
  background:#000;
  color:#fff;
  padding:72px 0 78px;
}
.printery-project__sample-kit .printery-section-heading{
  max-width:860px;
  margin:0 auto 34px;
  text-align:center;
}
.printery-project__sample-kit .printery-section-heading span{
  display:block;
  margin-bottom:9px;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.7rem;
  font-weight:700;
  color:#fff;
}
.printery-project__sample-kit .printery-section-heading h2{
  color:#fff;
  margin:0;
}
.printery-project__sample-kit .printery-section-heading p{
  max-width:700px;
  margin:16px auto 0;
  color:#fff;
  line-height:1.65;
}
.printery-project__sample-kit-image{
  display:block;
  width:100%;
  max-width:660px;
  margin:0 auto;
  text-decoration:none!important;
  overflow:hidden;
}
.printery-project__sample-kit-image img{
  display:block;
  width:100%;
  height:auto;
  border:0;
  border-radius:0;
  box-shadow:none;
  transition:transform .55s ease;
}
.printery-project__sample-kit-image:hover img,
.printery-project__sample-kit-image:focus img{
  transform:scale(1.018);
}
.printery-project__sample-kit-action{
  margin-top:28px;
  text-align:center;
}
.printery-project__sample-kit-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:50px;
  padding:13px 24px;
  border:1px solid #fff;
  border-radius:0;
  background:transparent;
  color:#fff!important;
  text-decoration:none!important;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.76rem;
  font-weight:700;
  transition:background .18s ease,color .18s ease;
}
.printery-project__sample-kit-button:hover,
.printery-project__sample-kit-button:focus{
  background:#fff;
  color:#000!important;
}
@media(max-width:640px){
  .printery-project__sample-kit{padding:52px 0 58px}
  .printery-project__sample-kit .printery-section-heading{margin-bottom:26px}
}
@media(prefers-reduced-motion:reduce){
  .printery-project__sample-kit-image img{transition:none}
}
