/* A clearer service opening, using the existing JP type and real client work. */
.webshop-service-page {
  --paper: #fff;
  --ink: #202020;
  --muted: #626262;
  --line: rgb(32 32 32 / 14%);
}
.webshop-service-page main > section > .wrap { max-width: 1280px; }
.webshop-service-page .ws-section { padding-block: 60px; }
.webshop-service-page .ws-section h2 {
  font-size: clamp(34px, 4.2vw, 54px);
  letter-spacing: -.04em;
  line-height: 1.14;
}
.webshop-service-page .ws-heading { margin-bottom: 36px; }
.webshop-service-page .ws-hero { padding-block: 24px 22px; }
.ws-hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 5vw, 64px);
}
.ws-hero-copy { min-width: 0; }
.webshop-service-page .ws-hero .ws-eyebrow { margin-bottom: 22px; }
.webshop-service-page .ws-hero h1 {
  font-size: clamp(46px, 5vw, 72px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.04em;
  max-width: none;
  text-wrap: initial;
}
.ws-hero h1 span {
  display: block;
  animation: line-enter 500ms cubic-bezier(.22, 1, .36, 1) both;
}
.ws-hero h1 span + span { animation-delay: 60ms; }
.ws-hero-intro {
  max-width: 44ch;
  font-size: 16px;
  line-height: 1.8;
  margin-top: 24px;
  animation: content-enter 450ms 100ms cubic-bezier(.22, 1, .36, 1) both;
}
.webshop-service-page .ws-hero .ws-actions {
  max-width: none;
  margin-top: 26px;
  gap: 14px 24px;
}
.ws-shop-visual { min-width: 0; }
.ws-shop-art {
  display: block;
  position: relative;
  width: 100%;
  max-width: 500px;
  aspect-ratio: 1.28;
  margin-inline: auto;
  isolation: isolate;
}
.ws-shop-pot {
  position: absolute;
  left: 14%;
  top: 16%;
  width: 32%;
  height: 70%;
  transform: rotate(-6deg);
  filter: drop-shadow(10px 18px 14px rgb(32 32 32 / 13%));
  transition: transform 500ms cubic-bezier(.22, 1, .36, 1);
}
/* Compensate only the transparent margins of the approved full pot. */
.ws-shop-pot > img {
  position: absolute;
  left: -65%;
  top: -20%;
  width: 230%;
  height: 140%;
  max-width: none;
  object-fit: contain;
}
.ws-shop-phone {
  position: absolute;
  left: 64%;
  top: 9%;
  width: 28%;
  aspect-ratio: 9 / 19.5;
  border: 6px solid #0b1d24;
  border-radius: 26px;
  overflow: hidden;
  background: #0b1d24;
  box-shadow: 0 18px 26px rgb(32 32 32 / 16%);
  transform: rotate(5deg);
  transition: transform 500ms cubic-bezier(.22, 1, .36, 1);
}
.ws-shop-phone > img { width: 100%; height: 100%; object-fit: contain; object-position: center top; }
.ws-shop-art:hover .ws-shop-pot { transform: rotate(-3deg) translateY(-4px); }
.ws-shop-art:hover .ws-shop-phone { transform: rotate(3deg) translateY(-4px); }
.ws-shop-visual figcaption { margin-top: 12px; text-align: center; }
.ws-shop-visual figcaption .text-link { font-size: 11px; }
.ws-page-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 32px;
  border-top: 1px solid var(--line);
  padding-top: 12px;
  margin-top: 26px;
}
.ws-page-links .text-link { font-size: 11px; }
.webshop-service-page .ws-process { padding-top: 16px; }
.webshop-service-page .ws-process > .wrap { border-top: 0; padding-top: 18px; }
.webshop-service-page .ws-case-media { min-height: 0; }
@media (max-width: 1000px) and (min-width: 761px) {
  .webshop-service-page .ws-hero h1 { font-size: 48px; }
  .ws-hero-intro { font-size: 15px; }
  .ws-hero-layout { gap: 30px; }
  .ws-shop-phone { border-width: 5px; border-radius: 22px; }
}
@media (max-width: 760px) {
  .webshop-service-page .ws-hero { padding-block: 20px 16px; }
  .webshop-service-page .ws-section { padding-block: 46px; }
  .webshop-service-page .ws-section h2 { font-size: clamp(32px, 6.8vw, 44px); }
  .webshop-service-page .ws-process { padding-top: 10px; }
  .ws-hero-layout { grid-template-columns: 1fr; gap: 28px; }
  .webshop-service-page .ws-hero h1 { font-size: clamp(38px, 7.6vw, 56px); line-height: 1.14; letter-spacing: -.035em; }
  .ws-hero-intro { font-size: 15px; margin-top: 20px; }
  .webshop-service-page .ws-hero .ws-actions { margin-top: 22px; }
  .ws-shop-art { max-width: 420px; }
  .ws-shop-phone { border-width: 5px; border-radius: 20px; }
  .ws-page-links { gap: 4px 24px; margin-top: 22px; }
  .webshop-service-page .ws-heading { margin-bottom: 30px; }
}
@media (max-width: 380px) {
  .webshop-service-page .ws-hero h1 { font-size: 36px; }
  .ws-shop-phone { border-width: 4px; border-radius: 16px; }
  .ws-page-links { display: grid; gap: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ws-hero h1 span, .ws-hero-intro { animation: none; }
  .ws-shop-pot, .ws-shop-phone { transition: none; }
  .ws-shop-art:hover .ws-shop-pot { transform: rotate(-6deg); }
  .ws-shop-art:hover .ws-shop-phone { transform: rotate(5deg); }
}
