.elementor-kit-9{--e-global-color-primary:#FFFFFF;--e-global-color-secondary:#54595F;--e-global-color-text:#212121;--e-global-color-accent:#FDC303;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;color:#212121;font-size:20px;font-weight:normal;text-transform:none;font-style:normal;text-decoration:none;line-height:1.3em;}.elementor-kit-9 e-page-transition{background-color:#FFBC7D;}.elementor-kit-9 a{color:#212121;font-size:20px;font-weight:400;text-transform:none;text-decoration:none;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* =====================================================
   AMALTIA GLOBAL STYLES
   -----------------------------------------------------
   Struttura:
   1. Base
   2. Typography
   3. Layout
   4. Elementor Fix
   5. Components
   6. HubSpot Form
   7. Animations
   8. Background Effects
   9. Media Queries
===================================================== */



/* =====================================================
   1. BASE
===================================================== */

html {
  font-size: 100%; /* base 16px */
  scroll-behavior: smooth;
}

body {
  font-size: 1.25rem; /* 20px */
  line-height: 1.6;
  font-family: 'Instrument Sans', system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}



/* =====================================================
   2. TYPOGRAPHY
===================================================== */


/* -------------------------
   TITOLI
------------------------- */

h1, h2, h3, h4, h5, h6 {
  font-family: 'Instrument Sans', sans-serif;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin: 0 0 0.5em 0;
  text-wrap: balance;
}


/* -------------------------
   SCALA TIPOGRAFICA
------------------------- */

h1 {
  font-size: clamp(2.6rem, 4vw, 5rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

h2 {
  font-size: clamp(2rem, 3vw, 3.8rem);
  line-height: 1.1;
}

h3 {
  font-size: clamp(1.6rem, 2vw, 2.6rem);
  line-height: 1.2;
}

h4 {
  font-size: clamp(1.4rem, 1.6vw, 2rem);
  line-height: 1.25;
}

h5 {
  font-size: clamp(1.2rem, 1.2vw, 1.6rem);
}

h6 {
  font-size: 1.1rem;
}


/* -------------------------
   PARAGRAFI
------------------------- */

p {
  font-size: clamp(1rem, 1.1vw, 1.25rem);
  line-height: 1.6;
  margin-bottom: 1.2em;
}

/* limite larghezza per leggibilità */
.text-wrap-readibility-desktop p{
  max-width: 60ch;
  margin-inline: auto;
  text-wrap: balance;
}


/* -------------------------
   FOOTER DISCLAIMER
------------------------- */

.footer-disclaimer p,
.footer-disclaimer a,
.footer-disclaimer .iubenda-cs-preferences-link {
  font-size: clamp(0.8rem, 0.8vw, 0.8rem) !important;
  line-height: 1.6;
}

.footer-disclaimer a,
.footer-disclaimer .iubenda-cs-preferences-link{
  color:#909090 !important;
}

.footer-disclaimer .iubenda-cs-preferences-link{
  background:none;
  border:none;
}



/* =====================================================
   3. TYPOGRAPHY UTILITIES
===================================================== */

/* gestione line break titolo desktop */

.desktop-line {
  display: inline;
}

@media (min-width: 1025px) {

  .desktop-line {
    display: block;
  }

}



/* =====================================================
   4. CSS VARIABLES
===================================================== */

:root{
  --sidebar-width: 360px;
}



/* =====================================================
   5. ELEMENTOR TYPOGRAPHY FIX
===================================================== */

.elementor-widget-nav-menu,
.elementor-widget-button {
  font-size: inherit;
}


/* Elementor text editor fix */

.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-text-editor p {
  font-size: clamp(1rem, 1.1vw, 1.25rem);
  line-height: 1.6;
}



/* =====================================================
   6. BULLET LIST (ELEMENTOR)
===================================================== */

/* testo bullet */

.elementor-icon-list-text {
  font-size: clamp(1rem, 1.1vw, 1.25rem);
  line-height: 1.6;
}


/* liste verticali */

.elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item {
  display: flex;
  align-items: flex-start;
}

.elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-icon {
  margin-top: 0.50em;
}

.elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child) {
  margin-bottom: 0.6em;
}


/* liste inline */

.elementor-inline-items .elementor-icon-list-item {
  align-items: center;
}

.elementor-inline-items .elementor-icon-list-icon {
  margin-top: 0;
}



/* =====================================================
   7. GRID / CARD LAYOUT FIX
===================================================== */

.grid-fix{
  border-left:1px solid #D9D9D9;
  border-top:1px solid #D9D9D9;
}

.grid-fix .e-con{
  border-right:1px solid #D9D9D9;
  border-bottom:1px solid #D9D9D9;
  border-top:none !important;
  border-left:none !important;
}



/* =====================================================
   8. MAIN LAYOUT
===================================================== */

.layout-wrapper{
  display: flex;
  align-items: flex-start;
  min-height: 100vh;
}


/* sidebar */

.sidebar{
  width: var(--sidebar-width);
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  flex-shrink: 0;
}

/* main content */

.main-content{
  flex: 1;
  min-width: 0;
}


/* hide scrollbar */

.sidebar::-webkit-scrollbar{
  display: none;
}

.sidebar{
  -ms-overflow-style: none;
  scrollbar-width: none;
}



/* =====================================================
   9. BUTTON TYPOGRAPHY
===================================================== */

.elementor-widget-button .elementor-button-link,
.elementor-widget-button .elementor-button {

  font-size: clamp(0.90rem, 0.9rem + 0.1vw, 1rem);
  line-height: 1.2;
}

.elementor-button{
  letter-spacing: -0.01em;
}



/* =====================================================
   10. SIDEBAR MENU
===================================================== */

/* counter reset */

.amaltia-menu .elementor-nav-menu {
  counter-reset: amaltia-counter;
}

/* menu item */

.amaltia-menu .elementor-nav-menu > li {

  counter-increment: amaltia-counter;
  display: block;
  margin-bottom: 0.2rem;
}

/* link */

.amaltia-menu .elementor-nav-menu > li > a,
.amaltia-menu .elementor-nav-menu .elementor-item {

  display:block;
  font-size: clamp(0.9rem, 1rem + 0.1vw, 1.1rem);
  line-height:1.2;
  padding:0;
  margin:0;
}

/* number */

.amaltia-menu .elementor-nav-menu > li::after {

  content: counter(amaltia-counter, decimal-leading-zero);

  display: block;
  font-size: clamp(0.8rem, 0.6rem + 0.3vw, 1rem);

  line-height: 1;
  margin-top: -1.2rem;

  font-weight: 600;
  letter-spacing: -0.04rem;

  opacity: 0.6;
  pointer-events: none;
}



/* sidebar footer */

.sidebar-bottom{
  margin-top:auto;
}

.sidebar-bottom a,
.sidebar-bottom p{
  font-size: clamp(0.90rem, 0.9rem + 0.1vw, 1rem);
  line-height:1.5;
}

.elementor-off-canvas-wrapper .dialog-message,
.elementor-off-canvas-wrapper .elementor-widget-wrap {
  overflow: hidden;
}


/* =====================================================
   11. HERO BACKGROUND
===================================================== */

.hero-bg {

  background: radial-gradient(
    circle at 60% 120%,
    #fbc311 0%,
    #7a5a1a 40%,
    #1b1b1b 100%
  );

  /*background-size: 200% 200%;*/
  animation: hero-bg 10s infinite linear alternate;
}

@keyframes hero-bg {

  0%,100%{
    background-position:0% 50%;
  }

  50%{
    background-position:100% 50%;
  }

}



/* =====================================================
   12. AI TYPING EFFECT
===================================================== */

.amaltia-typing-wrapper{
  font-family:'Instrument Sans', sans-serif;
  font-size:0.95rem;
  color:#cfcfcf;
}

#amaltia-typing{
  line-height:1.4;
  position:relative;
  transition:opacity 0.6s ease;
}

/* cursore */

#amaltia-typing::after{

  content:"";
  display:inline-block;

  width:2px;
  height:0.9em;

  background:#cfcfcf;

  margin-left:4px;
  vertical-align:-2px;

  animation:blink 1s infinite;
}

@keyframes blink{

  0%,50%,100%{opacity:1}
  25%,75%{opacity:0}

}


/* chat container */

.chatbox{
  width:100%;
  max-width:clamp(20rem, 40vw, 45vw);
}



/* =====================================================
   13. HUBSPOT FORM – POPUP STYLES
===================================================== */

/* typography */

#hubspot-popup-form .hbspt-form,
#hubspot-popup-form .hs-form{
  font-family:'Instrument Sans',sans-serif;
  color:#ffffff;
}


/* label */

#hubspot-popup-form label{
  color:#ffffff;
  font-size:0.9rem;
  margin-bottom:0.4rem;
  display:block;
}


/* input */

#hubspot-popup-form .hs-input{

  width:100% !important;
  background:transparent !important;

  border:1px solid #ffffff;
  border-radius:0.25rem;

  padding:0.6rem 0.7rem;

  color:#ffffff !important;

  font-family:'Instrument Sans',sans-serif;
  font-size:0.95rem;

  outline:none;
}

/* placeholder */

#hubspot-popup-form .hs-input::placeholder{
  color:rgba(255,255,255,0.6);
}

#hubspot-popup-form select.hs-input {
  color: rgba(255,255,255,0.6) !important; 
}

#hubspot-popup-form select.hs-input:valid {
  color: #ffffff !important; /* quando selezionato */
}

/* focus */

#hubspot-popup-form .hs-input:focus{
  border-color:#ffffff;
}

/* textarea */

#hubspot-popup-form textarea.hs-input{
  min-height:6rem;
  resize:vertical;
}



/* =====================================================
   HUBSPOT CONSENT
===================================================== */

#hubspot-popup-form .hs-richtext,
#hubspot-popup-form .hs-richtext p,
#hubspot-popup-form .hs-richtext a,
#hubspot-popup-form .hs-form-booleancheckbox label{

  color:#ffffff;
  font-size:0.85rem;
  line-height:1.4;
}

#hubspot-popup-form a{
  color:inherit;
  text-decoration:underline;
}



/* checkbox */

#hubspot-popup-form .hs-form-booleancheckbox{
  display:flex;
  align-items:flex-start;
  gap:0.5rem;
}

#hubspot-popup-form input[type="checkbox"]{
  accent-color:#ffffff;
  width:10% !important;
  margin-left:0 !important;
}

#hubspot-popup-form .hs-form-field{
  margin-bottom:1rem;
}



/* =====================================================
   HUBSPOT SUBMIT
===================================================== */

#hubspot-popup-form .hs-button{

  font-family:'Instrument Sans',sans-serif;

  font-size: clamp(0.90rem, 0.9rem + 0.1vw, 1rem);
  line-height: 1.2;

  border:1px solid #ffffff;
  background:transparent;
  color:#ffffff;

  margin-top:2rem;

  padding:0.6rem 1rem;
  border-radius:0.25rem;

  cursor:pointer;
  transition:all .25s ease;
}

#hubspot-popup-form .hs-button:hover{
  background:#ffffff;
  color:#000000;
}



/* =====================================================
   MOBILE MENU
===================================================== */

.mobile-menu a{

  font-family:'Instrument Sans', sans-serif;
  font-size: clamp(1rem, 1rem + 0.3vw, 1.2rem);

  color:#ffffff;

  text-decoration:none;
  line-height:1.6;

  display:block;
}



/* =====================================================
   OFF CANVAS FIX (ELEMENTOR)
===================================================== */

.elementor-off-canvas-wrapper,
.dialog-widget,
.dialog-lightbox-widget {

  position: fixed !important;

  top: 0 !important;
  left: 0 !important;

  width: 100vw !important;
  height: 100vh !important;

  max-height: 100vh !important;
}

.elementor-off-canvas-wrapper .dialog-message,
.elementor-off-canvas-wrapper .elementor-widget-wrap {

  height: 100vh;
  max-height: 100vh;

  overflow-y: auto;
}



/* =====================================================
   FLOATING WORDS BACKGROUND
===================================================== */

.floating-words {

  position:absolute;
  inset:0;

  overflow:hidden;
  pointer-events:none;

  color:#ffffff;
}

.floating-words .word{

  --word-opacity:0.25;

  position:absolute;

  animation:floating-word 30s infinite linear;

  opacity:var(--word-opacity);

  filter:blur(.8px);
}


/* word positions */

.floating-words .word1{
  --word-opacity:0.2;
  --letter-amount:14;
  --letter-height:26px;
  --letter-width:1.5ch;
  top:5%;
  left:15%;
  font-size:16px;
}

.floating-words .word2{
  --word-opacity:0.1;
  --letter-amount:10;
  --letter-height:26px;
  --letter-width:1.5ch;
  bottom:5%;
  right:15%;
  filter:blur(1.2px);
}

.floating-words .word3{
  --word-opacity:0.18;
  --letter-amount:11;
  --letter-height:24px;
  --letter-width:1.4ch;
  top:20%;
  right:10%;
  font-size:14px;
  filter:blur(1.2px);
}

.floating-words .word4{
  --word-opacity:0.12;
  --letter-amount:10;
  --letter-height:22px;
  --letter-width:1.3ch;
  top:60%;
  left:10%;
  font-size:13px;
  filter:blur(1.5px);
}

.floating-words .word5{
  --word-opacity:0.25;
  --letter-amount:10;
  --letter-height:26px;
  --letter-width:1.5ch;
  top:15%;
  right:5%;
  font-size:16px;
  filter:blur(1.6px);
}

.floating-words .word6{
  --word-opacity:0.15;
  --letter-amount:10;
  --letter-height:20px;
  --letter-width:1.2ch;
  bottom:15%;
  left:35%;
  font-size:12px;
  filter:blur(2px);
}


/* letter container */

.floating-words .letter{
  display:inline-block;
  width:var(--letter-width);
  height:var(--letter-height);
  overflow:hidden;
}

.floating-words .letter span{

  display:inline-flex;
  flex-direction:column;
  text-align:center;

  animation:floating-letter 10s steps(var(--letter-amount)) infinite;
}



/* animations */

@keyframes floating-word{

  0%,100%{
    transform:translateX(-10%);
    opacity:var(--word-opacity);
  }

  49%{
    opacity:var(--word-opacity);
  }

  50%{
    transform:translateX(10%);
    opacity:0;
  }

  99%{
    opacity:0;
  }

}

@keyframes floating-letter{

  from{transform:translateY(0)}
  to{transform:translateY(-100%)}

}


/* animation timing */

.floating-words .letter:nth-child(2) span{animation-duration:5s;}
.floating-words .letter:nth-child(3) span{animation-duration:6s;}
.floating-words .letter:nth-child(4) span{animation-duration:7s;}
.floating-words .letter:nth-child(5) span{animation-duration:8s;}
.floating-words .letter:nth-child(6) span{animation-duration:9s;}


/* container wrapper */

.elementor-widget:has(.floating-words){
  position:absolute;
  inset:0;
}



/* =====================================================
   14. MEDIA QUERIES
===================================================== */

/* tablet + mobile */

@media (max-width:1024px){

  .layout-wrapper{
    display:block;
  }

  .sidebar{
    display:none !important;
  }

  .main-content{
    width:100%;
    max-width:100%;
  }

}

/* =====================================================
   15. SINGLE POST LAYOUT (Blog + Case Study)
   Sidebar dall'header Theme Builder affiancata al contenuto.
   Vale automaticamente per OGNI post (body.single-post).
===================================================== */

body.single-post .elementor-location-header{
  position: fixed;
  top: 0;
  left: 0;
  width: var(--sidebar-width, 307px);
  height: 100vh;
  z-index: 100;
  margin: 0;
}

body.single-post .elementor-location-header .sidebar{
  position: relative !important;
  top: 0 !important;
  height: 100vh !important;
  width: var(--sidebar-width, 307px) !important;
}

/* neutralizza lo spacer dello Sticky di Elementor sull'header */
body.single-post .elementor-location-header .elementor-sticky__spacer{
  display: none !important;
}

body.single-post .elementor-location-single,
body.single-post .elementor-location-footer{
  margin-left: var(--sidebar-width, 307px);
  width: calc(100% - var(--sidebar-width, 307px));
}

/* tablet + mobile: sidebar nascosta, contenuto full-width */
@media (max-width:1024px){
  body.single-post .elementor-location-header{
    position: static;
    width: 100%;
    height: auto;
  }
  body.single-post .elementor-location-single,
  body.single-post .elementor-location-footer{
    margin-left: 0;
    width: 100%;
  }
}

/* Fix switcher lingua ITA|EN sui single post: il widget che contiene lo switcher
   non deve essere compresso dal flex space-between del logo (altrimenti EN viene tagliato). */
body.single-post .sidebar .elementor-widget:has(.lang-switch){ flex-shrink:0 !important; width:auto !important; flex-basis:auto !important; }
body.single-post .sidebar .lang-switch{ white-space:nowrap; }

/* Larghezza sidebar sui single post = identica alle altre pagine (~307px) */
body.single-post{ --sidebar-width: 307px; }


/* =====================================================
   16. CTA POST CONTENT — stili bottoni "Torna a…" e "Richiedi Demo"
   Allineati ai bottoni della sidebar:
   - "Torna alla sezione" (amaltia-btn-outline) = GIALLO come "Subscribe to newsletter"
   - "Richiedi una Demo"  (amaltia-btn-primary) = NERO come "Request a Demo"
===================================================== */

.amaltia-btn-outline{
  background: #FDC300 !important;
  color: #212121 !important;
  border: 2px solid #FDC300 !important;
}
.amaltia-btn-outline:hover{
  background: #e5b000 !important;
  border-color: #e5b000 !important;
  color: #212121 !important;
}
.amaltia-btn-primary{
  background: #212121 !important;
  color: #ffffff !important;
  border: 2px solid #212121 !important;
}
.amaltia-btn-primary:hover{
  background: #000000 !important;
  border-color: #000000 !important;
  color: #ffffff !important;
}

/* =====================================================
   17. CARD GRID UNIFORM — altezza card uniforme negli archivi Blog/Case Study
===================================================== */
.amaltia-grid{ grid-auto-rows: 1fr; align-items: stretch; }
.amaltia-grid .amaltia-card{ height: 100%; }/* End custom CSS */