/* Shop by product: Party Pack's own fine-line icons on black medallions,
   scoped to the storefront only. On hover each icon plays its own small
   gesture, the label turns blush and the arrow slides. No changes to the
   3D hero. (File name kept so load order and the build list stay unchanged.) */
body.pp-editorial-shop .pp-ed-product-section{
  background:#fff;
  padding:clamp(52px,6vw,96px) clamp(18px,4vw,48px) clamp(58px,6.4vw,104px);
}
body.pp-editorial-shop .pp-ed-product-section .pp-ed-section-heading{
  max-width:none;margin:0 auto clamp(34px,4.4vw,64px);
}
body.pp-editorial-shop .pp-ed-product-section .pp-ed-section-heading h2{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:400;letter-spacing:-.04em;line-height:1.1;
  font-size:clamp(40px,4.6vw,66px);color:#141013;
}
body.pp-editorial-shop .pp-ed-category-ornament{
  display:flex;justify-content:center;align-items:center;gap:13px;
  width:min(380px,70vw);margin:14px auto 0;color:#ab4790;
}
body.pp-editorial-shop .pp-ed-category-ornament::before,
body.pp-editorial-shop .pp-ed-category-ornament::after{
  content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,#d6b3cd);
}
body.pp-editorial-shop .pp-ed-category-ornament::after{
  background:linear-gradient(90deg,#d6b3cd,transparent);
}
body.pp-editorial-shop .pp-ed-category-ornament svg{width:46px;height:23px;flex:none}

body.pp-editorial-shop .pp-ed-category-grid{
  max-width:1240px;margin-inline:auto;
  grid-template-columns:repeat(4,minmax(0,1fr));
  justify-items:center;
  column-gap:clamp(20px,4vw,64px);
  row-gap:clamp(40px,4.6vw,64px);
}
body.pp-editorial-shop .pp-ed-category-link{
  display:flex;flex-direction:column;align-items:center;justify-content:start;
  gap:clamp(18px,2vw,28px);min-width:0;min-height:0;padding:0;
  text-align:center;text-decoration:none;color:#1b1419;outline-offset:8px;
}
body.pp-editorial-shop .pp-ed-category-icon{
  display:grid;place-items:center;position:relative;
  width:clamp(104px,10.5vw,150px);height:auto;min-height:0;aspect-ratio:1;
  border:0;border-radius:50%;
  background:#000;color:#d6b3cd;
  background-image:none;box-shadow:none;transform:none;transition:none;
}
body.pp-editorial-shop .pp-ed-category-icon .ppc-svg{
  width:68%;height:68%;stroke-width:1.05;overflow:visible;
}

body.pp-editorial-shop .pp-ed-category-caption{
  display:inline-flex;align-items:center;justify-content:center;gap:14px;
  max-width:100%;min-height:0;
  font-family:'Outfit',system-ui,sans-serif!important;
  font-size:clamp(17px,1.55vw,22px)!important;font-weight:400!important;
  line-height:1.3!important;letter-spacing:.03em;white-space:normal;
  color:#141013;transition:color .25s ease;
}
body.pp-editorial-shop .pp-ed-category-caption>span{min-width:0}
body.pp-editorial-shop .pp-ed-category-caption svg{
  width:19px;height:19px;min-width:19px;stroke:currentColor;transition:transform .3s cubic-bezier(.2,.7,.2,1);
}

/* hover / keyboard focus: only the label reacts. Text turns blush, arrow slides. */
body.pp-editorial-shop .pp-ed-category-link:hover .pp-ed-category-icon,
body.pp-editorial-shop .pp-ed-category-link:focus-visible .pp-ed-category-icon{transform:none;box-shadow:none}
body.pp-editorial-shop .pp-ed-category-link:hover .pp-ed-category-caption,
body.pp-editorial-shop .pp-ed-category-link:focus-visible .pp-ed-category-caption{color:#a8478f}
body.pp-editorial-shop .pp-ed-category-link:hover .pp-ed-category-caption svg,
body.pp-editorial-shop .pp-ed-category-link:focus-visible .pp-ed-category-caption svg{transform:translateX(6px)}
body.pp-editorial-shop .pp-ed-category-link:focus-visible{outline:2px solid #96407f;border-radius:6px}

/* hover / focus: each icon plays its own small gesture (no load animation) */
body.pp-editorial-shop .ppc-svg *{transform-box:fill-box}
body.pp-editorial-shop .ppi-bag{transform-origin:50% 30%}
body.pp-editorial-shop .ppi-candy{transform-origin:center}
body.pp-editorial-shop .ppi-lid{transform-origin:50% 100%}
body.pp-editorial-shop .ppi-name{clip-path:inset(0 0 0 0)}
body.pp-editorial-shop .ppi-flourish{stroke-dasharray:1;stroke-dashoffset:0}
body.pp-editorial-shop .ppi-cup{transform-origin:70% 100%}
body.pp-editorial-shop .ppi-napkin{transform-origin:50% 60%}
body.pp-editorial-shop .ppi-cookie{transform-origin:50% 60%}
body.pp-editorial-shop .ppi-icing{stroke-dasharray:1;stroke-dashoffset:0}
body.pp-editorial-shop .ppi-bottle{transform-origin:50% 100%}
body.pp-editorial-shop .ppi-heart{transform-origin:center}
body.pp-editorial-shop .ppi-bl{transform-origin:86% 100%}
body.pp-editorial-shop .ppi-br{transform-origin:0% 100%}
body.pp-editorial-shop .ppi-chair{transform-origin:0% 100%}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-bag{animation:ppi-swing 1.1s cubic-bezier(.4,0,.3,1)}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-candy{animation:ppi-hop .55s ease-in-out 2}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-c2{animation-delay:.09s}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-c3{animation-delay:.18s}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-lid{animation:ppi-lid 1s cubic-bezier(.3,1.4,.5,1)}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-name{animation:ppi-write 1.2s cubic-bezier(.45,.05,.4,1)}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-flourish{animation:ppi-draw .5s ease-out .95s both}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-cup{animation:ppi-clink .9s cubic-bezier(.4,0,.3,1)}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-napkin{animation:ppi-flutter .9s ease-in-out .12s}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-cookie{animation:ppi-pop .6s cubic-bezier(.3,1.5,.5,1)}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-icing{animation:ppi-draw 1.1s cubic-bezier(.45,.05,.3,1) .1s both}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-bottle{animation:ppi-wobble 1.1s ease-out}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-heart{animation:ppi-beat .9s ease-in-out .15s}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-bl{animation:ppi-sway-l 1.6s ease-in-out}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-br{animation:ppi-sway-r 1.6s ease-in-out .08s}
body.pp-editorial-shop .pp-ed-category-link:is(:hover,:focus-visible) .ppi-chair{animation:ppi-rock 1s cubic-bezier(.4,0,.3,1)}
@keyframes ppi-swing{0%,100%{transform:rotate(0)}20%{transform:rotate(-8deg)}45%{transform:rotate(6deg)}70%{transform:rotate(-3deg)}85%{transform:rotate(1.5deg)}}
@keyframes ppi-hop{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.4px)}}
@keyframes ppi-lid{0%,100%{transform:none}35%{transform:translateY(-4px) rotate(-9deg)}60%{transform:translateY(-3px) rotate(5deg)}}
@keyframes ppi-write{0%{clip-path:inset(0 100% 0 0)}100%{clip-path:inset(0 0 0 0)}}
@keyframes ppi-draw{0%{stroke-dashoffset:1;opacity:0}6%{opacity:1}100%{stroke-dashoffset:0;opacity:1}}
@keyframes ppi-clink{0%,100%{transform:none}35%{transform:translateX(1px) rotate(9deg)}55%{transform:translateX(1px) rotate(6deg)}}
@keyframes ppi-flutter{0%,100%{transform:none}30%{transform:translate(1.5px,-2px) rotate(10deg)}60%{transform:translateY(-1px) rotate(6deg)}}
@keyframes ppi-pop{0%,100%{transform:scale(1)}40%{transform:scale(1.09)}}
@keyframes ppi-wobble{0%,100%{transform:rotate(0)}18%{transform:rotate(9deg)}38%{transform:rotate(-7deg)}58%{transform:rotate(4deg)}78%{transform:rotate(-2deg)}}
@keyframes ppi-beat{0%,100%{transform:scale(1)}25%{transform:scale(1.35)}45%{transform:scale(1)}65%{transform:scale(1.22)}}
@keyframes ppi-sway-l{0%,100%{transform:rotate(0)}30%{transform:translateY(-1.5px) rotate(-7deg)}65%{transform:translateY(-.5px) rotate(4deg)}}
@keyframes ppi-sway-r{0%,100%{transform:rotate(0)}30%{transform:translateY(-1.5px) rotate(8deg)}65%{transform:translateY(-.5px) rotate(-4deg)}}
@keyframes ppi-rock{0%,100%{transform:none}30%{transform:rotate(-9deg)}55%{transform:rotate(2deg)}75%{transform:rotate(-1deg)}}

@media(max-width:900px) and (min-width:691px){
 body.pp-editorial-shop .pp-ed-category-grid{column-gap:16px}
 body.pp-editorial-shop .pp-ed-category-caption{font-size:16px!important}
}
@media(max-width:690px){
 body.pp-editorial-shop .pp-ed-product-section{padding:50px 16px 62px}
 body.pp-editorial-shop .pp-ed-product-section .pp-ed-section-heading{margin-bottom:30px}
 body.pp-editorial-shop .pp-ed-product-section .pp-ed-section-heading h2{font-size:clamp(36px,9vw,52px)}
 body.pp-editorial-shop .pp-ed-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 12px}
 body.pp-editorial-shop .pp-ed-category-icon{width:clamp(96px,30vw,124px)}
 body.pp-editorial-shop .pp-ed-category-link{gap:16px}
 body.pp-editorial-shop .pp-ed-category-caption{font-size:16px!important;gap:8px}
 body.pp-editorial-shop .pp-ed-category-caption svg{width:15px;height:15px;min-width:15px}
}
@media(prefers-reduced-motion:reduce){
 body.pp-editorial-shop .pp-ed-category-icon,
 body.pp-editorial-shop .pp-ed-category-caption svg,
 body.pp-editorial-shop .ppc-svg *{transition:none!important;animation:none!important}
}
