:root {
  --navy: #102f45;
  --navy-deep: #082232;
  --teal: #07777a;
  --turquoise: #41d3c3;
  --ink: #17384b;
  --text: #4c626e;
  --muted: #607681;
  --line: #d9e4e8;
  --soft: #edf5f6;
  --paper: #fbfcfd;
  --white: #fff;
  --container: 1240px;
  --radius: 18px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; font: 16px/1.75 Arial, Helvetica, sans-serif; color: var(--text); background: var(--paper); }
body.menu-open { overflow: hidden; }
h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { color: var(--ink); line-height: 1.12; letter-spacing: -.045em; }
h1 { font-size: clamp(2.8rem, 4.6vw, 4.8rem); font-weight: 750; margin-bottom: 28px; }
h2 { font-size: clamp(2rem, 3.2vw, 3.2rem); font-weight: 720; margin-bottom: 24px; }
h3 { font-size: 1.45rem; font-weight: 700; }
em { color: var(--teal); font-style: normal; }
a { color: inherit; text-underline-offset: 5px; }
img { display: block; max-width: 100%; height: auto; }
button,input,textarea,select { font: inherit; }
button { cursor: pointer; }
button,a,input,select,textarea { -webkit-tap-highlight-color: transparent; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline: 3px solid var(--teal); outline-offset: 5px; }
[hidden] { display: none !important; }
.container { width: min(calc(100% - 96px), var(--container)); margin-inline: auto; }
.section { padding-block: 100px; }
.section-heading { max-width: 760px; margin-bottom: 48px; }
.section-heading > p:last-child { max-width: 630px; }
.eyebrow { color: var(--teal); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 750; margin-bottom: 22px; }
.large-copy { font-size: 1.3rem; line-height: 1.6; }
.lead { max-width: 690px; font-size: 1.15rem; line-height: 1.8; }
.actions { display: flex; flex-wrap: wrap; gap: 16px 22px; align-items: center; margin-block: 30px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 20px; border: 1px solid transparent; padding: 16px 23px; border-radius: 8px; text-decoration: none; font-size: .9rem; line-height: 1.5; font-weight: 700; transition: background .18s, transform .18s; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { color: var(--navy-deep); background: var(--turquoise); border-color: var(--turquoise); }
.btn-primary:hover { background: #75e1d5; border-color: #75e1d5; }
.btn-light { color: white; border-color: #ffffff66; background: #ffffff0a; }
.btn-light:hover { background: #ffffff1c; }
.btn-outline,.btn-secondary { background: white; border-color: var(--line); color: var(--navy); }
.text-link { font-weight: 700; font-size: .9rem; color: var(--teal); display: inline-block; }
.text-button { border: 0; background: none; padding: 0; color: var(--teal); text-decoration: underline; text-underline-offset: 4px; font-size: .85rem; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 100; background: var(--navy); color: white; padding: 12px 20px; }
.skip-link:focus { top: 10px; }
/* Identità e navigazione */
.site-header { position: sticky; top: 0; z-index: 40; background: #fffffffa; border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.header-inner { width: min(calc(100% - 64px), 1360px); margin: auto; min-height: 90px; display: flex; justify-content: space-between; align-items: center; gap: 25px; }
.brand { display: inline-flex; gap: 12px; align-items: center; color: var(--navy); text-decoration: none; flex-shrink: 0; }
.brand-symbol { display: inline-flex; align-items: center; justify-content: center; width: 43px; height: 43px; border-radius: 12px 12px 12px 3px; font-size: 36px; line-height: 1; font-weight: 750; color: white; background: var(--navy); padding-bottom: 4px; }
.brand-symbol > span { color: var(--turquoise); }
.brand strong { font-size: 19px; display: block; letter-spacing: -.05em; line-height: 1.2; }
.brand small { display: block; font-size: 9px; text-transform: uppercase; letter-spacing: .13em; margin-top: 5px; }
.site-nav { display: flex; align-items: center; gap: 19px; }
.site-nav > a { font-size: 12px; font-weight: 700; text-decoration: none; color: var(--navy); white-space: nowrap; padding-block: 12px; }
.site-nav > a:hover { color: var(--teal); }
.site-nav > a[aria-current] { box-shadow: 0 2px var(--teal); }
.site-nav .nav-cta { background: var(--navy); color: white; padding: 14px 17px; border-radius: 7px; flex-shrink: 0; white-space: normal; text-align: center; }
.menu-toggle { display: none; width: 45px; height: 44px; border: 1px solid var(--line); border-radius: 6px; background: white; }
/* Hero: fotografia illustrativa e cattura autentica del prodotto */
.hero-stage { position: relative; isolation: isolate; background: var(--navy-deep); color: white; }
.hero-photo { position: absolute; inset: 0; background: linear-gradient(90deg, #082232f5 0%, #082232dc 38%, #08223273 75%, #08223288), url('/site-assets/img/foto-reception.webp') center 48% / cover; z-index: -1; }
.hero { display: grid; grid-template-columns: 1.05fr 1fr; gap: 55px; align-items: center; padding-block: 110px 120px; min-height: 720px; }
.hero h1 { color: white; font-size: clamp(2.8rem, 4.1vw, 4.3rem); }
.hero h1 em { color: #71e2d6; }
.hero .eyebrow { color: #99e8df; }
.hero .lead { color: #e1eaee; font-size: 1.05rem; }
.hero-note { max-width: 470px; color: #c2d6df; font-size: .8rem; }
.hero-visual { min-width: 0; position: relative; padding-block: 28px 50px; }
.product-shot,.demo-screen { margin: 0; background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 24px 70px #08223216; overflow: clip; }
.hero-product-screen { transform: perspective(1200px) rotateY(-6deg) rotate(1deg); border-color: #ffffff80; box-shadow: 0 28px 90px #0006; }
.product-shot img,.demo-screen img { width: 100%; }
.shot-bar { display: flex; gap: 15px; align-items: center; justify-content: space-between; background: #f2f6f8; border-bottom: 1px solid var(--line); padding: 12px 16px; color: var(--muted); font-size: .65rem; }
.shot-bar > span:first-child { color: #93aab5; letter-spacing: .2em; }
.product-shot figcaption,.demo-screen figcaption { padding: 20px 24px; font-size: .8rem; color: var(--text); line-height: 1.65; background: white; border-top: 1px solid var(--line); }
.product-shot figcaption a { display: block; font-weight: 700; color: var(--teal); margin-top: 5px; }
.floating-note { position: relative; margin: -1px 0 0 30px; padding: 18px 22px; display: flex; align-items: center; gap: 14px; background: #ffffffed; color: var(--navy); width: fit-content; max-width: calc(100% - 30px); border-radius: 0 0 12px 12px; box-shadow: 0 15px 40px #0002; }
.note-dot { width: 11px; height: 11px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 5px #087f8214; flex-shrink: 0; }
.floating-note strong { display: block; font-size: .78rem; }
.floating-note small { display: block; font-size: .68rem; }
.promise-band { background: white; border-bottom: 1px solid var(--line); }
.promise-grid { display: grid; grid-template-columns: repeat(3, 1fr); padding-block: 32px; }
.promise-grid p { padding: 0 38px; margin: 0; border-right: 1px solid var(--line); }
.promise-grid p:first-child { padding-left: 0; }
.promise-grid p:last-child { border: 0; }
.promise-grid strong,.promise-grid span { display: block; }
.promise-grid strong { color: var(--navy); font-size: .98rem; }
.promise-grid span { font-size: .8rem; color: var(--muted); }
/* Ritmo editoriale, split e immagini */
.soft-band { background: var(--soft); }
.split-intro,.split-feature { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.split-intro { align-items: start; }
.editorial-points article { display: grid; grid-template-columns: 32px 1fr; gap: 25px; padding: 26px 0; border-top: 1px solid var(--line); }
.editorial-points article > span { color: var(--teal); font-size: .75rem; font-weight: 700; }
.editorial-points h3 { font-size: 1.25rem; margin-bottom: 12px; }
.editorial-points p { font-size: .9rem; margin-bottom: 0; }
.feature-visual { padding: 30px; background: linear-gradient(145deg, #c7e5e4, #e4eff6); border-radius: 26px 6px 26px 6px; }
.feature-visual img { border-radius: 10px; box-shadow: 0 15px 40px #102f4520; border: 1px solid white; }
.visual-kicker { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .04em; color: var(--navy); margin-bottom: 20px; }
.check-list { padding: 0; list-style: none; margin: 26px 0; }
.check-list li { padding: 11px 0 11px 28px; border-bottom: 1px solid var(--line); position: relative; font-size: .9rem; }
.check-list li::before { content: '✓'; position: absolute; left: 0; color: var(--teal); font-weight: 700; }
.module-links { display: grid; grid-template-columns: repeat(3, 1fr); margin-block: 50px 30px; }
.module-links > a { padding: 30px 35px; border-left: 1px solid var(--line); text-decoration: none; position: relative; transition: background .2s; }
.module-links > a:first-child { padding-left: 0; border-left: 0; }
.module-links > a:hover { background: var(--soft); }
.module-links span { font-size: .65rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; color: var(--teal); }
.module-links h3 { margin-block: 25px 15px; }
.module-links p { font-size: .9rem; padding-right: 15px; }
.module-links b { color: var(--teal); font-size: 24px; }
.home-support { background: var(--navy); color: #d2e1e8; }
.home-support h2,.home-support .eyebrow { color: white; }
.home-support .eyebrow { color: #8fe5d9; }
.support-photo { position: relative; padding: 20px 0 30px; }
.support-photo img { width: 100%; border-radius: 6px 36px 6px 36px; }
.support-photo > span { position: absolute; bottom: 0; left: 25px; right: 25px; padding: 18px 25px; color: var(--navy); background: var(--turquoise); border-radius: 7px; font-size: .85rem; font-weight: 700; }
.support-note { font-size: .8rem; color: #b9cfd9; margin-block: 25px; }
.development-photo { padding: 0 30px 30px 0; background: linear-gradient(135deg, transparent 20%, #d4e8ed 20%); border-radius: 15px; }
.development-photo img { width: 100%; border-radius: 15px; }
.start-steps { padding: 0; list-style: none; counter-reset: start; }
.start-steps li { padding: 16px 0 16px 43px; border-bottom: 1px solid var(--line); position: relative; font-size: .9rem; }
.start-steps li::before { counter-increment: start; content: '0' counter(start); position: absolute; left: 0; color: var(--teal); font-weight: 700; }
.commercial-faq { max-width: 950px; }
.commercial-faq details { padding: 25px 0; border-bottom: 1px solid var(--line); }
.commercial-faq summary { font-weight: 700; color: var(--navy); cursor: pointer; }
.commercial-faq details p { margin: 22px 0 0; max-width: 800px; }
.closing-cta { background: linear-gradient(115deg, var(--navy), #16546a); color: #d9e7ed; padding: 60px 65px; border-radius: 24px; display: grid; grid-template-columns: 1fr auto; gap: 45px; align-items: center; }
.closing-cta h2 { color: white; max-width: 670px; }
.closing-cta .eyebrow { color: #8fe5d9; }
.closing-cta p { max-width: 660px; margin-bottom: 0; }
/* Piani: criteri appartamenti e strutture separati */
.pricing-group { margin-top: 55px; }
.pricing-label { display: grid; grid-template-columns: 42px 240px 1fr; align-items: start; gap: 24px; border-top: 1px solid var(--line); padding-top: 30px; margin-bottom: 30px; }
.pricing-label h3 { margin: 0; }
.pricing-label p { font-size: .9rem; max-width: 590px; }
.section-number { color: var(--teal); font-size: .8rem; font-weight: 700; }
.pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.price-card { background: white; border: 1px solid var(--line); padding: 35px; border-radius: 12px; display: flex; flex-direction: column; align-items: start; }
.price-card.featured { background: var(--navy); color: white; border-color: var(--navy); box-shadow: 0 20px 45px #102f4518; }
.plan-name { text-transform: uppercase; letter-spacing: .12em; font-size: .7rem; font-weight: 700; color: var(--teal); margin-bottom: 18px; }
.price-card.featured .plan-name { color: #8fe5d9; }
.price-card h3 { font-size: 1.45rem; margin-bottom: 25px; }
.price-card.featured h3 { color: white; }
.plan-price { color: var(--navy); font-size: 1.65rem; line-height: 1.4; font-weight: 700; margin-bottom: 30px; letter-spacing: -.04em; }
.featured .plan-price { color: white; }
.price-card .btn { margin-top: auto; font-size: .8rem; }
.custom-plan { display: flex; gap: 30px; align-items: center; padding: 25px 35px; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 12px 12px; margin: 0 20px; background: #f0f6f7; font-size: .9rem; }
.custom-plan strong,.custom-plan span { display: block; }
.custom-plan p { margin: 0 0 0 auto; font-weight: 700; color: var(--navy); }
.structures-plans { display: grid; grid-template-columns: 1.2fr 1fr; gap: 30px; }
.structures .featured { background: #e2f2f1; border-color: #bbdedb; color: var(--text); }
.structures .featured h3,.structures .featured .plan-price { color: var(--navy); }
.structures .featured .plan-name { color: var(--teal); }
.custom-structure { padding: 40px; border-left: 1px solid var(--line); }
.custom-structure strong { color: var(--navy); display: block; font-size: 1.3rem; margin-block: 20px; }
.pricing-notes { font-size: .8rem; color: var(--muted); margin-top: 30px; }
.max-full-band { background: linear-gradient(130deg, #e9f3f5, #f4faf9); padding-bottom: 90px; }
.max-full-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.max-full-layout h2 { font-size: clamp(3rem, 5vw, 5rem); margin-bottom: 10px; }
.photo-stack { position: relative; padding-bottom: 30px; }
.photo-stack img { width: 100%; border-radius: 24px 5px 24px 5px; }
.photo-tag { position: absolute; left: 30px; right: 30px; bottom: 0; padding: 20px 25px; background: white; border-radius: 8px; box-shadow: 0 10px 35px #102f4512; color: var(--teal); font-size: .8rem; font-weight: 700; }
.max-price { font-size: 1.5rem; font-weight: 700; color: var(--navy); margin-block: 25px; }
.max-full-detail { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; }
.max-full-detail h3 { font-size: 2rem; }
.service-list { list-style: none; padding: 0; margin: 0; }
.service-list li { padding: 14px 0 14px 30px; position: relative; border-bottom: 1px solid #c9dfe3; font-size: .95rem; }
.service-list li::before { content: '+'; color: var(--teal); position: absolute; left: 0; font-weight: 700; font-size: 20px; }
/* Capitoli del prodotto */
.page-hero { padding-block: 85px 65px; }
.page-hero h1 { max-width: 1000px; }
.anchor-nav { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 35px; padding-top: 25px; border-top: 1px solid var(--line); }
.anchor-nav a { padding: 8px 12px; border: 1px solid var(--line); border-radius: 6px; font-size: .75rem; text-decoration: none; color: var(--navy); background: white; }
.anchor-nav a:hover { background: var(--soft); }
.module-section { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 70px; padding-block: 75px; border-top: 1px solid var(--line); }
.module-index { color: var(--teal); font-size: 3.2rem; font-weight: 700; letter-spacing: -.06em; line-height: 1; }
.module-index span { display: block; font-size: .78rem; letter-spacing: 0; margin-top: 18px; line-height: 1.5; color: var(--navy); }
.module-section h2 { font-size: clamp(1.8rem, 2.4vw, 2.5rem); max-width: 750px; }
.module-section > div:last-child > p { max-width: 780px; }
.status-label { display: inline-flex; color: #09646b; background: #e4f3f1; font-size: .66rem; font-weight: 700; padding: 4px 9px; border-radius: 3px; }
.module-note { padding: 18px 22px; border-left: 3px solid var(--teal); background: #f0f6f7; color: var(--text); font-size: .85rem; }
.module-use-case { display: grid; grid-template-columns: 1fr 1fr; column-gap: 35px; padding: 28px 0 0; margin-top: 30px; border-top: 1px solid var(--line); }
.module-use-case h3 { font-size: .78rem; letter-spacing: .02em; text-transform: uppercase; color: var(--teal); margin-bottom: 12px; }
.module-use-case h3 + p { font-size: .9rem; }
.module-use-case h3,.module-use-case p { grid-column: 1 / -1; }
.module-use-case .text-link { margin-top: 15px; font-size: .8rem; }
.module-use-case[id] { padding: 40px; background: var(--soft); border-radius: 10px; }
.availability-grid,.handoff-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.availability-grid article,.handoff-grid article { border-top: 3px solid var(--teal); padding: 25px 0; }
.availability-grid h3,.handoff-grid h3 { font-size: 1.25rem; }
.availability-grid p,.handoff-grid li { font-size: .9rem; }
.status-tag { display: inline-block; padding: 4px 10px; border: 1px solid var(--line); border-radius: 3px; font-size: .7rem; font-weight: 700; color: var(--teal); margin-bottom: 20px; }
/* Tour autentico, leggibile anche senza JS */
.demo-controls { display: flex; flex-wrap: wrap; gap: 10px; margin-block: 30px; }
.demo-controls button { background: white; border: 1px solid var(--line); color: var(--navy); padding: 12px 17px; border-radius: 7px; font-size: .85rem; }
.demo-controls button[aria-selected="true"] { background: var(--navy); color: white; border-color: var(--navy); }
.demo-screen figcaption strong { display: block; color: var(--navy); }
.demo-screen figcaption .text-link { margin-top: 10px; }
.demo-step-copy { margin-top: 28px; max-width: 880px; }
.demo-step-copy h3 { font-size: 1.5rem; }
.demo-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 25px; }
.demo-pagination > span { font-size: .85rem; }
.demo-pagination button:disabled { opacity: .5; cursor: default; }
.steps { padding-bottom: 90px; }
.steps > article { display: grid; grid-template-columns: 160px 1fr; gap: 35px; border-top: 1px solid var(--line); padding-block: 35px; }
.step-number { font-size: 2.8rem; font-weight: 700; color: var(--teal); }
.steps h2 { font-size: 1.8rem; }
.steps small { color: var(--teal); font-weight: 700; }
.handoff-grid ol { padding-left: 20px; }
.handoff-grid li { margin-bottom: 16px; }
.important-note { border-left: 3px solid var(--teal); padding: 20px 25px; margin-top: 30px; background: #dfedef; }
.important-note h3 { font-size: 1.2rem; }
.preparation-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.preparation-grid article { border: 1px solid var(--line); padding: 35px; background: white; border-radius: 10px; }
.preparation-grid ul { list-style: none; padding: 0; }
.preparation-grid li { padding: 12px 0; border-bottom: 1px solid var(--line); font-size: .9rem; }
.setup-note { font-size: .8rem; margin-top: 25px; }
.start-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 35px; }
.start-grid h3 { font-size: 1.3rem; }
.start-grid p { font-size: .9rem; }
.start-grid .text-link { font-size: .8rem; }
/* Contatto reale, selezione commerciale e accessibilità */
.contact-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 85px; align-items: start; padding-bottom: 100px; }
.contact-details { padding-top: 30px; }
.contact-details h2 { font-size: 2rem; }
.contact-details h3 { font-size: 1.15rem; }
.contact-context,.contact-help { border-top: 1px solid var(--line); padding-top: 25px; margin-top: 30px; }
.contact-context p,.contact-help p { font-size: .88rem; }
.contact-form-card { padding: 40px; background: white; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 15px 65px #102f4508; }
.contact-form-heading h2 { font-size: 1.8rem; }
.contact-form-heading p { font-size: .85rem; }
.card-label { display: block; text-transform: uppercase; letter-spacing: .1em; color: var(--teal); font-size: .65rem; margin-bottom: 15px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.form-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; color: var(--text); font-size: .85rem; }
.form-field-full { grid-column: 1 / -1; }
.form-field input,.form-field textarea,.form-field select { width: 100%; min-width: 0; border: 1px solid #bfcfd6; border-radius: 6px; background: white; padding: 11px 12px; color: var(--navy); outline-offset: 3px; }
.form-field input,.form-field select { min-height: 47px; }
.form-field textarea { resize: vertical; }
.form-field input:disabled { background: var(--soft); }
.form-consent { display: flex; gap: 10px; align-items: flex-start; font-size: .8rem; line-height: 1.6; }
.form-consent input[type="checkbox"] { width: 18px; min-height: 18px; height: 18px; flex: 0 0 18px; padding: 0; margin: 4px 0 0; accent-color: var(--teal); }
.form-actions { margin-top: 25px; }
.form-status { margin-top: 20px; font-size: .85rem; }
.form-status.is-error { color: #a22435; }
.form-status.is-success { color: #156044; }
.form-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; }
.optional-contact { padding-block: 18px; border-block: 1px solid var(--line); }
.optional-contact summary { color: var(--teal); font-size: .85rem; font-weight: 700; cursor: pointer; }
.optional-contact[open] > .form-grid { margin-top: 25px; }
.contact-preference-row { display: grid; gap: 15px; }
.commercial-selection { min-width: 0; margin: 25px 0 30px; padding: 22px; border: 1px solid #bddbdc; border-radius: 10px; background: #f0f8f7; }
.commercial-selection legend { font-weight: 700; font-size: .85rem; color: var(--navy); padding-inline: 8px; }
.commercial-selection > p { font-size: .8rem; }
.commercial-selection .form-grid { grid-template-columns: 1fr; }
.commercial-selection .form-field select { background: white; }
.selection-summary { margin-block: 20px 12px; font-size: .85rem; color: var(--navy); line-height: 1.7; }
.selection-summary strong { display: block; }
.select2-container { width: 100% !important; min-width: 0; max-width: 100%; font-size: .85rem; }
.select2-container--default .select2-selection--single { height: 47px; border-color: #bfcfd6; border-radius: 6px; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 45px; padding-left: 12px; padding-right: 28px; color: var(--navy); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 45px; }
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: #617681; }
.select2-dropdown { border-color: #bfcfd6; font-size: .85rem; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--teal); }
.select2-container--focus .select2-selection { outline: 3px solid var(--teal); outline-offset: 3px; }
.flatpickr-calendar { font-family: Arial, Helvetica, sans-serif; }
.contact-confirm-modal { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 18px; }
.contact-confirm-backdrop { position: absolute; inset: 0; background: #082232a8; }
.contact-confirm-dialog { width: min(530px, 100%); max-height: calc(100dvh - 36px); overflow: auto; padding: 45px; border-radius: 15px; background: white; position: relative; box-shadow: 0 20px 90px #0003; }
.contact-confirm-dialog h2 { font-size: 1.8rem; }
.contact-confirm-dialog > p { font-size: .9rem; }
.contact-confirm-dialog .eyebrow { font-size: .65rem; margin-bottom: 25px; }
.contact-confirm-close { position: absolute; right: 8px; top: 8px; width: 46px; height: 46px; border: 0; background: none; font-size: 26px; color: var(--navy); }
/* Footer */
.site-footer { background: #eaf1f4; padding-top: 65px; }
.footer-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1fr; gap: 50px; padding-bottom: 60px; }
.footer-grid h2 { text-transform: uppercase; font-size: .68rem; letter-spacing: .12em; margin-bottom: 25px; }
.footer-grid > div > a:not(.brand) { display: block; font-size: .8rem; text-decoration: none; margin-block: 10px; }
.footer-grid p { font-size: .8rem; margin-top: 25px; max-width: 260px; }
.footer-bottom { display: flex; justify-content: space-between; gap: 25px; border-top: 1px solid #cddce3; padding-block: 22px; font-size: .68rem; }
/* Navigazione collassabile indipendente dalle griglie */
@media (max-width: 1280px) {
  .header-inner { min-height: 80px; width: calc(100% - 48px); }
  .menu-toggle { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 6px; }
  .menu-toggle span { width: 18px; height: 1px; background: var(--navy); }
  .site-nav { display: none; position: absolute; top: 80px; left: 0; right: 0; background: white; border-bottom: 1px solid var(--line); padding: 20px 24px 30px; max-height: calc(100dvh - 80px); overflow: auto; box-shadow: 0 15px 25px #102f4510; }
  .site-nav.open { display: flex; flex-direction: column; align-items: stretch; gap: 3px; }
  .site-nav > a { padding: 12px; font-size: 15px; }
  .site-nav > a[aria-current] { border-left: 2px solid var(--teal); box-shadow: none; }
  .site-nav .nav-cta { margin-top: 10px; }
}
@media (max-width: 1100px) {
  .hero { gap: 30px; }
  .hero h1 { font-size: 3.1rem; }
  .split-intro,.split-feature,.max-full-layout,.max-full-detail { gap: 45px; }
  .module-section { grid-template-columns: 160px minmax(0, 1fr); gap: 40px; }
  .contact-layout { gap: 40px; }
  .price-card { padding: 25px; }
}
@media (max-width: 950px) {
  .container { width: calc(100% - 64px); }
  .section { padding-block: 75px; }
  .hero { grid-template-columns: 1fr; padding-block: 70px 40px; gap: 15px; }
  .hero h1 { max-width: 690px; font-size: 3.6rem; }
  .hero-copy { max-width: 680px; }
  .hero-visual { max-width: 660px; width: 100%; margin: auto; }
  .hero-photo { background: linear-gradient(110deg, #082232e8, #082232ce), url('/site-assets/img/foto-reception.webp') center / cover; }
  .hero-product-screen { transform: none; }
  .split-intro,.split-feature,.max-full-layout,.max-full-detail { grid-template-columns: 1fr; gap: 45px; }
  .feature-visual,.support-photo,.development-photo,.photo-stack { max-width: 680px; width: 100%; }
  .feature-copy { max-width: 680px; }
  .promise-grid p { padding-inline: 20px; }
  .module-links > a { padding-inline: 20px; }
  .module-links h3 { font-size: 1.2rem; }
  .pricing-label { grid-template-columns: 30px 1fr; gap: 15px; }
  .pricing-label p { grid-column: 2; }
  .pricing-grid { gap: 12px; }
  .price-card { padding: 22px; }
  .price-card h3 { font-size: 1.25rem; }
  .plan-price { font-size: 1.3rem; }
  .price-card .btn { width: 100%; padding: 12px; gap: 8px; }
  .structures-plans { gap: 15px; }
  .custom-structure { padding: 25px; }
  .custom-plan { margin-inline: 10px; padding: 22px; gap: 20px; }
  .closing-cta { padding: 45px; grid-template-columns: 1fr; gap: 30px; }
  .closing-cta .btn { justify-self: start; }
  .module-section { grid-template-columns: 110px minmax(0, 1fr); gap: 30px; }
  .module-index { font-size: 2.7rem; }
  .availability-grid,.handoff-grid { gap: 18px; }
  .availability-grid h3,.handoff-grid h3 { font-size: 1.1rem; }
  .steps > article { grid-template-columns: 90px 1fr; }
  .contact-layout { grid-template-columns: 1fr; }
  .contact-details { padding-top: 0; }
  .contact-form-card { padding: 35px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
}
@media (max-width: 600px) {
  body { font-size: 15px; line-height: 1.75; }
  .container { width: calc(100% - 40px); }
  .header-inner { width: calc(100% - 40px); min-height: 76px; }
  .site-nav { top: 76px; max-height: calc(100dvh - 76px); }
  .brand-symbol { width: 36px; height: 36px; font-size: 31px; border-radius: 10px 10px 10px 3px; }
  .brand strong { font-size: 17px; }
  .brand small { font-size: 8px; }
  .brand { gap: 9px; }
  .section { padding-block: 58px; }
  h1,.hero h1 { font-size: 2.7rem; }
  h2 { font-size: 2rem; }
  .hero { padding-block: 58px 25px; gap: 0; }
  .hero .lead { font-size: 1rem; }
  .hero .actions { align-items: stretch; gap: 12px; }
  .hero .actions .btn { width: 100%; }
  .hero-visual { padding-block: 20px 35px; }
  .shot-bar { font-size: .5rem; padding: 10px; gap: 10px; }
  .product-shot figcaption,.demo-screen figcaption { padding: 17px; font-size: .75rem; }
  .floating-note { padding: 15px; margin-left: 12px; max-width: calc(100% - 12px); }
  .floating-note strong { font-size: .68rem; }
  .floating-note small { font-size: .6rem; }
  .promise-grid { grid-template-columns: 1fr; padding-block: 10px; }
  .promise-grid p,.promise-grid p:first-child { border: 0; border-bottom: 1px solid var(--line); padding: 18px 0; }
  .promise-grid p:last-child { border-bottom: 0; }
  .split-intro,.split-feature { gap: 35px; }
  .large-copy { font-size: 1.13rem; }
  .editorial-points article { gap: 18px; }
  .feature-visual { padding: 20px; }
  .module-links { grid-template-columns: 1fr; margin-block: 25px; }
  .module-links > a,.module-links > a:first-child { border: 0; border-top: 1px solid var(--line); padding: 25px 0; }
  .module-links h3 { margin-block: 15px 10px; font-size: 1.5rem; }
  .module-links b { position: absolute; right: 10px; top: 45px; }
  .module-links p { max-width: 270px; }
  .pricing-grid,.structures-plans { grid-template-columns: 1fr; gap: 15px; }
  .pricing-label { margin-bottom: 15px; }
  .pricing-label h3 { font-size: 1.5rem; }
  .pricing-label p { margin-bottom: 10px; }
  .price-card { padding: 30px; }
  .price-card h3 { font-size: 1.5rem; margin-bottom: 15px; }
  .plan-price { font-size: 1.8rem; }
  .price-card .btn { width: auto; padding: 13px 18px; }
  .custom-plan { display: block; margin-inline: 0; border-top: 1px solid var(--line); border-radius: 10px; margin-top: 15px; }
  .custom-plan p { margin-block: 15px; }
  .custom-structure { border-left: 0; border-top: 1px solid var(--line); padding: 25px 0; }
  .max-full-layout { gap: 40px; }
  .max-full-band { padding-bottom: 55px; }
  .photo-tag { left: 15px; right: 15px; padding: 17px; font-size: .72rem; }
  .max-full-detail { gap: 25px; }
  .support-photo > span { left: 15px; right: 15px; padding: 16px; font-size: .75rem; }
  .closing-cta { padding: 35px 28px; border-radius: 16px; }
  .closing-cta h2 { font-size: 2rem; }
  .closing-cta .btn { width: 100%; }
  .page-hero { padding-block: 60px 35px; }
  .page-hero .lead { font-size: 1rem; }
  .anchor-nav { gap: 8px; }
  .anchor-nav a { font-size: .68rem; padding: 7px 9px; }
  .module-section { grid-template-columns: 1fr; gap: 25px; padding-block: 45px; }
  .module-index { display: flex; align-items: baseline; gap: 20px; font-size: 2.5rem; }
  .module-index span { margin: 0; }
  .module-section h2 { font-size: 1.8rem; }
  .module-use-case { grid-template-columns: 1fr; gap: 0; }
  .module-use-case[id] { padding: 25px; }
  .module-use-case .text-link { margin-top: 14px; }
  .availability-grid,.handoff-grid,.preparation-grid,.start-grid { grid-template-columns: 1fr; gap: 20px; }
  .availability-grid article,.handoff-grid article { padding: 22px 0; }
  .availability-grid h3,.handoff-grid h3 { font-size: 1.4rem; }
  .demo-controls { gap: 8px; }
  .demo-controls button { font-size: .8rem; padding: 11px 13px; }
  .demo-step-copy h3 { font-size: 1.35rem; }
  .demo-pagination { gap: 12px; }
  .demo-pagination .btn { font-size: .75rem; padding: 12px; }
  .steps > article { grid-template-columns: 45px 1fr; gap: 18px; }
  .step-number { font-size: 2rem; }
  .steps h2 { font-size: 1.35rem; }
  .preparation-grid article { padding: 25px; }
  .contact-layout { padding-bottom: 60px; gap: 35px; }
  .contact-form-card { padding: 25px 20px; }
  .contact-form-heading h2 { font-size: 1.6rem; }
  .form-grid { grid-template-columns: 1fr; gap: 20px; }
  .commercial-selection { padding: 18px; }
  .form-actions .btn { width: 100%; }
  .contact-confirm-dialog { padding: 65px 25px 30px; }
  .contact-confirm-dialog h2 { font-size: 1.6rem; }
  .footer-grid { gap: 30px 25px; padding-bottom: 40px; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .footer-grid h2 { font-size: .65rem; }
  .footer-grid > div > a:not(.brand) { font-size: .75rem; }
  .footer-bottom { flex-direction: column; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 35px; }
.feature-grid .feature { border-top: 1px solid var(--line); padding-top: 25px; }
.feature-grid .number { display: block; font-size: .65rem; color: var(--teal); letter-spacing: .08em; margin-bottom: 25px; }
.feature-grid h3 { font-size: 1.3rem; }
.feature-grid p { font-size: .9rem; }
.feature-grid a { color: var(--teal); font-size: .85rem; font-weight: 700; }
.selection-summary p { margin: 0 0 8px; }
@media(max-width: 600px) { .feature-grid { grid-template-columns: 1fr; } }

/* Composizione fotografica del riferimento prioritario, implementata in HTML. */
.hero-stage .hero { min-height: 600px; padding-block: 90px; }
.hero-stage .hero-photo { background: linear-gradient(90deg, #082232f0 0%, #082232d9 35%, #08223228 73%, #08223216), url('/site-assets/img/foto-reception.webp') center 48% / cover; }
.hero-stage .hero-copy { max-width: 650px; }
.hero-stage .hero { grid-template-columns: 1.2fr .8fr; }
.hero-photo-space { min-width: 0; }
.product-introduction .hero-visual { padding-block: 0; }
.showcase-screen { transform: rotate(1deg); box-shadow: 0 18px 65px #102f451a; }
.product-introduction .floating-note { background: var(--navy); color: white; }
.product-introduction .note-dot { background: var(--turquoise); }
.module-showcase { background: #f0f5f7; }
.module-thumbnails { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-bottom: 35px; }
.module-thumbnails > a { background: white; border: 1px solid var(--line); border-radius: 12px; overflow: clip; text-decoration: none; transition: transform .2s, box-shadow .2s; }
.module-thumbnails > a:hover { transform: translateY(-5px); box-shadow: 0 15px 35px #102f4510; }
.module-thumbnail { height: 165px; overflow: clip; border-bottom: 1px solid var(--line); background: #e5eef1; }
.module-thumbnail img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.module-thumbnail-copy { padding: 25px; }
.module-thumbnail-copy h3 { font-size: 1.25rem; }
.module-thumbnail-copy p { font-size: .85rem; line-height: 1.7; }
.module-thumbnail-copy span { color: var(--teal); font-size: 22px; }
.home-pricing { background: linear-gradient(100deg, #f3f7f9f5 0%, #f3f7f9ed 46%, #f3f7f966 100%), url('/site-assets/img/foto-reception.webp') center 25% / cover; }
.home-pricing-groups { display: grid; grid-template-columns: 3fr 1fr; gap: 20px; align-items: start; }
.home-app-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.price-group-title { font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 20px; color: var(--navy); }
.home-pricing .price-card { padding: 28px; min-height: 320px; }
.home-pricing .price-card h3 { font-size: 1.2rem; }
.home-pricing .plan-price { font-size: 1.45rem; }
.home-pricing .price-card .btn { padding: 12px 15px; font-size: .75rem; gap: 5px; }
.home-pricing [data-price-group="strutture"] > .price-card { background: #e0f3f1; border-color: #acd7d1; }
.home-custom-plans { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; padding: 25px 0; border-bottom: 1px solid #c9dce1; }
.home-custom-plans > div { display: grid; gap: 5px; font-size: .8rem; }
.home-custom-plans strong { color: var(--navy); }
.home-custom-plans a { color: var(--teal); font-weight: 700; }
.home-support { background: linear-gradient(90deg, #082232f7 15%, #082232de 55%, #0822329c), url('/site-assets/img/foto-assistenza.webp') center / cover; }
.max-full-band { background: var(--navy-deep); color: #d7e7ed; }
.max-full-band h2,.max-full-band h3,.max-full-band .max-price { color: white; }
.max-full-band .eyebrow { color: #8fe5d9; }
.max-full-band .service-list li { border-color: #ffffff25; }
.max-full-band .service-list li::before { color: #71e2d6; }
.contact-layout { grid-template-columns: .65fr 1.35fr; gap: 65px; }
.contact-layout .contact-help { margin-top: 25px; }
@media(max-width: 1100px) {
  .home-pricing-groups { grid-template-columns: 1fr; gap: 28px; }
  .home-pricing [data-price-group="strutture"] > .price-card { min-height: 0; }
  .module-thumbnails { gap: 15px; }
  .module-thumbnail-copy { padding: 20px; }
}
@media(max-width: 950px) {
  .hero-stage .hero { grid-template-columns: 1fr; padding-block: 75px; min-height: 530px; }
  .hero-stage .hero-photo { background: linear-gradient(90deg, #082232f0, #082232a8), url('/site-assets/img/foto-reception.webp') 65% center / cover; }
  .hero-photo-space { display: none; }
  .module-thumbnails { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .module-thumbnail { height: 190px; }
  .contact-layout { grid-template-columns: 1fr; gap: 35px; }
}
@media(max-width: 600px) {
  .hero-stage .hero { padding-block: 60px; min-height: 590px; }
  .hero-stage .hero-photo { background: linear-gradient(90deg, #082232ef, #082232c8), url('/site-assets/img/foto-reception.webp') 68% center / cover; }
  .module-thumbnails { gap: 12px; }
  .module-thumbnail { height: 110px; }
  .module-thumbnail-copy { padding: 18px 15px; }
  .module-thumbnail-copy h3 { font-size: 1.05rem; }
  .module-thumbnail-copy p { font-size: .76rem; }
  .home-app-cards,.home-custom-plans { grid-template-columns: 1fr; }
  .home-pricing .price-card { min-height: 0; padding: 30px; }
  .home-pricing .price-card h3 { font-size: 1.5rem; }
  .home-pricing .plan-price { font-size: 1.8rem; }
  .home-pricing .price-card .btn { padding: 13px 18px; }
  .home-custom-plans { gap: 20px; }
}

/* Header compatto coerente con la composizione navy. */
.site-header { background: #102f45fa; border-bottom-color: #ffffff1a; }
.site-header .brand { color: white; }
.site-header .brand-symbol { background: #1a4961; }
.site-header .site-nav > a { color: #e4eef2; }
.site-header .site-nav > a:hover { color: #8fe5d9; }
.site-header .site-nav > a[aria-current] { box-shadow: 0 2px var(--turquoise); }
.site-header .site-nav .nav-cta { background: var(--turquoise); color: var(--navy-deep); }
.site-header .menu-toggle { background: transparent; border-color: #ffffff50; }
.site-header .menu-toggle span { background: white; }
@media(max-width: 1280px) {
  .site-header .site-nav { background: var(--navy); border-bottom-color: #ffffff25; }
  .site-header .site-nav > a[aria-current] { box-shadow: none; border-left-color: var(--turquoise); }
}

/* Percorsi di ampliamento: dettagli e immagini autentiche nel medesimo sistema visivo. */
.extension-screen { margin: 30px 0; padding: 16px; background: white; border: 1px solid var(--line); border-radius: var(--radius); }
.extension-screen img { width: 100%; }
.extension-screen figcaption { padding-top: 12px; font-size: .8rem; }
.extension-support { background: var(--soft); }
.extension-support .two-col { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 60px; align-items: center; }
#strutture-proprietari { scroll-margin-top: 110px; }
@media (max-width: 950px) { .extension-support .two-col { grid-template-columns: minmax(0,1fr); gap: 30px; } }

/* Informazioni societarie e trattamento dei dati. */
.legal-copy { max-width: 54rem; overflow-wrap: anywhere; }
.legal-copy h2 { margin-top: 2.5rem; margin-bottom: 1rem; }
.footer-bottom nav { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }

/* Tanggo Software: identità luminosa e percorso commerciale integrato. */
:root { --ink:#243b43; --text:#48616a; --navy:#254b55; --navy-deep:#24444d; --teal:#087d79; --turquoise:#c2eee3; --soft:#eff9f6; --paper:#fff; --line:#dcebe6; }
body { background:#fff; }
.site-header { background:#fffffff5; border-bottom-color:var(--line); }
.site-header .brand { color:var(--ink); }
.brand-logo { width:56px; height:56px; object-fit:contain; flex-shrink:0; }
.site-header .site-nav > a { color:var(--ink); }
.site-header .site-nav > a:hover { color:var(--teal); }
.site-header .site-nav .nav-cta,.btn-primary { background:#087d79; color:#fff; border-color:#087d79; box-shadow:0 6px 16px #087d7918; }
.btn-primary:hover,.site-header .site-nav .nav-cta:hover { background:#076965; color:#fff; border-color:#076965; }
.site-header .menu-toggle { background:white; border-color:var(--line); }
.site-header .menu-toggle span { background:var(--ink); }
.hero-stage { background:linear-gradient(115deg,#fff 15%,#f0fbf7 70%,#e4f5ef); color:var(--text); overflow:clip; }
.hero-stage .hero-photo { background:radial-gradient(ellipse at 80% 15%,#d5f1e780,transparent 65%); }
.hero-stage .hero { grid-template-columns:1fr 1fr; min-height:650px; padding-block:80px; gap:55px; }
.hero h1 { color:var(--ink); font-size:clamp(2.5rem,4.2vw,4.3rem); }
.hero h1 em,.hero .eyebrow { color:var(--teal); }
.hero .lead,.hero-note { color:var(--text); }
.btn-light { color:var(--teal); background:#fff; border-color:#a7d4c9; }
.btn-light:hover { background:#eaf7f2; }
.hero-dashboard { min-width:0; position:relative; padding:22px; border-radius:24px; border:1px solid #cde7de; background:#ffffffd9; box-shadow:0 25px 70px #1a6b5415; transform:rotate(-1deg); }
.dashboard-label { display:flex; align-items:center; gap:15px; color:var(--teal); font-weight:700; font-size:.85rem; padding:0 0 20px; }
.dashboard-preview { display:block; border-radius:12px; overflow:hidden; border:1px solid var(--line); }
.dashboard-preview img { width:100%; }
.hero-mini-cards { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; }
.hero-mini-cards a { padding:18px; background:#f0f9f5; border-radius:12px; text-decoration:none; }
.hero-mini-cards a:nth-child(2) { background:#fff6e6; }
.hero-mini-cards span { display:block; font-size:24px; color:var(--teal); }
.hero-mini-cards strong,.hero-mini-cards small { display:block; }
.hero-mini-cards strong { font-size:.9rem; color:var(--ink); }
.hero-mini-cards small { font-size:.72rem; margin-top:4px; }
.dashboard-tour { display:flex; justify-content:space-between; margin-top:18px; color:var(--teal); font-size:.85rem; font-weight:700; text-decoration:none; }
.promise-band { background:#fff; }
.promise-grid { padding-block:24px; }
.module-showcase { background:#f4faf7; }
.module-thumbnails > a { border-radius:18px; box-shadow:0 8px 28px #29584208; }
.module-thumbnail { height:200px; background:#e6f3ed; padding:14px 14px 0; }
.module-thumbnail img { border-radius:8px 8px 0 0; }
.home-pricing { background:linear-gradient(135deg,#fffcf5,#f5faf7); }
.home-support,.max-full-band { background:#edf8f3; color:var(--text); }
.home-support h2,.home-support .eyebrow,.max-full-band h2,.max-full-band h3,.max-full-band .max-price,.max-full-band .eyebrow { color:var(--ink); }
.max-full-band .service-list li { border-color:#c9dfd6; }
.max-full-band .service-list li::before { color:var(--teal); }
.closing-cta { background:linear-gradient(120deg,#e3f5ed,#f6fae9); color:var(--text); border:1px solid #cde6d8; }
.closing-cta h2 { color:var(--ink); }
.price-card.featured { background:#e6f6ee; color:var(--text); border:2px solid #16866e; }
.price-card.featured h3,.featured .plan-price { color:var(--ink); }
.product-introduction .floating-note { background:#e2f4ec; color:var(--ink); }
.product-introduction .note-dot { background:var(--teal); }
.site-footer { background:#f2f7f4; }
.page-hero { padding-bottom:45px; }
@media(max-width:1280px) { .site-header .site-nav { background:#fff; border-bottom-color:var(--line); } }
@media(max-width:950px) { .hero-stage .hero { grid-template-columns:1fr; padding-block:55px; gap:35px; } .hero-dashboard { max-width:680px; width:100%; transform:none; } }
@media(max-width:600px) { .hero-stage .hero { min-height:0; padding-block:42px; } .hero-dashboard { padding:14px; border-radius:18px; } .hero-mini-cards a { padding:12px; } .brand-logo { width:45px; height:45px; } .brand strong { font-size:16px; } .module-thumbnails { grid-template-columns:1fr; } .module-thumbnail { height:220px; } .closing-cta { padding:30px 24px; } }

/* Seconda composizione: testi più leggibili e racconto visivo dell’ospitalità. */
body { font-size:18px; line-height:1.75; }
.container { width:min(calc(100% - 80px),1280px); }
h2 { font-size:clamp(2.1rem,3.4vw,3.4rem); }
h3 { font-size:1.5rem; }
.lead { font-size:1.22rem; line-height:1.75; }
.large-copy { font-size:1.4rem; line-height:1.6; }
.eyebrow { font-size:.82rem; letter-spacing:.12em; }
.btn,.text-link { font-size:1rem; }
.site-nav > a,.site-header .site-nav > a { font-size:14px; }
.brand small { font-size:11px; }
.hero-note,.support-note { font-size:1rem; color:var(--text); }
.promise-grid strong { font-size:1.1rem; }
.promise-grid span { font-size:1rem; }
.editorial-points p,.check-list li,.module-links p,.start-steps li,.pricing-label p,.module-thumbnail-copy p,.feature-grid p,.module-note,.contact-context p,.contact-help p,.contact-details > p { font-size:1.05rem; }
.module-thumbnail-copy h3 { font-size:1.4rem; }
.price-card p,.price-card li,.custom-plan,.home-custom-plans > div { font-size:1rem; }
.home-pricing .price-card { min-height:360px; }
.home-pricing .price-card .btn { font-size:.95rem; padding:13px 16px; }
.home-pricing .plan-price { font-size:1.8rem; }
.hero-mini-cards small { font-size:.9rem; }
.hero-mini-cards strong,.dashboard-label,.dashboard-tour { font-size:1rem; }
.form-field label,.form-field input,.form-field textarea,.form-field select { font-size:1rem; }
.footer-grid > div > a:not(.brand),.footer-grid p,.footer-bottom { font-size:.95rem; }
.closing-cta .eyebrow { color:var(--teal); }
.hospitality-story { display:grid; grid-template-columns:1fr 1.05fr; gap:70px; align-items:center; }
.hospitality-story-image { margin:0; position:relative; }
.hospitality-story-image img { width:100%; aspect-ratio:1.25; object-fit:cover; border-radius:28px 28px 80px 28px; }
.hospitality-story-image figcaption { margin: -35px 24px 0; position:relative; background:#fff; border:1px solid var(--line); padding:20px 25px; border-radius:14px; color:var(--teal); font-size:1rem; font-weight:700; box-shadow:0 12px 35px #224c3910; }
.audience-band { background:#fff9ed; }
.audience-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.audience-cards > a { background:#fff; border:1px solid #eee5d4; border-radius:20px; overflow:hidden; text-decoration:none; transition:transform .2s,box-shadow .2s; }
.audience-cards > a:hover { transform:translateY(-4px); box-shadow:0 16px 40px #73502a12; }
.audience-cards img { width:100%; height:220px; object-fit:cover; object-position:top; }
.audience-cards > a > div { padding:28px; }
.audience-cards h3 { font-size:1.4rem; }
.audience-cards p { font-size:1.05rem; }
.audience-cards span { color:var(--teal); font-weight:700; font-size:1rem; }
.page-hero-visual { display:grid; grid-template-columns:1.1fr 1fr; gap:60px; align-items:center; padding-top:65px; padding-bottom:65px; }
.page-hero-visual h1 { font-size:clamp(2.5rem,4vw,4.2rem); }
.page-hero-figure { margin:0; border:1px solid var(--line); background:#f0f8f3; border-radius:22px; padding:18px; min-width:0; }
.page-hero-figure img { width:100%; height:auto; max-height:380px; object-fit:contain; border-radius:12px; }
.page-hero-figure figcaption { padding:20px 8px 5px; color:var(--teal); font-weight:700; font-size:1rem; line-height:1.5; }
@media(max-width:1100px) { .page-hero-visual { gap:30px; } .hospitality-story { gap:35px; } .audience-cards { gap:18px; } }
@media(max-width:950px) { .page-hero-visual,.hospitality-story { grid-template-columns:1fr; } .page-hero-figure { max-width:700px; } .audience-cards { grid-template-columns:1fr; } .audience-cards > a { display:grid; grid-template-columns: .8fr 1fr; } .audience-cards img { height:100%; min-height:220px; } }
@media(max-width:600px) { body { font-size:17px; } .container { width:calc(100% - 36px); } .section { padding-block:60px; } .lead { font-size:1.12rem; } .large-copy { font-size:1.25rem; } .page-hero-visual { padding-block:40px; gap:25px; } .page-hero-visual h1 { font-size:2.5rem; } .audience-cards > a { display:block; } .audience-cards img { height:210px; min-height:0; } .audience-cards > a > div { padding:24px; } .hero-mini-cards { grid-template-columns:1fr; } .hospitality-story-image img { border-radius:22px; } .hospitality-story-image figcaption { margin:-20px 12px 0; padding:16px; } .module-thumbnail-copy p { font-size:1rem; } .home-pricing .price-card { min-height:0; } }

/* Gerarchia commerciale: proposta, benefici, funzioni, piani e richiesta demo. */
.hero-stage .hero { grid-template-columns:1.05fr 1fr; gap:45px; padding-block:65px; }
.hero-offer { margin-top:24px; padding:20px 24px; border-left:3px solid var(--teal); background:#fff; border-radius:0 14px 14px 0; box-shadow:0 8px 30px #245d4910; }
.hero-offer-title { font-weight:700; font-size:1rem; margin-bottom:12px; color:var(--ink); }
.hero-offer-options { display:grid; gap:12px; }
.hero-offer-options p { margin:0; display:grid; gap:2px; }
.hero-offer-options span { font-size:.9rem; }
.hero-offer-options strong { font-size:1.1rem; color:var(--teal); line-height:1.5; }
.hero-offer > a { display:inline-block; margin-top:12px; font-size:.95rem; color:var(--teal); font-weight:700; }
.hero-offer > small { display:block; margin-top:8px; font-size:.85rem; }
.hero-dashboard { transform:none; padding:22px; }
.dashboard-preview img { min-height:300px; object-fit:contain; background:white; }
.benefits-overview .section-heading { text-align:center; margin-inline:auto; }
.benefit-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; }
.benefit-columns article { padding:26px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.benefit-icon { display:inline-flex; width:50px; height:50px; align-items:center; justify-content:center; border-radius:14px; color:var(--teal); background:#e5f6ef; font-size:1rem; font-weight:700; margin-bottom:24px; }
.benefit-columns .check-list { margin-bottom:0; }
.capabilities-band { background:#f5faf8; }
.capabilities-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.capabilities-grid article { padding:30px; border:1px solid var(--line); background:#fff; border-radius:16px; display:flex; flex-direction:column; align-items:flex-start; }
.capability-number { color:var(--teal); background:#e8f6f0; border-radius:10px; padding:5px 13px; margin-bottom:20px; font-size:.9rem; font-weight:700; }
.capabilities-grid h3 { font-size:1.4rem; }
.capabilities-grid p { font-size:1.05rem; }
.capabilities-grid a { margin-top:auto; color:var(--teal); font-weight:700; font-size:1rem; }
@media(max-width:1280px) { .site-nav > a,.site-header .site-nav > a { font-size:1rem; } }
@media(max-width:950px) { .hero-stage .hero { grid-template-columns:1fr; } .benefit-columns,.capabilities-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; } }
@media(max-width:600px) { .benefit-columns,.capabilities-grid { grid-template-columns:1fr; } .hero-stage .hero { padding-block:40px; } .hero-offer { padding:18px; } .dashboard-preview img { min-height:0; } .capabilities-grid article { padding:25px; } }

/* Proposta locale 26 ottobre: navigazione leggera e fondi neutri. */
:root { --soft:#f5f6f7; --line:#e1e5e8; }
.site-nav > a,.site-header .site-nav > a { font-size:17px; font-weight:400; }
.site-nav { gap:16px; }
.hero-stage { background:#fff; }
.hero-stage .hero-photo { background:none; }
.hero-visual-stack { min-width:0; display:grid; gap:22px; }
.hero-welcome-image { margin:0; overflow:hidden; border-radius:22px; background:#f5f6f7; border:1px solid var(--line); }
.hero-welcome-image img { display:block; width:100%; aspect-ratio:16/9; height:auto; object-fit:cover; }
.hero-welcome-image figcaption { padding:14px 18px; font-size:1rem; color:var(--ink); background:#fff; }
.hero-dashboard { background:#fff; border-color:var(--line); box-shadow:0 16px 45px #243b430d; }
.hero-mini-cards a,.hero-mini-cards a:nth-child(2),.module-thumbnail,.page-hero-figure,
.product-introduction .floating-note,.benefit-icon,.capability-number { background:#f2f4f6; }
.module-showcase,.home-support,.max-full-band,.capabilities-band,.site-footer { background:#f6f7f8; }
.home-pricing { background:#fff; }
.closing-cta { background:#f2f4f6; border-color:var(--line); }
.price-card.featured { background:#fff; }
.hero-stage .btn-light { background:#fff; }
.hero-stage .btn-light:hover { background:#f2f4f6; }
@media(max-width:1280px) { .site-nav > a,.site-header .site-nav > a { font-size:18px; font-weight:400; } }
@media(max-width:600px) { .hero-welcome-image { border-radius:16px; } .hero-welcome-image figcaption { padding:12px 15px; } }

/* Raffinamento locale: token tratti da resources/scss/custom.scss. */
:root {
  --action:#78170c; --action-hover:#601209; --arrival:#24635d;
  --departure:#305685; --departure-hover:#26456a; --gold:#e3b529;
  --action-soft:#fff0ed; --departure-soft:#edf2f8; --gold-soft:#fcf5dd;
  --ink:#2b2b2b; --text:#5d5954; --muted:#716a64;
  --teal:var(--action); --turquoise:var(--action-soft);
  --navy:var(--ink); --navy-deep:var(--ink); --paper:#fff; --soft:#fcfcfb; --line:#e7e2da;
}
body,.hero-stage,.promise-band,.audience-band,.module-showcase,.home-support,.max-full-band,.capabilities-band,.site-footer,.extension-support,.home-pricing,.page-hero { background:#fff; }
.site-footer,.module-showcase,.capabilities-band,.home-support { border-top:1px solid var(--line); }
.site-header .site-nav .nav-cta,.btn-primary { background:var(--action); border-color:var(--action); color:#fff; box-shadow:0 6px 16px #8c1d2c18; }
.site-header .site-nav .nav-cta:hover,.btn-primary:hover { background:var(--action-hover); border-color:var(--action-hover); }
.site-header .site-nav .nav-cta:active,.btn-primary:active { background:var(--action-hover); transform:none; box-shadow:none; }
.btn,.site-header .site-nav .nav-cta { border-radius:8px; }
.btn-outline,.btn-secondary,.btn-light { color:var(--departure); border-color:var(--departure); background:#fff; }
.btn-outline:hover,.btn-secondary:hover,.btn-light:hover,.hero-stage .btn-light:hover { color:#fff; background:var(--departure-hover); border-color:var(--departure-hover); }
.btn-outline:active,.btn-secondary:active,.btn-light:active { background:var(--departure-soft); color:var(--ink); transform:none; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline:3px solid var(--departure); outline-offset:4px; }
.site-header .site-nav > a[aria-current] { box-shadow:0 2px var(--action); }
.text-link:hover,.dashboard-tour:hover,.capabilities-grid a:hover { color:var(--action-hover); text-decoration:underline; }
.hero-stage .hero-photo { background:linear-gradient(90deg,#fffffff7 0%,#fffffff2 38%,#ffffff85 65%,#ffffff26 100%),url('/site-assets/img/foto-reception.webp') center 45% / cover; }
.hero-stage .hero { padding-block:72px; }
.hero-dashboard { transform:none; background:#fffffff2; border-color:var(--line); box-shadow:0 20px 60px #2b2b2b12; }
.hero-offer { border-left-color:var(--gold); box-shadow:0 6px 24px #2b2b2b08; }
.hero-mini-cards a { background:var(--departure-soft); }
.hero-mini-cards a:nth-child(2) { background:var(--gold-soft); }
.hero-mini-cards a:first-child span,.note-dot { color:var(--arrival); }
.note-dot { background:var(--arrival); }
.hero .eyebrow,.hero h1 em { color:var(--action); }
.feature-heading { width:100%; display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:22px; color:var(--departure); }
.feature-icon { width:30px; height:30px; flex-shrink:0; }
.feature-heading .benefit-icon,.feature-heading .capability-number { margin:0; color:var(--action); background:var(--action-soft); }
.benefit-columns article:nth-child(2) .feature-heading,.capabilities-grid article:nth-child(3n+2) .feature-heading { color:var(--arrival); }
.benefit-columns article:nth-child(3) .feature-heading,.capabilities-grid article:nth-child(3n) .feature-heading { color:var(--action); }
.capabilities-grid article { border-top:3px solid var(--departure); }
.capabilities-grid article:nth-child(3n+2) { border-top-color:var(--arrival); }
.capabilities-grid article:nth-child(3n) { border-top-color:var(--gold); }
.price-card.featured { border-color:var(--action); background:#fff; }
.closing-cta { background:#fff; border:1px solid var(--line); border-left:4px solid var(--action); }
.audience-cards > a { border-color:var(--line); }
.audience-cards img { object-position:center; }
.product-introduction .floating-note,.page-hero-figure,.module-thumbnail { background:#fff; }
@media(max-width:950px) {
 .hero-stage .hero-photo { background:linear-gradient(180deg,#ffffffe6 0%,#fffffff5 55%,#fff 100%),url('/site-assets/img/foto-reception.webp') 65% top / auto 640px no-repeat; }
 .hero-stage .hero { padding-block:48px; }
}
@media(max-width:600px) {
 .hero-stage .hero-photo { background:linear-gradient(180deg,#ffffffdc,#fffffff5 45%,#fff 75%),url('/site-assets/img/foto-reception.webp') 58% top / auto 480px no-repeat; }
 .hero-stage .hero { padding-block:40px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } }
/* Dettagli condivisi delle pagine interne. */
.commercial-selection,.custom-plan,.module-note,.important-note,.structures .featured { background:#fff; border-color:var(--line); }
.commercial-selection { border-top:3px solid var(--departure); }
.status-label { color:var(--departure-hover); background:var(--departure-soft); }
.feature-visual { background:var(--departure-soft); }
.development-photo { background:linear-gradient(135deg,transparent 20%,var(--departure-soft) 20%); }
.demo-controls button[aria-selected="true"] { background:var(--action); border-color:var(--action); }

/* Pagine commerciali interne: regole circoscritte, homepage approvata preservata. */
.commercial-interior .interior-hero { position:relative; isolation:isolate; overflow:hidden; background:#fff; }
.commercial-interior .interior-hero-photo { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 48%; }
.commercial-interior .interior-hero::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#fffffff7 0%,#fffffff0 32%,#ffffffb3 51%,#ffffff05 76%); }
.commercial-interior .interior-hero-inner { min-height:610px; display:flex; align-items:center; padding-block:75px; }
.commercial-interior .interior-hero-copy { width:57%; max-width:720px; }
.commercial-interior .interior-hero h1 { font-size:clamp(2.8rem,4.3vw,4.6rem); line-height:1.08; letter-spacing:-.05em; }
.commercial-interior .interior-hero h1 em { color:var(--action); }
.commercial-interior .interior-hero .lead { max-width:580px; font-size:1.16rem; line-height:1.8; }
.commercial-interior .interior-hero .eyebrow { color:var(--action); }
.commercial-interior .interior-hero .actions { gap:22px; }
.interior-ampliamenti .interior-hero-inner { min-height:650px; align-items:flex-end; }
.interior-ampliamenti .interior-hero-copy { border-left:4px solid var(--gold); padding-left:28px; }
.interior-prezzi .interior-hero-inner { min-height:520px; }
.interior-demo .interior-hero-inner { min-height:550px; }
.commercial-interior .interior-jump { padding-block:24px 0; }
.commercial-interior .interior-jump .anchor-nav { margin:0; padding:0 0 24px; border-top:0; border-bottom:1px solid var(--line); gap:10px 22px; }
.commercial-interior .anchor-nav a { background:transparent; border:0; border-radius:0; border-bottom:1px solid var(--line); padding:6px 0; font-size:.9rem; }
.commercial-interior .anchor-nav a:hover { color:var(--action); border-bottom-color:var(--action); }
.commercial-interior .interior-intro { padding-block:72px 32px; max-width:1000px; text-align:center; }
.commercial-interior .interior-intro h2 { font-size:clamp(2rem,3vw,3rem); }
.commercial-interior .editorial-module { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:80px; border-top:0; align-items:start; padding-block:64px; }
.commercial-interior .editorial-reverse { grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); }
.commercial-interior .editorial-reverse .editorial-aside { order:2; }
.commercial-interior .editorial-module h2 { font-size:clamp(2rem,2.9vw,3rem); line-height:1.16; }
.commercial-interior .module-index { display:flex; align-items:center; gap:18px; font-size:2.8rem; margin-bottom:24px; color:var(--action); }
.commercial-interior .module-index span { margin:0; font-size:1rem; letter-spacing:0; }
.commercial-interior .editorial-visual { margin:0; }
.commercial-interior .editorial-visual img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:22px; }
.commercial-interior .editorial-visual img[src*="prodotto-"] { object-fit:contain; background:#f6f8f8; padding:14px; border:1px solid var(--line); }
.commercial-interior .editorial-visual figcaption { font-size:.75rem; color:var(--muted); padding:12px 4px; }
.commercial-interior .editorial-module:nth-of-type(3n) .module-index { color:var(--arrival); }
.commercial-interior .editorial-module:nth-of-type(3n+1) .module-index { color:var(--departure); }
.commercial-interior .editorial-details { border-block:1px solid var(--line); margin-top:24px; }
.commercial-interior .editorial-details + .editorial-details { border-top:0; margin-top:0; }
.commercial-interior .editorial-details summary { padding:18px 0; color:var(--action); font-weight:600; cursor:pointer; }
.commercial-interior .editorial-details .module-use-case { margin:0; padding:8px 0 22px; border:0; }
.commercial-interior .editorial-details .module-use-case h3 { font-size:.8rem; }
.commercial-interior .editorial-details .module-use-case p { font-size:1rem; }
.commercial-interior .module-note { border-left-color:var(--gold); padding:10px 0 10px 18px; font-size:.95rem; }
.commercial-interior .offer-guide { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:50px; padding-block:45px; border-bottom:1px solid var(--line); }
.commercial-interior .offer-guide span { color:var(--action); font-weight:600; }
.commercial-interior .offer-guide > div:nth-child(2) span { color:var(--arrival); }
.commercial-interior .offer-guide > div:nth-child(3) span { color:var(--departure); }
.commercial-interior .offer-guide p { margin:12px 0 0; font-size:1rem; }
.interior-prezzi .price-card { border-radius:18px; box-shadow:0 14px 40px #2b2b2b08; border-top:4px solid var(--departure); }
.interior-prezzi .price-card[data-plan="duo"] { border-top-color:var(--arrival); }
.interior-prezzi .price-card.featured { border-top-color:var(--action); }
.interior-prezzi .pricing-label { border-top:0; }
.interior-prezzi .pricing-group { margin-top:40px; }
.interior-prezzi .custom-plan { border-radius:14px; background:#fbf9f6; }
.interior-prezzi .max-full-band { background:linear-gradient(120deg,#fff,#faf5e9); }
.interior-demo .demo-request { padding-top:65px; align-items:start; }
.interior-demo .demo-request .contact-details { position:sticky; top:120px; }
.interior-demo .demo-request .contact-form-card { border-top:4px solid var(--action); border-radius:20px; box-shadow:0 20px 60px #2b2b2b0b; }
.interior-demo #demo-interattiva { border-top:1px solid var(--line); }
@media(max-width:1100px) {
 .commercial-interior .interior-hero-copy { width:65%; }
 .commercial-interior .editorial-module { gap:40px; }
}
@media(max-width:800px) {
 .commercial-interior .interior-hero-inner { min-height:630px; padding-block:260px 42px; align-items:flex-end; }
 .commercial-interior .interior-hero-photo { height:380px; object-position:72% 42%; }
 .commercial-interior .interior-hero::before { background:linear-gradient(180deg,#ffffff00 0,#ffffff12 150px,#ffffffed 300px,#fff 410px); }
 .commercial-interior .interior-hero-copy { width:100%; max-width:none; }
 .commercial-interior .interior-hero h1 { max-width:650px; font-size:3.2rem; }
 .interior-ampliamenti .interior-hero-copy { padding-left:20px; }
 .commercial-interior .editorial-module,.commercial-interior .editorial-reverse { grid-template-columns:minmax(0,1fr); gap:26px; padding-block:40px; }
 .commercial-interior .editorial-reverse .editorial-aside { order:0; }
 .commercial-interior .editorial-visual img { aspect-ratio:16/9; }
 .commercial-interior .interior-intro { text-align:left; padding-block:50px 20px; }
 .commercial-interior .offer-guide { gap:24px; }
 .interior-demo .demo-request .contact-details { position:static; }
}
@media(max-width:600px) {
 .commercial-interior .interior-hero h1 { font-size:2.6rem; }
 .commercial-interior .interior-hero .lead { font-size:1.05rem; }
 .commercial-interior .interior-hero-inner { min-height:640px; padding-block:230px 36px; }
 .commercial-interior .interior-hero .actions { align-items:flex-start; gap:18px; }
 .commercial-interior .offer-guide { grid-template-columns:1fr; padding-block:32px; gap:24px; }
 .commercial-interior .module-index { font-size:2.2rem; }
 .commercial-interior .editorial-visual img { aspect-ratio:4/3; }
 .commercial-interior .interior-jump .anchor-nav { gap:8px 18px; }
 .commercial-interior .anchor-nav a { font-size:.84rem; }
}
.commercial-interior .module-index .feature-icon { width:28px; height:28px; flex-shrink:0; }
.interior-prezzi .price-card.featured .plan-name { color:var(--action); }
.interior-prezzi .price-card .plan-price { font-size:clamp(1.35rem,1.9vw,1.8rem); line-height:1.4; }

/* Homepage: dal prodotto ai vantaggi, nel linguaggio visivo approvato. */
.home-product-story .hero-stage .hero { grid-template-columns:1.1fr 1fr; gap:55px; align-items:start; padding-block:62px; }
.home-product-story .hero h1 { font-size:clamp(2.2rem,3.25vw,3.45rem); line-height:1.13; letter-spacing:-.045em; }
.home-product-story .hero .lead { font-size:1.08rem; line-height:1.75; }
.home-product-story .hero .actions { margin-block:28px 22px; }
.home-product-story .hero-benefit { padding:22px; border-left:3px solid var(--gold); border-radius:0 12px 12px 0; background:#fffffff5; }
.home-product-story .hero-benefit-title { font-size:clamp(1.3rem,1.8vw,1.65rem); color:var(--action); line-height:1.35; font-weight:700; letter-spacing:-.025em; margin-bottom:16px; }
.home-product-story .hero-benefit > p:last-child { font-size:1.02rem; line-height:1.7; margin-bottom:0; }
.home-product-story .hero-visual-stack { gap:28px; }
.home-product-story .hero-dashboard { box-shadow:0 15px 45px #2b2b2b0d; }
.home-product-story .home-practical .benefit-columns article { border:0; border-radius:0; border-top:3px solid var(--departure); padding:24px 0 0; }
.home-product-story .home-practical .benefit-columns article:nth-child(2) { border-top-color:var(--arrival); }
.home-product-story .home-practical .benefit-columns article:nth-child(3) { border-top-color:var(--gold); }
.home-product-story .home-practical .benefit-columns p { font-size:1.05rem; }
.home-product-story .home-context-note { max-width:880px; margin:34px 0 12px; font-size:1rem; }
.home-product-story .home-workflow { border-top:1px solid var(--line); padding-bottom:35px; }
.home-product-story .home-workflow .split-feature { align-items:center; gap:70px; }
.home-product-story .workflow-screen img { max-height:600px; object-fit:contain; }
.home-product-story .work-benefit { padding-block:24px; border-top:1px solid var(--line); }
.home-product-story .work-benefit:first-child { padding-top:0; border-top:0; }
.home-product-story .work-benefit-heading { display:flex; align-items:flex-start; gap:16px; margin-bottom:18px; }
.home-product-story .work-benefit-heading .feature-icon { color:var(--departure); width:28px; height:28px; margin-top:3px; }
.home-product-story .work-benefit-heading h3 { font-size:clamp(1.4rem,1.9vw,1.8rem); margin:0; line-height:1.2; }
.home-product-story .work-benefit p { font-size:1.05rem; line-height:1.75; margin-bottom:16px; }
.home-product-story .work-benefit-result { color:var(--arrival); font-weight:600; }
.home-product-story .home-returning { padding-top:60px; padding-bottom:45px; align-items:center; }
.home-product-story .home-returning .hospitality-story-image img { aspect-ratio:4/5; max-height:800px; object-fit:cover; }
.home-product-story .archive-intro { padding-bottom:26px; margin-bottom:32px; border-bottom:1px solid var(--line); }
.home-product-story .archive-intro p { font-size:1.02rem; line-height:1.75; margin-bottom:12px; }
.home-product-story .returning-steps { list-style:none; padding:0; margin:26px 0; display:flex; gap:16px; }
.home-product-story .returning-steps li { flex:1; font-size:.94rem; line-height:1.45; padding-top:16px; border-top:2px solid var(--gold); color:var(--ink); }
.home-product-story .returning-steps .feature-icon { display:block; width:24px; height:24px; color:var(--action); margin-bottom:12px; }
.home-product-story .returning-demo { display:block; margin-top:16px; }
.home-product-story .home-work-overview { padding-block:55px 75px; }
.home-product-story .home-work-overview > .hero-visual { order:-1; }
.home-product-story .home-day-summary { border-block:1px solid var(--line); }
.home-product-story .home-day-summary .section { padding-block:65px; }
.home-product-story .day-summary-list { list-style:none; padding:0; margin:0 0 30px; display:grid; grid-template-columns:1fr 1fr; gap:18px 50px; }
.home-product-story .day-summary-list li { padding-left:22px; border-left:3px solid var(--gold); font-size:1.05rem; line-height:1.65; }
.home-product-story .day-summary-list strong { color:var(--ink); }
.home-product-story .home-day-summary .large-copy { max-width:900px; margin-bottom:0; }
@media(max-width:1100px) {
 .home-product-story .hero-stage .hero { gap:32px; }
 .home-product-story .home-workflow .split-feature { gap:40px; }
}
@media(max-width:950px) {
 .home-product-story .hero-stage .hero { grid-template-columns:1fr; gap:32px; padding-block:44px; }
 .home-product-story .hero h1 { max-width:780px; font-size:clamp(2.2rem,5vw,3.5rem); }
 .home-product-story .hero .lead { max-width:760px; }
 .home-product-story .hero-visual-stack { display:grid; grid-template-columns:.9fr 1.1fr; align-items:start; gap:28px; }
 .home-product-story .dashboard-preview img { min-height:0; }
 .home-product-story .home-practical .benefit-columns { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
 .home-product-story .home-work-overview > .hero-visual { order:0; }
 .home-product-story .home-returning .hospitality-story-image img { aspect-ratio:16/10; max-height:500px; }
}
@media(max-width:600px) {
 .home-product-story .hero h1 { font-size:2.15rem; line-height:1.15; }
 .home-product-story .hero .lead { font-size:1.03rem; line-height:1.7; }
 .home-product-story .hero .hero-note { font-size:.88rem; }
 .home-product-story .hero-visual-stack { grid-template-columns:1fr; gap:28px; }
 .home-product-story .hero-benefit { padding-left:18px; }
 .home-product-story .hero-benefit-title { font-size:1.42rem; }
 .home-product-story .home-practical .benefit-columns { grid-template-columns:1fr; gap:30px; }
 .home-product-story .home-practical .feature-heading { margin-bottom:15px; }
 .home-product-story .home-workflow .split-feature { gap:32px; }
 .home-product-story .work-benefit-heading h3 { font-size:1.45rem; }
 .home-product-story .returning-steps { flex-direction:column; gap:14px; }
 .home-product-story .returning-steps li { display:flex; align-items:center; gap:14px; padding-top:14px; }
 .home-product-story .returning-steps .feature-icon { margin:0; flex-shrink:0; }
 .home-product-story .home-returning { padding-top:40px; padding-bottom:35px; }
 .home-product-story .home-returning .hospitality-story-image img { aspect-ratio:4/3; }
 .home-product-story .home-work-overview { padding-block:35px 55px; }
 .home-product-story .day-summary-list { grid-template-columns:1fr; gap:18px; }
 .home-product-story .home-day-summary .section { padding-block:50px; }
}

/* Percorso dell’ospite: immagine integrale e tappe leggibili a ogni larghezza. */
.guest-journey-figure { margin:0 0 32px; }
.guest-journey-figure img { width:100%; height:auto; object-fit:contain; }
.guest-journey-figure figcaption { font-size:.9rem; margin-top:16px; }
.guest-journey-steps { list-style:none; padding:0; margin:32px 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px 32px; counter-reset:journey; }
.guest-journey-steps li { counter-increment:journey; border-top:2px solid var(--line); padding-top:18px; }
.guest-journey-steps li::before { content:counter(journey,decimal-leading-zero); display:block; color:var(--action); font-weight:700; margin-bottom:12px; }
.guest-journey-steps h3 { font-size:1.2rem; letter-spacing:-.02em; margin-bottom:10px; }
.guest-journey-steps p,.function-detail { font-size:.95rem; }
.function-detail { margin-block:20px; }
@media(max-width:950px) { .guest-journey-steps { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .guest-journey-steps { grid-template-columns:1fr; gap:20px; } }

/* Contatto commerciale: tre percorsi e un unico modulo. */
.commercial-contact-page .contact-hero { padding-bottom:56px; }
.contact-paths { padding-block:32px 72px; }
.contact-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.contact-options article { display:flex; flex-direction:column; padding:30px; border:1px solid var(--line); border-top:3px solid var(--departure); border-radius:var(--radius); background:#fff; }
.contact-options article:nth-child(2) { border-top-color:var(--arrival); }
.contact-options article:nth-child(3) { border-top-color:var(--gold); }
.contact-options article.is-selected { border-color:var(--action); }
.contact-option-number { color:var(--action); font-weight:700; margin-bottom:22px; }
.contact-options h3 { font-size:1.5rem; }
.contact-options p { font-size:.95rem; }
.contact-options .btn { margin-top:auto; align-self:flex-start; gap:10px; }
.commercial-contact-page .contact-layout { padding-bottom:90px; align-items:start; }
.commercial-contact-page .contact-form-heading h2 { font-size:2rem; }
.commercial-contact-page .contact-form-card { padding:36px; }
.commercial-contact-page .field-hint,.commercial-contact-page .form-field small { font-size:.85rem; line-height:1.6; margin:6px 0 0; color:var(--muted); }
.commercial-contact-page .contact-group-hint { margin:0; color:var(--arrival); }
.commercial-contact-page .commercial-selection { margin-top:28px; }
.commercial-contact-page select { min-height:48px; }
@media(max-width:950px) { .contact-options { grid-template-columns:1fr; } .contact-options article { padding:26px; } }
@media(max-width:600px) { .commercial-contact-page .contact-form-card { padding:24px 18px; } .contact-paths { padding-block:16px 48px; } }

/* Stesso componente Select2 del gestionale, con i colori del sito pubblico. */
.select2-container--default .select2-selection--single { min-height:48px; height:auto; padding:11px 36px 11px 12px; display:flex; align-items:center; background:#fff; border:1px solid #bfcfd6; border-radius:6px; }
.select2-container--default .select2-selection--single .select2-selection__rendered { padding:0; line-height:1.5; white-space:normal; overflow-wrap:anywhere; color:var(--navy); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height:100%; right:10px; }
.select2-container--open .select2-selection--single { border-color:var(--teal); box-shadow:0 0 0 3px rgba(78,116,140,.16); }
.select2-dropdown { border-radius:6px; border-color:#bfcfd6; box-shadow:0 12px 28px rgba(25,46,57,.16); overflow:hidden; }
.select2-results__option { padding:12px; line-height:1.45; min-height:44px; overflow-wrap:anywhere; }
.select2-container--default .select2-results__option--selected { background:#e8eff3; color:var(--navy); }
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background:var(--teal); color:#fff; }
.select2-selection[aria-invalid="true"] { border-color:var(--action); }
.form-field:has(.select2-container) { cursor:default; }
/* Spazio finale per il contatto flottante, anche con le aree sicure del telefono. */
.site-footer { padding-bottom:calc(90px + env(safe-area-inset-bottom, 0px)); }
.whatsapp-contact { position:fixed; z-index:60; right:max(20px, env(safe-area-inset-right, 0px)); bottom:calc(20px + env(safe-area-inset-bottom, 0px) + var(--whatsapp-lift, 0px)); display:flex; align-items:center; gap:10px; min-height:54px; padding:14px 18px; color:#fff; background:var(--arrival); border:1px solid rgba(255,255,255,.4); border-radius:999px; box-shadow:0 5px 20px rgba(25,46,57,.2); text-decoration:none; font-size:.85rem; font-weight:700; }
.whatsapp-contact svg { width:25px; height:25px; flex:none; }
.whatsapp-contact:hover { color:#fff; background:#256346; }
.whatsapp-contact:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
body.menu-open .whatsapp-contact, body:has([data-contact-confirm]:not([hidden])) .whatsapp-contact { visibility:hidden; }
@media (max-width:767px) {
  .whatsapp-contact { right:16px; bottom:calc(16px + env(safe-area-inset-bottom, 0px) + var(--whatsapp-lift, 0px)); padding:14px; min-height:54px; }
  .whatsapp-contact span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .form-field input, .form-field textarea, .select2-container, .select2-dropdown { font-size:16px; }
  body:has([data-demo-form] :focus) .whatsapp-contact { visibility:hidden; }
}

/* Il contenitore del menu è posizionato da Select2: non estenderlo alla pagina. */
body > .select2-container--open { width:auto !important; max-width:calc(100vw - 32px); }
body:has(> .select2-container--open) .whatsapp-contact { visibility:hidden; }

.whatsapp-contact.is-obscured { visibility:hidden; }
.commercial-contact-page .whatsapp-contact { padding:14px; }
.commercial-contact-page .whatsapp-contact span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }

/* Contatto WhatsApp: sola icona, dimensione uniforme. */
.whatsapp-contact { width:64px; height:64px; min-height:64px; padding:14px; justify-content:center; }
.whatsapp-contact svg { width:34px; height:34px; }
.whatsapp-contact span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }

/* Allineamento alla UI condivisa Tango: il sito conserva struttura e contenuti. */
:root {
  --tango-wine:#78170c; --tango-teal:#24635d; --tango-blue:#305685;
  --tango-gold:#e3b529; --tango-surface:#fff; --tango-surface-soft:#fcfcfb;
  --radius:10px;
}
body { font-family:"Open Sans",Arial,Helvetica,sans-serif; background:var(--tango-surface); }
h1,h2,h3,.brand strong { font-weight:600; letter-spacing:-.025em; }
.site-header { border-bottom-color:var(--line); background:#fffffff5; }
.site-header .site-nav { gap:10px; }
.site-nav > a,.site-header .site-nav > a { font-weight:400; }
.site-header .site-nav > a:not(.nav-cta) { border-radius:7px; padding:10px 8px; }
.site-header .site-nav > a:not(.nav-cta):hover { color:#fff; background:var(--tango-teal); }
.site-header .site-nav > a[aria-current] { color:var(--tango-blue); background:var(--departure-soft); box-shadow:inset 0 -2px var(--tango-blue); }
.btn,.site-header .site-nav .nav-cta,.demo-controls button {
  min-height:44px; border-radius:7px; font-weight:600; line-height:1.5;
  box-shadow:none; transform:none;
  transition:background-color .16s ease,color .16s ease,border-color .16s ease;
}
.btn:hover,.site-header .site-nav .nav-cta:hover { transform:none; box-shadow:none; }
.btn-primary,.site-header .site-nav .nav-cta { color:#fff; background:var(--tango-wine); border-color:var(--tango-wine); box-shadow:none; }
.btn-primary:hover,.site-header .site-nav .nav-cta:hover { color:#fff; background:var(--tango-teal); border-color:var(--tango-teal); }
.btn-outline,.btn-secondary,.btn-light { color:var(--tango-blue); border-color:#bbcadd; background:var(--departure-soft); }
.btn-outline:hover,.btn-secondary:hover,.btn-light:hover,.hero-stage .btn-light:hover { color:#fff; background:var(--tango-teal); border-color:var(--tango-teal); }
.demo-controls button:hover { color:#fff; background:var(--tango-teal); border-color:var(--tango-teal); }
.demo-controls button[aria-selected="true"],.demo-controls button[aria-selected="true"]:hover { color:#fff; background:var(--tango-blue); border-color:var(--tango-blue); box-shadow:inset 0 -3px #ffffff66; }
.feature-icon { stroke-width:1; fill:none; }
.hero-dashboard,.product-shot,.demo-screen,.page-hero-figure,.audience-cards > a,.module-thumbnails > a,.contact-options article,.contact-form-card,.price-card {
  border-color:var(--line); border-radius:10px; box-shadow:none;
}
.hero-dashboard { transform:none; background:#fff; }
.hero-product-screen { transform:none; }
.shot-bar,.form-summary,.status-label { background:var(--departure-soft); color:var(--tango-blue); }
.hero-mini-cards a { background:var(--departure-soft); border:1px solid #dce5ef; border-radius:7px; }
.hero-mini-cards a:nth-child(2) { background:#edf5f3; border-color:#dce9e4; }
.audience-cards > a:hover,.module-thumbnails > a:hover { transform:none; box-shadow:none; border-color:var(--tango-teal); }
.home-pricing .price-card,.interior-prezzi .price-card { border-radius:10px; box-shadow:none; }
.price-card.featured { border-color:var(--tango-wine); }
.form-field input,.form-field select,.form-field textarea,.select2-container .select2-selection { border-color:var(--line); border-radius:7px; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { border-color:#78170c59; box-shadow:0 0 0 3px #78170c1f; }
.site-footer,.module-showcase,.home-support,.max-full-band,.home-pricing,.extension-support { background:var(--tango-surface-soft); }
body { scrollbar-color:#ba9692 #fcfbfb; }
body::-webkit-scrollbar { width:6px; }
body::-webkit-scrollbar-track { background:#fcfbfb; }
body::-webkit-scrollbar-thumb { background:#ba9692; border-radius:99px; }
@media(max-width:1280px) {
  .site-header .site-nav { background:#fff; }
  .site-header .site-nav > a:not(.nav-cta) { padding:12px; }
}
@media(prefers-reduced-motion:reduce) { .btn,.site-header .site-nav .nav-cta,.demo-controls button { transition:none; } }

.site-header .site-nav > a[aria-current]:not(.nav-cta):hover { color:var(--tango-blue); background:var(--departure-soft); }

/* Revisione commerciale: ritmo, leggibilità e ancore del sito pubblico. */
.public-screens { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:28px 0; }
.public-screens a { color:inherit; text-decoration:none; min-width:0; }
.public-screens img { width:100%; height:auto; aspect-ratio:1.55; object-fit:contain; background:#f6f3ef; }
.availability-note { border-left:3px solid var(--action); padding:20px 24px; background:#f8f5f1; margin:24px 0; }
.availability-note p:last-child { margin-bottom:0; }
#demo, [id] { scroll-margin-top:110px; }
.field-error { display:block; color:#9c241c; font-size:.88rem; margin-top:6px; }
[aria-invalid="true"] { outline:2px solid #9c241c; outline-offset:2px; }
.home-product-story .hero-copy h1 { font-size:clamp(2.15rem,3.7vw,3.9rem); line-height:1.12; }
.site-nav { gap:clamp(10px,1.2vw,22px); }
@media(max-width:600px) { .public-screens { grid-template-columns:1fr; } .availability-note { padding:18px; } .home-product-story .hero-copy h1 { font-size:2.15rem; } }

.benefit-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.benefit-grid article { border-top:2px solid #d8b7ad; padding-top:20px; min-width:0; }
@media(max-width:767px) { .benefit-grid { grid-template-columns:1fr; gap:22px; } }

.whatsapp-contact:focus-visible { outline-color:var(--action); }

.conditions-section { padding-block:24px; }
