/* Magic Walk Design System — HTML-first, mobile-first */

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  /* Nomador-inspired palette — Fresh, airy, trustworthy */
  --color-primary: #7C3AED;
  --color-primary-dark: #6D28D9;
  --color-primary-light: #EDE9FE;
  --color-secondary: #4C1D95;
  --color-accent: #F43F5E;
  --color-accent-dark: #E11D48;

  /* Surfaces */
  --color-surface: #FFFFFF;
  --color-surface-alt: #FAF5FF;
  --color-surface-elevated: #FFFFFF;
  --color-surface-dark: #2E1065;

  /* Text */
  --color-on-surface: #111827;
  --color-on-surface-muted: #6B7280;
  --color-on-dark: #FFFFFF;

  /* Status */
  --color-success: #059669;
  --color-success-bg: #ECFDF5;
  --color-success-border: #059669;
  --color-error: #EF4444;
  --color-error-bg: #FEF2F2;
  --color-error-border: #EF4444;
  --color-warning: #F59E0B;
  --color-warning-bg: #FFFBEB;
  --color-warning-border: #F59E0B;
  --color-info: #3B82F6;
  --color-info-bg: #EFF6FF;
  --color-info-border: #3B82F6;

  /* Typography — Clean sans-serif only */
  --font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
  --font-mono: 'IBM Plex Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;

  /* Fluid type scale */
  --font-xs: clamp(0.75rem, 0.7rem + 0.2vw, 0.875rem);
  --font-sm: clamp(0.875rem, 0.8rem + 0.3vw, 1rem);
  --font-base: clamp(1rem, 0.9rem + 0.4vw, 1.125rem);
  --font-lg: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
  --font-xl: clamp(1.25rem, 1.1rem + 0.7vw, 1.75rem);
  --font-2xl: clamp(1.5rem, 1.3rem + 1vw, 2.25rem);
  --font-3xl: clamp(1.875rem, 1.6rem + 1.3vw, 3rem);
  --font-4xl: clamp(2.5rem, 2rem + 2.5vw, 4.5rem);
  --font-5xl: clamp(3rem, 2.4rem + 3vw, 6rem);

  /* Spacing */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 8rem;

  /* Radii */
  --radius-sm: 0.5rem;
  --radius-md: 0.75rem;
  --radius-lg: 1rem;
  --radius-xl: 1.5rem;
  --radius-2xl: 2rem;
  --radius-full: 9999px;

  /* Shadows — Soft, modern */
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.05), 0 2px 4px -2px rgb(0 0 0 / 0.03);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.05), 0 4px 6px -4px rgb(0 0 0 / 0.03);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.05), 0 8px 10px -6px rgb(0 0 0 / 0.02);
  --shadow-card: 0 1px 3px 0 rgb(0 0 0 / 0.04), 0 10px 40px -10px rgb(0 0 0 / 0.06);
  --shadow-card-hover: 0 1px 3px 0 rgb(0 0 0 / 0.04), 0 20px 50px -12px rgb(0 0 0 / 0.12);

  /* Easings */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-editorial: cubic-bezier(0.22, 1, 0.36, 1);

  /* Line heights */
  --leading-tight: 1.15;
  --leading-normal: 1.6;
  --leading-relaxed: 1.7;

  /* Layout */
  --container-max: 1200px;
  --container-padding: var(--space-4);

  /* Z-index */
  --z-base: 1;
  --z-nav: 50;
  --z-modal: 100;
  --z-skip: 200;
}

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font-family);
  font-size: var(--font-base);
  line-height: var(--leading-normal);
  color: var(--color-on-surface);
  background-color: var(--color-surface);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

body.nav-open {
  overflow: hidden;
  touch-action: none;
}

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

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

ul,
ol {
  list-style: none;
}

/* Skip link */
.skip-link {
  position: absolute;
  top: -100%;
  left: var(--space-4);
  z-index: var(--z-skip);
  padding: var(--space-3) var(--space-4);
  background: var(--color-primary);
  color: var(--color-on-dark);
  font-family: var(--font-mono);
  font-size: var(--font-sm);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  border-radius: var(--radius-md);
  transition: top 0.2s var(--ease-out);
}

.skip-link:focus {
  top: var(--space-4);
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

/* Container */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

/* Layout utilities */
.flex {
  display: flex;
}

.flex-col {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.items-center {
  align-items: center;
}

.justify-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.grid {
  display: grid;
}

.gap-4 {
  gap: var(--space-4);
}

.gap-6 {
  gap: var(--space-6);
}

.gap-8 {
  gap: var(--space-8);
}

.gap-12 {
  gap: var(--space-12);
}

.text-center {
  text-align: center;
}

.text-left {
  text-align: left;
}

.text-accent {
  color: var(--color-accent);
}

.mx-auto {
  margin-inline: auto;
}

.w-full {
  width: 100%;
}

.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;
}

/* Typography utilities */
.mono {
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: var(--font-xs);
}

.display {
  font-family: var(--font-family);
  font-size: var(--font-4xl);
  font-weight: 800;
  line-height: var(--leading-tight);
  letter-spacing: -0.04em;
  text-wrap: balance;
  color: var(--color-on-surface);
}

.display em {
  font-style: normal;
  color: var(--color-primary);
}

.eyebrow {
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: var(--font-xs);
  color: var(--color-on-surface-muted);
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.eyebrow::before {
  content: "";
  display: block;
  width: 1.5rem;
  height: 1px;
  background: var(--color-accent);
}

.eyebrow--pill {
  display: inline-flex;
  width: fit-content;
  padding: var(--space-2) var(--space-4);
  background: var(--color-primary-light);
  color: var(--color-primary-dark);
  border-radius: var(--radius-full);
  margin-bottom: var(--space-4);
}

.eyebrow--pill::before {
  content: none;
}

.section-num {
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: var(--font-xs);
  color: var(--color-accent);
}

.lede {
  font-size: var(--font-lg);
  line-height: var(--leading-relaxed);
  color: var(--color-on-surface-muted);
  max-width: 60ch;
  text-wrap: balance;
}

.hero .lede {
  text-align: center;
  margin-inline: auto;
  max-width: 90ch;
}

.hero .lede-full {
  max-width: 100%;
}

.lede-wide {
  max-width: 80ch;
}

.lede-full {
  max-width: 100%;
}

.lede-hero {
  max-width: 90ch;
  margin-inline: auto;
  text-align: center;
}

/* Animations */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-40px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(40px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.96);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes marq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.nav{position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);background:rgba(255,255,255,0.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,0.04);transition:box-shadow 0.3s var(--ease-out);}
.nav.scrolled{box-shadow:var(--shadow-md);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:80px;gap:var(--space-4);}
.nav-logo{font-family:var(--font-family);font-size:var(--font-xl);color:var(--color-primary);font-weight:800;letter-spacing:-0.03em;}
.nav-logo-wordmark{display:inline-block;}
.nav-menu ul{display:flex;align-items:center;gap:var(--space-8);}
.nav-menu a{font-size:var(--font-sm);font-weight:500;color:var(--color-on-surface);transition:color 0.2s var(--ease-out);position:relative;padding-block:var(--space-2);}
.nav-menu a:hover,.nav-menu a[aria-current="page"]{color:var(--color-primary);}
.nav-cta{display:none;}
@media(min-width:768px){.nav-cta{display:inline-flex;}}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;width:40px;height:40px;gap:5px;padding:0;border-radius:var(--radius-md);transition:background 0.2s;}
.nav-toggle:hover{background:var(--color-surface-alt);}
.nav-toggle-bar{display:block;width:22px;height:2px;background:var(--color-on-surface);border-radius:2px;transition:transform 0.3s var(--ease-out),opacity 0.3s;}
.nav-toggle.is-open .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-open .nav-toggle-bar:nth-child(2){opacity:0;}
.nav-toggle.is-open .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media(max-width:767px){
  .nav-menu{position:fixed;inset:80px 0 0 0;height:calc(100vh - 80px);background:var(--color-surface);z-index:40;display:none;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-8);box-shadow:var(--shadow-xl);}
  .nav-menu.is-open{display:flex;}
  .nav-menu ul{flex-direction:column;align-items:center;gap:var(--space-6);}
  .nav-menu a{font-size:var(--font-2xl);font-weight:600;padding-block:var(--space-3);}
  .nav-toggle{display:flex;}
}
@media(min-width:768px){
  .nav-menu{position:static;display:block !important;height:auto;width:auto;background:transparent;padding:0;box-shadow:none;}
  .nav-menu ul{flex-direction:row;}
}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-family:var(--font-family);font-size:var(--font-sm);font-weight:600;line-height:1;border-radius:var(--radius-full);border:1.5px solid transparent;cursor:pointer;transition:all 0.25s var(--ease-out);text-decoration:none;box-shadow:var(--shadow-sm);}
.btn-primary{background:var(--color-primary);color:var(--color-on-dark);border-color:var(--color-primary);box-shadow:0 4px 12px -2px rgba(124,58,237,0.25);}
.btn-primary:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 8px 20px -4px rgba(124,58,237,0.3);}
.btn-outline{background:transparent;color:var(--color-primary);border-color:var(--color-primary);}
.btn-outline:hover{background:var(--color-primary);color:var(--color-on-dark);}
.btn-ghost{background:transparent;color:var(--color-on-surface);border-color:transparent;box-shadow:none;}
.btn-ghost:hover{background:var(--color-surface-alt);}
.btn-white{background:var(--color-on-dark);color:var(--color-primary);border-color:var(--color-on-dark);box-shadow:var(--shadow-md);}
.btn-white:hover{background:var(--color-surface-alt);color:var(--color-primary-dark);}
.btn-accent{background:var(--color-accent);color:var(--color-on-dark);border-color:var(--color-accent);box-shadow:0 4px 12px -2px rgba(244,63,94,0.25);}
.btn-accent:hover{background:var(--color-accent-dark);border-color:var(--color-accent-dark);transform:translateY(-1px);box-shadow:0 8px 20px -4px rgba(244,63,94,0.3);}
.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--font-xs);}
.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-base);}
.btn-line{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:600;color:var(--color-primary);text-decoration:none;transition:color 0.2s;}
.btn-line:hover{color:var(--color-primary-dark);}
.section{padding-block:var(--space-20);}
.section--compact{padding-block:var(--space-16);}
.section--tall{padding-block:var(--space-24);}
.section--alt{background:var(--color-surface-alt);}
.section--primary{background:var(--color-primary);color:var(--color-on-dark);}
.section--primary .display em{color:var(--color-primary-light);}
.section--primary .lede{color:rgba(255,255,255,0.85);}
.section--dark{background:var(--color-surface-dark);color:var(--color-on-dark);}
.section--accent{background:var(--color-accent-dark);color:var(--color-on-dark);}
.section--white{background:var(--color-surface);color:var(--color-on-surface);}
.section--accent .display{color:var(--color-on-dark);}
.section--accent .lede{color:rgba(255,255,255,0.85);}
.section--accent .btn-white{color:var(--color-accent-dark);}
.section--accent .btn-white:hover{color:var(--color-accent);}
.contact-pills{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-8);margin-bottom:var(--space-6);}
.card-soft{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-lg);}
.map-embed--rounded{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);}
.map-embed--rounded iframe{display:block;width:100%;border:0;}
.display--quote p{font-size:var(--font-3xl);}
.section--primary .btn-line,.section--dark .btn-line{color:var(--color-on-dark);border-bottom-color:currentColor;}
.section--primary .btn-line:hover,.section--dark .btn-line:hover{color:var(--color-accent);}
.section--hero{padding-top:calc(var(--space-24) + 64px);padding-bottom:var(--space-16);}
.hero .grid-2{align-items:center;}
.grid-2{grid-template-columns:1fr;gap:var(--space-8);}
@media(min-width:768px){.grid-2{grid-template-columns:repeat(2,1fr);}}
.grid-3{grid-template-columns:1fr;gap:var(--space-8);}
@media(min-width:768px){.grid-3{grid-template-columns:repeat(3,1fr);}}
.grid-4{grid-template-columns:1fr;gap:var(--space-8);}
@media(min-width:768px){.grid-4{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.grid-4{grid-template-columns:repeat(4,1fr);}}
.footer{padding-block:var(--space-16) var(--space-8);background:var(--color-surface-alt);}
.footer-grid{display:grid;grid-template-columns:1fr;gap:var(--space-12);}
@media(min-width:768px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr;}}
.footer-brand{font-family:var(--font-family);font-size:var(--font-2xl);font-weight:800;letter-spacing:-0.03em;margin-bottom:var(--space-2);color:var(--color-on-surface);}
.footer-tagline{color:var(--color-on-surface-muted);max-width:30ch;font-size:var(--font-sm);line-height:var(--leading-relaxed);}
.footer-heading{margin-bottom:var(--space-4);color:var(--color-on-surface-muted);font-weight:600;font-size:var(--font-sm);}
.footer-links li+li{margin-top:var(--space-3);}
.footer-links a{font-size:var(--font-sm);color:var(--color-on-surface-muted);transition:color 0.2s;word-break:break-word;}
.footer-links a:hover{color:var(--color-primary);}
.footer-links .footer-contact-text{font-size:var(--font-sm);color:var(--color-on-surface-muted);line-height:var(--leading-relaxed);}
.footer-social{display:flex;gap:var(--space-3);}
.footer-social a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-on-surface-muted);border:1px solid rgba(0,0,0,0.06);transition:all 0.2s var(--ease-out);}
.footer-social a:hover{background:var(--color-primary);color:var(--color-on-dark);border-color:var(--color-primary);transform:translateY(-2px);}
.footer-bottom{margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid rgba(0,0,0,0.06);text-align:center;font-size:var(--font-sm);color:var(--color-on-surface-muted);}
.contact-list{margin-top:var(--space-6);}
.contact-list li{display:flex;gap:var(--space-4);margin-top:var(--space-3);font-size:var(--font-sm);}
.contact-list .mono{min-width:5.5rem;color:var(--color-on-surface-muted);}
.contact-list a{color:var(--color-primary);transition:color 0.2s;}
.contact-list a:hover{color:var(--color-primary-dark);}
.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-modal);background:var(--color-surface-dark);color:var(--color-on-dark);padding:var(--space-6) 0;transform:translateY(0);transition:transform 0.4s var(--ease-out);}
.cookie-banner[hidden],.cookie-banner.is-hidden{transform:translateY(100%);}
.cookie-inner{display:flex;flex-direction:column;gap:var(--space-4);}
.cookie-text{font-size:var(--font-sm);max-width:80ch;opacity:0.9;line-height:var(--leading-relaxed);}
.cookie-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);}
.cookie-custom{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid rgba(250,248,245,0.12);}
.cookie-custom[hidden]{display:none;}
.cookie-option{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-sm);cursor:pointer;}
.cookie-option input{accent-color:var(--color-accent);width:16px;height:16px;cursor:pointer;}
.cookie-option input:disabled{opacity:0.6;}
.form-group{margin-bottom:var(--space-6);}
.form-row{display:grid;grid-template-columns:1fr;gap:var(--space-4);}
@media(min-width:768px){.form-row{grid-template-columns:1fr 1fr;}}
.form-group label{display:block;margin-bottom:var(--space-2);font-size:var(--font-sm);font-weight:500;}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:var(--space-3) var(--space-4);border:1.5px solid rgba(124,58,237,0.15);border-radius:var(--radius-md);background:var(--color-surface);font-family:inherit;font-size:var(--font-base);color:var(--color-on-surface);transition:border-color 0.2s,box-shadow 0.2s;}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(244,63,94,0.15);}
.form-group input.is-invalid,.form-group textarea.is-invalid{border-color:var(--color-error);}
.form-message{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-sm);}
.form-message:not([hidden]){background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border);}
.form-message.is-error:not([hidden]){background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-border);}
.form-hp{position:absolute;left:-9999px;opacity:0;height:0;width:0;}
.faq-item{border-bottom:1px solid rgba(124,58,237,0.12);}
.faq-question{width:100%;text-align:left;padding:var(--space-6) 0;background:none;border:none;font-family:inherit;font-size:var(--font-lg);font-weight:500;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--color-on-surface);}
.faq-question::after{content:'+';font-family:var(--font-mono);font-size:var(--font-xl);color:var(--color-primary);transition:transform 0.3s var(--ease-out);line-height:1;}
.faq-question:has(.faq-icon)::after{content:none;}
details[open] .faq-question::after{content:'\2212';}
details[open] .faq-question:has(.faq-icon)::after{content:none;}
.faq-icon{display:inline-block;color:var(--color-primary);transition:transform 0.3s var(--ease-out);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height 0.35s var(--ease-out),padding 0.35s;font-size:var(--font-base);color:var(--color-on-surface-muted);line-height:var(--leading-relaxed);}
.faq-answer.is-open,
details[open] .faq-answer{max-height:2000px;padding-bottom:var(--space-6);}
details{border-bottom:1px solid rgba(124,58,237,0.12);}
summary{padding:var(--space-6) 0;list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:var(--font-lg);font-weight:500;color:var(--color-on-surface);}
summary::-webkit-details-marker{display:none;}
summary::after{content:'+';font-family:var(--font-mono);font-size:var(--font-xl);color:var(--color-primary);}
details[open] summary::after{content:'\2212';}
details>div,details>p{padding-bottom:var(--space-6);color:var(--color-on-surface-muted);}
.testimonial-quote{font-family:var(--font-serif);font-style:italic;line-height:var(--leading-tight);color:var(--color-primary);}
.testimonial-author{display:flex;align-items:center;gap:var(--space-4);}
.testimonial-avatar{width:48px;height:48px;border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-on-dark);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--font-sm);flex-shrink:0;}
.spec-list dl{display:grid;grid-template-columns:12rem 1fr;gap:var(--space-2) var(--space-6);padding:var(--space-5) 0;border-bottom:1px solid rgba(124,58,237,0.1);align-items:start;}
.spec-list dt{font-family:var(--font-mono);font-size:var(--font-xs);color:var(--color-on-surface-muted);}
.spec-list dd{font-size:var(--font-sm);font-weight:500;}
.scroll-reveal{opacity:0;transform:translateY(24px);transition:opacity 0.6s var(--ease-editorial),transform 0.6s var(--ease-editorial);}
.scroll-reveal.is-visible{opacity:1;transform:translateY(0);}
.animate-on-scroll{opacity:0;}
.animate-on-scroll.animated{animation:fadeInUp 0.6s var(--ease-editorial) forwards;}
.delay-1{transition-delay:0.1s;}
.delay-2{transition-delay:0.2s;}
.delay-3{transition-delay:0.3s;}
.delay-4{transition-delay:0.4s;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;}
@media(max-width:768px){.nav-toggle{display:flex;}.nav-menu{position:fixed;inset:0;top:64px;background:var(--color-surface);padding:var(--space-8) var(--space-6);transform:translateX(100%);transition:transform 0.35s var(--ease-out);overflow-y:auto;border-left:1px solid var(--color-surface-alt);}.nav-menu.is-open{transform:translateX(0);}.nav-menu ul{flex-direction:column;gap:var(--space-6);}.nav-menu a{font-size:var(--font-xl);font-family:var(--font-serif);}.display{font-size:var(--font-3xl);}.display--quote p{font-size:var(--font-2xl);}.section--hero{padding-top:calc(var(--space-16) + 64px);}}
.hero{position:relative;overflow:hidden;padding-top:calc(var(--space-24) + 80px);padding-bottom:var(--space-24);}
.hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 10% 20%,rgba(237,233,254,0.4) 0%,transparent 60%),radial-gradient(ellipse 60% 50% at 90% 80%,rgba(244,63,94,0.06) 0%,transparent 60%);z-index:0;pointer-events:none;}
.hero-bg-img{position:absolute;inset:0;background-image:url(https://images.unsplash.com/photo-1548199973-03cce0bbc87b?w=1200&q=80);background-size:cover;background-position:center;opacity:0.15;z-index:-1;pointer-events:none;}
.hero > .container{position:relative;z-index:1;}
.hero-split{display:grid;grid-template-columns:1fr;gap:var(--space-12);align-items:center;}
@media(min-width:1024px){.hero-split{grid-template-columns:1.1fr 1fr;}}
.hero-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-primary-light);color:var(--color-primary-dark);border-radius:var(--radius-full);font-size:var(--font-sm);font-weight:600;margin-bottom:var(--space-6);width:fit-content;}
.hero .display{margin-bottom:var(--space-6);}
.hero .lede{margin-bottom:var(--space-8);max-width:52ch;}
.hero .lede.hero-lede-wide{max-width:85ch;width:100%;}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;}
.section-header{text-align:center;max-width:64ch;margin-inline:auto;margin-bottom:var(--space-16);}
.section-header .display{margin-bottom:var(--space-4);}
.section-header .lede{margin-inline:auto;}
.section-head .display{margin-bottom:var(--space-8);}
.section-head .lede{margin-inline:auto;margin-bottom:var(--space-12);}
.service-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6);}
@media(min-width:768px){.service-grid{grid-template-columns:repeat(3,1fr);}}
.card{background:var(--color-surface);border:1px solid rgba(0,0,0,0.04);border-radius:var(--radius-xl);padding:var(--space-8);transition:transform 0.3s var(--ease-out),box-shadow 0.3s var(--ease-out);box-shadow:var(--shadow-card);}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover);}
.card-icon{width:48px;height:48px;border-radius:var(--radius-lg);background:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-5);font-family:var(--font-mono);font-weight:700;font-size:var(--font-lg);}
.card-title{font-size:var(--font-xl);font-weight:700;margin-bottom:var(--space-2);letter-spacing:-0.02em;}
.card-text{font-size:var(--font-sm);color:var(--color-on-surface-muted);line-height:var(--leading-relaxed);}
.quote-section{text-align:center;}
.quote-section .display{color:var(--color-on-dark);margin-bottom:var(--space-10);max-width:60ch;margin-inline:auto;}
.quote-author{display:inline-flex;align-items:center;gap:var(--space-4);color:var(--color-on-dark);margin-top:var(--space-8);}
.quote-avatar{width:56px;height:56px;border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-on-dark);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--font-sm);font-weight:700;flex-shrink:0;}
.split-section{display:grid;grid-template-columns:1fr;gap:var(--space-16);align-items:start;}
@media(min-width:1024px){.split-section{grid-template-columns:1.1fr 0.9fr;gap:var(--space-24);}}
.faq-modern details{border:1px solid rgba(0,0,0,0.06);border-radius:var(--radius-lg);margin-bottom:var(--space-3);background:var(--color-surface);overflow:hidden;transition:box-shadow 0.2s;}
.faq-modern details:hover{box-shadow:var(--shadow-sm);}
.faq-modern summary{padding:var(--space-5) var(--space-6);list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:var(--font-base);font-weight:600;color:var(--color-on-surface);}
.faq-modern summary::-webkit-details-marker{display:none;}
.faq-modern summary::after{content:'+';font-family:var(--font-mono);font-size:var(--font-xl);color:var(--color-primary);flex-shrink:0;margin-left:var(--space-4);}
.faq-modern details[open] summary::after{content:'\2212';}
.faq-modern details > div,.faq-modern details > p{padding:0 var(--space-6) var(--space-6);color:var(--color-on-surface-muted);font-size:var(--font-sm);line-height:var(--leading-relaxed);}
.contact-card{background:var(--color-surface);border:1px solid rgba(0,0,0,0.04);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-card);}
.contact-card .display{font-size:var(--font-2xl);margin-bottom:var(--space-6);}
.contact-row{display:grid;grid-template-columns:6.5rem 1fr;gap:var(--space-4);margin-bottom:var(--space-5);font-size:var(--font-sm);align-items:start;}
.contact-row .mono{color:var(--color-on-surface-muted);}
.contact-row a{color:var(--color-primary);font-weight:600;word-break:break-word;}
.contact-row a:hover{color:var(--color-primary-dark);}
.cta-section{text-align:center;}
.cta-section .display{margin-bottom:var(--space-6);color:var(--color-on-dark);}
.cta-section .lede{margin-bottom:var(--space-10);margin-inline:auto;color:rgba(255,255,255,0.85);}
.cta-title{max-width:22ch;margin-inline:auto;}
.cta-lede{max-width:85ch;margin-inline:auto;margin-bottom:var(--space-10);}
.grid-2{grid-template-columns:1fr;gap:var(--space-8);}
@media(min-width:768px){.grid-2{grid-template-columns:repeat(2,1fr);}}
.grid-3{grid-template-columns:1fr;gap:var(--space-8);}
@media(min-width:768px){.grid-3{grid-template-columns:repeat(3,1fr);}}
.grid-4{grid-template-columns:1fr;gap:var(--space-8);}
@media(min-width:768px){.grid-4{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.grid-4{grid-template-columns:repeat(4,1fr);}}
.contact-pills{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-8);margin-bottom:var(--space-6);}
.card-soft{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-lg);}
.map-embed--rounded{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);}
.map-embed--rounded iframe{display:block;width:100%;border:0;}
.display--quote p{font-size:var(--font-3xl);}
.section--primary .btn-line,.section--dark .btn-line{color:var(--color-on-dark);border-bottom-color:currentColor;}
.section--primary .btn-line:hover,.section--dark .btn-line:hover{color:var(--color-accent);}
.section--hero{padding-top:calc(var(--space-24) + 80px);padding-bottom:var(--space-16);}
.hero .grid-2{align-items:center;}
@media(max-width:768px){.nav-toggle{display:flex;}.nav-menu{position:fixed;inset:0;top:80px;background:var(--color-surface);padding:var(--space-8) var(--space-6);transform:translateX(100%);transition:transform 0.35s var(--ease-out);overflow-y:auto;border-left:1px solid rgba(0,0,0,0.04);}.nav-menu.is-open{transform:translateX(0);}.nav-menu ul{flex-direction:column;gap:var(--space-6);}.nav-menu a{font-size:var(--font-xl);font-weight:600;}.display{font-size:var(--font-3xl);}.section{padding-block:var(--space-16);}.hero{padding-top:calc(var(--space-16) + 80px);padding-bottom:var(--space-16);}}
.gallery-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4);}
@media(min-width:768px){.gallery-grid{grid-template-columns:repeat(3,1fr);}}
.gallery-img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);transition:transform 0.3s var(--ease-out),box-shadow 0.3s var(--ease-out);}
.gallery-img:hover{transform:scale(1.02);box-shadow:var(--shadow-xl);}

.section--manifesto{text-align:center;}
.section--manifesto .manifesto-quote{max-width:72ch;margin-inline:auto;}
.section--legal-hero{padding-top:calc(var(--space-24) + 80px);}
.section--legal-content ul,.section--legal-content ol,.section--cookie-policy ul,.section--cookie-policy ol,.section--privacy-policy ul,.section--privacy-policy ol,.prose ul,.prose ol{list-style:revert;padding-left:var(--space-6);}
.section--legal-content li,.section--cookie-policy li,.section--privacy-policy li,.prose li{margin-bottom:var(--space-2);}

.section--contatti-apertura .display {
  margin-bottom: var(--space-12);
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}.scroll-reveal{opacity:1;transform:none;}.animate-on-scroll{opacity:1;}.nav-menu{transition:none;}}