:root {
  --bg1:#04070e;
  --bg2:#0a1228;
  --panel:rgba(12,18,36,.72);
  --text:#eaf4ff;
  --muted:#9cb0d0;
  --cyan:#59e7ff;
  --blue:#2d57ff;
  --violet:#7b5cff;
  --yellow:#ffd86f;
}

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

body.pg-template {
  background:var(--bg1);
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  overflow-x:hidden;
}

.pg-landing { width:100%; padding:40px 20px; }
.pg-shell {
  position:relative;
  overflow:hidden;
  border:1px solid rgba(89,231,255,.30);
  border-radius:32px;
  background:
    radial-gradient(circle at top, rgba(89,231,255,.22), transparent 24%),
    radial-gradient(circle at 80% 18%, rgba(123,92,255,.20), transparent 22%),
    linear-gradient(180deg, rgba(4,7,14,.98), rgba(10,16,34,.98));
  box-shadow:0 30px 80px rgba(0,0,0,.62), inset 0 1px 0 rgba(255,255,255,.07);
  padding:40px;
  width:85%;
  max-width:85%;
  margin:0 auto;
}

/* ---------- HEADER / MENU ---------- */
.pg-header-bar {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(4,7,14,.82);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.pg-header {
  position:relative;
  display:flex; justify-content:space-between; align-items:center;
  width:85%; max-width:85%; margin:0 auto; padding:14px 0;
  transition: padding .25s ease;
}
.pg-logo { flex-shrink:0; }
.pg-logo img {
  height:100px; width:auto; display:block;
  flex-shrink:0;
  transition: height .25s ease;
}
.pg-header-bar.is-scrolled .pg-header { padding:8px 0; }
.pg-header-counter {
  display:flex; align-items:center; gap:0;
  color:#fff; font-size:1.15rem; font-weight:600;
  white-space:nowrap; flex-shrink:0;
}
.pg-counter-label { color:#fff; font-weight:800; white-space:nowrap; margin-right:8px; }
.pg-counter-icon { color:#fff; flex-shrink:0; width:20px; height:20px; animation: pgWheelSpin 3s linear infinite; }
.pg-counter-number { color:var(--cyan); font-weight:800; }
@keyframes pgWheelSpin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .pg-counter-icon { animation:none; } }
/* Nascosto di default via JS finche' non si verifica che c'e' spazio a
   sufficienza per stare su una sola riga accanto a logo e menu/hamburger:
   evita che vada mai a capo. */
.pg-header-counter { display:none; }
.pg-header-counter.pg-fits { display:flex; }
/* Se non c'è spazio nemmeno togliendo tutto il resto, si toglie prima
   "DRIVERGEST:" (meno essenziale) prima di nascondere l'intero blocco. */
.pg-header-counter.pg-hide-label .pg-counter-label { display:none; }
.pg-header-bar.is-scrolled .pg-logo img { height:56px; }
.top-menu { display:flex; align-items:center; gap:30px; }
.pg-menu-toggle {
  display:none;
  background:none;
  border:1px solid rgba(89,231,255,.3);
  padding:10px 20px;
  border-radius:10px;
  cursor:pointer;
}
.menu-link {
  color:var(--cyan); text-decoration:none; font-weight:600;
  font-size:16px; padding:12px 18px; border-radius:10px;
  display:inline-flex; align-items:center; gap:8px;
}
.menu-link:hover { color:#fff; background:rgba(89,231,255,.2); transform:translateY(-2px); }
.menu-icon { font-size:18px; color:#fff; }
.hamburger { display:inline-block; width:24px; height:2px; background:#59e7ff; position:relative; }
.hamburger::before, .hamburger::after { content:''; position:absolute; width:24px; height:2px; background:#59e7ff; left:0; }
.hamburger::before { top:-8px; }
.hamburger::after { top:8px; }
.pg-menu-toggle span:last-child { font-size:14px; font-weight:700; color:#59e7ff; text-transform:uppercase; margin-left:10px; }

/* Con l'aggiunta del contatore, logo + link di menu + contatore non stanno
   più tutti su una riga sola dal breakpoint "mobile" classico (768px): qui
   passiamo alla modalità hamburger un po' prima, cosi' il contatore resta
   sempre su una riga sola invece di andare a capo. */
@media (max-width: 1024px) {
  .menu-link { display:none !important; }
  .pg-menu-toggle { display:inline-block !important; }
  .top-menu.open .hamburger::before { transform:rotate(45deg); top:0; }
  .top-menu.open .hamburger::after { transform:rotate(-45deg); top:0; }
  .top-menu.open span:last-child { color:transparent !important; }
}

/* ---------- HERO (pagine con titolo centrato) ---------- */
.pg-hero { text-align:center; margin-bottom:36px; }
.pg-kicker {
  display:inline-flex; align-items:center; justify-content:center; gap:10px; margin:0 0 14px;
  color:var(--cyan); font-size:.88rem; letter-spacing:.18em; text-transform:uppercase; font-weight:800;
}
.pg-kicker::before, .pg-kicker::after {
  content:""; width:34px; height:1px; background:linear-gradient(90deg, var(--cyan), transparent);
  box-shadow:0 0 10px rgba(89,231,255,.5);
}
.pg-top .pg-kicker::before { display:inline-block; }
.pg-top .pg-kicker::after { display:none; }
.pg-title {
  margin:0 0 14px; font-size:clamp(2rem,4.8vw,3.2rem); line-height:1.1;
  letter-spacing:-.04em; color:#f2fbff; text-shadow:0 0 18px rgba(89,231,255,.18); font-weight:900;
}
.pg-lead { margin:0 auto; color:var(--muted); font-size:clamp(1rem,1.6vw,1.15rem); line-height:1.75; max-width:65ch; }

/* ---------- pg-top: layout 2 colonne (copy + form) ---------- */
.pg-top { display:grid; grid-template-columns:1.1fr .9fr; gap:24px; align-items:center; margin-bottom:20px; }
.pg-top .pg-title { text-align:left; margin:0 0 14px; font-size:clamp(2rem,4.8vw,3.8rem); line-height:1.02; }
.pg-top .pg-lead { text-align:left; margin:0 0 18px; max-width:none; }
.pg-cardlist { list-style:none; margin:0; padding:0; display:grid; gap:12px; min-width:0; }
.pg-cardlist li {
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
  border:1px solid rgba(89,231,255,.22); border-radius:16px; padding:14px 16px;
  color:#dbeaff; line-height:1.55;
}
.pg-cardlist strong { color:var(--cyan); }
.pg-seo-note { color:var(--muted); font-size:1.05rem; line-height:1.7; }
.pg-seo-note p { margin-bottom:14px; text-align:justify; }
.pg-seo-note p:last-child { margin-bottom:0; }
.pg-seo-note strong { color:var(--cyan); }
.pg-seo-note i { color:var(--cyan); margin-right:6px; }
.pg-seo-note a { color:var(--cyan); font-weight:700; }
.pg-top > div:first-child { display:flex; flex-direction:column; align-self:stretch; min-width:0; }
.pg-top > div:first-child .pg-seo-note { margin-top:auto; margin-bottom:auto; }
.pg-top > div:last-child { min-width:0; }
.pg-video-box { display:flex; flex-direction:column; gap:16px; align-self:stretch; min-width:0; }
.pg-video-box .pg-seo-note { margin-top:14px !important; margin-bottom:auto !important; }
.pg-badge { display:flex; flex-direction:column; align-items:center; gap:4px; margin-bottom:30px; }
.pg-badge-icon { font-size:2.5rem; line-height:1; }
.pg-badge-text {
  background:linear-gradient(90deg, #ffd86f, #ffD400);
  color:#172f88;
  padding:6px 16px;
  border-radius:20px;
  font-weight:900;
  font-size:0.9rem;
  letter-spacing:0.05em;
}
.pg-video-wrap { border-radius:20px; overflow:hidden; box-shadow:0 20px 50px rgba(0,0,0,.4); aspect-ratio:16/9; }
.pg-video { width:100%; height:100%; border:0; }

/* Il badge fluttuante di reCAPTCHA e' nascosto: al suo posto mostriamo il
   testo di attribuzione richiesto da Google accanto al checkbox privacy nei
   form (vedi .pg-recaptcha-note). */
.grecaptcha-badge { visibility:hidden !important; }
.pg-recaptcha-note {
  display:block; font-size:.72rem; color:#7488ab; margin-top:8px; line-height:1.5;
}
.pg-recaptcha-note a { color:#7488ab; text-decoration:underline; }

/* ---------- Form contatto ---------- */
.pg-form-arrow-cta {
  display:flex; align-items:center; justify-content:center; gap:10px;
  color:var(--yellow); font-weight:800; font-size:1.1rem; margin-bottom:20px; text-align:center;
  text-transform:uppercase; letter-spacing:.03em; border:2px solid var(--yellow);
  border-radius:14px; padding:14px 18px; white-space:nowrap;
}
.pg-form-arrow-cta i { font-size:1.25rem; animation: pgArrowBounceDown 1.1s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .pg-form-arrow-cta i { animation:none; } }
.pg-form-box {
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
  border:1px solid rgba(89,231,255,.22); border-radius:16px; padding:24px;
}
.pg-form-box h3 {
  color:var(--cyan); font-size:1.4rem; margin-bottom:20px; text-align:center; font-weight:900; text-transform:uppercase;
}
.wpcf7-form label { display:flex; flex-direction:column; gap:6px; color:var(--text); font-weight:700; }
.wpcf7-form .wpcf7-acceptance label { flex-direction:row; align-items:flex-start; gap:8px; font-weight:400; width:100%; }
.wpcf7-form .wpcf7-acceptance input[type="checkbox"] { margin-top:3px; flex-shrink:0; width:16px; height:16px; }
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label { flex:1 1 auto; min-width:0; }
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="tel"], .wpcf7-form textarea {
  padding:12px 16px; border:1px solid rgba(89,231,255,0.3); border-radius:10px;
  background:rgba(12,18,36,0.6); color:var(--text); font-size:1rem; width:100%;
}
.wpcf7-form input:focus, .wpcf7-form textarea:focus { outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px rgba(89,231,255,0.15); }
.checkbox-group { display:flex; align-items:flex-start; gap:10px; margin:10px 0; }
.checkbox-group input { margin-top:4px; width:18px; height:18px; }
.checkbox-group label { font-size:0.9rem; color:var(--muted); margin:0; }
.checkbox-group a { color:var(--cyan); }
.wpcf7-submit {
  background:linear-gradient(180deg, var(--blue), #12256f); color:#fff; font-weight:900;
  font-size:1.1rem; padding:16px 32px; border:none; border-radius:14px; cursor:pointer;
  text-transform:uppercase; box-shadow:0 14px 28px rgba(45,87,255,.28); width:100%;
}
.wpcf7-submit:hover { transform:translateY(-2px); box-shadow:0 18px 35px rgba(45,87,255,.35); }
body.page-id-194 .wpcf7-submit { background:linear-gradient(180deg, var(--yellow), #ffb700); color:#172f88; box-shadow:0 14px 28px rgba(255,216,111,.28); }
body.page-id-194 .wpcf7-submit:hover { box-shadow:0 18px 35px rgba(255,216,111,.35); }

/* ---------- Divider / band ---------- */
.pg-divider { height:1px; background:linear-gradient(90deg, transparent, rgba(89,231,255,.20), rgba(123,92,255,.18), transparent); margin:30px 0; }
.pg-band {
  display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between;
  background:linear-gradient(135deg, rgba(89,231,255,.10), rgba(123,92,255,.10));
  border:1px solid rgba(89,231,255,.2); border-radius:20px; padding:24px;
  margin:24px 0;
  transition:all 0.3s ease;
}
.pg-band:hover {
  transform:translateY(-8px);
  box-shadow:0 20px 50px rgba(89,231,255,.2);
  border-color:var(--cyan);
}
.pg-arrow { text-align:center; color:var(--cyan); font-size:1.4rem; margin:10px 0; }

/* ---------- TICKER stile borsa ---------- */
/* Il ritaglio (overflow:hidden) e il padding stanno su due elementi
   diversi apposta: se stessero sullo stesso elemento, col testo che scorre
   e "esce" dal bordo il browser ignora il padding sul lato di uscita (e con
   un loop infinito ogni lato e' a turno un lato di uscita). Percio' .pg-ticker
   fa solo da cornice con padding, mentre .pg-ticker-viewport (senza padding)
   fa da finestra di ritaglio: cosi' il ritaglio avviene sempre al proprio
   bordo, che e' gia' rientrato di 20px per via del padding del genitore. */
.pg-ticker {
  margin:14px 0; padding:10px 20px;
  border-top:1px solid rgba(89,231,255,.18); border-bottom:1px solid rgba(89,231,255,.18);
  background:rgba(255,255,255,.02);
}
.pg-ticker-viewport {
  overflow:hidden; white-space:nowrap; display:block;
}
/* Quando il ticker e' il primo elemento dello shell (home), lo si porta a
   filo con la cornice: bordi orizzontali edge-to-edge e niente spazio sopra,
   agganciato subito sotto l'header come un "nastro" in cima alla card.
   Il -margin compensa esattamente il padding di .pg-shell (40px desktop,
   20px sotto i 768px) cosi' la larghezza torna a coprire tutta la card. */
.pg-shell > .pg-ticker:first-child {
  margin: -40px -40px 14px;
}
.pg-ticker-track {
  display:inline-flex; width:max-content;
  animation: pgTickerScroll 22s linear infinite;
}
.pg-ticker-item {
  display:inline-flex; align-items:center; gap:6px; color:#fff;
  padding:0 26px; font-weight:800; font-size:.95rem; letter-spacing:.03em;
  border-right:1px solid rgba(255,255,255,.08);
}
.pg-ticker-item.up i { color:#4ade80; }
.pg-ticker-item.down i { color:#ff5c5c; }
@keyframes pgTickerScroll {
  from { transform:translateX(0); }
  to { transform:translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .pg-ticker-track { animation:none; }
}

/* ---------- Section grid (3 pannelli / feature) ---------- */
.pg-section-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:18px; }
.pg-panel {
  background:linear-gradient(180deg, rgba(15,22,42,.92), rgba(11,16,30,.84));
  border:1px solid rgba(89,231,255,.18); border-radius:20px; padding:18px;
}
.pg-panel h2 { margin:0 0 10px; font-size:1.08rem; color:#f3fbff; }
.pg-panel p { margin:0; color:var(--muted); line-height:1.7; }

.pg-section-heading { text-align:center; margin:0 0 28px; }
.pg-section-heading h2 { font-size:clamp(1.5rem,3vw,2.1rem); color:#f3fbff; font-weight:900; margin:0 0 10px; }
.pg-section-heading p { color:var(--muted); font-size:1rem; max-width:60ch; margin:0 auto; }

.pg-feature-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:8px; }
.pg-feature-grid.pg-feature-grid-3 { grid-template-columns:repeat(3,1fr); }
.pg-feature-card {
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border:1px solid rgba(89,231,255,.18); border-radius:20px; padding:26px 22px; transition:all .25s ease;
}
.pg-feature-card:hover { transform:translateY(-4px); border-color:var(--cyan); box-shadow:0 16px 36px rgba(89,231,255,.12); }
.pg-feature-icon {
  width:52px; height:52px; border-radius:14px;
  background:linear-gradient(135deg, rgba(89,231,255,.18), rgba(123,92,255,.18));
  display:flex; align-items:center; justify-content:center;
  font-size:1.35rem; color:var(--cyan); margin-bottom:16px;
}
.pg-feature-card h3 { font-size:1.02rem; color:#f3fbff; margin:0 0 8px; font-weight:800; }
.pg-feature-card p { font-size:0.89rem; color:var(--muted); line-height:1.6; margin:0; }

/* ---------- FAQ accordion ---------- */
.pg-faq-list { display:flex; flex-direction:column; gap:12px; }
.pg-faq-category-label {
  color:var(--cyan); font-size:.8rem; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; margin:30px 0 12px;
}
.pg-faq-category-label:first-child { margin-top:6px; }
.pg-faq-item {
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border:1px solid rgba(89,231,255,.16); border-radius:14px; overflow:hidden; transition:border-color .2s ease;
}
.pg-faq-item.open { border-color:rgba(89,231,255,.4); }
.pg-faq-question {
  width:100%; background:none; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:18px 20px; text-align:left; color:#f3fbff;
  font-size:0.97rem; font-weight:700; font-family:inherit;
}
.pg-faq-question:hover { color:var(--cyan); }
.pg-faq-chevron { flex-shrink:0; color:var(--cyan); font-size:0.85rem; transition:transform .25s ease; }
.pg-faq-item.open .pg-faq-chevron { transform:rotate(180deg); }
.pg-faq-answer-wrap { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.pg-faq-item.open .pg-faq-answer-wrap { max-height:600px; }
.pg-faq-answer-inner p { margin:0; padding:0 20px 18px; color:var(--muted); font-size:0.92rem; line-height:1.7; }
.pg-faq-answer-inner a { color:var(--cyan); text-decoration:underline; }

/* ---------- Pricing (abbonamenti) ---------- */
.pg-pricing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin:30px 0; align-items:stretch; }
.pg-plan {
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border:1px solid rgba(89,231,255,.18); border-radius:24px; padding:30px 24px;
  text-align:center; position:relative; transition:all 0.3s ease;
  box-shadow:0 10px 30px rgba(0,0,0,.3); display:flex; flex-direction:column;
}
.pg-plan:hover { transform:translateY(-8px); border-color:var(--cyan); box-shadow:0 20px 50px rgba(89,231,255,.15); }
/* Enterprise (ultimo riquadro, non "featured") resta piatto al passaggio
   del mouse: nessuna illuminazione, solo il piano in evidenza deve saltare
   all'occhio. */
.pg-pricing-grid .pg-plan:not(.featured):last-child:hover {
  transform:none;
  border-color:rgba(89,231,255,.18);
  box-shadow:0 10px 30px rgba(0,0,0,.3);
}
.pg-plan.featured {
  border-color:var(--yellow);
  background:linear-gradient(180deg, rgba(255,216,111,.08), rgba(255,216,111,.02));
  box-shadow:0 15px 40px rgba(255,216,111,.15);
}
/* Il riquadro in evidenza (bordo giallo) si illumina di piu' degli altri due
   al passaggio del mouse, restando nel suo colore invece di passare al
   ciano generico degli altri due. */
.pg-plan.featured:hover {
  transform:translateY(-12px) scale(1.02);
  border-color:var(--yellow);
  box-shadow:0 28px 65px rgba(255,216,111,.4);
}
.pg-plan-name { font-size:1.6rem; font-weight:900; color:#f3fbff; margin:0 0 10px; }
.pg-plan-price { margin:10px 0 18px; display:flex; flex-direction:row; flex-wrap:wrap; justify-content:center; align-items:baseline; gap:8px; }
.pg-price-current { font-size:3rem; font-weight:900; color:var(--cyan); line-height:1; display:block; }
.pg-price-current.yellow { color:var(--yellow); }
.pg-price-current.enterprise-price { font-size:2rem; line-height:1.15; }
.pg-price-currency { font-size:1.2rem; font-weight:600; color:var(--muted); vertical-align:super; }
.pg-price-old { font-size:1.2rem; color:var(--muted); text-decoration:line-through; margin-left:0; }
.pg-save {
  display:inline-block; background:rgba(89,231,255,.15); color:var(--cyan);
  font-size:0.82rem; font-weight:700; padding:6px 12px; border-radius:12px;
  border:1px solid rgba(89,231,255,.3); line-height:1.2; white-space:nowrap;
  max-width:100%; overflow:hidden; text-overflow:ellipsis;
}
.pg-save.premium { background:rgba(255,216,111,.15); color:var(--yellow); border-color:rgba(255,216,111,.3); }
.pig-pink { color:#ff8fc0 !important; }
@keyframes pgSavePulse {
  0%, 100% { box-shadow:0 0 0 0 rgba(89,231,255,.55); }
  50% { box-shadow:0 0 0 9px rgba(89,231,255,0); }
}
.pg-save.pg-pulse { animation:pgSavePulse 1.8s ease-in-out infinite; }
.pg-plan-features { list-style:none; margin:18px 0 22px; text-align:left; flex-grow:1; }
.pg-plan-features li {
  padding:9px 0; border-bottom:1px solid rgba(255,255,255,.05); color:#dbeaff;
  font-size:0.92rem; display:flex; align-items:flex-start; gap:10px;
}
.pg-plan-features li:last-child { border-bottom:none; }
.pg-plan-features li i { color:var(--cyan); margin-top:3px; flex-shrink:0; }
.pg-plan-features li.yellow i { color:var(--yellow); }
.pg-plan-features li.disabled { color:var(--muted); opacity:0.6; }
.pg-plan-features li.disabled i { color:var(--muted); }
.pg-plan-features li.excluded { color:var(--muted); opacity:0.7; }
.pg-plan-features li.excluded i { color:#ff5c5c; }

/* ---------- Contenuto legale in pagina (privacy standalone) ---------- */
.pg-content {
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border:1px solid rgba(89,231,255,.18); border-radius:24px; padding:30px 24px;
  color:var(--text); line-height:1.8; font-size:1rem;
}
.pg-content h2 { color:var(--cyan); font-size:1.6rem; margin:30px 0 15px; font-weight:700; }
.pg-content h2:first-child { margin-top:0; }
.pg-content h3 { color:#f3fbff; font-size:1.3rem; margin:25px 0 12px; font-weight:600; }
.pg-content p { margin:15px 0; color:var(--muted); }
.pg-content ul { margin:15px 0; padding-left:20px; color:var(--muted); }
.pg-content li { margin:8px 0; color:var(--muted); }
.pg-content a { color:var(--cyan); text-decoration:none; }
.pg-content a:hover { text-decoration:underline; }

/* ---------- CTA banner ---------- */
.pg-cta-row { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:20px; align-items:stretch; }
.pg-cta-row .pg-cta-banner { margin-top:0; height:100%; display:flex; flex-direction:column; justify-content:space-between; }
.pg-cta-banner {
  background:linear-gradient(135deg,rgba(255,216,111,.15), rgba(89,231,255,.15));
  padding:30px 24px; text-align:center; border-top:1px solid rgba(255,216,111,.3);
  border-radius:20px; margin-top:20px; transition:all 0.3s ease;
}
.pg-cta-banner:hover {
  transform:translateY(-8px);
  box-shadow:0 20px 50px rgba(255,216,111,.2);
  border-top-color:var(--yellow);
}
.pg-cta-banner h2 { color:#fff; font-size:1.8rem; margin-bottom:12px; }
.pg-cta-banner p { color:var(--text); font-size:1.1rem; margin-bottom:20px; }
.pg-coupon-code {
  display:inline-block; background:rgba(255,255,255,.08); border:2px dashed var(--cyan);
  color:var(--cyan); font-size:1.4rem; font-weight:900; letter-spacing:3px;
  padding:10px 26px; border-radius:12px; margin:0 0 20px;
}

/* ---------- Bottoni ---------- */
.pg-btn {
  display:inline-block; padding:16px 28px; border-radius:14px; font-weight:800;
  text-decoration:none; transition:all 0.2s; text-align:center; border:none; cursor:pointer;
  font-size:1rem; text-transform:uppercase; letter-spacing:0.03em;
}
.pg-btn-primary { background:linear-gradient(180deg, var(--yellow), #ffb700); color:#172f88; box-shadow:0 14px 28px rgba(255,216,111,.28); }
.pg-btn-primary:hover { transform:translateY(-2px); box-shadow:0 18px 35px rgba(255,216,111,.35); }
.pg-btn-secondary { background:transparent; border:2px solid var(--yellow); color:var(--yellow); }
.pg-btn-secondary:hover { background:rgba(255,216,111,.1); transform:translateY(-2px); }
.pg-btn-outline { background:transparent; border:2px solid var(--cyan); color:var(--cyan); }
.pg-btn-outline:hover { background:rgba(89,231,255,.1); transform:translateY(-2px); }
.pg-btn-contact { background:linear-gradient(180deg, var(--blue), #12256f); color:#fff; box-shadow:0 14px 28px rgba(45,87,255,.28); }
.pg-btn-contact:hover { transform:translateY(-2px); box-shadow:0 18px 35px rgba(45,87,255,.35); }
.pg-btn-large { font-size:1.1rem; padding:18px 40px; }

/* ---------- Footer ---------- */
.pg-footerband {
  display:flex; justify-content:space-between; align-items:center; margin-top:18px;
  padding:16px 18px; border-radius:18px; background:rgba(255,255,255,.05);
  border:1px solid rgba(89,231,255,.14); color:#d8e8ff; flex-wrap:wrap; gap:12px;
}
.pg-footerband a { color:#d8e8ff; }
.pg-footerlegal { margin-top:18px; padding:16px 12px 6px; text-align:center; color:#9cb0d0; font-size:.86rem; line-height:1.6; }

/* ---------- Popup Privacy / Termini (unico set, usato ovunque) ---------- */
.pg-legalpopup-overlay {
  display:none; position:fixed; inset:0;
  background:rgba(4,7,14,0.88); backdrop-filter:blur(6px);
  z-index:999999; align-items:center; justify-content:center; padding:20px;
}
.pg-legalpopup-overlay.active { display:flex; animation:pgLegalFadeIn 0.25s ease; }
@keyframes pgLegalFadeIn { from{opacity:0;} to{opacity:1;} }
.pg-legalpopup-box {
  position:relative; background:#0f1b33;
  border:1px solid rgba(89,231,255,0.2); border-radius:16px;
  max-width:700px; width:100%; max-height:85vh;
  display:flex; flex-direction:column;
  box-shadow:0 24px 70px rgba(0,0,0,0.6);
  animation:pgLegalSlideUp 0.3s ease;
}
@keyframes pgLegalSlideUp { from{transform:translateY(24px);opacity:0;} to{transform:translateY(0);opacity:1;} }
.pg-legalpopup-close {
  position:absolute; top:14px; right:14px;
  background:rgba(255,255,255,0.08); border:none; color:#fff;
  width:34px; height:34px; border-radius:50%; font-size:1.3rem;
  line-height:1; cursor:pointer; display:flex; align-items:center;
  justify-content:center; transition:background 0.2s; z-index:2;
}
.pg-legalpopup-close:hover { background:rgba(255,255,255,0.18); }
.pg-legalpopup-content {
  overflow-y:auto; padding:36px 32px 32px;
  color:#b9c6e0; font-family:Inter,system-ui,Arial,sans-serif;
  font-size:0.93rem; line-height:1.7;
}
.pg-legalpopup-content h1 { color:#f3fbff; font-size:1.3rem; font-weight:900; margin:0 0 6px; padding-right:40px; }
.pg-legalpopup-content h2 { color:#f3fbff; font-size:1.05rem; font-weight:800; margin:24px 0 10px; }
.pg-legalpopup-content h3 { color:#cfe0ff; font-size:0.95rem; font-weight:700; margin:16px 0 8px; }
.pg-legalpopup-content p { margin:0 0 12px; }
.pg-legalpopup-content ul { margin:0 0 12px; padding-left:20px; }
.pg-legalpopup-content li { margin-bottom:6px; }
.pg-legalpopup-content hr { border:none; border-top:1px solid rgba(89,231,255,0.15); margin:20px 0; }
.pg-legalpopup-content em { color:#8696bd; }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  .pg-feature-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 768px) {
  .pg-landing { padding:0; }
  .pg-shell { padding:20px !important; border-radius:18px !important; width:95% !important; max-width:95% !important; }
  .pg-shell > .pg-ticker:first-child { margin: -20px -20px 14px; }
  .pg-ticker { padding:10px 14px; }
  .pg-header { flex-direction:row; flex-wrap:nowrap; justify-content:space-between; align-items:center; gap:8px; width:95%; max-width:95%; padding:10px 0; }
  .pg-header-bar { margin-bottom:20px; }
  .pg-logo img { height:50px; }
  .pg-header-bar.is-scrolled .pg-header { padding:6px 0; }
  .pg-header-bar.is-scrolled .pg-logo img { height:36px; }
  .pg-header-counter { font-size:.78rem; gap:0; white-space:nowrap; }
  .pg-counter-label { margin-right:3px; }
  .pg-counter-icon { width:14px; height:14px; margin:0; }
  .pg-menu-toggle { padding:8px 14px; flex-shrink:0; }
  .pg-badge { margin-bottom:10px; }
  .pg-badge-icon { font-size:2rem; }
  .pg-badge-text { font-size:0.8rem; padding:5px 12px; }
  .pg-title { font-size:1.8rem; }
  .pg-top .pg-title { font-size:1.8rem !important; }
  .pg-lead { font-size:0.95rem !important; text-align:center; }
  .pg-top .pg-lead { text-align:center; }
  .pg-kicker { width:100%; justify-content:center; }
  .pg-kicker::before { display:none; }

  .top-menu.open {
    position:absolute !important; top:calc(100% + 10px) !important; right:0 !important; left:auto !important;
    flex-direction:column !important; align-items:stretch !important;
    width:220px; background:#0d1729; border:1px solid rgba(89,231,255,.25);
    border-radius:14px; padding:8px; box-shadow:0 20px 45px rgba(0,0,0,.55); z-index:1001;
  }
  .top-menu.open .menu-link {
    display:block !important; width:100% !important; text-align:center !important;
    padding:12px 16px; border-bottom:1px solid rgba(89,231,255,.1); border-radius:8px;
  }
  .top-menu.open .menu-link:last-child { border-bottom:none; }

  .pg-top { grid-template-columns:1fr !important; gap:20px; }
  .pg-cardlist li { padding:12px; font-size:0.9rem; }
  .pg-form-box { padding:18px; }
  .pg-form-box h3 { font-size:1.2rem; }
  .wpcf7-form input:not([type="checkbox"]):not([type="radio"]), .wpcf7-form textarea { width:100% !important; font-size:0.95rem; }

  .pg-section-grid { grid-template-columns:1fr !important; gap:12px; }
  .pg-panel { padding:15px; }
  .pg-panel h2 { font-size:1rem; }
  .pg-feature-grid { grid-template-columns:1fr; }
  .pg-faq-question { font-size:0.9rem; padding:16px; }

  .pg-pricing-grid { grid-template-columns:1fr; }
  .pg-plan.featured { order:-1; }

  .pg-content { padding:20px 15px; }
  .pg-content h2 { font-size:1.4rem; }
  .pg-content h3 { font-size:1.15rem; }
  .pg-content p, .pg-content li { font-size:0.95rem; }

  .pg-cta-row { grid-template-columns:1fr; }
  .pg-cta-banner { padding:20px 15px; }
  .pg-cta-banner h2 { font-size:1.4rem; }
  .pg-cta-banner p { font-size:0.95rem; }

  .pg-form-arrow-cta { font-size:0.8rem; padding:12px 10px; gap:6px; white-space:normal; text-align:center; }
  .pg-form-arrow-cta i { font-size:1rem; }
  .pg-btn { font-size:1rem; padding:14px 28px; }
  .pg-footerband { flex-direction:column; text-align:center; padding:12px; }

  .pg-legalpopup-content { padding:28px 20px 24px; }
  .pg-legalpopup-content h1 { font-size:1.1rem; }
}

/* ---------- CTA badge + freccia (pagina Demo) ---------- */
.pg-top { align-items: start !important; }
.pg-cta-top-block { text-align:center; margin-bottom:14px; display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap; }
.pg-kicker-cta {
  background: linear-gradient(90deg, rgba(255,216,111,.2), rgba(255,183,0,.08));
  border: 1px solid rgba(255,216,111,.45);
  border-radius: 999px;
  padding: 8px 20px 8px 18px;
  font-size: 1rem;
  color: #ffd86f !important;
  box-shadow: 0 0 20px rgba(255,216,111,.15);
}
.pg-kicker-cta::before, .pg-kicker-cta::after { display:none !important; }
@keyframes pgArrowBounceDown { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(8px); } }
@media (max-width:768px) {
  .pg-cta-top-block { text-align:left; margin-bottom:0; }
}

/* ---------- Chatbot ---------- */
.pg-chatbot-launcher {
  position:fixed; right:20px; bottom:20px; z-index:99998;
  width:68px; height:68px; border-radius:50%; border:none; cursor:pointer;
  background:linear-gradient(180deg, var(--cyan), #12b8d6); color:#04222b;
  font-size:1.8rem; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 30px rgba(89,231,255,.4); transition:transform .2s;
  animation:pgChatbotPulse 2.2s ease-in-out infinite;
}
.pg-chatbot-launcher:hover { transform:scale(1.06); }
@keyframes pgChatbotPulse {
  0%, 100% { box-shadow:0 10px 30px rgba(89,231,255,.4), 0 0 0 0 rgba(89,231,255,.55); }
  50% { box-shadow:0 10px 30px rgba(89,231,255,.4), 0 0 0 14px rgba(89,231,255,0); }
}
.pg-chatbot-tooltip {
  position:fixed; right:96px; bottom:32px; z-index:99998;
  background:#0f1b33; border:1px solid rgba(89,231,255,.35); border-radius:12px;
  padding:10px 14px; color:#f3fbff; font-size:.85rem; font-weight:600;
  box-shadow:0 10px 30px rgba(0,0,0,.4); max-width:220px; display:none;
  animation:pgChatbotFadeIn .3s ease;
}
.pg-chatbot-tooltip.active { display:block; }
.pg-chatbot-tooltip::after {
  content:""; position:absolute; right:-6px; top:50%; transform:translateY(-50%);
  width:12px; height:12px; background:#0f1b33; border-right:1px solid rgba(89,231,255,.35);
  border-bottom:1px solid rgba(89,231,255,.35); rotate:-45deg;
}
.pg-chatbot-tooltip-close {
  position:absolute; top:-8px; right:-8px; width:20px; height:20px; border-radius:50%;
  background:#0f1b33; border:1px solid rgba(255,255,255,.2); color:#fff; font-size:.7rem;
  cursor:pointer; display:flex; align-items:center; justify-content:center; line-height:1;
}
@media (max-width:480px) {
  .pg-chatbot-tooltip { right:12px; bottom:96px; max-width:min(230px, calc(100vw - 24px)); }
  .pg-chatbot-tooltip::after { display:none; }
}
.pg-chatbot-panel {
  position:fixed; right:20px; bottom:92px; z-index:99998;
  width:340px; max-width:calc(100vw - 40px); height:480px; max-height:calc(100vh - 210px);
  background:#0f1b33; border:1px solid rgba(255,255,255,.12); border-radius:16px;
  box-shadow:0 20px 60px rgba(0,0,0,.5); display:none; flex-direction:column; overflow:hidden;
}
.pg-chatbot-panel.active { display:flex; animation:pgChatbotFadeIn .2s ease; }
@keyframes pgChatbotFadeIn { from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);} }
.pg-chatbot-header {
  background:linear-gradient(135deg, rgba(89,231,255,.15), rgba(45,87,255,.15));
  padding:14px 16px; display:flex; align-items:center; justify-content:space-between;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.pg-chatbot-header strong { color:#f3fbff; font-size:.95rem; }
.pg-chatbot-close {
  background:rgba(255,255,255,.08); border:none; color:#fff; width:26px; height:26px;
  border-radius:50%; cursor:pointer; font-size:1.1rem; line-height:1;
}
.pg-chatbot-body { flex:1; overflow-y:auto; padding:16px; }
.pg-chatbot-lead p { color:var(--muted); font-size:.85rem; margin-bottom:14px; line-height:1.5; }
.pg-chatbot-lead input {
  width:100%; box-sizing:border-box; background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.15); border-radius:8px;
  padding:10px 12px; color:#fff; font-size:16px; margin-bottom:10px;
}
.pg-chatbot-lead input::placeholder { color:#8696bd; }
.pg-chatbot-lead .privacy-check {
  display:flex; align-items:flex-start; gap:8px; font-size:.78rem; color:#8696bd; margin:10px 0 14px;
}
.pg-chatbot-lead .privacy-check input { width:auto; margin:2px 0 0; }
.pg-chatbot-lead .privacy-check a { color:var(--cyan); }
.pg-chatbot-submit {
  width:100%; background:var(--yellow); color:#172f88; border:none; border-radius:8px;
  padding:11px; font-weight:800; font-size:.9rem; cursor:pointer;
}
.pg-chatbot-error { color:#ff8f8f; font-size:.8rem; margin-top:8px; display:none; }
.pg-chatbot-messages { display:none; flex-direction:column; gap:10px; }
.pg-chatbot-messages.active { display:flex; }
.pg-chatbot-msg { max-width:85%; padding:9px 12px; border-radius:12px; font-size:.85rem; line-height:1.5; }
.pg-chatbot-msg.user { align-self:flex-end; background:var(--cyan); color:#04222b; border-bottom-right-radius:2px; }
.pg-chatbot-msg.bot { align-self:flex-start; background:rgba(255,255,255,.08); color:#eaf4ff; border-bottom-left-radius:2px; }
.pg-chatbot-msg.typing { opacity:.6; font-style:italic; }
.pg-chatbot-inputbar { display:none; padding:10px; border-top:1px solid rgba(255,255,255,.08); gap:8px; }
.pg-chatbot-inputbar.active { display:flex; }
.pg-chatbot-inputbar input {
  flex:1; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.15);
  border-radius:20px; padding:9px 14px; color:#fff; font-size:16px;
}
.pg-chatbot-inputbar button {
  background:var(--cyan); color:#04222b; border:none; border-radius:50%;
  width:36px; height:36px; cursor:pointer; font-size:1rem; flex-shrink:0;
}
@media (max-width:480px) {
  .pg-chatbot-panel { width:calc(100vw - 24px); right:12px; bottom:82px; }
  .pg-chatbot-launcher { right:12px; bottom:12px; }
}

/* ---------- Blog ---------- */
.pg-blog-grid {
  display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:24px; margin-top:20px;
}
.pg-blog-card {
  display:flex; flex-direction:column; background:var(--panel); border:1px solid rgba(255,255,255,.08);
  border-radius:18px; overflow:hidden; text-decoration:none; transition:transform .2s, border-color .2s;
}
.pg-blog-card:hover { transform:translateY(-4px); border-color:var(--cyan); box-shadow:0 16px 36px rgba(89,231,255,.12); }
.pg-blog-card-image { aspect-ratio:16/9; overflow:hidden; }
.pg-blog-card-image img { width:100%; height:100%; object-fit:cover; display:block; }
.pg-blog-card-body { padding:22px; display:flex; flex-direction:column; gap:8px; flex:1; }
.pg-blog-card-date { color:var(--cyan); font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.pg-blog-card-body h2 { color:#f3fbff; font-size:1.15rem; font-weight:800; line-height:1.35; margin:0; }
.pg-blog-card-body p { color:var(--muted); font-size:.9rem; line-height:1.6; margin:0; flex:1; }
.pg-blog-card-link { color:var(--cyan); font-size:.85rem; font-weight:700; margin-top:6px; }
.pg-blog-card-link i { margin-left:4px; font-size:.75rem; }

.pg-blog-pagination { display:flex; justify-content:center; gap:14px; margin-top:36px; }
.pg-blog-pagination .page-numbers {
  color:var(--muted); text-decoration:none; padding:8px 16px; border:1px solid rgba(255,255,255,.12);
  border-radius:8px; font-size:.88rem; font-weight:700;
}
.pg-blog-pagination .page-numbers.current { color:#04222b; background:var(--cyan); border-color:var(--cyan); }
.pg-blog-pagination .page-numbers:hover:not(.current) { border-color:var(--cyan); color:var(--cyan); }

.pg-blog-back { display:inline-flex; align-items:center; gap:8px; color:var(--cyan); text-decoration:none; font-size:.88rem; font-weight:700; margin-bottom:18px; }
.pg-blog-back:hover { text-decoration:underline; }
.pg-blog-article-header { max-width:75ch; margin:0 auto 28px; text-align:left; }
.pg-blog-article-header h1 { color:#f3fbff; font-size:clamp(1.6rem,3.4vw,2.4rem); font-weight:900; line-height:1.25; margin:10px 0 0; }
.pg-blog-article-image { max-width:900px; margin:0 auto 32px; border-radius:18px; overflow:hidden; }
.pg-blog-article-image img { width:100%; display:block; }
.pg-blog-article-content {
  max-width:75ch; margin:0 auto; color:var(--text); font-size:1.02rem; line-height:1.85;
}
.pg-blog-article-content h2 { color:#f3fbff; font-size:1.4rem; font-weight:800; margin:36px 0 14px; }
.pg-blog-article-content h3 { color:#f3fbff; font-size:1.15rem; font-weight:800; margin:28px 0 12px; }
.pg-blog-article-content p { margin:0 0 18px; }
.pg-blog-article-content ul, .pg-blog-article-content ol { margin:0 0 18px; padding-left:1.4em; color:var(--text); }
.pg-blog-article-content li { margin-bottom:8px; line-height:1.7; }
.pg-blog-article-content a { color:var(--cyan); }
.pg-blog-article-content strong { color:#f3fbff; }

.pg-cta-band {
  max-width:75ch; margin:48px auto 0; text-align:center; background:var(--panel);
  border:1px solid rgba(89,231,255,.25); border-radius:18px; padding:36px 30px;
}
.pg-cta-band h3 { color:#f3fbff; font-size:1.3rem; font-weight:800; margin:0 0 10px; }
.pg-cta-band p { color:var(--muted); margin:0 0 20px; }
.pg-cta-primary {
  display:inline-block; background:linear-gradient(180deg, var(--yellow), #ffb700); color:#172f88;
  text-decoration:none; font-weight:800; padding:14px 30px; border-radius:10px; font-size:.95rem;
  transition:filter .2s;
}
.pg-cta-primary:hover { filter:brightness(1.08); }

@media (max-width:600px) {
  .pg-blog-grid { grid-template-columns:1fr; }
  .pg-blog-article-header, .pg-blog-article-content, .pg-cta-band { text-align:left; }
  .pg-cta-band { text-align:center; padding:26px 20px; }
}

/* ---------- WOOCOMMERCE: account / carrello / checkout uniformati al resto del sito ---------- */

/* Bottoni primari (Effettua ordine, Aggiungi metodo di pagamento, Salva modifiche, ecc.):
   WooCommerce li marca con la classe "alt" e li disegna viola (#7f54b3) di default.
   Sostituito con lo stesso gradiente giallo usato per le CTA principali del sito. */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #payment #place_order {
  background: linear-gradient(180deg, var(--yellow), #ffb700) !important;
  background-image: none !important;
  color: #172f88 !important;
  border: none !important;
  border-radius: 8px !important;
  font-weight: 700 !important;
  text-shadow: none !important;
  box-shadow: 0 10px 22px rgba(255,216,111,.28) !important;
  transition: transform .2s ease, box-shadow .2s ease;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #payment #place_order:hover {
  color: #172f88 !important;
  background: linear-gradient(180deg, var(--yellow), #ffb700) !important;
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(255,216,111,.35) !important;
}

/* Bottoni secondari (Annulla, Torna al negozio, Cambia, ecc.): contorno ciano, coerente
   con .pg-btn-outline usato nel resto del sito. */
.woocommerce a.button:not(.alt),
.woocommerce button.button:not(.alt),
.woocommerce input.button:not(.alt) {
  background: transparent !important;
  background-image: none !important;
  color: var(--cyan) !important;
  border: 2px solid var(--cyan) !important;
  border-radius: 8px !important;
  font-weight: 700 !important;
  text-shadow: none !important;
  box-shadow: none !important;
}
.woocommerce a.button:not(.alt):hover,
.woocommerce button.button:not(.alt):hover,
.woocommerce input.button:not(.alt):hover {
  background: rgba(89,231,255,.1) !important;
  color: var(--cyan) !important;
}

.woocommerce a.button.disabled,
.woocommerce a.button:disabled,
.woocommerce button.button:disabled,
.woocommerce input.button:disabled {
  opacity: .45 !important;
  transform: none !important;
  cursor: not-allowed;
}

/* Messaggi di sistema (successo/errore/info): da sfondo bianco WooCommerce di default
   allo stesso stile "pannello scuro" usato per le card del sito (bordo ciano, sfondo
   semi-trasparente sul fondo scuro dello shell). */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03)) !important;
  border: 1px solid rgba(89,231,255,.22) !important;
  border-top: 3px solid var(--cyan) !important;
  border-radius: 16px !important;
  color: var(--text) !important;
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--cyan) !important; }
.woocommerce-error { border-top-color: #ff6b6b !important; }
.woocommerce-error::before { color: #ff6b6b !important; }
.woocommerce-message a,
.woocommerce-error a,
.woocommerce-info a { color: var(--cyan) !important; }
.woocommerce-message .button,
.woocommerce-error .button,
.woocommerce-info .button {
  background: transparent !important;
  color: var(--cyan) !important;
  border: 2px solid var(--cyan) !important;
  box-shadow: none !important;
}

/* Riquadro dei campi di un metodo di pagamento (es. form carta di credito, o l'avviso
   di configurazione del gateway): stesso sfondo chiaro di default WooCommerce, uniformato
   al pannello scuro del sito. */
.payment_box,
.woocommerce-cart #payment div.payment_box,
.woocommerce-checkout #payment div.payment_box {
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02)) !important;
  color: var(--text) !important;
  border: 1px solid rgba(89,231,255,.18) !important;
  border-radius: 12px !important;
}
.payment_box a { color: var(--cyan) !important; }
