/* Homepage only. Values reconstructed from the supplied Material 3 reference. */
@font-face{font-family:"Rowtech Home Display";src:url("../fonts/home-material3/archivo-black.ttf") format("truetype");font-weight:400;font-display:swap;}
@font-face{font-family:"Rowtech Home Sans";src:url("../fonts/home-material3/satoshi-400.woff2") format("woff2");font-weight:400;font-display:swap;}
@font-face{font-family:"Rowtech Home Sans";src:url("../fonts/home-material3/satoshi-500.woff2") format("woff2");font-weight:500;font-display:swap;}
@font-face{font-family:"Rowtech Home Sans";src:url("../fonts/home-material3/satoshi-700.woff2") format("woff2");font-weight:700;font-display:swap;}
@font-face{font-family:"Rowtech Home Sans";src:url("../fonts/home-material3/satoshi-900.woff2") format("woff2");font-weight:900;font-display:swap;}
body.home{ --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; }
body.home{ --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: 'Rowtech Home Display', Impact, 'Arial Narrow Bold', sans-serif; --font-headline: Stem, Rowtech Home Sans, Arial, sans-serif; --font-plain: Rowtech Home Sans, Raleway, Arial, sans-serif; --font-mono: 'JetBrains Mono', ui-monospace, Menlo, monospace; }
body.home{margin:0;background:var(--surface);color:var(--on-surface);font-family:var(--font-plain);-webkit-font-smoothing:antialiased;}
body.home .site-main{max-width:none;margin:0;padding:88px 0 0;} .rt-home-m3{width:100%;overflow:clip;} .rt-home-m3 *, .rt-footer *{box-sizing:border-box;} .rt-home-m3 [hidden]{display:none!important;} .rt-home-m3 section[id]{scroll-margin-top:88px;}
/* ---------- Hero: la Terra a puntini ---------- */
.hm-hero { position: relative; overflow: hidden; min-height: 780px; background: radial-gradient(circle at 74% 42%, #e6e1ff 0, rgba(235, 231, 255, 0.6) 22%, rgba(255, 255, 255, 0) 52%), linear-gradient(180deg, #f7f6fd 0%, #ffffff 100%); }
.hm-hero__inner { position: relative; z-index: 2; box-sizing: border-box; display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--space-8); max-width: 1440px; min-height: 780px; margin: 0 auto; padding: 88px var(--section-x) 56px; pointer-events: none; }
.hm-hero__text { display: flex; flex-direction: column; justify-content: center; gap: var(--space-6); pointer-events: auto; }
.hm-hero__eyebrow { display: inline-flex; align-items: center; gap: var(--space-2); width: max-content; height: 32px; margin: 0; padding: 0 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.08em; text-transform: uppercase; color: var(--primary-text); }
.hm-hero__eyebrow i { width: 8px; height: 8px; border-radius: 50%; background: var(--primary); box-shadow: 0 0 0 4px rgba(98, 85, 255, 0.16); }
.hm-hero__title { margin: 0; font: 400 clamp(56px, 6.6vw, 96px)/0.94 'Rowtech Home Display', var(--font-plain); letter-spacing: -0.01em; color: var(--on-surface); }
.hm-hero__title span { display: block; }
.hm-hero__title em { font-style: normal; color: var(--primary); }
.hm-hero__lead { margin: 0; max-width: 520px; font: 400 19px/30px var(--font-plain); color: var(--on-surface-variant); }
.hm-hero__foot { position: absolute; left: var(--section-x); right: var(--section-x); bottom: var(--space-6); z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); pointer-events: none; }
.hm-scroll { display: inline-flex; align-items: center; gap: var(--space-3); font: 700 12px/16px var(--font-plain); letter-spacing: 0.12em; text-transform: uppercase; color: var(--on-surface-variant); text-decoration: none; pointer-events: auto; }
.hm-scroll__mouse { position: relative; width: 22px; height: 34px; border-radius: 12px; box-shadow: inset 0 0 0 2px currentColor; }
.hm-scroll__mouse::after { content: ""; position: absolute; left: 50%; top: 7px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: var(--primary); animation: hm-wheel 1.8s ease-in-out infinite; }
@keyframes hm-wheel { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(10px); opacity: 0; } 100% { transform: translateY(0); opacity: 0; } }
.hm-proof { display: inline-flex; align-items: center; gap: var(--space-3); height: 44px; padding: 0 var(--space-4); border-radius: var(--radius-full); background: rgba(255, 255, 255, 0.82); box-shadow: inset 0 0 0 1px var(--outline-variant), var(--shadow-card); font: 600 14px/20px var(--font-plain); color: var(--on-surface); text-decoration: none; pointer-events: auto; }
.hm-proof span { color: var(--star); letter-spacing: 2px; }
.hm-globe { position: absolute; z-index: 1; top: 50%; right: -10%; width: min(1040px, 74vw); aspect-ratio: 1 / 1; transform: translateY(-48%); cursor: grab; touch-action: pan-y; }
.hm-globe:active { cursor: grabbing; }
.hm-globe canvas { display: block; width: 100%; height: 100%; }

/* Hero scuro (tweak) */
.hm-hero--dark { background: radial-gradient(circle at 72% 44%, #221d63 0, rgba(34, 29, 99, 0.55) 24%, rgba(4, 6, 14, 0) 56%), #04060e; }
.hm-hero--dark .hm-hero__title, .hm-hero--dark .hm-proof { color: #ffffff; }
.hm-hero--dark .hm-hero__title em { color: #b9b2ff; }
.hm-hero--dark .hm-hero__lead { color: rgba(255, 255, 255, 0.86); }
.hm-hero--dark .hm-hero__eyebrow { background: rgba(255, 255, 255, 0.08); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18); color: #ffffff; }
.hm-hero--dark .hm-scroll { color: rgba(255, 255, 255, 0.78); }
.hm-hero--dark .hm-proof { background: rgba(255, 255, 255, 0.08); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16); }

/* ---------- Chi siamo ---------- */
.hm-about { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-12); align-items: center; }
.hm-about__media { position: relative; }
.hm-about__deco { position: absolute; width: 62%; aspect-ratio: 1; right: -10%; top: -14%; background: var(--primary-container); }
.hm-about__photo { position: relative; display: grid; place-items: center; aspect-ratio: 600 / 458; border-radius: var(--radius-panel); background: repeating-linear-gradient(135deg, var(--surface-container-low) 0 16px, var(--surface-container-lowest) 16px 32px); box-shadow: inset 0 0 0 1px var(--outline-variant), var(--shadow-card); color: var(--on-surface-variant); font: 500 15px/22px var(--font-plain); text-align: center; padding: var(--space-6); box-sizing: border-box; }
.hm-about__text { display: flex; flex-direction: column; gap: var(--space-4); }
.hm-about__text p { margin: 0; font: 400 17px/28px var(--font-plain); color: var(--on-surface-variant); max-width: 62ch; }
.hm-eyebrow { margin: 0; font: 700 13px/21px var(--font-plain); letter-spacing: 0.04em; text-transform: uppercase; color: var(--primary-text); }
.hm-h2 { margin: 0; font: 800 clamp(32px, 3vw, 43px)/1.12 var(--font-plain); letter-spacing: -0.01em; color: var(--on-surface); }

/* ---------- Servizi: tutti aperti, bento M3 ---------- */
.hm-svc { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin: 0; padding: 0; list-style: none; }
.hm-tile { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; 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); box-sizing: border-box; transition: box-shadow 240ms ease, transform 240ms cubic-bezier(0.34, 1.56, 0.64, 1); }
.hm-tile:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1px var(--violet-border), 0 18px 40px rgba(37, 48, 68, 0.08); }
.hm-tile--wide { grid-column: span 2; }
.hm-tile--tonal { background: var(--primary-container); box-shadow: inset 0 0 0 1px var(--violet-border); }
.hm-tile--primary { background: var(--primary); box-shadow: var(--shadow-cta); color: var(--on-primary); }
.hm-tile__top { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); }
.hm-tile__shape { display: grid; place-items: center; width: 64px; height: 64px; flex: none; background: var(--primary-container); color: var(--on-primary-container); transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1); }
.hm-tile:hover .hm-tile__shape { transform: rotate(18deg) scale(1.06); }
.hm-tile--tonal .hm-tile__shape { background: var(--surface-container-lowest); color: var(--primary-text); }
.hm-tile--primary .hm-tile__shape { background: var(--surface-container-lowest); color: var(--primary-text); }
.hm-tile__num { font: 400 56px/0.9 'Rowtech Home Display', var(--font-plain); color: var(--surface-container); }
.hm-tile--tonal .hm-tile__num { color: var(--surface-container-lowest); }
.hm-tile--primary .hm-tile__num { color: rgba(255, 255, 255, 0.22); }
.hm-tile__title { margin: 0; font: 800 24px/1.25 var(--font-plain); color: var(--on-surface); }
.hm-tile--primary .hm-tile__title { color: #ffffff; font-size: 30px; }
.hm-tile__text { margin: 0; font: 400 16px/26px var(--font-plain); color: var(--on-surface-variant); }
.hm-tile--tonal .hm-tile__text { color: var(--on-surface); }
.hm-tile--primary .hm-tile__text { color: rgba(255, 255, 255, 0.92); font-size: 17px; line-height: 28px; max-width: 62ch; }
.hm-tile__cta { display: inline-flex; align-items: center; gap: var(--space-2); width: max-content; min-height: 44px; margin-top: auto; padding: 0 var(--space-4); border-radius: var(--radius-full); color: var(--primary-text); font: 700 15px/20px var(--font-plain); text-decoration: none; box-shadow: inset 0 0 0 1px var(--violet-border); background: var(--surface-container-lowest); transition: background-color 160ms ease; }
.hm-tile__cta:hover { background: var(--surface-container); }
.hm-tile__cta:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
.hm-tile--primary .hm-tile__cta { color: var(--primary-text); box-shadow: none; }
.hm-tile__deco { position: absolute; right: -70px; bottom: -90px; width: 260px; aspect-ratio: 1; background: rgba(255, 255, 255, 0.1); pointer-events: none; }
.hm-tile--primary > :not(.hm-tile__deco) { position: relative; }

/* ---------- Riflettori ---------- */
.hm-spot { position: relative; overflow: hidden; padding: 112px var(--section-x); background: radial-gradient(ellipse at 18% 0%, rgba(255, 255, 255, 0.34) 0, rgba(255, 255, 255, 0) 46%), var(--primary); color: #ffffff; text-align: center; }
.hm-spot__beam { position: absolute; left: 50%; top: -40%; width: 900px; height: 900px; margin-left: -450px; background: radial-gradient(circle, rgba(255, 255, 255, 0.22) 0, rgba(255, 255, 255, 0) 62%); pointer-events: none; }
.hm-spot__shape { position: absolute; width: 420px; aspect-ratio: 1; right: -120px; bottom: -160px; background: rgba(255, 255, 255, 0.1); }
.hm-spot__shape--b { width: 260px; left: -80px; right: auto; top: -90px; bottom: auto; background: rgba(255, 255, 255, 0.08); }
.hm-spot__inner { position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--space-6); max-width: 1080px; margin: 0 auto; }
.hm-spot__eyebrow { margin: 0; font: 700 14px/20px var(--font-plain); letter-spacing: 0.14em; color: rgba(255, 255, 255, 0.86); }
.hm-spot__title { margin: 0; font: 400 clamp(56px, 8vw, 120px)/0.92 'Rowtech Home Display', var(--font-plain); color: #ffffff; }
.hm-spot__title span { display: block; }
.hm-spot__mark { font: 400 120px/0.5 'Rowtech Home Display', var(--font-plain); color: #ebe7ff; height: 48px; }
.hm-spot__text { margin: 0; max-width: 820px; font: 600 16px/28px var(--font-plain); letter-spacing: 0.06em; color: #ffffff; }

/* ---------- Progetti: carosello M3 compatto ---------- */
.hm-pf__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-6); margin-bottom: var(--space-8); }
.hm-pf__head .rt-shead { margin: 0; }
.hm-pf__tools { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.hm-fchips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.hm-fchip { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 var(--space-4); border: 0; border-radius: var(--radius-sm); background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--field-border); color: var(--on-surface-variant); font: 600 14px/20px var(--font-plain); cursor: pointer; transition: background-color 160ms ease, color 160ms ease; }
.hm-fchip:hover { background: var(--surface-container); color: var(--on-surface); }
.hm-fchip:focus-visible, .hm-pf__nav:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
.hm-fchip--on { background: var(--primary-container); box-shadow: none; color: var(--on-primary-container); padding-left: var(--space-3); }
.hm-pf__navs { display: flex; gap: var(--space-2); }
.hm-pf__nav { display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--outline-variant); color: var(--on-surface); cursor: pointer; transition: background-color 160ms ease; }
.hm-pf__nav:hover { background: var(--primary-container); color: var(--on-primary-container); }
.hm-pf__track { display: flex; gap: var(--space-4); margin: 0; padding: 4px 4px var(--space-4); list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: 4px; scrollbar-width: thin; scrollbar-color: var(--violet-border) transparent; }
.hm-pf__item { flex: none; scroll-snap-align: start; }
.hm-pf__card { position: relative; display: flex; flex-direction: column; justify-content: space-between; box-sizing: border-box; width: 300px; height: 400px; padding: var(--space-6); overflow: hidden; border-radius: var(--radius-card); background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--outline-variant), var(--shadow-card); color: var(--on-surface); text-decoration: none; transition: transform 240ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 240ms ease; }
.hm-pf__card:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1px var(--violet-border), 0 18px 40px rgba(37, 48, 68, 0.08); }
.hm-pf__card:focus-visible { outline: 3px solid var(--primary); outline-offset: 3px; }
.hm-pf__card--tonal { background: var(--primary-container); box-shadow: inset 0 0 0 1px var(--violet-border); }
.hm-pf__card--primary { background: var(--primary); box-shadow: var(--shadow-cta); color: #ffffff; }
.hm-pf__card--media { width: 560px; padding: 0; }
.hm-pf__media { flex: 1; min-height: 0; background: var(--surface-container-low); }
.hm-pf__media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.hm-pf__body { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-5) var(--space-6); }
.hm-pf__shape { display: grid; place-items: center; width: 64px; height: 64px; background: var(--primary-container); color: var(--on-primary-container); transition: transform 420ms cubic-bezier(0.34, 1.56, 0.64, 1); }
.hm-pf__card:hover .hm-pf__shape { transform: rotate(18deg) scale(1.06); }
.hm-pf__card--tonal .hm-pf__shape, .hm-pf__card--primary .hm-pf__shape { background: var(--surface-container-lowest); color: var(--primary-text); }
.hm-pf__deco { position: absolute; right: -70px; top: -70px; width: 220px; aspect-ratio: 1; background: var(--surface-container); pointer-events: none; }
.hm-pf__card--tonal .hm-pf__deco { background: rgba(255, 255, 255, 0.5); }
.hm-pf__card--primary .hm-pf__deco { background: rgba(255, 255, 255, 0.1); }
.hm-pf__card > :not(.hm-pf__deco) { position: relative; }
.hm-pf__info { display: flex; flex-direction: column; gap: var(--space-3); }
.hm-pf__cat { display: inline-flex; align-items: center; width: max-content; height: 28px; padding: 0 var(--space-3); border-radius: var(--radius-sm); background: var(--primary-container); color: var(--on-primary-container); font: 700 12px/16px var(--font-plain); letter-spacing: 0.04em; text-transform: uppercase; }
.hm-pf__card--tonal .hm-pf__cat, .hm-pf__card--primary .hm-pf__cat { background: var(--surface-container-lowest); color: var(--primary-text); }
.hm-pf__name { margin: 0; font: 800 28px/1.15 var(--font-plain); color: inherit; }
.hm-pf__card--media .hm-pf__name { font-size: 22px; }
.hm-pf__go { display: inline-flex; align-items: center; gap: var(--space-2); font: 700 15px/20px var(--font-plain); color: var(--primary-text); }
.hm-pf__card--primary .hm-pf__go { color: #ffffff; }

/* ---------- Contatti ---------- */
.hm-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); }
.hm-contact__text { display: flex; flex-direction: column; gap: var(--space-4); }
.hm-contact__text p { margin: 0; font: 400 17px/28px var(--font-plain); color: var(--on-surface-variant); }
.hm-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); }
.hm-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5) var(--space-4); }
.hm-form .rt-field { max-width: none; }
.hm-full { grid-column: 1 / -1; }
.hm-area { display: flex; flex-direction: column; gap: var(--space-2); }
.hm-area label { font: 500 14px/20px var(--font-plain); color: var(--on-surface-variant); }
.hm-area textarea { box-sizing: border-box; width: 100%; min-height: 112px; padding: 14px 16px; border: 0; border-radius: var(--radius-input, 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; }
.hm-area textarea:focus { outline: none; box-shadow: inset 0 0 0 2px var(--primary); }

/* ---------- FAQ ---------- */
.hm-faq { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-10); align-items: start; }
.hm-faq .rt-faq__a p a { color: var(--primary-text); }
.hm-clip { overflow: clip; }
.hm-footer-contact li { font: 400 14px/20px var(--font-plain); color: var(--footer-text); }

@media (max-width: 1023px) {
  .hm-hero__inner { grid-template-columns: minmax(0, 1fr); min-height: 0; padding-bottom: 0; }
  .hm-globe { position: relative; top: auto; right: auto; width: 100%; max-width: 640px; margin: -40px auto 0; transform: none; }
  .hm-hero__foot { position: relative; left: auto; right: auto; bottom: auto; padding: var(--space-6) var(--section-x); }
  .hm-about, .hm-contact, .hm-faq { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
  .hm-svc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hm-pf__card--media { width: min(560px, 82vw); }
  .hm-contact { padding: var(--space-6); }
}
@media (max-width: 699px) {
  .hm-hero__inner { padding: 64px 16px 0; }
  .hm-hero__foot { flex-direction: column; align-items: flex-start; padding: var(--space-4) 16px var(--space-6); }
  .hm-form { grid-template-columns: minmax(0, 1fr); }
  .hm-svc { grid-template-columns: minmax(0, 1fr); }
  .hm-tile--wide { grid-column: auto; }
  .hm-tile--primary .hm-tile__title { font-size: 26px; }
  .hm-spot { padding: 80px 16px; }
}
@media (prefers-reduced-motion: reduce) { .hm-pf__card, .hm-pf__shape { transition: none; } .hm-pf__card:hover { transform: none; } .hm-pf__track { scroll-behavior: auto; } .hm-tile, .hm-tile__shape { transition: none; } .hm-tile:hover { transform: none; } .hm-scroll__mouse::after { animation: none; } }
.rt-section { background: var(--surface); color: var(--on-surface); }
.rt-section__inner { max-width: var(--content-max); margin: 0 auto; box-sizing: border-box; padding: var(--space-24) var(--space-7); }
.rt-section--low { background: var(--surface-container-low); }
.rt-section--sand { background: var(--tertiary-container); color: var(--on-tertiary-container); }
.rt-section--primary { background: var(--primary-container); color: var(--on-primary-container); }
.rt-section--dark { background: var(--surface-container-lowest); color: var(--on-surface); }
@media (max-width: 839px) { .rt-section__inner { padding: var(--space-16) var(--space-4); } }
.rt-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }

/* Section header */
.rt-shead { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); max-width: 760px; margin-bottom: var(--space-10); }
.rt-shead--center { align-items: center; text-align: center; margin-left: auto; margin-right: auto; }
.rt-shead__overline { margin: 0; font: 500 12px/16px var(--font-plain); letter-spacing: 0.08em; text-transform: uppercase; color: var(--primary); }
.rt-section--sand .rt-shead__overline, .rt-section--primary .rt-shead__overline { color: inherit; }
.rt-shead__title { margin: 0; font: 500 clamp(32px, 3.4vw, 48px)/1.08 var(--font-headline); letter-spacing: -0.01em; color: inherit; text-wrap: balance; }
.rt-shead__lead { margin: 0; max-width: 60ch; font: 400 18px/28px var(--font-plain); color: var(--on-surface-variant); text-wrap: pretty; }
.rt-section--sand .rt-shead__lead, .rt-section--primary .rt-shead__lead { color: inherit; }

.rt-quote { position: relative; display: flex; flex-direction: column; gap: var(--space-6); margin: 0; box-sizing: border-box; padding: var(--space-10) var(--space-8) var(--space-8); border-radius: var(--radius-xl-increased); }
.rt-quote--sand { background: var(--tertiary-container); color: var(--on-tertiary-container); }
.rt-quote--surface { background: var(--surface-container-low); color: var(--on-surface); }
.rt-quote--dark { background: var(--brand-night); color: var(--white); }
.rt-quote__mark { font: 400 96px/0.6 var(--font-display); color: var(--tertiary); height: 40px; }
.rt-quote--dark .rt-quote__mark { color: var(--brand-sand); }
.rt-quote__text { margin: 0; font: 500 clamp(20px, 2vw, 26px)/1.35 var(--font-headline); color: inherit; text-wrap: pretty; }
.rt-quote__by { display: flex; align-items: center; gap: var(--space-3); }
.rt-quote__avatar { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; object-fit: cover; background: var(--primary-container); color: var(--on-primary-container); font: 500 16px/1 var(--font-plain); }
.rt-quote__name { display: block; font: 700 16px/24px var(--font-plain); }
.rt-quote__role { display: block; font: 400 14px/20px var(--font-plain); opacity: 0.86; }

/* Process steps */
.rt-steps__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-8); margin: 0; padding: 0; list-style: none; counter-reset: none; }
.rt-steps__item { display: flex; flex-direction: column; gap: var(--space-3); padding-top: var(--space-6); box-shadow: inset 0 2px 0 var(--outline-variant); }
.rt-steps__item:first-child { box-shadow: inset 0 2px 0 var(--primary); }
.rt-steps__num { font: 400 36px/40px var(--font-display); color: var(--primary); font-variant-numeric: tabular-nums; }
.rt-section--sand .rt-steps__num { color: var(--on-tertiary-container); }
.rt-steps__title { margin: 0; font: 700 20px/28px var(--font-plain); color: inherit; }
.rt-shape { display: grid; place-items: center; aspect-ratio: 1; }
.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%); }
.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%); }
.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%); }
.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%); }
.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%); }
.rt-shape--pill { clip-path: inset(0 round 9999px); aspect-ratio: auto; }
.rt-shape--spin { animation: rt-shape-spin 24s linear infinite; }
@keyframes rt-shape-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .rt-shape--spin { animation: none; } }
.rt-reviews__score { font: 900 clamp(72px, 7vw, 104px)/0.9 var(--font-plain); letter-spacing: -0.03em; color: var(--primary-text); font-variant-numeric: tabular-nums; }
.rt-reviews__meta { font: 500 17px/26px var(--font-plain); color: var(--on-surface); }
.rt-reviews__stars { font-size: 22px; letter-spacing: 3px; color: var(--star); }
.rt-reviews__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
.rt-reviews__list > :first-child { grid-column: 1 / -1; }
.rt-reviews__list > :first-child .rt-quote__text { font-size: 22px; line-height: 34px; }
.rt-quote__avatar--shape { 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%);; box-shadow: none; background: var(--primary-container); color: var(--on-primary-container); }
.rt-quote__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
.rt-quote__glyph { font: 900 56px/0.6 var(--font-plain); color: var(--primary-container); height: 24px; }
@media (max-width: 1023px) { .rt-reviews { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 699px) { .rt-reviews__list { grid-template-columns: minmax(0, 1fr); } .rt-reviews__summary { padding: var(--space-6); } }

/* Sector list: M3 two-line list items with shape-masked icons */
.rt-sectors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
.rt-sectors__panel { display: flex; flex-direction: column; padding: var(--space-2) 0; border-radius: var(--radius-card); background: var(--surface-container-lowest); box-shadow: inset 0 0 0 1px var(--outline-variant), var(--shadow-card); }
.rt-sector { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; gap: var(--space-4); padding: var(--space-5) var(--space-6); color: var(--on-surface); text-decoration: none; box-shadow: inset 0 -1px 0 var(--outline-variant); }
.rt-sector:last-child { box-shadow: none; }
.rt-sector:focus-visible { outline: 3px solid var(--primary); outline-offset: -3px; border-radius: var(--radius-md); }
.rt-sector__shape { display: grid; place-items: center; width: 56px; height: 56px; background: var(--primary-container); color: var(--on-primary-container); }
.rt-sector:hover .rt-sector__shape { background: var(--primary); color: var(--on-primary); transition: background var(--rt-dur-short) linear; }
.rt-sector__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rt-footer { background: var(--surface-container-low); color: var(--on-surface); }
.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); }
.rt-footer__brand { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.rt-footer__logo img { display: block; height: 32px; width: auto; }
.rt-footer__tagline { margin: 0; max-width: 32ch; font: 400 14px/20px var(--font-plain); color: var(--on-surface-variant); }
.rt-footer__social { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-2) 0 0; padding: 0; list-style: none; }
.rt-footer__social .rt-chip { text-decoration: none; }
.rt-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--space-8); }
.rt-footer__head { margin: 0 0 var(--space-3); font: 700 14px/20px var(--font-plain); color: var(--on-surface); }
.rt-footer__col ul { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.rt-footer__col a, .rt-footer__legal a { color: var(--on-surface-variant); font: 400 14px/20px var(--font-plain); text-decoration: none; border-radius: var(--radius-xs); }
.rt-footer__col a:hover, .rt-footer__legal a:hover { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.rt-footer__col a:focus-visible, .rt-footer__legal a:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
.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); }
.rt-footer__legal-links { display: flex; flex-wrap: wrap; gap: var(--space-4); }
.rt-footer__legal a { font-size: 12px; line-height: 16px; }
@media (max-width: 839px) { .rt-footer__inner { grid-template-columns: 1fr; padding: var(--space-12) var(--space-4) var(--space-6); } }
.rt-footer { background: var(--footer-bg); color: var(--footer-text); }
.rt-footer__tagline, .rt-footer__col a, .rt-footer__legal, .rt-footer__legal a, .rt-footer__col li { color: var(--footer-text); }
.rt-footer__head { color: var(--brand-ink); }
.rt-footer__col a:hover, .rt-footer__legal a:hover { color: var(--primary-text); }

.rt-quote--surface{background:var(--surface-container-lowest);border-radius:var(--radius-review);box-shadow:inset 0 0 0 1px var(--outline-variant),var(--shadow-review);} .rt-quote__name{font-weight:900;}
.hm-spot__mark{line-height:1;height:96px;font-size:96px;} .hm-field:not(.hm-full){position:relative;display:block;} .hm-field:not(.hm-full)>span{position:absolute;top:18px;left:16px;pointer-events:none;transition:top .15s,font-size .15s;background:#fff;} .hm-field:not(.hm-full):focus-within>span,.hm-field:not(.hm-full):has(input:not(:placeholder-shown))>span{top:-10px;left:12px;font-size:12px;padding:0 4px;} .hm-form>button{justify-self:start;} .rt-footer__col a,.rt-footer__legal a{color:var(--primary-text);}
.rt-section__inner{max-width:1440px;padding:76px 56px;} .rt-shead{margin:0 0 32px;} .rt-shead__title{margin:0;font:800 clamp(32px,3vw,43px)/1.12 var(--font-plain);color:var(--on-surface);letter-spacing:-.01em;} .rt-shead__overline{margin:0 0 12px;font:700 13px/21px var(--font-plain);color:var(--primary-text);text-transform:uppercase;} .rt-shead__lead{font:400 19px/30px var(--font-plain);color:var(--on-surface-variant);margin:16px 0 0;} .rt-actions{display:flex;gap:16px;flex-wrap:wrap;}
.hm-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:12px 24px;border:0;border-radius:999px;background:var(--primary);color:white;text-decoration:none;font:700 16px/22px var(--font-plain);box-shadow:var(--shadow-cta);cursor:pointer;transition:background .2s,box-shadow .2s;} .hm-button:hover{background:var(--primary-text);color:#fff;box-shadow:0 8px 24px #6255ff30;} .hm-hero .hm-button{min-height:56px;padding:16px 32px;} .hm-button--outlined{background:transparent;color:var(--on-surface);box-shadow:inset 0 0 0 1px var(--field-border);} .hm-button--outlined:hover{background:var(--primary-container);color:var(--primary-text);} .hm-button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--primary);outline-offset:4px;} .hm-icon{flex:none;vertical-align:middle;}
.hm-about__photo{padding:0;overflow:hidden;} .hm-about__photo img{width:100%;height:100%;object-fit:cover;display:block;}
.rt-reviews{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:24px;} .rt-reviews__summary{display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding:40px;background:var(--primary-container);border-radius:30px;} .rt-reviews__rating{display:flex;flex-direction:column;gap:8px;margin:auto 0 0;} .rt-reviews__score{font:900 clamp(64px,7vw,104px)/.9 var(--font-plain);letter-spacing:-.03em;color:var(--primary-text);} .rt-reviews__meta{font:500 17px/26px var(--font-plain);} .rt-reviews__stars,.rt-quote__stars{color:var(--star);font-size:22px;letter-spacing:3px;} .rt-reviews__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;} .rt-reviews__list>:first-child{grid-column:1/-1;} .rt-quote{padding:32px;gap:20px;} .rt-quote__text{font:400 16px/26px var(--font-plain);} .rt-reviews__list>:first-child .rt-quote__text{font-size:22px;line-height:32px;} .rt-quote__head{display:flex;align-items:center;justify-content:space-between;gap:16px;} .rt-quote__glyph{font:900 56px/.6 var(--font-plain);color:var(--primary-container);height:24px;} .rt-quote__name a{color:inherit;text-decoration:none;} .rt-quote__avatar--shape{clip-path:polygon(50% 0,65% 8%,82% 12%,89% 30%,100% 50%,89% 68%,82% 88%,65% 92%,50% 100%,30% 90%,12% 82%,8% 65%,0 50%,8% 30%,12% 12%,30% 8%);}
.hm-field{display:flex;flex-direction:column;gap:8px;min-width:0;font:500 14px/20px var(--font-plain);color:var(--on-surface-variant);} .hm-field input,.hm-field textarea{width:100%;min-width:0;max-width:100%;min-height:56px;border:1px solid var(--field-border);border-radius:10px;background:white;padding:14px 16px;font:400 16px/24px var(--font-plain);color:var(--on-surface);} .hm-field textarea{min-height:112px;resize:vertical;} .hm-field input:focus,.hm-field textarea:focus{outline:2px solid var(--primary);outline-offset:-1px;} .hm-privacy{display:flex;align-items:flex-start;gap:12px;font:400 14px/22px var(--font-plain);color:var(--on-surface-variant);} .hm-privacy input{width:20px;height:20px;flex:none;margin:2px 0;accent-color:var(--primary);} .hm-notice{padding:16px;border-radius:10px;background:var(--primary-container);} .hm-notice--error{background:var(--error-container);color:var(--on-error-container);}
.hm-faq{max-width:936px!important;} .rt-faq__list{border-top:1px solid var(--outline-variant);} .hm-faq-item{border-bottom:1px solid var(--outline-variant);} .hm-faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px;padding:16px 16px 16px 8px;cursor:pointer;font:700 18px/26px var(--font-plain);color:var(--on-surface);} .hm-faq-item summary::-webkit-details-marker{display:none;} .hm-faq-item summary svg{transition:transform .2s;} .hm-faq-item[open] summary svg{transform:rotate(180deg);color:var(--primary);} .hm-faq-answer p{margin:0;padding:0 48px 24px 8px;font:400 16px/24px var(--font-plain);color:var(--on-surface-variant);}
body.home .rt-site-header{background:#fff;box-shadow:0 1px 0 #12142314;} body.home .rt-site-header__inner{max-width:1440px;padding:0 40px;min-height:88px;gap:32px;} body.home .rt-site-header__logo img{width:180px;} body.home .rt-site-header__nav{justify-content:flex-end;} body.home .rt-site-header__menu{gap:24px;} body.home .rt-site-header__menu a{font:500 16px/22px var(--font-plain);color:var(--on-surface);} body.home .rt-site-header__menu a:hover{color:var(--primary-text);} body.home .rt-site-header__cta{font:700 16px/22px var(--font-plain);background:var(--primary);padding:12px 24px;border-radius:999px;min-height:48px;box-shadow:var(--shadow-cta);} body.home .rt-site-header__logo img{filter:none;} body.home .rt-footer__inner{max-width:1440px;padding:64px 56px 24px;} .rt-footer__logo img{width:160px;height:auto;} .rt-footer__head{font-weight:700;} .rt-footer ul{list-style:none;padding:0;} .rt-footer a{color:inherit;} .rt-footer__legal{gap:24px;}
@media(max-width:1199px){body.home .rt-site-header__inner{padding:0 24px;gap:20px;}body.home .rt-site-header__menu{gap:8px;}body.home .rt-site-header__menu a{font-size:14px;}}
@media(max-width:1023px){.hm-hero{display:flex;flex-direction:column;min-height:0;}.hm-hero__inner{order:1;width:100%;padding:64px 24px 0;}.hm-globe{order:2;flex:none;margin:-24px auto -24px;}.hm-hero__foot{order:3;}.rt-section__inner{padding:64px 24px;}.rt-reviews{grid-template-columns:minmax(0,1fr);}.rt-footer__inner{padding:56px 24px 24px!important;}.hm-hero__title{font-size:clamp(56px,10vw,96px);}}
@media(max-width:699px){.rt-section__inner{padding:56px 16px;}.hm-hero__inner{padding:48px 16px 0;}.hm-hero__lead{font-size:17px;line-height:28px;}.hm-proof{font-size:11px;gap:8px;padding:0 12px;max-width:100%;}.hm-contact{padding:20px;}.hm-form-panel{padding:20px;}.hm-form .hm-button{font-size:14px;padding:12px 16px;}.rt-reviews__list{grid-template-columns:minmax(0,1fr);}.rt-reviews__summary{padding:24px;}.rt-quote{padding:24px;}.rt-quote__text,.rt-reviews__list>:first-child .rt-quote__text{font-size:17px;line-height:28px;}.hm-pf__card{width:260px;}.hm-pf__body{flex-wrap:wrap;}.hm-faq-answer p{padding-right:16px;}.hm-faq-item summary{font-size:17px;}.rt-footer__legal{flex-direction:column;}.rt-footer__legal-links{flex-wrap:wrap;}.hm-tile{padding:24px;}body.home .rt-site-header__inner{min-height:72px;padding:0 16px;}body.home .site-main{padding-top:72px;}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;} .hm-button,.hm-faq-item summary svg{transition:none;}}
/* Floating header and compact hero, limited to the homepage. */
body.home { padding-top: 0; }
body.home .rt-site-header {
  top: 16px;
  left: 24px;
  right: 24px;
  width: auto;
  border: 1px solid rgba(224, 226, 236, .7);
  border-radius: 24px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 8px 28px rgba(37, 48, 68, .08);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}
body.home .rt-site-header.is-hidden {
  transform: translateY(calc(-100% - 64px));
}
body.home .rt-site-header:has(.rt-menu-toggle[aria-expanded="true"]) {
  transform: none;
  transition: none;
  will-change: auto;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.home .rt-menu-panel, body.home .rt-panel { width: 100%; max-width: 100%; }
body.home.admin-bar .rt-site-header { top: 48px; }
body.home .rt-site-header__inner { padding: 0 30px; }
body.home .site-main { padding-top: 0; }
.hm-hero, .hm-hero__inner { min-height: 680px; }
.hm-hero__inner { padding: 124px var(--section-x) 44px; }
.hm-globe { width: min(920px, 70vw); }
.hm-hero__foot { justify-content: flex-end; bottom: 40px; }
.rt-home-m3 section[id] { scroll-margin-top: 120px; }
@media (max-width: 1199px) {
  body.home .rt-site-header__inner { padding: 0 24px; }
}
@media (max-width: 1023px) {
  body.home .rt-site-header { top: 12px; left: 16px; right: 16px; border-radius: 22px; }
  body.home.admin-bar .rt-site-header { top: 44px; }
  .hm-hero, .hm-hero__inner { min-height: 0; }
  .hm-hero__inner { padding: 124px 24px 0; }
  .hm-hero__text { gap: 20px; }
  .hm-globe { width: calc(100% - 32px); max-width: 520px; margin: -32px auto -48px; }
  .hm-hero__foot { bottom: auto; justify-content: flex-end; padding: 0 24px 32px; }
}
@media (max-width: 699px) {
  body.home .rt-site-header { top: 10px; left: 12px; right: 12px; border-radius: 20px; }
  body.home.admin-bar .rt-site-header { top: 56px; }
  body.home .rt-site-header__inner { min-height: 72px; padding: 0 16px; }
  body.home .site-main { padding-top: 0; }
  .hm-hero__inner { padding: 112px 16px 0; }
  .hm-globe { max-width: 460px; margin: -24px auto -32px; }
  .hm-hero__foot { align-items: flex-end; padding: 0 16px 28px; }
}
/* The static sector lists must follow the enclosing dropdown's state.
   Explicit visibility/pointer overrides left invisible links over the hero. */
@media (min-width: 1181px) {
  body.home .rt-site-header__menu #menu-item-1552 > .sub-menu,
  body.home .rt-site-header__menu .rt-menu-sectors > .sub-menu,
  body.home .rt-site-header__menu .rt-menu-sectors .sub-menu .sub-menu {
    visibility: inherit;
    pointer-events: inherit;
  }

  /* A dropdown must not keep the translated, hidden header interactive. */
  body.home .rt-site-header.is-hidden .rt-site-header__nav,
  body.home .rt-site-header.is-hidden .rt-site-header__nav * {
    visibility: hidden !important;
    pointer-events: none !important;
  }
}
/* FAQ presentation from the official Siti web Napoli page; content stays local. */
.hm-faq-section {
  --font-plain: Arial, sans-serif;
  --primary-container: #ebe7ff;
  --on-primary-container: #5144da;
  background: radial-gradient(circle at 18% 22%, #6255ff29 0, #6255ff13 34%, #ffffff00 68%), #fff;
  color: #253044;
  font-family: var(--font-plain);
}
body.home .hm-faq-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 64px;
  align-items: start;
  max-width: 1456px !important;
  padding: 76px 56px;
}
.hm-faq-section .hm-faq-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}
.hm-faq-section .rt-shead { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.hm-faq-section .rt-shead__overline { margin: 0; font: 700 13px/21px Arial, sans-serif; letter-spacing: .04em; color: #5144da; }
.hm-faq-section .rt-shead__title { font: 700 clamp(30px, 3vw, 43px)/1.17 Arial, sans-serif; letter-spacing: -.005em; text-wrap: balance; }
.hm-faq-section .hm-button { min-height: 48px; max-width: 100%; gap: 8px; font: 700 16px/24px Arial, sans-serif; padding: 0 24px; }
.hm-faq-section .hm-button .hm-icon { width: 20px; height: 20px; }
.hm-faq-section .rt-faq__list { display: flex; flex-direction: column; border: 0; box-shadow: inset 0 1px 0 #e0e2ec; }
.hm-faq-section .hm-faq-item { border: 0; box-shadow: inset 0 -1px 0 #e0e2ec; }
.hm-faq-section .hm-faq-item summary {
  min-height: 72px;
  padding: 16px 8px;
  gap: 16px;
  border-radius: 12px;
  font: 700 18px/25px Arial, sans-serif;
  color: #253044;
}
.hm-faq-section .hm-faq-item summary:hover { background: color-mix(in srgb, #6255ff 5%, transparent); }
.hm-faq-section .hm-faq-item summary:focus-visible { outline: 3px solid #6255ff; outline-offset: -3px; }
.hm-faq-section .hm-faq-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 9999px;
  color: #526174;
  transition: transform .25s ease, background .15s linear;
}
.hm-faq-section .hm-faq-item[open] .hm-faq-icon { transform: rotate(180deg); background: #ebe7ff; color: #5144da; }
.hm-faq-section .hm-faq-item summary svg { width: 24px; height: 24px; transform: none; transition: none; color: inherit; }
.hm-faq-section .hm-faq-answer p { margin: 0; padding: 0 64px 24px 8px; max-width: 72ch; font: 400 17px/28px Arial, sans-serif; color: #526174; }
.hm-faq-section .hm-faq-answer a { color: #5144da; text-underline-offset: 3px; }
@media (max-width: 1023px) {
  body.home .hm-faq-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
@media (max-width: 839px) {
  body.home .hm-faq-grid { padding: 48px 20px; }
}
@media (max-width: 699px) {
  .hm-faq-section .hm-button { white-space: normal; text-align: center; padding: 14px 20px; }
  .hm-faq-section .hm-faq-answer p { padding-right: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .hm-faq-section .hm-faq-icon { transition: none; }
}

/* Shared footer layout copied from the official site, scoped to this home. */
body.home .rt-site-footer { --rt-footer-bg:#f8f8f8; --rt-footer-text:#565b64; font-family:Satoshi,Raleway,Arial,sans-serif; font-weight:400; }
body.home .rt-site-footer {
    background: var(--rt-footer-bg);
    color: var(--rt-footer-text);
}

body.home .rt-site-footer a {
    color: inherit;
    text-decoration: none;
}

body.home .rt-site-footer a:hover,
body.home .rt-site-footer a:focus-visible {
    color: var(--rt-blue);
}

body.home .rt-site-footer__inner {
    width: min(100% - (var(--rt-layout-gutter, 72px) * 2), var(--rt-layout-content, 1456px));
    margin: 0 auto;
    padding: clamp(56px, 6vw, 110px) 0;
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(420px, 1.6fr);
    gap: clamp(44px, 6vw, 110px);
}

body.home .rt-site-footer__brand p {
    max-width: 430px;
    margin: 26px 0 0;
    color: var(--rt-footer-text);
    font-size: 17px;
    line-height: 1.7;
}

body.home .rt-site-footer__logo {
    display: inline-flex;
    padding: 14px 18px;
    border-radius: 8px;
    background: transparent;
}

body.home .rt-site-footer__logo img {
    width: min(260px, 60vw);
    height: auto;
    display: block;
}

body.home .rt-site-footer__social {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 28px;
}

body.home .rt-site-footer__social a {
    width: 42px;
    height: 42px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    border: 1px solid rgba(35, 37, 43, .14);
    color: #23252b;
    background: #fff;
    box-shadow: 0 10px 22px rgba(35, 37, 43, .06);
    transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

body.home .rt-site-footer__social svg {
    width: 18px;
    height: 18px;
    display: block;
    fill: currentColor;
}

body.home .rt-site-footer__social a:hover,
body.home .rt-site-footer__social a:focus-visible {
    background: var(--rt-blue);
    border-color: var(--rt-blue);
    color: #fff;
    transform: translateY(-1px);
}

body.home .rt-site-footer__nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(140px, 1fr));
    gap: clamp(28px, 4vw, 62px);
}

body.home .rt-site-footer__title {
    display: block;
    margin: 0 0 20px;
    color: #23252b;
    font-size: 16px;
    line-height: 1;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

body.home .rt-site-footer__nav a,
body.home .rt-site-footer__contacts p {
    display: block;
    margin: 0 0 13px;
    color: var(--rt-footer-text);
    font-size: 16px;
    line-height: 1.45;
}

body.home .rt-site-footer__nav a {
    min-height: 28px;
    display: flex;
    align-items: center;
}

body.home .rt-site-footer__contacts a {
    display: inline;
    margin: 0;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

body.home .rt-site-footer__bottom {
    width: min(100% - (var(--rt-layout-gutter, 72px) * 2), var(--rt-layout-content, 1456px));
    margin: 0 auto;
    padding: 22px 0 34px;
    border-top: 1px solid rgba(35, 37, 43, .1);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: #4f5660;
    font-size: 14px;
}

body.home .rt-site-footer__bottom p {
    margin: 0;
}

body.home .rt-site-footer__bottom div {
    display: inline-flex;
    gap: 18px;
    flex-wrap: wrap;
}


@media(max-width:1023px){body.home .rt-site-footer__inner{grid-template-columns:1fr;}}
@media(max-width:760px){body.home .rt-site-footer__nav{grid-template-columns:1fr;}body.home .rt-site-footer__inner{padding-top:52px;padding-bottom:40px;}body.home .rt-site-footer__bottom{align-items:flex-start;flex-direction:column;}}

/* Official Web Design dropdown and three-column market flyout, home only. */
@media (min-width: 1181px) {
  body.home .rt-site-header__menu > .hm-mega-web > .sub-menu {
    display: block;
    left: calc(-28px + var(--hm-mega-shift, 0px));
    width: 260px;
    min-width: 260px;
    min-height: 0;
    padding: 12px 0;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 22px 60px rgba(23, 25, 32, .15);
  }
  body.home .rt-site-header__menu .hm-mega-web > .sub-menu > li > a {
    min-height: 0;
    padding: 10px 22px;
    font: 500 clamp(18px, .95vw, 20px)/1.28 var(--font-plain);
    color: #343740;
    border-radius: 6px;
  }
  body.home .rt-site-header__menu .hm-mega-sectors > a::after { display: none; }
  body.home .rt-site-header__menu .hm-mega-sectors > .sub-menu {
    position: absolute;
    top: -118px;
    left: calc(100% - 2px);
    width: var(--hm-mega-width, 720px);
    min-width: 0;
    max-height: min(82vh, 520px);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 4px;
    padding: 12px 0;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 22px 60px rgba(23, 25, 32, .15);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(8px, 0);
    overflow: auto;
    overscroll-behavior: contain;
  }
  body.home .rt-site-header__menu .hm-mega-sectors:hover > .sub-menu,
  body.home .rt-site-header__menu .hm-mega-sectors:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(0, 0);
  }
  body.home .rt-site-header__menu .hm-mega-sectors > .sub-menu a {
    min-height: 38px;
    padding: 8px 12px;
    font: 500 clamp(16px, .9vw, 18px)/1.18 var(--font-plain);
    color: #343740;
    white-space: normal;
  }
  body.home .rt-site-header__menu .hm-mega-web .sub-menu a:hover,
  body.home .rt-site-header__menu .hm-mega-web .sub-menu a:focus-visible,
  body.home .rt-site-header__menu .hm-mega-web > .sub-menu > .hm-mega-sectors:hover > a,
  body.home .rt-site-header__menu .hm-mega-web > .sub-menu > .hm-mega-sectors:focus-within > a {
    color: var(--primary);
    background: rgba(98, 85, 255, .08);
  }
  body.home .rt-site-header__menu .hm-mega-web.hm-mega-dismissed .sub-menu {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

/* Preserve the home design while fitting the supplied C01 copy. */
.hm-hero__heading { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; margin: 0; }
.hm-hero__heading .hm-hero__eyebrow { width: fit-content; max-width: 100%; height: auto; min-height: 32px; padding: 7px 16px; box-sizing: border-box; letter-spacing: .03em; white-space: normal; }
.hm-hero__heading .hm-hero__eyebrow i { flex: 0 0 8px; }
.hm-hero__project-link { display: inline-flex; align-items: center; min-height: 48px; color: var(--primary-text); font: 700 16px/22px var(--font-plain); text-decoration: underline; text-underline-offset: 4px; }
.hm-copy-services-head { margin-bottom: 24px; }
.hm-copy-services-head .hm-eyebrow { margin-bottom: 12px; }
.hm-tile__text a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.hm-spot__text { letter-spacing: 0; font-weight: 500; }
.hm-spot__proof { margin: 0; font: 700 15px/24px var(--font-plain); }
.hm-copy-anchor { display: block; height: 0; scroll-margin-top: 112px; }
@media(max-width:699px) {
  .hm-hero__heading { gap: 20px; }
  .hm-hero__heading .hm-hero__eyebrow { font-size: 12px; line-height: 18px; }
}
