/* V110 - Vivere Gallipoli: hero davvero animata ma elegante */
.vivere-hero-dynamic{
  min-height:78vh!important;
  overflow:hidden!important;
  perspective:1200px;
}
.vivere-hero-dynamic:before{
  background-position:center 48%!important;
  animation:vivereHeroCinematic 24s ease-in-out infinite alternate!important;
  transform-origin:center center;
  will-change:transform,filter,background-position;
}
.vivere-hero-dynamic:after{
  height:120px!important;
  background:linear-gradient(180deg,rgba(251,247,239,0),rgba(251,247,239,.42) 42%,#fbf7ef 100%)!important;
  opacity:.72!important;
}
.vivere-hero-dynamic .vivere-hero-card{
  animation:vivereHeroTextIn .95s cubic-bezier(.2,.8,.2,1) both, vivereHeroFloat 7.5s ease-in-out 1.2s infinite;
  will-change:transform;
}
.vivere-hero-dynamic .vivere-kicker{
  animation:vivereSoftGlowText 3.8s ease-in-out infinite alternate;
}
.vivere-hero-dynamic h1 em{
  animation:vivereGoldPulse 4.2s ease-in-out infinite alternate;
}
.vivere-hero-dynamic .lead{
  animation:vivereHeroTextIn .95s cubic-bezier(.2,.8,.2,1) .12s both;
}
.vivere-hero-glow{
  width:min(760px,82vw)!important;
  height:440px!important;
  filter:blur(24px)!important;
  opacity:.85!important;
  animation:vivereGlowMove 8s ease-in-out infinite alternate!important;
}
.vivere-hero-dynamic .vivere-actions{
  animation:vivereHeroTextIn .95s cubic-bezier(.2,.8,.2,1) .24s both;
}
.vivere-hero-dynamic:has(.vivere-hero-card)::before{
  filter:saturate(1.12) contrast(1.06) brightness(.98);
}
.vivere-hero-moments span{
  animation:vivereChipFloat 5.4s ease-in-out infinite;
}
.vivere-hero-moments span:nth-child(2){animation-delay:.45s}
.vivere-hero-moments span:nth-child(3){animation-delay:.9s}
.vivere-hero-dynamic .vivere-btn.primary{
  box-shadow:0 18px 48px rgba(201,155,78,.34),0 0 0 1px rgba(255,255,255,.18) inset;
}
.vivere-hero-dynamic .vivere-btn.primary:after{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius:inherit;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.55),transparent);
  transform:translateX(-130%);
  animation:vivereButtonShine 4.2s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}
.vivere-hero-dynamic .vivere-btn.primary > *{position:relative;z-index:1}
.vivere-hero-dynamic .vivere-scroll-cue{
  animation:vivereCue 1.7s ease-in-out infinite, vivereCueHalo 2.9s ease-in-out infinite alternate!important;
}
.vivere-hero-dynamic .vivere-scroll-cue:before{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:999px;
  border:1px solid rgba(201,155,78,.36);
  animation:vivereRing 2.4s ease-out infinite;
}
.vivere-hero-dynamic .vivere-sparkles{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
}
.vivere-hero-dynamic .vivere-sparkles i{
  position:absolute;
  width:4px;
  height:4px;
  border-radius:50%;
  background:rgba(255,231,176,.78);
  box-shadow:0 0 18px rgba(255,218,144,.72);
  opacity:0;
  animation:vivereSpark 5.8s ease-in-out infinite;
}
.vivere-hero-dynamic .vivere-sparkles i:nth-child(1){left:15%;top:24%;animation-delay:.2s}
.vivere-hero-dynamic .vivere-sparkles i:nth-child(2){left:28%;top:68%;animation-delay:1.3s}
.vivere-hero-dynamic .vivere-sparkles i:nth-child(3){left:59%;top:31%;animation-delay:2.1s}
.vivere-hero-dynamic .vivere-sparkles i:nth-child(4){left:76%;top:52%;animation-delay:3.2s}
.vivere-hero-dynamic .vivere-sparkles i:nth-child(5){left:42%;top:18%;animation-delay:4.0s}
.vivere-hero-dynamic .vivere-wave{
  position:absolute;
  left:0;right:0;bottom:-1px;
  height:95px;
  z-index:2;
  pointer-events:none;
  opacity:.72;
  background:radial-gradient(70% 70% at 50% 100%,rgba(251,247,239,.86) 0%,rgba(251,247,239,.42) 50%,transparent 78%);
  transform:translateY(16px);
  animation:vivereWaveSoft 6.8s ease-in-out infinite alternate;
}
.vivere-hero-dynamic .vivere-hero-card:before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(120deg,rgba(255,255,255,.10),transparent 34%,rgba(201,155,78,.08));
  opacity:.75;
  pointer-events:none;
}
.vivere-photo-card img{transition:transform 1.05s cubic-bezier(.2,.8,.2,1),filter 1.05s ease!important}
.vivere-photo-card:hover img{transform:scale(1.11)!important}
@keyframes vivereHeroCinematic{
  0%{transform:scale(1.045) translate3d(0,0,0);background-position:center 48%}
  45%{transform:scale(1.08) translate3d(-1.1%,.25%,0);background-position:48% 46%}
  100%{transform:scale(1.12) translate3d(1.1%,-.35%,0);background-position:52% 44%}
}
@keyframes vivereHeroTextIn{from{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes vivereHeroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes vivereGlowMove{0%{opacity:.56;transform:translateY(-50%) translateX(-18px) scale(.95)}100%{opacity:1;transform:translateY(-50%) translateX(22px) scale(1.08)}}
@keyframes vivereSoftGlowText{0%{text-shadow:0 4px 24px rgba(0,0,0,.35),0 0 0 rgba(242,201,121,0)}100%{text-shadow:0 4px 24px rgba(0,0,0,.35),0 0 24px rgba(242,201,121,.45)}}
@keyframes vivereGoldPulse{0%{filter:drop-shadow(0 0 0 rgba(201,155,78,0))}100%{filter:drop-shadow(0 0 16px rgba(201,155,78,.38))}}
@keyframes vivereChipFloat{0%,100%{transform:translateY(0);opacity:.82}50%{transform:translateY(-9px);opacity:1}}
@keyframes vivereButtonShine{0%,58%{transform:translateX(-130%)}82%,100%{transform:translateX(130%)}}
@keyframes vivereCueHalo{0%{box-shadow:0 18px 46px rgba(0,0,0,.16),0 0 0 rgba(201,155,78,0)}100%{box-shadow:0 18px 46px rgba(0,0,0,.16),0 0 28px rgba(201,155,78,.36)}}
@keyframes vivereRing{0%{transform:scale(.75);opacity:.75}100%{transform:scale(1.55);opacity:0}}
@keyframes vivereSpark{0%,100%{opacity:0;transform:translateY(0) scale(.55)}35%{opacity:.9;transform:translateY(-10px) scale(1)}70%{opacity:.2;transform:translateY(-24px) scale(.75)}}
@keyframes vivereWaveSoft{from{transform:translateY(18px) scaleX(1)}to{transform:translateY(5px) scaleX(1.04)}}
@media(max-width:980px){
  .vivere-hero-dynamic{min-height:74vh!important}
  .vivere-hero-dynamic .vivere-hero-card{animation:vivereHeroTextIn .8s ease both;background:linear-gradient(90deg,rgba(7,25,22,.50),rgba(7,25,22,.24))!important;backdrop-filter:blur(5px)}
}
@media(max-width:640px){
  .vivere-hero-dynamic{min-height:76vh!important}
  .vivere-hero-dynamic:before{animation-duration:18s!important}
  .vivere-hero-dynamic .vivere-sparkles i:nth-child(n+4){display:none}
}
@media(prefers-reduced-motion:reduce){
  .vivere-hero-dynamic:before,.vivere-hero-card,.vivere-hero-glow,.vivere-hero-moments span,.vivere-btn.primary:after,.vivere-scroll-cue,.vivere-scroll-cue:before,.vivere-sparkles i,.vivere-wave{animation:none!important}
}
