/* ============================================================
   PHOTOPROMPT — SINGLE PRODUCT / STUDIO HANDOFF
   v3.17.1
   Responsive handoff rebuilt without self-container queries.
   ============================================================ */

body.pp-product-route .pp-product-studio-banner{
  --pp-product-cta-ink:#111111;
  --pp-product-cta-paper:#F5F1EC;
  position:relative;
  min-height:clamp(360px,42vw,540px);
  padding:clamp(54px,7vw,104px) var(--pp-gutter,clamp(18px,4vw,64px));
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,360px);
  align-items:center;
  gap:clamp(34px,6vw,100px);
  overflow:hidden;
  background:var(--pp-red,#CD542F);
  color:var(--pp-product-cta-ink);
}

body.pp-product-route .pp-product-studio-banner::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.18;
  background-image:
    linear-gradient(rgba(17,17,17,.12) 1px,transparent 1px),
    linear-gradient(90deg,rgba(17,17,17,.10) 1px,transparent 1px);
  background-size:80px 80px;
  mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.55) 48%,rgba(0,0,0,.9) 100%);
}

body.pp-product-route .pp-product-studio-banner>div{
  position:relative;
  z-index:2;
  min-width:0;
  max-width:880px;
}

body.pp-product-route .pp-product-studio-banner .pp-kicker{
  color:rgba(17,17,17,.72);
}

body.pp-product-route .pp-product-studio-banner h2{
  max-width:10ch;
  margin:12px 0 18px;
  font-size:clamp(54px,6.2vw,110px);
  line-height:.84;
  letter-spacing:-.058em;
  color:var(--pp-product-cta-ink);
  word-break:normal;
  overflow-wrap:normal;
  hyphens:none;
}

body.pp-product-route .pp-product-studio-banner p{
  max-width:650px;
  margin:0;
  font:600 16px/1.5 var(--pp-sans,sans-serif);
  color:rgba(17,17,17,.78);
}

/* Intentionally NOT circular. The CTA stays readable at every width. */
body.pp-product-route .pp-product-studio-banner>a{
  position:relative;
  z-index:3;
  width:100%;
  min-width:0;
  min-height:132px;
  box-sizing:border-box;
  padding:22px 20px 22px 24px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 48px;
  align-items:center;
  gap:20px;
  justify-self:end;
  border:1px solid rgba(245,241,236,.18);
  border-radius:8px;
  background:var(--pp-product-cta-ink);
  color:var(--pp-product-cta-paper)!important;
  text-decoration:none;
  box-shadow:0 18px 45px rgba(17,17,17,.18);
  transition:transform .28s ease,background .28s ease,border-color .28s ease;
}

body.pp-product-route .pp-product-studio-banner>a::before{
  content:"STUDIO / NEXT";
  position:absolute;
  left:24px;
  top:18px;
  font:700 7px/1 var(--pp-mono,monospace);
  letter-spacing:.11em;
  text-transform:uppercase;
  color:rgba(245,241,236,.48);
}

body.pp-product-route .pp-product-studio-banner>a span{
  min-width:0;
  max-width:none;
  padding-top:16px;
  font:800 clamp(17px,1.25vw,21px)/1.04 var(--pp-sans,sans-serif);
  letter-spacing:-.025em;
  color:inherit;
  overflow-wrap:normal;
  word-break:normal;
}

body.pp-product-route .pp-product-studio-banner>a b{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  align-self:center;
  border-radius:50%;
  background:var(--pp-product-cta-paper);
  color:var(--pp-product-cta-ink);
  font:400 26px/1 var(--pp-sans,sans-serif);
  transition:transform .28s ease;
}

body.pp-product-route .pp-product-studio-banner>a:hover,
body.pp-product-route .pp-product-studio-banner>a:focus-visible{
  transform:translateY(-2px);
  background:#171717;
  border-color:rgba(245,241,236,.34);
}
body.pp-product-route .pp-product-studio-banner>a:hover b,
body.pp-product-route .pp-product-studio-banner>a:focus-visible b{transform:translateX(3px)}
body.pp-product-route .pp-product-studio-banner>a:focus-visible{outline:3px solid var(--pp-product-cta-paper);outline-offset:4px}

body.pp-product-route .pp-product-studio-banner.is-locked{
  background:#D7D4D3;
  color:#111;
}
body.pp-product-route .pp-product-studio-banner.is-locked>a{
  background:var(--pp-red,#CD542F);
  border-color:rgba(17,17,17,.16);
  color:#fff!important;
}
body.pp-product-route .pp-product-studio-banner.is-locked>a::before{color:rgba(255,255,255,.62)}
body.pp-product-route .pp-product-studio-banner.is-locked>a b{background:#111;color:#fff}

/*
 * v3.17.1 responsive geometry
 * The old implementation queried the banner as its own CSS container.
 * A query cannot size the container that establishes it, so narrow screens
 * could keep the desktop two-column grid and squeeze the heading to a few px.
 * Use explicit viewport breakpoints for this full-width product section.
 */
@media(max-width:960px){
  body.pp-product-route .pp-product-studio-banner{
    min-height:0;
    grid-template-columns:minmax(0,1fr);
    align-items:start;
    gap:32px;
    padding:clamp(48px,7vw,68px) clamp(20px,4vw,34px);
  }
  body.pp-product-route .pp-product-studio-banner>div{
    width:100%;
    max-width:760px;
  }
  body.pp-product-route .pp-product-studio-banner h2{
    width:100%;
    max-width:12ch;
    margin:10px 0 16px;
    font-size:clamp(48px,8vw,72px);
    line-height:.88;
    word-break:normal;
    overflow-wrap:normal;
    hyphens:none;
  }
  body.pp-product-route .pp-product-studio-banner p{
    max-width:58ch;
  }
  body.pp-product-route .pp-product-studio-banner>a{
    width:min(100%,620px);
    min-height:88px;
    justify-self:start;
    padding:16px 16px 16px 20px;
    grid-template-columns:minmax(0,1fr) 44px;
  }
  body.pp-product-route .pp-product-studio-banner>a::before{display:none}
  body.pp-product-route .pp-product-studio-banner>a span{padding-top:0;font-size:16px}
  body.pp-product-route .pp-product-studio-banner>a b{width:44px;height:44px;font-size:24px}
}

@media(max-width:680px){
  body.pp-product-route .pp-product-studio-banner{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    grid-template-columns:minmax(0,1fr);
    gap:24px;
    padding:40px 16px 46px;
    overflow:hidden;
  }
  body.pp-product-route .pp-product-studio-banner::after{
    background-size:52px 52px;
    mask-image:linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.88));
  }
  body.pp-product-route .pp-product-studio-banner>div{
    width:100%;
    min-width:0;
    max-width:none;
  }
  body.pp-product-route .pp-product-studio-banner .pp-kicker{
    display:block;
    width:100%;
  }
  body.pp-product-route .pp-product-studio-banner h2{
    display:block;
    width:100%;
    max-width:100%;
    margin:9px 0 14px;
    font-size:clamp(38px,11.8vw,54px);
    line-height:.9;
    letter-spacing:-.052em;
    white-space:normal;
    word-break:normal;
    overflow-wrap:normal;
    hyphens:none;
  }
  body.pp-product-route .pp-product-studio-banner p{
    width:100%;
    max-width:44ch;
    font-size:14px;
    line-height:1.5;
  }
  body.pp-product-route .pp-product-studio-banner>a{
    width:100%;
    max-width:none;
    min-width:0;
    min-height:72px;
    margin:0;
    padding:12px 12px 12px 16px;
    grid-template-columns:minmax(0,1fr) 44px;
    gap:14px;
    justify-self:stretch;
    border-radius:7px;
  }
  body.pp-product-route .pp-product-studio-banner>a span{
    min-width:0;
    padding:0;
    font-size:16px;
    line-height:1.08;
    white-space:normal;
    word-break:normal;
    overflow-wrap:normal;
  }
  body.pp-product-route .pp-product-studio-banner>a b{
    width:44px;
    height:44px;
    font-size:23px;
  }
}

@media(max-width:390px){
  body.pp-product-route .pp-product-studio-banner{gap:21px;padding:34px 14px 40px}
  body.pp-product-route .pp-product-studio-banner h2{font-size:clamp(35px,11.5vw,44px)}
  body.pp-product-route .pp-product-studio-banner p{font-size:13.5px}
  body.pp-product-route .pp-product-studio-banner>a{min-height:68px;padding:10px 10px 10px 14px;grid-template-columns:minmax(0,1fr) 40px}
  body.pp-product-route .pp-product-studio-banner>a span{font-size:15px}
  body.pp-product-route .pp-product-studio-banner>a b{width:40px;height:40px;font-size:21px}
}

@media(prefers-reduced-motion:reduce){
  body.pp-product-route .pp-product-studio-banner>a,
  body.pp-product-route .pp-product-studio-banner>a b{transition:none}
}
