/* Movimento leggero: dà energia al sito senza togliere spazio ai lavori. */
:root { --brand-green: #225536; --brand-orange: #f58424; }

.site-header { height: 142px; transition: box-shadow .35s ease, background .35s ease; }
.site-header .brand { display: flex; align-items: center; }
.site-header .brand img { width: 410px; max-height: 128px; height: auto; filter: drop-shadow(0 9px 16px rgba(20, 64, 40, .10)); transition: transform .35s ease; }
.site-header .brand:hover img { transform: translateY(-2px) scale(1.015); }
footer .brand img { width: 315px; max-height: 98px; height: auto; }

.hero::before { animation: orbit 11s ease-in-out infinite; }
.hero::after { animation: orbit-reverse 9s ease-in-out infinite; }
.hero-visual { box-shadow: -24px 24px 0 rgba(245, 132, 36, .14); }
.hero-visual::after { content: ''; position: absolute; z-index: 2; right: -30px; top: 30px; width: 116px; height: 9px; background: linear-gradient(90deg, var(--brand-orange) 0 52%, #7bbf4a 52% 100%); transform: rotate(-38deg); box-shadow: 0 16px 0 var(--brand-green), 0 32px 0 var(--brand-orange); animation: color-stroke 6s ease-in-out infinite; }
.hero-visual img { transition: transform 1.1s cubic-bezier(.2,.8,.2,1); }
.hero-visual:hover img { transform: scale(1.045); }
.button { transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.button:hover { transform: translateY(-3px); box-shadow: 0 14px 24px rgba(34, 85, 54, .18); }

.trust-strip p { transition: transform .25s ease, color .25s ease; }
.trust-strip p:hover { transform: translateY(-3px); color: #fff; }
.service-list article, .more-card, .transformation, .full-card { transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease; }
.service-list article:hover, .more-card:hover, .transformation:hover { transform: translateY(-7px); }
.more-card:hover { box-shadow: 0 20px 35px rgba(0, 0, 0, .22); }
.more-card img { transition: transform .7s cubic-bezier(.2,.8,.2,1), filter .4s ease; }
.more-card:hover img { transform: scale(1.07); filter: brightness(.73); }
.portfolio-more { position: relative; overflow: hidden; }
.portfolio-more::before, .portfolio-more::after { content: ''; position: absolute; pointer-events: none; border: 1px solid rgba(255, 255, 255, .26); border-radius: 50%; }
.portfolio-more::before { width: 300px; height: 300px; left: -180px; bottom: -165px; animation: breathe 7s ease-in-out infinite; }
.portfolio-more::after { width: 150px; height: 150px; right: 7%; top: 65px; border-color: rgba(245, 132, 36, .62); animation: breathe 6s 1s ease-in-out infinite; }
.portfolio-more-heading, .portfolio-more .more-grid { position: relative; z-index: 1; }
.before-after { position: relative; overflow: hidden; }
.before-after::after { content: ''; position: absolute; width: 220px; height: 220px; border: 2px solid rgba(34, 85, 54, .16); border-radius: 50%; right: -80px; bottom: 30px; animation: breathe 8s ease-in-out infinite; }
.before-after-heading, .transformation-grid { position: relative; z-index: 1; }
.full-portfolio { position: relative; overflow: hidden; }
.full-portfolio::before { content: ''; position: absolute; width: 250px; height: 4px; background: linear-gradient(90deg, var(--brand-green) 0 55%, var(--brand-orange) 55% 100%); right: -60px; top: 95px; transform: rotate(-34deg); opacity: .9; }

.brand-film { position: relative; overflow: hidden; max-width: none; padding: 74px 4.6vw; background: #06130c; }
.brand-film::before { content: ''; position: absolute; z-index: 1; top: 0; left: 4.6vw; width: 145px; height: 5px; background: linear-gradient(90deg, var(--brand-orange) 0 42%, #76bc46 42% 100%); }
.brand-film img { display: block; width: min(100%, 1550px); margin: 0 auto; box-shadow: 0 28px 60px rgba(0, 0, 0, .38); transition: transform .8s cubic-bezier(.2,.8,.2,1); }
.brand-film:hover img { transform: scale(1.015); }

@keyframes orbit { 50% { transform: translate(-14px, 17px) rotate(11deg); } }
@keyframes orbit-reverse { 50% { transform: translate(14px, -12px) rotate(-12deg); } }
@keyframes breathe { 50% { transform: scale(1.12); opacity: .55; } }
@keyframes color-stroke { 50% { transform: rotate(-34deg) translate(-8px, 8px); } }

@media (max-width: 960px) { .site-header .brand img { width: 330px; max-height: 104px; } }
@media (max-width: 760px) {
  .site-header { height: 96px; }
  .site-header .brand img { width: 228px; max-height: 72px; }
  footer .brand img { width: 245px; max-height: 77px; }
  .hero-visual { box-shadow: -12px 15px 0 rgba(245, 132, 36, .13); }
  .hero-visual::after { width: 78px; right: -27px; top: 17px; }
  .full-portfolio::before { top: 42px; right: -115px; }
  .brand-film { padding: 48px 0; }
  .brand-film::before { left: 7vw; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
