.elementor-kit-50{--e-global-color-primary:#111827;--e-global-color-secondary:#034667;--e-global-color-text:#4B5563;--e-global-color-accent:#496b1f;--e-global-typography-primary-font-family:"IBM Plex Sans";--e-global-typography-primary-font-size:1rem;--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"IBM Plex Sans";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"IBM Plex Sans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"IBM Plex Sans";--e-global-typography-accent-font-weight:700;--e-global-typography-accent-line-height:48px;--e-global-typography-76d79d9-font-family:"IBM Plex Sans";--e-global-typography-76d79d9-font-size:1rem;--e-global-typography-76d79d9-font-weight:400;--e-global-typography-76d79d9-line-height:1.5em;--e-global-typography-ce2e76e-font-family:"IBM Plex Sans";--e-global-typography-ce2e76e-font-size:0.875rem;--e-global-typography-ce2e76e-font-weight:400;--e-global-typography-ce2e76e-line-height:1.429em;color:var( --e-global-color-v4-wec-color-body );font-family:"IBM Plex Sans", Sans-serif;font-size:1.0625rem;font-weight:400;line-height:1.65em;}.elementor-kit-50 button,.elementor-kit-50 input[type="button"],.elementor-kit-50 input[type="submit"],.elementor-kit-50 .elementor-button{background-color:var( --e-global-color-v4-wec-color-brand );font-family:"Inter", Sans-serif;font-size:0.875rem;font-weight:700;color:var( --e-global-color-v4-wec-color-neutral-primary );border-radius:8px 8px 8px 8px;padding:0.75rem 1.25rem 0.75rem 1.25rem;}.elementor-kit-50 button:hover,.elementor-kit-50 button:focus,.elementor-kit-50 input[type="button"]:hover,.elementor-kit-50 input[type="button"]:focus,.elementor-kit-50 input[type="submit"]:hover,.elementor-kit-50 input[type="submit"]:focus,.elementor-kit-50 .elementor-button:hover,.elementor-kit-50 .elementor-button:focus{background-color:var( --e-global-color-v4-wec-color-brand-strong );color:var( --e-global-color-v4-wec-color-neutral-primary );}.elementor-kit-50 e-page-transition{background-color:#FFBC7D;}.elementor-kit-50 p{margin-block-end:38px;}.elementor-kit-50 a{color:var( --e-global-color-v4-wec-color-fg-brand );}.elementor-kit-50 a:hover{color:var( --e-global-color-v4-wec-color-fg-brand-strong );}.elementor-kit-50 h1{color:var( --e-global-color-v4-wec-color-heading );font-family:"IBM Plex Sans", Sans-serif;font-size:3.5rem;font-weight:700;line-height:1.1em;letter-spacing:-0.01em;}.elementor-kit-50 h2{color:var( --e-global-color-v4-wec-color-heading );font-family:"Plus Jakarta Sans", Sans-serif;font-size:2.25rem;font-weight:700;line-height:1.15em;letter-spacing:-0.01em;}.elementor-kit-50 h3{color:var( --e-global-color-v4-wec-color-heading );font-family:"IBM Plex Sans", Sans-serif;font-size:1.5rem;font-weight:500;line-height:1.25em;letter-spacing:0em;}.elementor-kit-50 h4{color:var( --e-global-color-v4-wec-color-heading );font-family:"IBM Plex Sans", Sans-serif;font-size:1.5rem;font-weight:700;line-height:1.3em;}.elementor-kit-50 h5{color:var( --e-global-color-v4-wec-color-heading );font-family:"IBM Plex Sans", Sans-serif;font-size:1.25rem;font-weight:700;line-height:1.35em;}.elementor-kit-50 h6{color:var( --e-global-color-v4-wec-color-heading );font-family:"IBM Plex Sans", Sans-serif;font-size:1.0625rem;font-weight:700;line-height:1.4em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-50 h1{font-size:2.75rem;}.elementor-kit-50 h2{font-size:2.25rem;}.elementor-kit-50 h3{font-size:1.625rem;}.elementor-kit-50 h4{font-size:1.375rem;}.elementor-kit-50 h5{font-size:1.125rem;}.elementor-kit-50 h6{font-size:1.0625rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:860px;}.e-con{--container-max-width:860px;}}@media(max-width:767px){.elementor-kit-50 h1{font-size:2.25rem;}.elementor-kit-50 h2{font-size:1.875rem;}.elementor-kit-50 h3{font-size:1.5rem;}.elementor-kit-50 h4{font-size:1.25rem;}.elementor-kit-50 h5{font-size:1.125rem;}.elementor-kit-50 h6{font-size:1.0625rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:680px;}.e-con{--container-max-width:680px;}}:root { --wec-font-sans:IBM Plex Sans; --wec-font-display:IBM Plex Sans; --wec-leading-none:1em; --wec-leading-tight:1.2em; --wec-leading-snug:1.35em; --wec-leading-normal:1.5em; --wec-leading-relaxed:1.7em; --wec-leading-loose:2em; --wec-spacing-ui-xs:16px; --wec-spacing-ui-sm:20px; --wec-spacing-ui-md:24px; --wec-spacing-ui-lg:28px; --wec-spacing-ui-xl:32px; --wec-spacing-ui-2xl:36px; --wec-spacing-ui-none:60px; --wec-font-weight-normal:px; --wec-font-weight-medium:px; --wec-font-weight-semibold:px; --wec-font-weight-bold:px; --wec-text-xs:0.75rem; --wec-text-xs--line-height:1.3333em; --wec-text-sm:0.875rem; --wec-text-sm--line-height:1.4286em; --wec-text-base:1rem; --wec-text-base--line-height:1.5em; --wec-text-lg:1.125rem; --wec-text-lg--line-height:1.5556em; --wec-text-xl:1.25rem; --wec-text-xl--line-height:1.4em; --wec-text-2xl:1.5rem; --wec-text-2xl--line-height:1.3333em; --wec-text-3xl:1.875rem; --wec-text-3xl--line-height:1.2em; --wec-text-4xl:2.25rem; --wec-text-4xl--line-height:1.1111em; --wec-text-5xl:3rem; --wec-text-5xl--line-height:1em; --wec-color-primary-50:#f5f8fc; --wec-color-primary-100:#e9f0f9; --wec-color-primary-200:#c8d8ed; --wec-color-primary-300:#9ebadf; --wec-color-primary-400:#779cd1; --wec-color-primary-500:#6089c6; --wec-color-primary-600:#436fae; --wec-color-primary-700:#31588f; --wec-color-primary-800:#23436f; --wec-color-primary-900:#17305b; --wec-color-primary-950:#0d1d38; --wec-color-accent-50:#fff7ed; --wec-color-accent-100:#ffedd5; --wec-color-accent-200:#fed7aa; --wec-color-accent-300:#fdba74; --wec-color-accent-400:#fb923c; --wec-color-accent-500:#f97316; --wec-color-accent-600:#ea580c; --wec-color-accent-700:#c2410c; --wec-color-accent-800:#9a3412; --wec-color-accent-900:#7c2d12; --wec-color-accent-950:#431407; --wec-color-fg-brand-subtle:#c8d8ed; --wec-color-fg-brand:#31588f; --wec-color-fg-brand-strong:#17305b; --wec-color-brand-softer:#f5f8fc; --wec-color-brand-soft:#e9f0f9; --wec-color-brand:#31588f; --wec-color-brand-medium:#c8d8ed; --wec-color-brand-strong:#23436f; --wec-color-brand-subtle:#c8d8ed; --wec-color-brand-light:#436fae; --wec-color-fg-brand-accent-subtle:#fed7aa; --wec-color-fg-brand-accent:#c2410c; --wec-color-fg-brand-accent-strong:#7c2d12; --wec-color-brand-accent-softer:#fff7ed; --wec-color-brand-accent-soft:#ffedd5; --wec-color-brand-accent:#c2410c; --wec-color-brand-accent-medium:#fed7aa; --wec-color-brand-accent-strong:#9a3412; --wec-color-brand-accent-subtle:#fed7aa; --wec-color-brand-accent-light:#ea580c; --wec-color-body:#4b5563; --wec-color-body-subtle:#6b7280; --wec-color-heading:#111827; --wec-color-default:#e5e7eb; --wec-color-default-medium:#e5e7eb; --wec-color-muted:#f9fafb; --wec-color-light:#f3f4f6; --wec-color-neutral-primary:#ffffff; --wec-color-neutral-primary-soft:#ffffff; --wec-color-neutral-secondary:#f9fafb; --wec-color-neutral-secondary-soft:#f9fafb; --wec-color-neutral-secondary-medium:#f9fafb; --wec-color-neutral-tertiary:#f3f4f6; --wec-color-neutral-tertiary-soft:#f3f4f6; --wec-color-neutral-tertiary-medium:#f3f4f6; --wec-color-neutral-quaternary:#e5e7eb; --wec-color-success:#047857; --wec-color-success-soft:#ecfdf5; --wec-color-success-medium:#d1fae5; --wec-color-success-strong:#065f46; --wec-color-danger:#be123c; --wec-color-danger-soft:#fff1f2; --wec-color-danger-medium:#ffe4e6; --wec-color-danger-strong:#9f1239; --wec-color-warning:#f97316; --wec-color-warning-soft:#fff7ed; --wec-color-warning-medium:#ffedd5; --wec-color-warning-strong:#c2410c; --wec-spacing-xs:0.25rem; --wec-spacing-sm:0.5rem; --wec-spacing-md:0.75rem; --wec-spacing-lg:1.25rem; --wec-spacing-xl:2rem; --wec-spacing-2xl:3rem; --wec-radius-xs:2px; --wec-radius-sm:4px; --wec-radius-md:6px; --wec-radius-lg:8px; --wec-radius-xl:12px; --wec-radius-2xl:16px; --wec-radius-control:12px; --wec-radius-surface:16px; --wec-topbar-visible:px; --wec-color-surface-header:#ffffff; --wec-color-text-header:#111827; --wec-color-border-header:#e5e7eb; --wec-color-surface-header-megamenu:#f9fafb; --wec-color-surface-header-hover:#f9fafb; --wec-color-text-header-hover:#111827; --wec-color-surface-header-active:#e9f0f9; --wec-color-text-header-active:#31588f; --wec-color-focus-header:#31588f; --wec-color-surface-footer:#23436f; --wec-color-text-footer:#ffffff; --wec-color-surface-footer-hover:#31588f; --wec-color-text-footer-hover:#ffffff; --wec-color-focus-footer:#ffffff; --wec-color-bg-transparent:#FFFFFF00; }
/* Start custom CSS *//* ================================================================
   STIRO SERVICE - CSS Custom Elementor
   Generato da rsoft_wec_to_elementor.py il 2026-07-21
   Fonte: wec_themes.css (webExpress Design System)
   RSoft Computer & Communication Consulting

   CHANGELOG
   2026-07-03 v2 — Fix contrasto WCAG AA sul blocco .dark:
     - fg-brand, fg-brand-strong portati a primary-300/200
     - aggiunto override fg-brand-accent (mancante)
     Vedi dettaglio nel blocco DARK MODE piu sotto.
   ================================================================ */

/* ----------------------------------------------------------------
   SHADOW VARIABLES
   Non gestibili come tipo nativo nel Variables Manager Elementor.
   ---------------------------------------------------------------- */
:root {
  --wec-shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --wec-shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --wec-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --wec-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --wec-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --wec-shadow-card: 0 10px 25px rgb(15 23 42 / 0.08);
  --wec-shadow-overlay: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --wec-shadow-control: 0 1px 2px 0 rgb(0 0 0 / 0.05);
}

/* ----------------------------------------------------------------
   DARK MODE
   Elementor non ha dark mode nativa.
   Attivata dalla classe .dark applicata da webExpress.

   FIX CONTRASTO WCAG AA — 2026-07-03
   --wec-color-fg-brand e --wec-color-fg-brand-strong erano sotto
   soglia AA (3.27:1 e limite 4.51:1 su sfondo scuro reale #030712).
   Portati rispettivamente a primary-300/primary-200 per un margine
   di sicurezza solido (8.29:1 e 12.42:1), mantenendo la gerarchia
   "strong" = piu leggibile di "base".
   Aggiunta anche --wec-color-fg-brand-accent, assente in precedenza:
   col nuovo valore light-mode (accent-800) il token scenderebbe
   a 3.27:1 su sfondo scuro senza un override dedicato.
   ---------------------------------------------------------------- */
.dark {
  --wec-color-body: #9ca3af;
  --wec-color-body-rgb: 156 163 175;
  --wec-color-body-subtle: #9ca3af;
  --wec-color-heading: #fff;
  --wec-color-brand: #00547c;
  --wec-color-brand-strong: #034667;
  --wec-color-brand-softer: #0b202f;
  --wec-color-brand-soft: #092a3d;
  --wec-color-brand-medium: #092a3d;
  --wec-color-fg-brand: #84acc0;        /* fix WCAG: era #1e688b (3.27:1) -> ora 8.29:1 su #030712 */
  --wec-color-fg-brand-strong: #b7cfda; /* fix WCAG: era #4c87a3 (5.08:1) -> ora 12.42:1 su #030712 */
  --wec-color-fg-brand-accent: #74af27; /* fix WCAG: token mancante, ereditava accent-800 (3.27:1) -> ora 7.58:1 su #030712 */
  --wec-color-brand-accent: #74af27;
  --wec-color-brand-accent-strong: #5f8f23;
  --wec-color-neutral-primary: #030712;
  --wec-color-neutral-secondary-medium: #1f2937;
  --wec-color-neutral-tertiary: #1f2937;
  --wec-color-default: #1f2937;
  --wec-color-default-medium: #374151;
  --wec-color-surface-header: #e5e7eb;
  --wec-color-text-header: #fff;
  --wec-color-surface-footer: #034667;
  --wec-color-text-footer: #fff;
  --wec-color-surface-footer-hover: #034667;
  --wec-color-text-footer-hover: #fff;
}

/* ----------------------------------------------------------------
   BASE FONT-SIZE - scala rem allineata a Tailwind (1rem = 16px)
   Non gestibile da Elementor UI.
   ---------------------------------------------------------------- */
html { font-size: 16px; }
@media (max-width: 1024px) { html { font-size: 15px; } }
@media (max-width: 767px)  { html { font-size: 15px; } }

/* ----------------------------------------------------------------
   SMOOTH SCROLL + FOCUS WCAG 2.1 AA
   ---------------------------------------------------------------- */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
/*
*:focus-visible {
  outline: 1px solid var(--wec-color-brand-accent, #5f8f23);
  outline-offset: 2px;
  border-radius: var(--wec-radius-sm, 4px);
}

*/
/* ----------------------------------------------------------------
   TIPOGRAFIA - Elementor v4 Atomic
   IMPORTANTE: in v4 Atomic i selettori cambiano rispetto a v3.
   Gli elementi usano classi proprie (.e-heading-base, ecc.)
   NON sono dentro .elementor-widget-text-editor.
   ---------------------------------------------------------------- */
/* FIX BUG-006 + BUG-001 Elementor v4 - margin: 0px su tutti gli Atomic Elements
   .elementor .e-heading-base e .elementor .e-paragraph-base
   Workaround: stessa specificita + !important */
.elementor h1.e-heading-base { margin-top: 0 ;      margin-bottom: 1.5rem ; }
.elementor h2.e-heading-base { margin-top: 0 ; margin-bottom: 1rem ; }
.elementor h3.e-heading-base { margin-top: 0 ;   margin-bottom: 0.75rem ; }
.elementor h4.e-heading-base { margin-top: 0 ; margin-bottom: 0.5rem ; }
.elementor h5.e-heading-base,
.elementor h6.e-heading-base { margin-top: 0; margin-bottom: 0.5rem ; }

.elementor h1.e-heading-base + h2.e-heading-base,
.elementor h2.e-heading-base + h3.e-heading-base { margin-top: 0 ; }

.elementor .e-paragraph-base { margin-top: 0 !important; margin-bottom: 1.25rem ; }
/* DEFAULT E RESET VARI PER WEC4 */
.elementor .e-default-span {
    padding: 0px;
    margin: 0px;
}

.elementor .wex-site-footer__shape--svg svg {
    color: inherit;
}
/* verificare */
/*
.elementor .e-paragraph-base:last-child { margin-bottom: 0 ; }
*/
/* ----------------------------------------------------------------
   SPAZIATURA AREE HTML LIBERE - v3 legacy e plugin terzi
   Necessario per widget Text Editor v3, Post Content, blog.
   ---------------------------------------------------------------- */
.elementor-widget-text-editor h1,
.entry-content h1 { margin-top: 0;      margin-bottom: 1.5rem; }
.elementor-widget-text-editor h2,
.entry-content h2 { margin-top: 0; margin-bottom: 1rem; }
.elementor-widget-text-editor h3,
.entry-content h3 { margin-top: 0;   margin-bottom: 0.75rem; }
.elementor-widget-text-editor h4,
.entry-content h4 { margin-top: 0; margin-bottom: 0.5rem; }
.elementor-widget-text-editor h5,
.elementor-widget-text-editor h6,
.entry-content h5,
.entry-content h6  { margin-top: 0; margin-bottom: 0.5rem; }
.elementor-widget-text-editor h1 + h2,
.elementor-widget-text-editor h2 + h3,
.entry-content h1 + h2,
.entry-content h2 + h3 { margin-top: 0; }
.elementor-widget-text-editor p,
.entry-content p { margin-top: 0; margin-bottom: 1.25rem; }

/* verificare */
/*
.elementor-widget-text-editor p:last-child,
.entry-content p:last-child { margin-bottom: 0; }
*/
.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol,
.entry-content ul,
.entry-content ol {
  margin-top: 0;
  margin-bottom: 1.25rem;
  padding-left: 1.5em;
}
.elementor-widget-text-editor li,
.entry-content li { margin-bottom: 0.4rem; }
.elementor-widget-text-editor li:last-child,
.entry-content li:last-child { margin-bottom: 0; }
.elementor-widget-text-editor blockquote,
.entry-content blockquote {
  margin: 1.5rem 0;
  padding: 1rem 1.5rem;
  border-left: 3px solid var(--wec-color-brand-accent-light, #74af27);
  background: var(--wec-color-brand-accent-softer, #f9fbf6);
  color: var(--wec-color-body, #4b5563);
  font-style: italic;
  border-radius: 0 var(--wec-radius-lg, 8px) var(--wec-radius-lg, 8px) 0;
}
.elementor-widget-text-editor hr,
.entry-content hr {
  margin: 2rem 0;
  border: none;
  border-top: 1px solid var(--wec-color-default, #e5e7eb);
}
.wex-site-footer__text a
{
    font-family: var(--wec-font-sans);
    font-weight: 400;
    font-size: var(--wec-text-sm);
    color: var(--wec-color-neutral-primary);
    line-height: var(--wec-text-sm--line-height);
}
.elementor .wex-site-footer__copyright a,
.elementor .wex-site-footer__powered a
 {
    color: var(--wec-color-text-footer-hover);
}
/* CONFIG ELEMENTI WP */
h2.wp-block-heading {
    margin-block-start: 0;
}
.wp-block-paragraph a,
.wp-block-list li a,
.e-paragraph-base a,
.elementor-widget-text-editor p a
{
text-decoration: underline !important;
}
ul.wp-block-list {
    margin-bottom: 38px;
}

:root :where(.wp-element-button, .wp-block-button__link) {
    background-color: inherit;
}
figure.wp-block-embed.is-type-video.is-provider-youtube.wp-block-embed-youtube.wp-embed-aspect-16-9.wp-has-aspect-ratio {
    margin-bottom: 38px !important;
}
.wex-c-testo-evidenziato-warning {
    padding-block-start: var(--wec-spacing-xs);
    padding-block-end: var(--wec-spacing-xs);
    padding-inline-start: var(--wec-spacing-sm);
    padding-inline-end: var(--wec-spacing-sm);
    border-radius: var(--wec-radius-lg);
    border-width: 1px;
    border-color: var(--wec-color-fg-brand-strong);
    border-style: solid;
    background-color: var(--wec-color-warning-soft);
    display: inline-block;
}

/* ============================================
   BREADCRUMB
   Rank Math SEO
   ============================================ */

/* Reset paragrafo generato da Rank Math */
.wex-nav-breadcrumb .rank-math-breadcrumb p {
  margin: 0;
}

/* Link breadcrumb */
.wex-nav-breadcrumb .rank-math-breadcrumb a {
  text-decoration: none;
  transition: color 0.2s ease;
   font-size: 0.8125rem;
}

/* Hover link */
.wex-nav-breadcrumb .rank-math-breadcrumb a:hover {
  color: var(--wec-color-fg-brand-strong);
  text-decoration: underline;
}

/* Voce corrente */
.wex-nav-breadcrumb .rank-math-breadcrumb .last {
  color: var(--wec-color-body);
   font-size: 0.8125rem;
}

/* Separatore */
.wex-nav-breadcrumb .rank-math-breadcrumb .separator {
  color: var(--wec-color-body-subtle);
  margin-inline: 6px;
}

/* Focus accessibile */
.wex-nav-breadcrumb .rank-math-breadcrumb a:focus-visible {
  outline: 1px solid var(--wec-color-fg-brand);
  outline-offset: 2px;
  border-radius: 2px;
}

/* ==========================================================
   WEX COMPONENT — MESSAGE
      Kit Elementor 

   Struttura:
   .wex-c-message
   ├── .wex-c-message__icon
   └── .wex-c-message__body
       ├── .wex-c-message__title
       └── .wex-c-message__text

   Varianti:
   .wex-c-message--info
   .wex-c-message--warning
   .wex-c-message--danger
   .wex-c-message--success
   ========================================================== */


/* ----------------------------------------------------------
   BASE
   ---------------------------------------------------------- */

.wex-c-message {
	display: flex;
	align-items: flex-start;
	gap: var(--wec-spacing-ui-xs);

	width: 100%;
	padding: var(--wec-spacing-ui-xs);

	border-width: 1px;
	border-style: solid;
	border-radius: var(--wec-radius-lg);

	box-sizing: border-box;
}


/* ----------------------------------------------------------
   GUTENBERG RESET
   Neutralizza lo spacing automatico dei layout flow
   ---------------------------------------------------------- */

.wex-c-message > * {
	margin-block-start: 0;
	margin-block-end: 0;
}


/* ----------------------------------------------------------
   ICON
   Sovrascrive anche il width: 24px del blocco Icon WP
   ---------------------------------------------------------- */

.wex-c-message__icon {
	flex: 0 0 32px;

	width: 48px;
	min-width: 48px;

	margin: 0;

	color: currentColor;
}

.wex-c-message__icon svg {
	display: block;

	width: 48px;
	height: 48px;

	color: currentColor;
	fill: currentColor;
}


/* ----------------------------------------------------------
   BODY
   12px di offset verticale per allineamento ottico
   icona / titolo
   ---------------------------------------------------------- */

.wex-c-message__body {
	flex: 1 1 auto;

	min-width: 0;

	margin: 0;
	margin-block-start: 12px;
}


/* Neutralizza lo spacing Gutenberg interno */

.wex-c-message__body > * {
	margin-block-start: 0;
	margin-block-end: 0;
}


/* ----------------------------------------------------------
   TITLE
   ---------------------------------------------------------- */

.wex-c-message__title {
	margin: 0 0 1rem;

	font-family: var(--wec-font-sans);
	font-size: var(--wec-text-base);
	font-weight: 600;
	line-height: var(--wec-text-base--line-height);
	margin-block-end: 12px !important;
}


/* ----------------------------------------------------------
   TEXT
   ---------------------------------------------------------- */

.wex-c-message__text {
	margin: 0;

	font-family: var(--wec-font-sans);
	font-size: var(--wec-text-base);
	font-weight: 400;
	line-height: var(--wec-text-base--line-height);

	color: var(--wec-color-body);
	font-style: italic;
}


/* Reset dei margini prodotti dai blocchi Gutenberg */

.wex-c-message__text > :first-child {
	margin-block-start: 0;
}

.wex-c-message__text > :last-child {
	margin-block-end: 0;
}


/* ==========================================================
   INFO
   Palette brand
   ========================================================== */

.wex-c-message--info {
	background-color: var(--wec-color-brand-softer);
	border-color: var(--wec-color-brand-medium);
	color: var(--wec-color-body);
}

.wex-c-message--info .wex-c-message__icon {
	color: var(--wec-color-fg-brand);
}

.wex-c-message--info .wex-c-message__title {
	color: var(--wec-color-fg-brand-strong);
}


/* ==========================================================
   WARNING
   ========================================================== */

.wex-c-message--warning {
	background-color: var(--wec-color-warning-soft);
	border-color: var(--wec-color-warning-medium);
	color: var(--wec-color-body);
}

.wex-c-message--warning .wex-c-message__icon,
.wex-c-message--warning .wex-c-message__title {
	color: var(--wec-color-warning-strong);
}


/* ==========================================================
   DANGER
   ========================================================== */

.wex-c-message--danger {
	background-color: var(--wec-color-danger-soft);
	border-color: var(--wec-color-danger-medium);
	color: var(--wec-color-body);
}

.wex-c-message--danger .wex-c-message__icon,
.wex-c-message--danger .wex-c-message__title {
	color: var(--wec-color-danger-strong);
}


/* ==========================================================
   SUCCESS
   ========================================================== */

.wex-c-message--success {
	background-color: var(--wec-color-success-soft);
	border-color: var(--wec-color-success-medium);
	color: var(--wec-color-body);
}

.wex-c-message--success .wex-c-message__icon,
.wex-c-message--success .wex-c-message__title {
	color: var(--wec-color-success-strong);
}

/* ================================================================
   WORDPRESS CORE ACCORDION
   Component: wex-c-accordion

   Uso editoriale:
   aggiungere al blocco Accordion WordPress la classe:
   wex-c-accordion

   Il markup interno resta interamente gestito da WordPress.
   ================================================================ */


/* ----------------------------------------------------------------
   COMPONENT WRAPPER
   ---------------------------------------------------------------- */

.wex-c-accordion.wp-block-accordion {
    width: 100%;
    overflow: hidden;

    border: 1px solid var(--wec-color-default, #e5e7eb);
    border-radius: var(--wec-radius-surface, 16px);

    background: var(--wec-color-neutral-primary, #ffffff);
    margin-bottom: 38px;
}


/* ----------------------------------------------------------------
   ITEM
   ---------------------------------------------------------------- */

.wex-c-accordion .wp-block-accordion-item {
    margin: 0;
    padding: 0;

    border: 0;
    border-bottom: 1px solid var(--wec-color-default, #e5e7eb);
}

.wex-c-accordion .wp-block-accordion-item:last-child {
    border-bottom: 0;
}


/* ----------------------------------------------------------------
   HEADING
   Neutralizza i margini editoriali globali degli heading.
   ---------------------------------------------------------------- */

.wex-c-accordion .wp-block-accordion-heading {
    margin: 0;
    padding: 0;
}


/* ----------------------------------------------------------------
   TOGGLE BUTTON
   ---------------------------------------------------------------- */

.wex-c-accordion .wp-block-accordion-heading__toggle {
    display: flex;
    align-items: center;
    gap: var(--wec-spacing-lg, 1.25rem);

    width: 100%;
    min-height: 64px;

    margin: 0;
    padding: 20px 24px;

    border: 0;
    border-radius: 0;

    background: transparent;

    color: var(--wec-color-heading, #111827);
    text-align: left;

    cursor: pointer;

    transition:
        background-color 180ms ease,
        color 180ms ease;
}


/* ----------------------------------------------------------------
   TITLE
   Valori allineati alla Global Class wex-c-accordion__title
   ---------------------------------------------------------------- */

.wex-c-accordion .wp-block-accordion-heading__toggle-title {
    flex: 1;
    min-width: 0;

    font-family: var(--wec-font-display, "Plus Jakarta Sans", sans-serif);
    font-size: var(--wec-text-base, 1rem);
    font-weight: 600;
    line-height: var(--wec-leading-normal, 1.5);

    color: inherit;
}


/* ----------------------------------------------------------------
   ICON
   ---------------------------------------------------------------- */

.wex-c-accordion .wp-block-accordion-heading__toggle-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 32px;

    width: 32px;
    height: 32px;

    font-family: var(--wec-font-sans, "Inter", sans-serif);
    font-size: 0;
    font-weight: 400;
    line-height: 1;

    color: var(--wec-color-brand-accent-light, #74af27);

    transition:
        color 180ms ease,
        transform 180ms ease;
}


/* Simbolo + controllato dal Design System */

.wex-c-accordion .wp-block-accordion-heading__toggle-icon::before {
    content: "+";

    font-size: 1.5rem;
    line-height: 1;
}


/* Stato aperto: + diventa − */

.wex-c-accordion
.wp-block-accordion-heading__toggle[aria-expanded="true"]
.wp-block-accordion-heading__toggle-icon::before {
    content: "−";
}


/* ----------------------------------------------------------------
   HOVER
   ---------------------------------------------------------------- */

@media (hover: hover) {

    .wex-c-accordion .wp-block-accordion-heading__toggle:hover {
        background:
            var(--wec-color-neutral-secondary, #f9fafb);
    }

    .wex-c-accordion
    .wp-block-accordion-heading__toggle:hover
    .wp-block-accordion-heading__toggle-title {
        color: var(--wec-color-fg-brand, #034667);
    }

}


/* ----------------------------------------------------------------
   OPEN STATE
   WordPress gestisce aria-expanded.
   Non dipendiamo dalla presenza della sola classe is-open.
   ---------------------------------------------------------------- */

.wex-c-accordion
.wp-block-accordion-heading__toggle[aria-expanded="true"] {
    background:
        var(--wec-color-neutral-secondary, #f9fafb);
}

.wex-c-accordion
.wp-block-accordion-heading__toggle[aria-expanded="true"]
.wp-block-accordion-heading__toggle-title {
    color: var(--wec-color-fg-brand, #034667);
}


/* ----------------------------------------------------------------
   PANEL
   Valori allineati alla Global Class wex-c-accordion__content
   ---------------------------------------------------------------- */

.wex-c-accordion .wp-block-accordion-panel {
    margin: 0;

    padding:
        0
        24px
        20px
        24px;

    color: var(--wec-color-body, #4b5563);

    font-family: var(--wec-font-sans, "Inter", sans-serif);
    line-height: var(--wec-leading-normal, 1.5);
}


/* Continuità visiva tra header aperto e contenuto */

.wex-c-accordion
.wp-block-accordion-item:has(
    .wp-block-accordion-heading__toggle[aria-expanded="true"]
)
.wp-block-accordion-panel {
    background:
        var(--wec-color-neutral-secondary, #f9fafb);
}


/* ----------------------------------------------------------------
   CONTENT RHYTHM
   Evita margini indesiderati sul primo/ultimo elemento del pannello.
   ---------------------------------------------------------------- */

.wex-c-accordion .wp-block-accordion-panel > :first-child {
    margin-top: 0;
}

.wex-c-accordion .wp-block-accordion-panel > :last-child {
    margin-bottom: 0;
}


/* ----------------------------------------------------------------
   FOCUS
   Il sito possiede già un focus-visible globale.
   Qui miglioriamo soltanto la geometria sul controllo accordion.
   ---------------------------------------------------------------- */

.wex-c-accordion
.wp-block-accordion-heading__toggle:focus-visible {
    position: relative;
    z-index: 1;

    outline:
        3px solid
        var(--wec-color-brand-accent, #5f8f23);

    outline-offset: -3px;

    border-radius: var(--wec-radius-lg, 8px);
}


/* ----------------------------------------------------------------
   MOBILE
   Breakpoint ufficiale progetto <= 767px
   ---------------------------------------------------------------- */

@media (max-width: 767px) {

    .wex-c-accordion .wp-block-accordion-heading__toggle {
        gap: var(--wec-spacing-md, 0.75rem);

        min-height: 56px;

        padding: 16px 16px;
    }

    .wex-c-accordion .wp-block-accordion-heading__toggle-icon {
        flex-basis: 28px;

        width: 28px;
        height: 28px;
    }

    .wex-c-accordion
    .wp-block-accordion-heading__toggle-icon::before {
        font-size: 1.375rem;
    }

    .wex-c-accordion .wp-block-accordion-panel {
        padding:
            0
            16px
            16px
            16px;
    }

}


/* ----------------------------------------------------------------
   REDUCED MOTION
   ---------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

    .wex-c-accordion .wp-block-accordion-heading__toggle,
    .wex-c-accordion .wp-block-accordion-heading__toggle-icon {
        transition: none;
    }

}/* End custom CSS */