/*
Theme Name: Avada Child
Description: Child theme for Avada theme
Author: ThemeFusion
Author URI: https://theme-fusion.com
Template: Avada
Version: 1.0.0
Text Domain:  Avada
*/
/* Hero: pulsante secondario e striscia di fiducia (classi da usare nel layout Avada) */
.sa-hero-cta { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.sa-hero-cta .fusion-button { margin: 0; }
.sa-hero-cta .sa-btn-secondary { background: transparent !important; border: 2px solid #fff !important; color: #fff !important; }
.sa-hero-cta .sa-btn-secondary:hover { background: #fff !important; color: #1d1d1d !important; }
.sa-trust { display: flex; flex-wrap: wrap; gap: 8px 32px; justify-content: center; padding: 18px 0; font-size: .95em; }
.sa-trust > * { white-space: nowrap; }
@media (max-width: 767px) { .sa-trust > * { white-space: normal; text-align: center; } }
@media (prefers-reduced-motion: reduce) { .fullwidth-video { display: none; } }

/* Catalogo corsi (pagine ECM residenziale e FAD): griglia e schede prodotto */
.sa-catalogo ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 28px; margin: 0 !important; padding: 0 !important; }
.sa-catalogo ul.products::before, .sa-catalogo ul.products::after { display: none !important; }
.sa-catalogo ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; padding: 0 !important; clear: none !important; }
.sa-catalogo .fusion-product-wrapper { display: flex; flex-direction: column; height: 100%; background: #ffffff; border: 1px solid #E4E7E7 !important; border-radius: 14px; overflow: hidden; box-shadow: 0 6px 18px rgba(13, 84, 63, .08); transition: box-shadow .2s ease, transform .2s ease; }
.sa-catalogo .fusion-product-wrapper:hover { box-shadow: 0 12px 28px rgba(13, 84, 63, .16); transform: translateY(-3px); }
.sa-catalogo .product-images { border-bottom: 1px solid #E4E7E7; }
.sa-catalogo .fusion-product-content { flex: 1 1 auto; padding: 22px 24px 6px; text-align: left; }
.sa-catalogo .product-title, .sa-catalogo .product-title a { color: #0D543F !important; font-weight: 700; font-size: 16px; line-height: 1.3; }
.sa-catalogo .product-details-container .fusion-price-rating { margin-top: 12px; }
.sa-catalogo .price, .sa-catalogo .price .amount { color: #0D543F; font-weight: 800; font-size: 22px; }
.sa-catalogo .product-buttons { padding: 10px 24px 24px; }
.sa-catalogo .product-buttons .fusion-content-sep { display: none; }
.sa-catalogo .product-buttons-container { display: flex; flex-wrap: nowrap; gap: 10px; }
.sa-catalogo .product-buttons-container::before, .sa-catalogo .product-buttons-container::after { display: none !important; }
.sa-catalogo .product-buttons-container a { flex: 1 1 0; display: flex !important; align-items: center; justify-content: center; margin: 0 !important; float: none !important; min-width: 0; padding: 13px 10px !important; border-radius: 8px !important; font-size: 15px !important; font-weight: 700 !important; line-height: 1.2 !important; text-align: center !important; text-transform: none !important; letter-spacing: 0; box-sizing: border-box; transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.sa-catalogo .product-buttons-container a::before, .sa-catalogo .product-buttons-container a::after { display: none !important; content: none !important; }
.sa-catalogo a.add_to_cart_button, .sa-catalogo a.product_type_simple { background: #0D543F !important; color: #ffffff !important; border: 2px solid #0D543F !important; }
.sa-catalogo a.add_to_cart_button, .sa-catalogo a.product_type_simple { cursor: pointer; }
.sa-catalogo a.add_to_cart_button:hover, .sa-catalogo a.product_type_simple:hover, .sa-catalogo a.add_to_cart_button:focus-visible, .sa-catalogo a.product_type_simple:focus-visible { background: #0f7a5e !important; border-color: #0f7a5e !important; color: #ffffff !important; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(13, 84, 63, .35); }
.sa-catalogo a.add_to_cart_button:active, .sa-catalogo a.product_type_simple:active { transform: translateY(0); box-shadow: none; }
.sa-catalogo a.show_details_button { background: transparent !important; color: #0D543F !important; border: 2px solid #0D543F !important; }
.sa-catalogo a.show_details_button { cursor: pointer; }
.sa-catalogo a.show_details_button:hover, .sa-catalogo a.show_details_button:focus-visible { background: #0D543F !important; border-color: #0D543F !important; color: #ffffff !important; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(13, 84, 63, .35); }
.sa-catalogo a.show_details_button:active { transform: translateY(0); box-shadow: none; }

/* Moduli (es. preventivo sicurezza): riquadro all'80% della larghezza originale (77% della colonna), centrato; pulsante di invio come gli altri */
.sa-modulo > .fusion-builder-row > .fusion-layout-column > .fusion-column-wrapper:has(form) { width: 77%; margin-left: auto !important; margin-right: auto !important; }
@media (max-width: 1023px) { .sa-modulo > .fusion-builder-row > .fusion-layout-column > .fusion-column-wrapper:has(form) { width: 100%; } }
.sa-modulo .fusion-form-submit-field button.fusion-button, .sa-modulo button.form-form-submit { box-shadow: none !important; background: #0D543F !important; color: #ffffff !important; border: 2px solid #0D543F !important; border-radius: 8px !important; font-size: 15px !important; font-weight: 700 !important; line-height: 1.2 !important; padding: 13px 40px !important; text-transform: capitalize !important; letter-spacing: 0 !important; cursor: pointer; transition: background-color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.sa-modulo .fusion-form-submit-field button.fusion-button:hover, .sa-modulo button.form-form-submit:hover, .sa-modulo button.form-form-submit:focus-visible { background: #0f7a5e !important; border-color: #0f7a5e !important; color: #ffffff !important; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(13, 84, 63, .35) !important; }
.sa-modulo button.form-form-submit:active { transform: translateY(0); box-shadow: none !important; }

/* Accordion (es. indirizzi di studio): schede bianche arrotondate, icona più/meno solo CSS */
.sa-accordion .fusion-panel { background: #ffffff !important; border: 1px solid #E4E7E7 !important; border-radius: 12px !important; margin: 0 0 12px !important; overflow: hidden; box-shadow: 0 4px 14px rgba(13, 84, 63, .06); }
.sa-accordion .fusion-panel .panel-heading { padding: 0 !important; }
.sa-accordion .fusion-panel .panel-title a { display: flex !important; align-items: center; gap: 14px; padding: 20px 24px !important; color: #0D543F !important; font-size: 17px !important; font-weight: 700 !important; line-height: 1.35 !important; transition: background-color .2s ease; }
.sa-accordion .fusion-panel .panel-title a:hover { background: #E8F5F1; }
.sa-accordion .fusion-toggle-icon-wrapper { flex: 0 0 34px; width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: #0D543F; margin: 0 !important; }
.sa-accordion .fusion-toggle-icon-wrapper i { display: none !important; }
.sa-accordion .fusion-toggle-icon-wrapper::after { content: "+"; color: #ffffff; font-size: 22px; font-weight: 700; line-height: 1; }
.sa-accordion .fusion-panel .panel-title a[aria-expanded="true"] .fusion-toggle-icon-wrapper::after { content: "\2212"; }
.sa-accordion .fusion-panel .panel-body { padding: 0 24px 26px 72px !important; font-size: 16px; line-height: 1.75; color: #2b3a34; border: 0 !important; }
.sa-accordion .fusion-panel .panel-collapse { border: 0 !important; }

/* Programma GOL: selettore dei corsi compatto (riquadro scorrevole), scelta evidenziata, anteprima grande */
.sa-gol.sa-modulo > .fusion-builder-row > .fusion-layout-column > .fusion-column-wrapper:has(form) { width: 100%; }
.sa-gol .fusion-form-image-select-field fieldset { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-height: 880px; overflow-y: auto; padding: 8px; margin: 0; border: 1px solid #E4E7E7; border-radius: 12px; background: #F4F7F6; }
.sa-gol .fusion-form-image-select { position: relative; width: auto !important; margin: 0 !important; }
.sa-gol .fusion-form-image-select input { width: 100%; height: 100%; left: 0; top: 0; z-index: 2; cursor: pointer; }
.sa-gol .fusion-form-image-select label { position: relative; display: block !important; width: 100%; border: 3px solid transparent; border-radius: 10px; overflow: hidden; cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.sa-gol .fusion-form-image-select img { display: block; width: 100% !important; height: auto !important; }
.sa-gol .fusion-form-image-select:hover label { border-color: #88E1CA; transform: translateY(-2px); }
.sa-gol .fusion-form-image-select input:checked + label { border-color: #0D543F; box-shadow: 0 0 0 3px rgba(13, 84, 63, .25); }
.sa-gol .fusion-form-image-select input:checked + label::after { content: "\2713"; position: absolute; top: 8px; right: 8px; width: 32px; height: 32px; border-radius: 50%; background: #0D543F; color: #ffffff; font-size: 18px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.sa-gol-anteprima { margin: 0 0 22px; padding: 14px; background: #F4F7F6; border: 1px solid #E4E7E7; border-radius: 12px; text-align: center; }
.sa-gol-anteprima img { display: block; width: 100%; max-width: 300px; height: auto; margin: 0 auto 10px; border-radius: 8px; }
.sa-gol-anteprima img[hidden] { display: none; }
.sa-gol-anteprima .sa-gol-nome { margin: 0; font-size: 16px; font-weight: 700; color: #0D543F; line-height: 1.4; }
@media (max-width: 1023px) { .sa-gol .fusion-form-image-select-field fieldset { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 560px; } .sa-gol-anteprima { display: none; } }

/* Programma GOL: barra di scorrimento del selettore nei colori del sito (sottile, cursore verde, guida chiara) */
.sa-gol .fusion-form-image-select-field fieldset { scrollbar-width: thin; scrollbar-color: #149070 #E4E7E7; }
.sa-gol .fusion-form-image-select-field fieldset::-webkit-scrollbar { width: 10px; }
.sa-gol .fusion-form-image-select-field fieldset::-webkit-scrollbar-track { background: #E4E7E7; border-radius: 8px; }
.sa-gol .fusion-form-image-select-field fieldset::-webkit-scrollbar-thumb { background: #149070; border-radius: 8px; border: 2px solid #E4E7E7; }
.sa-gol .fusion-form-image-select-field fieldset::-webkit-scrollbar-thumb:hover { background: #0D543F; }

/* Mobile: margine laterale nelle sezioni di contenuto, intestazione, titolo e piede (il template a tutta larghezza su telefono le porta a filo schermo);
   il menu a tendina dell'intestazione scorre nel flusso, così non copre pulsante e titolo */
@media (max-width: 767px) {
  #main .fusion-fullwidth.fullwidth-box, .fusion-page-title-bar .fusion-fullwidth.fullwidth-box, .fusion-footer-widget-area .fusion-fullwidth.fullwidth-box, .fusion-tb-header .fusion-fullwidth.fullwidth-box { padding-left: 20px; padding-right: 20px; }
  /* intestazione su una riga: logo a sinistra, menu e pulsante a destra; il menu aperto si sovrappone al contenuto */
  .fusion-tb-header { position: relative; z-index: 500; }
  .fusion-tb-header > .fusion-fullwidth:nth-child(2) { position: relative; padding-top: 12px !important; padding-bottom: 12px !important; }
  .fusion-tb-header > .fusion-fullwidth:nth-child(2) .fusion-builder-row { flex-wrap: nowrap !important; align-items: center; }
  .fusion-tb-header > .fusion-fullwidth:nth-child(2) .fusion-layout-column { width: auto !important; flex: 0 0 auto !important; margin-bottom: 0 !important; }
  .fusion-tb-header > .fusion-fullwidth:nth-child(2) .fusion-layout-column:first-child { flex: 1 1 auto !important; margin-right: auto; }
  .fusion-tb-header > .fusion-fullwidth:nth-child(2) .fusion-layout-column:first-child img { max-width: 170px !important; }
  .fusion-tb-header .awb-menu { position: static; }
  .fusion-tb-header .awb-menu__main-ul { position: absolute !important; left: 0; right: 0; top: 100%; z-index: 999; background: #ffffff; box-shadow: 0 12px 24px rgba(13, 84, 63, 0.18); }
  /* icona del menu: tre linee a menu chiuso, croce a menu aperto (di serie era invertita) */
  .fusion-tb-header .awb-menu__m-toggle[aria-expanded="false"] .awb-menu__m-collapse-icon-open, .fusion-tb-header .awb-menu__m-toggle[aria-expanded="true"] .awb-menu__m-collapse-icon-close { opacity: 0 !important; }
  .fusion-tb-header .awb-menu__m-toggle[aria-expanded="false"] .awb-menu__m-collapse-icon-close, .fusion-tb-header .awb-menu__m-toggle[aria-expanded="true"] .awb-menu__m-collapse-icon-open { opacity: 1 !important; }
}

/* Mobile: le colonne impilate (testo + immagine/scheda, colonne del piede) non restano più attaccate */
@media (max-width: 640px) {
  #main .fusion-builder-row > .fusion-layout-column:not(:last-child), .fusion-footer-widget-area .fusion-builder-row > .fusion-layout-column:not(:last-child) { margin-bottom: 32px !important; }
}

/* Mobile: intestazione solo con le icone social; scheda a fianco del pulsante senza rientro; team a due schede per riga */
@media (max-width: 767px) {
  .fusion-tb-header > .fusion-fullwidth:nth-child(1) .fusion-layout-column:first-child { display: none !important; }
  .fusion-tb-header > .fusion-fullwidth:nth-child(1) .fusion-layout-column { width: 100% !important; margin-bottom: 0 !important; }
  .fusion-tb-header > .fusion-fullwidth:nth-child(1) { padding-top: 10px !important; padding-bottom: 10px !important; }
}
@media (max-width: 640px) {
  #main [style*="margin-left:24px"], #main [style*="margin-left:28px"], #main [style*="margin-left:32px"] { margin-left: 0 !important; max-width: 100% !important; }
  .sa-team-griglia { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; }
  .sa-team-griglia > div > div { padding: 16px 14px 18px !important; }
  .sa-team-griglia strong { font-size: 17px !important; }
  .sa-team-griglia span { font-size: 13.5px !important; line-height: 1.5 !important; }
}

/* Menu principale: voci con sottolineatura (stessa larghezza del testo), pagina corrente in grassetto con barra, tendina arrotondata con ombra.
   Su telefono le voci restano righe a tutta larghezza, con la pagina corrente in verde scuro. */
.fusion-tb-header .awb-menu__main-a { font-weight: 600; letter-spacing: .04em; transition: background .2s, color .2s; }
@media (min-width: 768px) {
  .fusion-tb-header .awb-menu__main-a { background: transparent !important; border-radius: 0 !important; }
  .fusion-tb-header .awb-menu__main-a .menu-text { position: relative; padding: 6px 0; color: #0D543F; }
  .fusion-tb-header .awb-menu__main-a .menu-text::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 3px; border-radius: 3px; background: #149070; transform: scaleX(0); transform-origin: center; transition: transform .25s ease; }
  .fusion-tb-header .awb-menu__main-li:hover > .awb-menu__main-a, .fusion-tb-header .awb-menu__main-li:focus-within > .awb-menu__main-a, .fusion-tb-header .current-menu-item > .awb-menu__main-a, .fusion-tb-header .current-menu-ancestor > .awb-menu__main-a { background: transparent !important; color: #0D543F !important; }
  .fusion-tb-header .awb-menu__main-li:hover > .awb-menu__main-a .menu-text::after, .fusion-tb-header .awb-menu__main-li:focus-within > .awb-menu__main-a .menu-text::after, .fusion-tb-header .current-menu-item > .awb-menu__main-a .menu-text::after, .fusion-tb-header .current-menu-ancestor > .awb-menu__main-a .menu-text::after { transform: scaleX(1); }
  .fusion-tb-header .current-menu-item > .awb-menu__main-a .menu-text, .fusion-tb-header .current-menu-ancestor > .awb-menu__main-a .menu-text { font-weight: 700; }
  .fusion-tb-header .awb-menu__sub-li.current-menu-item > .awb-menu__sub-a { background: #E8F5F1 !important; color: #0D543F !important; }
}
.fusion-tb-header .awb-menu__sub-ul { border: 0 !important; border-radius: 14px; padding: 8px; margin-top: 8px; box-shadow: 0 14px 34px rgba(13, 84, 63, 0.18); overflow: hidden; }
.fusion-tb-header .awb-menu__sub-a { border-radius: 10px; padding: 11px 16px; font-size: 15px; font-weight: 500; color: #0D543F; transition: background .2s; }
.fusion-tb-header .awb-menu__sub-li:hover > .awb-menu__sub-a { background: #E8F5F1 !important; color: #0D543F !important; }
@media (max-width: 767px) {
  .fusion-tb-header .awb-menu__main-a { border-radius: 12px; }
  .fusion-tb-header .awb-menu__main-li:hover > .awb-menu__main-a { background: #E8F5F1 !important; color: #0D543F !important; }
  .fusion-tb-header .awb-menu__main-ul { padding: 8px 12px 12px; }
}
@media (max-width: 767px) {
  /* il menu aperto prende la larghezza dell'intera intestazione (Avada lo allinea alla riga, lasciando una striscia a sinistra) */
  .fusion-tb-header > .fusion-fullwidth:nth-child(2) .fusion-builder-row, .fusion-tb-header > .fusion-fullwidth:nth-child(2) .fusion-layout-column, .fusion-tb-header > .fusion-fullwidth:nth-child(2) .fusion-column-wrapper, .fusion-tb-header .awb-menu { position: static !important; }
  .fusion-tb-header .awb-menu__main-ul { left: 0 !important; right: 0 !important; width: auto !important; }
  .fusion-tb-header .awb-menu .menu-item > .awb-menu__main-a { color: #0D543F; }
  .fusion-tb-header .awb-menu .menu-item.current-menu-item > .awb-menu__main-a { background: #0D543F !important; color: #ffffff !important; }
}

/* Articoli, elenco news, 404: stile coerente col resto del sito */
.single-post #content { width: 100% !important; max-width: 860px; float: none !important; margin: 0 auto !important; padding: 48px 0 24px; }
.single-post article .fusion-post-title { display: none; }
.single-post article .post-content { font-size: 19px; line-height: 1.85; color: #2b3a34; }
.single-post article .post-content a { color: #149070; font-weight: 600; }
.single-post article .fusion-meta-info { border: 0; padding: 0 0 20px; margin: 0 0 8px; color: #5b6b64; font-size: 15px; }
.single-post article .fusion-meta-info a { color: #0D543F; font-weight: 600; }
.single-post .single-navigation { max-width: 860px; margin: 0 auto; padding: 16px 0 0; }
.single-post .about-author { display: none; }
.single-post .related-posts .fusion-title h3, .single-post .related-posts .fusion-title h2 { color: #0D543F; font-weight: 800; }
.fusion-posts-container article { border: 1px solid #E4E7E7 !important; border-radius: 16px; padding: 24px !important; margin-bottom: 28px !important; box-shadow: 0 8px 24px rgba(13, 84, 63, 0.06); }
.fusion-posts-container .fusion-date-box { background: #0D543F !important; border-radius: 12px; }
.fusion-posts-container .entry-title a { color: #0D543F; font-weight: 800; }
.fusion-posts-container .entry-title a:hover { color: #149070; }
.fusion-posts-container .fusion-single-line-meta, .fusion-posts-container .fusion-single-line-meta a { color: #5b6b64; }
.fusion-posts-container .fusion-read-more { color: #0D543F; font-weight: 700; }
.fusion-posts-container .fusion-read-more:hover { color: #149070; }
.pagination .current, .fusion-pagination .current { background: #0D543F !important; border-color: #0D543F !important; color: #ffffff !important; }
#sidebar .widget .widget-title, #sidebar .widget .heading h4 { color: #0D543F; font-weight: 800; }
.error404 .error-page .useful-links { display: none; }
.error404 .error-page .fusion-columns { display: flex; justify-content: center; gap: 48px; }
.error404 .error-page .fusion-column { width: auto; float: none; }
@media (max-width: 767px) {
  .single-post #content { padding: 32px 0 16px; }
  .single-post article .post-content { font-size: 17px; }
}

/* Shop e categorie prodotto: spazio sotto la paginazione, prima del piede */
.woocommerce-shop #main, .tax-product_cat #main { padding-bottom: 72px !important; }
.woocommerce-pagination { margin-top: 40px; }
