@font-face{font-family:'Software Satoshi';src:url('../fonts/home-material3/satoshi-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Software Satoshi';src:url('../fonts/home-material3/satoshi-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Software Satoshi';src:url('../fonts/home-material3/satoshi-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Software Satoshi';src:url('../fonts/home-material3/satoshi-900.woff2') format('woff2');font-weight:900;font-style:normal;font-display:swap}
.rt-software-page,.sm3-rt-footer{--primary: #6255ff; --on-primary: #ffffff; --primary-container: #ebe7ff; --on-primary-container: #5144da; --secondary: #5e5c71; --on-secondary: #ffffff; --secondary-container: #e3e0f9; --on-secondary-container: #464559; --tertiary: #645e4b; --on-tertiary: #ffffff; --tertiary-container: #ddd7cd; --on-tertiary-container: #4c4634; --error: #ba1a1a; --on-error: #ffffff; --error-container: #ffdad6; --on-error-container: #93000a; --background: #ffffff; --on-background: #253044; --surface: #ffffff; --on-surface: #253044; --surface-variant: #e4e1f0; --on-surface-variant: #526174; --surface-dim: #dcd9e5; --surface-bright: #ffffff; --surface-container-lowest: #ffffff; --surface-container-low: #f7f6fd; --surface-container: #f5f3ff; --surface-container-high: #eae7f3; --surface-container-highest: #e4e1ee; --outline: #7a7d86; --outline-variant: #e0e2ec; --inverse-surface: #253044; --inverse-on-surface: #f3f2f7; --inverse-primary: #c4c0ff; --scrim: #00000052; --primary-text: #5144da; --link-hover: #5b57ff; --violet-border: #e2dcff; --gradient-start: #f1eeff; --gradient-end: #f9f8ff; --field-border: #c6cbd8; --star: #f6b800; --footer-bg: #f8f8f8; --footer-text: #565b64; --brand-violet: #6255ff; --brand-blue: #467ff7; --brand-ink: #253044; --brand-muted: #666b74; --brand-night: #111111; --brand-deep-space: #04060e; --brand-sand: #ddd7cd; --brand-sand-deep: #c4beb4; --brand-mist: #f7f7fb; --white: #ffffff; --white-muted: #ffffffe0; --white-outline: #ffffff73; --elevation-1: 0 1px 2px #23252b3d, 0 1px 3px 1px #23252b1f; --elevation-2: 0 1px 2px #23252b3d, 0 2px 6px 2px #23252b1f; --elevation-3: 0 1px 3px #23252b3d, 0 4px 8px 3px #23252b1f; --elevation-4: 0 2px 3px #23252b3d, 0 6px 10px 4px #23252b1f; --elevation-5: 0 4px 4px #23252b3d, 0 8px 12px 6px #23252b1f; --glow-primary: 0 8px 32px #6255ff59; --shadow-card: 0 12px 30px #2530440a; --shadow-cta: 0 7px 20px #6255ff21; --shadow-review: 0 10px 24px #16161e09; --header-hairline: 0 1px 0 #12142314;--space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 20px; --space-6: 24px; --space-7: 28px; --space-8: 32px; --space-10: 40px; --space-12: 48px; --space-16: 64px; --space-24: 96px; --space-32: 128px; --section-y: 76px; --section-x: 56px; --card-pad: 30px; --radius-none: 0px; --radius-xs: 4px; --radius-sm: 8px; --radius-md: 12px; --radius-lg: 16px; --radius-lg-increased: 20px; --radius-xl: 28px; --radius-xl-increased: 32px; --radius-xxl: 48px; --radius-input: 10px; --radius-media: 14px; --radius-icon-chip: 15px; --radius-review: 18px; --radius-card: 25px; --radius-panel: 30px; --radius-full: 9999px; --state-hover: 0.08; --state-focus: 0.10; --state-pressed: 0.10; --state-dragged: 0.16; --state-disabled-content: 0.38; --state-disabled-container: 0.12; --header-height: 88px; --content-max: 1456px; --layout-full: 1920px; --reading-max: 720px; --touch-target: 48px; --button-s: 40px; --button-m: 48px; --button-l: 56px; --field-height: 56px; --z-sticky: 100; --z-sheet: 200; --z-scrim: 290; --z-dialog: 300; --z-toast: 500; --font-display: 'Archivo Black', Impact, 'Arial Narrow Bold', sans-serif; --font-headline: Stem, Satoshi, Arial, sans-serif; --font-plain: Satoshi, Raleway, Arial, sans-serif; --font-mono: 'JetBrains Mono', ui-monospace, Menlo, monospace;--font-plain:'Software Satoshi',Arial,sans-serif;--font-headline:var(--font-plain);background:var(--surface);color:var(--on-surface);font-family:var(--font-plain);-webkit-font-smoothing:antialiased;}

.rt-software-page *, .sm3-rt-footer *{box-sizing:border-box}
.rt-software-page h1,.rt-software-page h2,.rt-software-page h3,.rt-software-page p{padding:0}
.sm3-icon{display:inline-block;width:var(--icon-size,24px);height:var(--icon-size,24px);flex:none;vertical-align:middle}
.sm3-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border:0;border-radius:9999px;font:700 16px/24px var(--font-plain);white-space:nowrap;text-decoration:none;cursor:pointer}
.sm3-btn--l{min-height:56px;padding:0 32px}
.sm3-btn--filled{background:var(--primary);color:white;box-shadow:var(--shadow-cta)}
.sm3-btn--filled:hover{background:#5144da;color:white}
.sm3-btn--outlined{background:transparent;color:var(--on-surface);box-shadow:inset 0 0 0 1px var(--field-border)}
.sm3-btn--outlined:hover{background:var(--primary-container);color:var(--on-surface)}
.rt-software-page a:focus-visible,.rt-software-page button:focus-visible,.rt-software-page summary:focus-visible{outline:3px solid var(--primary);outline-offset:4px}
.sm3-rt-section{background:var(--surface);color:var(--on-surface)}
.sm3-rt-section--low{background:var(--surface-container-low)}
.sm3-rt-section__inner{max-width:var(--content-max);margin:0 auto;padding:var(--section-y) var(--section-x)}
.sm3-rt-actions{display:flex;flex-wrap:wrap;gap:12px}
.sm3-rt-shead{display:flex;flex-direction:column;gap:16px;max-width:760px;margin-bottom:40px}
.sm3-rt-shead__title{margin:0;font:700 clamp(30px,3vw,43px)/1.17 var(--font-plain);letter-spacing:-.005em;color:var(--on-surface)}
.sm3-faq-item{border-bottom:1px solid var(--outline-variant)}
.sm3-faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 8px;list-style:none;cursor:pointer}
.sm3-faq-item summary::-webkit-details-marker{display:none}
.sm3-faq-item summary h3{margin:0;font:700 20px/28px var(--font-plain);color:var(--on-surface)}
.sm3-faq-item[open] summary{color:var(--primary-text)}
.sm3-faq-item[open] summary h3{color:var(--primary-text)}
.sm3-faq-item[open] summary svg{transform:rotate(180deg)}
.sm3-faq-answer{padding:0 48px 24px 8px;font:400 17px/28px var(--font-plain);color:var(--on-surface-variant)}
.sm3-faq-answer p{margin:0}
.sm3-field{position:relative;display:flex;min-width:0}
.sm3-field>span{position:absolute;top:-9px;left:12px;padding:0 4px;background:white;font:500 13px/18px var(--font-plain);color:var(--on-surface-variant)}
.sm3-field input{width:100%;height:56px;min-width:0;padding:14px 16px;border:1px solid var(--field-border);border-radius:10px;font:400 16px/24px var(--font-plain);background:white;color:var(--on-surface)}
.sm3-field input:focus{outline:2px solid var(--primary);outline-offset:-2px;border-color:var(--primary)}
.sm3-sh-privacy{align-items:flex-start!important;flex-wrap:nowrap!important}
.sm3-sh-privacy input{margin-top:3px;flex:none;accent-color:var(--primary);width:18px;height:18px}
.sm3-form-notice{margin:0 0 24px;padding:16px;border-radius:12px;background:var(--primary-container);font:500 16px/24px var(--font-plain)}
@media(max-width:839px){.sm3-rt-section__inner{padding:48px 20px}.rt-software-page,.sm3-rt-footer{--section-x:20px}.sm3-faq-answer{padding-right:8px}}

.sm3-rt-software-page { margin: 0; background: var(--surface); color: var(--on-surface); font-family: var(--font-plain); -webkit-font-smoothing: antialiased; }
a:not([class]) { color: var(--primary-text); text-underline-offset: 3px; }
a:not([class]):hover { color: var(--link-hover); }
.sm3-sh-eyebrow { margin: 0; font: 700 13px/21px var(--font-plain); letter-spacing: 0.04em; text-transform: uppercase; color: var(--primary-text); }
.sm3-sh-h2 { margin: 0; font: 800 clamp(32px, 3vw, 43px)/1.12 var(--font-plain); letter-spacing: -0.01em; color: var(--on-surface); }
.sm3-sh-h3 { margin: 0; font: 700 22px/1.3 var(--font-plain); color: var(--on-surface); }
.sm3-sh-p { margin: 0; font: 400 17px/28px var(--font-plain); color: var(--on-surface-variant); }

/* ---------- Hero ---------- */
.sm3-sh-hero { position: relative; overflow: clip; background: radial-gradient(circle at 78% 46%, #e6e1ff 0, rgba(235, 231, 255, 0.55) 26%, rgba(255, 255, 255, 0) 56%), linear-gradient(180deg, #f7f6fd 0%, #ffffff 100%); }
.sm3-sh-hero__inner { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-10); align-items: end; max-width: 1440px; margin: 0 auto; padding: 72px var(--section-x) 0; box-sizing: border-box; }
.sm3-sh-hero__text { display: flex; flex-direction: column; gap: var(--space-6); padding-bottom: var(--section-y); }
.sm3-sh-hero__eyebrow { display: inline-flex; align-items: center; gap: var(--space-2); width: max-content; max-width: 100%; min-height: 32px; margin: 0; padding: 6px var(--space-4); border-radius: var(--radius-full); background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--violet-border); font: 700 13px/18px var(--font-plain); letter-spacing: 0.04em; text-transform: uppercase; color: var(--primary-text); box-sizing: border-box; }
.sm3-sh-hero__eyebrow i { width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--primary); box-shadow: 0 0 0 4px rgba(98, 85, 255, 0.16); }
.sm3-sh-hero__title { margin: 0; font: 800 clamp(40px, 4.4vw, 60px)/1.08 var(--font-plain); letter-spacing: -0.02em; color: var(--on-surface); }
.sm3-sh-hero__intro { margin: 0; max-width: 640px; font: 400 19px/30px var(--font-plain); color: var(--on-surface-variant); }
.sm3-sh-points { display: flex; flex-wrap: wrap; gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.sm3-sh-points li { display: inline-flex; align-items: center; gap: var(--space-2); height: 44px; padding: 0 var(--space-4) 0 6px; border-radius: var(--radius-full); background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--outline-variant), var(--shadow-card); font: 600 15px/20px var(--font-plain); color: var(--on-surface); }
.sm3-sh-points li span { display: grid; place-items: center; width: 32px; height: 32px; flex: none; background: var(--primary-container); color: var(--on-primary-container); }
.sm3-sh-points li:first-child span { background: var(--primary); color: var(--on-primary); }
.sm3-sh-hero__note { margin: 0; display: inline-flex; align-items: center; gap: var(--space-2); font: 500 15px/22px var(--font-plain); color: var(--on-surface-variant); }
.sm3-sh-hero__visual { position: relative; display: flex; justify-content: center; align-items: flex-end; min-height: 620px; margin: 0; }
.sm3-sh-hero__shape { position: absolute; left: 50%; bottom: 40px; width: min(500px, 92%); aspect-ratio: 1; transform: translateX(-50%); background: var(--primary); box-shadow: var(--shadow-cta); }
.sm3-sh-hero__ghost { position: absolute; left: 50%; bottom: 10px; width: min(560px, 100%); aspect-ratio: 1; transform: translateX(-50%); background: var(--primary-container); }
.sm3-sh-hero__ghost.sm3-rt-shape--spin { animation-duration: 40s; }
.sm3-sh-hero__photo { position: relative; display: block; width: auto; height: 600px; max-width: 100%; object-fit: contain; object-position: bottom center; filter: drop-shadow(0 24px 40px rgba(37, 48, 68, 0.18)); }
.sm3-sh-bubble { position: absolute; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--surface-container-lowest); color: var(--primary-text); box-shadow: var(--shadow-card), inset 0 0 0 1px var(--violet-border); animation: sm3-sh-float 6s ease-in-out infinite; }
.sm3-sh-bubble--a { left: 2%; top: 22%; }
.sm3-sh-bubble--b { right: 0; top: 40%; animation-delay: -3s; }
@keyframes sm3-sh-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
.sm3-sh-namecard { position: absolute; left: 0; bottom: 56px; display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-5) var(--space-3) var(--space-3); border-radius: var(--radius-card); background: var(--surface-container-lowest); box-shadow: 0 18px 40px rgba(37, 48, 68, 0.12), inset 0 0 0 1px var(--outline-variant); }
.sm3-sh-namecard__ico { display: grid; place-items: center; width: 44px; height: 44px; background: var(--primary); color: var(--on-primary); }
.sm3-sh-namecard a { font: 800 17px/22px var(--font-plain); color: var(--on-surface); text-decoration: none; }
.sm3-sh-namecard a:hover { color: var(--primary-text); }
.sm3-sh-namecard span.role { display: block; font: 500 14px/20px var(--font-plain); color: var(--on-surface-variant); }

/* ---------- Quando ha senso: bento ---------- */
.sm3-sh-bento { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin: 0; padding: 0; list-style: none; }
.sm3-sh-tile { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: var(--space-3); padding: var(--card-pad); border-radius: var(--radius-card); background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--outline-variant), var(--shadow-card); transition: transform 240ms cubic-bezier(0.34, 1.56, 0.64, 1); }
.sm3-sh-tile:hover { transform: translateY(-4px); }
.sm3-sh-tile--wide { grid-column: span 2; }
.sm3-sh-tile--primary { background: var(--primary); box-shadow: var(--shadow-cta); }
.sm3-sh-tile--primary .sm3-sh-h3 { color: #ffffff; font-size: 28px; }
.sm3-sh-tile--primary .sm3-sh-p { color: rgba(255, 255, 255, 0.92); max-width: 54ch; }
.sm3-sh-tile--tonal { background: var(--primary-container); box-shadow: inset 0 0 0 1px var(--violet-border); }
.sm3-sh-tile--tonal .sm3-sh-p { color: var(--on-surface); }
.sm3-sh-tile__shape { display: grid; place-items: center; width: 60px; height: 60px; margin-bottom: var(--space-3); background: var(--primary-container); color: var(--on-primary-container); transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1); }
.sm3-sh-tile:hover .sm3-sh-tile__shape { transform: rotate(18deg) scale(1.06); }
.sm3-sh-tile--primary .sm3-sh-tile__shape, .sm3-sh-tile--tonal .sm3-sh-tile__shape { background: var(--surface-container-lowest); color: var(--primary-text); }
.sm3-sh-tile__deco { position: absolute; right: -80px; bottom: -100px; width: 280px; aspect-ratio: 1; background: rgba(255, 255, 255, 0.1); pointer-events: none; }
.sm3-sh-tile > :not(.sm3-sh-tile__deco) { position: relative; }

/* ---------- Altro percorso ---------- */
.sm3-sh-alt { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin: 0; padding: 0; list-style: none; }
.sm3-sh-alt__card { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--card-pad); border-radius: var(--radius-card); background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--outline-variant), var(--shadow-card); }
.sm3-sh-alt__top { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-2); }
.sm3-sh-alt__ico { display: grid; place-items: center; width: 52px; height: 52px; background: var(--surface-container); color: var(--primary-text); }
.sm3-sh-alt__arrow { color: var(--outline); }
.sm3-sh-alt__card .sm3-rt-actions { margin-top: auto; padding-top: var(--space-3); }

/* ---------- Prezzi ---------- */
.sm3-sh-prices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); align-items: stretch; margin: 0; padding: 0; list-style: none; }
.sm3-sh-price { position: relative; display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-8) var(--card-pad) var(--card-pad); border-radius: var(--radius-card); background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--outline-variant), var(--shadow-card); }
.sm3-sh-price--best { box-shadow: inset 0 0 0 2px var(--primary), 0 18px 40px rgba(98, 85, 255, 0.14); }
.sm3-sh-price__badge { position: absolute; top: -14px; left: var(--card-pad); display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 var(--space-3); border-radius: var(--radius-full); background: var(--primary); color: var(--on-primary); font: 700 12px/16px var(--font-plain); letter-spacing: 0.04em; text-transform: uppercase; }
.sm3-sh-price__title { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.sm3-sh-price__dur { font: 700 15px/20px var(--font-plain); letter-spacing: 0.04em; text-transform: uppercase; color: var(--primary-text); }
.sm3-sh-price__sep { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.sm3-sh-price__amount { font: 800 56px/1 var(--font-plain); letter-spacing: -0.02em; color: var(--on-surface); font-variant-numeric: tabular-nums; }
.sm3-sh-price__rule { display: block; width: 48px; height: 4px; border-radius: 4px; background: var(--primary-container); }
.sm3-sh-price--best .sm3-sh-price__rule { background: var(--primary); }
.sm3-sh-price .sm3-rt-actions { margin-top: auto; }

/* ---------- Chi ti segue ---------- */
.sm3-sh-who { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-12); align-items: center; }
.sm3-sh-who__portrait { position: relative; width: min(320px, 100%); aspect-ratio: 1; justify-self: center; }
.sm3-sh-who__portrait .sm3-sh-who__bg { position: absolute; inset: 0; background: var(--primary-container); }
.sm3-sh-who__portrait img { position: absolute; left: 50%; bottom: 0; height: 118%; transform: translateX(-50%); object-fit: contain; clip-path: inset(-40% 0 0 0 round 0 0 160px 160px); }
.sm3-sh-who__text { display: flex; flex-direction: column; gap: var(--space-4); max-width: 68ch; }
.sm3-sh-who__text p strong { color: var(--on-surface); }

/* ---------- Contatti ---------- */
.sm3-sh-contact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-10); align-items: start; padding: var(--space-12); border-radius: var(--radius-panel); background: linear-gradient(135deg, #f2eeff, #ffffff); box-shadow: inset 0 0 0 1px var(--violet-border); }
.sm3-sh-contact__text { display: flex; flex-direction: column; gap: var(--space-4); }
.sm3-sh-checks { display: flex; flex-direction: column; gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.sm3-sh-checks li { display: flex; align-items: center; gap: var(--space-3); font: 600 16px/24px var(--font-plain); color: var(--on-surface); }
.sm3-sh-checks li span { display: grid; place-items: center; width: 32px; height: 32px; flex: none; background: var(--primary); color: var(--on-primary); }
.sm3-sh-form-panel { padding: var(--card-pad); border-radius: var(--radius-card); background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--outline-variant), var(--shadow-card); }
.sm3-sh-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5) var(--space-4); }
.sm3-sh-form .sm3-rt-field { max-width: none; }
.sm3-sh-full { grid-column: 1 / -1; }
.sm3-sh-area { display: flex; flex-direction: column; gap: var(--space-2); }
.sm3-sh-area label { font: 500 14px/20px var(--font-plain); color: var(--on-surface-variant); }
.sm3-sh-area textarea { box-sizing: border-box; width: 100%; min-height: 112px; padding: 14px 16px; border: 0; border-radius: 10px; background: transparent; box-shadow: inset 0 0 0 1px var(--field-border); font: 400 16px/24px var(--font-plain); color: var(--on-surface); resize: vertical; }
.sm3-sh-area textarea:focus { outline: none; box-shadow: inset 0 0 0 2px var(--primary); }
.sm3-sh-privacy { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); font: 400 14px/20px var(--font-plain); color: var(--on-surface-variant); }

/* ---------- FAQ ---------- */
.sm3-sh-faq { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-10); align-items: start; }
.sm3-sh-faq__head { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-5); }
.sm3-sh-faq .sm3-rt-faq__a p a, .sm3-sh-faq .sm3-rt-faq__a-inner a { color: var(--primary-text); }
.sm3-sh-faq .sm3-rt-faq__a-inner > div { margin: 0; padding: 0 var(--space-12) var(--space-6) var(--space-2); max-width: 72ch; font: 400 17px/28px var(--font-plain); color: var(--on-surface-variant); }
.sm3-sh-footer-contact li { font: 400 14px/20px var(--font-plain); color: var(--footer-text); }

@media (max-width: 1023px) {
  .sm3-sh-hero__inner { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 56px; }
  .sm3-sh-hero__text { padding-bottom: var(--space-8); }
  .sm3-sh-hero__visual { min-height: 520px; }
  .sm3-sh-hero__photo { height: 500px; }
  .sm3-sh-bento, .sm3-sh-alt, .sm3-sh-prices { grid-template-columns: minmax(0, 1fr); }
  .sm3-sh-tile--wide { grid-column: auto; }
  .sm3-sh-who, .sm3-sh-contact, .sm3-sh-faq { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
  .sm3-sh-contact { padding: var(--space-6); }
  .sm3-sh-prices { gap: var(--space-8); }
}
@media (max-width: 699px) {
  .sm3-sh-hero__inner { padding: 40px 16px 0; }
  .sm3-sh-hero__visual { min-height: 440px; }
  .sm3-sh-hero__photo { height: 420px; }
  .sm3-sh-namecard { bottom: 24px; }
  .sm3-sh-bubble { display: none; }
  .sm3-sh-form { grid-template-columns: minmax(0, 1fr); }
  .sm3-sh-tile--primary .sm3-sh-h3 { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) { .sm3-sh-bubble { animation: none; } .sm3-sh-tile, .sm3-sh-tile__shape { transition: none; } .sm3-sh-tile:hover { transform: none; } }

/* ---------- Software: aggiunte ---------- */
.sm3-cw-link { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 44px; font: 700 15px/20px var(--font-plain); color: var(--primary-text); text-decoration: none; }
.sm3-cw-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.sm3-cw-link:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; border-radius: 8px; }
.sm3-sh-tile--primary .sm3-cw-link { color: #ffffff; }
.sm3-sh-tile .sm3-rt-actions { margin-top: auto; padding-top: var(--space-3); }
.sm3-sw-list { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.sm3-sw-list li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: var(--space-2); font: 400 16px/26px var(--font-plain); color: var(--on-surface-variant); }
.sm3-sw-list li .sm3-rt-icon { color: var(--primary-text); margin-top: 3px; }
.sm3-sw-list strong { color: var(--on-surface); }
.sm3-sh-tile--tonal .sm3-sw-list li { color: var(--on-surface); }

/* Hero: illustrazione web app */
.sm3-sw-app { position: relative; width: 100%; max-width: 560px; margin: 0 auto var(--section-y); }
.sm3-sw-win { position: relative; z-index: 1; overflow: hidden; border-radius: var(--radius-panel); background: var(--surface-container-lowest); box-shadow: 0 30px 60px rgba(37, 48, 68, 0.14), inset 0 0 0 1px var(--outline-variant); }
.sm3-sw-win__bar { display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 var(--space-4); background: var(--surface-container-low); box-shadow: inset 0 -1px 0 var(--outline-variant); }
.sm3-sw-win__bar i { width: 11px; height: 11px; border-radius: 50%; background: var(--surface-container-high); }
.sm3-sw-win__bar span { flex: 1; height: 22px; margin-left: var(--space-3); border-radius: var(--radius-full); background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--outline-variant); }
.sm3-sw-win__body { display: grid; grid-template-columns: 120px minmax(0, 1fr); min-height: 330px; }
.sm3-sw-side { display: flex; flex-direction: column; gap: 10px; padding: var(--space-4); background: #f9f8ff; box-shadow: inset -1px 0 0 var(--outline-variant); }
.sm3-sw-side b { display: block; height: 12px; border-radius: 6px; background: var(--surface-container-high); }
.sm3-sw-side b.on { background: var(--primary); width: 80%; }
.sm3-sw-main { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: 70px 1fr; gap: 12px; padding: var(--space-4); }
.sm3-sw-kpi { border-radius: 14px; background: var(--surface-container-low); padding: 12px; display: flex; flex-direction: column; justify-content: space-between; }
.sm3-sw-kpi:nth-child(1) { background: var(--primary-container); }
.sm3-sw-kpi b { display: block; height: 9px; width: 60%; border-radius: 5px; background: rgba(81, 68, 218, 0.28); }
.sm3-sw-kpi strong { display: block; height: 18px; width: 45%; border-radius: 6px; background: var(--primary); }
.sm3-sw-kpi:nth-child(2) strong, .sm3-sw-kpi:nth-child(3) strong { background: #8a80ff; }
.sm3-sw-chart { grid-column: span 2; display: flex; align-items: flex-end; gap: 8px; padding: 14px; border-radius: 14px; background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--outline-variant); }
.sm3-sw-chart i { flex: 1; border-radius: 6px 6px 2px 2px; background: var(--primary-container); }
.sm3-sw-chart i:nth-child(5), .sm3-sw-chart i:nth-child(7) { background: var(--primary); }
.sm3-sw-rows { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 14px; background: var(--surface-container-low); }
.sm3-sw-rows b { display: block; height: 10px; border-radius: 5px; background: var(--surface-container-high); }
.sm3-sw-rows b:nth-child(odd) { width: 70%; }
.sm3-sw-chip { position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: var(--space-3); padding: 10px var(--space-4) 10px 10px; border-radius: var(--radius-card); background: var(--surface-container-lowest); box-shadow: 0 18px 40px rgba(37, 48, 68, 0.14), inset 0 0 0 1px var(--outline-variant); font: 800 16px/20px var(--font-plain); color: var(--on-surface); text-decoration: none; animation: sm3-sh-float 6s ease-in-out infinite; }
.sm3-sw-chip:hover { color: var(--primary-text); }
.sm3-sw-chip:focus-visible { outline: 3px solid var(--primary); outline-offset: 3px; }
.sm3-sw-chip span { display: grid; place-items: center; width: 40px; height: 40px; background: var(--primary); color: var(--on-primary); }
.sm3-sw-chip--a { left: -36px; bottom: 44px; }
.sm3-sw-chip--b { right: -28px; top: 92px; animation-delay: -3s; }
.sm3-sw-chip--b span { background: var(--primary-container); color: var(--on-primary-container); }
.sm3-sw-code { position: absolute; z-index: 0; right: -60px; bottom: -50px; display: grid; place-items: center; width: 210px; aspect-ratio: 1; background: var(--primary); color: #ffffff; box-shadow: var(--shadow-cta); }
.sm3-sw-code .sm3-rt-icon { font-size: 64px !important; }
.sm3-sw-glow { position: absolute; z-index: 0; left: -70px; top: -60px; width: 240px; aspect-ratio: 1; background: var(--primary-container); }

/* Progetti con cifra */
.sm3-sw-proj { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin: 0; padding: 0; list-style: none; }
.sm3-sw-pcard { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: var(--space-3); padding: var(--card-pad); border-radius: var(--radius-card); background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--outline-variant), var(--shadow-card); transition: transform 240ms cubic-bezier(0.34, 1.56, 0.64, 1); }
.sm3-sw-pcard:hover { transform: translateY(-4px); }
.sm3-sw-pcard--wide { grid-column: span 2; }
.sm3-sw-pcard--primary { background: var(--primary); box-shadow: var(--shadow-cta); }
.sm3-sw-pcard--primary .sm3-sh-h3, .sm3-sw-pcard--primary .sm3-sh-p, .sm3-sw-pcard--primary .sm3-cw-link { color: #ffffff; }
.sm3-sw-pcard--tonal { background: var(--primary-container); box-shadow: inset 0 0 0 1px var(--violet-border); }
.sm3-sw-pcard--tonal .sm3-sh-p { color: var(--on-surface); }
.sm3-sw-fig { display: flex; align-items: baseline; gap: var(--space-2); margin: 0 0 var(--space-2); }
.sm3-sw-fig strong { font: 800 72px/0.9 var(--font-plain); letter-spacing: -0.03em; color: var(--primary-text); font-variant-numeric: tabular-nums; }
.sm3-sw-fig span { font: 700 14px/20px var(--font-plain); letter-spacing: 0.04em; text-transform: uppercase; color: var(--on-surface-variant); }
.sm3-sw-pcard--primary .sm3-sw-fig strong { color: #ffffff; font-size: 96px; }
.sm3-sw-pcard--primary .sm3-sw-fig span { color: rgba(255, 255, 255, 0.86); }
.sm3-sw-pcard--tonal .sm3-sw-fig span { color: var(--on-primary-container); }
.sm3-sw-fig__shape { display: grid; place-items: center; width: 72px; height: 72px; background: var(--surface-container-lowest); color: var(--primary-text); }
.sm3-sw-badge { position: absolute; top: var(--space-5); right: var(--space-5); display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 var(--space-3); border-radius: var(--radius-full); background: var(--surface-container-lowest); color: var(--primary-text); font: 700 12px/16px var(--font-plain); letter-spacing: 0.04em; text-transform: uppercase; }
.sm3-sw-pcard .sm3-rt-actions { margin-top: auto; }
.sm3-sw-pcard__deco { position: absolute; right: -80px; bottom: -110px; width: 300px; aspect-ratio: 1; background: rgba(255, 255, 255, 0.1); pointer-events: none; }
.sm3-sw-pcard > :not(.sm3-sw-pcard__deco):not(.sm3-sw-badge) { position: relative; }

/* Spoki / WhatsApp */
.sm3-sw-spoki { position: relative; }
.sm3-sw-spoki .sm3-sw-badge { position: absolute; top: var(--space-5); right: var(--space-5); width: max-content; background: var(--primary); color: var(--on-primary); }
.sm3-sw-wa { display: flex; flex-direction: column; gap: 8px; margin-top: var(--space-2); max-width: 340px; }
.sm3-sw-wa span { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 var(--space-4); border-radius: 18px; font: 700 16px/1 var(--font-plain); }
.sm3-sw-wa__in { align-self: flex-start; width: 46%; background: var(--surface-container-low); color: var(--on-surface-variant); border-bottom-left-radius: 6px; }
.sm3-sw-wa__in--short { width: 30%; }
.sm3-sw-wa__out { align-self: flex-end; width: 52%; justify-content: flex-end; background: var(--primary-container); color: var(--on-primary-container); border-bottom-right-radius: 6px; }
.sm3-sw-proj--three .sm3-sw-pcard--primary .sm3-sw-fig strong { font-size: 80px; }

/* Chi sviluppa */
.sm3-sw-dev { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-12); align-items: center; }
.sm3-sw-dev__mark { position: relative; display: grid; place-items: center; width: min(300px, 100%); aspect-ratio: 1; justify-self: center; }
.sm3-sw-dev__mark .bg { position: absolute; inset: 0; background: var(--primary-container); }
.sm3-sw-dev__mark .fg { position: relative; display: grid; place-items: center; width: 58%; aspect-ratio: 1; background: var(--primary); color: #ffffff; font: 800 64px/1 var(--font-plain); box-shadow: var(--shadow-cta); }
.sm3-sw-dev__text { display: flex; flex-direction: column; gap: var(--space-4); max-width: 70ch; }
.sm3-sw-dev__text strong { color: var(--on-surface); }

/* Quanto costa */
.sm3-sw-cost { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-10); align-items: center; padding: var(--space-12); border-radius: var(--radius-panel); background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--outline-variant), var(--shadow-card); }
.sm3-sw-cost__icons { display: flex; gap: var(--space-3); margin-top: var(--space-6); }
.sm3-sw-cost__icons span { display: grid; place-items: center; width: 52px; height: 52px; background: var(--primary-container); color: var(--on-primary-container); }
.sm3-sw-cost__icons span:first-child { background: var(--primary); color: var(--on-primary); }
.sm3-sw-cost .sm3-sh-p { font-size: 19px; line-height: 31px; }
.sm3-sw-note { margin: 0; font: 400 15px/22px var(--font-plain); color: var(--on-surface-variant); }

@media (max-width: 1023px) {
  .sm3-sw-proj { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sm3-sw-dev, .sm3-sw-cost { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
  .sm3-sw-cost { padding: var(--space-8); }
  .sm3-sw-chip--a { left: 0; } .sm3-sw-chip--b { right: 0; }
  .sm3-sw-code { right: -20px; }
}
@media (max-width: 699px) {
  .sm3-rt-btn { white-space: normal; height: auto; min-height: 48px; padding-top: 10px; padding-bottom: 10px; text-align: left; max-width: 100%; box-sizing: border-box; }
  .sm3-sw-proj { grid-template-columns: minmax(0, 1fr); }
  .sm3-sw-pcard--wide { grid-column: auto; }
  .sm3-sw-win__body { grid-template-columns: 72px minmax(0, 1fr); min-height: 240px; }
  .sm3-sw-main { grid-template-rows: 56px 1fr; gap: 8px; padding: 10px; }
  .sm3-sw-code { width: 140px; right: -16px; bottom: -36px; }
  .sm3-sw-pcard--primary .sm3-sw-fig strong { font-size: 72px; }
}
@media (prefers-reduced-motion: reduce) { .sm3-sw-chip { animation: none; } .sm3-sw-pcard { transition: none; } .sm3-sw-pcard:hover { transform: none; } }
.sm3-rt-shape { display: grid; place-items: center; aspect-ratio: 1; }
.sm3-rt-shape--soft-burst { clip-path: polygon(50.0% 7.0%, 53.9% 5.9%, 58.2% 3.6%, 62.8% 2.2%, 67.0% 3.2%, 70.2% 6.8%, 72.4% 11.2%, 74.7% 14.7%, 78.2% 16.4%, 82.9% 17.1%, 87.7% 18.4%, 90.9% 21.4%, 91.8% 25.9%, 91.1% 30.9%, 90.6% 35.2%, 92.0% 38.7%, 95.2% 42.0%, 98.6% 45.8%, 100.0% 50.0%, 98.6% 54.2%, 95.2% 58.0%, 92.0% 61.3%, 90.6% 64.8%, 91.1% 69.1%, 91.8% 74.1%, 90.9% 78.6%, 87.7% 81.6%, 82.9% 82.9%, 78.2% 83.6%, 74.7% 85.3%, 72.4% 88.8%, 70.2% 93.2%, 67.0% 96.8%, 62.8% 97.8%, 58.2% 96.4%, 53.9% 94.1%, 50.0% 93.0%, 46.1% 94.1%, 41.8% 96.4%, 37.2% 97.8%, 33.0% 96.8%, 29.8% 93.2%, 27.6% 88.8%, 25.3% 85.3%, 21.8% 83.6%, 17.1% 82.9%, 12.3% 81.6%, 9.1% 78.6%, 8.2% 74.1%, 8.9% 69.1%, 9.4% 64.8%, 8.0% 61.3%, 4.8% 58.0%, 1.4% 54.2%, 0.0% 50.0%, 1.4% 45.8%, 4.8% 42.0%, 8.0% 38.7%, 9.4% 35.2%, 8.9% 30.9%, 8.2% 25.9%, 9.1% 21.4%, 12.3% 18.4%, 17.1% 17.1%, 21.8% 16.4%, 25.3% 14.7%, 27.6% 11.2%, 29.8% 6.8%, 33.0% 3.2%, 37.2% 2.2%, 41.8% 3.6%, 46.1% 5.9%); }
.sm3-rt-shape--cookie { clip-path: polygon(50.0% 2.5%, 54.3% 0.9%, 58.7% 0.8%, 62.8% 2.4%, 66.2% 5.4%, 69.3% 8.6%, 72.5% 11.0%, 76.2% 12.5%, 80.5% 13.6%, 84.8% 15.2%, 88.3% 17.9%, 90.4% 21.7%, 91.1% 26.2%, 91.4% 30.7%, 92.3% 34.6%, 94.2% 38.2%, 96.8% 41.8%, 99.1% 45.7%, 100.0% 50.0%, 99.1% 54.3%, 96.8% 58.2%, 94.2% 61.8%, 92.3% 65.4%, 91.4% 69.3%, 91.1% 73.7%, 90.4% 78.3%, 88.3% 82.1%, 84.8% 84.8%, 80.5% 86.4%, 76.2% 87.5%, 72.5% 89.0%, 69.3% 91.4%, 66.2% 94.6%, 62.8% 97.6%, 58.7% 99.2%, 54.3% 99.1%, 50.0% 97.5%, 46.0% 95.6%, 42.2% 94.3%, 38.2% 94.2%, 33.8% 94.6%, 29.2% 94.7%, 25.0% 93.3%, 21.7% 90.4%, 19.5% 86.4%, 17.7% 82.3%, 15.5% 78.9%, 12.5% 76.2%, 8.9% 73.8%, 5.3% 70.8%, 3.0% 67.1%, 2.4% 62.8%, 3.2% 58.2%, 4.4% 54.0%, 5.0% 50.0%, 4.4% 46.0%, 3.2% 41.8%, 2.4% 37.2%, 3.0% 32.9%, 5.3% 29.2%, 8.9% 26.3%, 12.5% 23.8%, 15.5% 21.1%, 17.7% 17.7%, 19.5% 13.6%, 21.7% 9.6%, 25.0% 6.7%, 29.2% 5.3%, 33.8% 5.4%, 38.2% 5.8%, 42.2% 5.7%, 46.0% 4.4%); }
.sm3-rt-shape--clover { clip-path: polygon(50.0% 0.0%, 54.3% 0.7%, 58.4% 2.6%, 61.9% 5.6%, 64.8% 9.2%, 67.2% 13.2%, 69.0% 17.1%, 70.6% 20.6%, 72.2% 23.6%, 74.0% 26.0%, 76.4% 27.8%, 79.4% 29.4%, 82.9% 31.0%, 86.8% 32.8%, 90.8% 35.2%, 94.4% 38.1%, 97.4% 41.6%, 99.3% 45.7%, 100.0% 50.0%, 99.3% 54.3%, 97.4% 58.4%, 94.4% 61.9%, 90.8% 64.8%, 86.8% 67.2%, 82.9% 69.0%, 79.4% 70.6%, 76.4% 72.2%, 74.0% 74.0%, 72.2% 76.4%, 70.6% 79.4%, 69.0% 82.9%, 67.2% 86.8%, 64.8% 90.8%, 61.9% 94.4%, 58.4% 97.4%, 54.3% 99.3%, 50.0% 100.0%, 45.7% 99.3%, 41.6% 97.4%, 38.1% 94.4%, 35.2% 90.8%, 32.8% 86.8%, 31.0% 82.9%, 29.4% 79.4%, 27.8% 76.4%, 26.0% 74.0%, 23.6% 72.2%, 20.6% 70.6%, 17.1% 69.0%, 13.2% 67.2%, 9.2% 64.8%, 5.6% 61.9%, 2.6% 58.4%, 0.7% 54.3%, 0.0% 50.0%, 0.7% 45.7%, 2.6% 41.6%, 5.6% 38.1%, 9.2% 35.2%, 13.2% 32.8%, 17.1% 31.0%, 20.6% 29.4%, 23.6% 27.8%, 26.0% 26.0%, 27.8% 23.6%, 29.4% 20.6%, 31.0% 17.1%, 32.8% 13.2%, 35.2% 9.2%, 38.1% 5.6%, 41.6% 2.6%, 45.7% 0.7%); }
.sm3-rt-shape--sunny { clip-path: polygon(50.0% 0.0%, 54.3% 0.6%, 58.4% 2.2%, 62.3% 4.2%, 65.9% 6.2%, 69.7% 7.8%, 73.7% 9.0%, 77.8% 10.2%, 81.9% 12.0%, 85.4% 14.6%, 88.0% 18.1%, 89.8% 22.2%, 91.0% 26.3%, 92.2% 30.3%, 93.8% 34.1%, 95.8% 37.7%, 97.8% 41.6%, 99.4% 45.7%, 100.0% 50.0%, 99.4% 54.3%, 97.8% 58.4%, 95.8% 62.3%, 93.8% 65.9%, 92.2% 69.7%, 91.0% 73.7%, 89.8% 77.8%, 88.0% 81.9%, 85.4% 85.4%, 81.9% 88.0%, 77.8% 89.8%, 73.7% 91.0%, 69.7% 92.2%, 65.9% 93.8%, 62.3% 95.8%, 58.4% 97.8%, 54.3% 99.4%, 50.0% 100.0%, 45.7% 99.4%, 41.6% 97.8%, 37.7% 95.8%, 34.1% 93.8%, 30.3% 92.2%, 26.3% 91.0%, 22.2% 89.8%, 18.1% 88.0%, 14.6% 85.4%, 12.0% 81.9%, 10.2% 77.8%, 9.0% 73.7%, 7.8% 69.7%, 6.2% 65.9%, 4.2% 62.3%, 2.2% 58.4%, 0.6% 54.3%, 0.0% 50.0%, 0.6% 45.7%, 2.2% 41.6%, 4.2% 37.7%, 6.2% 34.1%, 7.8% 30.3%, 9.0% 26.3%, 10.2% 22.2%, 12.0% 18.1%, 14.6% 14.6%, 18.1% 12.0%, 22.2% 10.2%, 26.3% 9.0%, 30.3% 7.8%, 34.1% 6.2%, 37.7% 4.2%, 41.6% 2.2%, 45.7% 0.6%); }
.sm3-rt-shape--flower { clip-path: polygon(50.0% 12.0%, 53.4% 11.3%, 57.1% 9.6%, 61.4% 7.5%, 66.1% 5.8%, 70.8% 5.4%, 75.0% 6.7%, 78.2% 9.7%, 80.2% 14.0%, 81.1% 18.9%, 81.4% 23.6%, 81.8% 27.7%, 82.9% 31.0%, 85.2% 33.6%, 88.5% 36.0%, 92.5% 38.6%, 96.3% 41.8%, 99.0% 45.7%, 100.0% 50.0%, 99.0% 54.3%, 96.3% 58.2%, 92.5% 61.4%, 88.5% 64.0%, 85.2% 66.4%, 82.9% 69.0%, 81.8% 72.3%, 81.4% 76.4%, 81.1% 81.1%, 80.2% 86.0%, 78.2% 90.3%, 75.0% 93.3%, 70.8% 94.6%, 66.1% 94.2%, 61.4% 92.5%, 57.1% 90.4%, 53.4% 88.7%, 50.0% 88.0%, 46.6% 88.7%, 42.9% 90.4%, 38.6% 92.5%, 33.9% 94.2%, 29.2% 94.6%, 25.0% 93.3%, 21.8% 90.3%, 19.8% 86.0%, 18.9% 81.1%, 18.6% 76.4%, 18.2% 72.3%, 17.1% 69.0%, 14.8% 66.4%, 11.5% 64.0%, 7.5% 61.4%, 3.7% 58.2%, 1.0% 54.3%, 0.0% 50.0%, 1.0% 45.7%, 3.7% 41.8%, 7.5% 38.6%, 11.5% 36.0%, 14.8% 33.6%, 17.1% 31.0%, 18.2% 27.7%, 18.6% 23.6%, 18.9% 18.9%, 19.8% 14.0%, 21.8% 9.7%, 25.0% 6.7%, 29.2% 5.4%, 33.9% 5.8%, 38.6% 7.5%, 42.9% 9.6%, 46.6% 11.3%); }
.sm3-rt-shape--pill { clip-path: inset(0 round 9999px); aspect-ratio: auto; }
.sm3-rt-shape--spin { animation: sm3-rt-shape-spin 24s linear infinite; }
@keyframes sm3-rt-shape-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .sm3-rt-shape--spin { animation: none; } }
.sm3-rt-deco { position: absolute; z-index: 0; pointer-events: none; }
.sm3-rt-bento__tile > :not(.sm3-rt-deco):not(.sm3-rt-bento__media) { position: relative; z-index: 1; }
.sm3-rt-bento__tile--violet .sm3-rt-bento__text { color: var(--on-primary); opacity: 1; }
.sm3-rt-bento__tile--primary .sm3-rt-bento__title, .sm3-rt-bento__tile--primary .sm3-rt-bento__text { color: var(--on-primary-container); }
.sm3-rt-bento__deco { width: clamp(180px, 22vw, 300px); right: -18%; bottom: -26%; background: currentColor; opacity: 0.14; }
.sm3-rt-bento__tile--surface .sm3-rt-bento__deco { background: var(--primary-container); opacity: 1; }

/* =====================================================================
   v5 — page patterns from the 09/10/2026 review. Creative, but matched
   to the content: features and brand moments may play; prices, forms and
   legal stay sober. Spacing only from tokens (section-y/x, space-*).
   ===================================================================== */

/* Section header → content: always space-10 */
.sm3-rt-shead { margin-bottom: var(--space-10); }

/* Process: connected M3 stepper. Cookie-shaped numbers on a wavy track, no boxes */
.sm3-rt-steps__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-6); }
.sm3-rt-steps__item, .sm3-rt-steps__item:first-child { position: relative; display: flex; flex-direction: column; gap: var(--space-3); padding: 0; border-radius: 0; background: none; box-shadow: none; }
.sm3-rt-steps__num, .sm3-rt-section--sand .sm3-rt-steps__num { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 0; clip-path: polygon(50.0% 2.5%, 54.3% 0.9%, 58.7% 0.8%, 62.8% 2.4%, 66.2% 5.4%, 69.3% 8.6%, 72.5% 11.0%, 76.2% 12.5%, 80.5% 13.6%, 84.8% 15.2%, 88.3% 17.9%, 90.4% 21.7%, 91.1% 26.2%, 91.4% 30.7%, 92.3% 34.6%, 94.2% 38.2%, 96.8% 41.8%, 99.1% 45.7%, 100.0% 50.0%, 99.1% 54.3%, 96.8% 58.2%, 94.2% 61.8%, 92.3% 65.4%, 91.4% 69.3%, 91.1% 73.7%, 90.4% 78.3%, 88.3% 82.1%, 84.8% 84.8%, 80.5% 86.4%, 76.2% 87.5%, 72.5% 89.0%, 69.3% 91.4%, 66.2% 94.6%, 62.8% 97.6%, 58.7% 99.2%, 54.3% 99.1%, 50.0% 97.5%, 46.0% 95.6%, 42.2% 94.3%, 38.2% 94.2%, 33.8% 94.6%, 29.2% 94.7%, 25.0% 93.3%, 21.7% 90.4%, 19.5% 86.4%, 17.7% 82.3%, 15.5% 78.9%, 12.5% 76.2%, 8.9% 73.8%, 5.3% 70.8%, 3.0% 67.1%, 2.4% 62.8%, 3.2% 58.2%, 4.4% 54.0%, 5.0% 50.0%, 4.4% 46.0%, 3.2% 41.8%, 2.4% 37.2%, 3.0% 32.9%, 5.3% 29.2%, 8.9% 26.3%, 12.5% 23.8%, 15.5% 21.1%, 17.7% 17.7%, 19.5% 13.6%, 21.7% 9.6%, 25.0% 6.7%, 29.2% 5.3%, 33.8% 5.4%, 38.2% 5.8%, 42.2% 5.7%, 46.0% 4.4%);; background: var(--primary-container); color: var(--on-primary-container); font: 800 22px/1 var(--font-plain); font-variant-numeric: tabular-nums; }
.sm3-rt-steps__item:first-child .sm3-rt-steps__num { background: var(--primary); color: var(--on-primary); }
.sm3-rt-steps__item:not(:last-child)::after {
  content: ""; position: absolute; top: 27px; left: 80px; right: calc(-1 * var(--space-6) + 12px); height: 10px;
  background: var(--primary); opacity: 0.3;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='10' viewBox='0 0 40 10'%3E%3Cpath d='M-20 5 Q-10 9 0 5 T20 5 T40 5 T60 5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 / 40px 10px repeat-x;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='10' viewBox='0 0 40 10'%3E%3Cpath d='M-20 5 Q-10 9 0 5 T20 5 T40 5 T60 5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 / 40px 10px repeat-x;
}
.sm3-rt-steps__title { margin: var(--space-3) 0 0; font: 700 clamp(20px, 1.6vw, 22px)/1.3 var(--font-plain); color: var(--on-surface); }
.sm3-rt-steps__text { margin: 0; font: 400 17px/28px var(--font-plain); color: var(--on-surface-variant); }
@media (max-width: 899px) {
  .sm3-rt-steps__list { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
  .sm3-rt-steps__item, .sm3-rt-steps__item:first-child { padding-left: 88px; min-height: 64px; }
  .sm3-rt-steps__num { position: absolute; left: 0; top: 0; }
  .sm3-rt-steps__title { margin-top: var(--space-2); }
  .sm3-rt-steps__item:not(:last-child)::after { top: 76px; bottom: calc(-1 * var(--space-8) + 12px); left: 27px; right: auto; width: 10px; height: auto;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='40' viewBox='0 0 10 40'%3E%3Cpath d='M5 -20 Q9 -10 5 0 T5 20 T5 40 T5 60' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 / 10px 40px repeat-y;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='40' viewBox='0 0 10 40'%3E%3Cpath d='M5 -20 Q9 -10 5 0 T5 20 T5 40 T5 60' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") 0 0 / 10px 40px repeat-y; }
}

.sm3-rt-footer { background: var(--surface-container-low); color: var(--on-surface); }
[data-theme="dark"].sm3-rt-footer { background: var(--surface-container-lowest); }
.sm3-rt-footer__inner { display: grid; grid-template-columns: minmax(220px, 1fr) 2fr; gap: var(--space-12) var(--space-16); max-width: var(--content-max); margin: 0 auto; box-sizing: border-box; padding: var(--space-16) var(--space-7) var(--space-8); }
.sm3-rt-footer__brand { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.sm3-rt-footer__logo img { display: block; height: 32px; width: auto; }
.sm3-rt-footer__tagline { margin: 0; max-width: 32ch; font: 400 14px/20px var(--font-plain); color: var(--on-surface-variant); }
.sm3-rt-footer__social { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-2) 0 0; padding: 0; list-style: none; }
.sm3-rt-footer__social .sm3-rt-chip { text-decoration: none; }
.sm3-rt-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--space-8); }
.sm3-rt-footer__head { margin: 0 0 var(--space-3); font: 700 14px/20px var(--font-plain); color: var(--on-surface); }
.sm3-rt-footer__col ul { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.sm3-rt-footer__col a, .sm3-rt-footer__legal a { color: var(--on-surface-variant); font: 400 14px/20px var(--font-plain); text-decoration: none; border-radius: var(--radius-xs); }
.sm3-rt-footer__col a:hover, .sm3-rt-footer__legal a:hover { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.sm3-rt-footer__col a:focus-visible, .sm3-rt-footer__legal a:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
.sm3-rt-footer__legal { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3) var(--space-6); padding-top: var(--space-6); box-shadow: inset 0 1px 0 var(--outline-variant); font: 400 12px/16px var(--font-plain); color: var(--on-surface-variant); }
.sm3-rt-footer__legal-links { display: flex; flex-wrap: wrap; gap: var(--space-4); }
.sm3-rt-footer__legal a { font-size: 12px; line-height: 16px; }
@media (max-width: 839px) { .sm3-rt-footer__inner { grid-template-columns: 1fr; padding: var(--space-12) var(--space-4) var(--space-6); } }

@media (prefers-reduced-motion: reduce) {
  .sm3-rt-loading__shape, .sm3-rt-cprogress--ind svg { animation-duration: 12s !important; }
  .sm3-rt-fabmenu__item, .sm3-rt-drawer--modal, .sm3-rt-sheet--modal, .sm3-rt-side--modal, .sm3-rt-scrim { animation: none !important; }
  .sm3-rt-faq__a, .sm3-rt-faq__chev, .sm3-rt-slider__bubble, .sm3-rt-carousel__mask { transition: none !important; }
}


.sm3-rt-footer{background:var(--footer-bg);color:var(--footer-text)}
.sm3-rt-footer__tagline,.sm3-rt-footer__col a,.sm3-rt-footer__legal,.sm3-rt-footer__legal a,.sm3-rt-footer__col li{color:var(--footer-text)}
.sm3-rt-footer__logo img{width:140px;height:auto}
.sm3-rt-footer__brand a{display:inline-flex}
.sm3-rt-footer__head{color:var(--on-surface)}
.sm3-sw-proj .sm3-sw-fig{min-height:80px;margin-top:24px}
.sm3-sw-proj .sm3-sw-badge{top:16px}
.sm3-sw-chip:hover{color:var(--primary-text)}
.sm3-sw-code>.sm3-icon{--icon-size:64px!important}
.sm3-rt-steps__list{margin:0;padding:0;list-style:none}
body.page-id-9146 .rt-architecture-breadcrumb{display:none}
body.page-id-9146 #content{max-width:none;width:100%;padding-top:89px!important}
body.page-id-9146 #site-header{background:white;color:#253044}
body.page-id-9146 .rt-site-header__logo img{width:140px;height:auto;filter:brightness(0)}
body.page-id-9146 .rt-site-header__inner{height:88px;max-width:1456px;padding:0 28px}
body.page-id-9146 .rt-site-header__cta{background:#6255ff;box-shadow:inset 0 0 0 1px #467ff7;color:white;border-radius:9999px}
body.page-id-9146 #progetti,body.page-id-9146 #contatto{scroll-margin-top:88px}
@media(min-width:1181px){body.page-id-9146 .rt-site-header__menu>li:not(:hover):not(:focus-within) .sub-menu{visibility:hidden!important;opacity:0!important;pointer-events:none!important}}
@media(max-width:699px){.sm3-sw-proj .sm3-sw-fig{margin-top:24px}.sm3-sh-hero__title{font-size:40px}.sm3-sh-hero__intro{font-size:18px;line-height:29px}.sm3-sw-app{margin-top:32px;margin-bottom:56px}.sm3-sh-hero__text{gap:24px}.sm3-sh-form-panel{padding:24px}.sm3-sh-contact{padding:20px}.sm3-sw-code{right:0}.sm3-rt-footer__cols{grid-template-columns:1fr 1fr}.sm3-rt-footer__cols>div{grid-column:1/-1}body.page-id-9146 #site-header{height:77px}body.page-id-9146 .rt-site-header__inner{height:76px;min-height:76px;padding:0 16px}body.page-id-9146 #content{padding-top:77px!important}body.page-id-9146 #progetti,body.page-id-9146 #contatto{scroll-margin-top:77px}.sm3-faq-item summary h3{font-size:18px;line-height:26px}}
@media(prefers-reduced-motion:reduce){.rt-software-page *{animation:none!important;transition:none!important;scroll-behavior:auto}}

/* Official Antonio Ferone portrait in the developer section. */
.rt-software-page .sm3-sw-dev__portrait{position:relative;width:min(300px,100%);aspect-ratio:1;justify-self:center;margin:0;border-radius:30px;overflow:hidden;background:#6255ff;box-shadow:var(--shadow-cta)}
.rt-software-page .sm3-sw-dev__portrait img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 25%}
