/* The studio portrait and the page share one continuous, softly lit backdrop. */
.hero{
  position:relative;
  isolation:isolate;
  max-width:none;
  margin:0;
  padding:35px max(32px,calc((100vw - 1160px)/2)) 22px;
  grid-template-columns:1.04fr .96fr;
  gap:38px;
  overflow:hidden;
  background:linear-gradient(180deg,#fffdfb00 80%,#fffdfb),linear-gradient(105deg,#fffaf8 8%,#fcf0ed 44%,#f4d9d6 76%,#efcfcb);
}
.hero::before{
  content:'';
  position:absolute;
  z-index:-1;
  width:90%;height:85%;
  right:-15%;top:0;
  background:radial-gradient(ellipse at 60% 50%,#e8b1b84a,transparent 68%);
  pointer-events:none;
  animation:studio-light 12s ease-in-out infinite alternate;
}
.hero::after{display:none}
.hero .hero-copy{position:relative;z-index:2;max-width:550px}
.hero .hero-picture.integrated-photo{
  background:none;
  width:calc(100% + 46px);
  margin:0 -23px;
  aspect-ratio:4/5;
  height:auto;
  min-height:0;
  max-height:570px;
  overflow:visible;
  border-radius:0;
  animation:portrait-entry 1s ease both;
}
.hero .store-portrait{
  width:100%;height:100%;
  object-fit:cover;
  object-position:center 12%;
  border-radius:0;
  mask-image:linear-gradient(to right,transparent,#000 15%,#000 85%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 82%,transparent);
  -webkit-mask-image:linear-gradient(to right,transparent,#000 15%,#000 85%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 82%,transparent);
  mask-composite:intersect;
  -webkit-mask-composite:source-in;
}
.hero .hero-note{color:#8b6872}
.hero .button:not(.outline){
  position:relative;overflow:hidden;
  background:linear-gradient(115deg,#ad3d54,#9d3149);
  border-color:#a6384b;
  box-shadow:0 5px 18px #a6384b17,inset 0 1px 0 #ffffff24;
}
.hero .button:not(.outline)::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(110deg,transparent 20%,#ffffff24 48%,transparent 72%);
  transform:translateX(-120%);
  transition:transform .75s ease;
  pointer-events:none;
}
.hero .button:not(.outline):hover::before{transform:translateX(120%)}
.hero .button:not(.outline):hover{box-shadow:0 8px 22px #a6384b22}
@keyframes studio-light{to{transform:translate(-3%,3%);opacity:.6}}
@keyframes portrait-entry{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:1220px){.hero{margin:0;padding-left:32px;padding-right:32px;gap:30px}}
@media(max-width:1000px){.hero{padding-top:25px;padding-bottom:20px;gap:24px}.hero .hero-picture.integrated-photo{width:calc(100% + 36px);margin:0 -18px}}
@media(max-width:700px){
  .hero{margin:0;padding:30px 22px 0;grid-template-columns:1fr;gap:13px;background:linear-gradient(180deg,#fffaf8 0%,#fdf3f0 35%,#f3d7d4 70%,#fffdfb 100%)}
  .hero .hero-copy{max-width:none}
  .hero .hero-picture.integrated-photo{width:calc(100% + 44px);margin:0 -22px;aspect-ratio:1/1.02;max-height:440px;border-radius:0}
  .hero .store-portrait{object-position:center 12%;mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 82%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 82%,transparent)}
}
@media(prefers-reduced-motion:reduce){.hero:before,.hero .hero-picture.integrated-photo{animation:none}.hero .button:before{transition:none}}

/* One clear contact action, with a restrained pulse that leaves the icon still. */
.floating{
  width:66px;height:66px;
  right:26px;bottom:26px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,#b8455d,#9d2d46);
  border:1px solid #ffffff65;
  box-shadow:0 8px 24px #8e284333,inset 0 1px 0 #ffffff30;
  transition:transform .25s,box-shadow .25s;
  isolation:isolate;
}
.floating>.icon{width:29px;height:29px}
.floating:before{
  content:'';position:absolute;inset:-1px;
  border:1px solid #aa395365;
  border-radius:50%;
  z-index:-1;pointer-events:none;
  animation:contact-pulse 3.4s ease-out infinite;
}
.floating:hover,.floating:focus-visible{transform:translateY(-3px);box-shadow:0 12px 30px #8e284345}
.floating>span{
  display:block;position:absolute;right:calc(100% + 13px);
  width:max-content;padding:10px 14px;
  border-radius:6px;background:#fffaf8;color:#84354a;
  border:1px solid #edd6dd;
  font-size:11px;
  opacity:0;visibility:hidden;transform:translateX(5px);
  transition:opacity .2s,transform .2s,visibility .2s;
  box-shadow:0 5px 16px #84354a0d;
}
.floating:hover>span,.floating:focus-visible>span{opacity:1;visibility:visible;transform:none}
@keyframes contact-pulse{0%{transform:scale(1);opacity:.65}65%,100%{transform:scale(1.38);opacity:0}}
@media(max-width:700px){.floating{width:59px;height:59px;right:19px;bottom:20px}.floating>.icon{width:27px;height:27px}.floating>span{display:none}}
@media(prefers-reduced-motion:reduce){.floating:before{animation:none}.floating,.floating>span{transition:none}}

/* Long feathered transitions remove the studio backdrop's rectangular outline. */
.hero .store-portrait{
  mix-blend-mode:multiply;
  mask-image:linear-gradient(to right,transparent 0%,#0000000a 3%,#00000040 7%,#000000a6 13%,#000 23%,#000 76%,#000000d9 83%,#00000073 91%,#0000001a 97%,transparent 100%),linear-gradient(to bottom,transparent 0%,#00000012 1.5%,#00000059 3.5%,#000000b3 6%,#000 10%,#000 73%,#000000b3 82%,#00000059 90%,#00000012 97%,transparent 100%);
  -webkit-mask-image:linear-gradient(to right,transparent 0%,#0000000a 3%,#00000040 7%,#000000a6 13%,#000 23%,#000 76%,#000000d9 83%,#00000073 91%,#0000001a 97%,transparent 100%),linear-gradient(to bottom,transparent 0%,#00000012 1.5%,#00000059 3.5%,#000000b3 6%,#000 10%,#000 73%,#000000b3 82%,#00000059 90%,#00000012 97%,transparent 100%);
}
.hero .store-portrait{
  mask-image:radial-gradient(ellipse 58% 58% at 52% 45%,#000 40%,#000000e6 52%,#00000080 67%,#00000026 79%,transparent 91%),linear-gradient(to bottom,transparent,#000 11%,#000 76%,transparent);
  -webkit-mask-image:radial-gradient(ellipse 58% 58% at 52% 45%,#000 40%,#000000e6 52%,#00000080 67%,#00000026 79%,transparent 91%),linear-gradient(to bottom,transparent,#000 11%,#000 76%,transparent);
}
