/* Cavalli Segni – motion layer */
:root{--ease:cubic-bezier(.2,.7,.1,1)}
.top{transition:box-shadow .3s}.top.scrolled{box-shadow:0 6px 24px rgba(27,42,74,.12)}
/* burger */
.burger{display:flex;flex-direction:column;gap:5px;background:none;border:0;padding:10px;cursor:pointer;margin-left:auto}
.burger span{width:24px;height:2px;background:var(--navy);transition:.3s var(--ease)}
.menu-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:959px){
 .nav nav{display:flex;flex-direction:column;position:fixed;top:67px;left:0;right:0;background:#fff;padding:8px 20px 24px;border-bottom:3px solid var(--red);transform:translateY(-12px);opacity:0;visibility:hidden;transition:.3s var(--ease);box-shadow:0 20px 40px rgba(27,42,74,.15)}
 .nav nav a{margin:0;padding:14px 0;border-bottom:1px solid var(--line);font-size:18px}
 .menu-open .nav nav{transform:none;opacity:1;visibility:visible}
 .nav .btn.sm{display:none}
}
@media(min-width:960px){.burger{display:none}.nav nav{display:block}}
/* hero */
.hero-motion{position:relative;min-height:min(92vh,860px);display:flex;align-items:flex-end;padding:120px 0 72px;overflow:hidden;background:var(--navy)}
.hero-bg{position:absolute;inset:0}
.hero-video{width:100%;height:100%;object-fit:cover;transform:scale(1.08);animation:heroZoom 9s var(--ease) forwards}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,27,48,.92) 0%,rgba(27,42,74,.72) 45%,rgba(27,42,74,.15) 100%),linear-gradient(0deg,rgba(17,27,48,.7),transparent 50%)}
.hero-inner{position:relative;z-index:1;width:100%}
.hero-inner h1,.hero-inner .lead{max-width:640px}
.hero-wm{display:inline-flex;flex-direction:column;color:#fff;margin-bottom:28px}
.wm.big{font-size:clamp(44px,7vw,84px);letter-spacing:-2px;line-height:1}
.hero-wm .wm .i b{box-shadow:none;top:.06em}
.hero-line{display:flex;gap:8px;height:4px;margin:14px 0 10px}
.hero-line i{flex:1;transform-origin:left;transform:scaleX(0);animation:lineIn .4s var(--ease) 1.25s forwards}
.hero-line i:nth-child(1){background:var(--it-g)}.hero-line i:nth-child(2){background:var(--it-w);animation-delay:1.55s}.hero-line i:nth-child(3){background:var(--it-r);animation-delay:1.85s}
.hero-wm small{font-size:13px;letter-spacing:4px;text-transform:uppercase;color:#c9d0dd;opacity:0;animation:fadeUp .7s var(--ease) 1.6s forwards}
.hero-wm .wm{clip-path:inset(0 100% 0 0);animation:wipe 1s var(--ease) .15s forwards}
.hero-wm .wm .i b{transform:translate(-50%,-260%) rotate(-90deg);opacity:0;animation:drop .7s cubic-bezier(.3,1.6,.5,1) .95s forwards}
.hero-inner .rv{transition-delay:1.5s}
.hero-note{position:absolute;right:16px;bottom:12px;z-index:2;font-size:11px;color:rgba(255,255,255,.75);background:rgba(17,27,48,.55);padding:3px 8px;border-radius:4px}
@keyframes wipe{to{clip-path:inset(0 0 0 0)}}
@keyframes drop{0%{opacity:0;transform:translate(-50%,-260%) rotate(-90deg)}60%{opacity:1}100%{opacity:1;transform:translate(-50%,0) rotate(0)}}
@keyframes lineIn{to{transform:scaleX(1)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes heroZoom{to{transform:scale(1)}}
/* reveals */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.cards .rv:nth-child(3n+2),.gallery .rv:nth-child(3n+2),.steps .rv:nth-child(2){transition-delay:.1s}
.cards .rv:nth-child(3n),.gallery .rv:nth-child(3n),.steps .rv:nth-child(3){transition-delay:.2s}
.steps .rv:nth-child(4){transition-delay:.3s}
/* cards */
.cards article.card{padding:0;overflow:hidden;position:relative;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s,opacity .8s var(--ease)}
.card-img{aspect-ratio:16/10;overflow:hidden}.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.card-body{padding:22px 24px 26px;position:relative}
.card-body::after{content:"";position:absolute;left:24px;bottom:14px;height:3px;width:40px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.cards article.card:hover{transform:translateY(-6px);box-shadow:0 22px 40px rgba(27,42,74,.16);border-color:var(--navy)}
.cards article.card:hover img{transform:scale(1.06)}
.cards article.card:hover .card-body::after{transform:scaleX(1)}
.cards article.card:hover .ic{background:var(--red)}
.ic{transition:background .3s}
/* gallery */
.gallery{grid-template-columns:1fr}
@media(min-width:700px){.gallery{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.gallery{grid-template-columns:repeat(3,1fr)}}
.gallery figure{transition:transform .45s var(--ease),box-shadow .45s var(--ease),opacity .8s var(--ease)}
.gallery figure:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(27,42,74,.14)}
/* parallax */
.parallax{position:relative;height:clamp(340px,60vh,560px);overflow:hidden;display:flex;align-items:center;color:#fff}
.px-img{position:absolute;inset:-20% 0;background-size:cover;background-position:center;will-change:transform}
.parallax::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,27,48,.85),rgba(27,42,74,.3));z-index:1}
.px-text{position:relative;z-index:2;width:100%}
.px-text p{font-size:clamp(30px,4.6vw,56px);font-weight:800;letter-spacing:-1px;line-height:1.08;margin:0;max-width:14em}
.px-text p span{color:#ff8a8a;font-weight:600;font-size:.55em;letter-spacing:0}
/* process line */
.steps-wrap{position:relative}
.steps-line{display:none}
@media(min-width:960px){
 .steps-line{display:block;position:absolute;left:0;right:0;top:66px;width:100%;height:4px;overflow:visible;z-index:0}
 .steps-line line{stroke:var(--red);stroke-width:4;vector-effect:non-scaling-stroke;stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset 1.6s var(--ease) .2s}
 .steps-wrap.in .steps-line line{stroke-dashoffset:0}
 .steps li{position:relative;z-index:1}
}
@media(max-width:959px){
 .steps{position:relative;padding-left:18px}
 .steps::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform 1.4s var(--ease)}
 .steps-wrap.in .steps::before{transform:scaleY(1)}
}
.steps li{transition:transform .4s var(--ease),box-shadow .4s var(--ease),opacity .8s var(--ease)}
.steps li:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(27,42,74,.12)}
.btn{transition:background .25s,transform .25s var(--ease),box-shadow .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(214,40,40,.25)}
.contacts a{transition:color .2s}.contacts a:hover{color:var(--red)}
/* reduced motion */
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;transition-duration:.001ms!important;transition-delay:0s!important}
 .js .rv{opacity:1;transform:none}
 .hero-video{display:none}
 .hero-bg{background:url(img/gen/hero-poster.jpg) center/cover}
 .px-img{transform:none!important}
}
