
:root {
  --navy:#061c3b; --navy-2:#03172f; --blue:#0878f9; --blue-2:#0869ec;
  --green:#05bf70; --ink:#071d3c; --muted:#5d6f86; --line:#e5edf7;
  --soft:#f5f9fe; --white:#fff; --radius:18px;
  --shadow:0 14px 38px rgba(5,31,66,.08);
  --shell:1320px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0; color:var(--ink); background:#fff; line-height:1.55;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; height:auto; }
button,input,select,textarea { font:inherit; }
.shell { width:min(var(--shell),calc(100% - 56px)); margin-inline:auto; }

/* Header */
.site-header {
  height:72px; background:rgba(255,255,255,.97); border-bottom:1px solid #edf2f8;
  position:sticky; top:0; z-index:50; backdrop-filter:blur(12px);
}
.nav-wrap { height:100%; display:flex; align-items:center; gap:30px; }
.brand { width:184px; flex:0 0 184px; display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
.brand img { width:176px; height:auto; }
.brand-payoff { margin-left:8px; color:#60728a; font-size:7.5px; line-height:1.15; font-weight:800; letter-spacing:.12em; white-space:nowrap; }
.nav { display:flex; align-items:center; gap:30px; margin-left:auto; font-size:14px; font-weight:700; }
.nav a { padding:26px 0 22px; position:relative; }
.nav a.active::after {
  content:""; position:absolute; left:0; right:0; bottom:14px; height:2px;
  background:var(--blue); border-radius:2px;
}
.nav-actions { display:flex; gap:10px; }
.nav-toggle { display:none; background:none; border:0; padding:8px; }
.nav-toggle span { display:block; width:23px; height:2px; background:var(--ink); margin:5px; }

/* Buttons */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:44px; padding:0 20px; border-radius:9px; font-weight:800; font-size:14px;
  border:1px solid transparent; transition:transform .18s ease,box-shadow .18s ease;
  cursor:pointer;
}
.btn:hover { transform:translateY(-1px); }
.btn-primary {
  color:#fff; background:linear-gradient(135deg,#0c80ff,#0869ec);
  box-shadow:0 8px 20px rgba(8,120,249,.18);
}
.btn-soft { background:#eff6ff; color:#075ec7; }
.btn-outline { border-color:#1680ff; color:#0874ee; background:#fff; }

/* Shared hero
   One geometry for every page. The approved artwork is positioned in a
   dedicated visual region and is never cropped or stretched. */
.hero {
  position:relative;
  overflow:hidden;
  background:#fff;
  border-bottom:1px solid #eef3f8;
}
.hero-shell {
  position:relative;
  min-height:500px;
  display:flex;
  align-items:center;
}
.hero-copy {
  position:relative;
  z-index:2;
  width:46%;
  max-width:610px;
  padding:58px 0;
}
.hero-visual {
  position:absolute;
  z-index:1;
  top:0;
  right:0;
  bottom:0;
  width:58%;
  pointer-events:none;
  overflow:hidden;
}
.hero-visual::before {
  content:"";
  position:absolute;
  z-index:2;
  inset:0 auto 0 0;
  width:22%;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.92) 30%,rgba(255,255,255,0) 100%);
  pointer-events:none;
}
.hero-visual img {
  position:absolute;
  right:0;
  top:50%;
  width:100%;
  height:auto;
  max-width:none;
  transform:translateY(-50%);
  object-fit:initial;
}
.eyebrow {
  display:block;
  color:#0676f5;
  font-size:11px;
  line-height:1.2;
  font-weight:900;
  letter-spacing:.16em;
  margin-bottom:15px;
}
.hero h1 {
  margin:0 0 15px;
  max-width:610px;
  font-size:48px;
  line-height:1.02;
  letter-spacing:-.042em;
}
.hero h1 em { color:var(--blue); font-style:normal; }
.hero-copy > p {
  margin:0 0 24px;
  max-width:570px;
  color:#43566e;
  font-size:16px;
}
.hero-actions { display:flex; gap:10px; }
.hero-benefits {
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  margin-top:25px;
  font-size:11px;
  font-weight:700;
  color:#496079;
}

/* Same external geometry on all pages; only copy width can vary slightly. */
.hero-home .hero-copy,
.hero-funzionalita .hero-copy,
.hero-prezzi .hero-copy { width:46%; }
.hero-faq .hero-copy,
.hero-contatti .hero-copy { width:44%; }

/* Sections */
.section { position:relative; padding:64px 0; overflow:hidden; }
.section-heading { max-width:720px; margin-bottom:30px; }
.section-heading.center { margin-inline:auto; text-align:center; }
.section-heading p,.split-section p,.feature-text p { color:var(--muted); }
.section h2 { margin:0 0 14px; font-size:38px; line-height:1.08; letter-spacing:-.035em; }
.center { text-align:center; }
.cards { display:grid; gap:16px; }
.cards.four { grid-template-columns:repeat(4,1fr); }
.cards.six { grid-template-columns:repeat(6,1fr); }
.ui-icon { width:34px; height:34px; object-fit:contain; }
.feature-card,.compact article,.contact-cards article {
  background:rgba(255,255,255,.94); border:1px solid var(--line); border-radius:16px; padding:22px; box-shadow:var(--shadow);
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.feature-card:hover,.compact article:hover,.contact-cards article:hover {
  transform:translateY(-4px); border-color:#cfe3fb; box-shadow:0 18px 42px rgba(5,31,66,.11);
}
.feature-card h3,.compact h3,.contact-cards h3 { margin:12px 0 7px; font-size:18px; line-height:1.25; }
.feature-card p,.compact p,.contact-cards p { margin:0; color:var(--muted); font-size:14.5px; line-height:1.55; }
.intro { padding-top:60px; }
.intro .center:last-child { margin-top:24px; }
.split { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:58px; align-items:center; }
.split-section {
  background:
    radial-gradient(circle at 88% 18%,rgba(5,191,112,.10),transparent 25%),
    radial-gradient(circle at 8% 82%,rgba(8,120,249,.10),transparent 28%),
    linear-gradient(135deg,#f7fbff 0%,#f2f9ff 52%,#f5fff9 100%);
}
.split-section img,.feature-image img { border-radius:20px; box-shadow:var(--shadow); }
.store-row { display:flex; gap:10px; margin-top:22px; }
.store-row span { background:#050505; color:#fff; border-radius:8px; padding:9px 15px; font-size:13px; font-weight:800; }
.reasons {
  background:
    radial-gradient(circle at 50% -20%,rgba(8,120,249,.10),transparent 36%),
    linear-gradient(180deg,#fff 0%,#f8fbff 100%);
}
.reasons .section-heading { margin-left:auto; margin-right:auto; text-align:center; }
.reasons .compact { margin-top:26px; }
.compact article { text-align:center; }
.compact .ui-icon { margin:0 auto; }

/* Features */
.feature-tabs {
  padding:18px 0 24px; border-bottom:1px solid var(--line);
  background:linear-gradient(90deg,#f8fbff 0%,#f3f9ff 50%,#f5fff9 100%);
}
.feature-tabs a {
  min-height:92px; display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:#f6faff; border:1px solid #edf3fa; border-radius:14px; padding:14px 8px;
}
.feature-tabs a img { width:31px; height:31px; }
.feature-tabs span { display:block; margin-top:7px; color:var(--ink); font-size:12px; font-weight:800; }
.feature-row { padding:58px 0; background:#fff; }
.feature-row:nth-of-type(even) {
  background:linear-gradient(115deg,#f6faff 0%,#f9fcff 55%,#f5fff9 100%);
}
.feature-row.reverse .feature-image { order:2; }
.feature-text ul,.price-card ul { list-style:none; padding:0; margin:20px 0 0; }
.feature-text li { margin:9px 0; color:#2d4868; font-size:15px; line-height:1.5; }

/* Pricing */
.pricing {
  background:
    radial-gradient(circle at 12% 8%,rgba(8,120,249,.09),transparent 25%),
    radial-gradient(circle at 88% 32%,rgba(5,191,112,.08),transparent 25%),
    #fbfdff;
}
.billing-switch {
  display:flex; width:max-content; margin:0 auto 28px; padding:5px; gap:4px;
  background:#eef5fd; border-radius:999px;
}
.billing-switch button {
  border:0; background:transparent; padding:9px 21px; border-radius:999px;
  color:#315170; font-size:13px; font-weight:800; cursor:pointer;
}
.billing-switch button.active { color:#fff; background:var(--blue); box-shadow:0 7px 18px rgba(8,120,249,.20); }
.price-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; }
.price-card {
  position:relative; padding:25px; background:rgba(255,255,255,.96); border:1px solid var(--line);
  border-radius:16px; box-shadow:0 8px 28px rgba(5,31,66,.04);
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,opacity .22s ease;
}
.price-card.featured { border-color:#9fcaff; }
.price-card.is-selected {
  transform:translateY(-7px); border:2px solid var(--blue);
  box-shadow:0 20px 48px rgba(8,120,249,.15);
}
.price-card:not(.is-selected) { opacity:1; }
.price { margin:17px 0 0; font-size:33px; font-weight:900; letter-spacing:-.03em; }
.price small { color:var(--muted); font-size:12px; font-weight:500; }
.price-card > p { color:var(--muted); font-size:14px; }
.price-card li { margin:8px 0; font-size:14px; }
.price-card .btn { width:100%; margin-top:10px; }
.included { margin-top:28px; padding:24px; background:#fff; border:1px solid var(--line); border-radius:18px; }
.included h2 { margin-bottom:2px; font-size:27px; }
.included > p { color:var(--muted); font-size:14px; }
.included-table > div {
  display:grid; grid-template-columns:2fr repeat(4,1fr); padding:7px 10px;
  border-top:1px solid #edf2f7; font-size:13.5px;
}
.included-table b { color:var(--green); text-align:center; }
.section-title-row { display:flex; align-items:end; justify-content:space-between; }
.section-title-row h2 { margin-bottom:3px; font-size:29px; }
.section-title-row p { color:var(--muted); }
.section-title-row > a { color:var(--blue); font-weight:800; }

/* FAQ */
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px 16px; }
.faq-grid details { background:#fff; border:1px solid var(--line); border-radius:9px; }
.faq-grid summary {
  position:relative; padding:16px 46px 16px 18px; cursor:pointer; list-style:none;
  font-size:13px; font-weight:800;
}
.faq-grid summary::after { content:"+"; position:absolute; right:14px; color:var(--blue); font-size:19px; }
.faq-grid details[open] summary::after { content:"−"; }
.faq-grid details p { margin:0; padding:0 18px 18px; color:var(--muted); font-size:15px; line-height:1.6; }
.faq-page {
  background:
    radial-gradient(circle at 8% 12%,rgba(8,120,249,.08),transparent 24%),
    radial-gradient(circle at 92% 65%,rgba(5,191,112,.07),transparent 22%),
    #fbfdff;
}
.faq-cats { display:grid; grid-template-columns:repeat(6,1fr); gap:9px; margin-bottom:34px; }
.faq-cats a { padding:13px 9px; background:#f1f6fc; border:1px solid transparent; border-radius:10px; text-align:center; font-size:13px; font-weight:800; transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease; }
.faq-cats a.is-active { color:#fff; background:var(--blue); border-color:var(--blue); box-shadow:0 8px 20px rgba(8,120,249,.16); }
.faq-group { margin-bottom:34px; }
.faq-group h2 { margin-bottom:13px; font-size:23px; }

/* Contact */
.contact-page {
  background:
    radial-gradient(circle at 14% 8%,rgba(126,82,255,.07),transparent 22%),
    radial-gradient(circle at 88% 18%,rgba(5,191,112,.08),transparent 24%),
    linear-gradient(180deg,#fff 0%,#f8fbff 100%);
}
.contact-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; margin-bottom:30px; }
.contact-grid { display:grid; grid-template-columns:1.35fr .85fr; gap:26px; align-items:start; }
.contact-form,.side-card { padding:27px; background:#fff; border:1px solid var(--line); border-radius:17px; box-shadow:var(--shadow); }
.contact-form h2,.side-card h2 { margin:0 0 4px; font-size:24px; }
.contact-form > p,.side-card p { color:var(--muted); }
.contact-form form { display:grid; gap:13px; }
.contact-form label { font-size:14px; font-weight:800; }
.contact-form input,.contact-form select,.contact-form textarea {
  display:block; width:100%; margin-top:5px; padding:11px 12px; border:1px solid #dce7f2;
  border-radius:9px; background:#fafdff; color:var(--ink); font-size:15px;
}
.contact-form textarea { resize:vertical; }
.contact-form button { width:100%; }
.contact-side { display:grid; gap:18px; }
.side-card a { color:var(--blue); }
.hp { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.form-status { margin:13px 0; padding:11px; border-radius:8px; }
.form-status.ok { color:#08784a; background:#e9fbf2; }
.form-status.err { color:#a72828; background:#fff1f1; }

/* CTA + Footer */
.cta-band { padding:40px 0; color:#fff; background:linear-gradient(105deg,#06234b,#03172f); }
.cta-inner { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.cta-band h2 { margin:0 0 5px; font-size:33px; }
.cta-band p { margin:0; color:#d3e0ef; }
.eyebrow.light { color:#bcd5f5; }
.cta-notes { margin-top:13px; color:#d7e5f6; font-size:12px; }
.compact-cta { padding:32px 0; }
.site-footer { padding:40px 0 20px; color:#c6d3e2; background:#021326; }
.footer-grid { display:grid; grid-template-columns:2fr repeat(3,1fr); gap:48px; }
.footer-grid > div:not(.footer-brand) { display:flex; flex-direction:column; gap:7px; }
.footer-grid strong { margin-bottom:5px; color:#fff; }
.footer-grid a { font-size:14px; }
.footer-brand img { width:165px; height:auto; }
.footer-payoff { display:block; margin:7px 0 10px; color:#9fb1c6; font-size:8px; line-height:1.35; font-weight:800; letter-spacing:.11em; }
.footer-brand p { font-size:14px; }
.socials { display:flex; gap:15px; color:#fff; font-weight:800; }
.footer-bottom {
  display:flex; justify-content:space-between; margin-top:28px; padding-top:18px;
  border-top:1px solid rgba(255,255,255,.12); font-size:12px;
}
.footer-bottom div { display:flex; gap:20px; }
.content-page { max-width:820px; }


/* Final interaction and accessibility states */
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid rgba(8,120,249,.28);outline-offset:3px}
.feature-tabs a{transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}
.feature-tabs a:hover,.feature-tabs a.is-active{transform:translateY(-2px);background:#fff;border-color:#b9d9ff;box-shadow:0 10px 28px rgba(8,120,249,.10)}
.feature-row{scroll-margin-top:96px}
.included-head{background:#f2f7fd;border-top:0;border-radius:10px 10px 0 0;font-weight:800}
.included-head strong:not(:first-child){text-align:center;color:#315170}
.socials span{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.15);border-radius:50%;background:rgba(255,255,255,.05)}
.socials img{width:16px;height:16px;filter:brightness(0) invert(1)}
.faq-cats a:hover{transform:translateY(-1px);border-color:#cfe3fb;background:#fff}
.faq-cats a.is-active:hover{background:var(--blue)}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:#7bb8ff;box-shadow:0 0 0 3px rgba(8,120,249,.08);outline:0}

/* Lightweight motion */
.reveal { opacity:0; transform:translateY(16px); transition:opacity .55s ease,transform .55s ease; }
.reveal.is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .reveal,.feature-card,.compact article,.contact-cards article,.price-card,.btn { transition:none; transform:none; }
}

/* Tablet */
@media (max-width:1050px) {
  .shell { width:min(100% - 36px,900px); }
  .brand { width:160px; flex-basis:160px; }
  .brand img { width:155px; }
  .brand-payoff { font-size:7px; margin-left:7px; }
  .nav { gap:20px; }
  .nav-actions .btn { padding-inline:14px; }
  .hero-shell { min-height:460px; }
  .hero h1 { font-size:42px; }
  .hero-copy { width:48%; }
  .hero-visual { width:59%; }
  .cards.four,.price-cards,.contact-cards { grid-template-columns:1fr 1fr; }
  .cards.six,.faq-cats { grid-template-columns:repeat(3,1fr); }
}

/* Mobile */
@media (max-width:820px) {
  .site-header { height:66px; }
  .nav-wrap { gap:12px; }
  .nav-toggle { display:block; margin-left:auto; }
  .nav {
    display:none; position:absolute; top:66px; left:0; right:0; margin:0; padding:12px 20px 18px;
    background:#fff; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:0;
  }
  .nav.open { display:flex; }
  .nav a { padding:11px 4px; }
  .nav a.active::after { display:none; }
  .nav-actions .btn-soft { display:none; }
  .nav-actions .btn-primary { min-height:38px; padding-inline:12px; font-size:11px; }
  .hero-shell {
    min-height:0;
    display:block;
    padding-top:0;
  }
  .hero-copy,.hero-home .hero-copy,.hero-funzionalita .hero-copy,.hero-prezzi .hero-copy,.hero-faq .hero-copy,.hero-contatti .hero-copy {
    width:100%;
    max-width:620px;
    padding:38px 0 28px;
  }
  .hero-visual {
    position:relative;
    inset:auto;
    width:100%;
    height:auto;
    aspect-ratio:1672 / 941;
  }
  .hero-visual::before { display:none; }
  .hero-visual img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    transform:none;
    object-fit:contain;
    object-position:center;
  }
  .hero h1 { font-size:39px; max-width:580px; }
  .hero-copy > p { max-width:560px; font-size:15px; }
  .hero-benefits { margin-top:20px; }
  .split,.contact-grid { grid-template-columns:1fr; gap:28px; }
  .feature-row.reverse .feature-image { order:0; }
  .footer-grid { grid-template-columns:1.5fr 1fr 1fr; }
  .footer-grid > div:last-child { display:none; }
}

/* Small mobile */
@media (max-width:600px) {
  .shell { width:calc(100% - 28px); }
  .brand { width:146px; flex-basis:146px; }
  .brand img { width:142px; }
  .brand-payoff { font-size:6.5px; margin-left:6px; }
  .nav-actions { display:none; }
  .hero h1 { font-size:33px; }
  .hero-copy { padding-top:31px; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero-benefits { gap:7px 13px; }
  .section { padding:50px 0; }
  .section h2 { font-size:30px; }
  .cards.four,.price-cards,.contact-cards,.faq-grid { grid-template-columns:1fr; }
  .cards.six,.faq-cats { grid-template-columns:1fr 1fr; }
  .cta-inner { display:grid; }
  .cta-band h2 { font-size:27px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:26px; }
  .footer-brand { grid-column:1/-1; }
  .footer-grid > div:last-child { display:flex; }
  .footer-bottom { display:grid; gap:11px; }
  .footer-bottom div { flex-wrap:wrap; }
  .included { overflow-x:auto; }
  .included-table { min-width:650px; }
  .billing-switch { width:100%; overflow-x:auto; justify-content:flex-start; }
  .billing-switch button { white-space:nowrap; }
  .price-card { display:none; }
  .price-card.active-mobile { display:block; }
  .section-title-row { display:block; }
  .section-title-row > a { display:inline-block; margin:8px 0 18px; }
}
