/* =========================================================
   EUROPOL TOP LEGAL FRAMEWORK 1.0.0
   ========================================================= */
.etl-active .page_content_wrap .content_wrap,
.etl-active .content_wrap {
    width: min(calc(100% - 32px), 1240px) !important;
    max-width: 1240px !important;
    margin-inline: auto !important;
}
.etl-active .content,
.etl-active .post_content,
.etl-active .entry-content {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
}
.etl-active.etl-hide-theme-header .top_panel_title,
.etl-active.etl-hide-theme-header .page_title_wrap,
.etl-active.etl-hide-theme-header .page_title,
.etl-active.etl-hide-theme-header .page_caption,
.etl-active.etl-hide-theme-header .breadcrumbs,
.etl-active.etl-hide-theme-header .post_header_single,
.etl-active.etl-hide-theme-header .post_header,
.etl-active.etl-hide-theme-header .post_title.entry-title,
.etl-active.etl-hide-theme-header .sc_layouts_title,
.etl-active.etl-hide-theme-header .sc_layouts_title_breadcrumbs {
    display: none !important;
}
.etl-active.etl-hide-sidebar .sidebar,
.etl-active.etl-hide-sidebar aside.sidebar,
.etl-active.etl-hide-sidebar .widget_area,
.etl-active.etl-hide-sidebar .sidebar_inner {
    display: none !important;
}
.etl-active .vc_row,
.etl-active .vc_column_container,
.etl-active .vc_column-inner,
.etl-active .wpb_wrapper {
    margin: 0 !important;
}
.etl-active .eu-auto-featured-image-wrap { display:none !important; }
.etl-active.etl-featured-none .post_featured,
.etl-active.etl-featured-none figure.eu-auto-featured-image-wrap { display:none !important; }
.etl-active .post_featured {
    width: min(calc(100% - 32px), 1240px);
    max-width: 1240px;
    margin: 1rem auto 2rem;
    border-radius: 1.4rem;
    overflow: hidden;
    box-shadow: 0 22px 64px rgba(16,36,59,.14);
}
.etl-active .post_featured img{display:block;width:100%;height:auto}

.eu-tl {
    --etl-primary: #10243b;
    --etl-secondary: #1d6fcb;
    --etl-accent: #8fd446;
    --etl-surface: #f4f8fb;
    --etl-body: #52677a;
    box-sizing: border-box;
    width: min(calc(100% - 8px), 1240px);
    max-width: 1240px;
    margin-inline: auto;
    padding: 0 0 4rem;
    color: var(--etl-primary);
    font-family: inherit;
}
.eu-tl *, .eu-tl *::before, .eu-tl *::after { box-sizing:border-box; }
.eu-tl p,
.eu-tl li,
.eu-tl td,
.eu-tl blockquote {
    color: var(--etl-body);
    text-align: justify;
    line-height: 1.85;
    font-size: 1.04rem;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
    hyphens: none !important;
}
.eu-tl h1,.eu-tl h2,.eu-tl h3,.eu-tl h4,.eu-tl h5,.eu-tl h6{
    color: var(--etl-primary);
    line-height: 1.15;
    margin: 0 0 .9rem;
    text-wrap: balance;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}
.eu-tl h1{font-size:clamp(2.5rem,5vw,4.35rem);letter-spacing:-.05em;color:var(--etl-accent)}
.eu-tl h2{font-size:clamp(1.8rem,3vw,2.8rem);letter-spacing:-.04em}
.eu-tl h3{font-size:clamp(1.15rem,2vw,1.5rem)}
.eu-tl a{color:var(--etl-secondary);text-decoration-thickness:.08em;text-underline-offset:.18em}
.eu-tl img{max-width:100%;height:auto}

.eu-tl__progress{position:sticky;top:0;left:0;z-index:40;height:4px;background:rgba(29,111,203,.08);border-radius:999px;overflow:hidden;margin-bottom:1.5rem}
.eu-tl__progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--etl-secondary),var(--etl-accent));transition:width .18s linear}

.eu-tl__hero{padding:clamp(2rem,6vw,4.5rem) 0 2rem}
.eu-tl__hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:1.4rem;align-items:start}
.eu-tl__hero--compact{display:block;max-width:980px}
.eu-tl__brand,.eu-tl__edition,.eu-tl__kicker,.eu-tl__eyebrow,.eu-tl__section-label{
    margin:0 0 .7rem;
    color:var(--etl-secondary);
    font-size:.82rem;
    font-weight:850;
    letter-spacing:.1em;
    text-transform:uppercase;
    text-align:left !important;
}
.eu-tl__subtitle,.eu-tl__lead{font-size:1.16rem !important;color:var(--etl-body);max-width:980px}
.eu-tl__hero-note,.eu-tl__notice{
    margin-top:1rem;
    padding:1.1rem 1.2rem;
    border-left:4px solid var(--etl-secondary);
    border-radius:1rem;
    background:var(--etl-surface);
}
.eu-tl__hero-note strong,.eu-tl__notice strong{display:block;color:var(--etl-primary);margin-bottom:.3rem}
.eu-tl__hero-actions,.eu-tl__cta-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.4rem}
.eu-tl__button{
    display:inline-flex;align-items:center;justify-content:center;min-height:3rem;
    padding:.88rem 1.22rem;border-radius:999px;font-weight:850;text-decoration:none !important;
    line-height:1.2;text-align:center;box-shadow:0 12px 26px rgba(16,36,59,.1)
}
.eu-tl__button--primary{background:var(--etl-secondary);color:#fff !important}
.eu-tl__button--ghost{background:var(--etl-primary);color:#fff !important}
.eu-tl__button--outline{background:#fff;color:var(--etl-primary)!important;border:1px solid #d6e2ec}

.eu-tl__hero-aside,.eu-tl__meta,.eu-tl__faq details,
.eu-tl__card,.eu-tl__timeline-step,.eu-tl__step,
.eu-tl__table-wrap,.eu-tl__feature,
.eu-tl__related a,.eu-tl__stat,
.eu-tl__cta,.eu-tl__featured{
    border:1px solid #dce7f0;
    background:#fff;
    border-radius:1.25rem;
    box-shadow:0 20px 54px rgba(16,36,59,.06)
}
.eu-tl__hero-aside{padding:1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.eu-tl__stat{padding:1rem}
.eu-tl__stat-number{display:block;color:var(--etl-primary);font-size:1.5rem;font-weight:900;line-height:1.1}
.eu-tl__stat-unit{display:block;color:var(--etl-secondary);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;font-weight:850;margin-bottom:.35rem}
.eu-tl__stat p{margin:0;font-size:.94rem;line-height:1.65;text-align:left}

.eu-tl__meta{display:flex;flex-wrap:wrap;gap:.8rem;padding:1rem 1.1rem;margin-top:1rem;background:var(--etl-surface)}
.eu-tl__meta span{font-size:.92rem;color:var(--etl-body)}

.eu-tl__content{display:grid;gap:2.2rem}
.eu-tl__content--auto{gap:1.6rem}
.eu-tl__section{padding:1rem 0}
.eu-tl__section--surface{padding:clamp(1.2rem,3vw,2.2rem);background:var(--etl-surface);border-radius:1.5rem}
.eu-tl__toc{padding:1.25rem 1.35rem;border-radius:1.4rem;background:linear-gradient(135deg,var(--etl-surface),#fbfdff);border:1px solid #dce7f0}
.eu-tl__toc ol{margin:1rem 0 0;padding-left:1.25rem;display:grid;gap:.35rem}
.eu-tl__toc a{font-weight:700}

.eu-tl__cards,
.eu-tl__features,
.eu-tl__related,
.eu-tl__grid-2,
.eu-tl__grid-3,
.eu-tl__grid-4{display:grid;gap:1rem}
.eu-tl__cards--2,.eu-tl__grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.eu-tl__cards--3,.eu-tl__grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.eu-tl__cards--4,.eu-tl__grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.eu-tl__card{padding:1.2rem;min-width:0;display:flex;flex-direction:column;justify-content:flex-start}
.eu-tl__card-tag{display:inline-flex;align-self:flex-start;padding:.35rem .6rem;border-radius:999px;background:rgba(29,111,203,.1);color:var(--etl-secondary);font-size:.76rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.75rem}
.eu-tl__card p{margin:0}
.eu-tl__card--accent{background:linear-gradient(135deg,#ffffff,#f8fcf3)}
.eu-tl__card--gold{background:linear-gradient(135deg,#ffffff,#fffaf0)}
.eu-tl__card--navy{background:linear-gradient(135deg,#ffffff,#f3f7fd)}

.eu-tl__quote{margin:1rem 0;padding:1rem 1.2rem;border-left:4px solid var(--etl-accent);background:#fbfef8;border-radius:1rem;font-size:1.1rem;color:var(--etl-primary)}

.eu-tl__number-band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;padding:1rem 0}
.eu-tl__number-item{padding:1rem;border-radius:1.15rem;background:var(--etl-primary)}
.eu-tl__number-value{display:block;color:var(--etl-accent);font-size:1.75rem;font-weight:900;line-height:1}
.eu-tl__number-label{display:block;color:rgba(255,255,255,.88);margin-top:.35rem;font-size:.92rem;line-height:1.45}

.eu-tl__table-wrap{overflow-x:auto;padding:0}
.eu-tl__table{width:100%;min-width:760px;border-collapse:collapse}
.eu-tl__table th,.eu-tl__table td{padding:1rem;border-bottom:1px solid #e5edf4;vertical-align:top}
.eu-tl__table th{background:var(--etl-primary);color:#fff;text-transform:uppercase;font-size:.82rem;letter-spacing:.05em;text-align:left}
.eu-tl__table td:first-child{font-weight:800;color:var(--etl-primary)}

.eu-tl__timeline,.eu-tl__steps{display:flex;flex-direction:column;gap:.8rem}
.eu-tl__timeline-step,.eu-tl__step,.eu-tl__steps li{
    display:grid;grid-template-columns:72px minmax(0,1fr);
    gap:1rem;align-items:start;padding:1rem 1.1rem;min-height:unset;height:auto;width:100%
}
.eu-tl__timeline-step::before,.eu-tl__step::before,.eu-tl__steps li::before{
    content:attr(data-step);display:grid;place-items:center;width:48px;height:48px;border-radius:14px;
    background:#eaf4ff;color:var(--etl-secondary);font-size:.82rem;font-weight:900
}
.eu-tl__timeline-step h3,.eu-tl__step h3,.eu-tl__steps li h3,
.eu-tl__timeline-step p,.eu-tl__step p,.eu-tl__steps li p {
    display:block !important;
    width:100% !important;
    max-width:none !important;
    margin:0 0 .3rem 0;
    white-space:normal !important;
}
.eu-tl__steps{list-style:none;padding:0;margin:0}
.eu-tl__steps li > span{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#eaf4ff;color:var(--etl-secondary);font-size:.82rem;font-weight:900}
.eu-tl__steps li{grid-template-columns:72px minmax(0,1fr)}
.eu-tl__steps li > div{min-width:0;width:100%}

.eu-tl__featured{margin:1rem 0 2rem;overflow:hidden}
.eu-tl__featured img{display:block;width:100%;height:auto}
.eu-tl__featured figcaption{padding:.9rem 1rem;font-size:.9rem;color:var(--etl-body);background:#fff}

.eu-tl__faq{display:grid;gap:.85rem}
.eu-tl__faq details{overflow:hidden}
.eu-tl__faq summary{cursor:pointer;padding:1rem 1.15rem;font-weight:850;color:var(--etl-primary);list-style:none}
.eu-tl__faq summary::-webkit-details-marker{display:none}
.eu-tl__faq details p{padding:0 1.15rem 1rem;margin:0}

.eu-tl__related{grid-template-columns:repeat(3,minmax(0,1fr))}
.eu-tl__related a{display:block;padding:1rem;font-weight:850;text-decoration:none !important}

.eu-tl__cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.4rem;align-items:center;padding:1.4rem;background:linear-gradient(135deg,var(--etl-surface),#ffffff)}

.eu-tl ul,.eu-tl ol{padding-left:1.2rem}
.eu-tl li+li{margin-top:.35rem}
.eu-tl .wpb_single_image,.eu-tl .vc_single_image-wrapper{max-width:100%}

@media (max-width: 1100px){
    .eu-tl__hero-grid,.eu-tl__cards--4,.eu-tl__grid-4,.eu-tl__number-band{grid-template-columns:repeat(2,minmax(0,1fr))}
    .eu-tl__cards--3,.eu-tl__grid-3,.eu-tl__related{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 900px){
    .eu-tl__hero-grid,.eu-tl__cta{grid-template-columns:1fr}
}
@media (max-width: 768px){
    .eu-tl{width:min(calc(100% - 18px),100%)}
    .eu-tl p,.eu-tl li,.eu-tl td{font-size:1rem;line-height:1.72}
    .eu-tl__hero-actions,.eu-tl__cta-actions{display:grid;grid-template-columns:1fr}
    .eu-tl__button{width:100%}
    .eu-tl__hero-aside,
    .eu-tl__cards--2,.eu-tl__cards--3,.eu-tl__cards--4,
    .eu-tl__grid-2,.eu-tl__grid-3,.eu-tl__grid-4,
    .eu-tl__number-band,.eu-tl__related{grid-template-columns:1fr}
    .eu-tl__timeline-step,.eu-tl__step,.eu-tl__steps li{grid-template-columns:56px minmax(0,1fr);padding:.95rem}
    .eu-tl__table{min-width:680px}
}


/* =========================================================
   EUROPOL TOP LEGAL 1.0.2 — EDITORIAL ELEGANT
   Raffinamento grafico globale.
   - Titoli blu notte, non verde lime
   - Verde solo come accento
   - Testi principali a piena larghezza e giustificati
   - Card con testo allineato a sinistra
   - Steps orizzontali compatti, senza doppio quadrato
   ========================================================= */

/* Palette editoriale più istituzionale */
.eu-tl {
    --etl-primary: #10243b;
    --etl-secondary: #1d6fcb;
    --etl-accent: #86c943;
    --etl-accent-soft: #eef8e6;
    --etl-surface: #f6f9fc;
    --etl-body: #4d6276;
    --etl-border: #dce6ef;
    --etl-shadow: 0 14px 38px rgba(16, 36, 59, 0.06);
}

/* TITOLI: blu notte. Il verde resta un accento e non domina la pagina. */
.etl-active .eu-tl h1,
.etl-active .eu-tl h2,
.etl-active .eu-tl h3,
.etl-active .eu-tl h4,
.etl-active .eu-tl h5,
.etl-active .eu-tl h6 {
    color: var(--etl-primary) !important;
}

.etl-active .eu-tl h1 {
    font-size: clamp(2.45rem, 4.6vw, 4.1rem);
    line-height: 1.03;
    letter-spacing: -0.045em;
}

.etl-active .eu-tl__section > h2,
.etl-active .eu-tl__toc > h2,
.etl-active .eu-tl__cta h2 {
    position: relative;
    margin-bottom: 1.2rem !important;
    padding-bottom: 0.72rem;
    font-size: clamp(1.75rem, 2.75vw, 2.45rem);
    line-height: 1.12;
    letter-spacing: -0.035em;
}

.etl-active .eu-tl__section > h2::after,
.etl-active .eu-tl__toc > h2::after,
.etl-active .eu-tl__cta h2::after {
    content: "";
    display: block;
    width: 52px;
    height: 3px;
    margin-top: 0.68rem;
    border-radius: 999px;
    background: var(--etl-accent);
}

/* Il verde diventa segno di riconoscimento, non colore di tutti i titoli */
.etl-active .eu-tl__brand,
.etl-active .eu-tl__edition,
.etl-active .eu-tl__kicker,
.etl-active .eu-tl__eyebrow,
.etl-active .eu-tl__section-label {
    color: var(--etl-secondary) !important;
}

.etl-active .eu-tl__section-label {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.etl-active .eu-tl__section-label::before {
    content: "";
    width: 18px;
    height: 2px;
    border-radius: 99px;
    background: var(--etl-accent);
}

/* TESTO EDITORIALE: usa realmente la larghezza della sezione */
.etl-active .eu-tl__section > p,
.etl-active .eu-tl__section > .eu-tl__lead,
.etl-active .eu-tl__section--surface > p,
.etl-active .eu-tl__section--surface > .eu-tl__lead,
.etl-active .eu-tl__cta > div > p,
.etl-active .eu-tl__hero .eu-tl__subtitle {
    width: 100% !important;
    max-width: none !important;
}

.etl-active .eu-tl__section > p:not(.eu-tl__section-label),
.etl-active .eu-tl__section > .eu-tl__lead,
.etl-active .eu-tl__section--surface > p:not(.eu-tl__section-label),
.etl-active .eu-tl__section--surface > .eu-tl__lead,
.etl-active .eu-tl__hero .eu-tl__subtitle,
.etl-active .eu-tl__quote {
    text-align: justify !important;
    text-justify: inter-word;
}

/* Evita giustificazioni antiestetiche nei componenti stretti */
.etl-active .eu-tl__card p,
.etl-active .eu-tl__stat p,
.etl-active .eu-tl__steps p,
.etl-active .eu-tl__timeline-step p,
.etl-active .eu-tl__faq p,
.etl-active .eu-tl__notice,
.etl-active .eu-tl__notice p,
.etl-active .eu-tl__meta,
.etl-active .eu-tl__table td,
.etl-active .eu-tl__related a {
    text-align: left !important;
}

/* SEZIONI: meno "box enormi", più struttura editoriale */
.etl-active .eu-tl__content {
    gap: 2.55rem;
}

.etl-active .eu-tl__section {
    padding: 1.15rem 0;
}

.etl-active .eu-tl__section--surface {
    position: relative;
    padding: clamp(1.35rem, 3.1vw, 2.35rem);
    border: 1px solid var(--etl-border);
    border-radius: 1.25rem;
    background:
        linear-gradient(180deg, rgba(248, 251, 253, 0.98), rgba(244, 248, 251, 0.98));
    box-shadow: none;
}

.etl-active .eu-tl__section--surface::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1.4rem;
    bottom: 1.4rem;
    width: 3px;
    border-radius: 99px;
    background: linear-gradient(180deg, var(--etl-secondary), var(--etl-accent));
}

/* CARD: stesso linguaggio in tutto il sito */
.etl-active .eu-tl__card {
    position: relative;
    padding: 1.2rem 1.2rem 1.15rem;
    border: 1px solid var(--etl-border);
    border-radius: 0.9rem;
    background: #fff !important;
    box-shadow: var(--etl-shadow);
    overflow: hidden;
}

.etl-active .eu-tl__card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: linear-gradient(90deg, var(--etl-secondary), var(--etl-accent));
    opacity: 0.85;
}

.etl-active .eu-tl__card h3 {
    margin-bottom: 0.45rem !important;
    font-size: 1.13rem;
    line-height: 1.28;
}

.etl-active .eu-tl__card p {
    line-height: 1.62;
    font-size: 0.97rem;
}

.etl-active .eu-tl__card-tag {
    margin-bottom: 0.7rem;
    padding: 0.28rem 0.55rem;
    background: #edf5ff;
    color: var(--etl-secondary);
    border-radius: 999px;
    font-size: 0.7rem;
}

/* PROCEDURA: correzione definitiva del problema mostrato nello screenshot.
   Elimina il quadrato vuoto generato dal ::before e usa soltanto il numero HTML. */
.etl-active .eu-tl__steps {
    display: block !important;
    margin: 1.45rem 0 0 !important;
    padding: 0 !important;
    border: 1px solid var(--etl-border);
    border-radius: 1rem;
    overflow: hidden;
    background: #fff;
    box-shadow: var(--etl-shadow);
    list-style: none !important;
}

.etl-active .eu-tl__steps li {
    display: grid !important;
    grid-template-columns: 58px minmax(0, 1fr) !important;
    gap: 1rem !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 1rem 1.15rem !important;
    align-items: center !important;
    border: 0 !important;
    border-bottom: 1px solid #e7eef4 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
}

.etl-active .eu-tl__steps li:last-child {
    border-bottom: 0 !important;
}

.etl-active .eu-tl__steps li::before {
    content: none !important;
    display: none !important;
}

.etl-active .eu-tl__steps li > span {
    display: grid !important;
    width: 46px !important;
    height: 46px !important;
    place-items: center !important;
    margin: 0 !important;
    border: 1px solid #d8ebc4;
    border-radius: 50% !important;
    background: var(--etl-accent-soft) !important;
    color: #4f8f17 !important;
    font-size: 0.75rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

.etl-active .eu-tl__steps li > div {
    min-width: 0 !important;
    width: 100% !important;
}

.etl-active .eu-tl__steps li h3 {
    display: block !important;
    width: 100% !important;
    margin: 0 0 0.18rem !important;
    color: var(--etl-primary) !important;
    font-size: 1.05rem !important;
    line-height: 1.3 !important;
}

.etl-active .eu-tl__steps li p {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    color: var(--etl-body) !important;
    font-size: 0.95rem !important;
    line-height: 1.55 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}

/* Timeline equivalente, qualora venga usata nel modello */
.etl-active .eu-tl__timeline {
    gap: 0 !important;
    border: 1px solid var(--etl-border);
    border-radius: 1rem;
    overflow: hidden;
    background: #fff;
    box-shadow: var(--etl-shadow);
}

.etl-active .eu-tl__timeline-step {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 1rem 1.15rem 1rem 5rem !important;
    border: 0 !important;
    border-bottom: 1px solid #e7eef4 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
}

.etl-active .eu-tl__timeline-step:last-child {
    border-bottom: 0 !important;
}

.etl-active .eu-tl__timeline-step::before {
    left: 1.15rem;
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--etl-accent-soft);
    color: #4f8f17;
}

/* NUMBER BAND: elegante, istituzionale */
.etl-active .eu-tl__number-band {
    gap: 0.7rem;
}

.etl-active .eu-tl__number-item {
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 0.85rem;
    background: linear-gradient(145deg, #10243b, #173550);
    box-shadow: 0 12px 28px rgba(16, 36, 59, 0.11);
}

.etl-active .eu-tl__number-value {
    color: #b4dc86 !important;
}

/* Tabelle meno pesanti */
.etl-active .eu-tl__table-wrap {
    border-radius: 0.85rem;
    border: 1px solid var(--etl-border);
    box-shadow: var(--etl-shadow);
}

.etl-active .eu-tl__table th {
    background: #132b44 !important;
    color: #fff !important;
}

.etl-active .eu-tl__table tbody tr:nth-child(even) td {
    background: #f8fafc;
}

/* Notice: più sottile ed editoriale */
.etl-active .eu-tl__notice,
.etl-active .eu-tl__hero-note {
    border: 1px solid #dbe6ef;
    border-left: 3px solid var(--etl-secondary);
    border-radius: 0.85rem;
    background: #f8fbfd;
    box-shadow: none;
}

/* FAQ */
.etl-active .eu-tl__faq details {
    border-radius: 0.8rem;
    border: 1px solid var(--etl-border);
    box-shadow: none;
}

.etl-active .eu-tl__faq summary {
    position: relative;
    padding-right: 3rem;
}

.etl-active .eu-tl__faq summary::after {
    content: "+";
    position: absolute;
    right: 1.1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--etl-secondary);
    font-size: 1.25rem;
    font-weight: 700;
}

.etl-active .eu-tl__faq details[open] summary::after {
    content: "–";
}

/* Link correlati */
.etl-active .eu-tl__related a {
    border-radius: 0.8rem;
    border: 1px solid var(--etl-border);
    background: #fff;
    box-shadow: none;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.etl-active .eu-tl__related a:hover {
    transform: translateY(-2px);
    border-color: #b9cee0;
    box-shadow: var(--etl-shadow);
}

/* CTA finale più istituzionale */
.etl-active .eu-tl__cta {
    padding: clamp(1.35rem, 3vw, 2rem);
    border: 1px solid #d7e3ed;
    border-radius: 1rem;
    background: linear-gradient(135deg, #f5f9fc 0%, #ffffff 70%);
    box-shadow: var(--etl-shadow);
}

/* Desktop ampio: testo e componenti sfruttano davvero la larghezza disponibile */
@media (min-width: 901px) {
    .etl-active .eu-tl__section > p:not(.eu-tl__section-label),
    .etl-active .eu-tl__section > .eu-tl__lead,
    .etl-active .eu-tl__section--surface > p:not(.eu-tl__section-label),
    .etl-active .eu-tl__section--surface > .eu-tl__lead {
        max-width: 100% !important;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .etl-active .eu-tl__section > p:not(.eu-tl__section-label),
    .etl-active .eu-tl__section > .eu-tl__lead,
    .etl-active .eu-tl__hero .eu-tl__subtitle {
        text-align: left !important;
    }

    .etl-active .eu-tl__section--surface {
        padding: 1.15rem;
    }

    .etl-active .eu-tl__section--surface::before {
        top: 1rem;
        bottom: 1rem;
    }

    .etl-active .eu-tl__steps li {
        grid-template-columns: 46px minmax(0, 1fr) !important;
        gap: 0.8rem !important;
        padding: 0.9rem !important;
    }

    .etl-active .eu-tl__steps li > span {
        width: 40px !important;
        height: 40px !important;
    }
}


/* =========================================================
   EUROPOL TOP LEGAL 1.0.3 — EDITORIAL PRO
   Hardening contro CSS ThemeREX / InsuGroup / WPBakery.
   ========================================================= */

/* RESET STRUTTURALE ISOLATO: impedisce colonne, float e larghezze
   ereditate dal tema sui componenti editoriali del framework. */
body.etl-active .eu-tl,
body.etl-active .eu-tl__content,
body.etl-active .eu-tl__section,
body.etl-active .eu-tl__section > *,
body.etl-active .eu-tl__process,
body.etl-active .eu-tl__process-step,
body.etl-active .eu-tl__process-copy,
body.etl-active .eu-tl__limit-grid,
body.etl-active .eu-tl__limit-card,
body.etl-active .eu-tl__related,
body.etl-active .eu-tl__cards,
body.etl-active .eu-tl__card {
    float: none !important;
    clear: none !important;
    max-width: none !important;
    min-width: 0 !important;
}

body.etl-active .eu-tl__content,
body.etl-active .eu-tl__section {
    display: block !important;
    width: 100% !important;
}

body.etl-active .eu-tl__section > p:not(.eu-tl__section-label),
body.etl-active .eu-tl__section > .eu-tl__lead {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    float: none !important;
    clear: both !important;
    text-align: justify !important;
    text-justify: inter-word;
}

/* Titoli editoriali: sobri, mai verde pieno. */
body.etl-active .eu-tl h1,
body.etl-active .eu-tl h2,
body.etl-active .eu-tl h3 {
    color: #10243b !important;
}

body.etl-active .eu-tl__section > h2 {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* SEZIONI "SURFACE": non devono comportarsi da grid ereditate. */
body.etl-active .eu-tl__section--surface {
    display: block !important;
    width: 100% !important;
}

/* =========================================================
   PROCEDURA PRO — niente OL/LI, niente pseudo-elementi del tema
   ========================================================= */

body.etl-active .eu-tl__process {
    display: block !important;
    width: 100% !important;
    margin: 1.5rem 0 0 !important;
    padding: 0 !important;
    border: 1px solid #dbe6ef !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    background: #ffffff !important;
    box-shadow: 0 12px 34px rgba(16, 36, 59, 0.05) !important;
}

body.etl-active .eu-tl__process-step {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 54px minmax(190px, 0.34fr) minmax(0, 1fr) !important;
    column-gap: 1.15rem !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 1.05rem 1.25rem !important;
    border: 0 !important;
    border-bottom: 1px solid #e7eef4 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    box-shadow: none !important;
}

body.etl-active .eu-tl__process-step:last-child {
    border-bottom: 0 !important;
}

body.etl-active .eu-tl__process-number {
    display: grid !important;
    width: 42px !important;
    height: 42px !important;
    place-items: center !important;
    margin: 0 !important;
    border: 1px solid #d4e9be !important;
    border-radius: 50% !important;
    background: #f0f8e8 !important;
    color: #538e20 !important;
    font-size: 0.72rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

body.etl-active .eu-tl__process-step h3 {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #10243b !important;
    font-size: 1.03rem !important;
    line-height: 1.3 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    white-space: normal !important;
}

body.etl-active .eu-tl__process-copy {
    display: block !important;
    width: 100% !important;
}

body.etl-active .eu-tl__process-copy p {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #52677a !important;
    font-size: 0.96rem !important;
    line-height: 1.58 !important;
    text-align: left !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
}

/* Disattiva completamente il vecchio componente steps quando presente. */
body.etl-active .eu-tl__steps {
    display: none !important;
}

/* =========================================================
   LIMITI REPORT — blocco informativo a due colonne
   ========================================================= */

body.etl-active .eu-tl__limit-panel {
    display: block !important;
    width: 100% !important;
    padding: clamp(1.4rem, 3vw, 2.2rem) !important;
    border: 1px solid #dbe6ef !important;
    border-radius: 14px !important;
    background: linear-gradient(135deg, #f7fafc 0%, #ffffff 100%) !important;
}

body.etl-active .eu-tl__limit-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
    width: 100% !important;
    margin-top: 1.25rem !important;
}

body.etl-active .eu-tl__limit-card {
    display: block !important;
    width: 100% !important;
    min-height: 100% !important;
    padding: 1.15rem 1.2rem !important;
    border: 1px solid #dfe8f0 !important;
    border-radius: 12px !important;
    background: #ffffff !important;
}

body.etl-active .eu-tl__limit-card--positive {
    border-top: 3px solid #1d6fcb !important;
}

body.etl-active .eu-tl__limit-card--caution {
    border-top: 3px solid #86c943 !important;
}

body.etl-active .eu-tl__limit-card h3 {
    margin: 0 0 0.55rem !important;
    font-size: 1.1rem !important;
}

body.etl-active .eu-tl__limit-card p,
body.etl-active .eu-tl__limit-card li {
    text-align: left !important;
    font-size: 0.96rem !important;
    line-height: 1.62 !important;
}

body.etl-active .eu-tl__limit-card ul {
    margin: 0 !important;
    padding-left: 1.1rem !important;
}

/* =========================================================
   SERVIZI / RELATED — griglia ordinata, non link sparsi
   ========================================================= */

body.etl-active .eu-tl__related {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0.85rem !important;
    width: 100% !important;
}

body.etl-active .eu-tl__related a {
    display: flex !important;
    min-height: 64px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0.95rem 1rem !important;
    border: 1px solid #dce6ef !important;
    border-radius: 10px !important;
    background: #ffffff !important;
    color: #17324d !important;
    font-size: 0.94rem !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    text-align: left !important;
    text-decoration: none !important;
}

body.etl-active .eu-tl__related a::before {
    content: "";
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    margin-right: 0.7rem;
    border-radius: 50%;
    background: #86c943;
}

/* =========================================================
   CARD SERVIZI — testo stabile e proporzioni coerenti
   ========================================================= */

body.etl-active .eu-tl__cards {
    width: 100% !important;
}

body.etl-active .eu-tl__card {
    width: 100% !important;
}

body.etl-active .eu-tl__card p,
body.etl-active .eu-tl__card a {
    word-break: normal !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
}

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

@media (max-width: 900px) {
    body.etl-active .eu-tl__process-step {
        grid-template-columns: 46px minmax(0, 1fr) !important;
        row-gap: 0.28rem !important;
        padding: 0.95rem !important;
    }

    body.etl-active .eu-tl__process-step h3 {
        grid-column: 2 !important;
    }

    body.etl-active .eu-tl__process-copy {
        grid-column: 2 !important;
    }

    body.etl-active .eu-tl__limit-grid,
    body.etl-active .eu-tl__related {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 768px) {
    body.etl-active .eu-tl__section > p:not(.eu-tl__section-label),
    body.etl-active .eu-tl__section > .eu-tl__lead {
        text-align: left !important;
    }
}


/* =========================================================
   EUROPOL TOP LEGAL 1.0.4 — HARD FIX LAYOUT
   Procedura a FLEX, isolamento sezioni, paragrafi full width.
   ========================================================= */

/* Ogni sezione diventa un nuovo contesto di formattazione:
   nessun float o layout precedente può deformare la sezione successiva. */
body.etl-active .eu-tl__section,
body.etl-active .eu-tl__section--surface,
body.etl-active .eu-tl__limit-panel {
    display: flow-root !important;
    width: 100% !important;
    max-width: none !important;
    clear: both !important;
    float: none !important;
}

/* Paragrafi editoriali: occupano tutta la larghezza reale della sezione. */
body.etl-active .eu-tl__section > p:not(.eu-tl__section-label),
body.etl-active .eu-tl__section > .eu-tl__lead,
body.etl-active .eu-tl__section--surface > p:not(.eu-tl__section-label),
body.etl-active .eu-tl__section--surface > .eu-tl__lead,
body.etl-active .eu-tl__limit-panel > p:not(.eu-tl__section-label) {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    float: none !important;
    clear: both !important;
    text-align: justify !important;
    text-justify: inter-word !important;
}

/* PROCEDURA DEFINITIVA:
   numero + unico corpo contenente titolo e testo.
   Niente CSS Grid, niente colonne separate per il paragrafo. */
body.etl-active .eu-tl__process {
    display: block !important;
    width: 100% !important;
    margin: 1.45rem 0 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 1px solid #dbe6ef !important;
    border-radius: 14px !important;
    background: #fff !important;
    box-shadow: 0 12px 34px rgba(16,36,59,.05) !important;
}

body.etl-active .eu-tl__process-step {
    position: relative !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 1rem !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 1rem 1.15rem !important;
    border: 0 !important;
    border-bottom: 1px solid #e7eef4 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    float: none !important;
    clear: both !important;
}

body.etl-active .eu-tl__process-step:last-child {
    border-bottom: 0 !important;
}

body.etl-active .eu-tl__process-step::before,
body.etl-active .eu-tl__process-step::after {
    content: none !important;
    display: none !important;
}

body.etl-active .eu-tl__process-number {
    flex: 0 0 42px !important;
    display: grid !important;
    width: 42px !important;
    height: 42px !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #d4e9be !important;
    border-radius: 50% !important;
    background: #f0f8e8 !important;
    color: #538e20 !important;
    font-size: .72rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

body.etl-active .eu-tl__process-body {
    flex: 1 1 auto !important;
    display: block !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

body.etl-active .eu-tl__process-body h3 {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 .28rem !important;
    padding: 0 !important;
    color: #10243b !important;
    font-size: 1.05rem !important;
    line-height: 1.28 !important;
    text-align: left !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    white-space: normal !important;
}

body.etl-active .eu-tl__process-body p {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #52677a !important;
    font-size: .96rem !important;
    line-height: 1.58 !important;
    text-align: left !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
}

/* Disattiva vecchi componenti se accidentalmente rimasti */
body.etl-active .eu-tl__steps,
body.etl-active .eu-tl__process-copy {
    display: none !important;
}

/* Riduce larghezze "editoriali" ereditate dal tema in card e sezioni */
body.etl-active .eu-tl__card,
body.etl-active .eu-tl__card > *,
body.etl-active .eu-tl__limit-card,
body.etl-active .eu-tl__limit-card > * {
    max-width: none !important;
}

/* Desktop */
@media (min-width: 769px) {
    body.etl-active .eu-tl__section > p:not(.eu-tl__section-label),
    body.etl-active .eu-tl__section > .eu-tl__lead,
    body.etl-active .eu-tl__section--surface > p:not(.eu-tl__section-label),
    body.etl-active .eu-tl__section--surface > .eu-tl__lead {
        width: 100% !important;
        max-width: none !important;
    }
}

/* Mobile: niente giustificato, per leggibilità */
@media (max-width: 768px) {
    body.etl-active .eu-tl__process-step {
        gap: .8rem !important;
        padding: .9rem !important;
    }

    body.etl-active .eu-tl__process-number {
        flex-basis: 38px !important;
        width: 38px !important;
        height: 38px !important;
    }

    body.etl-active .eu-tl__section > p:not(.eu-tl__section-label),
    body.etl-active .eu-tl__section > .eu-tl__lead,
    body.etl-active .eu-tl__section--surface > p:not(.eu-tl__section-label),
    body.etl-active .eu-tl__section--surface > .eu-tl__lead {
        text-align: left !important;
    }
}
