/* Dancing ConneXion - universal core CSS.
   Base condivisa per la home e per eventuali pagine future. */

:root {
--gold: #d8b33a;
      --turquoise: #0bead3;
      --violet: #d27cf5;
      --coral: #f58069;

      --black: #000000;
      --soft-black: var(--black);
      --cream: #fffdf8;
      --cream-2: var(--cream);
      --paper: #ffffff;
      --text: var(--black);
      --muted: rgba(0, 0, 0, 0.62);
      --line: rgba(0, 0, 0, 0.11);
      --gold-ink: #776220;
      --turquoise-ink: #068174;
      --violet-ink: #744487;
      --coral-ink: #c74630;

      --radius-xl: 26px;
      --radius-lg: 22px;
      --radius-md: 18px;

      --shadow-soft: 0 18px 50px rgba(0, 0, 0, 0.08);
      --shadow-strong: 0 28px 80px rgba(0, 0, 0, 0.20);

      --header-h: 72px;
      --container: 1160px;
}
.survey-page {
--coral-ink: #87463a;
}
.founders-spotlight {
display: inline-flex;
      align-items: center;
      width: fit-content;
      padding: 0;
      border: 0;
      border-radius: 0;
      background: transparent;
      box-shadow: none;
color: rgba(0,0,0,0.72);
      text-shadow:
        0 0 14px rgba(216,179,58,0.62),
        0 0 28px rgba(216,179,58,0.34);
}
.founders-spotlight::after {
inset: -16px -24px;
      opacity: 0.68;
      filter: blur(14px);
}
body .hero-grid {
gap: 62px;
}
body .hero-actions {
margin-top: 40px;
}
.section .eyebrow {
font-size: 13px;
}
body .section-title {
font-size: clamp(33px, 5.2vw, 57px);
}
body .section.dark {
isolation: isolate;
overflow: hidden;
      background:
        radial-gradient(circle at 16% 4%, rgba(216,179,58,0.36), transparent 34%),
        radial-gradient(circle at 90% 18%, rgba(210,124,245,0.30), transparent 32%),
        radial-gradient(circle at 12% 90%, rgba(11,234,211,0.20), transparent 30%),
        radial-gradient(circle at 96% 90%, rgba(245,128,105,0.15), transparent 28%),
        linear-gradient(145deg, var(--black) 0%, var(--black) 48%, var(--black) 100%);
      color: #ffffff;
}
.section.dark .section-title {
color: #ffffff;
}
.section.dark .content-card {
border-color: rgba(255,255,255,0.14);
      background:
        linear-gradient(135deg, rgba(255,255,255,0.12), rgba(255,255,255,0.055)),
        rgba(0,0,0,0.28);
      box-shadow: 0 26px 76px rgba(0,0,0,0.28);
      backdrop-filter: blur(14px);
}
.section.dark .form-privacy-link {
  color: var(--gold);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.section.dark .form-privacy-link:hover {
  color: #ffffff;
}
.text-body {
color: rgba(255,255,255,0.78);
}
.section.dark .btn-secondary {
border-color: rgba(255,255,255,0.18);
      background: rgba(255,255,255,0.92);
      color: var(--black);
}
.why-grid .why-card:nth-child(1) .why-content h3 {
color: var(--turquoise-ink);
}
.why-grid .why-card:nth-child(2) .why-content h3 {
color: var(--violet-ink);
}
.why-grid .why-card:nth-child(3) .why-content h3 {
color: var(--coral-ink);
}
.why-content h3::after {
content: none;
}
.section.dark::before {
content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      background:
        linear-gradient(90deg, transparent, rgba(216,179,58,0.13), transparent),
        radial-gradient(circle at 50% 110%, rgba(216,179,58,0.18), transparent 38%);
      opacity: 0.9;
}
.section.dark > .container {
position: relative;
      z-index: 1;
}
.section.dark .project-card,
.section.dark .embed-box,
.section.dark .social-card {
border-color: rgba(255,255,255,0.16);
      background:
        linear-gradient(135deg, rgba(255,255,255,0.13), rgba(255,255,255,0.06)),
        rgba(0,0,0,0.30);
      box-shadow: 0 26px 76px rgba(0,0,0,0.28);
}
.section.dark .embed-placeholder {
border-color: rgba(216,179,58,0.26);
      background:
        radial-gradient(circle at 18% 18%, rgba(216,179,58,0.16), transparent 34%),
        rgba(255,255,255,0.075);
}
.section.dark .social-card h2,
.section.dark .social-card p {
color: #ffffff;
}
@media (max-width: 760px) {
body .hero {
padding-top: calc(var(--header-h) + 32px);
}
body .hero-grid {
gap: 10px;
}
body .hero-actions {
margin-top: 14px;
}
body .hero .founders-spotlight {
margin-bottom: 14px;
        padding: 0;
        font-size: 10px;
        letter-spacing: 0.14em;
}
.section .eyebrow {
font-size: 12.5px;
}
body .section-title {
font-size: clamp(32px, 10vw, 46px);
}
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
      scroll-padding-top: calc(var(--header-h) + 10px);
}
body {
margin: 0;
      font-family: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      color: var(--text);
      background: var(--cream);
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
}
body.menu-open {
overflow: hidden;
}
img {
max-width: 100%;
      display: block;
}
a {
color: inherit;
      text-decoration: none;
}
.sr-only {
position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
}
.skip-link {
position: fixed;
      top: 12px;
      left: 12px;
      z-index: 1000;
      padding: 11px 16px;
      border: 2px solid var(--gold);
      border-radius: 14px;
      background: var(--black);
      color: #ffffff;
      font-family: "Montserrat", system-ui, sans-serif;
      font-size: 14px;
      font-weight: 900;
      transform: translateY(calc(-100% - 24px));
      transition: transform .18s ease;
}
.skip-link:focus-visible {
transform: translateY(0);
}
button,
input,
textarea,
select {
font: inherit;
}
h1,
h2,
h3,
h4,
p {
margin: 0;
}
h1,
h2,
h3,
h4,
.btn,
.eyebrow,
.nav-link,
.menu-link,
.footer-brand,
.footer-title,
.footer-link {
font-family: "Montserrat", system-ui, sans-serif;
}
.container {
width: min(100% - 32px, var(--container));
      margin: 0 auto;
}
.section {
position: relative;
      padding: 82px 0;
}
.section.compact {
padding: 58px 0;
}
.section.white {
background: var(--paper);
}
.section.dark {
overflow: hidden;
      color: #ffffff;
      background:
        radial-gradient(circle at 16% 4%, rgba(216,179,58,0.36), transparent 34%),
        radial-gradient(circle at 90% 18%, rgba(210,124,245,0.30), transparent 32%),
        radial-gradient(circle at 12% 90%, rgba(11,234,211,0.20), transparent 30%),
        radial-gradient(circle at 96% 90%, rgba(245,128,105,0.15), transparent 28%),
        linear-gradient(145deg, var(--black) 0%, var(--black) 48%, var(--black) 100%);
}
.eyebrow {
display: inline-flex;
      align-items: center;
      gap: 9px;
      width: fit-content;
      padding: 0;
      margin: -15px 0 8px;
      border: 0;
      background: transparent;
      color: rgba(0,0,0,0.62);
      font-size: 13px;
      line-height: 1.15;
      font-weight: 900;
      letter-spacing: 0.22em;
      text-transform: uppercase;
}
.eyebrow::before {
content: "";
      width: 8px;
      height: 8px;
      border-radius: 16px;
      background: var(--gold);
      box-shadow: 0 0 0 5px rgba(216,179,58,0.12);
}
.dark .eyebrow {
color: rgba(255,255,255,0.70);
}
.dark .eyebrow::before {
background: var(--gold);
      box-shadow: 0 0 0 5px rgba(216,179,58,0.16);
}
body:not(.membership-static-page) main:not(.survey-page):not(.dashboard-page) .eyebrow {
margin: -24px 0 8px;
      font-size: 14px;
}
body:not(.membership-static-page) main:not(.survey-page):not(.dashboard-page) .eyebrow::before {
width: 9px;
      height: 9px;
      flex: 0 0 9px;
}
.display-title {
margin-top: 18px;
      max-width: 790px;
      font-size: clamp(42px, 8.8vw, 92px);
      line-height: 0.92;
      letter-spacing: 0;
      font-weight: 900;
      text-transform: uppercase;
      color: var(--black);
}
.section-title {
margin-top: 20px;
      max-width: 830px;
      font-size: clamp(31px, 5vw, 54px);
      line-height: 1.02;
      letter-spacing: 0;
      font-weight: 900;
      text-transform: uppercase;
}
.section-intro {
margin-top: 20px;
      max-width: 770px;
      font-size: 17px;
      line-height: 1.82;
      color: var(--muted);
}
.dark .section-intro {
color: rgba(255,255,255,0.72);
}
.text-body {
font-size: 16px;
      line-height: 1.86;
      color: var(--muted);
}
.dark .text-body {
color: rgba(255,255,255,0.75);
}
.btn {
display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      min-height: 50px;
      padding: 14px 22px;
      border-radius: 16px;
      border: 0;
      cursor: pointer;
      font-size: 13px;
      line-height: 1.1;
      font-weight: 800;
      letter-spacing: 0;
      transition:
        transform .22s ease,
        box-shadow .22s ease,
        background .22s ease,
        border-color .22s ease,
        color .22s ease;
      white-space: nowrap;
}
.btn-primary {
background: var(--black);
      color: #ffffff;
      box-shadow: 0 16px 36px rgba(0,0,0,0.22);
}
.btn-primary::after {
content: "→";
      color: var(--gold);
      font-size: 16px;
      transform: translateY(-1px);
      transition: transform .22s ease;
}
.btn-primary:hover {
transform: translateY(-2px);
      box-shadow: 0 21px 46px rgba(0,0,0,0.28);
}
.btn-primary:hover::after {
transform: translate(3px, -1px);
}
.btn-secondary {
background: #ffffff;
      color: var(--black);
      border: 1px solid rgba(0,0,0,0.16);
      box-shadow: 0 10px 24px rgba(0,0,0,0.04);
}
.btn-secondary:hover {
border-color: rgba(216,179,58,0.78);
      background: var(--cream-2);
      transform: translateY(-1px);
}
.dark .btn-secondary {
background: rgba(255,255,255,0.10);
      color: #ffffff;
      border-color: rgba(255,255,255,0.18);
      box-shadow: none;
}
.dark .btn-secondary:hover {
background: rgba(255,255,255,0.16);
      border-color: rgba(216,179,58,0.66);
}
.site-header {
position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 100;
      min-height: var(--header-h);
      background: #ffffff;
      border-bottom: 1px solid rgba(0,0,0,0.09);
}
.header-inner {
width: min(100% - 24px, var(--container));
      min-height: var(--header-h);
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
}
.brand {
display: flex;
      align-items: center;
      min-width: 0;
}
.brand-text {
min-width: 0;
      line-height: 0.92;
      color: var(--black);
}
.brand-text small {
display: block;
      font-family: "Montserrat", sans-serif;
      font-size: 10px;
      font-weight: 900;
      letter-spacing: 0.25em;
      text-transform: uppercase;
}
.brand-text strong {
display: block;
      margin-top: 2px;
      font-family: "Montserrat", sans-serif;
      font-size: 18px;
      font-weight: 900;
      letter-spacing: 0;
}
.desktop-nav {
display: flex;
      align-items: center;
      gap: 24px;
      margin-left: auto;
}
.nav-link {
font-size: 13px;
      font-weight: 700;
      color: rgba(0,0,0,0.70);
      transition: color .22s ease;
}
.nav-link:hover {
color: var(--black);
}
.header-actions {
display: flex;
      align-items: center;
      gap: 10px;
}
.header-cta {
min-height: 46px;
      padding: 9px 16px;
      border-radius: 18px;
      display: inline-flex;
      flex-direction: column;
      gap: 2px;
      font-size: 12px;
      line-height: 1.05;
      text-align: center;
}
.header-cta::after {
display: none;
}
.menu-toggle {
display: none;
      position: relative;
      width: 44px;
      height: 44px;
      border: 1px solid rgba(0,0,0,0.12);
      border-radius: 16px;
      background: #ffffff;
      color: var(--black);
      cursor: pointer;
      box-shadow: 0 10px 24px rgba(0,0,0,0.05);
      transition: background .22s ease, border-color .22s ease, transform .22s ease;
}
.menu-toggle:hover {
background: var(--cream-2);
      border-color: rgba(216,179,58,0.62);
      transform: translateY(-1px);
}
.menu-toggle::before,
.menu-toggle::after,
.menu-toggle span {
content: "";
      position: absolute;
      left: 12px;
      right: 12px;
      height: 2px;
      border-radius: 999px;
      background: var(--black);
      transition: transform .22s ease, opacity .22s ease, top .22s ease;
}
.menu-toggle::before {
top: 14px;
}
.menu-toggle span {
top: 21px;
}
.menu-toggle::after {
top: 28px;
}
.menu-toggle.is-open::before {
top: 21px;
      transform: rotate(45deg);
}
.menu-toggle.is-open span {
opacity: 0;
}
.menu-toggle.is-open::after {
top: 21px;
      transform: rotate(-45deg);
}
.mobile-menu {
display: none;
      position: fixed;
      inset: var(--header-h) 0 auto 0;
      z-index: 99;
      background: #ffffff;
      border-bottom: 1px solid rgba(0,0,0,0.10);
      padding: 14px 16px 22px;
      box-shadow: 0 14px 32px rgba(0,0,0,0.07);
}
.mobile-menu.open {
display: block;
}
.mobile-menu-panel {
width: min(100%, var(--container));
      margin: 0 auto;
      display: grid;
      gap: 4px;
}
.menu-link {
padding: 15px 14px;
      border-radius: 18px;
      font-size: 16px;
      font-weight: 800;
      color: var(--black);
}
.menu-link:hover {
background: var(--cream-2);
}
.whatsapp-float {
position: fixed;
      right: 18px;
      bottom: 18px;
      z-index: 90;
      width: 58px;
      height: 58px;
      border-radius: 999px;
      display: grid;
      place-items: center;
      background: #25D366;
      color: #ffffff;
      box-shadow: 0 18px 40px rgba(0,0,0,0.26);
      transition: transform .22s ease, box-shadow .22s ease;
}
.whatsapp-float:hover {
transform: translateY(-2px);
      box-shadow: 0 24px 48px rgba(0,0,0,0.30);
}
.whatsapp-float svg {
width: 30px;
      height: 30px;
      fill: currentColor;
      display: block;
}
.hero {
min-height: calc(100svh - var(--header-h));
      padding: calc(var(--header-h) + 44px) 0 88px;
      overflow: hidden;
      background:
        radial-gradient(circle at 50% 104%, rgba(216,179,58,0.30), transparent 34%),
        radial-gradient(circle at 90% 22%, rgba(216,179,58,0.28), transparent 28%),
        radial-gradient(circle at 8% 78%, rgba(11,234,211,0.16), transparent 24%),
        var(--cream);
}
.hero-grid {
display: grid;
      grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr);
      align-items: center;
      gap: 54px;
}
.hero-copy {
position: relative;
      z-index: 2;
}
.hero-text {
margin-top: 26px;
      max-width: 640px;
      font-size: clamp(17px, 2.8vw, 20px);
      line-height: 1.75;
      color: var(--muted);
}
.founders {
position: relative;
      z-index: 1;
      width: fit-content;
      margin-top: 0;
      font-family: "Montserrat", sans-serif;
      color: rgba(0,0,0,0.62);
      font-size: 12px;
      font-weight: 900;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      text-shadow:
        0 0 14px rgba(216,179,58,0.78),
        0 0 30px rgba(216,179,58,0.50);
}
.founders::after {
content: "";
      position: absolute;
      inset: -11px -18px;
      z-index: -1;
      border-radius: 999px;
      background: radial-gradient(circle at 50% 50%, rgba(216,179,58,0.54), transparent 70%);
      filter: blur(11px);
      pointer-events: none;
}
.hero-actions {
margin-top: 34px;
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
}
.hero-visual-wrap {
position: relative;
      min-height: 520px;
}
.hero-visual {
position: relative;
      height: 520px;
      border-radius: 30px;
      overflow: hidden;
      background-image: url("../img/hero-home.webp");
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      box-shadow: var(--shadow-strong);
      isolation: isolate;
}
body .team-hero-visual-wrap {
min-height: 0;
}
body .team-hero-visual {
height: auto;
      aspect-ratio: 1600 / 1066;
      background-color: var(--black);
      background-image: url("../img/hero-team-dancing-connexion.webp");
      background-size: contain;
      background-position: center;
      background-repeat: no-repeat;
}
.hero-visual::after {
content: none;
}
.hero-visual-card {
position: absolute;
      left: 22px;
      right: 22px;
      bottom: 22px;
      z-index: 2;
      padding: 20px;
      border-radius: 20px;
      border: 1px solid rgba(255,255,255,0.18);
      background: rgba(0,0,0,0.54);
      color: #ffffff;
      backdrop-filter: blur(14px);
}
.hero-visual-card strong {
display: block;
      font-family: "Montserrat", sans-serif;
      font-size: 24px;
      line-height: 1;
      letter-spacing: 0;
}
.hero-visual-card span {
display: block;
      margin-top: 8px;
      color: rgba(255,255,255,0.76);
      font-size: 14px;
      line-height: 1.55;
}
.line-orbit {
position: absolute;
      width: 270px;
      height: 92px;
      border: 11px solid rgba(216,179,58,0.52);
      border-radius: 999px;
      transform: rotate(-14deg);
      pointer-events: none;
}
.line-orbit.one {
right: -72px;
      top: -28px;
}
.line-orbit.two {
left: -74px;
      bottom: 36px;
      border-color: rgba(11,234,211,0.26);
      transform: rotate(12deg);
}
.split-grid {
display: grid;
      grid-template-columns: 0.9fr 1.1fr;
      align-items: center;
      gap: 48px;
}
.content-card {
border: 1px solid var(--line);
      border-radius: var(--radius-xl);
      background: #ffffff;
      padding: 32px;
      box-shadow: var(--shadow-soft);
}
.content-card p + p {
margin-top: 18px;
}
.discipline-feature-title {
color: var(--gold-ink);
      font-size: 31px;
      line-height: 1;
      font-weight: 900;
      text-transform: uppercase;
}
.discipline-feature-description {
margin-top: 22px;
}
.button-row {
display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 28px;
}
.venue-grid {
display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 22px;
      margin-top: 38px;
}
.venue-card {
border: 1px solid var(--line);
      border-radius: var(--radius-xl);
      background: #ffffff;
      padding: 28px;
      box-shadow: var(--shadow-soft);
}
.venue-head {
display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 18px;
}
.venue-card h3 {
font-size: 31px;
      line-height: 1;
      letter-spacing: 0;
      font-weight: 900;
      text-transform: uppercase;
}
.start-audience-colors .venue-card:nth-child(1) h3 {
color: var(--turquoise-ink);
}
.start-audience-colors .venue-card:nth-child(2) h3 {
color: var(--violet-ink);
}
.start-audience-colors .venue-card:nth-child(3) h3 {
color: var(--coral-ink);
}
.venue-place {
margin-top: 14px;
      font-weight: 800;
      color: var(--black);
}
.map-link {
display: inline-flex;
      align-items: center;
      gap: 8px;
      width: fit-content;
      margin-top: 9px;
      padding: 9px 12px;
      border: 1px solid rgba(216,179,58,0.42);
      border-radius: 16px;
      background: rgba(255,253,248,0.72);
      color: rgba(0,0,0,0.82);
      font-size: 14px;
      font-weight: 800;
      transition: background .22s ease, border-color .22s ease, transform .22s ease;
}
.map-link:hover {
background: var(--cream-2);
      border-color: rgba(216,179,58,0.78);
      transform: translateY(-1px);
}
.map-icon {
flex: 0 0 auto;
      width: 16px;
      height: 16px;
      color: var(--gold-ink);
}
.map-icon svg {
width: 16px;
      height: 16px;
      display: block;
      fill: none;
      stroke: currentColor;
      stroke-width: 2.1;
      stroke-linecap: round;
      stroke-linejoin: round;
}
.venue-description {
margin-top: 22px;
      font-size: 15px;
      line-height: 1.85;
      color: var(--muted);
}
.venue-actions {
display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      margin-top: 26px;
}
.schedule-toggle {
background: #ffffff;
      border: 1px solid rgba(0,0,0,0.16);
      color: var(--black);
}
.toggle-icon {
flex: 0 0 auto;
      width: 26px;
      height: 26px;
      display: inline-grid;
      place-items: center;
      border-radius: 999px;
      background: var(--cream-2);
      color: var(--black);
      transition: transform .22s ease, background .22s ease;
}
.toggle-icon svg {
width: 14px;
      height: 14px;
      fill: none;
      stroke: currentColor;
      stroke-width: 2.4;
      stroke-linecap: round;
      stroke-linejoin: round;
}
.schedule-toggle.is-open {
background: var(--cream-2);
      border-color: rgba(216,179,58,0.65);
}
.schedule-toggle.is-open .toggle-icon {
transform: rotate(180deg);
      background: #ffffff;
}
.schedule {
max-height: 0;
      overflow: hidden;
      transition: max-height .35s ease;
}
.schedule-inner {
margin-top: 22px;
      padding: 18px;
      border-radius: 24px;
      background: var(--cream);
}
.schedule-list {
list-style: none;
      padding: 0;
      margin: 0;
      display: grid;
      gap: 0;
}
.schedule-list li {
padding: 11px 0;
      border-bottom: 1px solid rgba(0,0,0,0.09);
      font-size: 14px;
      line-height: 1.45;
      color: var(--text);
}
.schedule-list li:last-child {
border-bottom: 0;
}
.schedule-days {
display: grid;
      gap: 22px;
}
.schedule-day-title {
margin: 0 0 4px;
      padding: 0 0 10px;
      border-bottom: 1px solid rgba(216,179,58,0.42);
      color: var(--gold-ink);
      font-family: "Montserrat", sans-serif;
      font-size: 13px;
      line-height: 1.2;
      font-weight: 900;
      letter-spacing: 0.12em;
      text-transform: uppercase;
}
.schedule-row {
display: grid;
      grid-template-columns: max-content max-content minmax(0, 1fr);
      align-items: baseline;
      gap: 6px;
      min-width: 0;
}
.schedule-time {
font-variant-numeric: tabular-nums;
      font-weight: 800;
      white-space: nowrap;
}
.schedule-separator {
color: var(--gold-ink);
      font-weight: 900;
}
.schedule-course {
min-width: 0;
      overflow-wrap: anywhere;
}
.schedule-teachers,
.schedule-note {
display: block;
      margin-top: 5px;
      padding-left: calc(5ch + 18px);
      color: var(--muted);
      font-size: 13px;
      line-height: 1.45;
      overflow-wrap: anywhere;
}
.schedule-note {
font-style: italic;
}
.why-grid {
display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 24px;
      margin-top: 42px;
}
.why-card {
overflow: hidden;
      border: 1px solid var(--line);
      border-radius: var(--radius-xl);
      background: #ffffff;
      box-shadow: var(--shadow-soft);
}
.why-image {
position: relative;
      min-height: 270px;
      overflow: hidden;
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
}
.why-image.method {
background-image: url("../img/home-metodo.webp");
}
.why-image.community {
background-image: url("../img/home-community.webp");
}
.why-image.care {
background-image: url("../img/home-cura.webp");
}
.why-content {
padding: 28px;
}
.why-content h3 {
font-size: 23px;
      line-height: 1.05;
      letter-spacing: 0;
      font-weight: 900;
      text-transform: uppercase;
}
.why-content p {
margin-top: 14px;
      font-size: 15px;
      line-height: 1.85;
      color: var(--muted);
}
.project-grid {
display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
      margin-top: 38px;
}
.project-card {
border: 1px solid rgba(255,255,255,0.12);
      border-radius: var(--radius-xl);
      background: rgba(255,255,255,0.065);
      padding: 30px;
      backdrop-filter: blur(14px);
}
.project-card h3 {
font-size: 27px;
      line-height: 1;
      letter-spacing: 0;
      font-weight: 900;
      text-transform: uppercase;
}
.project-card p {
margin-top: 18px;
      color: rgba(255,255,255,0.74);
      font-size: 15px;
      line-height: 1.8;
}
.dark-cta {
margin-top: 34px;
}
.team-grid {
display: grid;
      grid-template-columns: 1fr 1fr;
      align-items: center;
      gap: 52px;
}
.team-image {
min-height: 430px;
      border-radius: var(--radius-xl);
      background-image: url("https://images.unsplash.com/photo-1529156069898-49953e39b3ac?auto=format&fit=crop&w=1200&q=75");
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      box-shadow: var(--shadow-strong);
      position: relative;
      overflow: hidden;
}
body .home-team-image {
min-height: 0;
      aspect-ratio: 1600 / 1066;
      background-color: var(--black);
      background-image: url("../img/team-dancing-connexion.webp");
      background-size: contain;
      background-position: center;
      background-repeat: no-repeat;
}
.project-video-media::before {
content: "";
      position: absolute;
      inset: 0;
      z-index: 1;
      background: linear-gradient(135deg, rgba(0,0,0,0.34) 0%, transparent 46%);
      pointer-events: none;
}
.project-video-media {
display: block;
      isolation: isolate;
      border: 2px solid transparent;
      cursor: pointer;
      transition: border-color .22s ease, box-shadow .22s ease, filter .22s ease;
}
.project-video-media:hover {
border-color: var(--gold);
      box-shadow: 0 28px 74px rgba(0,0,0,0.30);
      filter: brightness(1.03);
}
.project-video-caption {
top: 18px;
      right: auto;
      bottom: auto;
      left: 18px;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      max-width: calc(100% - 36px);
      padding: 10px 14px 10px 10px;
      border: 1px solid rgba(255,255,255,0.46);
      border-left: 4px solid var(--gold);
      border-radius: 15px;
      background: rgba(0,0,0,0.76);
      box-shadow: 0 18px 44px rgba(0,0,0,0.24);
      backdrop-filter: blur(10px);
      transition: background .22s ease, border-color .22s ease;
}
.project-video-media:hover .project-video-caption {
background: rgba(0,0,0,0.88);
      border-color: var(--gold);
}
.project-video-caption strong {
color: var(--gold);
      font-size: 14px;
      line-height: 1.2;
      text-shadow: 0 1px 2px rgba(0,0,0,0.72);
}
.project-video-caption .project-video-play {
display: grid;
      flex: 0 0 30px;
      width: 30px;
      height: 30px;
      margin-top: 0;
      place-items: center;
      border-radius: 999px;
      background: var(--gold);
      color: var(--black);
}
.project-video-play svg {
width: 18px;
      height: 18px;
      fill: currentColor;
}
.privacy-page .privacy-hero {
min-height: 0;
      padding: calc(var(--header-h) + 34px) 0 26px;
}
.privacy-page .privacy-hero .hero-grid {
display: grid;
      grid-template-columns: 1fr;
      gap: 0;
}
.privacy-page .privacy-hero .hero-copy {
display: block;
}
.section.compact.white.privacy-content {
padding: 24px 0 64px;
}
.privacy-article > * + * {
margin-top: 12px;
}
.privacy-article > h2 {
margin-top: 30px;
      color: var(--black);
      font-size: clamp(22px, 3vw, 29px);
      line-height: 1.2;
}
.privacy-article > ul {
padding-left: 21px;
}
.privacy-article > ul li + li {
margin-top: 6px;
}
.privacy-article .text-body {
color: var(--muted);
      line-height: 1.72;
}
.team-image::after {
content: none;
}
.social-card {
padding: 38px 28px;
      border: 1px solid var(--line);
      border-radius: var(--radius-xl);
      background: var(--cream);
      color: var(--black);
      box-shadow: var(--shadow-soft);
      text-align: center;
}
.social-card h2 {
color: var(--black);
      font-size: clamp(29px, 4vw, 42px);
      line-height: 1.04;
      letter-spacing: 0;
      font-weight: 900;
      text-transform: uppercase;
}
.social-card p {
max-width: 620px;
      margin: 17px auto 0;
      color: var(--muted);
      font-size: 16px;
      line-height: 1.75;
}
.contact-social {
margin-top: 38px;
}
.social-links {
display: flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      flex-wrap: wrap;
      margin-top: 26px;
}
.social-link {
width: 52px;
      height: 52px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: 1px solid rgba(0,0,0,0.12);
      border-radius: 16px;
      background: #ffffff;
      transition: background .22s ease, border-color .22s ease, transform .22s ease, color .22s ease;
}
.social-link svg {
width: 23px;
      height: 23px;
      fill: none;
      stroke: currentColor;
      stroke-width: 1.9;
      stroke-linecap: round;
      stroke-linejoin: round;
}
.social-link.instagram {
color: var(--violet);
      background: rgba(210,124,245,0.08);
}
.social-link.tiktok {
color: var(--turquoise);
      background: rgba(11,234,211,0.08);
}
.social-link.youtube {
color: var(--coral);
      background: rgba(245,128,105,0.08);
}
.social-link.facebook {
color: var(--gold);
      background: rgba(216,179,58,0.10);
}
.social-link:hover {
transform: translateY(-1px);
      background: #ffffff;
      border-color: currentColor;
}
.section.dark .social-link:hover {
background: rgba(0,0,0,0.72);
}
.faq-wrap {
max-width: 820px;
      margin: 0 auto;
}
.faq-list {
margin-top: 34px;
      border: 1px solid var(--line);
      border-radius: var(--radius-xl);
      background: #ffffff;
      box-shadow: var(--shadow-soft);
      overflow: hidden;
}
.faq-item {
border-bottom: 1px solid var(--line);
}
.faq-item:last-child {
border-bottom: 0;
}
.faq-question {
width: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
      padding: 24px 26px;
      border: 0;
      background: transparent;
      color: var(--black);
      text-align: left;
      cursor: pointer;
}
.faq-question span:first-child {
font-family: "Montserrat", sans-serif;
      font-size: 16px;
      font-weight: 900;
      letter-spacing: 0;
}
.faq-question .chevron {
flex: 0 0 auto;
      color: var(--gold);
      font-size: 20px;
      transition: transform .22s ease;
}
.faq-question.is-open .chevron {
transform: rotate(180deg);
}
.faq-answer {
max-height: 0;
      overflow: hidden;
      transition: max-height .32s ease;
}
.faq-answer-inner {
padding: 0 26px 24px;
      color: var(--muted);
      font-size: 15px;
      line-height: 1.8;
}
.form-grid {
display: grid;
      grid-template-columns: 0.9fr 1.1fr;
      gap: 52px;
      align-items: start;
}
.embed-box {
border-radius: var(--radius-xl);
      background: #ffffff;
      color: var(--black);
      padding: 22px;
      box-shadow: var(--shadow-strong);
}
.embed-placeholder {
min-height: 380px;
      position: relative;
      display: grid;
      place-items: center;
      border: 0;
      border-radius: 20px;
      background: var(--cream);
      text-align: center;
      padding: 30px;
}
.embed-placeholder > iframe {
width: 100%;
      min-height: 320px;
      align-self: stretch;
}
.expansions-loading-indicator {
position: absolute;
      top: 50%;
      left: 50%;
      z-index: 2;
      width: 28px;
      height: 28px;
      border: 3px solid rgba(0,0,0,0.18);
      border-top-color: var(--black);
      border-radius: 999px;
      opacity: 0;
      pointer-events: none;
      transform: translate(-50%, -50%);
}
.embed-placeholder.is-loading .expansions-loading-indicator {
opacity: 1;
      animation: expansions-loading .8s linear infinite;
}
@keyframes expansions-loading {
to {
transform: translate(-50%, -50%) rotate(360deg);
}
}
.embed-placeholder small {
display: block;
      font-family: "Montserrat", sans-serif;
      color: var(--muted);
      font-size: 11px;
      font-weight: 900;
      letter-spacing: 0.18em;
      text-transform: uppercase;
}
.embed-placeholder strong {
display: block;
      margin-top: 12px;
      font-family: "Montserrat", sans-serif;
      font-size: 25px;
      line-height: 1.08;
      letter-spacing: 0;
}
.embed-placeholder p {
max-width: 420px;
      margin-top: 10px;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.65;
}
.site-footer {
padding: 46px 0 34px;
      background:
        radial-gradient(circle at 18% 0%, rgba(216,179,58,0.13), transparent 30%),
        var(--black);
      color: #ffffff;
      border-top: 1px solid rgba(255,255,255,0.10);
}
.footer-grid {
display: grid;
      grid-template-columns: 1.1fr 0.9fr 0.9fr;
      gap: 34px;
}
.footer-brand {
font-size: 23px;
      line-height: 0.98;
      font-weight: 900;
      letter-spacing: 0;
}
.footer-logo {
  display: block;
  width: 150px;
  max-width: 100%;
  height: auto;
}
.footer-text {
max-width: 390px;
      margin-top: 14px;
      color: rgba(255,255,255,0.68);
      font-size: 14px;
      line-height: 1.7;
}
.footer-title {
color: rgba(255,255,255,0.46);
      font-size: 10px;
      line-height: 1;
      font-weight: 900;
      letter-spacing: 0.18em;
      text-transform: uppercase;
}
.footer-links {
display: grid;
      gap: 10px;
      margin-top: 15px;
}
.footer-link {
width: fit-content;
      color: rgba(255,255,255,0.78);
      font-size: 13px;
      font-weight: 800;
      transition: color .22s ease;
}
.footer-link:hover {
color: var(--gold);
}
.footer-bottom {
display: flex;
      justify-content: space-between;
      gap: 18px;
      margin-top: 34px;
      padding-top: 22px;
      border-top: 1px solid rgba(255,255,255,0.10);
      color: rgba(255,255,255,0.46);
      font-size: 12px;
      line-height: 1.6;
}
.reveal {
opacity: 1;
      transform: none;
}
.js .reveal {
opacity: 0;
      transform: translateY(22px);
      transition: opacity .72s ease, transform .72s ease;
}
.js .reveal.is-visible {
opacity: 1;
      transform: translateY(0);
}
@media (scripting: none) {
.schedule,
.faq-answer {
max-height: none;
        overflow: visible;
}
.schedule-toggle {
display: none;
}
}
@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
*,
*::before,
*::after {
animation-duration: 0.001ms !important;
        transition-duration: 0.001ms !important;
}
.js .reveal,
.js .reveal.is-visible {
opacity: 1;
        transform: none;
}
}
@media (max-width: 1080px) {
.desktop-nav {
display: none;
}
.menu-toggle {
display: grid;
        place-items: center;
}
.hero-grid,
.split-grid,
.team-grid,
.form-grid {
grid-template-columns: 1fr;
}
.team-grid .team-image {
order: 2;
}
.team-grid > div:not(.team-image) {
order: 1;
}
.hero-visual-wrap {
min-height: auto;
}
.hero-visual {
height: 460px;
}
.why-grid,
.project-grid {
grid-template-columns: minmax(0, 1fr);
}
.why-card {
display: grid;
        grid-template-columns: 0.85fr 1.15fr;
}
.why-image {
min-height: 100%;
}
}
@media (max-width: 760px) {
:root {
--header-h: 66px;
}
html {
scroll-padding-top: calc(var(--header-h) - 15px);
}
.section,
.hero {
scroll-margin-top: calc(var(--header-h) - 15px);
}
.container {
width: min(100% - 28px, var(--container));
}
.section,
.section.compact {
padding: 60px 0;
}
body:not(.membership-static-page) main:not(.survey-page):not(.dashboard-page) .section .eyebrow {
font-size: 13.5px;
}
.header-inner {
width: min(100% - 28px, var(--container));
        position: relative;
        display: grid;
        grid-template-columns: 70px minmax(0, 1fr) 70px;
        column-gap: 8px;
        justify-content: normal;
}
.brand {
position: static;
        left: auto;
        top: auto;
        transform: none;
        grid-column: 2;
        grid-row: 1;
        justify-self: center;
        justify-content: center;
        width: 100%;
        gap: 8px;
}
.header-actions {
display: contents;
}
.menu-toggle {
grid-column: 1;
        grid-row: 1;
        order: 1;
        flex: 0 0 44px;
}
.brand-text small {
font-size: 8px;
        letter-spacing: 0.18em;
}
.brand-text strong {
font-size: 14px;
}
.header-cta {
grid-column: 3;
        grid-row: 1;
        order: 2;
        display: inline-flex;
        flex: 0 0 auto;
        width: auto;
        min-height: 44px;
        padding: 8px 5px;
        border-radius: 16px;
        font-size: 10px;
        line-height: 1.08;
        white-space: normal;
        text-align: center;
        box-shadow: 0 12px 26px rgba(0,0,0,0.18);
}
.hero {
padding: calc(var(--header-h) + 26px) 0 60px;
}
.hero-grid {
display: flex;
        flex-direction: column;
        gap: 7px;
}
.hero-copy {
display: contents;
}
.founders {
order: 1;
}
.display-title {
order: 2;
}
.hero-text {
order: 3;
}
.hero-visual-wrap {
order: 4;
        width: 100%;
}
.hero-actions {
order: 5;
        width: 100%;
        margin-top: 0;
}
.display-title {
margin-top: 0;
        font-size: clamp(39px, 11vw, 56px);
}
.section-title {
margin-top: 18px;
}
.section-intro {
margin-top: 18px;
}
.hero-text {
margin-top: 5px;
        margin-bottom: 5px;
        font-size: 16px;
        line-height: 1.75;
}
.founders {
margin-top: -10px;
        margin-bottom: 10px;
        font-size: 10px;
        line-height: 1.15;
}
.hero .founders {
margin-top: 0;
        margin-bottom: 12px;
}
.hero-actions .btn {
width: 100%;
}
.hero-visual {
height: 380px;
        border-radius: 26px;
}
.hero-visual-card {
left: 16px;
        right: 16px;
        bottom: 16px;
        padding: 17px;
        border-radius: 22px;
}
.hero-visual-card strong {
font-size: 21px;
}
.line-orbit.one {
right: -128px;
        top: -36px;
}
.line-orbit.two {
left: -126px;
        bottom: 34px;
}
.content-card {
padding: 24px;
        border-radius: 24px;
}
.button-row {
display: grid;
        grid-template-columns: 1fr;
}
.btn {
width: 100%;
        white-space: normal;
        text-align: center;
}
.header-cta {
width: auto;
}
.venue-grid {
grid-template-columns: 1fr;
}
.venue-card {
padding: 24px;
        border-radius: 24px;
}
.venue-grid,
.why-grid,
.project-grid,
.faq-list {
margin-top: 32px;
}
.schedule-inner {
margin-top: 24px;
        padding: 20px;
}
.venue-head {
display: block;
}
.venue-actions {
grid-template-columns: 1fr;
}
.why-card {
display: block;
}
.why-image {
min-height: 235px;
}
.project-card {
padding: 24px;
}
.team-image {
min-height: 330px;
        border-radius: 24px;
}
.faq-question {
padding: 22px 20px;
}
.faq-answer-inner {
padding: 0 20px 22px;
}
.embed-box {
padding: 16px;
        border-radius: 24px;
}
.embed-placeholder {
min-height: 330px;
        border-radius: 20px;
}
.whatsapp-float {
width: 54px;
        height: 54px;
        right: 14px;
        bottom: 14px;
}
.footer-grid {
grid-template-columns: 1fr;
        gap: 28px;
}
.footer-bottom {
display: grid;
        gap: 8px;
}
}

@media (max-width: 480px) {
  #servizi .section-title {
    font-size: clamp(29px, 9vw, 43px);
  }

  #come-funziona .section-title {
    font-size: clamp(29px, 8.4vw, 34px);
  }

  .section.compact.white.privacy-content {
    padding: 20px 0 48px;
  }
}

.brand-logo {
  display: block;
  width: 165px;
  max-width: 100%;
  height: auto;
}

@media (max-width: 640px) {
  .brand-logo {
    width: 145px;
  }
}
.sunday-media {
  background-image: url("../img/home-community.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.sunday-calendar {
  margin-top: 30px;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--cream);
  box-shadow: var(--shadow-soft);
}

.sunday-calendar h3 {
  margin-top: 10px;
  color: var(--black);
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.sunday-calendar-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
}

.sunday-calendar-item {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  padding: 13px 14px;
  border: 1px solid rgba(0, 0, 0, 0.10);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.74);
}

.sunday-calendar-item span {
  flex: 0 0 auto;
  color: var(--gold-ink);
  font-family: "Montserrat", sans-serif;
  font-size: 21px;
  line-height: 1;
  font-weight: 900;
}

.sunday-calendar-item strong {
  min-width: 0;
  color: var(--black);
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.sunday-flyer-preview {
  display: grid;
  place-items: center;
  margin-top: 30px;
  min-width: 0;
}

.sunday-flyer-trigger {
  display: block;
  width: min(100%, 320px);
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: #ffffff;
  box-shadow: var(--shadow-soft);
  cursor: zoom-in;
}

.sunday-flyer-trigger img {
  display: block;
  width: 100%;
  height: auto;
}

.sunday-flyer-trigger:focus-visible,
.sunday-flyer-close:focus-visible {
  outline: 3px solid var(--black);
  outline-offset: 4px;
  box-shadow: 0 0 0 7px var(--paper);
}

.sunday-flyer-dialog {
  width: min(720px, calc(100% - 24px));
  max-width: none;
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  margin: auto;
  padding: 0;
  overflow: visible;
  border: 0;
  background: transparent;
}

.sunday-flyer-dialog::backdrop {
  background: rgba(0, 0, 0, 0.86);
  backdrop-filter: blur(5px);
}

.sunday-flyer-dialog-inner {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
}

.sunday-flyer-dialog img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  border-radius: var(--radius-lg);
  object-fit: contain;
}

.sunday-flyer-close {
  position: absolute;
  z-index: 1;
  top: 8px;
  right: 8px;
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.88);
  color: #ffffff;
  font: inherit;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}

body.flyer-dialog-open {
  overflow: hidden;
}

@media (max-width: 640px) {
  .sunday-calendar {
    margin-top: 24px;
    padding: 22px;
  }

  .sunday-flyer-preview {
    margin-top: 24px;
  }

  .sunday-calendar-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sunday-calendar-item {
    padding: 12px;
    border-radius: 16px;
  }
}

@media (max-width: 760px) {
  .project-video-caption {
    top: 14px;
    right: auto;
    bottom: auto;
    left: 14px;
    max-width: calc(100% - 28px);
    padding: 9px 12px 9px 8px;
    border-radius: 14px;
  }

  .project-video-caption strong {
    font-size: 13px;
  }

  .project-video-caption .project-video-play {
    flex-basis: 28px;
    width: 28px;
    height: 28px;
  }

  .embed-placeholder > iframe {
    min-height: 270px;
  }
}

:where(a, button, input, textarea, select, [tabindex]):focus-visible {
  outline: 3px solid var(--black);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px var(--paper);
}

.project-video-media:focus-visible {
  border-color: var(--gold);
}
