/* === Sicurezza Parchi: Tipografia + FAQ accordion + immagini inline === */

/* Colore default solo per portfolio info; widget Elementor mantengono il loro text_color */
.consulting_elementor_portfolio_information .item .portfolio_info_description {
    color: #1F2529;
}

/* Heading dimensioni ridotte e bilanciate */
.elementor-widget-text-editor h2 {
    font-size: 28px !important;
    line-height: 1.3 !important;
    margin-top: 40px !important;
    margin-bottom: 16px !important;
    font-weight: 700 !important;
}
.elementor-widget-text-editor h3 {
    font-size: 20px !important;
    line-height: 1.4 !important;
    margin-top: 32px !important;
    margin-bottom: 12px !important;
    font-weight: 700 !important;
}
.elementor-widget-text-editor h4 {
    font-size: 17px !important;
    line-height: 1.4 !important;
    margin-top: 24px !important;
    margin-bottom: 8px !important;
    font-weight: 600 !important;
}
.elementor-widget-text-editor p,
.elementor-default .elementor-widget-text-editor ul:not(.elementor-editor-element-settings) li,
.elementor-default .elementor-text-editor ul:not(.elementor-editor-element-settings) li,
.elementor-widget-text-editor ol li {
    font-size: 20px;
    line-height: 1.65;
    color: #1F2529;
}
@media (max-width: 1024px) {
    .elementor-widget-text-editor p,
    .elementor-default .elementor-widget-text-editor ul:not(.elementor-editor-element-settings) li,
    .elementor-default .elementor-text-editor ul:not(.elementor-editor-element-settings) li,
    .elementor-widget-text-editor ol li {
        font-size: 18px;
    }
}

/* FAQ accordion HTML5 (details/summary) */
.elementor-widget-text-editor details.sp-faq {
    border-bottom: 1px solid #e1e5e9;
    padding: 0;
    margin: 0;
    background: transparent;
}
.elementor-widget-text-editor details.sp-faq:first-of-type {
    border-top: 1px solid #e1e5e9;
}
.elementor-widget-text-editor details.sp-faq summary {
    list-style: none;
    cursor: pointer;
    padding: 18px 40px 18px 0;
    position: relative;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.4;
    color: #1F2529;
    user-select: none;
}
.elementor-widget-text-editor details.sp-faq summary::-webkit-details-marker {
    display: none;
}
.elementor-widget-text-editor details.sp-faq summary::after {
    content: "+";
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    font-weight: 400;
    color: #19BD78;
    transition: transform 0.2s ease;
    line-height: 1;
}
.elementor-widget-text-editor details.sp-faq[open] summary::after {
    content: "−";
}
.elementor-widget-text-editor details.sp-faq summary:hover {
    color: #19BD78;
}
.elementor-widget-text-editor details.sp-faq[open] {
    background: #fafbfc;
}
.elementor-widget-text-editor details.sp-faq[open] summary {
    padding-bottom: 8px;
}
.elementor-widget-text-editor details.sp-faq p {
    padding: 0 12px 18px 12px;
    margin: 0;
    color: #2a3338 !important;
}

/* Immagini inline dentro text-editor */
.elementor-widget-text-editor figure.sp-inline-fig {
    margin: 36px 0;
    text-align: center;
}
.elementor-widget-text-editor figure.sp-inline-fig img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}
.elementor-widget-text-editor figure.sp-inline-fig figcaption {
    margin-top: 12px;
    font-size: 14px;
    color: #6a7378;
    font-style: italic;
}

/* === Layout a colonne alternate testo/immagine === */
.elementor-widget-text-editor .sp-split {
    display: flex;
    align-items: center;
    gap: 48px;
    margin: 56px 0;
}
.elementor-widget-text-editor .sp-split--right {
    flex-direction: row-reverse;
}
.elementor-widget-text-editor .sp-split-text {
    flex: 1 1 58%;
    min-width: 0;
}
.elementor-widget-text-editor .sp-split-img {
    flex: 1 1 42%;
    min-width: 0;
}
.elementor-widget-text-editor .sp-split-img img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 6px 24px rgba(0,0,0,0.1);
    display: block;
}
.elementor-widget-text-editor .sp-split-img figcaption {
    margin-top: 10px;
    font-size: 13px;
    color: #6a7378;
    font-style: italic;
    text-align: center;
}
.elementor-widget-text-editor .sp-split-text h3,
.elementor-widget-text-editor .sp-split-text h4 {
    margin-top: 0 !important;
}
.elementor-widget-text-editor .sp-split-text > *:last-child {
    margin-bottom: 0;
}
@media (max-width: 768px) {
    .elementor-widget-text-editor .sp-split,
    .elementor-widget-text-editor .sp-split--right {
        flex-direction: column !important;
        gap: 28px;
        margin: 36px 0;
    }
    .elementor-widget-text-editor .sp-split-text,
    .elementor-widget-text-editor .sp-split-img {
        flex-basis: 100%;
    }
}

/* === MOBILE FIX (≤ 768px) === */
@media (max-width: 768px) {
    /* Padding orizzontale per tutte le sezioni: stacca dai bordi */
    .elementor-section > .elementor-container {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* Padding verticale sezioni ridotto */
    .elementor-section {
        padding-top: 50px !important;
        padding-bottom: 50px !important;
    }

    /* Hero section: padding più ampio per respirare */
    .elementor-top-section:first-of-type {
        padding-top: 60px !important;
        padding-bottom: 60px !important;
    }

    /* Image responsive: niente width fisso su mobile */
    .elementor-widget-image img {
        max-width: 100% !important;
        width: 100% !important;
        height: auto !important;
    }
    .elementor-widget-image .elementor-widget-container {
        width: 100% !important;
    }

    /* Heading dimensioni ridotte */
    .vc_custom_heading h1.consulting-custom-title,
    .elementor-widget-vc_custom_heading h1 {
        font-size: 26px !important;
        line-height: 1.25 !important;
    }
    .vc_custom_heading h2.consulting-custom-title,
    .elementor-widget-vc_custom_heading h2 {
        font-size: 22px !important;
        line-height: 1.3 !important;
    }
    .vc_custom_heading h3.consulting-custom-title,
    .elementor-widget-vc_custom_heading h3 {
        font-size: 19px !important;
        line-height: 1.35 !important;
    }
    .elementor-widget-text-editor h3 {
        font-size: 19px !important;
    }
    .elementor-widget-text-editor h4 {
        font-size: 16px !important;
    }

    /* Paragrafi font ridotto */
    .elementor-widget-text-editor p,
    .elementor-widget-text-editor li {
        font-size: 15px !important;
        line-height: 1.6 !important;
    }

    /* Button mobile size */
    .elementor-widget-button .elementor-button {
        padding: 14px 24px !important;
        font-size: 14px !important;
    }

    /* Column split su mobile: stack 100% senza margin offset */
    .elementor-column.elementor-col-50 {
        width: 100% !important;
    }

    /* Reset offset margin sulle immagini stacked (left margin che era per desktop) */
    .elementor-widget-image {
        margin-left: 0 !important;
    }
    .elementor-widget-image .elementor-widget-container {
        margin-left: 0 !important;
    }

    /* Accordion summary padding mobile */
    .elementor-accordion .elementor-accordion-item .elementor-tab-title {
        padding: 16px 12px !important;
        font-size: 15px !important;
    }
    .elementor-accordion .elementor-tab-content {
        padding: 10px 12px 16px !important;
        font-size: 15px !important;
    }
}

/* Tablet adjustments (769-1024) */
@media (min-width: 769px) and (max-width: 1024px) {
    .elementor-section > .elementor-container {
        padding-left: 30px !important;
        padding-right: 30px !important;
    }
}


/* === MOBILE HEADER: padding ridotto === */
@media (max-width: 1024px) {
    /* Header section padding tagliato */
    header .elementor-section,
    header .elementor-top-section {
        padding-top: 10px !important;
        padding-bottom: 10px !important;
    }
    header .elementor-column .elementor-element-populated {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
    /* Logo dimensione mobile più contenuta */
    header .elementor-widget-image img,
    header .consulting-logo img {
        max-width: 140px !important;
        height: auto !important;
    }
    /* Page title section (Header With Title) padding ridotto */
    header .consulting_breadcrumbs,
    header [class*="page-title"],
    header [class*="page_title"] {
        padding-top: 30px !important;
        padding-bottom: 30px !important;
    }
}

/* === MOBILE MENU: solo colori link (tema gestisce layout) === */
@media (max-width: 1024px) {
    .menu_toggle + nav a,
    .menu_toggle + nav .menu-item > a {
        color: #FFFFFF !important;
    }
    .menu_toggle + nav li.current-menu-item > a,
    .menu_toggle + nav a:hover {
        color: #19BD78 !important;
    }
}

/* === MENU MOBILE DRAWER SLIDE-IN (da sinistra) === */
@media (max-width: 1024px) {
    /* Logo + hamburger allineati orizzontalmente nel header */
    header .elementor-section .elementor-container {
        flex-wrap: nowrap !important;
        align-items: center !important;
    }
    header .elementor-column {
        width: auto !important;
        flex: 0 1 auto !important;
    }
    header .elementor-column:first-child {
        flex-grow: 1 !important;
    }

    /* (overlay scuro rimosso) */

    /* NAV drawer da sinistra — NON fullscreen */
    .menu_toggle ~ nav,
    .menu_toggle + nav {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        width: 280px !important;
        max-width: 78vw !important;
        height: 100vh !important;
        background-color: #1B3041 !important;
        z-index: 999998 !important;
        margin: 0 !important;
        padding: 70px 0 30px 0 !important;
        transform: translateX(-100%) !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transition: transform 0.3s ease, opacity 0.25s ease, visibility 0.3s !important;
        display: block !important;
        overflow-y: auto !important;
        box-shadow: 2px 0 20px rgba(0,0,0,0.3) !important;
    }
    .menu_toggle.open ~ nav,
    .menu_toggle.open + nav {
        transform: translateX(0) !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    /* UL menu = voci allineate a sinistra */
    .menu_toggle ~ nav > ul {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
        display: block !important;
        background: transparent !important;
    }
    .menu_toggle ~ nav > ul > li {
        width: 100% !important;
        text-align: left !important;
        margin: 0 !important;
        padding: 0 !important;
        border-bottom: 1px solid rgba(255,255,255,0.08) !important;
        list-style: none !important;
        background: transparent !important;
    }
    .menu_toggle ~ nav > ul > li:last-child {
        border-bottom: none !important;
    }
    .menu_toggle ~ nav > ul > li > a {
        display: block !important;
        padding: 16px 24px !important;
        font-size: 17px !important;
        font-weight: 700 !important;
        letter-spacing: 0.5px !important;
        color: #FFFFFF !important;
        text-decoration: none !important;
        text-transform: uppercase !important;
        text-align: left !important;
    }
    .menu_toggle ~ nav > ul > li.current-menu-item > a,
    .menu_toggle ~ nav > ul > li > a:hover {
        color: #19BD78 !important;
    }
    .menu_toggle ~ nav > ul > li > ul.sub-menu {
        background: rgba(0,0,0,0.15) !important;
        position: static !important;
        box-shadow: none !important;
        margin: 0 !important;
        padding: 4px 0 !important;
    }
    .menu_toggle ~ nav > ul > li > ul.sub-menu > li {
        list-style: none !important;
    }
    .menu_toggle ~ nav > ul > li > ul.sub-menu > li > a {
        display: block !important;
        padding: 10px 24px 10px 40px !important;
        font-size: 14px !important;
        font-weight: 500 !important;
        text-transform: none !important;
        color: rgba(255,255,255,0.85) !important;
        text-align: left !important;
    }
    .menu_toggle ~ nav > ul > li > .arrow {
        display: none !important;
    }

    /* Hamburger toggle in posizione header (default), no fix */
    .menu_toggle {
        z-index: 999999 !important;
        position: relative !important;
    }

    /* Quando aperto: si trasforma in X close dentro il drawer */
    .menu_toggle.open {
        position: fixed !important;
        top: 20px !important;
        left: 232px !important;
        right: auto !important;
        max-width: 78vw !important;
    }
    .menu_toggle.open button {
        background: transparent !important;
        border: none !important;
        cursor: pointer !important;
        width: 32px !important;
        height: 32px !important;
        position: relative !important;
    }
    /* Sostituisco l'hamburger con la X CSS quando .open */
    .menu_toggle.open button::before {
        content: '' !important;
        position: absolute !important;
        top: 50% !important; left: 50% !important;
        width: 24px !important;
        height: 3px !important;
        background: #FFFFFF !important;
        transform: translate(-50%, -50%) rotate(45deg) !important;
    }
    .menu_toggle.open button::after {
        content: '' !important;
        position: absolute !important;
        top: 50% !important; left: 50% !important;
        width: 24px !important;
        height: 3px !important;
        background: #FFFFFF !important;
        transform: translate(-50%, -50%) rotate(-45deg) !important;
    }
}

/* === Allineamento hamburger col logo (v5 — override top -27px del tema) === */
@media (max-width: 1024px) {
    /* Toggle: rimuovo offset top:-27px nativo + center via flex */
    .menu_toggle:not(.open) {
        top: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        align-self: center !important;
    }
    /* Wrapper outer flex centered */
    header .consulting_menu_nav.consulting_menu_nav-layout {
        align-items: center !important;
        justify-content: flex-end !important;
    }
    /* Container header centrato verticale */
    header .elementor-section > .elementor-container {
        align-items: center !important;
    }
    /* Drawer e link: pointer-events */
    .menu_toggle.open ~ nav,
    .menu_toggle.open + nav,
    .menu_toggle.open ~ nav *,
    .menu_toggle.open + nav * {
        pointer-events: auto !important;
    }
}

/* === MOBILE MENU: sub-menu sempre espanso === */
@media (max-width: 1024px) {
    /* Sub-menu visibile sempre, no toggle */
    .menu_toggle ~ nav .sub-menu,
    .menu_toggle ~ nav ul.sub-menu,
    .menu_toggle ~ nav > ul > li > ul.sub-menu {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
        position: static !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        background: rgba(0,0,0,0.18) !important;
    }
    /* Sub-menu items visibili e cliccabili */
    .menu_toggle ~ nav .sub-menu > li,
    .menu_toggle ~ nav ul.sub-menu > li {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        visibility: visible !important;
        opacity: 1 !important;
        list-style: none !important;
        border-bottom: 1px solid rgba(255,255,255,0.05) !important;
    }
    .menu_toggle ~ nav .sub-menu > li > a {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        color: #FFFFFF !important;
        padding: 8px 16px !important;
        font-size: 14px !important;
    }
}

/* === Riduce altezza section page title (widget page-title + breadcrumb) === */
@media (max-width: 1024px) {
    /* Section padding tagliato */
    header section.elementor-top-section:has(.elementor-widget-page-title) {
        padding-top: 25px !important;
        padding-bottom: 25px !important;
    }
    /* Widget page-title: H1 ridotto */
    .elementor-widget-page-title h1,
    .elementor-widget-page-title .elementor-heading-title {
        font-size: 32px !important;
        line-height: 1.2 !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    /* Widget container ridotto */
    .elementor-widget-page-title {
        margin: 0 !important;
        padding: 0 !important;
    }
    .elementor-widget-page-title > .elementor-widget-container {
        margin: 0 !important;
        padding: 0 !important;
    }
    /* Breadcrumb compatto */
    .elementor-widget-hfe-breadcrumbs-widget {
        margin-top: 8px !important;
        padding: 0 !important;
    }
    .elementor-widget-hfe-breadcrumbs-widget * {
        font-size: 13px !important;
        line-height: 1.4 !important;
    }
}

/* === Page title: zero padding/margin interni === */
@media (max-width: 1024px) {
    .elementor-widget-page-title,
    .elementor-widget-page-title > .elementor-widget-container,
    .hfe-page-title,
    .hfe-page-title-wrapper {
        margin: 0 !important;
        padding: 0 !important;
        min-height: 0 !important;
    }
    .elementor-widget-page-title h1 {
        font-size: 30px !important;
        line-height: 1.15 !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}

/* === Final fixes: bg trasparent wrapper menu + padding extra section 79fc6e7 === */
@media (max-width: 1024px) {
    /* Wrapper menu trasparente (override late) */
    header div.consulting_menu_nav.consulting_menu_nav-layout,
    .elementor-widget-container > div.consulting_menu_nav.consulting_menu_nav-layout {
        background: transparent !important;
        background-color: transparent !important;
    }
    /* Section page title 79fc6e7 padding override */
    .elementor-element-79fc6e7,
    section[data-id="79fc6e7"] {
        padding-top: 25px !important;
        padding-bottom: 25px !important;
    }
    /* Background overlay non aggiunge altezza */
    .elementor-element-79fc6e7 > .elementor-background-overlay {
        position: absolute !important;
        top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
    }
}

/* === Fix aggressivo bg trasparent menu + page title widget azzerato === */
@media (max-width: 1024px) {
    /* BG trasparente con super specificity */
    body header div.consulting_menu_nav,
    body header div.consulting_menu_nav.consulting_menu_nav-layout,
    body .elementor-widget-container > div.consulting_menu_nav.consulting_menu_nav-layout,
    html body header .elementor-element div.consulting_menu_nav {
        background: transparent !important;
        background-color: transparent !important;
        background-image: none !important;
    }
    /* Anche il widget container */
    body header .elementor-widget-container:has(> div.consulting_menu_nav) {
        background: transparent !important;
        background-color: transparent !important;
    }

    /* Page title widget azzerato — paddings + margin */
    body .elementor-widget-page-title,
    body .elementor-widget-page-title > .elementor-widget-container {
        padding: 0 !important;
        margin: 0 !important;
        min-height: 0 !important;
    }
    body .hfe-page-title,
    body .hfe-page-title-wrapper,
    body div.hfe-page-title.hfe-page-title-wrapper {
        padding: 0 !important;
        margin: 0 !important;
        min-height: 0 !important;
    }
    body .elementor-widget-page-title h1 {
        font-size: 28px !important;
        line-height: 1.15 !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    /* Breadcrumb spacing minimo */
    body .elementor-widget-hfe-breadcrumbs-widget {
        padding: 0 !important;
        margin: 8px 0 0 0 !important;
    }
}

/* === Button dentro hamburger toggle: bg transparent === */
@media (max-width: 1024px) {
    .menu_toggle button,
    .menu_toggle > button,
    body header .menu_toggle button {
        background: transparent !important;
        background-color: transparent !important;
        border: none !important;
        box-shadow: none !important;
    }
    /* Anche il wrapper menu */
    body header .consulting_menu_nav.consulting_menu_nav-layout {
        background: transparent !important;
        background-color: transparent !important;
    }
}

/* === High specificity per battere Elementor inline === */
@media (max-width: 1024px) {
    /* Page title widget — match Elementor's own selector specificity */
    .elementor-7976 .elementor-element.elementor-element-188bf7a,
    .elementor-7976 .elementor-element.elementor-element-188bf7a > .elementor-widget-container {
        padding: 0 !important;
        margin: 0 !important;
    }
    .elementor-7976 .elementor-element.elementor-element-188bf7a .hfe-page-title,
    .elementor-7976 .elementor-element.elementor-element-188bf7a .hfe-page-title-wrapper {
        padding: 0 !important;
        margin: 0 !important;
    }
    .elementor-7976 .elementor-element.elementor-element-188bf7a h1 {
        font-size: 28px !important;
        line-height: 1.2 !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    /* Section 79fc6e7 padding */
    .elementor-7976 .elementor-element.elementor-element-79fc6e7 {
        padding: 25px 0 !important;
    }
    /* Breadcrumb spacing */
    .elementor-7976 .elementor-element.elementor-element-50b470b {
        margin-top: 10px !important;
        padding: 0 !important;
    }
}

/* === Override Elementor inline con specificity massima === */
@media (max-width: 1024px) {
    body .elementor-widget[data-id="188bf7a"],
    body div.elementor-widget.elementor-widget-page-title[data-id="188bf7a"],
    html body div.elementor.elementor-7976 div.elementor-widget[data-id="188bf7a"],
    html body div.elementor.elementor-7976 div.elementor-widget[data-id="188bf7a"] > .elementor-widget-container,
    html body div.elementor.elementor-7976 div.elementor-widget[data-id="188bf7a"] .hfe-page-title-wrapper {
        padding: 0 !important;
        margin: 0 !important;
    }
    html body div.elementor.elementor-7976 div.elementor-widget[data-id="188bf7a"] h1.elementor-heading-title {
        font-size: 28px !important;
        line-height: 1.2 !important;
        margin: 0 !important;
    }
    /* Section 79fc6e7 padding */
    html body div.elementor.elementor-7976 section.elementor-element[data-id="79fc6e7"] {
        padding-top: 25px !important;
        padding-bottom: 25px !important;
    }
}

/* === Final mobile fixes con ID #masthead super specificity === */
@media (max-width: 1024px) {
    /* Wrapper menu bg trasparente */
    header#masthead div.consulting_menu_nav,
    header#masthead div.consulting_menu_nav.consulting_menu_nav-layout {
        background: transparent !important;
        background-color: transparent !important;
    }
    header#masthead .menu_toggle,
    header#masthead .menu_toggle button {
        background: transparent !important;
        background-color: transparent !important;
        border: none !important;
        box-shadow: none !important;
    }
    /* Page title widget: override Elementor inline */
    header#masthead .elementor-element.elementor-element-188bf7a {
        padding: 0 !important;
        margin: 0 !important;
    }
    header#masthead .elementor-element.elementor-element-188bf7a > .elementor-widget-container {
        padding: 0 !important;
        margin: 0 !important;
    }
    header#masthead .elementor-element.elementor-element-188bf7a .hfe-page-title,
    header#masthead .elementor-element.elementor-element-188bf7a .hfe-page-title-wrapper {
        padding: 0 !important;
        margin: 0 !important;
        min-height: 0 !important;
    }
    header#masthead .elementor-element.elementor-element-188bf7a h1 {
        font-size: 26px !important;
        line-height: 1.2 !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    /* Section 79fc6e7 padding mobile compatto */
    header#masthead .elementor-element.elementor-element-79fc6e7 {
        padding: 22px 0 22px 0 !important;
    }
    /* Breadcrumb */
    header#masthead .elementor-element.elementor-element-50b470b {
        padding: 0 !important;
        margin: 6px 0 0 0 !important;
    }
}

/* === Rimuovi overlay ::after del menu_toggle.open che intercetta tap === */
@media (max-width: 1024px) {
    .menu_toggle.open::after,
    .menu_toggle.open::before {
        display: none !important;
        content: none !important;
        pointer-events: none !important;
    }
    /* Sicurezza: drawer e link sopra tutto */
    .menu_toggle.open + nav,
    .menu_toggle.open ~ nav {
        z-index: 999999999 !important;
        pointer-events: auto !important;
    }
    .menu_toggle.open + nav *,
    .menu_toggle.open ~ nav * {
        pointer-events: auto !important;
    }
    /* X close su top */
    .menu_toggle.open {
        z-index: 9999999999 !important;
    }
}


