/* Y Wave — foglio di stile del nuovo sito (tema figlio childhello). Generato dal prototipo: modificare qui o in Elementor. */
:root {--yw-black: #030303; --yw-gold: #A38753; --yw-white: #FFFFFF; --yw-red: #CC0007; --yw-paper: #F4F2EE; --yw-surface: #141414; --yw-line-dark: #2A2722; --yw-line-light: #D9D3C7; --yw-muted-dark: #A9A49B; --yw-muted-light: #5E5A53; --yw-gold-deep: #7D6538; --yw-font-sans: "Jost", "Futura", "Century Gothic", sans-serif; --yw-font-caps: "Cinzel", "Trajan Pro", Georgia, serif; --yw-fs-display: clamp(2.75rem, 1.6rem + 4.8vw, 6rem); --yw-fs-h2: clamp(2.1rem, 1.5rem + 2.6vw, 3.75rem); --yw-fs-h3: clamp(1.4rem, 1.2rem + 0.9vw, 2rem); --yw-fs-lead: clamp(1.125rem, 1.05rem + 0.35vw, 1.3rem); --yw-fs-body: 1.0625rem; --yw-fs-small: 0.875rem; --yw-fs-label: 0.78rem; --yw-content: 1240px; --yw-gutter: clamp(1rem, 0.5rem + 2.5vw, 2.5rem); --yw-section-y: clamp(4.5rem, 3rem + 6vw, 9rem); --yw-header-h: 76px; --yw-slant: 54%; --yw-ease: cubic-bezier(.2, .7, .1, 1);}
body.yw {margin: 0; background: var(--yw-black); color: var(--yw-white); font-family: var(--yw-font-sans); font-size: var(--yw-fs-body); font-weight: 400; line-height: 1.65; -webkit-font-smoothing: antialiased; overflow-x: hidden;}
body.yw img, body.yw svg {display: block; max-width: 100%; height: auto;}
body.yw a {color: inherit;}
body.yw p {margin: 0 0 1em; max-width: 68ch;}
body.yw h1, body.yw h2, body.yw h3, body.yw h4 {margin: 0; font-weight: 300; line-height: 1.08; letter-spacing: -0.015em;}
body.yw h1 {font-size: var(--yw-fs-display);}
body.yw h2 {font-size: var(--yw-fs-h2);}
body.yw h3 {font-size: var(--yw-fs-h3); font-weight: 400; line-height: 1.2; letter-spacing: 0;}
body.yw ul, body.yw ol {margin: 0; padding: 0; list-style: none;}
body.yw :focus-visible {outline: 2px solid var(--yw-gold); outline-offset: 3px;}
body.yw ::selection {background: var(--yw-gold); color: var(--yw-black);}
body.yw [id] {scroll-margin-top: calc(var(--yw-header-h) + 12px);}
.yw .yw-visually-hidden {position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;}
.yw .yw-section {position: relative; padding: var(--yw-section-y) var(--yw-gutter);}
.yw .yw-section--paper {background: var(--yw-paper); color: var(--yw-black);}
.yw .yw-section--surface {background: var(--yw-surface);}
.yw .yw-container {width: 100%; max-width: var(--yw-content); margin: 0 auto; display: flex; flex-direction: column; gap: 2rem;}
.yw .yw-row {display: flex; flex-wrap: wrap; gap: clamp(1.5rem, 1rem + 2vw, 4rem);}
.yw .yw-row > * {min-width: 0;}
.yw .yw-col {flex: 1 1 320px;}
.yw .yw-col--narrow {flex: 0 1 380px;}
.yw .yw-col--wide {flex: 2 1 480px;}
.yw .yw-section-head {display: flex; flex-wrap: wrap; gap: 1.25rem 4rem; align-items: flex-end; justify-content: space-between;}
.yw .yw-section-head h2 {flex: 1 1 460px; max-width: 16ch;}
.yw .yw-section-head p {flex: 0 1 420px; color: var(--yw-muted-dark); margin: 0;}
.yw .yw-section--paper .yw-section-head p {color: var(--yw-muted-light);}
.yw .yw-area-label {font-family: var(--yw-font-caps); font-size: var(--yw-fs-label); font-weight: 700; letter-spacing: .14em; color: var(--yw-gold); margin: 0 0 1rem; display: block;}
.yw .yw-section--paper .yw-area-label {color: var(--yw-gold-deep);}
.yw .yw-lead {font-size: var(--yw-fs-lead); line-height: 1.55; color: var(--yw-muted-dark);}
.yw .yw-section--paper .yw-lead {color: var(--yw-muted-light);}
.yw .yw-rule {width: 64px; height: 1px; background: var(--yw-gold); border: 0; margin: 0;}
.yw .yw-btn .elementor-button {display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 48px; padding: .85rem 1.6rem; font: 500 .95rem/1 var(--yw-font-sans); letter-spacing: .02em; text-decoration: none; border: 1px solid var(--yw-gold); color: var(--yw-black); background: var(--yw-gold); clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%); padding-right: 2rem; transition: background-color .25s var(--yw-ease), color .25s var(--yw-ease); cursor: pointer;}
.yw .yw-btn .elementor-button:hover {background: var(--yw-white); border-color: var(--yw-white);}
.yw .yw-btn--ghost .elementor-button {clip-path: none; padding-right: 1.6rem; background: transparent; color: var(--yw-white); border-color: rgba(255,255,255,.4);}
.yw .yw-btn--ghost .elementor-button:hover {background: var(--yw-white); color: var(--yw-black);}
.yw .yw-section--paper .yw-btn--ghost .elementor-button {color: var(--yw-black); border-color: var(--yw-black);}
.yw .yw-section--paper .yw-btn--ghost .elementor-button:hover {background: var(--yw-black); color: var(--yw-white);}
.yw .yw-section--paper .yw-btn .elementor-button:hover {background: var(--yw-black); border-color: var(--yw-black); color: var(--yw-white);}
.yw .yw-btn-row {display: flex; flex-wrap: wrap; gap: .9rem;}
.yw .yw-link {color: var(--yw-gold); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; font-weight: 500;}
.yw .yw-link:hover {color: var(--yw-white);}
.yw .yw-section--paper .yw-link {color: var(--yw-gold-deep);}
.yw .yw-section--paper .yw-link:hover {color: var(--yw-black);}
.yw .yw-hero {min-height: 100svh; padding: calc(var(--yw-header-h) + 3rem) var(--yw-gutter) 4rem; display: flex; align-items: center; overflow: hidden; position: relative;}
.yw .yw-hero__inner {width: 100%; max-width: var(--yw-content); margin: 0 auto; display: flex; align-items: center; gap: 2rem; position: relative; z-index: 2;}
.yw .yw-hero__text {flex: 1 1 56%; min-width: 0;}
.yw .yw-hero__title {margin-bottom: 1.75rem;}
.yw .yw-hero__title h1 {max-width: 13ch;}
.yw .yw-hero__lead {max-width: 46ch; margin-bottom: 2.5rem;}
.yw .yw-hero__visual {flex: 1 1 44%; align-self: stretch; min-height: 420px; position: relative;}
.yw .yw-hero__stage {position: absolute; inset: -10% -20% -10% -10%; pointer-events: none;}
.yw .yw-hero__stage canvas {width: 100% !important; height: 100% !important; display: block;}
.yw .yw-hero__fallback {position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--yw-white);}
.yw .yw-hero__fallback svg {width: min(78%, 420px);}
.yw .yw-hero.has-3d .yw-hero__fallback {opacity: 0; transition: opacity .8s;}
.yw .yw-hero__payoff {position: absolute; left: max(var(--yw-gutter), calc((100% - var(--yw-content)) / 2)); bottom: 2rem; z-index: 2; font-family: var(--yw-font-caps); font-weight: 700; font-size: var(--yw-fs-label); letter-spacing: .14em; color: var(--yw-gold); margin: 0;}
.yw .yw-diagonals {position: absolute; inset: 0; pointer-events: none; z-index: 1; overflow: hidden;}
.yw .yw-diagonals::before, .yw .yw-diagonals::after {content: ""; position: absolute; top: -20%; height: 140%; width: 1px; background: linear-gradient(transparent, rgba(163,135,83,.35), transparent); transform: rotate(28.5deg); transform-origin: top;}
.yw .yw-diagonals::before {left: 58%;}
.yw .yw-diagonals::after {left: 64%;}
.yw .yw-hero .yw-intro {opacity: 0; transform: translateY(14px);}
.yw .yw-hero.is-ready .yw-intro {opacity: 1; transform: none; transition: opacity .9s var(--yw-ease), transform .9s var(--yw-ease);}
.yw .yw-hero.is-ready .yw-intro-2 {transition-delay: .12s;}
.yw .yw-hero.is-ready .yw-intro-3 {transition-delay: .24s;}
@media (prefers-reduced-motion: reduce) {
.yw .yw-hero .yw-intro {opacity: 1; transform: none;}
}
@media (max-width: 860px) {
.yw .yw-hero {min-height: auto; padding-top: calc(var(--yw-header-h) + 2rem); flex-direction: column; align-items: stretch;}
.yw .yw-hero__inner {flex-direction: column-reverse; align-items: flex-start;}
.yw .yw-hero__visual {width: 100%; min-height: 0; height: 240px; flex: none;}
.yw .yw-hero__stage {inset: 0 auto 0 0; width: 260px;}
.yw .yw-hero__fallback {justify-content: flex-start;}
.yw .yw-hero__fallback svg {width: 200px; margin-left: 30px;}
.yw .yw-hero__payoff {position: static; margin-top: 2.5rem;}
}
.yw .yw-story {display: flex; flex-wrap: wrap; gap: 3rem 5rem;}
.yw .yw-story__intro {flex: 1 1 380px;}
.yw .yw-story__intro h2 {margin-bottom: 1.5rem; max-width: 12ch;}
.yw .yw-timeline {flex: 1 1 420px; border-left: 1px solid var(--yw-line-light);}
.yw .yw-timeline__item {position: relative; padding: 0 0 2.25rem 2rem;}
.yw .yw-timeline__item:last-child {padding-bottom: 0;}
.yw .yw-timeline__item::before {content: ""; position: absolute; left: -5px; top: .45em; width: 9px; height: 9px; background: var(--yw-paper); border: 1px solid var(--yw-black); transform: rotate(45deg);}
.yw .yw-timeline__when {font-weight: 500; font-size: var(--yw-fs-small); color: var(--yw-gold-deep); display: block; margin-bottom: .25rem;}
.yw .yw-timeline h3 {margin-bottom: .4rem;}
.yw .yw-timeline p {margin: 0; color: var(--yw-muted-light);}
.yw .yw-timeline__item.is-origin::before {background: var(--yw-red); border-color: var(--yw-red);}
.yw .yw-timeline__item.is-origin .yw-timeline__when {color: var(--yw-red);}
.yw .yw-team {display: flex; flex-wrap: wrap; gap: 1.5rem;}
.yw .yw-person {flex: 1 1 260px; display: flex; flex-direction: column; gap: 1rem;}
.yw .yw-person__photo {aspect-ratio: 4 / 5; background: var(--yw-surface); position: relative; overflow: hidden; clip-path: polygon(0 0, 100% 0, 100% 88%, 82% 100%, 0 100%); display: flex; align-items: center; justify-content: center;}
.yw .yw-section--paper .yw-person__photo {background: #E6E1D7;}
.yw .yw-person__photo img {width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%;}
.yw .yw-person h3 {margin: 0;}
.yw .yw-person__role {margin: 0; color: var(--yw-gold-deep); font-weight: 500; font-size: .95rem;}
.yw .yw-section:not(.yw-section--paper) .yw-person__role {color: var(--yw-gold);}
.yw .yw-person__bio {margin: 0; color: var(--yw-muted-light); font-size: .97rem;}
.yw .yw-section:not(.yw-section--paper) .yw-person__bio {color: var(--yw-muted-dark);}
.yw .yw-method {padding-top: var(--yw-section-y); padding-bottom: var(--yw-section-y);}
.yw .yw-method__layout {display: flex; gap: 4rem; align-items: flex-start;}
.yw .yw-method__visual {flex: 0 0 42%; position: sticky; top: calc(var(--yw-header-h) + 6vh); height: 70vh; display: flex; align-items: center; justify-content: center;}
.yw .yw-method__symbol {width: min(100%, 420px); overflow: visible;}
.yw .yw-method__steps {flex: 1 1 auto;}
.yw .yw-method__step {min-height: 62vh; display: flex; flex-direction: column; justify-content: center; padding: 2rem 0; opacity: .32; transition: opacity .5s var(--yw-ease);}
.yw .yw-method__step.is-active {opacity: 1;}
.yw .yw-method__step .yw-step-n {font-weight: 500; color: var(--yw-gold); font-size: var(--yw-fs-small); margin-bottom: .75rem; display: block;}
.yw .yw-method__step h3 {font-size: var(--yw-fs-h2); font-weight: 300; margin-bottom: 1rem;}
.yw .yw-method__step p {color: var(--yw-muted-dark); font-size: var(--yw-fs-lead); max-width: 40ch;}
.yw .yw-sym-part {fill: transparent; stroke: var(--yw-gold); stroke-width: 1.2; vector-effect: non-scaling-stroke; transition: fill .7s var(--yw-ease);}
.yw .yw-sym-part.is-filled {fill: var(--yw-gold);}
@media (prefers-reduced-motion: reduce) {
.yw .yw-sym-part, .yw .yw-method__step {transition: none;}
}
@media (max-width: 860px) {
.yw .yw-method__layout {flex-direction: column; gap: 1rem;}
.yw .yw-method__visual {position: relative; top: 0; height: auto; flex: none; width: 100%; padding: 1rem 0 2rem;}
.yw .yw-method__symbol {width: 180px;}
.yw .yw-method__step {min-height: 0; opacity: 1; padding: 1.5rem 0; border-top: 1px solid var(--yw-line-dark);}
}
.yw .yw-areas {display: flex; min-height: 640px;}
.yw .yw-area {flex: 1 1 50%; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(2rem, 1rem + 4vw, 5rem); text-decoration: none; color: inherit; transition: flex-grow .7s var(--yw-ease);}
.yw .yw-area--creative {background: var(--yw-black); color: var(--yw-white);}
.yw .yw-area--institutional {background: var(--yw-paper); color: var(--yw-black);}
.yw .yw-areas.is-hovering .yw-area {flex-grow: .7;}
.yw .yw-areas.is-hovering .yw-area.is-active {flex-grow: 1.3;}
.yw .yw-area__bg {position: absolute; inset: 0; pointer-events: none;}
.yw .yw-area--creative .yw-area__bg {background: repeating-linear-gradient(118.5deg, transparent 0 46px, rgba(163,135,83,.14) 46px 47px); opacity: .6; transition: opacity .6s;}
.yw .yw-area--institutional .yw-area__bg {background: linear-gradient(118.5deg, transparent 60%, rgba(3,3,3,.05) 60% 61%, transparent 61%);}
.yw .yw-area.is-active .yw-area__bg {opacity: 1;}
.yw .yw-area__content {position: relative; max-width: 30rem;}
.yw .yw-area h3 {font-size: var(--yw-fs-h2); font-weight: 300; margin-bottom: 1rem;}
.yw .yw-area__text {color: var(--yw-muted-dark); margin-bottom: 1.5rem;}
.yw .yw-area--institutional .yw-area__text {color: var(--yw-muted-light);}
.yw .yw-area--institutional .yw-area-label {color: var(--yw-gold-deep);}
.yw .yw-area__services {display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .6s var(--yw-ease), opacity .4s;}
.yw .yw-area.is-active .yw-area__services, .yw .yw-area:focus-within .yw-area__services {max-height: 260px; opacity: 1;}
.yw .yw-area__services li {border: 1px solid currentColor; padding: .35rem .8rem; font-size: var(--yw-fs-small); opacity: .85;}
.yw .yw-area--creative .yw-area__services li {border-color: var(--yw-line-dark);}
.yw .yw-area--institutional .yw-area__services li {border-color: var(--yw-line-light);}
@media (hover: none), (max-width: 860px) {
.yw .yw-areas {flex-direction: column; min-height: 0;}
.yw .yw-area {min-height: 420px;}
.yw .yw-area__services {max-height: none; opacity: 1;}
}
.yw .yw-proofs {display: flex; flex-wrap: wrap; gap: 0; border-top: 1px solid var(--yw-line-light);}
.yw .yw-proof {flex: 1 1 280px; padding: 2rem 2rem 2rem 0; border-bottom: 1px solid var(--yw-line-light);}
.yw .yw-proof + .yw-proof {padding-left: 2rem; border-left: 1px solid var(--yw-line-light);}
.yw .yw-proof__value {font-size: clamp(3rem, 2rem + 3.5vw, 5rem); font-weight: 300; line-height: 1; letter-spacing: -0.03em; display: block; margin-bottom: .75rem;}
.yw .yw-proof__what {font-weight: 500; margin: 0 0 .25rem;}
.yw .yw-proof__source {color: var(--yw-muted-light); font-size: var(--yw-fs-small); margin: 0;}
@media (max-width: 640px) {
.yw .yw-proof + .yw-proof {padding-left: 0; border-left: 0;}
}
.yw .yw-works {display: flex; flex-wrap: wrap; gap: 2rem 1.5rem;}
.yw .yw-work {flex: 1 1 300px; display: flex; flex-direction: column; text-decoration: none; color: inherit; background: none; border: 0; padding: 0; text-align: left; font: inherit; cursor: pointer;}
.yw .yw-work__media {aspect-ratio: 16 / 10; overflow: hidden; background: var(--yw-surface); margin-bottom: 1.1rem; clip-path: polygon(0 0, 100% 0, 100% 100%, 9% 100%, 0 82%);}
.yw .yw-section--paper .yw-work__media {background: #E6E1D7;}
.yw .yw-work__media img {width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--yw-ease);}
.yw .yw-work:hover .yw-work__media img, .yw .yw-work:focus-visible .yw-work__media img {transform: scale(1.04);}
.yw .yw-work__type {font-size: var(--yw-fs-small); color: var(--yw-gold); font-weight: 500; margin-bottom: .35rem;}
.yw .yw-section--paper .yw-work__type {color: var(--yw-gold-deep);}
.yw .yw-work h3 {margin-bottom: .35rem;}
.yw .yw-work p {color: var(--yw-muted-dark); font-size: .97rem; margin: 0;}
.yw .yw-section--paper .yw-work p {color: var(--yw-muted-light);}
.yw .yw-clients {display: flex; flex-wrap: wrap; gap: 0; border-top: 1px solid var(--yw-line-dark);}
.yw .yw-clients li {flex: 1 1 240px; padding: 1.4rem 1rem 1.4rem 0; border-bottom: 1px solid var(--yw-line-dark); font-size: 1.15rem; font-weight: 300; color: var(--yw-white);}
.yw .yw-clients small {display: block; color: var(--yw-muted-dark); font-size: var(--yw-fs-small);}
.yw .yw-contact {display: flex; flex-wrap: wrap; gap: 3rem 5rem;}
.yw .yw-contact__info {flex: 1 1 320px;}
.yw .yw-contact__info h2 {margin-bottom: 1.5rem; max-width: 11ch;}
.yw .yw-contact__list {margin: 2rem 0;}
.yw .yw-contact__list li {padding: 1rem 0; border-top: 1px solid var(--yw-line-dark); display: flex; flex-direction: column;}
.yw .yw-contact__list span {font-size: var(--yw-fs-small); color: var(--yw-muted-dark);}
.yw .yw-contact__list a, .yw .yw-contact__list address {font-style: normal; font-size: 1.15rem; text-decoration: none;}
.yw .yw-contact__list a:hover {color: var(--yw-gold);}
.yw .yw-contact__form {flex: 1 1 420px;}
.yw .yw-cta {text-align: left;}
.yw .yw-cta h2 {max-width: 14ch; margin-bottom: 1.5rem;}
.yw .yw-page-hero {padding: calc(var(--yw-header-h) + clamp(4rem, 3rem + 6vw, 9rem)) var(--yw-gutter) clamp(3.5rem, 2rem + 5vw, 7rem); position: relative; overflow: hidden;}
.yw .yw-page-hero h1 {max-width: 14ch; margin-bottom: 1.5rem;}
.yw .yw-page-hero .yw-lead {max-width: 52ch;}
.yw .yw-page-hero--paper {background: var(--yw-paper); color: var(--yw-black);}
.yw .yw-page-hero--paper .yw-lead {color: var(--yw-muted-light);}
.yw .yw-page-hero__mark {position: absolute; right: -4%; bottom: -12%; width: min(46vw, 560px); color: var(--yw-gold); opacity: .09; pointer-events: none;}
.yw .yw-page-hero--paper .yw-page-hero__mark {color: var(--yw-black); opacity: .05;}
.yw .yw-breadcrumb {font-size: var(--yw-fs-small); margin-bottom: 2rem; color: var(--yw-muted-dark);}
.yw .yw-breadcrumb a {color: inherit;}
.yw .yw-page-hero--paper .yw-breadcrumb {color: var(--yw-muted-light);}
.yw .yw-services {border-top: 1px solid var(--yw-line-dark);}
.yw .yw-section--paper .yw-services {border-top-color: var(--yw-line-light);}
.yw .yw-service {display: flex; flex-wrap: wrap; gap: 1rem 3rem; padding: 2.5rem 0; border-bottom: 1px solid var(--yw-line-dark);}
.yw .yw-section--paper .yw-service {border-bottom-color: var(--yw-line-light);}
.yw .yw-service__title {flex: 1 1 300px;}
.yw .yw-service__title h3 {font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.4rem); font-weight: 300;}
.yw .yw-service__body {flex: 1.4 1 380px;}
.yw .yw-service__body p {color: var(--yw-muted-dark);}
.yw .yw-section--paper .yw-service__body p {color: var(--yw-muted-light);}
.yw .yw-service__includes {display: flex; flex-wrap: wrap; gap: .5rem;}
.yw .yw-service__includes li {font-size: var(--yw-fs-small); padding: .3rem .75rem; border: 1px solid var(--yw-line-dark); color: var(--yw-muted-dark);}
.yw .yw-section--paper .yw-service__includes li {border-color: var(--yw-line-light); color: var(--yw-muted-light);}
.yw .yw-packages {display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: stretch;}
.yw .yw-package {flex: 1 1 280px; display: flex; flex-direction: column; gap: 1rem; padding: 2rem; border: 1px solid var(--yw-line-light); background: var(--yw-white);}
.yw .yw-package--featured {background: var(--yw-black); color: var(--yw-white); border-color: var(--yw-black);}
.yw .yw-package h3 {font-size: 1.6rem; font-weight: 300;}
.yw .yw-package__for {color: var(--yw-muted-light); margin: 0;}
.yw .yw-package--featured .yw-package__for {color: var(--yw-muted-dark);}
.yw .yw-package ul {flex: 1;}
.yw .yw-package li {padding: .55rem 0; border-top: 1px solid var(--yw-line-light); font-size: .97rem;}
.yw .yw-package--featured li {border-top-color: var(--yw-line-dark);}
.yw .yw-package__price {font-size: 1.1rem; font-weight: 500; margin: 0;}
.yw .yw-todo {display: inline-block; font-size: .72rem; font-weight: 500; letter-spacing: .02em; background: #FFE8A3; color: #3D3000; padding: .1rem .45rem; vertical-align: middle;}
.yw .yw-process {display: flex; flex-wrap: wrap; gap: 0; counter-reset: step;}
.yw .yw-process__item {flex: 1 1 220px; padding: 1.75rem 1.5rem 1.75rem 0; border-top: 1px solid var(--yw-gold); counter-increment: step;}
.yw .yw-process__item::before {content: counter(step); display: block; font-size: 2.5rem; font-weight: 300; color: var(--yw-gold); line-height: 1; margin-bottom: 1rem;}
.yw .yw-process h3 {font-size: 1.3rem; margin-bottom: .5rem;}
.yw .yw-process p {color: var(--yw-muted-dark); font-size: .97rem; margin: 0;}
.yw .yw-section--paper .yw-process p {color: var(--yw-muted-light);}
.yw .yw-section--paper .yw-process__item::before {color: var(--yw-gold-deep);}
.yw .yw-principles {display: flex; flex-wrap: wrap; gap: 2.5rem 3rem;}
.yw .yw-principle {flex: 1 1 260px;}
.yw .yw-principle h3 {font-size: 1.35rem; margin: 1rem 0 .5rem;}
.yw .yw-principle p {color: var(--yw-muted-light); margin: 0;}
.yw .yw-filter {display: flex; flex-wrap: wrap; gap: .5rem;}
.yw .yw-filter button {font: 500 .92rem/1 var(--yw-font-sans); padding: .75rem 1.1rem; min-height: 44px; background: transparent; color: var(--yw-white); border: 1px solid var(--yw-line-dark); cursor: pointer;}
.yw .yw-filter button[aria-pressed="true"] {background: var(--yw-gold); color: var(--yw-black); border-color: var(--yw-gold);}
.yw .yw-filter button:hover {border-color: var(--yw-gold);}
.yw .yw-work[hidden] {display: none;}
.yw .yw-portfolio-grid {display: flex; flex-wrap: wrap; gap: 3rem 1.5rem;}
.yw .yw-portfolio-grid .yw-work {flex: 1 1 340px; max-width: calc(50% - .75rem);}
@media (min-width: 1100px) {
.yw .yw-portfolio-grid .yw-work {max-width: calc(33.333% - 1rem);}
}
@media (max-width: 720px) {
.yw .yw-portfolio-grid .yw-work {max-width: 100%;}
}
.yw .yw-others {color: var(--yw-muted-dark);}
.yw .yw-dialog {border: 0; padding: 0; max-width: min(960px, 92vw); width: 100%; background: var(--yw-black); color: var(--yw-white);}
.yw .yw-dialog::backdrop {background: rgba(3,3,3,.82);}
.yw .yw-dialog__media img {width: 100%; max-height: 62vh; object-fit: contain; background: var(--yw-surface);}
.yw .yw-dialog__body {padding: 2rem; display: flex; flex-wrap: wrap; gap: 1rem 2.5rem;}
.yw .yw-dialog__body > div {flex: 1 1 300px;}
.yw .yw-dialog__close {position: absolute; top: .75rem; right: .75rem; width: 44px; height: 44px; border: 0; background: var(--yw-black); color: var(--yw-white); font-size: 1.6rem; cursor: pointer;}
.yw .yw-dialog__close:hover {color: var(--yw-gold);}
.yw .yw-prose {max-width: 70ch;}
.yw .yw-prose h2 {font-size: 1.6rem; font-weight: 400; margin: 2.5rem 0 1rem;}
@media (max-width: 640px) {
.yw .yw-person__photo {aspect-ratio: 1 / 1;}
}
.yw .yw-choices {border: 0; margin: 0; padding: 0; min-width: 0;}
.yw .yw-choices legend {float: left; width: 100%; padding: 0; margin-bottom: .75rem; font-size: var(--yw-fs-small); color: var(--yw-muted-dark);}
.yw .yw-choices__list {clear: both; display: flex; flex-wrap: wrap; gap: .5rem;}
.yw .yw-choice {position: relative; display: inline-flex;}
.yw .yw-choice input {position: absolute; opacity: 0; width: 1px; height: 1px;}
.yw .yw-choice span {display: inline-flex; align-items: center; min-height: 44px; padding: .55rem 1rem; cursor: pointer; border: 1px solid var(--yw-line-dark); color: var(--yw-muted-dark); font-size: .92rem; transition: background-color .2s, color .2s, border-color .2s;}
.yw .yw-choice:hover span {border-color: var(--yw-gold); color: var(--yw-white);}
.yw .yw-choice input:checked + span {background: var(--yw-gold); border-color: var(--yw-gold); color: var(--yw-black);}
.yw .yw-choice input:focus-visible + span {outline: 2px solid var(--yw-gold); outline-offset: 2px;}
.yw .yw-mission {margin: 0; padding: .25rem 0 .25rem 2rem; border-left: 2px solid var(--yw-gold-deep);}
.yw .yw-mission p {margin: 0; font-size: clamp(1.3rem, 1.1rem + .8vw, 1.8rem); font-weight: 300; font-style: italic; line-height: 1.45;}
.yw .yw-referent {display: flex; flex-wrap: wrap; gap: 3rem 5rem; align-items: center;}
.yw .yw-team--single {flex: 0 1 340px;}
.yw .yw-referent__text {flex: 1 1 380px;}
.yw .yw-referent__text h2 {max-width: 14ch;}
.yw .yw-page-hero--paper .yw-btn--ghost .elementor-button {color: var(--yw-black); border-color: var(--yw-black);}
.yw .yw-page-hero--paper .yw-btn--ghost .elementor-button:hover {background: var(--yw-black); color: var(--yw-white);}
.yw .yw-page-hero--paper .yw-btn:not(.yw-btn--ghost) .elementor-button:hover {background: var(--yw-black); border-color: var(--yw-black); color: var(--yw-white);}
.yw .yw-contact__list .yw-contact__value {font-size: 1.15rem; color: var(--yw-white);}
.yw .yw-crossmedia__intro {display: flex; flex-wrap: wrap; gap: 1.5rem 5rem; align-items: flex-end; justify-content: space-between;}
.yw .yw-crossmedia__head {flex: 1 1 420px;}
.yw .yw-crossmedia__head h2 {max-width: 12ch; margin: 0;}
.yw .yw-crossmedia__lead {flex: 0 1 480px; margin: 0;}
.yw .yw-channels {display: flex; flex-wrap: wrap; border-top: 1px solid var(--yw-gold);}
.yw .yw-channel {flex: 1 1 240px; padding: 2rem 1.75rem 2rem 0; display: flex; flex-direction: column; gap: .75rem; position: relative;}
.yw .yw-channel::before {content: ""; position: absolute; top: -5px; left: 0; width: 9px; height: 9px; background: var(--yw-gold); transform: rotate(45deg);}
.yw .yw-channel__n {font-size: var(--yw-fs-small); font-weight: 500; color: var(--yw-gold); margin-top: .5rem;}
.yw .yw-channel h3 {font-size: 1.45rem; font-weight: 400; margin: 0;}
.yw .yw-channel p {color: var(--yw-muted-dark); margin: 0; font-size: .98rem;}
.yw .yw-channel__tags {display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .25rem;}
.yw .yw-channel__tags li {font-size: .8rem; padding: .25rem .6rem; border: 1px solid var(--yw-line-dark); color: var(--yw-muted-dark);}
.yw .yw-channel__tags li.is-key {border-color: var(--yw-gold); color: var(--yw-gold);}
@media (max-width: 720px) {
.yw .yw-channels {border-top: 0;}
.yw .yw-channel {padding: 1.5rem 0 1.5rem 1.5rem; border-left: 1px solid var(--yw-gold);}
.yw .yw-channel::before {top: 1.9rem; left: -5px;}
.yw .yw-channel__n {margin-top: 0;}
}
.yw .yw-crossmedia__extra {display: flex; flex-wrap: wrap; gap: 1rem 3rem; align-items: baseline; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); border: 1px solid var(--yw-line-dark); background: var(--yw-black);}
.yw .yw-crossmedia__extra .yw-area-label {flex: 0 0 auto; margin: 0;}
.yw .yw-crossmedia__extra-text {flex: 1 1 420px;}
.yw .yw-crossmedia__extra h3 {font-size: clamp(1.4rem, 1.2rem + .9vw, 2rem); font-weight: 300; margin: 0 0 .75rem;}
.yw .yw-crossmedia__extra p {color: var(--yw-muted-dark); margin: 0; max-width: 62ch;}
.yw .yw-clients li {flex-grow: 0; width: 20%;}
@media (max-width: 1100px) {
.yw .yw-clients li {width: 25%;}
}
@media (max-width: 760px) {
.yw .yw-clients li {width: 50%;}
}
.yw .yw-team {flex-wrap: nowrap;}
.yw .yw-team > .yw-person {flex: 1 1 0; min-width: 0;}
@media (max-width: 640px) {
.yw .yw-team {flex-direction: column; gap: 2.5rem;}
.yw .yw-person__photo {aspect-ratio: 4 / 5;}
}
.yw .yw-works {flex-wrap: nowrap;}
.yw .yw-works > .yw-work {flex: 1 1 0; min-width: 0;}
@media (max-width: 640px) {
.yw .yw-works {flex-direction: column; gap: 2.5rem;}
}


/* =====================================================================
   PONTE VERSO ELEMENTOR
   Il resto del file è il CSS del prototipo, con ogni regola limitata alle
   pagine del nuovo sito (classe "yw" sul body). Qui sotto: gli adattamenti
   al markup generato da Elementor (contenitori .e-con, widget con wrapper).
   ===================================================================== */

/* Contenitori: niente padding e spaziature di default, li decidono le classi yw-* */
body.yw {
  --container-default-padding-top: 0px; --container-default-padding-right: 0px;
  --container-default-padding-bottom: 0px; --container-default-padding-left: 0px;
  --widgets-spacing: 0px 0px; --widgets-spacing-row: 0px; --widgets-spacing-column: 0px;
}
body.yw .e-con { min-width: 0; }
body.yw .site-main, body.yw .page-content { margin: 0; padding: 0; max-width: none; }

/* Titoli e testi: ereditano colore e interlinea dalla sezione */
.yw .elementor-heading-title { color: inherit; }
.yw .elementor-widget-text-editor { color: inherit; }
.yw .elementor-widget-text-editor .elementor-widget-container > :last-child:not([class]) { margin-bottom: 0; }
.yw .yw-work .yw-work__type { margin-bottom: .35rem; }

/* Utility che sostituiscono gli stili in linea del prototipo */
.yw .yw-gap-0 { gap: 0; }
.yw .yw-gap-25 { gap: 2.5rem; }
.yw .yw-gap-3 { gap: 3rem; }
.yw .yw-gap-35 { gap: 3.5rem; }
.yw .yw-gap-5 { gap: 5rem; }
.yw .yw-pt-0 { padding-top: 0; }
.yw .yw-pt-2 { padding-top: 2rem; }
.yw .yw-pb-3 { padding-bottom: 3rem; }
.yw .yw-mt-1 { margin-top: 1rem; }
.yw .yw-mb-15 { margin-bottom: 1.5rem; }
.yw .yw-muted-l { color: var(--yw-muted-light); }
.yw .yw-muted-d { color: var(--yw-muted-dark); }
.yw .yw-row--center { align-items: center; }

/* Testata di sezione: i figli flessibili sono i wrapper dei widget */
.yw .yw-section-head > .elementor-widget-heading { flex: 1 1 460px; }
.yw .yw-section-head > .elementor-widget-text-editor { flex: 0 1 420px; }

/* Bottoni (widget Pulsante) */
.yw .yw-btn .elementor-button-content-wrapper { gap: .6rem; }
.yw .yw-btn .elementor-button { border-radius: 0; box-shadow: none; }
.yw .yw-area--institutional .yw-btn--ghost .elementor-button { color: var(--yw-black); border-color: var(--yw-black); }
.yw .yw-area--institutional .yw-btn--ghost .elementor-button:hover { background: var(--yw-black); color: var(--yw-white); }
.yw .yw-checkup__goal .yw-btn .elementor-button:hover { background: var(--yw-white); border-color: var(--yw-white); color: var(--yw-black); }

/* Immagini nei riquadri: riempiono il riquadro */
.yw .yw-person__photo > .elementor-widget-container,
.yw .yw-work__media > .elementor-widget-container { width: 100%; height: 100%; }
.yw .yw-person__photo img, .yw .yw-work__media img { max-width: none; }

/* Apertura della home */
.yw .yw-hero__visual > .elementor-widget-container { position: absolute; inset: 0; }
.yw .yw-hero__payoff p { margin: 0; }

/* Persone: icona LinkedIn (widget Icone social) */
.yw .yw-person > .yw-person__social { align-self: flex-start; }
.yw .yw-person__social .elementor-social-icons-wrapper { display: flex; }
.yw .yw-person__social .elementor-social-icon {
  --e-social-icon-icon-color: currentColor;
  width: 40px; height: 40px; padding: 0; display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: 1px solid var(--yw-gold-deep); border-radius: 0; color: var(--yw-gold-deep);
  font-size: 1rem; transition: background-color .2s, color .2s;
}
.yw .yw-person__social .elementor-social-icon i { color: currentColor; }
.yw .yw-person__social .elementor-social-icon svg { width: 1em; height: 1em; fill: currentColor; }
.yw .yw-person__social .elementor-social-icon:hover { background: var(--yw-gold-deep); color: var(--yw-white); }
.yw .yw-section:not(.yw-section--paper) .yw-person__social .elementor-social-icon { border-color: var(--yw-gold); color: var(--yw-gold); }
.yw .yw-section:not(.yw-section--paper) .yw-person__social .elementor-social-icon:hover { background: var(--yw-gold); color: var(--yw-black); }

/* Check-up: riquadro obiettivo */
.yw .yw-checkup__goal > .yw-goal__label { flex-basis: 100%; }
.yw .yw-checkup__goal > .yw-goal__text { flex: 1 1 380px; }

/* Pacchetti: l'elenco occupa lo spazio libero, così i bottoni restano allineati */
.yw .yw-package > .yw-package__list { flex: 1; }

/* Portfolio: schede cliccabili e testo di dettaglio nascosto */
.yw .yw-portfolio-grid .yw-work { cursor: pointer; }
.yw .yw-portfolio-grid .yw-work:focus-visible { outline: 2px solid var(--yw-gold); outline-offset: 4px; }
.yw .yw-work__detail { display: none !important; }
.yw .yw-dialog__body a { color: var(--yw-gold); }
.yw .yw-dialog__body p { margin: 0 0 .75rem; }

/* Comunicazione politica: widget Interruttore (Toggle) in tono sommesso */
.yw .yw-more { border-top: 1px solid var(--yw-line-dark); padding-top: 1rem; }
.yw .yw-more .elementor-toggle-item { border: 0; }
.yw .yw-more .elementor-tab-title {
  border: 0; padding: .75rem 0; min-height: 44px; display: flex; align-items: center; gap: .5rem;
  font: 400 var(--yw-fs-small) var(--yw-font-sans); color: var(--yw-muted-dark); cursor: pointer;
}
.yw .yw-more .elementor-tab-title a { color: inherit; }
.yw .yw-more .elementor-toggle-icon { color: var(--yw-gold); }
.yw .yw-more .elementor-toggle-icon svg { fill: var(--yw-gold); width: .8em; }
.yw .yw-more .elementor-tab-content { border: 0; padding: 0 0 1rem; color: var(--yw-muted-dark); font-size: var(--yw-fs-small); }

/* Mappa: in scala di grigi, coerente con il nero del sito */
.yw .yw-map iframe { filter: grayscale(1) invert(.92) contrast(.9); border: 1px solid var(--yw-line-dark); }
.yw .yw-map { margin-top: 1.5rem; }

/* Check-up: dimensioni e riquadro obiettivo */
.yw .yw-checkup__dims {display: flex; flex-wrap: wrap; gap: .5rem;}
.yw .yw-checkup__dims li {font-family: var(--yw-font-caps); font-weight: 700; font-size: var(--yw-fs-label); letter-spacing: .14em; padding: .5rem 1rem; border: 1px solid var(--yw-gold-deep); color: var(--yw-gold-deep);}
.yw .yw-checkup__goal {display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 3rem; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); background: var(--yw-black); color: var(--yw-white); clip-path: polygon(0 0, 100% 0, 100% calc(100% - 28px), calc(100% - 28px) 100%, 0 100%);}
.yw .yw-checkup__goal .yw-area-label {flex-basis: 100%; margin: 0; color: var(--yw-gold);}
.yw .yw-checkup__goal p {flex: 1 1 380px; margin: 0; font-size: var(--yw-fs-lead); line-height: 1.5;}

/* Modulo contatti (Fluent Forms, form "Y Wave – Contatti") */
.yw .fluentform .frm-fluent-form fieldset { display: flex; flex-direction: column; gap: 1.25rem; }
.yw .fluentform .ff-el-group { margin: 0; }
.yw .fluentform .ff-t-container { display: flex; flex-wrap: wrap; gap: 1.25rem; margin: 0; }
.yw .fluentform .ff-t-container .ff-t-cell { flex: 1 1 220px !important; padding: 0 !important; min-width: 0; }
.yw .fluentform .ff-el-input--label { margin-bottom: .4rem; }
.yw .fluentform .ff-el-input--label label { font-family: var(--yw-font-sans); font-size: var(--yw-fs-small); font-weight: 400; color: var(--yw-muted-dark); }
.yw .fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label:after { color: var(--yw-gold); }
.yw .fluentform .ff-el-form-control {
  font: inherit; font-size: var(--yw-fs-body); color: var(--yw-white); background: transparent;
  border: 0; border-bottom: 1px solid var(--yw-line-dark); border-radius: 0; padding: .7rem 0; box-shadow: none; height: auto; min-height: 48px;
}
.yw .fluentform textarea.ff-el-form-control { min-height: 130px; resize: vertical; }
.yw .fluentform .ff-el-form-control:focus { outline: none; border-bottom-color: var(--yw-gold); background: transparent; color: var(--yw-white); box-shadow: none; }
.yw .fluentform .ff-el-is-error .ff-el-form-control { border-bottom-color: #E4574F; }
.yw .fluentform .error, .yw .fluentform .text-danger { color: #F08A84; font-size: var(--yw-fs-small); line-height: 1.4; margin-top: .35rem; }
/* Scelte multiple come etichette selezionabili */
.yw .fluentform .yw-ff-choices .ff-el-input--content { display: flex; flex-wrap: wrap; gap: .5rem; }
.yw .fluentform .yw-ff-choices .ff-el-form-check { position: relative; display: inline-flex; margin: 0 !important; padding: 0; }
.yw .fluentform .yw-ff-choices .ff-el-form-check-label { position: relative; display: inline-flex; margin: 0; padding: 0; cursor: pointer; }
.yw .fluentform .yw-ff-choices .ff-el-form-check-input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.yw .fluentform .yw-ff-choices .ff-el-form-check-label span {
  display: inline-flex; align-items: center; min-height: 44px; padding: .55rem 1rem;
  border: 1px solid var(--yw-line-dark); color: var(--yw-muted-dark); font-size: .92rem; line-height: 1.3; transition: background-color .2s, color .2s, border-color .2s;
}
.yw .fluentform .yw-ff-choices .ff-el-form-check-label:hover span { border-color: var(--yw-gold); color: var(--yw-white); }
.yw .fluentform .yw-ff-choices .ff-el-form-check-input:checked + span { background: var(--yw-gold); border-color: var(--yw-gold); color: var(--yw-black); }
.yw .fluentform .yw-ff-choices .ff-el-form-check-input:focus-visible + span { outline: 2px solid var(--yw-gold); outline-offset: 2px; }
/* Consenso privacy */
.yw .fluentform .ff-el-tc .ff-el-form-check-label { display: flex; gap: .75rem; align-items: flex-start; font-size: var(--yw-fs-small); color: var(--yw-muted-dark); line-height: 1.5; }
.yw .fluentform .ff-el-tc input { margin-top: .2rem; width: 18px; height: 18px; accent-color: var(--yw-gold); }
.yw .fluentform .ff-el-tc a { color: var(--yw-gold); }
/* Invio: stesso aspetto del bottone principale */
.yw .fluentform .ff-btn-submit.yw-ff-submit,
.yw .fluentform .ff_btn_style.yw-ff-submit {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .85rem 2rem .85rem 1.6rem;
  font: 500 .95rem/1 var(--yw-font-sans); letter-spacing: .02em; border: 1px solid var(--yw-gold); border-radius: 0;
  color: var(--yw-black); background: var(--yw-gold); clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
  box-shadow: none; opacity: 1; transition: background-color .25s var(--yw-ease), color .25s var(--yw-ease); cursor: pointer;
}
.yw .fluentform .ff-btn-submit.yw-ff-submit:hover { background: var(--yw-white); border-color: var(--yw-white); color: var(--yw-black); opacity: 1; }
.yw .ff-message-success { margin: 0; padding: 1rem 1.25rem; border: 1px solid var(--yw-gold); background: transparent; color: var(--yw-white); box-shadow: none; }
.yw .ff-errors-in-stack { color: #F08A84; }

/* =====================================================================
   HEADER E FOOTER (modelli Ultimate Addons – Header Footer Builder)
   ===================================================================== */
.yw .yw-skip {position: absolute; left: 1rem; top: -100px; z-index: 200; background: var(--yw-gold); color: var(--yw-black); padding: .6rem 1rem; text-decoration: none;}
.yw .yw-skip:focus {top: 1rem;}
.yw .yw-header {position: fixed; inset: 0 0 auto 0; z-index: 100; height: var(--yw-header-h); padding: 0 var(--yw-gutter); display: flex; align-items: center; transition: background-color .3s var(--yw-ease), border-color .3s; border-bottom: 1px solid transparent;}
.yw .yw-header::before {content: ""; position: absolute; inset: 0; z-index: -1; background: transparent; transition: background-color .3s var(--yw-ease);}
.yw .yw-header.is-scrolled, .yw .yw-header--solid {border-bottom-color: var(--yw-line-dark);}
.yw .yw-header.is-scrolled::before, .yw .yw-header--solid::before {background: rgba(3,3,3,.94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);}
body.yw.yw-menu-open .yw-header::before {background: var(--yw-black);}
.yw .yw-header__inner {width: 100%; max-width: var(--yw-content); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 2rem;}
.yw .yw-logo {display: flex; align-items: center; gap: .8rem; color: var(--yw-white); text-decoration: none;}
.yw .yw-logo__symbol {width: 34px;}
.yw .yw-logo__word {width: 104px;}
.yw .yw-nav {display: flex; align-items: center; gap: 2rem;}
.yw .yw-nav__list {display: flex; align-items: center; gap: 1.75rem;}
.yw .yw-nav__link {font-size: .95rem; text-decoration: none; color: var(--yw-white); padding: .5rem 0; border-bottom: 1px solid transparent; background: none; border-top: 0; border-left: 0; border-right: 0; font-family: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: .35rem;}
.yw .yw-nav__link:hover, .yw .yw-nav__link[aria-current="page"] {border-bottom-color: var(--yw-gold);}
.yw .yw-nav__item {position: relative;}
.yw .yw-nav__caret {width: 9px; transition: transform .2s;}
.yw .yw-submenu {position: absolute; top: calc(100% + 12px); left: -1.25rem; min-width: 300px; background: var(--yw-black); border: 1px solid var(--yw-line-dark); padding: .5rem 0; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .2s, transform .2s, visibility .2s;}
.yw .yw-nav__item.is-open .yw-submenu {opacity: 1; visibility: visible; transform: none;}
.yw .yw-nav__item.is-open .yw-nav__caret {transform: rotate(180deg);}
.yw .yw-submenu a {display: block; padding: .8rem 1.25rem; text-decoration: none;}
.yw .yw-submenu a:hover {background: var(--yw-surface);}
.yw .yw-submenu small {display: block; color: var(--yw-muted-dark); font-size: var(--yw-fs-small);}
.yw .yw-nav__cta {padding-top: .7rem; padding-bottom: .7rem; min-height: 42px;}
.yw .yw-burger {display: none; width: 48px; height: 48px; background: none; border: 0; color: var(--yw-white); cursor: pointer; padding: 12px; margin-right: -12px;}
.yw .yw-burger span {display: block; height: 1px; background: currentColor; margin: 6px 0; transition: transform .3s var(--yw-ease), opacity .2s;}
.yw .yw-burger[aria-expanded="true"] span:nth-child(1) {transform: translateY(7px) rotate(-61.5deg);}
.yw .yw-burger[aria-expanded="true"] span:nth-child(2) {opacity: 0;}
.yw .yw-burger[aria-expanded="true"] span:nth-child(3) {transform: translateY(-7px) rotate(61.5deg);}
@media (max-width: 1024px) {
.yw .yw-burger {display: block;}
.yw .yw-nav {position: fixed; inset: var(--yw-header-h) 0 0 0; background: var(--yw-black); flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 2rem; padding: 2rem var(--yw-gutter) 3rem; overflow-y: auto; opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s;}
.yw .yw-nav.is-open {opacity: 1; visibility: visible;}
.yw .yw-nav__list {flex-direction: column; align-items: stretch; gap: 0;}
.yw .yw-nav__list > li {border-bottom: 1px solid var(--yw-line-dark);}
.yw .yw-nav__link {font-size: 1.6rem; font-weight: 300; padding: 1rem 0; width: 100%; justify-content: space-between; border-bottom: 0;}
.yw .yw-submenu {position: static; opacity: 1; visibility: visible; transform: none; border: 0; min-width: 0; display: none; padding: 0 0 1rem;}
.yw .yw-nav__item.is-open .yw-submenu {display: block;}
.yw .yw-submenu a {padding: .6rem 0;}
.yw .yw-nav__cta {align-self: flex-start;}
body.yw.yw-menu-open {overflow: hidden;}
}
.yw .yw-footer {background: var(--yw-black); border-top: 1px solid var(--yw-line-dark); padding: 4.5rem var(--yw-gutter) 2rem;}
.yw .yw-footer__top {display: flex; flex-wrap: wrap; gap: 3rem; justify-content: space-between;}
.yw .yw-footer__brand {flex: 1 1 280px; max-width: 360px;}
.yw .yw-footer__logo {width: 150px; color: var(--yw-white); margin-bottom: 1.25rem;}
.yw .yw-footer__payoff {font-family: var(--yw-font-caps); font-weight: 700; color: var(--yw-gold); letter-spacing: .08em; font-size: .9rem; margin: 0 0 .35rem;}
.yw .yw-footer__sub {color: var(--yw-muted-dark); font-size: var(--yw-fs-small); margin: 0;}
.yw .yw-footer__col {flex: 0 1 220px;}
.yw .yw-footer__col h2 {font-size: 1rem; font-weight: 500; letter-spacing: 0; margin-bottom: 1rem; color: var(--yw-gold);}
.yw .yw-footer__col li {margin-bottom: .5rem;}
.yw .yw-footer__col a {text-decoration: none; color: var(--yw-muted-dark);}
.yw .yw-footer__col a:hover {color: var(--yw-white);}
.yw .yw-footer__col address {font-style: normal; color: var(--yw-muted-dark); line-height: 1.7;}
.yw .yw-footer__bottom {margin-top: 3.5rem; padding-top: 1.5rem; border-top: 1px solid var(--yw-line-dark); display: flex; flex-wrap: wrap; gap: 1rem 2rem; justify-content: space-between; color: var(--yw-muted-dark); font-size: var(--yw-fs-small);}
.yw .yw-footer__bottom a {color: var(--yw-muted-dark);}


/* Bottoni scritti a mano nei widget HTML (es. "Parliamo del tuo progetto" nel menu) */
.yw a.yw-btn {display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 48px; padding: .85rem 2rem .85rem 1.6rem; font: 500 .95rem/1 var(--yw-font-sans); letter-spacing: .02em; text-decoration: none; border: 1px solid var(--yw-gold); color: var(--yw-black); background: var(--yw-gold); clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%); transition: background-color .25s var(--yw-ease), color .25s var(--yw-ease);}
.yw a.yw-btn:hover {background: var(--yw-white); border-color: var(--yw-white); color: var(--yw-black);}
.yw a.yw-btn.yw-nav__cta {padding-top: .7rem; padding-bottom: .7rem; min-height: 42px;}
/* Modello header: il widget HTML non occupa spazio (l'header è fisso) */
.yw .yw-site-header, .yw .yw-site-header > .elementor-widget-container { min-height: 0; }
/* I contenitori Elementor usano ::before per lo strato di sfondo: qui torna a essere il numero del passaggio */
.yw .yw-process__item::before { position: static; width: auto; height: auto; opacity: 1; border: 0; mix-blend-mode: normal; }
.yw .yw-timeline__item::before, .yw .yw-channel::before { opacity: 1; mix-blend-mode: normal; }
/* Con la barra di amministrazione di WordPress (solo utenti collegati) l'header scende sotto la barra */
body.yw.admin-bar .yw-header { top: 32px; }
@media (max-width: 1024px) { body.yw.admin-bar .yw-nav { top: calc(var(--yw-header-h) + 32px); } }
@media (max-width: 782px) { body.yw.admin-bar .yw-header { top: 46px; } body.yw.admin-bar .yw-nav { top: calc(var(--yw-header-h) + 46px); } }
/* Sottomenu "Servizi" su desktop */
@media (min-width: 1025px) {
  /* Striscia invisibile che copre lo spazio tra la voce e la tendina: passando col mouse non si chiude */
  .yw .yw-submenu::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
  /* Se il JavaScript non parte, la tendina si apre comunque al passaggio del mouse o con la tastiera */
  html:not(.yw-js) .yw .yw-nav__item:hover .yw-submenu,
  html:not(.yw-js) .yw .yw-nav__item:focus-within .yw-submenu { opacity: 1; visibility: visible; transform: none; }
}
/* Menu mobile senza JavaScript: casella nascosta + etichetta con le tre linee */
.yw .yw-menu-check, .yw .yw-burger.yw-burger--nojs { display: none; }
@media (max-width: 1024px) {
  html:not(.yw-js) .yw .yw-burger[data-yw-burger] { display: none; }
  html:not(.yw-js) .yw .yw-burger.yw-burger--nojs { display: block; }
  html:not(.yw-js) .yw .yw-menu-check { display: block; position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
  html:not(.yw-js) .yw .yw-menu-check:focus-visible ~ .yw-burger--nojs { outline: 2px solid var(--yw-gold); outline-offset: 2px; }
  html:not(.yw-js) .yw .yw-menu-check:checked ~ .yw-nav { opacity: 1; visibility: visible; }
  html:not(.yw-js) .yw .yw-menu-check:checked ~ .yw-burger--nojs span:nth-child(1) { transform: translateY(7px) rotate(-61.5deg); }
  html:not(.yw-js) .yw .yw-menu-check:checked ~ .yw-burger--nojs span:nth-child(2) { opacity: 0; }
  html:not(.yw-js) .yw .yw-menu-check:checked ~ .yw-burger--nojs span:nth-child(3) { transform: translateY(-7px) rotate(61.5deg); }
  html:not(.yw-js) .yw .yw-submenu { display: block; }
  html:not(.yw-js) .yw .yw-nav__caret { display: none; }
}
/* Pulsante WhatsApp (Joinchat): nascosto quando è aperto il menu mobile */
body.yw.yw-menu-open .joinchat { display: none !important; }
/* Bottoni "secondari" scritti a mano (pagina 404) */
.yw a.yw-btn.yw-btn--ghost { clip-path: none; padding-right: 1.6rem; background: transparent; color: var(--yw-white); border-color: rgba(255,255,255,.4); }
.yw a.yw-btn.yw-btn--ghost:hover { background: var(--yw-white); color: var(--yw-black); }
/* Pagina 404: tutta l'altezza dello schermo */
.yw .yw-404 .yw-page-hero { min-height: 70vh; display: flex; align-items: center; }
/* Pagine di testo senza Elementor (Privacy, Cookie Policy): stessa veste delle pagine interne */
body.yw:not(.elementor-page):not(.error404) .site-main { max-width: calc(var(--yw-content) + 2 * var(--yw-gutter)); margin: 0 auto; padding: calc(var(--yw-header-h) + clamp(3rem, 2rem + 4vw, 6rem)) var(--yw-gutter) var(--yw-section-y); }
body.yw:not(.elementor-page):not(.error404) .page-header { margin: 0 0 2.5rem; padding: 0; }
body.yw:not(.elementor-page):not(.error404) .page-header .entry-title { font-size: var(--yw-fs-h2); max-width: 18ch; margin: 0; }
body.yw:not(.elementor-page):not(.error404) .page-content { max-width: 75ch; color: var(--yw-muted-dark); }
body.yw:not(.elementor-page):not(.error404) .page-content h2 { font-size: 1.6rem; font-weight: 400; color: var(--yw-white); margin: 2.75rem 0 1rem; }
body.yw:not(.elementor-page):not(.error404) .page-content h3 { font-size: 1.15rem; font-weight: 500; color: var(--yw-white); margin: 1.75rem 0 .5rem; }
body.yw:not(.elementor-page):not(.error404) .page-content p { max-width: none; }
body.yw:not(.elementor-page):not(.error404) .page-content a { color: var(--yw-gold); }
body.yw:not(.elementor-page):not(.error404) .page-content ul { list-style: disc; padding-left: 1.25rem; margin: 0 0 1em; }
body.yw:not(.elementor-page):not(.error404) .page-content ol { list-style: decimal; padding-left: 1.25rem; margin: 0 0 1em; }
body.yw:not(.elementor-page):not(.error404) .page-content li { margin-bottom: .4em; }
body.yw:not(.elementor-page):not(.error404) .page-content strong { color: var(--yw-white); font-weight: 500; }
body.yw:not(.elementor-page):not(.error404) .page-content table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.5rem; font-size: var(--yw-fs-small); }
body.yw:not(.elementor-page):not(.error404) .page-content th, body.yw:not(.elementor-page):not(.error404) .page-content td { text-align: left; padding: .6rem .75rem; border-bottom: 1px solid var(--yw-line-dark); vertical-align: top; }
body.yw:not(.elementor-page):not(.error404) .page-content .yw-doc-date { font-size: var(--yw-fs-small); color: var(--yw-gold); }
/* Banner dei cookie (Complianz): font e dettagli coerenti con il sito */
body.yw .cmplz-cookiebanner, body.yw .cmplz-cookiebanner .cmplz-btn { font-family: var(--yw-font-sans); }
body.yw .cmplz-cookiebanner .cmplz-title { font-family: var(--yw-font-caps); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: 12px; color: var(--yw-gold); }
body.yw .cmplz-cookiebanner .cmplz-message { font-size: 14px; }
body.yw .cmplz-cookiebanner .cmplz-categories .cmplz-category { background-color: rgba(255,255,255,.05); }
body.yw .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-always-active { color: var(--yw-gold); }
body.yw .cmplz-cookiebanner .cmplz-buttons .cmplz-btn { font-size: 14px; font-weight: 500; }
body.yw .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:hover { background-color: var(--yw-white); border-color: var(--yw-white); }
body.yw .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:hover, body.yw .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:hover, body.yw .cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:hover { border-color: var(--yw-gold); }
body.yw .cmplz-cookiebanner :focus-visible { outline: 2px solid var(--yw-gold); outline-offset: 2px; }
/* Mappa bloccata in attesa del consenso */
body.yw .yw-map .cmplz-blocked-content-container { border-radius: 0; box-shadow: none; filter: grayscale(1) contrast(.9); }
body.yw .yw-map .cmplz-blocked-content-notice { background: var(--yw-black); border: 1px solid var(--yw-gold); font-family: var(--yw-font-sans); }
/* Cookie Policy (documento Complianz) su sfondo scuro */
body.yw #cmplz-document { max-width: 75ch; font-size: inherit; }
body.yw #cmplz-document p, body.yw #cmplz-document li, body.yw #cmplz-document td { font-size: 1rem; }
body.yw #cmplz-document h2, body.yw #cmplz-document h3 { font-size: 1.6rem; font-weight: 400; color: var(--yw-white); }
body.yw #cmplz-document a:focus { border-color: var(--yw-gold); }
body.yw #cmplz-document .cmplz-dropdown, body.yw #cmplz-cookies-overview .cmplz-dropdown { background-color: var(--yw-surface); border: 1px solid var(--yw-line-dark); margin-bottom: .5rem; }
body.yw #cmplz-document .cmplz-dropdown summary, body.yw #cmplz-cookies-overview .cmplz-dropdown summary { background-color: transparent; margin: 0; padding: .75rem 1rem; }
body.yw #cmplz-document .cmplz-dropdown summary h3 { font-size: 1.1rem; font-weight: 500; color: var(--yw-white); }
body.yw #cmplz-document .cmplz-dropdown summary p { color: var(--yw-gold); }
body.yw #cmplz-document .cmplz-dropdown summary div:after { filter: invert(1); }
body.yw #cmplz-document .cmplz-dropdown .cookies-per-purpose { border-color: var(--yw-line-dark); background-color: var(--yw-line-dark); }
body.yw #cmplz-document .cmplz-dropdown .cookies-per-purpose div { background-color: var(--yw-black) !important; color: var(--yw-muted-dark); }
body.yw #cmplz-document .cmplz-dropdown .cookies-per-purpose .name-header, body.yw #cmplz-document .cmplz-dropdown .cookies-per-purpose .retention-header, body.yw #cmplz-document .cmplz-dropdown .cookies-per-purpose .function-header { background-color: var(--yw-surface) !important; color: var(--yw-white); }
body.yw #cmplz-manage-consent-container .cmplz-categories .cmplz-category { background-color: rgba(255,255,255,.04); }
body.yw #cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-category-header { background-color: var(--yw-surface); }
body.yw #cmplz-manage-consent-container .cmplz-categories .cmplz-category .cmplz-category-header h2 { font-size: 1.1rem; font-weight: 500; color: var(--yw-white); }
body.yw #cmplz-manage-consent-container .cmplz-always-active { color: var(--yw-gold) !important; }
/* Linguetta "Preferenze cookie" (Complianz), in basso a sinistra */
body.yw #cmplz-manage-consent .cmplz-manage-consent { font-family: var(--yw-font-sans); font-size: 13px; font-weight: 500; letter-spacing: .02em; height: 40px; min-width: 0; padding: 10px 16px; color: var(--yw-white); background: var(--yw-black); border-color: var(--yw-line-dark); box-shadow: none; transition: color .2s, border-color .2s; }
body.yw #cmplz-manage-consent .cmplz-manage-consent:hover, body.yw #cmplz-manage-consent .cmplz-manage-consent:focus-visible { color: var(--yw-gold); border-color: var(--yw-gold); }
body.yw.yw-menu-open #cmplz-manage-consent { display: none; }
/* Pulsante WhatsApp (Joinchat): nero con bordo oro, come il resto del sito; oro al passaggio del mouse */
body.yw .joinchat__button { background-color: var(--yw-black); border: 1px solid var(--yw-gold); box-shadow: 0 6px 20px rgba(0,0,0,.45); }
body.yw .joinchat__button:hover { background-color: var(--yw-gold-deep); }
/* Chiusura del banner cookie: niente doppio riquadro all'apertura, X chiara che diventa oro */
body.yw .cmplz-cookiebanner .cmplz-close { zoom: 1 !important; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; color: var(--yw-white); opacity: .75; transition: opacity .2s, color .2s; }
body.yw .cmplz-cookiebanner .cmplz-close svg { width: 14px; height: 14px; }
body.yw .cmplz-cookiebanner .cmplz-close:hover { opacity: 1; color: var(--yw-gold); font-size: 20px; line-height: 20px; }
body.yw .cmplz-cookiebanner .cmplz-close:focus { outline: none; box-shadow: none; }
body.yw .cmplz-cookiebanner .cmplz-close:focus-visible { outline: 1px solid var(--yw-gold); outline-offset: 0; opacity: 1; }
