/* =========================
   DESIGN VARIABLES — PALETTE UFFICIALE
   Colori, font, raggi e spazi si modificano qui.
========================= */
:root {
  --color-black: #101010;
  --color-blue: #113656;
  --color-red: #B72D24;
  --color-white: #FFFFFF;
  --color-primary: var(--color-blue);
  --color-accent: var(--color-red);
  --color-dark: var(--color-black);
  --color-light: var(--color-white);
  --color-muted: rgb(16 16 16 / .72);
  --color-line: rgb(16 16 16 / .16);
  --color-on-dark: rgb(255 255 255 / .80);
  --color-line-light: rgb(255 255 255 / .23);
  --color-surface: rgb(17 54 86 / .045);
  --color-note: rgb(183 45 36 / .055);
  --overlay-top: rgb(16 16 16 / .04);
  --overlay-mid: rgb(16 16 16 / .18);
  --overlay-bottom: rgb(16 16 16 / .76);
  --overlay-music: rgb(16 16 16 / .86);
  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 28px;
  --radius-xl: 36px;
  --radius-pill: 999px;
  --radius: var(--radius-sm);
  --font-heading: 'Manrope', Arial, Helvetica, sans-serif;
  --font-body: 'Manrope', Arial, Helvetica, sans-serif;
  --font-editorial: Georgia, 'Times New Roman', serif;
  --space-xs:.5rem;
  --space-sm:1rem;
  --space-md:1.5rem;
  --space-lg:3rem;
  --space-xl:6rem;
  --section-spacing:clamp(4rem,8vw,8rem);
  --container-width:1440px;
  --gutter:clamp(1.25rem,4vw,4.5rem);
  --text-h1:clamp(2.75rem,6.5vw,7.4rem);
  --text-h2:clamp(2.2rem,4.1vw,4.65rem);
  --text-h3:clamp(1.35rem,2vw,1.9rem);
  --text-body:clamp(1rem,1.2vw,1.125rem);
  --text-small:.8rem;
  --ease:cubic-bezier(.2,.65,.25,1)
}

/* FONT LOCALE — licenza in assets/fonts/OFL-Manrope.txt. Nessuna chiamata esterna. */
@font-face {
  font-family: 'Manrope';
  src: url('../assets/fonts/manrope-variable.ttf') format('truetype');
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}


/* Design tokens: change the visual identity here. Mobile first. */
.nojs-nav {
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  padding:1rem 4vw;
  border-bottom:1px solid var(--color-line)
}

@starting-style {
  .mobile-menu[open] {
    opacity:0;
    transform:translateY(-20px)
  }

}

/* BASE / ACCESSIBILITÀ */
*,*::before,*::after {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:7rem
}

body {
  margin:0;
  background:var(--color-light);
  color:var(--color-black);
  font-family:var(--font-body);
  font-size:var(--text-body);
  line-height:1.65
}

body:has(dialog[open]) {
  overflow:hidden
}

a {
  color:inherit;
  text-decoration:none
}

button,input,select,textarea {
  font:inherit
}

button,a,input,select,textarea,summary {
  -webkit-tap-highlight-color:transparent
}

a,button,summary {
  touch-action:manipulation
}

button {
  cursor:pointer
}

button:disabled {
  cursor:wait
}

button {
  border:0
}

a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid var(--color-accent);
  outline-offset:6px
}

input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid var(--color-accent);
  outline-offset:3px
}

img {
  display:block;
  max-width:100%;
  height:auto
}

figure {
  margin:0
}

h1,h2,h3,p {
  margin:0
}

h1,h2,h3 {
  font-family:var(--font-heading);
  font-weight:500;
  line-height:1.06;
  letter-spacing:-.055em
}

h2 {
  font-size:var(--text-h2)
}

h3 {
  font-size:var(--text-h3);
  letter-spacing:-.035em
}

p {
  max-width:65ch
}

p+p {
  margin-top:1rem
}

ul,ol {
  margin:0;
  padding:0;
  list-style:none
}

::selection {
  background:var(--color-accent);
  color:var(--color-primary)
}

.container {
  width:min(100% - var(--gutter)*2,var(--container-width));
  margin-inline:auto
}

.section {
  padding-block:var(--section-spacing)
}

.eyebrow {
  font-size:.68rem;
  line-height:1.4;
  letter-spacing:.14em;
  font-weight:600;
  text-transform:uppercase;
  margin-bottom:1.5rem
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  min-height:54px;
  padding:1rem 1.4rem;
  background:var(--color-accent);
  color:var(--color-white);
  font-size:.86rem;
  line-height:1.3;
  font-weight:600;
  transition:background .25s,transform .25s
}

.button:hover {
  background:var(--color-primary);
  transform:translateY(-2px)
}

.button.light {
  background:var(--color-light);
  color:var(--color-primary)
}

.button.light:hover {
  background:var(--color-accent)
}

.arrow {
  font-size:1.35em;
  transition:transform .3s;
  line-height:1
}

.button:hover .arrow,.text-link:hover .arrow {
  transform:translate(2px,-2px)
}

.text-link {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  min-height:44px;
  border-bottom:1px solid currentColor;
  font-size:.88rem;
  font-weight:600
}

.skip-link {
  position:fixed;
  left:1rem;
  top:-6rem;
  z-index:100;
  background:var(--color-white);
  padding:1rem
}

.skip-link:focus {
  top:1rem
}

/* HEADER */
.header {
  height:86px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-inline:var(--gutter);
  gap:2rem;
  background:var(--color-light);
  position:relative;
  z-index:20;
  border-bottom:1px solid var(--color-line)
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font-size:.93rem;
  line-height:1;
  font-weight:700;
  letter-spacing:-.04em;
  white-space:nowrap
}

.brand small {
  display:block;
  font-size:.44rem;
  font-weight:400;
  letter-spacing:.22em;
  margin-top:.55rem
}

.brand-amp {
  color:var(--color-accent);
  margin-inline:2px
}

.brand-mark {
  display:grid;
  grid-template-columns:repeat(3,4px);
  gap:4px;
  align-items:center;
  transform:rotate(-22deg);
  height:30px;
  margin-right:6px
}

.brand-mark i {
  height:21px;
  background:var(--color-accent)
}

.brand-mark i:nth-child(2) {
  height:33px
}

.brand-mark i:last-child {
  height:15px
}

.desktop-nav {
  display:none
}

.header-actions {
  display:flex;
  align-items:center;
  gap:1rem
}

.header-actions .button {
  display:none
}

.language-current {
  display:inline-flex;
  min-width:44px;
  min-height:44px;
  align-items:center;
  justify-content:center;
  font-size:.75rem
}

.menu-toggle {
  width:44px;
  height:44px;
  background:none;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:6px
}

.menu-toggle span {
  width:25px;
  height:1px;
  background:var(--color-primary)
}

.mobile-menu {
  max-width:none;
  max-height:none;
  width:100%;
  height:100dvh;
  border:0;
  margin:0;
  padding:1.5rem;
  background:var(--color-primary);
  color:var(--color-light);
  opacity:0;
  transform:translateY(-20px);
  transition:opacity .35s,transform .35s
}

.mobile-menu[open] {
  opacity:1;
  transform:none
}

.mobile-menu::backdrop {
  background:var(--color-primary)
}

.menu-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:2.5rem
}

.menu-top p {
  font-size:1rem;
  font-weight:600
}

.menu-close {
  background:none;
  color:inherit;
  width:48px;
  height:48px;
  font-size:2.4rem;
  line-height:1
}

.mobile-menu nav>a {
  display:flex;
  align-items:center;
  gap:1rem;
  padding:1.1rem 0;
  font-size:clamp(1.4rem,6vw,2.7rem);
  letter-spacing:-.04em;
  border-top:1px solid var(--color-line-light)
}

.mobile-menu nav>a .arrow {
  margin-left:auto
}

.mobile-menu nav small {
  font-size:.65rem;
  color:var(--color-on-dark);
  letter-spacing:0
}

.mobile-menu>.button {
  margin-top:2rem
}

.menu-languages {
  display:flex;
  gap:1rem;
  margin-top:1.5rem;
  font-size:.8rem
}

.menu-languages a {
  display:inline-flex;
  align-items:center;
  min-height:44px
}

/* HERO */
.hero {
  position:relative;
  color:var(--color-white);
  isolation:isolate;
  min-height:680px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  background:var(--color-primary);
  overflow:hidden
}

.hero-home {
  min-height:min(830px,calc(100svh - 86px));
  min-height:max(700px,calc(100svh - 86px))
}

.hero-media {
  position:absolute;
  inset:0;
  z-index:-3
}

.hero-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.04)
}

.hero-media figcaption {
  position:absolute;
  bottom:5.2rem;
  right:var(--gutter);
  font-size:.6rem;
  max-width:45%;
  text-align:right;
  color:var(--color-white)
}

.hero-shade {
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,var(--overlay-top) 0%,var(--overlay-top) 15%,var(--overlay-mid) 48%,var(--overlay-bottom) 100%)
}

.hero-content {
  padding-top:5rem;
  padding-bottom:4.5rem
}

.hero-content .eyebrow {
  color:var(--color-white);
  margin-bottom:1.7rem
}

.hero-title {
  font-size:var(--text-h1);
  max-width:16ch;
  text-wrap:balance
}

.hero-italic {
  font-family:var(--font-editorial);
  font-style:italic;
  font-size:clamp(2.65rem,6.4vw,7rem);
  letter-spacing:-.06em;
  line-height:1.05;
  margin-top:.2rem;
  max-width:17ch;
  color:var(--color-white)
}

.hero-description {
  font-size:1rem;
  line-height:1.6;
  max-width:38rem
}

.hero-bottom {
  display:grid;
  gap:2rem;
  margin-top:2.2rem
}

.hero-ctas {
  display:flex;
  align-items:flex-start;
  flex-direction:column;
  gap:.75rem
}

.hero-caption {
  min-height:60px;
  width:100%;
  padding-inline:var(--gutter);
  border-top:1px solid var(--color-line-light);
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:.55rem;
  letter-spacing:.13em
}

.hero-caption a {
  display:inline-flex;
  width:44px;
  height:44px;
  align-items:center;
  justify-content:center;
  font-size:1.5rem
}

.hero-inner {
  min-height:650px
}

.hero-inner .hero-title {
  max-width:19ch
}

.hero-inner .hero-description {
  max-width:55ch
}

/* SEGMENTS */
.position-grid {
  display:grid;
  gap:2rem
}

.position-grid>p {
  align-self:end;
  color:var(--color-muted)
}

.positioning h2 {
  max-width:22ch
}

.section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:1.5rem;
  margin-bottom:2.7rem;
  flex-wrap:wrap
}

.section-index {
  font-size:.72rem;
  color:var(--color-blue)
}

.segments {
  display:grid;
  gap:2.5rem
}

.segment-image {
  aspect-ratio:4/3;
  overflow:hidden
}

.segment-image img {
  width:100%;
  height:100%;
  object-fit:cover
}

.segment-label {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:1rem;
  font-size:1.6rem;
  letter-spacing:-.04em
}

.segment-label small {
  font-size:.65rem;
  letter-spacing:0;
  margin-right:1rem;
  color:var(--color-accent)
}

.image-mask img {
  transition:transform 1s var(--ease)
}

a:hover .image-mask img,a.image-mask:hover img,.about-image:hover img {
  transform:scale(1.045)
}

.showcase {
  background:var(--color-surface)
}

/* EXPERIENCES */
.experience-grid {
  grid-template-columns:minmax(0,1fr);
  display:grid;
  gap:2.2rem
}

.experience-image {
  display:block;
  position:relative;
  overflow:hidden;
  aspect-ratio:4/3
}

.experience-image img {
  width:100%;
  height:100%;
  object-fit:cover
}

.circle-arrow {
  position:absolute;
  right:1rem;
  bottom:1rem;
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--color-light);
  display:grid;
  place-items:center;
  color:var(--color-primary);
  font-size:1.5rem;
  transition:background .3s
}

.experience-image:hover .circle-arrow {
  background:var(--color-accent)
}

.experience-meta {
  padding-top:1rem
}

.experience-meta .eyebrow {
  font-size:.6rem;
  margin:0 0 .65rem;
  color:var(--color-muted);
  display:block
}

.custom-tile {
  padding:2rem;
  background:var(--color-primary);
  color:var(--color-light);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:end;
  min-height:300px
}

.custom-tile h3 {
  font-size:2.5rem;
  margin-bottom:1.5rem
}

.orbital {
  display:grid;
  place-items:center;
  width:80px;
  height:80px;
  border:1px solid var(--color-line-light);
  border-radius:50%;
  font-size:3rem;
  line-height:1;
  margin-bottom:auto
}

.custom-tile .eyebrow {
  margin-top:2rem
}

/* USP */
.usp-list {
  margin-top:3rem
}

.usp-list>div {
  display:grid;
  grid-template-columns:30px 1fr;
  gap:1rem;
  padding:1.5rem 0;
  border-top:1px solid var(--color-line)
}

.usp-list>div>span {
  color:var(--color-accent);
  font-size:.7rem;
  padding-top:.2rem
}

.usp-list p {
  grid-column:2;
  font-size:.95rem;
  color:var(--color-muted)
}

/* PROCESS / STICKY STORYTELLING */
.process {
  background:var(--color-primary);
  color:var(--color-light)
}

.process-layout {
  display:grid;
  gap:3.5rem
}

.process-intro p {
  margin-block:1.75rem;
  max-width:35ch;
  color:var(--color-on-dark)
}

.steps li {
  display:flex;
  gap:1.5rem;
  padding:2rem 0;
  border-top:1px solid var(--color-line-light)
}

.step-number {
  font-family:var(--font-editorial);
  font-style:italic;
  font-size:2.5rem;
  line-height:1;
  color:var(--color-accent)
}

.steps h3 {
  margin-bottom:.85rem
}

.steps p {
  color:var(--color-on-dark);
  font-size:.96rem
}

/* SAFETY */
.safety-band {
  background:var(--color-surface)
}

.safety-layout {
  display:grid;
  gap:3rem
}

.safety-layout>div>p {
  margin-block:1.75rem;
  max-width:47ch
}

.safety-points>div {
  padding:1.5rem 0;
  border-top:1px solid var(--color-line)
}

.safety-points h3 {
  font-size:1.3rem
}

.safety-points p {
  font-size:.95rem;
  margin-top:.8rem
}

/* SOCIAL PROOF */
.proof h2 {
  max-width:19ch
}

.proof-pending {
  display:flex;
  gap:1.5rem;
  margin-top:2.5rem;
  padding-top:2rem;
  border-top:1px solid var(--color-line)
}

.proof-symbol {
  font-size:4rem;
  color:var(--color-accent);
  line-height:1
}

.proof-pending p {
  max-width:55ch
}

.placeholder {
  font-size:.75rem;
  line-height:1.6;
  color:var(--color-black);
  border-left:2px solid var(--color-accent);
  padding:.75rem 1rem;
  background:var(--color-note);
  overflow-wrap:anywhere
}

.proof-pending .placeholder {
  margin-top:1rem
}

.logo-wall {
  display:flex;
  flex-wrap:wrap;
  gap:2rem;
  margin-block:3rem
}

.logo-wall img {
  object-fit:contain
}

.testimonial {
  margin-block:2rem
}

.testimonial blockquote {
  font-family:var(--font-editorial);
  font-size:2rem;
  margin:0
}

.testimonial figcaption {
  margin-top:1rem;
  font-size:.8rem
}

.feature {
  display:grid;
  background:var(--color-primary);
  color:var(--color-light)
}

.feature-media {
  min-height:380px;
  position:relative;
  overflow:hidden
}

.feature-media img {
  width:100%;
  height:100%;
  object-fit:cover
}

.feature-media figcaption {
  position:absolute;
  bottom:.75rem;
  left:1rem;
  font-size:.6rem;
  background:var(--color-primary);
  padding:.3rem .6rem
}

.feature-copy {
  padding:3.5rem var(--gutter)
}

.feature-copy p:not(.eyebrow) {
  margin-block:1.75rem;
  color:var(--color-on-dark)
}

.about-teaser {
  display:grid;
  gap:3rem;
  align-items:center
}

.about-teaser p:not(.eyebrow) {
  margin-block:1.75rem
}

.about-image {
  aspect-ratio:4/3;
  overflow:hidden
}

.about-image img {
  width:100%;
  height:100%;
  object-fit:cover
}

.about-image figcaption {
  font-size:.6rem;
  padding-top:.5rem
}

/* CTA */
.final-cta {
  padding-block:var(--section-spacing);
  background:var(--color-accent);
  color:var(--color-white);
  position:relative;
  overflow:hidden
}

.final-cta h2 {
  max-width:19ch
}

.final-cta p:not(.eyebrow) {
  max-width:44ch;
  margin-block:1.5rem 2rem
}

.cta-symbol {
  position:absolute;
  right:5%;
  top:14%;
  font-size:18rem;
  line-height:1;
  opacity:.1;
  pointer-events:none
}

/* FOOTER */
.footer {
  background:var(--color-primary);
  color:var(--color-light);
  padding-top:4rem
}

.footer-main {
  display:grid;
  gap:2.5rem;
  padding-bottom:3rem
}

.footer-brand {
  font-size:1.2rem;
  margin-bottom:1rem
}

.footer-brand .brand-amp {
  color:var(--color-accent)
}

.footer-main p {
  font-size:.8rem;
  color:var(--color-on-dark);
  margin-top:.65rem
}

.footer nav {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.25rem 1.25rem
}

.footer nav a {
  font-size:.8rem;
  min-height:38px;
  display:flex;
  align-items:center
}

.footer a:hover {
  text-decoration:underline;
  text-underline-offset:5px
}

.footer-contact {
  display:flex;
  flex-direction:column;
  align-items:start;
  gap:.5rem
}

.footer-contact>a {
  min-height:36px
}

.social-links {
  display:flex;
  gap:1.5rem;
  margin-top:1rem
}

.social-links a {
  font-size:.75rem;
  min-height:44px;
  display:flex;
  align-items:center;
  gap:.5rem
}

.footer-bottom {
  padding-block:1.5rem;
  border-top:1px solid var(--color-line-light);
  display:flex;
  gap:1rem;
  justify-content:space-between;
  flex-wrap:wrap;
  font-size:.65rem;
  color:var(--color-on-dark)
}

.preview-note {
  padding-block:1rem;
  border-top:1px solid var(--color-line-light);
  font-size:.6rem;
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  color:var(--color-on-dark)
}

.preview-note strong {
  color:var(--color-white);
  letter-spacing:.1em
}

/* PAGINE EDITORIALI / FAQ / CONTATTI */
.editorial-row {
  display:grid;
  gap:1.5rem;
  border-top:1px solid var(--color-line);
  padding-block:2.5rem
}

.editorial-row h2 {
  font-size:clamp(1.7rem,3vw,3rem)
}

.row-number {
  font-size:.7rem;
  color:var(--color-accent)
}

.editorial-row p {
  color:var(--color-muted)
}

.programme-links {
  display:grid;
  gap:1rem;
  margin-top:2rem
}

.type-list {
  margin-top:2rem
}

.type-list li {
  display:flex;
  align-items:center;
  gap:1.5rem;
  padding-block:1.7rem;
  border-top:1px solid var(--color-line)
}

.type-list small {
  color:var(--color-accent);
  font-size:.7rem
}

.type-list .arrow {
  margin-left:auto
}

.destination-section {
  background:var(--color-surface)
}

.split-layout {
  display:grid;
  gap:2.5rem
}

.split-layout>div>p {
  margin-top:1.5rem
}

.destinations li {
  border-bottom:1px solid var(--color-line);
  padding-block:1rem;
  display:flex;
  align-items:center;
  gap:1.5rem;
  font-size:1.25rem
}

.destinations span {
  font-size:.65rem;
  color:var(--color-accent)
}

.audience-links {
  display:flex;
  flex-wrap:wrap;
  gap:1.5rem 3rem
}

.price-note {
  background:var(--color-primary);
  color:var(--color-light);
  padding:2.5rem
}

.price-note .button {
  margin-top:1.5rem
}

.faq-list {
  margin-top:2.5rem
}

.faq-list details {
  border-top:1px solid var(--color-line)
}

.faq-list summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  cursor:pointer;
  padding:1.5rem 0;
  font-size:1.1rem;
  list-style:none
}

.faq-list summary::-webkit-details-marker {
  display:none
}

.faq-list summary span {
  font-size:1.5rem;
  color:var(--color-accent);
  transition:transform .25s
}

.faq-list details[open] summary span {
  transform:rotate(45deg)
}

.faq-list details>p {
  padding:0 2rem 1.5rem 0;
  max-width:75ch
}

.legal-page {
  min-height:65vh;
  max-width:850px
}

.legal-page h1 {
  font-size:var(--text-h2);
  margin-bottom:2rem
}

.legal-page p {
  margin-bottom:2rem
}

.legal-page .placeholder {
  margin-block:2rem
}

.contact-page {
  display:grid;
  gap:3rem
}

.contact-intro h1 {
  font-size:var(--text-h2);
  margin-bottom:1.75rem
}

.contact-intro>p {
  margin-bottom:2rem
}

.contact-intro>a {
  display:block;
  min-height:44px
}

.contact-email {
  font-size:clamp(1.1rem,2.1vw,1.6rem);
  letter-spacing:-.03em
}

.contact-place {
  font-size:.85rem;
  color:var(--color-blue);
  margin-top:1rem
}

fieldset {
  padding:0;
  border:0;
  margin:0 0 2rem
}

legend {
  font-size:.8rem;
  margin-bottom:.75rem
}

.segment-options {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem
}

.segment-options label {
  position:relative;
  flex:1 1 100px
}

.segment-options input {
  position:absolute;
  opacity:0;
  width:100%;
  height:100%;
  margin:0
}

.segment-options span {
  display:flex;
  min-height:54px;
  align-items:center;
  justify-content:center;
  padding:.75rem;
  font-size:.8rem;
  border:1px solid var(--color-line);
  text-align:center
}

.segment-options input:checked+span {
  background:var(--color-primary);
  color:var(--color-white);
  border-color:var(--color-primary)
}

.segment-options input:focus-visible+span {
  outline:3px solid var(--color-accent);
  outline-offset:3px
}

.form-grid {
  display:grid;
  gap:1.4rem
}

.field {
  display:flex;
  flex-direction:column;
  gap:.5rem;
  margin-bottom:1.4rem
}

.form-grid .field {
  margin:0
}

.field label,.draft-output>label {
  font-size:.78rem
}

.field input,.field select,.field textarea,.draft-output textarea {
  border:1px solid var(--color-line);
  background:transparent;
  padding:.8rem;
  min-height:50px;
  width:100%;
  border-radius:0;
  color:var(--color-primary)
}

.field textarea {
  resize:vertical
}

.form-grid+.field {
  margin-top:1.4rem
}

.consent {
  display:flex;
  gap:.75rem;
  font-size:.75rem;
  line-height:1.6;
  align-items:start;
  margin-bottom:1.5rem
}

.consent input {
  width:22px;
  height:22px;
  flex-shrink:0;
  accent-color:var(--color-primary)
}

.consent a {
  text-decoration:underline
}

.form-note {
  font-size:.78rem;
  color:var(--color-muted);
  margin-bottom:1.5rem
}

.form-status {
  font-size:.85rem;
  margin-top:1.5rem
}

.draft-output {
  margin-top:1rem
}

.draft-output[hidden] {
  display:none
}

.draft-output textarea {
  display:block;
  margin-block:.5rem 1rem
}

.copy-request {
  background:none;
  margin-right:1.5rem
}

.form-privacy-placeholder {
  margin-top:1.5rem
}

.image-mask {
  overflow:hidden
}

.js-motion .reveal {
  opacity:0;
  transform:translateY(24px);
  transition:opacity .8s var(--ease),transform .8s var(--ease)
}

.js-motion .reveal.is-visible {
  opacity:1;
  transform:none
}

.js-motion .segment.is-visible .image-mask {
  animation:mask-in 1s var(--ease) both
}

@keyframes mask-in {
  from {
    clip-path:inset(8% 0 8% 0)
  }

  to {
    clip-path:inset(0)
  }

}

/* RESPONSIVE */
@media(min-width:650px) {
  .segments {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1.5rem
  }

  .segment-image {
    aspect-ratio:3/4
  }

  .segment-label {
    font-size:1.35rem
  }

  .experience-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:2.5rem 1.5rem
  }

  .form-grid {
    grid-template-columns:1fr 1fr
  }

  .footer-main {
    grid-template-columns:1fr 1fr
  }

  .footer-contact {
    grid-column:1/-1
  }

  .hero-ctas {
    flex-direction:row;
    align-items:center;
    gap:1.5rem
  }

  .hero-caption {
    font-size:.65rem
  }

  .hero-content {
    padding-bottom:4.5rem
  }

  .hero-description {
    font-size:1.1rem
  }

}

@media(min-width:950px) {
  .header {
    height:96px;
    gap:1rem
  }

  .brand {
    font-size:1.05rem
  }

  .header-actions {
    gap:.5rem
  }

  .header-actions .button {
    display:inline-flex
  }

  .button.compact {
    min-height:46px;
    padding:.85rem 1rem;
    font-size:.7rem;
    gap:1rem
  }

  .desktop-nav {
    display:flex;
    align-items:center;
    gap:clamp(.8rem,1.5vw,1.7rem)
  }

  .desktop-nav a {
    font-size:.72rem;
    min-height:44px;
    display:flex;
    align-items:center;
    white-space:nowrap;
    position:relative
  }

  .desktop-nav a::after {
    content:'';
    position:absolute;
    bottom:5px;
    width:100%;
    height:1px;
    transform:scaleX(0);
    transform-origin:left;
    background:var(--color-accent);
    transition:transform .3s
  }

  .desktop-nav a:hover::after,.desktop-nav a[aria-current]::after {
    transform:scaleX(1)
  }

  .menu-toggle {
    display:none
  }

  .hero-home {
    min-height:max(700px,calc(100svh - 96px))
  }

  .hero-bottom {
    grid-template-columns:1fr auto;
    align-items:end;
    gap:3rem;
    margin-top:3rem
  }

  .hero-ctas {
    flex-direction:column;
    align-items:start;
    gap:.75rem
  }

  .hero-inner {
    min-height:720px
  }

  .hero-inner .hero-bottom {
    grid-template-columns:1.3fr 1fr
  }

  .hero-title {
    max-width:18ch
  }

  .hero-content {
    padding-top:6rem;
    padding-bottom:5rem
  }

  .position-grid {
    grid-template-columns:1.6fr 1fr;
    gap:5rem
  }

  .position-grid>p {
    max-width:40ch
  }

  .segments {
    gap:2rem
  }

  .segment:first-child .segment-image {
    aspect-ratio:3/4
  }

  .segment:nth-child(2) {
    margin-top:4rem
  }

  .segment:nth-child(3) {
    margin-top:8rem
  }

  .segment-label {
    font-size:1.8rem
  }

  .experience-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:3rem 2rem
  }

  .experience-item:nth-child(3n+2) {
    padding-top:4rem
  }

  .experience-item:nth-child(3n+2).custom-tile {
    padding-top:2rem
  }

  .experience-image {
    aspect-ratio:4/5
  }

  .usp-list>div {
    grid-template-columns:50px 1fr 1fr;
    padding-block:1.7rem;
    align-items:center
  }

  .usp-list p {
    grid-column:auto;
    max-width:40ch
  }

  .process-layout {
    grid-template-columns:1fr 1fr;
    gap:6rem;
    align-items:start
  }

  .process-intro {
    position:sticky;
    top:3rem
  }

  .steps li {
    padding-block:2.5rem;
    gap:2rem
  }

  .step-number {
    font-size:3.5rem
  }

  .safety-layout {
    grid-template-columns:1.2fr 1fr;
    gap:6rem
  }

  .safety-points {
    padding-top:3rem
  }

  .proof-pending {
    margin-left:35%;
    gap:3rem
  }

  .feature {
    grid-template-columns:1.1fr 1fr;
    min-height:650px
  }

  .feature-copy {
    padding:5rem 4rem;
    align-self:center
  }

  .feature-copy h2 {
    font-size:clamp(2.5rem,4vw,4.3rem)
  }

  .about-teaser {
    grid-template-columns:1fr 1fr;
    gap:6rem
  }

  .about-image {
    aspect-ratio:4/5
  }

  .footer-main {
    grid-template-columns:1fr 1fr 1fr;
    gap:4rem
  }

  .footer-contact {
    grid-column:auto
  }

  .editorial-row {
    grid-template-columns:40px 1fr 1fr;
    gap:2rem;
    padding-block:3rem
  }

  .editorial-row p {
    padding-top:.3rem
  }

  .programme-links {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:2rem
  }

  .split-layout {
    grid-template-columns:1fr 1fr;
    gap:6rem
  }

  .contact-page {
    grid-template-columns:1fr 1.3fr;
    gap:6rem;
    padding-block:6rem
  }

  .contact-intro {
    position:sticky;
    top:3rem;
    align-self:start
  }

  .faq-section {
    display:grid;
    grid-template-columns:1fr 1.3fr;
    gap:5rem
  }

  .faq-list {
    margin-top:0
  }

  .cta-symbol {
    opacity:.2;
    font-size:28rem;
    top:0
  }

}

@media(min-width:1400px) {
  .desktop-nav a {
    font-size:.8rem
  }

  .button.compact {
    font-size:.8rem
  }

  .brand {
    font-size:1.2rem
  }

  .hero-ctas {
    flex-direction:row;
    align-items:center
  }

}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }

  *,*::before,*::after {
    animation:none!important;
    transition:none!important
  }

  .js-motion .reveal {
    opacity:1;
    transform:none
  }

  .hero-media img {
    transform:none!important
  }

}

@media(max-width:649px) {
  .hero-inner {
    min-height:630px
  }

  .hero-media figcaption {
    bottom:4.5rem;
    max-width:65%;
    font-size:.5rem
  }

  .hero-content {
    padding-bottom:4rem
  }

  .hero-home .hero-title {
    font-size:clamp(2.75rem,12vw,4rem)
  }

  .hero-home .hero-italic {
    font-size:clamp(2.65rem,11.5vw,3.8rem)
  }

  .hero-inner .hero-title {
    font-size:clamp(2.5rem,10.5vw,3.75rem)
  }

  .hero-home .hero-content {
    padding-top:3rem
  }

  .hero-caption {
    font-size:.48rem;
    gap:1rem
  }

  .cta-symbol {
    display:none
  }

  .final-cta .button {
    width:100%
  }

  .hero-ctas .button {
    width:100%
  }

  .footer-bottom>span:last-child {
    display:none
  }

  .segment:first-child .segment-image {
    aspect-ratio:4/3
  }

  .proof-pending {
    flex-direction:column
  }

  .proof-symbol {
    font-size:3rem
  }

  .experience-grid {
    gap:2.5rem
  }

  .section-heading .text-link {
    margin-top:1rem
  }

  .feature-copy {
    padding-block:3rem
  }

}

@media print {
  .header,.footer,.hero-ctas,.final-cta,.menu-toggle {
    display:none
  }

  body {
    background:var(--color-white);
    color:var(--color-black)
  }

  .hero {
    min-height:auto;
    color:var(--color-black);
    padding-block:2rem
  }

  .hero-media,.hero-shade,.hero-caption {
    display:none
  }

  .hero-italic {
    color:var(--color-black)
  }

  .reveal {
    opacity:1!important;
    transform:none!important
  }

  .section {
    padding-block:2rem
  }

}


/* =========================
   IDENTITÀ / SOFT GEOMETRY
   Le animazioni originali restano invariate; nessuna libreria aggiunta.
========================= */
h1, h2, h3 { font-weight: 650; }
h1, h2 { letter-spacing: -.055em; }
.eyebrow { font-weight: 700; }
.header { border: 0; height: 96px; }
.brand { min-width: 0; }
.brand-logo { width: 212px; height: auto; display: block; }
.footer-brand .brand-logo { width: 240px; }
.menu-logo { width: 220px; height: auto; }
.mobile-menu { overflow-y: auto; }
.menu-top { gap: 1.5rem; }
.menu-top p { min-width: 0; }
.menu-close { flex: 0 0 48px; }
.desktop-nav a { position: relative; }
.desktop-nav a::after {
  content: ''; position: absolute; bottom: -8px; left: 0;
  height: 2px; width: 100%; background: var(--color-accent);
  transform: scaleX(0); transform-origin: left; transition: transform .25s;
}
.desktop-nav a:hover::after, .desktop-nav a[aria-current]::after { transform: scaleX(1); }

/* BUTTON SYSTEM — rouge, pill, mouvement précis. */
.button {
  border-radius: var(--radius-pill); padding: 1.05rem 1.7rem; min-height: 56px;
  background: var(--color-accent); color: var(--color-white);
  font-weight: 650; letter-spacing: -.015em;
}
.button:hover { background: var(--color-primary); }
.button:hover .arrow { transform: translate(3px,-3px); }
.button.light { background: var(--color-accent); color: var(--color-white); }
.button.light:hover { background: var(--color-white); color: var(--color-primary); }
a:focus-visible, button:focus-visible, summary:focus-visible {
  outline: 3px solid var(--color-accent); outline-offset: 5px;
}
.footer a:focus-visible, .mobile-menu a:focus-visible,
.mobile-menu button:focus-visible, .final-cta a:focus-visible,
.process a:focus-visible, .safety-band a:focus-visible { outline-color: var(--color-white); }
.text-link { padding-block: .4rem; gap: 1.5rem; }

/* HERO — large fenêtre photographique, lumière et respiration. */
.hero {
  margin-inline: 1rem; border-radius: var(--radius-xl);
  color: var(--color-white); min-height: 690px;
}
.hero-home { min-height: max(660px,calc(100svh - 112px)); }
.hero-content { padding-bottom: 4.5rem; }
.hero-title { font-weight: 650; max-width: 15ch; }
.hero-shade {
  background: linear-gradient(180deg,var(--overlay-top) 0%,var(--overlay-top) 25%,var(--overlay-mid) 50%,var(--overlay-bottom) 100%);
}
.hero-description { font-weight: 500; max-width: 37ch; }
.hero-caption { border-top-color: var(--color-line-light); }
.hero-media figcaption { font-size: .55rem; opacity: .85; }

/* SIGNATURE & — original, jamais déformé. */
.positioning { position: relative; isolation: isolate; }
.position-grid { position: relative; z-index: 1; }
.position-grid h2 { color: var(--color-primary); }
.connection-mark {
  position: absolute; width: clamp(100px,16vw,210px); height: auto;
  right: 1rem; top: 1.5rem; opacity: .045; z-index: -1; pointer-events: none;
}
.positioning::after {
  content: ''; display: block; width: 42%; height: 40px; margin-top: 3rem;
  border-bottom: 1px solid var(--color-line); border-radius: 0 0 80% 40%;
}

/* SEGMENTS — photo panels, soft crops, invitations visibles au toucher. */
.segment { position: relative; display: block; border-radius: var(--radius-lg); overflow: hidden; }
.segment-image { border-radius: var(--radius-lg); aspect-ratio: 3/4; }
.segment-image::after {
  content: ''; position: absolute; inset: 35% 0 0;
  background: linear-gradient(180deg,transparent,var(--overlay-bottom));
  pointer-events: none;
}
.segment-label {
  position: absolute; inset: auto 1.5rem 1.5rem; color: var(--color-white);
  border: 0; padding: 0; font-weight: 600; z-index: 1;
}
.segment-label small { color: var(--color-white); opacity: .8; }
.segment-label .arrow {
  display: grid; place-items: center; width: 44px; height: 44px;
  border: 1px solid var(--color-line-light); border-radius: 50%;
}
.segment:hover .segment-label .arrow { transform: translate(2px,-2px); }
.segment:focus-visible { outline-offset: 7px; }

/* EXPERIENCES — editorial, sans conteneurs standard. */
.experience-image, .about-image { border-radius: var(--radius-lg); }
.experience-meta h3 { margin-top: .5rem; }
.experience-line { font-size: .88rem; margin-top: .6rem; color: var(--color-muted); }
.experience-meta { padding-top: 1rem; }
.circle-arrow { background: var(--color-white); color: var(--color-black); }
.custom-tile { border-radius: var(--radius-lg); background: var(--color-surface); border: 0; }
.usp h2 { max-width: 20ch; }
.usp-list h3 { font-size: clamp(1.15rem,2vw,1.8rem); letter-spacing: -.04em; }

/* PROCESS, SAFETY ET TRANSITIONS DOUCES. Sticky original conservé. */
.process {
  background: var(--color-black); color: var(--color-white);
  margin: 1rem; border-radius: var(--radius-xl);
}
.step-number { color: var(--color-white); opacity: .65; }
.safety-band {
  background: var(--color-primary); color: var(--color-white);
  margin: 1rem; border-radius: var(--radius-xl);
}
.safety-points>div { border-color: var(--color-line-light); }
.feature {
  margin-inline: 1rem; border-radius: var(--radius-xl); overflow: hidden;
  background: var(--color-primary); color: var(--color-white);
}
.feature-media { border-radius: var(--radius-xl); }
.feature-copy { align-self: center; }
.about-image { position: relative; }
.about-image figcaption {
  position: absolute; bottom: 1rem; left: 1rem; padding: .3rem .6rem;
  background: var(--color-dark); color: var(--color-white); border-radius: var(--radius-sm);
}

/* SPONSOR / PARTNER — accessible au clavier et au tap, aucune fausse preuve. */
.proof h2 { max-width: 20ch; }
.partner-intro { margin-top: 1.5rem; max-width: 44ch; color: var(--color-muted); }
.partner-list { margin-top: 3rem; }
.partner-row { border-top: 1px solid var(--color-line); }
.partner-row:last-child { border-bottom: 1px solid var(--color-line); }
.partner-row summary {
  list-style: none; display: grid; grid-template-columns: 40px 1fr auto 40px;
  align-items: center; gap: 1.5rem; min-height: 112px; cursor: pointer;
  transition: color .25s, padding .25s, background .25s; padding: 1.25rem 0;
}
.partner-row summary::-webkit-details-marker { display: none; }
.partner-number { font-size: .7rem; color: var(--color-accent); }
.partner-name { font-size: clamp(1.4rem,2.6vw,2.4rem); font-weight: 600; letter-spacing: -.05em; }
.partner-placeholder { font-size: .62rem; letter-spacing: .03em; max-width: 25ch; color: var(--color-muted); }
.partner-plus { font-size: 1.5rem; text-align: center; }
.partner-row summary:hover, .partner-row[open] summary {
  color: var(--color-primary); padding-inline: 1rem; background: var(--color-surface);
  border-radius: var(--radius-sm);
}
.partner-row[open] .partner-plus { font-size: 0; }
.partner-row[open] .partner-plus::after { content: '−'; font-size: 1.5rem; }
.partner-row>p { padding: .5rem 3.5rem 1.75rem; color: var(--color-muted); font-size: .95rem; }

/* CTA / FOOTER — & comme signature, rouge réservé à l'action. */
.final-cta {
  background: var(--color-primary); color: var(--color-white);
  margin: 1rem; border-radius: var(--radius-xl); isolation: isolate;
}
.final-cta h2, .final-cta p, .final-cta a { position: relative; z-index: 1; }
.cta-symbol { width: min(28vw,360px); height: auto; right: 7%; top: 10%; opacity: .07; }
.footer { background: var(--color-black); color: var(--color-white); margin-top: 1rem; border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
.footer nav a, .footer-contact>a { min-height: 44px; }
.preview-note { color: var(--color-on-dark); }
.placeholder { border-radius: var(--radius-sm); color: var(--color-black); }

/* FORMULAIRE SIMPLE — cinq champs, plus information privacy. */
input, select, textarea { border-radius: var(--radius-sm); background: var(--color-white); }
.segment-options label span { border-radius: var(--radius-pill); }
.contact-page h1 { color: var(--color-primary); }
.form-note { max-width: 50ch; }

/* =========================
   MUSIC WORLD — QUIET LUXURY
   Musique, mariages et accompagnement: noir/blanc, serif, espace.
   Aucun filtre ou recolorisation du logo et des photographies.
========================= */
.music-world { background: var(--color-white); }
.music-world .hero { background: var(--color-black); min-height: 760px; }
.music-world .hero-title {
  font-family: var(--font-editorial); font-weight: 400;
  font-size: clamp(3.2rem,6.2vw,6.8rem); letter-spacing: -.055em;
  line-height: 1.02; max-width: 13ch;
}
.music-world .hero-shade {
  background: linear-gradient(90deg,var(--overlay-music) 0%,var(--overlay-mid) 60%,var(--overlay-top) 100%);
}
.music-world .hero-description { font-size: 1rem; max-width: 39ch; font-weight: 400; }
.music-world .hero-bottom { grid-template-columns: 1fr; gap: 1.75rem; }
.music-world .hero-content { padding-top: 8rem; padding-bottom: 5rem; }
.music-world .hero-content .eyebrow { letter-spacing: .23em; font-size: .65rem; }
.music-world main h2 { font-family: var(--font-editorial); font-weight: 400; letter-spacing: -.04em; }
.music-world .type-list h3 { font-family: var(--font-editorial); font-weight: 400; font-size: clamp(1.7rem,3vw,3rem); }
.music-world .destination-section { background: var(--color-surface); border-radius: var(--radius-xl); margin: 1rem; }
.music-world .process, .music-world .safety-band, .music-world .final-cta { background: var(--color-black); }
.music-world .final-cta .button:hover { background: var(--color-white); color: var(--color-black); }
.music-world .type-list .arrow { color: var(--color-accent); }
.music-links { display: flex; flex-wrap: wrap; gap: 1.5rem 3rem; margin-top: 3rem; }
.music-world .hero-caption { background: var(--overlay-mid); }

/* RESPONSIVE — mobile pensé séparément, transitions existantes conservées. */
@media (min-width: 950px) {
  .hero-home .hero-title { max-width: 14ch; }
  .hero-home .hero-content { padding-bottom: 5rem; }
  .hero-home .hero-bottom { margin-top: 2.5rem; }
  .segment-label { font-size: 1.8rem; }
  .segment:nth-child(2) { margin-top: 3.5rem; }
  .segment:nth-child(3) { margin-top: 7rem; }
  .process-layout, .safety-layout { gap: 5rem; }
  .music-world .hero-title { max-width: 12ch; }
  .music-world .hero-content { padding-top: 10rem; }
}
@media (max-width: 949px) {
  .brand-logo { width: 190px; }
  .segment-label { inset-inline: 1rem; }
  .partner-row summary { grid-template-columns: 25px 1fr 30px; gap: .75rem; }
  .partner-placeholder { grid-column: 2; grid-row: 2; }
  .partner-plus { grid-column: 3; grid-row: 1 / span 2; }
  .partner-row>p { padding-left: 2.3rem; }
  .music-world .hero-shade {
    background: linear-gradient(180deg,var(--overlay-top) 0%,var(--overlay-mid) 30%,var(--overlay-music) 100%);
  }
}
@media (max-width: 649px) {
  .header { height: 80px; padding-inline: 1.25rem; gap: .5rem; }
  .header-actions { gap: .25rem; }
  .brand-logo { width: 170px; }
  .hero, .process, .safety-band, .feature, .final-cta, .music-world .destination-section {
    margin-inline: .65rem; border-radius: var(--radius-lg);
  }
  .hero { min-height: 650px; }
  .hero-home { min-height: max(650px,calc(100svh - 90px)); }
  .hero-content { padding-top: 6rem; padding-bottom: 3rem; }
  .hero-home .hero-title { font-size: clamp(2.8rem,11.8vw,4rem); max-width: 12ch; }
  .hero-description { font-size: .95rem; }
  .hero-media figcaption { bottom: 4.3rem; max-width: 75%; }
  .hero-ctas, .hero-ctas .button { width: 100%; }
  .hero-caption { padding-inline: 1.25rem; }
  .segment-image, .segment:first-child .segment-image { aspect-ratio: 4/5; }
  .segment-label { inset: auto 1.4rem 1.4rem; font-size: 1.65rem; }
  .experience-image { aspect-ratio: 4/5; }
  .usp-list>div { gap: .75rem; }
  .usp-list h3 { font-size: 1.15rem; overflow-wrap: anywhere; }
  .connection-mark { width: 120px; top: 4rem; }
  .cta-symbol { display: block; width: 55vw; right: -5%; top: 5%; opacity: .05; }
  .partner-row summary { min-height: 108px; }
  .footer-brand .brand-logo { width: 220px; }
  .music-world .hero { min-height: 740px; }
  .music-world .hero-title { font-size: clamp(3rem,12vw,4.2rem); max-width: 12ch; }
  .music-world .hero-content { padding-top: 10rem; padding-bottom: 4rem; }
  .music-world .hero-description { font-size: .95rem; }
  .music-world .hero-media img { object-position: 62% 50% !important; }
  .music-world .hero-content .eyebrow { letter-spacing: .15em; }
  .music-links { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
  .button:hover, .button:hover .arrow, .segment:hover .segment-label .arrow { transform: none; }
}

/* GRID SAFETY — immagini e testi non allargano le colonne su mobile. */
.experience-item { min-width: 0; }

/* SPONSORS — fascia finale comune a tutte le pagine, prima del footer.
   I segnaposto non sono loghi reali. Nessuna dipendenza JavaScript. */
.sponsor-strip {
  padding: clamp(3rem,6vw,5.5rem) 0;
  background: var(--color-white);
  color: var(--color-black);
}
.sponsor-strip-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1.5rem;
  margin-bottom: 2rem;
}
.sponsor-strip-heading .eyebrow { color: var(--color-primary); margin-bottom: .8rem; }
.sponsor-strip h2 { font-size: clamp(1.8rem,3vw,3rem); margin: 0; }
.sponsor-strip-note { color: var(--color-muted); max-width: 28ch; font-size: .85rem; margin: 0; }
.sponsor-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sponsor-slot {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: .65rem;
  min-height: 150px;
  padding: 2.5rem .75rem 1.5rem;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  text-align: center;
}
.sponsor-slot-number { position: absolute; top: .9rem; left: 1rem; color: var(--color-accent); font-size: .65rem; }
.sponsor-slot-label { font-size: clamp(.95rem,1.4vw,1.2rem); font-weight: 600; }
.sponsor-slot-note { font-size: .6rem; line-height: 1.6; color: var(--color-muted); max-width: 25ch; overflow-wrap: anywhere; }
.sponsor-slot img { display: block; width: auto; max-width: 80%; max-height: 64px; object-fit: contain; }
.sponsor-slot a { display: flex; min-height: 48px; align-items: center; justify-content: center; }
@media (min-width: 900px) {
  .sponsor-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
}
@media (max-width: 599px) {
  .sponsor-strip-heading { align-items: start; flex-direction: column; gap: 1rem; }
  .sponsor-slot { min-height: 140px; }
}

/* REVISIONE — feedback homepage. Full bleed e pannelli senza ritagli. */
.hero-home { margin: 0; border-radius: 0; min-height: calc(100svh - 96px); }
.process { margin-inline: 0; border-radius: 0; }
.segment { align-self: start; }
.segment-image { position: relative; }
.segment-image img { display: block; }
.experience-image:is(:hover,:focus-visible) .circle-arrow {
  background: var(--color-accent); color: var(--color-white);
}
.custom-tile { background: var(--color-primary); color: var(--color-white); }
.custom-tile h3 { font-size: clamp(1.35rem,2.1vw,2.2rem); overflow-wrap: anywhere; max-width: 100%; }
.custom-tile .eyebrow, .custom-tile .text-link { color: var(--color-white); }

/* HERO — ingresso in sequenza, uscita/reingresso legati allo scroll. */
.js-motion .hero-home .hero-content {
  opacity: var(--hero-opacity,1);
  transform: translateY(var(--hero-exit,0px));
  will-change: transform, opacity;
}
.js-motion .hero-home .hero-content > * { animation: hero-arrive .9s var(--ease) both; }
.js-motion .hero-home .hero-title { animation-delay: .12s; }
.js-motion .hero-home .hero-bottom { animation-delay: .24s; }
@keyframes hero-arrive {
  from { opacity: 0; transform: translateY(28px); }
  to { opacity: 1; transform: translateY(0); }
}

/* COORDINATION — un sistema di traiettorie che connette i cinque valori. */
.coordination-layout { display: grid; gap: 3rem; align-items: center; margin-top: 3rem; }
.coordination-graphic { position: relative; aspect-ratio: 1; max-width: 460px; width: 100%; margin: auto; }
.coordination-ring { position: absolute; border: 1px solid var(--color-primary); border-radius: 50%; inset: 8%; opacity: .2; }
.ring-two { inset: 20% 0; transform: rotate(-35deg); border-color: var(--color-accent); opacity: .55; }
.ring-three { inset: 0 25%; transform: rotate(35deg); }
.coordination-graphic img { position: absolute; width: 23%; height: auto; left: 38.5%; top: 35%; }
.coordination-dot { position: absolute; width: 12px; height: 12px; background: var(--color-primary); border-radius: 50%; }
.dot-one { left: 19%; top: 18%; }
.dot-two { right: 5%; top: 56%; background: var(--color-accent); }
.dot-three { left: 25%; bottom: 12%; }
.coordination-caption { position: absolute; bottom: 27%; width: 100%; text-align: center; font-size: .65rem; letter-spacing: .15em; }
.coordination .usp-list { margin: 0; }
.coordination .usp-list>div { grid-template-columns: 35px minmax(0,1fr); padding: 1.5rem 0; position: relative; }
.coordination .usp-list p { grid-column: 2; }
.coordination .usp-list h3 { font-size: clamp(1rem,1.65vw,1.5rem); }
.coordination .usp-list>div::before { content: ''; position: absolute; top: -1px; left: 0; height: 2px; width: 100%; background: var(--color-accent); transform: scaleX(0); transform-origin: left; transition: transform .8s var(--ease); }
.coordination .usp-list>div.is-current::before { transform: scaleX(1); }
.coordination .usp-list>div.is-current h3 { color: var(--color-primary); }
.js-motion .coordination-graphic { transform: rotate(var(--coordination-turn,0deg)); transition: transform .12s linear; }
.js-motion .coordination-graphic img, .js-motion .coordination-caption { transform: rotate(calc(-1 * var(--coordination-turn,0deg))); }
@media (min-width: 950px) { .coordination-layout { grid-template-columns: 1fr 1.2fr; gap: 5rem; } }
@media (max-width: 599px) {
  .hero-home { min-height: calc(100svh - 76px); margin: 0; border-radius: 0; }
  .coordination-graphic { max-width: 280px; }
  .coordination-layout { gap: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .js-motion .hero-home .hero-content { opacity: 1; transform: none; will-change: auto; }
  .js-motion .hero-home .hero-content > * { animation: none; }
  .js-motion .coordination-graphic, .js-motion .coordination-graphic img,
  .js-motion .coordination-caption { transform: none; transition: none; }
  .coordination .usp-list>div::before { transition: none; }
}

/* HERO MUSIC & SPORT — due fotografie originali, un’unica composizione. */
.hero-dual { display: grid; grid-template-columns: 46% 54%; }
.hero-world { position: relative; overflow: hidden; min-width: 0; height: 100%; }
.hero-world img { position: absolute; inset: 0; }
.hero-world-music img { object-position: 65% 45%; }
.hero-world-sport img { object-position: 47% 50%; }
.hero-dual::after { content: '&'; position: absolute; left: 46%; top: 12%; transform: translateX(-50%); font-family: var(--font-editorial); font-size: clamp(4rem,8vw,8rem); color: var(--color-white); opacity: .8; }
/* La sesta esperienza ha le stesse proporzioni fotografiche delle altre. */
.experience-image.custom-tile { min-height: 0; width: 100%; padding: 2rem; justify-content: space-between; align-items: start; }
.custom-panel-word { font-size: clamp(1.5rem,2.7vw,3rem); line-height: 1; letter-spacing: -.055em; font-weight: 600; }
.custom-tile .circle-arrow { position: absolute; }
/* PROCESSO — avanzamento continuo e fase attiva allo scroll. */
.js-motion .process .steps { position: relative; }
.js-motion .process .steps::before { content: ''; position: absolute; left: -.8rem; top: 0; width: 2px; height: 100%; background: var(--color-line-light); }
.js-motion .process .steps::after { content: ''; position: absolute; left: -.8rem; top: 0; width: 2px; height: 100%; background: var(--color-accent); transform: scaleY(var(--process-progress,0)); transform-origin: top; }
.js-motion .process .steps li { opacity: .5; transform: translateX(8px); transition: opacity .45s, transform .45s; }
.js-motion .process .steps li.is-active { opacity: 1; transform: translateX(0); }
.js-motion .process .steps li.is-active .step-number { color: var(--color-white); }
@media (max-width:599px) {
  .hero-dual { grid-template-columns: 48% 52%; }
  .hero-dual::after { left: 48%; top: 15%; }
  .hero-world-music img { object-position: 68% 40%; }
  .hero-world-sport img { object-position: 43% 50%; }
}
@media (prefers-reduced-motion:reduce) {
  .js-motion .process .steps li { opacity: 1; transform: none; transition: none; }
  .js-motion .process .steps::after { transform: scaleY(1); }
}

/* Firma ufficiale del brand nella giunzione fotografica. */
.hero-dual::after { content: none; }
.hero-dual img.hero-junction { position: absolute; inset: 12% auto auto 46%; width: clamp(48px,5vw,80px); height: auto; transform: translateX(-50%); opacity: .8; }
@media (max-width:599px) { .hero-dual img.hero-junction { left:48%; top:15%; } }

/* COMMENTI — hero al vivo, monogramma e contatti allineati. */
.hero.hero-edge { margin-inline: 0; border-radius: 0; }
.hero-brand-image img { object-position: 63% 50%; }
.coordination-graphic img { width: 46%; left: 27%; top: 38%; }
.footer-main { align-items: start; }
.footer nav { align-content: start; grid-auto-rows: 44px; }
.footer-contact { gap: .25rem; }
.footer-contact>a { display: inline-flex; align-items: center; gap: .65rem; min-height: 44px; font-size: .8rem; }
.contact-icon { width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
/* SCUOLE — fotografia da esplorare con mouse, tastiera e tap. */
.school-gallery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; margin-top: 2.5rem; }
.school-gallery-item { position: relative; padding: 0; border: 0; background: var(--color-primary); color: var(--color-white); border-radius: var(--radius-lg); overflow: hidden; cursor: pointer; text-align: left; font: inherit; }
.school-gallery-item img { width: 100%; height: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; transition: transform .7s var(--ease); }
.school-gallery-item>span { position: absolute; bottom: 0; left: 0; right: 0; display: flex; justify-content: space-between; padding: 2rem 1.2rem 1.2rem; background: linear-gradient(transparent,var(--overlay-bottom)); font-weight: 600; }
.school-gallery-item:is(:hover,:focus-visible) img { transform: scale(1.045); }
.gallery-dialog { border: 0; padding: 0; max-width: min(1100px,94vw); max-height: 92svh; background: var(--color-black); color: var(--color-white); overflow: auto; }
.gallery-dialog::backdrop { background: var(--overlay-music); }
.gallery-full-image { display: block; width: 100%; height: auto; max-height: 80svh; object-fit: contain; }
.gallery-full-caption { padding: 1rem 1.5rem; margin: 0; }
.gallery-close { position: absolute; z-index: 1; right: .5rem; top: .5rem; width: 48px; height: 48px; border: 0; border-radius: 50%; background: var(--color-white); color: var(--color-black); font-size: 2rem; cursor: pointer; }
/* ABOUT — traiettoria verticale e titoli che seguono la lettura. */
.about-story .editorial-row { position: relative; transition: border-color .5s, transform .5s, opacity .5s; }
.about-story .editorial-row::before { content: ''; position: absolute; top: 0; bottom: 0; left: -1rem; width: 2px; background: var(--color-accent); transform: scaleY(0); transform-origin: top; transition: transform .8s var(--ease); }
.about-story .editorial-row.story-active::before { transform: scaleY(1); }
.about-story .editorial-row h2 { transition: color .5s, transform .5s; }
.about-story .editorial-row.story-active h2 { color: var(--color-primary); transform: translateX(8px); }
@media (max-width:599px) {
  .hero.hero-edge { margin: 0; border-radius: 0; }
  .hero-brand-image img { object-position: 70% 50%; }
  .school-gallery-grid { grid-template-columns: minmax(0,1fr); gap: 1.25rem; }
  .school-gallery-item img { aspect-ratio: 4/3; }
}
@media (prefers-reduced-motion: reduce) {
  .school-gallery-item img, .about-story .editorial-row, .about-story .editorial-row::before, .about-story .editorial-row h2 { transition: none; }
  .about-story .editorial-row.story-active h2 { transform: none; }
}

/* Official sponsor assets, supplied by Music & Sport. */
.sponsor-slot { padding: 1.5rem; background: #fff; }
.sponsor-slot img { width: 100%; height: 80px; max-width: 100%; max-height: none; object-fit: contain; }
.sponsor-slot.sponsor-tasis img { height: 112px; }
@media (max-width: 600px) {
 .sponsor-slot { padding: 1.1rem; }
 .sponsor-slot img { height: 58px; }
 .sponsor-slot.sponsor-tasis img { height: 92px; }
}

/* MUSIC & SPORT SIGNATURE MOTION — curve / photographic settling / red thread.
   This layer replaces the former js-motion effects. HTML without JS is untouched. */
:root { --motion-ease: cubic-bezier(.22,.68,.18,1); }
.ms-motion .motion-word { display:inline-block; overflow:clip; vertical-align:bottom; padding-bottom:.13em; margin-bottom:-.13em; }
.ms-motion .motion-word>span { display:inline-block; transform:translateY(112%); transition:transform .8s var(--motion-ease); transition-delay:var(--word-delay,0ms); }
.ms-motion .motion-title.is-visible .motion-word>span,.ms-motion .hero-ready .motion-word>span { transform:none; }
.ms-motion .reveal { opacity:1; transform:none; }
.ms-motion .motion-image { clip-path:inset(12% 0 12% 0 round 42% 42% 12px 12px); transition:clip-path 1.1s var(--motion-ease); transition-delay:var(--image-delay,0ms); }
.ms-motion .motion-image img { transform:translateY(3%) scale(1.08); transition:transform 1.25s var(--motion-ease); }
.ms-motion .motion-image.is-visible { clip-path:inset(0 round var(--radius-md)); }
.ms-motion .motion-image.is-visible img { transform:none; }
@media (hover:hover) { .ms-motion .segment:hover img { transform:scale(1.045); } .ms-motion .experience-image:hover img { transform:scale(1.035); } }
.ms-motion .hero-media { transform:translateY(var(--hero-parallax,0)); inset:-4% 0; }
.ms-motion .hero-media img { transform:none; }
.ms-motion .hero-ready .hero-media img { animation:ms-hero-settle 1.3s var(--motion-ease) both; }
@keyframes ms-hero-settle { from { transform:scale(1.05); } to { transform:scale(1); } }
.ms-motion .hero .hero-content { opacity:1; transform:none; will-change:auto; }
.ms-motion .hero .hero-content>* { animation:none; }
.ms-motion .hero .hero-title .motion-word>span { transition-duration:1s; transition-delay:calc(100ms + var(--word-delay)); }
.ms-motion .hero-ready .hero-description { animation:ms-arrive .75s .32s var(--motion-ease) both; }
.ms-motion .hero-ready .hero-ctas { animation:ms-arrive .75s .55s var(--motion-ease) both; }
@keyframes ms-arrive { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
.ms-motion .positioning::after { transform:scaleX(0); transform-origin:left; transition:transform 1.2s var(--motion-ease); }
.ms-motion .positioning.is-visible::after { transform:scaleX(1); }
.ms-motion .safety-band { clip-path:inset(4% 0 0 round 56px 56px 0 0); transition:clip-path 1s var(--motion-ease); }
.ms-motion .safety-band.is-visible { clip-path:inset(0 round 0); }
.ms-motion .safety-points>div { border-top-color:var(--color-line-light); transition:transform .7s var(--motion-ease); transform:translateX(18px); }
.ms-motion .safety-points>div.is-visible { transform:none; }
.ms-motion .final-cta .cta-symbol { transform:translateY(18px) rotate(-7deg); transition:transform 1.2s var(--motion-ease); }
.ms-motion .final-cta.is-visible .cta-symbol { transform:none; }
.ms-motion .coordination-graphic { transform:rotate(var(--coordination-turn,0deg)); transition:transform .9s var(--motion-ease); }
.ms-motion .coordination-graphic img { transform:rotate(calc(-1 * var(--coordination-turn,0deg))); transition:transform .9s var(--motion-ease); }
.ms-motion .coordination .usp-list>div.is-current>span { color:var(--color-accent); }
.ms-motion .process .steps { position:relative; }
.ms-motion .process .steps::before,.ms-motion .process .steps::after { content:''; position:absolute; left:-.8rem; top:0; width:2px; height:100%; background:var(--color-line-light); }
.ms-motion .process .steps::after { background:var(--color-accent); transform:scaleY(var(--process-progress,0)); transform-origin:top; }
.ms-motion .process .steps li { opacity:.58; transform:translateX(9px); transition:opacity .4s,transform .6s var(--motion-ease); }
.ms-motion .process .steps li.is-active { opacity:1; transform:none; }
.ms-motion .process .steps li.is-active .step-number { color:var(--color-accent); }
.process-chapter { display:block; color:var(--color-accent); font-size:.8rem; letter-spacing:.12em; margin-top:1.5rem; }
.process-visual { position:relative; height:150px; overflow:hidden; border-radius:var(--radius-md); margin-top:.75rem; max-width:400px; }
.process-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.04); transition:opacity .5s,transform .8s var(--motion-ease); }
.process-visual img.is-current { opacity:1; transform:none; }
@media (min-width:950px) and (min-height:700px) { .ms-motion .process-intro { top:110px; } .ms-motion .process .steps li { min-height:45svh; align-items:center; } .ms-motion .process-intro h2 { font-size:clamp(2rem,3.5vw,3.6rem); } }
@media (max-width:949px), (max-height:699px) { .process-visual,.process-chapter { display:none; } .ms-motion .process .steps li { opacity:1; transform:none; } .ms-motion .process-intro { position:static; } }
.experience-controls { display:none; }
.story-custom { max-width:calc((100% - 4rem)/3); margin-top:3rem; }
.experience-track:not(.is-pinned) + .story-custom { max-width:none; }
.experience-track:not(.is-pinned) + .story-custom .experience-image { max-width:400px; }
@media (min-width:950px) and (min-height:700px) {
 .experience-track.is-pinned { height:360svh; position:relative; }
 .is-pinned .experience-stage { position:sticky; top:100px; height:calc(100svh - 120px); min-height:540px; display:flex; flex-direction:column; }
 .is-pinned .experience-controls { display:flex; align-items:center; justify-content:space-between; padding-bottom:1rem; position:relative; }
 .is-pinned .experience-controls::after { content:''; position:absolute; bottom:0; left:0; height:2px; width:100%; background:var(--color-accent); transform:scaleX(var(--experience-progress,0)); transform-origin:left; }
 .experience-count { color:var(--color-primary); font-size:.85rem; letter-spacing:.1em; }
 .experience-chapters { display:flex; gap:.5rem; }
 .experience-chapters button { width:44px; height:44px; background:none; color:var(--color-primary); border:1px solid var(--color-line); border-radius:50%; transition:color .3s,background .3s; }
 .experience-chapters button[aria-pressed="true"] { background:var(--color-accent); color:#fff; border-color:var(--color-accent); }
 .is-pinned .experience-grid { display:block; position:relative; flex:1; margin:1.5rem 0 0; }
 .is-pinned .experience-item { position:absolute; inset:0; display:grid; grid-template-columns:1.25fr 1fr; align-items:center; gap:clamp(2rem,6vw,6rem); margin:0!important; padding:0; opacity:0; visibility:hidden; transition:opacity .5s,visibility .5s; }
 .is-pinned .experience-item.story-active { opacity:1; visibility:visible; z-index:1; }
 .is-pinned .experience-image { height:100%; max-height:100%; aspect-ratio:auto; clip-path:inset(0 0 100% round 40% 40% 20px 20px); transition:clip-path .8s var(--motion-ease); }
 .is-pinned .story-active .experience-image { clip-path:inset(0 round var(--radius-md)); }
 .is-pinned .experience-image img { width:100%; height:100%; object-fit:cover; transform:scale(1.07); transition:transform 1s var(--motion-ease); }
 .is-pinned .story-active .experience-image img { transform:scale(1); }
 .is-pinned .experience-meta { transform:translateX(24px); transition:transform .7s var(--motion-ease); }
 .is-pinned .story-active .experience-meta { transform:none; }
 .is-pinned .experience-meta h3 { font-size:clamp(2rem,4.5vw,4.8rem); max-width:12ch; line-height:1.04; }
 .is-pinned .experience-line { font-size:1.15rem; max-width:28ch; }
}
/* Navigation: transparent over a hero, gradually solid and optically more compact. */
.ms-motion.has-motion-hero .header { position:fixed; inset:0 0 auto; height:96px; background:transparent; color:#fff; isolation:isolate; }
.ms-motion.has-motion-hero .header::before { content:''; position:absolute; inset:0; background:rgba(255,255,255,.96); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); opacity:var(--header-progress,0); transform:scaleY(calc(1 - var(--header-progress,0)*.16)); transform-origin:top; z-index:-1; }
.ms-motion.has-motion-hero .header>a,.ms-motion.has-motion-hero .header>nav,.ms-motion.has-motion-hero .header>.header-actions { transform:translateY(calc(var(--header-progress,0)*-8px)); }
.ms-motion.has-motion-hero .header .desktop-nav a,.ms-motion.has-motion-hero .header .language-current { color:inherit; }
.ms-motion.has-motion-hero .header.header-solid { color:var(--color-black); }
.ms-motion.has-motion-hero .header .brand { position:relative; transform:translateY(calc(var(--header-progress,0)*-8px)) scale(calc(1 - var(--header-progress,0)*.05)); transform-origin:left center; }
.ms-motion.has-motion-hero .header .brand-logo:not(.brand-logo-inverse) { opacity:var(--header-progress,0); }
.brand-logo-inverse { display:none; }
.ms-motion.has-motion-hero .brand-logo-inverse { display:block; position:absolute; inset:0; opacity:calc(1 - var(--header-progress,0)); }
.ms-motion.has-motion-hero .hero { min-height:100svh; }
.ms-motion.has-motion-hero .hero .hero-content { padding-top:9rem; }
.ms-motion .mobile-menu[open] { animation:ms-menu-panel .5s var(--motion-ease) both; }
.ms-motion .mobile-menu[open] nav>a { animation:ms-arrive .6s var(--motion-ease) both; }
.ms-motion .mobile-menu[open] nav>a:nth-child(2) { animation-delay:60ms; }
.ms-motion .mobile-menu[open] nav>a:nth-child(3) { animation-delay:120ms; }
.ms-motion .mobile-menu[open] nav>a:nth-child(4) { animation-delay:180ms; }
.ms-motion .mobile-menu[open] nav>a:nth-child(5) { animation-delay:240ms; }
.ms-motion .mobile-menu[open]>.button { animation:ms-arrive .6s .3s var(--motion-ease) both; }
@keyframes ms-menu-panel { from { clip-path:inset(0 0 100% round 0 0 30% 30%); } to { clip-path:inset(0); } }
.button { transition:background .3s,color .3s,transform .3s var(--motion-ease); }
@media (hover:hover) { .button:hover { transform:translateY(-2px); } .button:hover .arrow { transform:translate(4px,-4px); } }
.sponsor-viewport { overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; margin-top:2rem; }
.sponsor-marquee { display:flex; gap:16px; width:max-content; }
.sponsor-marquee .sponsor-grid { display:flex; gap:16px; width:max-content; }
.sponsor-marquee .sponsor-slot { width:clamp(180px,21vw,290px); min-height:160px; flex-shrink:0; }
.sponsor-copy { display:none!important; }
.marquee-running { overflow:hidden; }
.marquee-running .sponsor-copy { display:flex!important; }
.sponsor-pause { display:block; margin:1rem 0 0 auto; background:none; color:var(--color-primary); padding:.6rem; min-height:44px; font-size:.75rem; border-bottom:1px solid var(--color-line); }
.sponsor-pause[hidden] { display:none; }
@media (hover:hover) and (pointer:fine) { .marquee-running .sponsor-slot img { filter:grayscale(1); opacity:.75; transition:filter .35s,opacity .35s,transform .4s var(--motion-ease); } .marquee-running .sponsor-slot:hover img,.marquee-running:focus-within .sponsor-slot img { filter:none; opacity:1; transform:scale(1.035); } }
@media(max-width:599px) { .ms-motion.has-motion-hero .header { height:80px; } .story-custom { max-width:none; } .ms-motion .motion-word>span { transition-duration:.65s; } }
/* Same-origin View Transitions: native navigation and history remain intact. */
@view-transition { navigation:auto; }
::view-transition-group(root) { animation-duration:.32s; }
::view-transition-old(root) { animation:ms-page-out .22s both; }
::view-transition-new(root) { animation:ms-page-in .32s both; }
@keyframes ms-page-out { to { opacity:0; transform:translateY(-12px); } }
@keyframes ms-page-in { from { clip-path:inset(100% 0 0 round 22% 22% 0 0); } to { clip-path:inset(0); } }
html { background:#113656; }
body { background:#fff; }
/* Fallback overlay only on browsers without native page transitions. */
.page-veil { position:fixed; inset:0; background:#113656; z-index:1000; pointer-events:none; transform:translateY(101%); transition:transform .22s var(--motion-ease); }
.page-veil.is-covering { transform:translateY(0); }
.page-veil.is-arriving { transform:translateY(-101%); transition-duration:.25s; }
@media(prefers-reduced-motion:reduce) {
 .ms-motion .motion-word>span,.ms-motion .motion-image img,.ms-motion .coordination-graphic,.ms-motion .coordination-graphic img,.ms-motion .process .steps li,.ms-motion .safety-points>div,.ms-motion .final-cta .cta-symbol { transform:none!important; transition:none!important; }
 .ms-motion .motion-image,.ms-motion .safety-band { clip-path:none!important; transition:none!important; }
 .ms-motion .hero-media { transform:none; }
 .ms-motion .hero-ready .hero-media img,.ms-motion .hero-ready .hero-description,.ms-motion .hero-ready .hero-ctas,.ms-motion .mobile-menu[open],.ms-motion .mobile-menu[open] nav>a,.ms-motion .mobile-menu[open]>.button { animation:none; }
 .ms-motion .process .steps li { opacity:1; }
 .process-visual,.process-chapter,.experience-controls { display:none; }
 .ms-motion .process-intro { position:static; }
 .page-veil { display:none; }
 @view-transition { navigation:none; }
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*) { animation:none!important; }
 .sponsor-viewport { overflow:auto; }
}
@media print { .experience-track { height:auto!important; } .experience-stage { position:static!important; height:auto!important; } .is-pinned .experience-item { position:static!important; opacity:1!important; visibility:visible!important; } .motion-word>span { transform:none!important; } .page-veil,.experience-controls,.sponsor-copy,.process-visual { display:none!important; } }
.ms-motion.has-motion-hero .menu-toggle { color:inherit; }
.ms-motion.has-motion-hero .menu-toggle span { background:currentColor; }
/* Reveal containers are not clipped for users printing or preferring less motion. */
@media print { .motion-image,.safety-band { clip-path:none!important; } }
.experience-grid>.story-custom { max-width:none; margin-top:0; }
body:has(.mobile-menu[open]) { overflow:hidden; }
@media(prefers-reduced-motion:reduce) { .ms-motion .positioning::after { transform:scaleX(1); transition:none; } .ms-motion .coordination .usp-list>div::before { transition:none; } }
/* Establish hero geometry before first paint; defer only animates its contents. */
.motion-boot:has(main>.hero) .header { position:fixed; inset:0 0 auto; height:96px; background:transparent; color:#fff; border:0; }
.motion-boot:has(main>.hero) .header .brand-logo { filter:brightness(0) invert(1); }
.motion-boot:has(main>.hero) .header .desktop-nav a,.motion-boot:has(main>.hero) .header .language-current { color:#fff; }
.motion-boot:has(main>.hero) .menu-toggle { color:#fff; }
.motion-boot:has(main>.hero) .menu-toggle span { background:currentColor; }
.motion-boot:has(main>.hero) .hero { min-height:100svh; }
.motion-boot:has(main>.hero) .hero .hero-content { padding-top:9rem; }
@media(max-width:599px) { .motion-boot:has(main>.hero) .header { height:80px; } }
.ms-motion .process { clip-path:inset(3% 0 0 round 56px 56px 0 0); transition:clip-path 1s var(--motion-ease); }
.ms-motion .process.is-visible { clip-path:inset(0); }
@media(min-width:950px) and (min-height:700px) { .ms-motion .coordination-layout { align-items:start; } .ms-motion .coordination-graphic { position:sticky; top:120px; } }
@media(prefers-reduced-motion:reduce) { .ms-motion .process { clip-path:none; transition:none; } .ms-motion .coordination-graphic { position:relative; top:auto; } }
@media print { .process { clip-path:none!important; } }
.ms-motion main section[id] { scroll-margin-top:100px; }

/* Feedback 12 October: editorial alignment and five coordination points. */
.hero-home .hero-ctas>.text-link { margin-inline:1.7rem; }
.dot-four { right:20%; top:15%; }
.dot-five { left:6%; top:52%; background:var(--color-accent); }
.process-visual { display:grid; place-items:center; background:rgb(255 255 255 / .035); border:1px solid var(--color-line-light); }
.process-visual .process-icon { position:absolute; inset:0; display:grid; place-items:center; opacity:0; transform:translateY(8px); transition:opacity .35s,transform .5s var(--motion-ease); color:var(--color-accent); }
.process-visual .process-icon.is-current { opacity:1; transform:none; }
.process-icon svg { width:88px; height:88px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.step-icon { display:inline-flex; color:var(--color-accent); margin-bottom:.7rem; }
.step-icon svg { width:36px; height:36px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
@media(min-width:950px) and (min-height:700px) { .step-icon { display:none; } }
@media(prefers-reduced-motion:reduce) { .process-visual .process-icon { transition:none; transform:none; } .step-icon { display:inline-flex; } }
@media(min-width:950px) {
 .footer-contact { display:grid; grid-template-columns:max-content max-content max-content; grid-template-rows:repeat(4,44px); gap:.25rem .85rem; align-items:center; }
 .footer-contact>a:nth-of-type(1) { grid-area:1 / 1 / 2 / 4; }
 .footer-contact>a:nth-of-type(2) { grid-area:2 / 1 / 3 / 4; }
 .footer-contact>.social-links,.footer-contact>.menu-languages { display:contents; }
 .footer-contact .social-links>a:nth-child(1) { grid-area:3 / 1; }
 .footer-contact .social-links>a:nth-child(2) { grid-area:3 / 2; }
 .footer-contact .menu-languages>a[lang="it"] { grid-area:4 / 2; }
 .footer-contact .menu-languages>a[lang="en"] { grid-area:4 / 1; }
 .footer-contact .menu-languages>a { display:flex; align-items:center; min-height:44px; font-size:.75rem; padding:0; }
}

/* Christian Minotti — editorial portrait, October 2026. */
.about-teaser .about-image { background:#f3f4f5; }
.about-teaser .about-image img { object-fit:contain; object-position:center bottom; }
.founder-profile { margin:0 1rem 7rem; color:#fff; background:#101010; border-radius:32px; overflow:hidden; }
.founder-stage { position:relative; padding-top:6rem; padding-bottom:3rem; min-height:880px; }
.founder-copy { position:relative; z-index:2; width:42%; padding-bottom:4rem; }
.founder-copy :is(h1,h2) { font-family:Georgia,serif; font-weight:400; font-size:clamp(3.5rem,6.5vw,7rem); line-height:.95; letter-spacing:-.045em; margin:2rem 0; }
.founder-copy :is(h1,h2) em { font-weight:400; }
.founder-copy p { color:#c8c8c8; max-width:34ch; }
.founder-copy .eyebrow { color:#fff; }
.founder-copy .founder-lead { font-size:1.3rem; color:#fff; }
.founder-copy .button { margin-top:1.5rem; }
.founder-portrait { position:absolute; right:-4%; top:2rem; width:60%; height:calc(100% - 2rem); margin:0; }
.founder-portrait img { width:100%; height:100%; object-fit:contain; object-position:center bottom; }
.founder-chapters { position:relative; z-index:3; display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; width:82%; }
.founder-chapter { display:block; background:#113656; border-radius:14px; overflow:hidden; text-decoration:none; }
.founder-chapter img { width:100%; height:150px; object-fit:cover; transition:transform .6s ease; }
.founder-chapter:hover img { transform:scale(1.04); }
.founder-chapter>span { position:relative; display:flex; gap:.8rem; align-items:center; padding:1rem; color:#fff; background:#113656; }
.founder-chapter small { color:#ef8c84; font-size:.65rem; }
.founder-chapter b { margin-left:auto; font-weight:400; }
.ms-motion .founder-profile .founder-chapter:nth-child(2) { transition-delay:100ms; }
.ms-motion .founder-profile .founder-chapter:nth-child(3) { transition-delay:200ms; }
@media(max-width:899px) {
 .founder-profile { margin:0 .6rem 4rem; border-radius:24px; }
 .founder-stage { padding-top:3.5rem; min-height:0; }
 .founder-copy { width:100%; padding-bottom:1rem; }
 .founder-copy :is(h1,h2) { font-size:4rem; }
 .founder-portrait { position:relative; right:auto; top:auto; width:100%; height:520px; margin-top:-1rem; }
 .founder-chapters { width:100%; gap:.6rem; margin-top:-2rem; }
 .founder-chapter img { height:100px; }
 .founder-chapter>span { padding:.7rem .5rem; gap:.3rem; font-size:.75rem; }
 .founder-chapter small { display:none; }
}
@media(prefers-reduced-motion:reduce) { .founder-chapter img { transition:none; } .founder-chapter:hover img { transform:none; } }

/* Shared visual refresh: all pages and viewport sizes. */
:root { --color-page:#f3eee2; }
html, body, main, .sponsors { background-color:var(--color-page); }
.footer { background-color:#113656; }
.process { background-color:#113656; background-image:linear-gradient(rgba(17,54,86,.89),rgba(17,54,86,.89)),url('../assets/images/refresh-hiking.jpg'); background-size:cover; background-position:center; }
.header, .ms-motion.has-motion-hero .header, .motion-boot:has(main>.hero) .header { background:rgba(243,238,226,.68); color:#113656; backdrop-filter:blur(22px) saturate(140%); -webkit-backdrop-filter:blur(22px) saturate(140%); border-bottom:1px solid rgba(255,255,255,.4); }
.ms-motion.has-motion-hero .header::before { display:none; }
.header .brand-logo, .ms-motion.has-motion-hero .header .brand-logo, .motion-boot:has(main>.hero) .header .brand-logo { filter:none; }
.header .desktop-nav a, .header .language-current, .ms-motion.has-motion-hero .header .desktop-nav a, .ms-motion.has-motion-hero .header .language-current, .motion-boot:has(main>.hero) .header .desktop-nav a, .motion-boot:has(main>.hero) .header .language-current { color:#113656; }
.header .menu-toggle { color:#113656; }
.process-visual, .process-chapter { display:none!important; }
.process .step-icon { display:flex; justify-content:flex-start; margin-bottom:1rem; }
.about-image, .about-image img { background-color:var(--color-page); }
@view-transition { navigation:none; }

.sponsor-strip { background-color:var(--color-page); }

/* Refinements shared across all viewport sizes. */
.header .brand-logo:not(.brand-logo-inverse), .ms-motion.has-motion-hero .header .brand-logo:not(.brand-logo-inverse) { opacity:1; filter:none; }
.header .brand-logo-inverse, .ms-motion.has-motion-hero .header .brand-logo-inverse { display:none; }
.header, .ms-motion.has-motion-hero .header, .motion-boot:has(main>.hero) .header { background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; border-color:transparent; transition:background .25s ease,backdrop-filter .25s ease; }
.header.header-solid, .ms-motion.has-motion-hero .header.header-solid { background:rgba(243,238,226,.72); backdrop-filter:blur(22px) saturate(140%); -webkit-backdrop-filter:blur(22px) saturate(140%); border-bottom:1px solid rgba(255,255,255,.4); }
.safety-band, .final-cta { width:100%; max-width:none; margin:0; border-radius:0; }
.ms-motion .safety-band { clip-path:none; }
.safety-band + .final-cta { margin-top:0; }
.sponsor-slot { background:var(--color-page); border-color:transparent; }
.sponsor-slot img { mix-blend-mode:multiply; }
.process { background-image:linear-gradient(rgba(17,54,86,.86),rgba(17,54,86,.86)),url('../assets/images/lake-1800.webp'); }
.process .step-number, .process .step-icon, .ms-motion .process .steps li.is-current .step-number { color:#fff; opacity:1; }
#christian-minotti { background-color:#10375a; }
.founder-copy p { max-width:42ch; }
.founder-stage { min-height:750px; }
@media(max-width:899px) { .founder-stage { min-height:0; } }

/* Equivalent sections keep the same treatment on music and destination pages. */
.music-world .process { background-color:#113656; background-image:linear-gradient(rgba(17,54,86,.86),rgba(17,54,86,.86)),url('../assets/images/lake-1800.webp'); background-size:cover; background-position:center; }
.music-world .safety-band, .music-world .final-cta { background-color:#113656; }
.ms-motion .process .steps li.is-active .step-number,
.js-motion .process .steps li.is-active .step-number,
.process .steps li .step-icon { color:#fff; opacity:1; }

/* Supplied media and aligned navigation, shared across languages. */
.header, .ms-motion.has-motion-hero .header { align-items:center; }
.ms-motion.has-motion-hero .header>a,
.ms-motion.has-motion-hero .header>nav,
.ms-motion.has-motion-hero .header>.header-actions,
.ms-motion.has-motion-hero .header .brand { transform:none; }
.header .brand, .header .desktop-nav, .header .header-actions { align-self:center; align-items:center; }
.header .brand-logo { vertical-align:middle; }
body.music-world { background-color:var(--color-page); }
.hero, .music-world .hero { margin:0; width:100%; max-width:none; border-radius:0; }
#audiences, body[data-page="music"] #intro { position:relative; isolation:isolate; }
#audiences::before, body[data-page="music"] #intro::before { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background:url('../assets/images/brand-waves.gif') center top / 100% auto no-repeat; opacity:.65; mix-blend-mode:multiply; }
body[data-page="schools"] .process { background-image:linear-gradient(rgba(17,54,86,.82),rgba(17,54,86,.82)),url('../assets/images/refresh-family.jpg'); background-position:center; }
body.music-world .process { background-image:linear-gradient(rgba(17,54,86,.82),rgba(17,54,86,.82)),url('../assets/images/music-1800.webp'); background-position:center; }
body[data-page="water"] .process { background-image:linear-gradient(rgba(17,54,86,.80),rgba(17,54,86,.80)),url('../assets/images/boat-lake.jpg'); }
body[data-page="ski"] .process { background-image:linear-gradient(rgba(17,54,86,.80),rgba(17,54,86,.80)),url('../assets/images/snowboard-gabin.jpg'); background-position:center 70%; }
@media(prefers-reduced-motion:reduce) { #audiences::before, body[data-page="music"] #intro::before { background-image:url('../assets/images/brand-waves-still.png'); } }

body[data-page="water"] .hero-media img { object-position:50% 85%!important; }
body[data-page="water"] .process { background-position:50% 85%; }

/* Eleven-photo editorial mosaic. The statement stays at the lower left on desktop. */
.memory-gallery { padding-block:clamp(4rem,7vw,7rem); }
.memory-gallery h2 { max-width:22ch; }
.memory-description { margin-top:1rem; color:var(--color-muted); }
.memory-mosaic { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:repeat(8,minmax(0,1fr)); height:clamp(560px,58vw,820px); gap:clamp(8px,1.2vw,18px); margin-top:3rem; }
.memory-tile { position:relative; display:block; padding:0; min-width:0; min-height:0; overflow:hidden; border-radius:3px; background:#113656; color:white; text-align:left; cursor:pointer; }
.memory-tile img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .5s ease; }
.memory-tile:hover img { transform:scale(1.045); }
.memory-tile:focus-visible { outline:3px solid var(--color-accent); outline-offset:4px; }
.memory-caption { position:absolute; inset:auto 0 0; display:flex; align-items:center; gap:.5rem; padding:1.5rem .65rem .65rem; background:linear-gradient(transparent,rgba(0,0,0,.65)); font-size:clamp(.5rem,.75vw,.72rem); }
.memory-caption small { opacity:.75; font-size:.58rem; }
.memory-caption>span { margin-left:auto; font-size:1.15rem; }
.memory-tile-1 { grid-area:3/1/5/4; }
.memory-tile-2 { grid-area:2/4/5/7; }
.memory-tile-3 { grid-area:1/7/5/9; }
.memory-tile-4 { grid-area:1/9/3/11; }
.memory-tile-5 { grid-area:2/11/5/13; }
.memory-tile-6 { grid-area:3/9/5/11; }
.memory-tile-7 { grid-area:5/4/9/6; }
.memory-tile-8 { grid-area:5/6/8/9; }
.memory-tile-9 { grid-area:5/9/7/11; }
.memory-tile-10 { grid-area:5/11/7/13; }
.memory-tile-11 { grid-area:7/9/9/13; }
.memory-statement { grid-area:5/1/9/4; align-self:end; color:var(--color-primary); font-size:clamp(1.8rem,3.2vw,3.7rem); font-weight:700; letter-spacing:-.055em; line-height:1.06; margin:0; padding-bottom:.25rem; }
.memory-tile-3 img { object-position:65% 75%; }
.memory-tile-6 img { object-position:50% 85%; }
@media(max-width:899px) {
 .memory-mosaic { height:auto; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:none; grid-auto-rows:180px; gap:10px; }
 .memory-mosaic .memory-tile { grid-area:auto; }
 .memory-mosaic .memory-tile:nth-child(3n+1) { grid-row:span 2; }
 .memory-statement { grid-area:auto; grid-column:1/-1; padding-top:1rem; font-size:2.5rem; }
 .memory-caption { font-size:.65rem; }
}
@media(max-width:599px) {
 .memory-mosaic { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:145px; margin-top:2rem; }
 .memory-mosaic .memory-tile:nth-child(3n+1) { grid-row:span 1; }
 .memory-mosaic .memory-tile:nth-child(4n+1) { grid-row:span 2; }
 .memory-statement { font-size:2.25rem; }
}
@media(prefers-reduced-motion:reduce) { .memory-tile img { transition:none; } }


/* Text selection across all pages. */
::selection { background:#113656; color:#fff; text-shadow:none; }

/* Larger method heading: fluid sizing preserves mobile wrapping. */
.process-intro h2, .ms-motion .process-intro h2 { font-size:clamp(2.3rem,4.6843vw,4.5rem); line-height:1.08; }

/* Shared final invitation palette and button typography. */
.final-cta, .music-world .final-cta { background-color:#b32f2c; }
.final-cta .button, .music-world .final-cta .button { background-color:#113656; color:#fff; font-size:1.0475rem; }
.final-cta .button:hover, .music-world .final-cta .button:hover { background-color:#0b2943; color:#fff; }
.final-cta .button:focus-visible { outline:3px solid #fff; outline-offset:4px; }

.final-cta .button, .music-world .final-cta .button { font-size:.985rem; }

/* Contact form typography and shared header action. */
#experience-form legend, #experience-form .field>label { font-size:1.25rem; line-height:1.4; }
.header .header-actions .button.compact { font-size:.95rem; }

/* Shared final CTA spacing; minimum height allows longer translations to grow. */
.final-cta { min-height:31.3041875rem; }
.final-cta .button, .music-world .final-cta .button { padding-top:1.175rem; padding-bottom:1.175rem; margin-top:3.4375rem; margin-left:-.5625rem; }

/* Revisione mirata: il CSS originale sopra resta la base del sito. */
.sponsor-slot img,.marquee-running .sponsor-slot img { filter:none!important; opacity:1; mix-blend-mode:normal; }
.domain-symbol { position:absolute; width:32px; height:32px; left:-10px; top:-38px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; transform:rotate(calc(-1 * var(--coordination-turn,0deg))); transition:transform .9s var(--motion-ease); }
.domain-music { color:var(--color-accent); }
.domain-sport { color:var(--color-primary); }
.button { min-height:52px; height:auto; line-height:1.35; padding-block:.95rem; }
.header .button.compact { min-height:48px; padding-block:.75rem; }
.header .desktop-nav a { padding-block:12px; }
.header-actions { gap:.7rem; }
.header-actions .language-current { min-height:44px; display:inline-flex; align-items:center; padding-inline:5px; text-decoration:underline; text-underline-offset:4px; }
.header-actions .text-size-trigger { min-height:44px; min-width:40px; border:1px solid currentColor; border-radius:var(--radius-pill); background:transparent; color:inherit; padding:.4rem .55rem; font:600 .85rem var(--font-body); cursor:pointer; }
.text-size-panel { position:absolute; z-index:40; right:var(--gutter); top:calc(100% - 4px); width:min(290px,calc(100vw - 32px)); padding:20px; border:1px solid var(--color-line); border-radius:var(--radius-md); background:var(--color-page); color:var(--color-primary); box-shadow:0 12px 30px rgb(17 54 86 / .14); }
.text-size-panel[hidden] { display:none; }
.text-size-panel #text-size-title { font-size:1rem; font-weight:700; margin:0 0 10px; }
.text-size-label { display:block; font-size:.8rem; margin-bottom:14px; }
.text-size-slider { display:flex; align-items:center; gap:12px; }
.text-size-slider span { white-space:nowrap; font-size:.85rem; }
.text-size-slider input { min-width:0; width:100%; min-height:44px; padding:0; accent-color:var(--color-accent); }
.text-size-bottom { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-top:10px; }
.text-size-reset { background:transparent; color:inherit; padding:10px 0 10px 10px; border:0; text-decoration:underline; font-size:.85rem; min-height:44px; cursor:pointer; }
.text-size-bottom output { font-size:.85rem; }
.field-error { color:var(--color-accent); font-size:.9rem; line-height:1.5; margin-top:.5rem; }
.field-error[hidden] { display:none; }
[aria-invalid=true] { border-color:var(--color-accent); }
#experience-form input[type=text],#experience-form input[type=email],#experience-form select { min-height:52px; }
#experience-form .field>label { margin-bottom:.7rem; }
#experience-form .segment-options label { min-height:52px; }
#experience-form .draft-output { scroll-margin-top:120px; }
#experience-form .draft-output .text-link { min-height:48px; margin:.6rem 1rem .6rem 0; }
/* Empty testimonial templates are inert. These rules apply only to approved content. */
.testimonial-stage { position:relative; margin-top:2.5rem; }
.testimonial-item { margin:0 0 2rem; padding:1.5rem 0; border-top:1px solid var(--color-line); width:min(100%,42ch); }
.testimonial-item blockquote { font-size:clamp(1.3rem,2.4vw,2.2rem); line-height:1.4; margin:0; font-weight:500; letter-spacing:-.025em; }
.testimonial-item figcaption { font-size:.9rem; margin-top:1.5rem; color:var(--color-muted); }
.testimonials-is-running .testimonial-item { position:absolute; margin:0; top:0; }
.testimonials-is-running .testimonial-item[data-position=left] { left:0; }
.testimonials-is-running .testimonial-item[data-position=center] { left:50%; transform:translateX(-50%); top:24px; }
.testimonials-is-running .testimonial-item[data-position=right] { right:0; top:48px; }
.testimonial-pause { margin-top:1.5rem; background:transparent; color:var(--color-primary); min-height:44px; }
/* Reflow is enabled only when the visitor deliberately enlarges text. */
.text-enlarged .desktop-nav { display:none; }
.text-enlarged .menu-toggle { display:flex; }
.text-enlarged .header,.text-enlarged.ms-motion.has-motion-hero .header { height:auto!important; min-height:96px; flex-wrap:wrap; padding-block:12px; }
.text-enlarged .header-actions { flex-wrap:wrap; max-width:100%; }
.text-enlarged .header>.brand { flex-shrink:0; }
.text-enlarged .hero-content { padding-top:180px!important; }
.text-enlarged .hero-title,.text-enlarged h1,.text-enlarged h2,.text-enlarged h3 { max-width:100%; overflow-wrap:anywhere; }
.text-enlarged .motion-word { max-width:100%; overflow:visible; }
.text-enlarged .motion-word>span { white-space:normal; overflow-wrap:anywhere; }
.text-enlarged .hero-bottom,.text-enlarged .position-grid,.text-enlarged .contact-page,.text-enlarged .process-layout { grid-template-columns:minmax(0,1fr); }
.text-enlarged .hero-ctas { flex-wrap:wrap; }
.text-enlarged .process-intro { position:static; }
.text-enlarged .steps li { min-height:0!important; }
.text-enlarged .button,.text-enlarged .text-link,.text-enlarged .mobile-menu nav a { white-space:normal; overflow-wrap:anywhere; }
.text-enlarged .mobile-menu { overflow-y:auto; max-height:100dvh; }
.text-enlarged .footer-contact { display:flex; flex-direction:column; align-items:flex-start; }
.text-enlarged .footer-contact .social-links,.text-enlarged .footer-contact .menu-languages { display:flex; flex-wrap:wrap; }
.text-enlarged .memory-caption { flex-wrap:wrap; overflow-wrap:anywhere; }
.text-enlarged .field,.text-enlarged .field input,.text-enlarged .field select,.text-enlarged .field textarea { min-width:0; max-width:100%; }
@media(max-width:1150px) {
 .header .desktop-nav { display:none; }
 .header .menu-toggle { display:flex; }
}
@media(max-width:649px) {
 .header-actions { gap:4px; }
 .text-size-panel { right:16px; }
 .text-enlarged .header { gap:8px; }
 .text-enlarged .header-actions { margin-left:auto; }
 .text-enlarged .form-grid { grid-template-columns:minmax(0,1fr); }
 .testimonials-is-running .testimonial-item[data-position] { left:0; right:auto; top:0; transform:none; width:100%; }
}
@media(max-width:359px) { .header .brand-logo { width:140px; } }
@media(prefers-reduced-motion:reduce) { .domain-symbol { transition:none; transform:none; } }
@media(max-width:359px) { #coordination { overflow-x:clip; } }
.testimonial-pause[hidden],.testimonial-item[hidden],.testimonials[hidden] { display:none!important; }
.domain-symbol { opacity:.65; transition:opacity .4s var(--motion-ease),transform .9s var(--motion-ease); }
.domain-symbol.is-current { opacity:1; }
@media(prefers-reduced-motion:reduce) { .domain-symbol { opacity:1; transition:none; } }
/* Requested preview updates — shared responsive components. */
html.has-motion-hero .header:not(.header-solid) { color:#fff; background:rgba(17,54,86,.16); }
html.has-motion-hero .header:not(.header-solid) .desktop-nav a,
html.has-motion-hero .header:not(.header-solid) .language-current,
html.has-motion-hero .header:not(.header-solid) .text-size-trigger { color:#fff; }
html.has-motion-hero .header.header-solid { color:#113656; }
html.has-motion-hero .header.header-solid .desktop-nav a,
html.has-motion-hero .header.header-solid .language-current,
html.has-motion-hero .header.header-solid .text-size-trigger { color:#113656; }
.text-size-hint { position:absolute; right:var(--gutter); top:calc(100% + 12px); max-width:260px; padding:16px 20px; border:1px solid #d8d4ca; border-radius:14px; background:#fff; color:#113656; box-shadow:0 8px 30px #11365625; font:500 14px/1.5 var(--font-body); cursor:pointer; z-index:45; }
.footer-contact>a { font-size:clamp(16px,1.48vw,20px); overflow-wrap:anywhere; }
.footer-contact .contact-icon { width:24px; height:24px; flex:0 0 24px; }
#christian-minotti.founder-profile { margin-inline:0; border-radius:0; }
.reviews { overflow:hidden; }
.reviews-window { margin-top:32px; overflow:hidden; }
.reviews-track,.reviews-group { display:flex; gap:24px; width:max-content; }
.reviews-track { animation:reviews-scroll 40s linear infinite; }
.reviews-group { padding-right:24px; gap:24px; }
.review-card { position:relative; width:320px; min-height:250px; padding:28px; border-radius:28px; background:#f4f3f0; color:#113656; display:flex; flex-direction:column; }
.review-card:nth-child(odd) { background:linear-gradient(115deg,#f4f8fc,#c9deee); }
.review-card small { font-size:10px; letter-spacing:.06em; }
.review-card p { margin:20px 0 32px; font-size:18px; line-height:1.5; }
.review-card footer { margin-top:auto; font-size:12px; padding-left:30px; }
.review-card>span { position:absolute; bottom:12px; left:20px; font-size:60px; color:#487b9f80; }
.reviews:hover .reviews-track,.reviews:focus-within .reviews-track,.reviews.paused .reviews-track { animation-play-state:paused; }
@keyframes reviews-scroll { to { transform:translateX(-50%); } }
.professionals-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; padding-top:35px; }
.professional-card { border:0; background:transparent; padding:0; text-align:left; color:#113656; perspective:1200px; cursor:pointer; min-width:0; }
.professional-inner { display:block; position:relative; min-height:440px; transform-style:preserve-3d; transition:transform .65s; }
.professional-front,.professional-back { position:absolute; inset:0; border-radius:30px; background:#fff; padding:28px; display:flex; flex-direction:column; backface-visibility:hidden; overflow:hidden; }
.professional-front strong,.professional-back strong { display:block; font-size:clamp(28px,3vw,44px); line-height:1.05; margin:24px 0; }
.professional-front small,.professional-back small { font-size:11px; }
.portrait-placeholder { display:grid; place-items:center; flex:1; margin:0 -28px -28px; min-height:240px; background:linear-gradient(135deg,#d9e3e8,#e9e6dc); border-radius:26px; color:#536878; }
.professional-back { transform:rotateY(180deg); background:#113656; color:white; justify-content:center; gap:24px; }
.professional-back>span { line-height:1.6; }
.professional-card.flipped .professional-inner { transform:rotateY(180deg); }
@media(hover:hover) { .professional-card:hover .professional-inner { transform:rotateY(180deg); } }
#experience-form input[type=number],#experience-form input[type=tel] { min-height:52px; width:100%; }
@media(max-width:700px) { .professionals-grid { grid-template-columns:1fr; } .professional-card { max-width:420px; width:100%; margin:auto; } .review-card { width:280px; } }
@media(prefers-reduced-motion:reduce) { .reviews-track { animation:none; } .reviews-window { overflow-x:auto; } .reviews-group[aria-hidden] { display:none; } .professional-inner { transition:none; } }

.employee-section { padding-top:0; }
.employee-intro { margin-top:20px; color:#536878; }
.employee-section .professional-inner { min-height:460px; }
.employee-section .professional-front { padding:26px; }
.employee-section .professional-front>small { align-self:flex-start; padding:7px 12px; border-radius:30px; background:#f1f0eb; font-size:12px; font-weight:700; }
.employee-section .professional-front strong { margin:20px 0 24px; }
.employee-section .portrait-placeholder { position:relative; margin:0 -26px -26px; background:#d5e6e9; }
.employee-section .professional-card:nth-child(2) .portrait-placeholder { background:#dddcd3; }
.employee-section .professional-card:nth-child(3) .portrait-placeholder { background:#d7dfe9; }
.employee-section .portrait-placeholder svg { position:absolute; bottom:0; height:94%; width:100%; fill:#11365625; }
.employee-section .portrait-placeholder>span { position:relative; background:#ffffffdd; border-radius:20px; padding:6px 12px; font-size:12px; }
.employee-section .portrait-placeholder .profile-hint { position:absolute; bottom:16px; left:16px; }
.professional-card:focus-visible { outline:3px solid #b72929; outline-offset:6px; border-radius:30px; }

/* Header CTA and two-tone brand over hero photography. */
.header .header-actions .button.compact { font-size:.825rem; }
html.has-motion-hero .header:not(.header-solid) .brand-logo:not(.brand-logo-inverse) { opacity:0; }
html.has-motion-hero .header:not(.header-solid) .brand-logo-inverse { display:block; position:absolute; inset:0; opacity:1; filter:none; }
html.has-motion-hero .header.header-solid .brand-logo-inverse { display:none; }

/* Keep private clients below hotels in the shared Italian footer. */
.footer .footer-details>a:nth-child(6) { grid-column:1; grid-row:4; }

.footer .footer-details>a[lang="it"] { grid-column:2; grid-row:3; }
.footer .footer-details>a[lang="en"] { grid-column:2; grid-row:4; }

/* A single responsive SVG stage keeps the dot sequence crisp at every size. */
.connect-art { max-width:850px; margin:48px auto 0; color:#113656; }
.connect-art svg { display:block; width:100%; height:auto; overflow:visible; }
.connect-lines path { fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.connect-dots circle { fill:#b72d24; opacity:0; transform-box:fill-box; transform-origin:center; }
.connect-caption { display:flex; align-items:center; gap:24px; padding:16px 0; border-top:1px solid #11365625; }
.connect-count { font-size:11px; letter-spacing:.12em; color:#627788; }
.connect-name { font-size:18px; font-weight:600; }
.connect-progress { margin-left:auto; width:80px; height:2px; background:#11365620; overflow:hidden; }
.connect-progress:after { content:''; display:block; height:100%; background:#b72d24; transform-origin:left; }
.drawing .connect-dots circle { animation:connect-dot .5s ease-out both; animation-delay:var(--dot-delay); }
.drawing .connect-lines path { animation:connect-line 1.8s ease-in-out both; animation-delay:var(--line-delay); }
.drawing .connect-progress:after { animation:connect-timer 5.7s linear both; }
.connect-art:not(.art-visible) * { animation-play-state:paused!important; }
@keyframes connect-dot { from { opacity:0; transform:scale(.1); } to { opacity:1; transform:scale(1); } }
@keyframes connect-line { to { stroke-dashoffset:0; } }
@keyframes connect-timer { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@media(max-width:700px) { .connect-art { margin-top:28px; } .connect-name { font-size:16px; } }
@media(prefers-reduced-motion:reduce) { .connect-art .connect-dots circle { opacity:1; animation:none; } .connect-art .connect-lines path { stroke-dashoffset:0!important; animation:none; } .connect-progress { display:none; } }

/* Minimal silhouettes: dots dissolve once the connecting strokes finish. */
.connect-lines path { stroke-width:3; }
.drawing .connect-dots circle { animation:connect-dot-clean 3.1s ease both; animation-delay:var(--dot-delay); }
.drawing .connect-lines path { animation-duration:1.5s; }
@keyframes connect-dot-clean { 0% { opacity:0; transform:scale(.2); } 15%,70% { opacity:1; transform:scale(1); } 100% { opacity:0; transform:scale(.65); } }
@media(prefers-reduced-motion:reduce) { .connect-art .connect-dots circle { opacity:0; animation:none; } }

/* Slower reveal leaves time to recognise each completed silhouette. */
.drawing .connect-dots circle { animation-duration:4.8s; }
.drawing .connect-lines path { animation-duration:2.3s; }
.drawing .connect-progress:after { animation-duration:9.5s; }

/* Refined, consistent icon finish. */
.connect-art { max-width:760px; }
.connect-lines path { stroke-width:2.6; }
.connect-lines path:first-child { fill:rgb(17 54 86 / .045); }
.connect-dots circle { r:3px; }

/* Animated musical backdrop, behind both the portrait and the copy. */
#christian-minotti { position:relative; isolation:isolate; }
#christian-minotti .founder-notes { position:absolute; z-index:0; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; opacity:.65; pointer-events:none; }
#christian-minotti:after { content:''; position:absolute; z-index:0; inset:0; pointer-events:none; background:linear-gradient(90deg,#10375af5 0%,#10375ae8 33%,#10375a70 55%,transparent 80%); }
#christian-minotti .founder-stage { z-index:1; }
#christian-minotti .founder-portrait { z-index:1; }
#christian-minotti .founder-copy { z-index:2; }
@media(max-width:700px) { #christian-minotti:after { background:linear-gradient(180deg,#10375af5 0%,#10375ae8 45%,#10375a30 80%); } }
@media(prefers-reduced-motion:reduce) { #christian-minotti .founder-notes { display:none; } }

/* Faster compositions with only ten anchor dots on each main silhouette. */
.connect-lines path:first-child { fill:none; }
.drawing .connect-dots circle { animation-duration:2.8s; }
.drawing .connect-lines path { animation-duration:1.7s; }
.drawing .connect-progress:after { animation-duration:6s; }

/* Reference-based filled pictograms, revealed after the connecting lines. */
.connect-lines .solid-shape { fill:currentColor; fill-opacity:0; stroke-width:1.6; }
.drawing .connect-lines .solid-shape { animation:connect-solid 2.2s ease both; animation-delay:var(--line-delay); }
.connect-lines .detail-stroke { stroke-width:5; }
.connect-lines .detail-stroke:last-child { stroke-linecap:round; }
@keyframes connect-solid { 0% { fill-opacity:0; } 65% { fill-opacity:0; } 100% { stroke-dashoffset:0; fill-opacity:1; } }
@media(prefers-reduced-motion:reduce) { .connect-art .connect-lines .solid-shape { fill-opacity:1; animation:none; } }

/* Solid finish throughout, including the bicycle frame and piano keys. */
.connect-lines .detail-stroke { stroke-width:10; stroke-linejoin:round; }
.connect-lines .solid-shape { stroke-width:3; }

/* Blue filled bodies with crisp white internal details. */
.connect-lines .white-detail { stroke:#fff; stroke-width:3; fill:none; }
.connect-lines .white-detail.solid-shape { fill:#fff; stroke:#fff; }
.connect-lines .bike-frame { stroke:#113656; stroke-width:12; fill:none; }
.connect-lines .solid-shape:not(.white-detail) { fill:#113656; }

/* Requested colour corrections for piano, saxophone and both skis. */
.connect-lines .white-detail.blue-detail { stroke:#113656; fill:none; }
.connect-lines .white-detail.blue-body { fill:#113656; stroke:#113656; }

/* Shared gallery close button: centre the glyph in its 48px target. */
.gallery-close { display:grid; place-items:center; padding:0; line-height:1; font-family:Arial,sans-serif; font-weight:400; width:48px; height:48px; top:12px; right:12px; z-index:10; box-sizing:border-box; }
.review-card.coming-letter { width:180px; min-height:220px; display:grid; place-items:center; padding:20px; }
.review-card.coming-letter>span { position:static; font-size:100px; line-height:1; font-weight:600; color:#113656; }
.employee-section .portrait-placeholder.has-photo { min-height:260px; overflow:hidden; }
.employee-section .portrait-placeholder.has-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%; }
#christian-minotti .founder-biography p { max-width:none; line-height:1.7; font-size:1rem; margin-bottom:1.25rem; }
#christian-minotti .founder-copy { width:53%; }
#christian-minotti .founder-portrait { width:46%; right:-2%; height:820px; max-height:90svh; top:auto; bottom:0; }
@media(max-width:900px) { #christian-minotti .founder-copy { width:100%; } #christian-minotti .founder-portrait { position:relative; right:auto; width:100%; height:500px; max-height:none; margin-top:24px; } .review-card.coming-letter { width:140px; min-height:180px; } .review-card.coming-letter>span { font-size:80px; } }

/* Header refinements and one-click text enlargement. */
html.has-motion-hero .header:not(.header-solid) { background:rgba(10,34,55,.38); }
.header .desktop-nav a { font-size:.9rem; }
.text-size-trigger { display:inline-flex; align-items:center; justify-content:center; }
.text-size-trigger svg { fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; }
.header.home-brand-header .brand { transition:transform .55s ease; }
@media(min-width:950px) {
 .home-brand-header:not(.brand-docked)>.brand { position:absolute; left:50%; top:125px; width:min(580px,50vw); transform:translateX(-50%); }
 .home-brand-header:not(.brand-docked)>.brand .brand-logo { width:100%; height:auto; }
 .home-brand-header:not(.brand-docked) .desktop-nav { margin-left:0; }
}
@media(max-width:949px) {
 .home-brand-header:not(.brand-docked)>.brand { position:absolute; left:50%; top:105px; width:min(360px,78vw); transform:translateX(-50%); }
 .home-brand-header:not(.brand-docked)>.brand .brand-logo { width:100%; height:auto; }
 .home-brand-header:not(.brand-docked) .header-actions { margin-left:auto; }
}
@media(prefers-reduced-motion:reduce) { .header.home-brand-header .brand { transition:none; } }

/* Stable positioning allows smooth travel and scaling in both directions. */
.header.home-brand-header>.brand,
.header.home-brand-header:not(.brand-docked)>.brand {
 position:fixed; left:0; top:0; width:var(--brand-width,220px); margin:0;
 transform:translate3d(var(--brand-x,24px),var(--brand-y,24px),0) scale(var(--brand-scale,1));
 transform-origin:top left; transition:none; z-index:42; will-change:transform;
}
.header.home-brand-header>.brand .brand-logo,
.header.home-brand-header:not(.brand-docked)>.brand .brand-logo { width:100%; height:auto; }
@media(prefers-reduced-motion:reduce) { .header.home-brand-header>.brand { will-change:auto; } }
/* The menu keeps its slot independently of the travelling logo. */
@media(min-width:950px) {
 .header.home-brand-header .desktop-nav,
 .header.home-brand-header:not(.brand-docked) .desktop-nav { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); margin:0; }
 .header.home-brand-header .header-actions { margin-left:auto; }
}
html.has-motion-hero .header.home-brand-header:not(.brand-docked) .brand-logo:not(.brand-logo-inverse) { opacity:0; }
html.has-motion-hero .header.home-brand-header:not(.brand-docked) .brand-logo-inverse { display:block; position:absolute; inset:0; opacity:1; filter:none; }
html.has-motion-hero .header.home-brand-header.brand-docked .brand-logo-inverse { display:none; }
html.has-motion-hero .header.home-brand-header.brand-docked .brand-logo:not(.brand-logo-inverse) { opacity:1; }

/* Hero type proportions: 100px / 90px at the annotated desktop width. */
.hero-home #page-title { font-size:clamp(2.8rem,5.981vw,6.25rem); }
.hero-home #page-title>.motion-word:nth-of-type(2) { font-size:.9em; }
@media(max-width:700px) { .hero-home #page-title { font-size:clamp(2.8rem,11.8vw,4rem); } }
/* Centre the desktop menu independently of its inherited positioning offsets. */
@media(min-width:950px) {
 html.has-motion-hero .header.home-brand-header .desktop-nav {
  position:absolute; inset:auto; left:50%; top:50%; right:auto; bottom:auto;
  width:max-content; margin:0; translate:none; transform:translate(-50%,-50%);
  align-self:center; justify-self:center;
 }
}

/* Inner pages reserve space for the same large opening brand. */
html:not(.has-motion-hero) .home-brand-header:not(.brand-docked) .brand-logo-inverse { display:none; }
html:not(.has-motion-hero) .home-brand-header:not(.brand-docked) .brand-logo:not(.brand-logo-inverse) { opacity:1; }
body:has(.home-brand-header) main:not(:has(>.hero)):not(:has(>.founder-profile)) { padding-top:clamp(160px,24vh,250px); }
body:has(.home-brand-header) .founder-stage { padding-top:clamp(250px,34vh,360px); }
body:has(.home-brand-header) #christian-minotti .brand-logo { color:#fff; }
/* Slight readability increase, scoped to the three values. */
#coordination .usp-list h3 { font-size:clamp(1.15rem,1.8vw,1.65rem); }
#coordination .usp-list p { font-size:1.0625rem; line-height:1.65; }
