/*
Theme Name: Growth
Theme URI: https://example.com/growth
Author: Luca
Author URI: https://example.com
Description: Tema WordPress a blocchi costruito da zero per Site Editor e Gutenberg.
Requires at least: 6.6
Tested up to: 6.9
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: growth
Tags: block-theme, full-site-editing, editor-style, custom-logo, custom-menu
*/

html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

.wp-site-blocks {
  min-height: 100vh;
}

.wp-site-blocks > header.wp-block-template-part {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--wp--preset--color--canvas);
}

.wp-block-navigation .wp-block-navigation-item__content,
.wp-block-navigation .wp-block-pages-list__item__link {
  color: var(--wp--preset--color--ink);
  text-decoration: none;
  transition: color 0.2s ease;
}

.wp-block-navigation .wp-block-navigation-item__content:hover,
.wp-block-navigation .wp-block-navigation-item__content:focus-visible,
.wp-block-navigation .wp-block-pages-list__item__link:hover,
.wp-block-navigation .wp-block-pages-list__item__link:focus-visible {
  color: var(--wp--preset--color--accent-dark);
}

.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content,
.wp-block-navigation .current_page_item > .wp-block-navigation-item__content,
.wp-block-navigation .current-page-ancestor > .wp-block-navigation-item__content {
  color: var(--wp--preset--color--accent);
}

.wp-block-navigation .wp-block-navigation-submenu__toggle {
  color: var(--wp--preset--color--ink);
  transition: color 0.2s ease;
}

.wp-block-navigation .wp-block-navigation-submenu__toggle:hover,
.wp-block-navigation .wp-block-navigation-submenu__toggle:focus-visible {
  color: var(--wp--preset--color--accent-dark);
}


body.home .wp-site-blocks > main,
body.home .wp-site-blocks > main#main-content,
body.home .wp-site-blocks > main.wp-block-group,
body.front-page .wp-site-blocks > main,
body.front-page .wp-site-blocks > main#main-content,
body.front-page .wp-site-blocks > main.wp-block-group {
  margin-block-start: 0;
}

body.page.growth-main-top-space-removed .wp-site-blocks > main,
body.page.growth-main-top-space-removed .wp-site-blocks > main#main-content,
body.page.growth-main-top-space-removed .wp-site-blocks > main.wp-block-group {
  margin-block-start: 0 !important;
}

.growth-skip-link {
  position: absolute;
  top: -120px;
  left: 1rem;
  z-index: 100000;
}

.growth-skip-link a {
  display: inline-block;
  padding: 0.75rem 1rem;
  background: #111827;
  color: #ffffff;
  text-decoration: none;
  border-radius: 0.375rem;
}

.growth-skip-link:focus-within {
  top: 1rem;
}

:where(a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible) {
  outline: 3px solid #2563eb;
  outline-offset: 2px;
}

.wpcf7 {
  margin-top: 2rem;
}

.wpcf7 form {
  display: grid;
  gap: 14px;
}

.wpcf7 form p {
  margin: 0;
}

.wpcf7 label {
  display: block;
}

.wpcf7-form-control-wrap {
  display: block;
}

.wpcf7 input[type='text'],
.wpcf7 input[type='email'],
.wpcf7 input[type='tel'],
.wpcf7 input[type='url'],
.wpcf7 input[type='number'],
.wpcf7 input[type='date'],
.wpcf7 textarea,
.wpcf7 select {
  box-sizing: border-box;
  width: 100%;
  min-height: 35px;
  padding: 10px 14px;
  color: #111827;
  background: #ffffff;
  border: 1px solid #9ca3af;
  border-radius: 2px;
}

.wpcf7 input[aria-invalid='true'],
.wpcf7 select[aria-invalid='true'],
.wpcf7 textarea[aria-invalid='true'] {
  border-color: #b42318;
}

.wpcf7 textarea {
  min-height: 130px;
  resize: vertical;
}

.wpcf7 input[type='submit'],
.wpcf7 button[type='submit'] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 16px;
  color: #ffffff;
  background: #111827;
  border: 1px solid #111827;
  border-radius: 2px;
  font: inherit;
  cursor: pointer;
}

.wpcf7 input[type='submit']:hover,
.wpcf7 button[type='submit']:hover,
.wpcf7 input[type='submit']:focus-visible,
.wpcf7 button[type='submit']:focus-visible {
  background: #000000;
  border-color: #000000;
}

.wpcf7 .wpcf7-spinner {
  margin: 0.5rem 0 0;
}

.wpcf7 .wpcf7-not-valid-tip {
  color: #b42318;
  font-size: 0.875rem;
}

.wpcf7 .wpcf7-response-output,
.wpcf7 .wpcf7-validation-errors,
.wpcf7 .wpcf7-mail-sent-ok,
.wpcf7 .wpcf7-mail-sent-ng {
  margin: 1rem 0 0;
  padding: 0.9rem 1rem;
  border-radius: 0.75rem;
  border: 1px solid var(--wp--preset--color--surface);
  background: transparent;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
  border-color: #fda29b;
  color: #912018;
}

.wpcf7 form.sent .wpcf7-response-output {
  border-color: #75c692;
  color: #027a48;
}

/* effetto pulsante animato */
.rbits-button .wp-block-button__link {
  transition: transform 0.2s ease;
}

.rbits-button .wp-block-button__link:hover {
  transform: translateY(-3px);
}

/* effetto card*/
.rbits-card {
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

@media (hover: hover) and (pointer: fine) {
  .rbits-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.10);
  }
}

@media (prefers-reduced-motion: reduce) {
  .rbits-card,
  .rbits-card:hover {
    transition: none;
    transform: none;
  }
}

/* effetto costellazione*/

.has-fake-constellation {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.has-fake-constellation .growth-particle-constellation {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: auto;
}

.has-fake-constellation > .wp-block-cover__background,
.has-fake-constellation > .wp-block-cover__image-background,
.has-fake-constellation > .wp-block-cover__video-background {
  z-index: 0;
}

.has-fake-constellation > :not(.growth-particle-constellation):not(.wp-block-cover__background):not(.wp-block-cover__image-background):not(.wp-block-cover__video-background) {
  position: relative;
  z-index: 2;
}

/* effetto cerchi nella hero*/
.rbits-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;

  background:
    radial-gradient(
      circle at 82% 22%,
      rgba(45, 108, 223, 0.231),
      transparent 28rem
    ),
    radial-gradient(
      circle at 65% 112%,
      rgba(255, 91, 26, 0.11),
      transparent 22rem
    ),
    linear-gradient(
      135deg,
      #071a2f,
      #0a223c 72%
    );
}

.rbits-hero::before,
.rbits-hero::after {
  content: "";
  position: absolute;
  box-sizing: border-box;
  border: 1px solid rgba(255, 255, 255, 0.078);
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

.rbits-hero::before {
  top: -40px;
  right: -90px;
  width: 480px;
  height: 480px;

  box-shadow:
    0 0 0 72px rgba(255, 255, 255, 0.024),
    0 0 0 144px rgba(255, 255, 255, 0.012);
}

.rbits-hero::after {
  left: 48%;
  bottom: -390px;
  width: 600px;
  height: 600px;
}

.rbits-hero > .wp-block-cover__inner-container {
  position: relative;
  z-index: 1;

}
  /* separatore*/.wp-block-separator.rbits-linea {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  max-width: none;
  height: 8px;
  border: none;
  background: none !important;
  opacity: 1;
  animation: none;
}

/* Striscia colorata in movimento */
.wp-block-separator.rbits-linea::before {
  content: "";
  position: absolute;
  left: 0;
  top: 3px;
  width: 200%;
  height: 2px;

  background: linear-gradient(
    90deg,
    #ff5b1a 0%,
    #2d6cdf 25%,
    #ff5b1a 50%,
    #2d6cdf 75%,
    #ff5b1a 100%
  );

  animation: rbits-scorrimento 4s linear infinite;
}

/* Quattro punti bianchi fermi */
.wp-block-separator.rbits-linea::after {
  content: "";
  position: absolute;
  inset: 0;

  --punto: radial-gradient(
    circle closest-side,
    #fff 90%,
    transparent 100%
  );

  background:
    var(--punto) 0% center / 8px 8px no-repeat,
    var(--punto) 33.333% center / 8px 8px no-repeat,
    var(--punto) 66.667% center / 8px 8px no-repeat,
    var(--punto) 100% center / 8px 8px no-repeat;
}

@keyframes rbits-scorrimento {
  from {
    transform: translateX(-50%);
  }
  to {
    transform: translateX(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .wp-block-separator.rbits-linea::before {
    animation: none;
  }
}

/*
CARD HERO — COSA FACCIAMO

STRUTTURA E CLASSI GUTENBERG

1. Gruppo esterno che contiene tutta la card:
   rbits-sistema

2. Gruppo centrale, direttamente dentro il Gruppo esterno:
   rbits-sistema-centro

   Dentro il Gruppo centrale inserisci, in questo ordine,
   tre blocchi PARAGRAFO senza classi:

   - Il punto di partenza
   - Obiettivi del progetto
   - misurabili nel tempo

3. Quattro blocchi PARAGRAFO direttamente nel Gruppo esterno,
   FUORI dal Gruppo centrale:

   SITO  → rbits-etichetta rbits-sito
   SEO   → rbits-etichetta rbits-seo
   LOCAL → rbits-etichetta rbits-local
   DATI  → rbits-etichetta rbits-dati

Non servono blocchi Colonne.
Inserisci le classi senza punto in:
Avanzate → Classi CSS aggiuntive.
*/

/* Pannello glass */
.rbits-sistema {
  position: relative;
  isolation: isolate;
  box-sizing: border-box;
  width: 100%;
  min-height: 480px;
  padding: 0;
  overflow: hidden;

  border: 1px solid #ffffff1d;
  border-radius: 28px;
  background: linear-gradient(145deg, #ffffff13, #ffffff06);
  box-shadow: 0 35px 90px #00000044;

  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

/* Compatibilità con il contenitore dei Gruppi meno recenti */
.rbits-sistema > .wp-block-group__inner-container {
  position: static;
}

/* Anelli concentrici */
.rbits-sistema::before,
.rbits-sistema::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  box-sizing: border-box;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

.rbits-sistema::before {
  width: 330px;
  height: 330px;
  border: 1px solid #ffffff22;
}

.rbits-sistema::after {
  width: 235px;
  height: 235px;
  border: 1px solid #2d6cdf77;
  box-shadow: 0 0 52px #2d6cdf24;
}

/* Cerchio centrale: centraggio rispetto al pannello */
.rbits-sistema .rbits-sistema-centro {
  position: absolute !important;
  inset: 0 !important;
  margin: auto !important;
  transform: none !important;
  z-index: 1;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;

  box-sizing: border-box;
  width: 190px;
  height: 190px;
  max-width: none;
  padding: 22px;
  text-align: center;

  border: 1px solid #ffffff30;
  border-radius: 50%;
  background: radial-gradient(
    circle at 35% 25%,
    #21486e,
    #0c2947
  );
  box-shadow: 0 20px 55px #00000055;
}

/* Testi centrali */
.rbits-sistema .rbits-sistema-centro p {
  margin: 0 !important;
  padding: 0;
  text-align: center;
}

.rbits-sistema .rbits-sistema-centro p:nth-of-type(1) {
  color: #7fa4cb;
  font-size: 9px;
  line-height: 1.5;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.rbits-sistema .rbits-sistema-centro p:nth-of-type(2) {
  margin: 9px 0 5px !important;
  color: #ffffff;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.15;
}

.rbits-sistema .rbits-sistema-centro p:nth-of-type(3) {
  color: #ff9167;
  font-size: 11px;
  line-height: 1.5;
}

/* Etichette */
.rbits-sistema .rbits-etichetta {
  position: absolute;
  z-index: 2;
  box-sizing: border-box;
  width: max-content;
  max-width: none;
  margin: 0 !important;
  padding: 9px 14px;

  border: 1px solid #ffffff22;
  border-radius: 99px;
  background: #102f4e;
  color: #dce8f4;

  font-size: 11px;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.rbits-sistema .rbits-sito {
  left: 36px;
  top: 105px;
}

.rbits-sistema .rbits-seo {
  right: 40px;
  top: 90px;
}

.rbits-sistema .rbits-local {
  left: 38px;
  bottom: 96px;
}

.rbits-sistema .rbits-dati {
  right: 42px;
  bottom: 108px;
}

/* Mobile */
@media (max-width: 600px) {
  .rbits-sistema {
    min-height: 350px;
  }

  .rbits-sistema::before {
    width: 270px;
    height: 270px;
  }

  .rbits-sistema::after {
    width: 200px;
    height: 200px;
  }

  .rbits-sistema .rbits-sistema-centro {
    width: 165px;
    height: 165px;
    padding: 16px;
  }

  .rbits-sistema .rbits-etichetta {
    padding: 6px 9px;
    font-size: 9px;
  }

  .rbits-sistema .rbits-sito {
    left: 15px;
    top: 75px;
  }

  .rbits-sistema .rbits-seo {
    right: 14px;
    top: 70px;
  }

  .rbits-sistema .rbits-local {
    left: 15px;
    bottom: 72px;
  }

  .rbits-sistema .rbits-dati {
    right: 14px;
    bottom: 76px;
  }
}