/*
Theme Name: eConsulting Agency
Template: bizberg
Text Domain: econsulting-agency
Author: bizbergthemes
Author URI: https://bizbergthemes.com/
Theme URI: https://bizbergthemes.com/downloads/econsulting-agency/
License: GNU General Public License v3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Description: eConsulting Agency is a free Consulting WordPress theme oriented to consulting, digital marketing, business and financial services. It is perfect platform to create a professional website for business consultant, accountants, investment firms, insurance, tax advisor, startups, financial advisor, marketing and any other consultancy corporations. This is a versatile, tech-savvy and responsive multipurpose website theme that is developed to satisfy all business needs. This theme can also be used for corporate, business, personal blog, law firm, banking, ecommerce, fashion blog, yoga, charity, gym, travel, news, education, transport and any other general business needs. This theme is the perfect and reliable toolkit for crafting impressive websites to grow your online business. This Free WordPress theme is fully responsive, cross-browser compatible, translation ready & SEO friendly. If you run into any problem while using our theme, you can refer to extensive documentation or contact our friendly support team.
Tags: custom-logo,custom-menu,featured-images,threaded-comments,translation-ready,left-sidebar,right-sidebar,grid-layout,theme-options,blog,news,portfolio
Version: 0.5
Tested up to: 5.8
Requires PHP: 5.6
*/

/* ==========================================================================
   >>> VARIANTE "BLU" <<<
   Stessa struttura del file principale, ma con la palette della presentazione
   Alessandro Durante: fasce in gradiente blu (indaco -> royal blue) e ambra
   come accento sui fondi scuri. Colori campionati dalle slide.
   ========================================================================== */

/* ==========================================================================
   DURANTE.DIGITAL — CSS CUSTOM
   Design direction: Fractional Manager / Personal Brand / Business Advisor.
   Principio: meno colori, piu' spazio bianco, gerarchia tipografica forte,
   una sola CTA primaria riconoscibile, sezioni con ritmo alternato.

   INDICE
   01. Design tokens (variabili)
   02. Base & tipografia
   03. Header & navigazione
   04. Bottoni / CTA
   05. Hero (econsult-banner)
   06. Counter
   07. Section titles
   08. Servizi
   09. Works slider
   10. Metodo / Process
   11. About
   12. Call to action (parallax) + modal video
   13. Testimonials
   14. Callto banner
   15. FAQ
   16. Partner
   17. Contatti + form
   18. Mappa
   19. Pricing
   20. Blog & varie
   21. Footer
   22. Accessibilita' & reduced motion
   ========================================================================== */


/* ==========================================================================
   01 · DESIGN TOKENS
   ========================================================================== */

:root{
    /* --- Palette della presentazione (colori campionati dalle slide) --- */
    --ad-ink:            #0E2369;   /* indaco profondo: fondi scuri e titoli */
    --ad-ink-2:          #1B2C74;
    --ad-ink-3:          #343183;
    --ad-accent:         #2F4BC0;   /* royal blue del deck */
    --ad-accent-dark:    #1F3690;
    --ad-accent-light:   #6A9CF1;
    --ad-accent-soft:    rgba(47,75,192,.09);

    /* Accento secondario ambra: pulsanti ed evidenziazioni su fondo scuro */
    --ad-amber:          #FFB454;
    --ad-amber-dark:     #FF9855;

    /* Gradienti del deck */
    --ad-grad-blue:      linear-gradient(45deg, #6A9CF1 0%, #343183 50%, #0E2369 100%);
    --ad-grad-blue-rev:  linear-gradient(45deg, #0E2369 0%, #343183 50%, #6A9CF1 100%);

    --ad-title:          #101B45;
    --ad-text:           #46506A;
    --ad-muted:          #6B7590;
    --ad-border:         #E5E9EE;
    --ad-surface:        #FFFFFF;
    --ad-surface-alt:    #F5F7FA;

    --ad-on-dark:        #FFFFFF;
    --ad-on-dark-soft:   rgba(255,255,255,.72);
    --ad-on-dark-border: rgba(255,255,255,.13);

    /* --- Spaziature --- */
    --ad-section-y:  clamp(34px, 3.2vw, 56px);
    --ad-gap:        clamp(20px, 2.4vw, 32px);

    /* --- Forma --- */
    --ad-radius-sm:  10px;
    --ad-radius:     16px;
    --ad-radius-lg:  24px;
    --ad-pill:       999px;
    --ad-btn-radius: 8px;      /* angoli di pulsanti e CTA */

    /* >>> DIMENSIONE DELLA FOTO IN HOME <<<
       Cambia SOLO questo numero: tutte le misure della foto (desktop,
       notebook, tablet, mobile) si adattano di conseguenza.
       330px = versione compatta · 400px = attuale · 480px = molto grande */
    --ad-foto-hero:  400px;

    /* --- Ombre --- */
    --ad-shadow-sm:  0 2px 10px rgba(14,26,40,.05);
    --ad-shadow:     0 14px 40px rgba(14,26,40,.08);
    --ad-shadow-lg:  0 26px 60px rgba(14,26,40,.14);

    --ad-ease:       cubic-bezier(.22,.7,.3,1);

    /* Punto di stacco fra nome (nero) e cognome (blu) nell'header */
    --ad-name-split: 58.5%;
}


/* ==========================================================================
   02 · BASE & TIPOGRAFIA
   Nota: il tema stampa le dimensioni dei titoli con !important dal customizer,
   quindi qui si usa il prefisso "html body" per vincere in specificita'
   senza dover moltiplicare gli !important.
   ========================================================================== */

html{
    scroll-behavior: smooth;
}

html body{
    color: var(--ad-text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6{
    color: var(--ad-title);
    font-weight: 700;
    letter-spacing: -0.015em;
}

html body h1{ font-size: clamp(38px, 4.4vw, 56px) !important; line-height: 1.08 !important; letter-spacing: -0.025em; }
html body h2{ font-size: clamp(28px, 3.1vw, 42px) !important; line-height: 1.16 !important; letter-spacing: -0.02em; }
html body h3{ font-size: clamp(22px, 2.1vw, 29px) !important; line-height: 1.26 !important; }
html body h4{ font-size: clamp(19px, 1.5vw, 22px) !important; line-height: 1.38 !important; }
html body h5{ font-size: 18px !important; line-height: 1.45 !important; }
html body h6{ font-size: 16px !important; line-height: 1.5 !important; }

html body p{
    font-size: 17px;
    line-height: 1.75;
    color: var(--ad-text);
}

/* Larghezza di lettura confortevole nei blocchi di testo lunghi */
.econsult-banner-content p,
.econsult-about-us .about-us-content p,
.process_content_items_content p,
.econsult-faq .panel-body{
    max-width: 62ch;
}

a{
    transition: color .25s var(--ad-ease), background-color .25s var(--ad-ease), border-color .25s var(--ad-ease);
}

/* Header, footer e widget non devono ereditare la misura del corpo testo:
   e' quello che faceva crescere in altezza la barra dei contatti nell'header. */
header#masthead p,
header#masthead li,
header#masthead span,
.navbar p,
.slicknav_nav p,
footer#colophon p{
    font-size: inherit;
    line-height: inherit;
}

::selection{
    background: var(--ad-accent);
    color: #fff;
}


/* ==========================================================================
   03 · HEADER & NAVIGAZIONE
   Header sticky con vetro smerigliato: aumenta la percezione di modernita'
   e tiene la CTA/menu sempre raggiungibili durante lo scroll.
   ========================================================================== */

/* Header: nessuna modifica di altezza, posizionamento o padding.
   Resta quello nativo del tema (lo sticky introdotto in v1 e' stato rimosso). */
.econsulting_agency_homepage.home header#masthead{
    border-bottom: none;
}

.navbar-default .navbar-nav > li > a{
    letter-spacing: 0;
    font-weight: 600;
    color: var(--ad-title);
    position: relative;
}

.navbar-default .navbar-nav > li > a::after{
    content: '';
    position: absolute;
    left: 15px;
    right: 15px;
    bottom: 12px;
    height: 2px;
    background: var(--ad-accent);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .3s var(--ad-ease);
}

.navbar-default .navbar-nav > li:hover > a::after,
.navbar-default .navbar-nav > li.current-menu-item > a::after,
.navbar-default .navbar-nav > li.current_page_item > a::after{
    transform: scaleX(1);
}

.navbar-default .navbar-nav > li.current-menu-item > a,
.navbar-default .navbar-nav > li.current_page_item > a{
    color: var(--ad-accent);
}

.navbar-nav li ul li a{
    font-size: 14px;
}


/* ==========================================================================
   04 · BOTTONI / CTA
   Il .per-btn nativo lasciava il testo scuro sopra il cerchio blu (contrasto
   insufficiente e leggibilita' scarsa). Trasformato in pill piena = CTA
   primaria immediatamente riconoscibile. Le varianti su fondo scuro/colorato
   restano gestite dai selettori di sezione.
   ========================================================================== */

.per-btn,
.per-btn:focus{
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 30px;
    margin-right: 20px;
    border-radius: var(--ad-btn-radius);
    color: #fff;
    transition: transform .3s var(--ad-ease), box-shadow .3s var(--ad-ease), color .3s var(--ad-ease);
}

.per-btn::before{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    border-radius: var(--ad-btn-radius);
    background: var(--ad-accent);
    transition: background .3s var(--ad-ease);
}

.per-btn:hover{
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(30,115,190,.32);
}

.per-btn:hover::before{
    width: 100%;
    background: var(--ad-accent-dark);
}

.per-btn span{
    position: relative;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    vertical-align: middle;
    white-space: nowrap;
}

.per-btn i{
    position: relative;
    top: 0;
    margin-left: 10px;
    transform: translateX(0);
    transition: transform .3s var(--ad-ease);
    font-size: 14px;
}

.per-btn:hover i{
    transform: translateX(4px);
}


/* ==========================================================================
   05 · HERO / BANNER
   Obiettivo: headline immediatamente leggibile, ritratto trattato come
   fotografia editoriale (non come "blob" animato), CTA singola e chiara.
   ========================================================================== */

.econsult-banner{
    position: relative;
    overflow: hidden;              /* evita overflow orizzontale del ritratto */
    padding: clamp(34px, 3.4vw, 56px) 0 clamp(38px, 3.8vw, 60px);
}

.econsult-banner .row{
    display: flex;
    align-items: center;
    flex-direction: row-reverse;
}

/* Illustrazione decorativa di sfondo: molto piu' discreta */
.econsult-banner::after{
    content: '';
    background: url(images/banner_ils.png) no-repeat;
    background-size: contain;
    background-position: bottom right;
    position: absolute;
    right: 0;
    top: 0;
    height: 80%;
    width: min(60%, 760px);
    z-index: -1;
    opacity: 0.18;
    pointer-events: none;
}

/* Ritratto: forma stabile, proporzione fissa, ombra morbida.
   L'animazione "border-transform" (blob) e' disattivata: comunicava un
   registro da freelance/agency, non da manager senior. */
.econsult-banner-image{
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    /* la misura si regola dalla variabile --ad-foto-hero in cima al file */
    width: min(100%, var(--ad-foto-hero));
    height: auto;
    aspect-ratio: 1 / 1;
    border: none;
    border-radius: 50%;
    animation: none;
    position: relative;
    right: 0;
    margin-left: auto;
    /* niente riquadro bianco ne' ombra dietro alla foto */
    background-color: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.econsult-banner-image img{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    background-color: transparent;
    box-shadow: none;
}

@-webkit-keyframes border-transform {
    0%, to { border-radius: 63% 37% 54% 46%/55% 48% 52% 45% }
    14%    { border-radius: 40% 60% 54% 46%/49% 60% 40% 51% }
    28%    { border-radius: 54% 46% 38% 62%/49% 70% 30% 51% }
    42%    { border-radius: 61% 39% 55% 45%/61% 38% 62% 39% }
    56%    { border-radius: 61% 39% 67% 33%/70% 50% 50% 30% }
    70%    { border-radius: 50% 50% 34% 66%/56% 68% 32% 44% }
    84%    { border-radius: 46% 54% 50% 50%/35% 61% 39% 65% }
}

@keyframes border-transform {
    0%, to { border-radius: 63% 37% 54% 46%/55% 48% 52% 45% }
    14%    { border-radius: 40% 60% 54% 46%/49% 60% 40% 51% }
    28%    { border-radius: 54% 46% 38% 62%/49% 70% 30% 51% }
    42%    { border-radius: 61% 39% 55% 45%/61% 38% 62% 39% }
    56%    { border-radius: 61% 39% 67% 33%/70% 50% 50% 30% }
    70%    { border-radius: 50% 50% 34% 66%/56% 68% 32% 44% }
    84%    { border-radius: 46% 54% 50% 50%/35% 61% 39% 65% }
}

.econsult-banner-content{
    border-bottom: 1px solid var(--ad-border);
    padding-bottom: 40px;
    margin-bottom: 38px;
}

/* Colonna di testo piu' larga della meta': la frase-manifesto ci sta in due
   righe invece di andare a capo di continuo. La foto resta a destra. */
@media (min-width: 992px){
    .econsult-banner .row > div:has(> .econsult-banner-content){
        flex: 0 0 58%;
        max-width: 58%;
        width: 58%;
    }

    .econsult-banner .row > div:has(> .econsult-banner-image){
        flex: 0 0 42%;
        max-width: 42%;
        width: 42%;
    }
}

/* Occhiello sopra l'H1 */
body .econsult-banner-content h4{
    font-size: 13px !important;
    line-height: 1.2 !important;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--ad-accent);
    padding-bottom: 26px;
    position: relative;
}

body .econsult-banner-content h1{
    padding-bottom: 28px;
    color: var(--ad-title);
    font-size: clamp(38px, 4.4vw, 56px) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.025em;
}

body .econsult-banner-content h1 span{
    color: var(--ad-accent);
}

.econsult-banner-content p{
    font-size: 17px;
    line-height: 1.75;
    color: var(--ad-muted);
    max-width: 64ch;
    margin-bottom: 0;
}

/* CLAIM della hero — frase-manifesto fra il titolo e il testo: piu' piccola
   del titolo, piu' grande del testo.
   Funziona in due modi, basta uno dei due:
   1) il PRIMO paragrafo della descrizione (se ce n'e' almeno un secondo);
   2) qualsiasi elemento con classe .ad-claim, per esempio scrivendo nel
      campo descrizione del banner:
      <span class="ad-claim">Marketing e vendite che non si parlano...</span> */
.econsult-banner-content p:first-of-type:not(:last-of-type),
.econsult-banner-content .ad-claim{
    display: block;
    font-size: clamp(20px, 1.75vw, 26px);
    line-height: 1.4;
    font-weight: 600;
    color: var(--ad-title);
    letter-spacing: -0.01em;
    margin-bottom: 26px;
    max-width: 42ch;
}

/* Frase o parole da colorare in blu dentro al claim/testo della hero.
   Generato dallo snippet PHP quando nel campo scrivi **la frase**
   fra doppi asterischi: puoi cambiare quali parole colorare in
   qualsiasi momento, modificando solo il testo nel Customizer. */
.ad-evidenzia{
    color: var(--ad-accent);
}

.econsult-banner-btn,
.econsult-det{
    display: flex;
    align-items: center;
    position: relative;
}

.econsult-banner-btn{
    flex-wrap: wrap;
    row-gap: 18px;
}

.econsult-det i{
    background: var(--ad-accent-soft);
    border-radius: 50%;
    width: 54px;
    height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin-right: 15px;
    font-size: 19px;
    color: var(--ad-accent);
}

.econsult-det p{
    font-weight: 700;
    font-size: 16px;
    color: var(--ad-title);
    padding-top: 0;
    margin: 0;
    line-height: 1.35;
}

.econsult-det p span{
    text-transform: uppercase;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .12em;
    display: block;
    line-height: 1.6;
    color: var(--ad-muted);
}

/* Sotto i 1100px l'ordine visivo diventa: testo -> foto -> CTA.
   La colonna di testo viene "aperta" con display:contents cosi' i suoi figli
   (contenuto e blocco CTA) diventano item della colonna flex e possono essere
   ordinati intorno all'immagine, senza toccare l'HTML. */
@media (max-width: 1100px){
    .econsult-banner .row{
        display: flex;
        flex-direction: column;
    }

    .econsult-banner .row > div{ width: 100%; float: none; }

    .econsult-banner .row > div:has(> .econsult-banner-content){
        display: contents;
    }

    .econsult-banner-content{ order: 1; }

    .econsult-banner .row > div:has(> .econsult-banner-image){ order: 2; }

    .econsult-banner-btn{ order: 3; }

    /* ripristina il gutter perso dalla colonna aperta */
    .econsult-banner-content,
    .econsult-banner-btn{
        padding-left: 15px;
        padding-right: 15px;
    }

    .econsult-banner-image{
        right: 0;
        left: 0;
        width: min(58%, calc(var(--ad-foto-hero) * 0.61));
        margin: 4px auto 28px;
    }

    .econsult-banner-content{
        text-align: center;
        padding-top: 0;
        padding-bottom: 26px;
        margin-bottom: 4px;
        border-bottom: none;
    }

    .econsult-banner-content p{ margin-left: auto; margin-right: auto; }

    .econsult-banner-btn{ justify-content: center; }
}

@media (max-width: 767px){
    .per-btn,
    .per-btn:focus{ display: inline-flex; }

    .econsult-banner-image{ width: min(52%, calc(var(--ad-foto-hero) * 0.53)); }

    .econsult-banner::after{ display: none; }
}

@media (max-width: 567px){
    .econsult-banner-btn{ display: block; }

    .econsult-det.custom_field{ margin-top: 22px; }

    .econsult-banner-btn .button_wrapper,
    .econsult-banner-btn .custom_field{
        display: flex;
        justify-content: center;
    }

    .per-btn{ margin-right: 0; }
}

/* --- HERO SU DESKTOP -------------------------------------------------------
   Niente altezza forzata: la hero e' alta quanto il suo contenuto, cosi'
   non si creano fasce di bianco vuoto sopra e sotto. Con questi corpi
   testo la piega cade da sola sulla fascia successiva. */

/* Notebook (schermi bassi): compressione leggera, la gerarchia resta intatta
   — il titolo e' comunque il testo piu' grande della pagina. */
@media (min-width: 1100px) and (max-height: 900px){
    .econsult-banner{
        padding: 26px 0 30px;
    }

    body .econsult-banner-content h1{
        font-size: clamp(34px, 3.4vw, 50px) !important;
        padding-bottom: 14px;
    }

    .econsult-banner-content p:first-of-type:not(:last-of-type),
    .econsult-banner-content .ad-claim{
        font-size: clamp(18px, 1.35vw, 21px);
        margin-bottom: 14px;
    }

    .econsult-banner-content{
        padding-bottom: 22px;
        margin-bottom: 22px;
    }

    .econsult-banner-image{
        width: min(100%, calc(var(--ad-foto-hero) * 0.86));
    }
}

/* Schermi molto bassi (13" con barre e dock) */
@media (min-width: 1100px) and (max-height: 740px){
    .econsult-banner{
        padding: 18px 0 22px;
    }

    body .econsult-banner-content h1{
        font-size: clamp(30px, 2.9vw, 40px) !important;
        padding-bottom: 12px;
    }

    body .econsult-banner-content h4{
        padding-bottom: 14px;
    }

    .econsult-banner-content p:first-of-type:not(:last-of-type),
    .econsult-banner-content .ad-claim{
        font-size: 18px;
        margin-bottom: 12px;
    }

    .econsult-banner-content{
        padding-bottom: 18px;
        margin-bottom: 18px;
    }

    .econsult-banner-image{
        width: min(100%, calc(var(--ad-foto-hero) * 0.73));
    }
}


/* ==========================================================================
   06 · COUNTER
   Blocco "proof point": fondo blu notte + numeri grandi = autorevolezza.
   ========================================================================== */

.econsult-counter{
    padding: 0;
}

.econsult-counter-in{
    margin: 0;
    display: grid;
    position: relative;
    grid-template-columns: repeat( auto-fit, minmax(100px, 1fr) );
    grid-auto-rows: 1fr;
    grid-row-gap: 5px;
    background: linear-gradient(135deg, var(--ad-ink) 0%, var(--ad-ink-3) 100%);
    padding: clamp(34px, 3.4vw, 46px) 0;
    align-items: center;
}

.econsult-counter-in .col-md-3.col-sm-6{
    width: 100%;
}

.econsult-counter-in .d-line{
    border-right: 1px solid var(--ad-on-dark-border);
}

.econsult-counter-in .counter-item{
    text-align: center;
    padding: 6px 24px;
}

.econsult-counter-in h2,
.econsult-counter-in i,
.econsult-counter-in p{ color: #fff; }

.econsult-counter-in h2{
    font-size: clamp(34px, 3.2vw, 46px) !important;
    line-height: 1 !important;
    padding: 12px 0 8px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.econsult-counter-in i{
    font-size: 30px;
    color: #fff !important;
}

.econsult-counter-in p{
    color: var(--ad-on-dark-soft);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .13em;
    text-transform: uppercase;
    line-height: 1.5;
    margin: 0;
}

@media (max-width: 991px){
    .econsult-counter-in{
        display: flow-root;
        width: auto;
    }

    .econsult-counter-in .col-md-3.col-sm-6{ margin-bottom: 30px; width: 50%; }

    .econsult-counter-in .d-line{ border: none !important; }
}

@media (max-width: 767px){
    .econsult-counter-in .col-md-3.col-sm-6{ width: 100%; margin-bottom: 26px; }
    .econsult-counter-in .col-md-3.col-sm-6:last-child{ margin-bottom: 0; }
}

#tf-partical-wrap{
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: 100%;
    overflow: hidden;
    z-index: -1;
}

.tf-ball{
    position: absolute;
    border-radius: 100%;
    -webkit-border-radius: 100%;
    -ms-border-radius: 100%;
    -moz-border-radius: 100%;
}


/* ==========================================================================
   07 · SECTION TITLES (occhiello + H2 + sottotitolo)
   ========================================================================== */

.econsult-services-in .section-title p,
.econsult-works .section-title p,
.econsult-our-process .section-title p,
.econsult-testi .section-title p,
.econsult-faq .section-title p.sub,
.econsult-partner .section-title p,
.econsult-contact .section-title p,
.econsult-pricing .section-title p{
    position: relative;
    background: var(--ad-accent-soft);
    padding: 7px 18px 6px;
    border-radius: var(--ad-pill);
    display: inline-block;
    margin-bottom: 18px;
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    line-height: 1.6;
    color: var(--ad-accent);
}

.econsult-services-in .section-title,
.econsult-testi .section-title,
.econsult-partner .section-title,
.econsult-pricing .section-title{
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}

.econsult-services-in h2,
.econsult-our-process h2,
.econsult-testi .section-title h2,
.econsult-partner .section-title h2{
    color: var(--ad-title);
}


/* ==========================================================================
   08 · SERVIZI
   Card allineate a sinistra (registro editoriale/manageriale), altezze
   uniformi, bordo sottile + hover con sollevamento.
   ========================================================================== */

.econsult-services{
    padding: var(--ad-section-y) 0 calc(var(--ad-section-y) - 30px);
}

/* Layout a flex (come nel CSS aggiuntivo) ma su 3 colonne piene:
   niente scroll orizzontale, le card vanno a capo. */
.econsult-services-main{
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    position: relative;
    align-items: stretch;
    overflow-x: visible;
    gap: 26px;
}

.econsult-services-main .econsult-col{
    flex: 1 1 calc(33.333% - 18px);
    max-width: calc(33.333% - 18px);
    width: auto;
    margin-bottom: 0;
    display: flex;
}

.econsult-services-main::-webkit-scrollbar{
    display: none;
}

.econsult-services-in .section-title{
    text-align: center;
    margin-bottom: 50px;
}

.econsult-services-item{
    background: var(--ad-surface);
    padding: 38px 32px 34px;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border: 1px solid var(--ad-border);
    border-radius: var(--ad-radius);
    box-shadow: var(--ad-shadow-sm);
    transition: transform .45s var(--ad-ease), box-shadow .45s var(--ad-ease), border-color .45s var(--ad-ease);
    text-align: left;
}

.econsult-services-item:hover{
    transform: translateY(-6px);
    border-color: rgba(30,115,190,.28);
    box-shadow: var(--ad-shadow);
}

.econsult-services-in .econsult-services-icon{
    margin-bottom: 22px;
}

.econsult-services-icon i{
    font-size: 26px;
    width: 62px;
    height: 62px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--ad-radius-sm);
    background: var(--ad-accent-soft);
    color: var(--ad-accent);
    transform: none;
    transition: background .4s var(--ad-ease), color .4s var(--ad-ease);
}

.econsult-services-item:hover .econsult-services-icon i{
    transform: none;
    background: var(--ad-accent);
    color: #fff;
}

/* Il contenuto occupa tutta l'altezza della card: cosi' le card restano
   uniformi anche con testi di lunghezza diversa. */
.econsult-services-in .econsult-services-content{
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

/* Titolo con altezza fissa su due righe: i paragrafi partono tutti alla
   stessa altezza in tutte e tre le colonne. */
.econsult-services-in .econsult-services-content h4{
    font-size: clamp(19px, 1.5vw, 22px) !important;
    margin-bottom: 14px;
    line-height: 1.32 !important;
    min-height: calc(1.32em * 2);
    display: flex;
    align-items: flex-start;
}

.econsult-services-in .econsult-services-content p{
    line-height: 1.7 !important;
    font-size: 16px;
    color: var(--ad-text);
    margin-bottom: 0;
}

.econsult-services-in .econsult-services-content h4 a{
    color: var(--ad-title);
    -webkit-transition: all 500ms ease;
    transition: all 500ms ease;
}

.econsult-services-item:hover h4 a{
    color: var(--ad-accent);
}

/* Bottone sotto le card "I miei servizi": nascosto per scelta editoriale */
.econsult-services-btn{
    border-top: 1px solid var(--ad-border);
    margin-top: 20px;
    padding-top: 25px;
    display: none;
}

.econsult-services-btn a{
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: all ease-in-out 0.5s;
    color: var(--ad-title);
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 1px;
    font-weight: 600;
}

.econsult-services-item:hover .econsult-services-btn a{
    color: var(--ad-accent);
}

.econsult-services-btn a i{
    border-radius: 50%;
    background: var(--ad-accent-soft);
    width: 30px;
    height: 30px;
    transition: all ease-in-out 0.5s;
    display: flex;
    align-items: center;
    justify-content: space-around;
}

.econsult-services-item:hover .econsult-services-btn a i{
    background: var(--ad-accent);
    color: #fff;
}

@media (max-width: 1100px){
    .econsult-services-main .econsult-col{
        flex: 1 1 calc(50% - 13px);
        max-width: calc(50% - 13px);
    }
}

@media (max-width: 767px){
    .econsult-services-main{
        flex-direction: column;
        overflow-x: visible;
    }

    .econsult-services-main .econsult-col{
        flex: 1 1 100%;
        max-width: 100%;
        width: 100%;
    }
}


/* ==========================================================================
   09 · WORKS SLIDER
   Fix di leggibilita': il titolo bianco era centrato su immagini chiare senza
   overlay a riposo. Ora scrim permanente + titolo ancorato in basso a sinistra.
   ========================================================================== */

.econsult-works{
    background: var(--ad-ink);
    padding: var(--ad-section-y) 0 calc(var(--ad-section-y) + 20px);
}

.econsult-works .section-title{
    text-align: center;
    max-width: 760px;
    margin: 0 auto;
}

.econsult-works .section-title h2{
    color: #fff;
}

.econsult-works .section-title p{
    background: rgba(255,255,255,.08);
    color: var(--ad-accent-light);
}

.econsult-works .items_slide{
    overflow: hidden;
    position: relative;
}

.item_image{
    height: clamp(340px, 38vw, 480px);
    background-size: cover;
    background-position: center;
}

.work_slider{
    margin-top: 52px;
    display: none;
}

.work_slider.slick-initialized{
    display: block;
}

.work_slider .slick-slide{
    margin-left: 12px;
    margin-right: 12px;
    overflow: hidden;
    position: relative;
    border-radius: var(--ad-radius);
}

.work_slider .slick-slide .item_image{
    -webkit-transition: 700ms cubic-bezier(0.17, 0.67, 0, 1.01);
    -o-transition: 700ms cubic-bezier(0.17, 0.67, 0, 1.01);
    transition: 700ms cubic-bezier(0.17, 0.67, 0, 1.01);
    /* Gradiente di fallback quando la card non ha immagine caricata */
    background-image: linear-gradient(135deg, var(--ad-accent) 0%, var(--ad-ink) 100%) !important;
}

.work_slider .slick-slide:hover .item_image{
    -webkit-transform: scale(1.06);
    -ms-transform: scale(1.06);
    transform: scale(1.06);
}

.work_slider .title_wrapper{
    position: absolute;
    left: 0;
    right: 0;
    top: auto;
    bottom: 30px;
    -webkit-transform: none;
    transform: none;
    text-align: left;
    padding: 0 32px;
    opacity: 1;
    z-index: 2;
}

.work_slider .title_wrapper h4{
    margin: 0;
}

.work_slider .title_wrapper span{
    display: block;
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    opacity: .85;
}

.work_slider .title_wrapper span a,
.work_slider .title_wrapper h4 a{
    color: #fff !important;
}

.work_slider .position-cover{
    position: absolute;
    right: 0;
    left: 0;
    top: 0;
    bottom: 0;
    z-index: 1;
    background: linear-gradient(to top, rgba(14,26,40,.88) 0%, rgba(14,26,40,.35) 45%, rgba(14,26,40,.05) 100%);
    transition: 700ms cubic-bezier(0.17, 0.67, 0, 1.01);
}

.work_slider .slick-slide:hover .position-cover{
    background: linear-gradient(to top, rgba(14,26,40,.92) 0%, rgba(14,26,40,.55) 60%, rgba(14,26,40,.25) 100%);
}

.work_slider .slick-dots{
    margin-top: 22px;
}

.work_slider .slick-dots li button:before{
    color: rgba(255,255,255,.45);
    font-size: 11px;
    opacity: 1;
}

.work_slider .slick-dots li.slick-active button:before{
    color: var(--ad-accent-light);
}


/* ==========================================================================
   10 · METODO / PROCESS
   Discovery -> Strategia -> Esecuzione -> Crescita.
   ========================================================================== */

/* Tutta la sezione (titolo compreso) sta su fondo grigio chiaro: e' la
   fascia che la separa da quella prima e da quella dopo. */
.econsult-our-process{
    background: var(--ad-surface-alt) !important;
    padding: var(--ad-section-y) 0;
}

/* La sezione e' a tutta larghezza: immagine nascosta, colonna testo al 100% */
.econsult-our-process .row{
    display: block;
}

.econsult-our-process .row > div:first-child{
    display: none;
}

.econsult-our-process .row > div:last-child{
    width: 100%;
    float: none;
}

/* salvagente: se la riga avesse una sola colonna, non nasconde nulla */
.econsult-our-process .row > div:only-child{
    display: block;
}

.econsult-our-process .process_image{
    display: none;
}

/* Le fasi diventano colonne affiancate. Il grigio sta sulla SEZIONE (vedi
   sopra), non su questo blocco: cosi' anche il titolo e' dentro la fascia
   e non resta la striscia bianca sopra e sotto. */
.econsult-our-process .process_content{
    background: transparent !important;
    background-image: none !important;
    color: var(--ad-text);
    margin: 0;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
    /* flex invece di grid: le colonne si distribuiscono da sole in base al
       numero di fasi (3 fasi = 3 colonne piene, 4 fasi = 4 colonne) */
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: clamp(30px, 3vw, 46px) clamp(24px, 3vw, 46px);
    text-align: center;
}

.econsult-our-process .process_content > .process_content_items{
    flex: 1 1 240px;
    min-width: 0;
}

.econsult-our-process .section-title{
    flex: 0 0 100%;
    width: 100%;
    max-width: none;
    margin: 0 0 clamp(26px, 3vw, 42px);
    text-align: center;
}

.econsult-our-process .section-title h2{
    max-width: 780px;
    margin-left: auto;
    margin-right: auto;
}

.process_content_items{
    display: block;
    margin-bottom: 0;
    padding-top: 24px;
    border-top: 2px solid var(--ad-border);
    position: relative;
    transition: border-color .35s var(--ad-ease);
}

.process_content_items:hover{
    border-top-color: var(--ad-accent);
}

.process_content_items:last-child{
    margin-bottom: 0;
}

/* Numero di fase: grande, in accento, uguale per tutte le fasi.
   !important perche' il tema assegna a ogni numero un colore diverso inline. */
.process_content_items_icon{
    border: none !important;
    border-radius: 0;
    margin: 0 0 12px;
    flex: none;
}

.process_content_items_icon span{
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    box-shadow: none !important;
    width: auto !important;
    height: auto !important;
    max-width: none;
    display: inline-block;
    padding: 0 !important;
    border-radius: 0 !important;
    color: var(--ad-accent) !important;
    font-weight: 700;
    font-size: clamp(30px, 2.8vw, 42px);
    line-height: 1;
    letter-spacing: -0.02em;
    font-family: 'MontserratRegular';
}

.process_content_items_icon::after,
.process_content_items:last-child .process_content_items_icon:after{
    display: none;
    border: none;
}

.process_content_items_content h4{
    color: var(--ad-title) !important;
    padding-bottom: 10px;
    font-size: clamp(18px, 1.4vw, 21px) !important;
    line-height: 1.35 !important;
}

.process_content_items_content p{
    line-height: 1.7;
    color: var(--ad-text) !important;
    margin-bottom: 0;
    max-width: 34ch;
    margin-left: auto;
    margin-right: auto;
    font-size: 16px;
}

.econsult-our-process .section-title p{
    background: rgba(30,115,190,.10);
}

@media (max-width: 991px){
    .econsult-our-process .section-title{
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 567px){
    .econsult-our-process .process_content{
        flex-direction: column;
    }

    .process_content_items_icon{
        margin: 0 0 8px;
    }

    .process_content_items_icon span{
        font-size: 30px;
    }
}


/* ==========================================================================
   11 · ABOUT
   ========================================================================== */

.econsult-about-us{
    display: block;
    padding: 0;
}

/* Sezione a tutta larghezza: la colonna immagine viene nascosta e il
   blocco testo occupa il 100% della riga. */
.econsult-about-us .row{
    height: auto;
    display: block;
}

.econsult-about-us .row .abt_image_wrapper,
.econsult-about-us .about-us-image{
    display: none;
}

.econsult-about-us .row .about-us-content-wrapper{
    width: 100%;
    float: none;
    padding-left: 15px;
    padding-right: 15px;
}

/* Fascia "La frizione invisibile": fondo grigio chiaro come la sezione
   del metodo, testi scuri. Il filetto sotto tiene separate le due fasce
   grigie che si susseguono.
   !important perche' il colore di fondo arriva dal Customizer. */
.econsult-about-us .about-us-content{
    background: var(--ad-surface-alt) !important;
    background-image: none !important;
    padding: clamp(44px, 4.6vw, 72px) clamp(28px, 5vw, 72px);
    color: var(--ad-text);
    text-align: center;
    border-top: 1px solid var(--ad-border);
    border-bottom: 1px solid var(--ad-border);
}

.econsult-about-us .about-us-content h4{
    color: var(--ad-title) !important;
    padding-bottom: 22px;
    font-size: clamp(26px, 2.8vw, 40px) !important;
    line-height: 1.22 !important;
    letter-spacing: -0.02em;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

.econsult-about-us .about-us-content p{
    line-height: 1.8;
    margin-bottom: 16px;
    color: var(--ad-text) !important;
    font-size: clamp(17px, 1.25vw, 19px);
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
}

/* elenco puntato allineato a sinistra dentro al blocco centrato */
.econsult-about-us .about-us-content ul,
.econsult-about-us .about-us-content ol{
    display: inline-block;
    text-align: left;
    max-width: 820px;
    margin: 0 auto 18px;
    color: var(--ad-text);
    font-size: clamp(17px, 1.25vw, 19px);
    line-height: 1.9;
}

.econsult-about-us .about-us-content li{
    color: var(--ad-text) !important;
}

/* la frase di chiusura risalta: scura e in grassetto */
.econsult-about-us .about-us-content p:last-of-type{
    color: var(--ad-title) !important;
    font-weight: 700;
    font-size: clamp(18px, 1.4vw, 21px);
    line-height: 1.6;
    margin-top: 26px;
    margin-bottom: 0;
}

.econsult-about-us .button_wrapper{
    display: flex;
    justify-content: center;
    margin-top: 30px;
}

.econsult-about-us .button_wrapper a{
    color: #fff !important;
    margin-right: 0;
}

@media (max-width: 639px){
    .econsult-about-us .about-us-content{ padding: 40px 24px; }
}


/* ==========================================================================
   12 · CALL TO ACTION (parallax) + MODAL VIDEO
   ========================================================================== */

.econsult-call-to-action{
    padding: clamp(80px, 8vw, 120px) 0;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-color: var(--ad-ink);
    position: relative;
}

.econsult-call-to-action .overlay{
    background: linear-gradient(90deg, rgba(14,26,40,.94) 0%, rgba(14,26,40,.74) 100%);
}

.econsult-call-to-action .container{
    z-index: 1;
    position: relative;
}

.econsult-call-to-action h2{
    color: #fff;
    font-size: clamp(30px, 3.4vw, 46px) !important;
    line-height: 1.18 !important;
    letter-spacing: -0.02em;
    max-width: 16ch;
}

.econsult-call-to-action > .container > .row{
    display: flex;
    align-items: center;
}

.econsult-call-to-action .row > div{
    display: flex;
    height: 100%;
    flex-wrap: wrap;
    flex-direction: column;
    align-content: center;
}

.econsult-call-to-action .button_wrapper{
    margin-top: 32px;
    display: flex;
}

.econsult-call-to-action .button_wrapper .per-btn{
    color: #fff !important;
}

.econsult-video-btn{
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 104px;
    height: 104px;
    line-height: 104px;
    text-align: center;
    font-size: 24px;
    color: #fff;
    background-color: rgba(14,26,40,.35);
    border-radius: 50%;
    transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -webkit-transition: all 0.5s ease;
    -ms-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
}

.econsult-video-btn:before{
    position: absolute;
    top: -16px;
    left: -16px;
    right: -16px;
    bottom: -16px;
    content: "";
    border-radius: 50%;
    z-index: 1;
    border: 2px solid var(--ad-accent);
}

.econsult-call-to-action a:hover .econsult-video-btn{
    background-color: var(--ad-accent);
}

.econsult-call-to-action .ripple,
.econsult-call-to-action .ripple:before,
.econsult-call-to-action .ripple:after{
    position: absolute;
    top: 50%;
    left: 50%;
    width: 140px;
    height: 140px;
    transform: translate(-50%, -50%);
    -ms-box-shadow: 0 0 0 0 rgba(30,115,190,.55);
    -o-box-shadow: 0 0 0 0 rgba(30,115,190,.55);
    box-shadow: 0 0 0 0 rgba(30,115,190,.55);
    -webkit-animation: ripple 3s infinite;
    animation: ripple 3s infinite;
    border-radius: 50%;
}

.econsult-call-to-action .ripple:before{
    -webkit-animation-delay: 0.9s;
    animation-delay: 0.9s;
    content: "";
    position: absolute;
}

.econsult-call-to-action .ripple:after{
    -webkit-animation-delay: 0.6s;
    animation-delay: 0.6s;
    content: "";
    position: absolute;
}

@-webkit-keyframes ripple {
    70%  { box-shadow: 0 0 0 40px rgba(30,115,190,0); }
    100% { box-shadow: 0 0 0 0 rgba(30,115,190,0); }
}

@keyframes ripple {
    70%  { box-shadow: 0 0 0 40px rgba(30,115,190,0); }
    100% { box-shadow: 0 0 0 0 rgba(30,115,190,0); }
}

@media (max-width: 991px){
    .econsult-call-to-action > .container > .row{ display: block; text-align: center; }

    .econsult-call-to-action h2{ max-width: none; }

    .econsult-call-to-action .row > div.icon_wrapper{ margin-top: 50px; }

    .econsult-call-to-action .button_wrapper{ justify-content: center; }

    .econsult-video-btn{ height: 88px; width: 88px; line-height: 88px; }

    .econsult-call-to-action .ripple,
    .econsult-call-to-action .ripple:before,
    .econsult-call-to-action .ripple:after{
        width: 120px;
        height: 120px;
    }
}

/* Il parallax (background-attachment: fixed) su iOS/Android causa scatti e
   crop indesiderati: disattivato sotto i 1024px. */
@media (max-width: 1024px){
    .econsult-call-to-action,
    .econsult-contact{
        background-attachment: scroll;
    }
}

@keyframes modal-video {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes modal-video-inner {
    from { transform: translate(0, 100px); }
    to   { transform: translate(0, 0); }
}

.modal-video{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(14,26,40,.7);
    z-index: 1000000;
    cursor: pointer;
    opacity: 1;
    animation-timing-function: ease-out;
    animation-duration: 0.3s;
    animation-name: modal-video;
    -webkit-transition: opacity 0.3s ease-out;
    -moz-transition: opacity 0.3s ease-out;
    -ms-transition: opacity 0.3s ease-out;
    -o-transition: opacity 0.3s ease-out;
    transition: opacity 0.3s ease-out;
}

.modal-video-close{ opacity: 0; }

.modal-video-close .modal-video-movie-wrap{
    -webkit-transform: translate(0, 100px);
    -moz-transform: translate(0, 100px);
    -ms-transform: translate(0, 100px);
    -o-transform: translate(0, 100px);
    transform: translate(0, 100px);
}

.modal-video-body{
    max-width: 960px;
    width: 100%;
    height: 100%;
    margin: 0 auto;
    padding: 0 10px;
    display: flex;
    justify-content: center;
    box-sizing: border-box;
}

.modal-video-inner{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
}

@media (orientation: landscape){
    .modal-video-inner{
        padding: 10px 60px;
        box-sizing: border-box;
    }
}

.modal-video-movie-wrap{
    width: 100%;
    height: 0;
    position: relative;
    padding-bottom: 56.25%;
    background-color: #333;
    border-radius: var(--ad-radius);
    overflow: hidden;
    animation-timing-function: ease-out;
    animation-duration: 0.3s;
    animation-name: modal-video-inner;
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
    -webkit-transition: -webkit-transform 0.3s ease-out;
    -moz-transition: -moz-transform 0.3s ease-out;
    -ms-transition: -ms-transform 0.3s ease-out;
    -o-transition: -o-transform 0.3s ease-out;
    transition: transform 0.3s ease-out;
}

.modal-video-movie-wrap iframe{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.modal-video-close-btn{
    position: absolute;
    z-index: 2;
    top: -45px;
    right: 0;
    display: inline-block;
    width: 35px;
    height: 35px;
    overflow: hidden;
    border: none;
    background: transparent;
}

@media (orientation: landscape){
    .modal-video-close-btn{
        top: 0;
        right: -45px;
    }
}

.modal-video-close-btn:before{ transform: rotate(45deg); }
.modal-video-close-btn:after{ transform: rotate(-45deg); }

.modal-video-close-btn:before,
.modal-video-close-btn:after{
    content: '';
    position: absolute;
    height: 2px;
    width: 100%;
    top: 50%;
    left: 0;
    background: #fff;
    border-radius: 5px;
    margin-top: -6px;
}


/* ==========================================================================
   13 · TESTIMONIALS
   ========================================================================== */

/* fondo bianco: fa da stacco con la fascia grigia del metodo che la precede */
.econsult-testi{
    background-image: url('images/testimonial.png');
    background-color: #ffffff;
    padding: var(--ad-section-y) 0;
    background-position: top;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
}

.econsult-testi .section-title{
    text-align: center;
    margin-bottom: 50px;
}

.econsult-testi-details{
    position: relative;
    display: block;
    border: 1px solid var(--ad-border);
    background-color: var(--ad-surface);
    padding: clamp(30px, 3vw, 42px) clamp(28px, 3vw, 44px);
    border-radius: var(--ad-radius);
    box-shadow: var(--ad-shadow-sm);
    transition: all 500ms ease;
    text-align: left;
    overflow: hidden;
}

.econsult-testi-details::before{
    content: '';
    width: 0;
    height: 3px;
    background: var(--ad-accent);
    transition: all ease 0.5s;
    position: absolute;
    top: 0;
    left: 0;
}

.econsult-testi-details:hover::before{
    width: 100%;
}

.econsult-testi-details::after{
    content: '\201C';
    position: absolute;
    top: 6px;
    right: 26px;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 92px;
    line-height: 1;
    color: var(--ad-accent);
    opacity: .1;
    pointer-events: none;
}

/* Tutte le slide alla stessa altezza */
.testi-slider .slick-track{
    display: flex;
    align-items: stretch;
}

.testi-slider .slick-slide{
    height: auto;
    display: flex;
    flex-direction: column;
}

.testi-slider .slick-slide > div{
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Recensione limitata a 7 righe; si espande con il bottone "Leggi tutto"
   (il bottone viene aggiunto dallo snippet JS: vedi file allegato). */
.econsult-testi-details p{
    font-size: 16.5px;
    line-height: 1.75;
    color: var(--ad-text);
    margin-bottom: 0;
    display: -webkit-box;
    -webkit-line-clamp: 7;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.econsult-testi-details.is-open p{
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;
}

.ad-readmore{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 16px;
    padding: 0;
    background: none;
    border: none;
    border-bottom: 1px solid currentColor;
    color: var(--ad-accent);
    font-size: 13.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
    transition: color .25s var(--ad-ease);
}

.ad-readmore:hover{
    color: var(--ad-accent-dark);
}

.ad-readmore::after{
    content: '\002B';
    font-size: 14px;
    line-height: 1;
}

.econsult-testi-details.is-open .ad-readmore::after{
    content: '\2212';
}

.econsult-testi-author{
    margin-top: 16px;
    text-align: left;
    padding-left: clamp(28px, 3vw, 44px);
    position: relative;
    z-index: 1;
}

/* Nessuno spazio riservato alla foto di chi lascia la referenza */
.econsult-testi-author img{
    display: none;
}

.econsult-testi-author h4{
    font-size: 17px !important;
    margin-bottom: 2px;
}

.econsult-testi-author p,
.econsult-testi-author span{
    font-size: 13px;
    color: var(--ad-muted);
    letter-spacing: .04em;
}


/* ==========================================================================
   14 · CALLTO BANNER
   ========================================================================== */

.econsult-callto{
    padding: 0;
    margin-bottom: 0 !important;
}

.econsult-callto-main{
    position: relative;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    background: linear-gradient(120deg, var(--ad-accent-dark) 0%, var(--ad-accent) 100%);
    padding: clamp(38px, 3.8vw, 56px) clamp(30px, 4vw, 60px);
}

.econsult-callto-main .econsult-callto-icon i,
.econsult-callto-main h2{
    color: #fff;
}

.econsult-callto-main .econsult-callto-icon i{
    font-size: 46px;
    opacity: .9;
}

.econsult-callto-main h2{
    padding: 0;
    margin: 0;
    font-size: clamp(24px, 2.4vw, 34px) !important;
    line-height: 1.3 !important;
    letter-spacing: -0.015em;
}

.econsult-callto-main .per-btn{
    white-space: nowrap;
    margin-right: 0;
    color: var(--ad-accent) !important;
}

.econsult-callto-main .per-btn::before{
    background: #fff;
}

.econsult-callto-main .per-btn:hover{
    color: var(--ad-ink) !important;
    box-shadow: 0 12px 26px rgba(14,26,40,.2);
}

.econsult-callto-main .per-btn:hover::before{
    width: 100%;
    background: #fff;
}

@media (max-width: 991px){
    .econsult-callto-main{
        display: block;
        text-align: center;
        padding: 40px 30px;
        width: auto;
    }

    .econsult-callto-main h2{ margin: 26px 0; }

    .econsult-callto-main .button{ display: inline-flex; }
}


/* ==========================================================================
   15 · FAQ
   Rimosso l'uppercase dalle domande (illeggibile su testi lunghi),
   accordion con card separate e icona +/- in pastiglia.
   ========================================================================== */

.econsult-faq{
    padding: var(--ad-section-y) 0;
    background: var(--ad-surface-alt);
}

.econsult-faq-main{
    margin: 0;
    display: grid;
    position: relative;
    grid-template-columns: repeat( auto-fit, minmax(100px, 1fr) );
    grid-auto-rows: 1fr;
    gap: clamp(24px, 4vw, 60px);
    align-items: start;
    border-radius: var(--ad-radius-lg);
}

.econsult-faq .section-title{
    margin-right: 0;
}

.econsult-faq .section-title h2{
    color: var(--ad-title);
    padding-bottom: 15px;
}

.econsult-faq-accordion{
    margin-left: 0;
}

.econsult-faq-accordion .panel{
    border-radius: var(--ad-radius-sm);
    box-shadow: var(--ad-shadow-sm);
    border: 1px solid var(--ad-border);
    margin-bottom: 12px;
    overflow: hidden;
    position: relative;
    background: var(--ad-surface);
}

.econsult-faq-accordion .panel-heading{
    padding: 0;
}

.econsult-faq-accordion .panel-heading a{
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    cursor: pointer;
    padding: 22px 26px;
    margin: 0;
    border: none;
    border-radius: 0;
    background: var(--ad-surface);
    font-size: 17px;
    line-height: 1.45;
    font-weight: 600;
    text-transform: none;
    color: var(--ad-title);
    -webkit-transition: all 400ms ease;
    transition: all 400ms ease;
}

.econsult-faq-accordion .panel-heading a:hover{
    color: var(--ad-accent);
}

.econsult-faq-accordion .panel-heading a:focus{
    outline: none;
}

.econsult-faq .active .accordion-toggle{
    padding-top: 24px;
}

.econsult-faq .panel-body{
    padding: 0 26px 24px;
    border: none !important;
    color: var(--ad-text);
    line-height: 1.75;
}

.econsult-faq .panel:before{
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 3px;
    content: "";
    background-color: var(--ad-accent);
    transform: scaleY(0);
    -webkit-transition: all 500ms ease;
    transition: all 500ms ease;
    z-index: 1;
}

.econsult-faq .panel.active:before{
    transform: scaleY(1);
}

.econsult-faq .panel.active h4 a{
    pointer-events: none;
    color: var(--ad-accent);
}

.econsult-faq-accordion .panel-heading a .fas{
    flex: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--ad-accent-soft);
    color: var(--ad-accent);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    transition: all 300ms ease;
}

.econsult-faq .panel.active .panel-heading a .fas{
    background: var(--ad-accent);
    color: #fff;
}

.econsult-faq .panel .fas::before{
    content: '\f067';
}

.econsult-faq .panel.active .fas::before{
    content: '\f068';
}

@media (max-width: 991px){
    .econsult-faq-main{ display: block; }

    .econsult-faq-accordion{ margin: 30px 0 0; }
}


/* ==========================================================================
   16 · PARTNER / LOGHI CLIENTI
   Bordi collassati (prima si sommavano fra celle adiacenti).
   ========================================================================== */

.econsult-partner{
    padding: clamp(44px, 4.5vw, 66px) 0;
}

.econsult-partner .section-title{
    text-align: center;
    margin-bottom: 28px;
}

.econsult-partner-main{
    margin: 0;
    display: grid;
    position: relative;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 1fr;
    grid-row-gap: 0;
    align-items: center;
}

.econsult-partner-in{
    border: 1px solid var(--ad-border);
    padding: 20px 0;
    margin-right: -1px;
    margin-bottom: -1px;
    transition: background .35s var(--ad-ease);
}

.econsult-partner-in:hover{
    background: var(--ad-surface-alt);
}

.econsult-partner-item{
    display: flex;
    align-items: center;
    justify-content: center;
}

.econsult-partner-img{
    display: inline-block;
    vertical-align: middle;
    max-width: 100%;
    position: relative;
    overflow: hidden;
    transition: opacity .15s ease-out;
}

.econsult-partner-mainimg{
    position: relative;
    display: block;
}

.econsult-partner-mainimg img{
    -webkit-filter: grayscale(100%);
    filter: grayscale(100%);
    opacity: .55;
    max-height: 32px;
    width: auto;
}

.econsult-partner-hoverimg{
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    -webkit-transform: translateY(-100%);
    -moz-transform: translateY(-100%);
    transform: translateY(-100%);
}

.econsult-partner-hoverimg img{
    -webkit-filter: grayscale(0);
    filter: grayscale(0);
    opacity: 1;
    max-height: 32px;
    width: auto;
}

.econsult-partner-hoverimg,
.econsult-partner-mainimg{
    -webkit-transition: -webkit-transform .5s ease;
    transition: transform .5s ease;
}

.econsult-partner-img:hover .econsult-partner-mainimg{
    -webkit-transform: translateY(100%);
    -moz-transform: translateY(100%);
    transform: translateY(100%);
    -webkit-transition: -webkit-transform .6s cubic-bezier(.19, .65, .02, .93);
    transition: transform .6s cubic-bezier(.19, .65, .02, .93);
}

.econsult-partner-img:hover .econsult-partner-hoverimg{
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    transform: translateY(0);
    -webkit-transition: -webkit-transform .6s cubic-bezier(.19, .65, .02, .93);
    transition: transform .6s cubic-bezier(.19, .65, .02, .93);
}

@media (max-width: 1100px){
    .econsult-partner-main{ grid-template-columns: repeat(3, 1fr) !important; }
}

@media (max-width: 991px){
    .econsult-partner-main{ grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 639px){
    .econsult-partner-main{ grid-template-columns: repeat(1, 1fr) !important; }
}


/* ==========================================================================
   17 · CONTATTI + FORM
   Fix critico: gli input avevano testo nero (#000) su fondo quasi nero
   (#0c0c0c) -> chi compilava non vedeva quello che stava scrivendo.
   ========================================================================== */

.econsult-contact{
    padding: var(--ad-section-y) 0 clamp(120px, 12vw, 170px);
    background-color: var(--ad-ink);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-attachment: fixed;
    background-image: linear-gradient(to right, rgba(14,26,40,.95), rgba(14,26,40,.88)), url( images/shape-1.png );
}

.econsult-contact .section-title p{
    background: rgba(255,255,255,.07);
    display: inline-block;
    margin-bottom: 16px;
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--ad-accent-light);
    padding: 7px 18px 6px;
    border-radius: var(--ad-pill);
}

.econsult-contact .section-title span{
    color: var(--ad-on-dark-soft);
    padding-top: 18px;
    display: block;
    line-height: 1.7;
}

.econsult-contact .section-title h2{
    color: #fff;
    line-height: 1.2 !important;
}

.econsult-contact-main{
    margin: 0 0 var(--ad-section-y) 0;
    display: flex;
    position: relative;
    align-items: start;
    width: 100%;
    justify-content: space-between;
    gap: clamp(30px, 4vw, 70px);
}

.econsult-contact-main h2{
    padding-top: 10px;
}

.econsult-contact-main .section-title{
    width: 36%;
}

.econsult-contact-form{
    width: 58%;
}

.econsult-contact-in{
    border-top: 1px solid var(--ad-on-dark-border);
    padding-top: clamp(50px, 6vw, 80px);
}

.econsult-contact-in h2{
    color: #fff;
    text-align: center;
    margin-bottom: 46px;
}

.econsult-contact-address{
    margin: 0 -15px;
    display: grid;
    position: relative;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 1fr;
    grid-row-gap: 0;
    align-items: stretch;
}

.econsult-contact-item{
    position: relative;
    display: block;
    background-color: rgba(255,255,255,.04);
    border: 1px solid var(--ad-on-dark-border);
    border-radius: var(--ad-radius);
    padding: 32px 30px 28px;
    margin: 0 15px 30px;
    transition: background .35s var(--ad-ease), border-color .35s var(--ad-ease), transform .35s var(--ad-ease);
}

.econsult-contact-item:hover{
    background: rgba(255,255,255,.07);
    border-color: rgba(30,115,190,.5);
    transform: translateY(-4px);
}

.econsult-contact-item .contact-title{
    color: #fff;
    padding-bottom: 14px;
    font-size: 18px !important;
}

.econsult-contact-item .contact-text{
    color: var(--ad-on-dark-soft);
    line-height: 1.7;
}

.econsult-contact-item .contact-text a{
    color: var(--ad-on-dark-soft);
}

.econsult-contact-item .contact-text a:hover{
    color: var(--ad-accent-light);
}

.contact-info a{
    display: block;
}

/* --- Form (Contact Form 7) --- */

.econsult-contact-form label{
    color: var(--ad-on-dark-soft);
    display: block;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .04em;
    margin-bottom: 6px;
}

.econsult-contact-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.econsult-contact-form textarea{
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 14px;
    background: rgba(255,255,255,.05);
    border: 1px solid var(--ad-on-dark-border);
    border-radius: var(--ad-radius-sm);
    color: #fff;
    padding: 13px 16px;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    box-shadow: none;
    transition: border-color .25s var(--ad-ease), background .25s var(--ad-ease), box-shadow .25s var(--ad-ease);
}

.econsult-contact-form input::-webkit-input-placeholder,
.econsult-contact-form textarea::-webkit-input-placeholder{ color: rgba(255,255,255,.42); }
.econsult-contact-form input::placeholder,
.econsult-contact-form textarea::placeholder{ color: rgba(255,255,255,.42); }

.econsult-contact-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):focus,
.econsult-contact-form textarea:focus{
    color: #fff;
    background: rgba(255,255,255,.08);
    border-color: var(--ad-accent);
    box-shadow: 0 0 0 3px rgba(30,115,190,.25);
    outline: none;
}

/* Campo telefono normalizzato come gli altri */
.econsult-contact-form input[type="tel"]{
    width: 100%;
    font-size: 15px;
    font-weight: 400;
    max-height: 48px;
}

/* Campo messaggio ridotto di circa il 50% */
.econsult-contact-form textarea{
    min-height: 68px;
    height: 68px;
    max-height: 120px;
    resize: vertical;
}

.wpcf7 form .wpcf7-list-item{
    margin: 0;
}

/* Checkbox privacy allineata al testo */
.econsult-contact-form .wpcf7-list-item label,
.econsult-contact-form .wpcf7-acceptance label{
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 8px 0 4px;
    cursor: pointer;
}

.econsult-contact-form .wpcf7-list-item input[type="checkbox"],
.econsult-contact-form .wpcf7-list-item input[type="radio"]{
    width: 16px;
    height: 16px;
    min-width: 16px;
    margin: 3px 0 0;
    padding: 0;
    flex: none;
    accent-color: var(--ad-accent);
}

.econsult-contact-form .wpcf7-list-item-label,
.econsult-contact-form .wpcf7-acceptance .wpcf7-list-item-label{
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0;
    color: var(--ad-on-dark-soft);
    line-height: 1.55;
    display: block;
}

.econsult-contact-form .wpcf7 form .wpcf7-response-output{
    margin: 18px 0 0 0;
    color: #fff;
    padding: 12px 18px;
    border-radius: var(--ad-radius-sm);
    border-color: var(--ad-accent);
    font-size: 14px;
}

.econsult-contact-form .wpcf7 form .wpcf7-submit,
.econsult-contact-form input[type="submit"]{
    display: inline-block;
    width: auto;
    margin-top: 10px;
    padding: 17px 46px;
    background: var(--ad-accent);
    border: none;
    border-radius: var(--ad-pill);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .3s var(--ad-ease), transform .3s var(--ad-ease), box-shadow .3s var(--ad-ease);
}

.econsult-contact-form .wpcf7 form .wpcf7-submit:hover,
.econsult-contact-form input[type="submit"]:hover{
    background: var(--ad-accent-dark);
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(30,115,190,.35);
}

.econsult-contact-form .wpcf7-spinner{
    margin: 0 0 0 14px;
}

@media (max-width: 1100px){
    .econsult-contact-address{ grid-template-columns: repeat(3, 1fr) !important; }
}

@media (max-width: 991px){
    .econsult-contact-main,
    .econsult-contact-address{ display: block; }

    .econsult-contact-address{ margin: 0; }

    .econsult-contact-main .section-title,
    .econsult-contact-form{ width: 100%; }

    .econsult-contact-form{ margin-top: 34px; }

    .econsult-contact-item{ margin: 0 0 20px; }
}

@media (max-width: 567px){
    .econsult-contact-form .wpcf7 form .wpcf7-submit,
    .econsult-contact-form input[type="submit"]{
        width: 100%;
        text-align: center;
    }
}


/* ==========================================================================
   18 · MAPPA
   ========================================================================== */

.econsult-map{
    padding: 0 0 var(--ad-section-y);
}

.econsult-map .map{
    margin-top: clamp(-120px, -8vw, -80px);
    border-radius: var(--ad-radius-lg);
    overflow: hidden;
    box-shadow: var(--ad-shadow);
    position: relative;
    z-index: 1;
}

.econsult-map .map iframe{
    border: none;
    width: 100%;
    display: block;
}


/* ==========================================================================
   19 · PRICING
   ========================================================================== */

.econsult-pricing{
    padding: var(--ad-section-y) 0 0;
}

.econsult-pricing .section-title{
    text-align: center;
    margin-bottom: 44px;
}

.econsult-pricing .section-title h2{
    padding-bottom: 10px;
}

.econsult-pricing-main{
    margin: 0 -15px;
    display: grid;
    position: relative;
    grid-template-columns: repeat( auto-fit, minmax(100px, 1fr) );
    grid-auto-rows: 1fr;
    grid-row-gap: 5px;
    align-items: stretch;
}

.econsult-pricing-item{
    display: flex;
    flex-direction: column;
    padding: clamp(34px, 3.4vw, 48px);
    background-size: cover;
    background-position: center;
    background-color: var(--ad-surface);
    border: 1px solid var(--ad-border);
    box-shadow: var(--ad-shadow-sm);
    transition: transform .45s var(--ad-ease), box-shadow .45s var(--ad-ease);
    margin: 0 15px;
    position: relative;
    border-radius: var(--ad-radius);
    overflow: hidden;
}

.econsult-pricing-item:hover{
    transform: translateY(-6px);
    box-shadow: var(--ad-shadow);
}

.econsult-pricing-item .pricing-header{
    padding-bottom: 26px;
    margin-bottom: 26px;
    border-bottom: 1px solid var(--ad-border);
}

.econsult-pricing-item .pricing-header .pricing-tag{
    padding: 7px 16px 6px 20px;
    margin-top: 22px;
    border-radius: var(--ad-pill) 0 0 var(--ad-pill);
    color: #fff;
    background: var(--ad-accent);
    position: absolute;
    z-index: 1;
    top: 0;
    right: 0;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.econsult-pricing-item span.pricing_currency{
    display: inline-block;
    vertical-align: super;
    font-weight: 700;
    color: var(--ad-accent);
    font-size: 22px;
}

.econsult-pricing-item .pricing-price{
    display: inline-block;
    position: relative;
    z-index: 1;
    vertical-align: baseline;
    font-size: clamp(38px, 3.4vw, 50px) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.03em;
}

.econsult-pricing-item .pricing-price span{
    vertical-align: super;
    font-size: 22px;
    font-weight: 600;
}

.econsult-pricing-item .pricing-content li{
    line-height: 2.2;
    color: var(--ad-text);
}

.econsult-pricing-item .pricing-footer{
    margin-top: auto;
    padding-top: 30px;
}

.econsult-pricing-item.pricing-recommended{
    background: var(--ad-ink);
    border-color: var(--ad-ink);
    box-shadow: var(--ad-shadow-lg);
}

.econsult-pricing-item.pricing-recommended .pricing-header{
    border-color: rgba(255,255,255,.16);
}

.econsult-pricing-item.pricing-recommended .pricing-header h4,
.econsult-pricing-item.pricing-recommended .pricing-price,
.econsult-pricing-item.pricing-recommended .pricing-content li,
.econsult-pricing-item.pricing-recommended .pricing-footer .per-btn{
    color: #fff !important;
}

.econsult-pricing-item.pricing-recommended span.pricing_currency{
    color: var(--ad-accent-light);
}

.econsult-pricing .econsult-pricing-main .pricing-footer .per-btn{
    display: inline-flex;
}

@media (max-width: 1100px){
    .econsult-pricing-main{
        grid-template-columns: repeat(1, 1fr) !important;
        padding: 0 100px;
        /* era 0fr: con le card a flex-column schiacciava il contenuto */
        grid-auto-rows: auto;
    }

    .econsult-pricing-item{ margin: 0 0 30px; }
}

@media (max-width: 991px){
    .econsult-pricing-main{ padding: 0 50px; }
}

@media (max-width: 639px){
    .econsult-pricing-main{ padding: 0 15px; }
}

@media (max-width: 567px){
    .econsult-pricing-item{ padding: 30px 26px; margin: 0 0 26px; }
}


/* ==========================================================================
   20 · BLOG, SLIDER E CUSTOMIZER
   ========================================================================== */

.blog_listing_grid_two_column .entry-meta{
    font-size: 90%;
    color: var(--ad-muted);
    letter-spacing: .02em;
}

div#respond h3#reply-title{
    text-transform: capitalize;
}

.testi-slider{
    display: none;
}

.testi-slider.slick-initialized{
    display: block;
}

.work_slider_wrapper{
    position: relative;
}

/* Shortcut di modifica del Customizer: solo posizionamento */
.customize-partial-edit-shortcut-econsulting_agency_banner_custom_field_value,
.customize-partial-edit-shortcut-econsulting_agency_banner_custom_field_label,
.customize-partial-edit-shortcut-econsulting_agency_banner_custom_field_icon,
.customize-partial-edit-shortcut-econsulting_agency_services_list,
.customize-partial-edit-shortcut-econsulting_agency_work_process_subtitle,
.customize-partial-edit-shortcut-econsulting_agency_pricing_list,
.customize-partial-edit-shortcut-econsulting_agency_partners_list,
.customize-partial-edit-shortcut-econsulting_agency_contact_list{
    top: 0;
}

.customize-partial-edit-shortcut-econsulting_agency_banner_subtitle{
    top: -15px;
}

.customize-partial-edit-shortcut-econsulting_agency_our_work_subtitle{
    top: 0;
    left: 15px;
}

.customize-partial-edit-shortcut-econsulting_agency_our_work_list{
    left: 50%;
    top: -20px;
}


/* ==========================================================================
   21 · FOOTER
   Interventi volutamente minimi: la struttura del footer e' del tema padre.
   ========================================================================== */

footer#colophon a:hover,
footer#colophon a:focus{
    color: var(--ad-accent);
}

footer#colophon .widget-title,
footer#colophon .widget h4{
    letter-spacing: .01em;
}

footer#colophon .widget{
    margin-bottom: 26px;
}


/* ==========================================================================
   21b · NOME E COGNOME NELL'HEADER
   Il testo deve essere reale (indicizzabile), non generato in CSS:
   attivalo da Aspetto > Personalizza > Identita' del sito
   (Titolo del sito = "Alessandro Durante" + spunta "Mostra titolo").
   Qui c'e' solo lo stile: maiuscoletto, nome nero, cognome in blu.
   ========================================================================== */

.site-branding,
.navbar-header .navbar-brand,
.navbar-brand{
    display: flex;
    align-items: center;
    gap: 12px;
}

/* Molti temi nascondono il titolo del sito quando c'e' un logo:
   qui viene reso di nuovo visibile. */
.site-title,
h1.site-title,
p.site-title,
.navbar-brand .site-title,
.site-branding .site-title{
    display: block !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    clip: auto !important;
    clip-path: none !important;
    overflow: visible !important;
    margin: 0;
    padding: 0;
    font-size: clamp(17px, 1.5vw, 22px) !important;
    line-height: 1.1 !important;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.site-title a,
.ad-brand-name{
    color: var(--ad-title);
    text-decoration: none;
}

/* Versione con markup reale (snippet PHP): nome nero + cognome blu */
.ad-brand-name{
    display: inline-block;
    font-size: clamp(17px, 1.5vw, 22px);
    line-height: 1.1;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
    margin-left: 12px;
    vertical-align: middle;
}

.ad-brand-name .ad-nome{ color: var(--ad-title); }
.ad-brand-name .ad-cognome{ color: var(--ad-accent); }
.ad-brand-name:hover .ad-cognome{ color: var(--ad-accent-dark); }

/* Nome nero + cognome blu senza toccare l'HTML: sfumatura a due colori
   ritagliata sul testo. Il punto di stacco e' regolabile con --ad-name-split
   (il taglio cade nello spazio fra le due parole). */
@supports ((-webkit-background-clip: text) or (background-clip: text)){
    .site-title a{
        background-image: linear-gradient(
            90deg,
            var(--ad-title) 0 var(--ad-name-split),
            var(--ad-accent) var(--ad-name-split) 100%
        );
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
    }
}

.site-description{
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ad-muted);
}

/* Per togliere l'atomo dal logo, togli il commento a queste due righe:
.custom-logo-link,
.navbar-brand > img{ display: none !important; }
*/


/* ==========================================================================
   21c · FASCE A TUTTA LARGHEZZA (widescreen)
   I blocchi colorati che il tema disegna come "riquadri" dentro al container
   diventano fasce piene da bordo a bordo, come la sezione contatti e il footer.
   Il contenuto resta allineato alla griglia del sito grazie a
   padding = 50vw - meta' del container (si adatta da solo a ogni breakpoint).
   ========================================================================== */

.econsult-counter,
.econsult-about-us,
.econsult-callto{
    overflow-x: hidden;
    overflow-x: clip;
    padding-left: 0;
    padding-right: 0;
}

.econsult-counter-in,
.econsult-about-us .about-us-content,
.econsult-callto-main{
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: max(20px, calc(50vw - 50%));
    padding-right: max(20px, calc(50vw - 50%));
    border-radius: 0 !important;
    box-shadow: none !important;
    max-width: none;
}

/* Il metodo non serve full-bleed: il grigio sta gia' sulla sezione intera,
   il contenuto resta dentro al container. */
.econsult-our-process .process_content{
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

/* ==========================================================================
   22 · RESPONSIVE — REGOLE TRASVERSALI
   ========================================================================== */

@media (min-width: 1101px) and (max-width: 1199px){
    .econsult-banner-btn,
    .econsult-det{
        flex-direction: column;
        align-content: flex-start;
        align-items: flex-start;
    }

    .econsult-det{
        flex-direction: row;
    }

    .econsult-banner-btn{
        gap: 15px;
    }

    .econsult-contact-address{
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (min-width: 320px) and (max-width: 1024px){
    header .navbar .slicknav_nav{
        max-height: fit-content;
    }

    .econsult-banner::after{
        top: 0;
    }
}

@media (max-width: 991px){
    #blog.blog-detail-page{
        padding-top: 0;
    }
}

@media (max-width: 767px){
    /* Rifiniture mobile: respiro laterale e titoli piu' compatti */
    .econsult-services-item{ padding: 30px 26px; }

    .econsult-testi .section-title,
    .econsult-services-in .section-title,
    .econsult-partner .section-title{ margin-bottom: 34px; }

    .work_slider .title_wrapper{ padding: 0 22px; bottom: 22px; }
}


/* ==========================================================================
   23 · ACCESSIBILITA' & MOTION
   ========================================================================== */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.per-btn:focus-visible{
    outline: 2px solid var(--ad-accent);
    outline-offset: 3px;
    border-radius: 4px;
}

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

    *,
    *::before,
    *::after{
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}


/* ==========================================================================
   24 · PERSONALIZZAZIONI (ex "CSS aggiuntivo" del Customizer)
   Tutto quello che stava in Aspetto > Personalizza > CSS aggiuntivo e' stato
   portato qui e armonizzato con il resto del foglio.
   >>> Dopo aver caricato questo file, SVUOTA il campo "CSS aggiuntivo":
   caricandosi dopo, continuerebbe a sovrascrivere queste regole. <<<
   ========================================================================== */

/* --- Copyright del tema nascosto ----------------------------------------- */
.bizberg_copyright_inner{
    display: none !important;
}

/* --- Gradiente blu del deck: contatori + footer --------------------------- */
.econsult-counter-in{
    background: #0E2369 !important;
    background: var(--ad-grad-blue) !important;
}

.econsult-counter-in .d-line{
    border-right: 0 !important;
}

body footer#footer.footer-style{
    background: #0E2369 !important;
    background: var(--ad-grad-blue) !important;
}

/* --- Gradiente CTA "Parliamone davanti a un caffe'" ----------------------- */
.econsult-callto-main{
    background: #0E2369 !important;
    background: var(--ad-grad-blue-rev) !important;
}

.econsult-callto-main .d-line{
    border-right: 0 !important;
}

/* --- Sezione contatti: fondo grigio pieno -------------------------------- */
.econsult-contact{
    background-color: #101B45 !important;
    background-image: none !important;
    background-attachment: scroll;
}

/* Campi del form bianchi (scelta del Customizer) con testo scuro:
   prima il testo era bianco su fondo bianco e non si leggeva quello che
   si stava scrivendo. */
.econsult-contact-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.econsult-contact-form textarea{
    background: #ffffff;
    border: 1px solid #b9bec5;
    color: var(--ad-title);
}

.econsult-contact-form input::-webkit-input-placeholder,
.econsult-contact-form textarea::-webkit-input-placeholder{ color: #8d949d; }
.econsult-contact-form input::placeholder,
.econsult-contact-form textarea::placeholder{ color: #8d949d; }

.econsult-contact-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):focus,
.econsult-contact-form textarea:focus{
    background: #ffffff;
    color: var(--ad-title);
    border-color: var(--ad-accent);
    box-shadow: 0 0 0 3px rgba(30,115,190,.28);
}

.econsult-contact-form label,
.econsult-contact-form .wpcf7-list-item-label{
    color: #ffffff;
}

.econsult-contact-item{
    background-color: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.16);
}

/* --- Loghi partner: nastro scorrevole in loop ---------------------------- */
.econsult-partner-main{
    margin: 0;
    display: flex;
    position: relative;
    overflow-x: auto;
    scroll-behavior: smooth;
    gap: 20px;
    grid-template-columns: none;
}

.econsult-partner-main::-webkit-scrollbar{
    display: none;
}

.econsult-partner-in{
    min-width: 200px;
    /* niente riquadro attorno ai loghi */
    border: none !important;
    background: none;
    /* sezione piu' compatta: prima 40px 20px */
    padding: 18px 20px;
    margin: 0;
    flex-shrink: 0;
    animation: scrollPages 80s infinite;
    animation-timing-function: linear;
}

.econsult-partner-in:hover{
    background: none;
}

.econsult-partner-main:hover .econsult-partner-in{
    animation-play-state: paused;
}

@media screen and (min-width: 992px){
    @keyframes scrollPages {
        0%   { transform: translateX(250px); }
        50%  { transform: translateX(-4000px); }
        100% { transform: translateX(250px); }
    }

    .econsult-partner-main:hover{
        overflow-x: hidden;
    }
}

@media (max-width: 991px){
    .econsult-partner-main{
        grid-template-columns: none !important;
    }
}


/* ==========================================================================
   26 · HEADER: CTA NEL MENU  ·  FOOTER: ICONE SOCIAL
   ========================================================================== */

/* Ultima voce di menu trasformata in pulsante.
   Nel menu di WordPress assegna alla voce la classe CSS "menu-cta"
   (Aspetto > Menu > Impostazioni schermata > spunta "Classi CSS"). */
@media (min-width: 1025px){
    .navbar-default .navbar-nav{
        display: flex;
        align-items: center;
    }

    .navbar-default .navbar-nav > li.menu-cta > a,
    .navbar-nav > li.menu-cta > a,
    .navbar-nav > li.cta > a{
        background: var(--ad-accent);
        color: #fff !important;
        border-radius: var(--ad-btn-radius);
        padding: 12px 22px !important;
        margin-left: 16px;
        font-weight: 700;
        font-size: 14px;
        line-height: 1.2;
        white-space: nowrap;
        transition: background .3s var(--ad-ease), transform .3s var(--ad-ease), box-shadow .3s var(--ad-ease);
    }

    .navbar-default .navbar-nav > li.menu-cta > a:hover,
    .navbar-nav > li.menu-cta > a:hover,
    .navbar-nav > li.cta > a:hover{
        background: var(--ad-accent-dark);
        color: #fff !important;
        transform: translateY(-2px);
        box-shadow: 0 10px 22px rgba(30,115,190,.32);
    }

    /* niente sottolineatura animata sul pulsante */
    .navbar-nav > li.menu-cta > a::after,
    .navbar-nav > li.cta > a::after{
        display: none !important;
    }
}

/* Su mobile la voce resta un link normale, ma evidenziato */
@media (max-width: 1024px){
    .slicknav_nav li.menu-cta > a,
    .navbar-nav > li.menu-cta > a{
        color: var(--ad-accent) !important;
        font-weight: 700;
    }
}

/* Icone social del footer: sempre bianche (mai arancio) */
footer .social-icons a,
footer .social-icons i,
footer#footer .social a,
footer#footer .social i,
footer#colophon .social-icons a,
footer#colophon .social-icons i,
footer [class*="fa-linkedin"],
footer [class*="fa-facebook"],
footer [class*="fa-instagram"],
footer [class*="fa-twitter"],
footer [class*="fa-youtube"]{
    color: #ffffff !important;
}

footer .social-icons a:hover,
footer .social-icons a:hover i,
footer [class*="fa-linkedin"]:hover{
    color: rgba(255,255,255,.75) !important;
}

/* Se le icone sono immagini/SVG monocromatiche, le forza a bianco */
footer .social-icons img,
footer#footer .social img{
    filter: brightness(0) invert(1);
}


/* ==========================================================================
   27 · VARIANTE BLU — regola unica per i colori delle CTA
   Su fondo chiaro il pulsante e' BLU. Su fondo blu/scuro e' AMBRA con testo
   indaco. Nessun'altra variante: niente pulsanti bianchi, verdi o viola.
   ========================================================================== */

.econsult-callto-main .per-btn,
.econsult-call-to-action .button_wrapper .per-btn{
    color: #101B45 !important;
}

.econsult-callto-main .per-btn::before,
.econsult-call-to-action .button_wrapper .per-btn::before{
    background: var(--ad-amber);
}

.econsult-callto-main .per-btn:hover,
.econsult-call-to-action .button_wrapper .per-btn:hover{
    color: #101B45 !important;
    box-shadow: 0 12px 26px rgba(255,152,85,.32);
}

.econsult-callto-main .per-btn:hover::before,
.econsult-call-to-action .button_wrapper .per-btn:hover::before{
    background: var(--ad-amber-dark);
}

/* Occhielli sulle fasce scure */
.econsult-works .section-title p,
.econsult-contact .section-title p{
    background: rgba(255,255,255,.10);
    color: var(--ad-amber);
}

.econsult-counter-in p{
    color: rgba(255,255,255,.82);
}

/* Pulsante invia del form: blu, hover ambra */
.econsult-contact-form .wpcf7 form .wpcf7-submit:hover,
.econsult-contact-form input[type="submit"]:hover{
    background: var(--ad-amber);
    color: #101B45;
    box-shadow: 0 12px 26px rgba(255,152,85,.32);
}

/* CTA nel menu: ombra coerente con il blu del deck */
@media (min-width: 1025px){
    .navbar-default .navbar-nav > li.menu-cta > a:hover,
    .navbar-nav > li.menu-cta > a:hover,
    .navbar-nav > li.cta > a:hover{
        box-shadow: 0 10px 22px rgba(47,75,192,.32);
    }
}


/* --------------------------------------------------------------------------
   OPZIONALE — titoli con la sfumatura multicolore del deck.
   E' spento: togli i commenti per provarlo.
   -------------------------------------------------------------------------- */
/*
@supports ((-webkit-background-clip: text) or (background-clip: text)){
    .econsult-services-in .section-title h2,
    .econsult-our-process .section-title h2,
    .econsult-testi .section-title h2,
    .econsult-faq .section-title h2,
    .econsult-partner .section-title h2{
        background-image: linear-gradient(90deg,
            #5B7FE0 0%, #8B5CF6 28%, #E8489B 55%, #F1544F 78%, #FFB454 100%);
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        display: inline-block;
    }
}
*/