/* ==================================================
   SINGLE POST — prefix sp-
   ================================================== */
.sp-wrap { font-family:'Sora',sans-serif; }

/* HERO */
.sp-hero {
    position: relative;
    width: 100%;
    min-height: 75vh;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    background: var(--iwm-green);
}
.sp-hero-bg {
    position: absolute;
    inset: 0;
}
.sp-hero-bg img {
    width: 100%; height: 115%;
    object-fit: cover; object-position: center;
    display: block;
}
.sp-hero-overlay {
    position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(to bottom,
        rgba(13,31,38,.3) 0%,
        rgba(13,31,38,.6) 45%,
        rgba(13,31,38,.92) 100%);
}
.sp-hero::before {
    content: '';
    position: absolute; inset: 0;
    pointer-events: none; z-index: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='400' height='400' viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='23' cy='47' r='1.5' fill='rgba(255,255,255,0.18)'/%3E%3Ccircle cx='87' cy='12' r='1' fill='rgba(255,255,255,0.12)'/%3E%3Ccircle cx='145' cy='78' r='1.5' fill='rgba(255,255,255,0.15)'/%3E%3Ccircle cx='210' cy='33' r='1' fill='rgba(255,255,255,0.1)'/%3E%3Ccircle cx='278' cy='61' r='2' fill='rgba(255,255,255,0.16)'/%3E%3Ccircle cx='340' cy='22' r='1' fill='rgba(255,255,255,0.13)'/%3E%3Ccircle cx='380' cy='90' r='1.5' fill='rgba(255,255,255,0.18)'/%3E%3Ccircle cx='55' cy='130' r='1' fill='rgba(255,255,255,0.14)'/%3E%3Ccircle cx='118' cy='155' r='2' fill='rgba(255,255,255,0.1)'/%3E%3Ccircle cx='190' cy='112' r='1.5' fill='rgba(255,255,255,0.17)'/%3E%3Ccircle cx='250' cy='140' r='1' fill='rgba(255,255,255,0.12)'/%3E%3Ccircle cx='315' cy='125' r='2' fill='rgba(255,255,255,0.15)'/%3E%3Ccircle cx='370' cy='148' r='1' fill='rgba(255,255,255,0.1)'/%3E%3Ccircle cx='42' cy='95' r='1' fill='rgba(255,255,255,0.13)'/%3E%3Ccircle cx='130' cy='30' r='1.5' fill='rgba(255,255,255,0.16)'/%3E%3Ccircle cx='300' cy='42' r='1' fill='rgba(255,255,255,0.11)'/%3E%3Ccircle cx='10' cy='200' r='1.5' fill='rgba(255,255,255,0.16)'/%3E%3Ccircle cx='75' cy='220' r='1' fill='rgba(255,255,255,0.13)'/%3E%3Ccircle cx='160' cy='195' r='2' fill='rgba(255,255,255,0.18)'/%3E%3Ccircle cx='230' cy='230' r='1.5' fill='rgba(255,255,255,0.14)'/%3E%3Ccircle cx='290' cy='205' r='1' fill='rgba(255,255,255,0.17)'/%3E%3Ccircle cx='355' cy='240' r='1.5' fill='rgba(255,255,255,0.12)'/%3E%3Ccircle cx='110' cy='178' r='1' fill='rgba(255,255,255,0.14)'/%3E%3Ccircle cx='200' cy='165' r='1.5' fill='rgba(255,255,255,0.11)'/%3E%3Ccircle cx='330' cy='185' r='1' fill='rgba(255,255,255,0.15)'/%3E%3Ccircle cx='40' cy='285' r='1' fill='rgba(255,255,255,0.15)'/%3E%3Ccircle cx='100' cy='310' r='2' fill='rgba(255,255,255,0.1)'/%3E%3Ccircle cx='175' cy='270' r='1.5' fill='rgba(255,255,255,0.16)'/%3E%3Ccircle cx='240' cy='300' r='1' fill='rgba(255,255,255,0.13)'/%3E%3Ccircle cx='305' cy='275' r='2' fill='rgba(255,255,255,0.18)'/%3E%3Ccircle cx='365' cy='320' r='1' fill='rgba(255,255,255,0.14)'/%3E%3Ccircle cx='60' cy='255' r='1.5' fill='rgba(255,255,255,0.12)'/%3E%3Ccircle cx='150' cy='330' r='1' fill='rgba(255,255,255,0.16)'/%3E%3Ccircle cx='270' cy='250' r='1' fill='rgba(255,255,255,0.13)'/%3E%3Ccircle cx='390' cy='290' r='1.5' fill='rgba(255,255,255,0.11)'/%3E%3Ccircle cx='20' cy='360' r='1.5' fill='rgba(255,255,255,0.17)'/%3E%3Ccircle cx='90' cy='385' r='1' fill='rgba(255,255,255,0.12)'/%3E%3Ccircle cx='155' cy='350' r='2' fill='rgba(255,255,255,0.15)'/%3E%3Ccircle cx='220' cy='375' r='1.5' fill='rgba(255,255,255,0.1)'/%3E%3Ccircle cx='285' cy='355' r='1' fill='rgba(255,255,255,0.16)'/%3E%3Ccircle cx='345' cy='390' r='2' fill='rgba(255,255,255,0.18)'/%3E%3Ccircle cx='395' cy='365' r='1' fill='rgba(255,255,255,0.13)'/%3E%3Ccircle cx='75' cy='370' r='1' fill='rgba(255,255,255,0.14)'/%3E%3Ccircle cx='190' cy='395' r='1.5' fill='rgba(255,255,255,0.11)'/%3E%3Ccircle cx='320' cy='370' r='1' fill='rgba(255,255,255,0.15)'/%3E%3C/svg%3E");
    background-size: 400px 400px;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);
}
.sp-hero-content {
    position: relative; z-index: 2;
    padding: 0 max(6vw, calc((100% - 1400px)/2)) 56px;
}
.sp-hero-cats { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.sp-hero-cat {
    font-size: 10px; font-weight: 700; text-transform: uppercase;
    letter-spacing: 1.5px; color: #fff;
    background: var(--cta); border-radius: 10px;
    padding: 5px 14px; text-decoration: none;
}
.sp-hero-title {
    font-family: 'Antonio', sans-serif;
    font-size: clamp(38px, 6vw, 80px);
    font-weight: 700; line-height: 1.18;
    color: var(--white-off);
    margin: 0 0 22px;
    white-space: normal;
}
.sp-hero-meta {
    display: flex; align-items: center; gap: 16px;
    font-size: 12px; color: rgba(255,249,238,.5);
}
.sp-hero-meta span { display:flex; align-items:center; gap:6px; }
.sp-hero-meta svg { width:13px; height:13px; opacity:.7; }
.sp-hero-dot { width:3px; height:3px; border-radius:50%; background:rgba(255,249,238,.3); }
.sp-hero-author {
    display: flex; align-items: center; gap: 10px;
}
.sp-hero-author-avatar {
    width: 36px; height: 36px; border-radius: 50%;
    overflow: hidden; flex-shrink: 0;
    border: 2px solid rgba(255,249,238,.25);
}
.sp-hero-author-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.sp-hero-author-name {
    font-size: 13px; font-weight: 600;
    color: rgba(255,249,238,.75);
    text-decoration: none;
    transition: color .2s;
}
.sp-hero-author-name:hover { color: #fff9ee; }

/* ── Hero risorsa: titolo sx + copertina 3D dx ─────────────────── */
.sp-hero.sp-hero--risorsa {
    min-height: clamp(680px, 92vh, 960px);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #005f73;
    background-image: none;
    padding: clamp(100px, 11vh, 136px) max(6vw, calc((100% - 1400px) / 2));
    border-bottom: none;
    position: relative;
}

.sp-hero--risorsa::before {
    display: block;
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='400' height='400' viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='23' cy='47' r='1.5' fill='rgba(255,255,255,0.18)'/%3E%3Ccircle cx='87' cy='12' r='1' fill='rgba(255,255,255,0.12)'/%3E%3Ccircle cx='145' cy='78' r='1.5' fill='rgba(255,255,255,0.15)'/%3E%3Ccircle cx='210' cy='33' r='1' fill='rgba(255,255,255,0.1)'/%3E%3Ccircle cx='278' cy='61' r='2' fill='rgba(255,255,255,0.16)'/%3E%3Ccircle cx='340' cy='22' r='1' fill='rgba(255,255,255,0.13)'/%3E%3Ccircle cx='380' cy='90' r='1.5' fill='rgba(255,255,255,0.18)'/%3E%3Ccircle cx='160' cy='195' r='2' fill='rgba(255,255,255,0.18)'/%3E%3Ccircle cx='305' cy='275' r='2' fill='rgba(255,255,255,0.18)'/%3E%3C/svg%3E");
    background-size: 400px 400px;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 18%, black 82%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, black 18%, black 82%, transparent 100%);
}

.sp-hero--risorsa::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 0;
    width: min(420px, 55vw);
    height: min(420px, 55vw);
    pointer-events: none;
    background: radial-gradient(ellipse at bottom left, rgba(236, 110, 94, .12), transparent 68%);
}

.sp-hero--risorsa .sp-hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: clamp(32px, 5vw, 72px);
    align-items: center;
    max-width: 1400px;
    width: 100%;
    margin: 0 auto;
    min-height: min(640px, 72vh);
}

.sp-hero--risorsa .sp-hero-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-self: center;
    max-width: 640px;
}

.sp-hero--risorsa .sp-hero-eyebrow {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}

.sp-hero--risorsa .sp-hero-eyebrow::before {
    content: '';
    display: block;
    width: 36px;
    height: 1px;
    background: #ec6e5e;
    flex-shrink: 0;
}

.sp-hero--risorsa .sp-hero-eyebrow span {
    font-family: 'Sora', sans-serif;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: #ec6e5e;
}

.sp-hero--risorsa .sp-hero-headline {
    font-family: 'Antonio', 'Arial Narrow', sans-serif;
    font-size: clamp(44px, 4.2vw, 80px);
    line-height: 1.1;
    color: #fff9ee;
    letter-spacing: .01em;
    font-weight: 400;
    text-transform: none;
    margin: 0 0 22px;
}

.sp-hero--risorsa .sp-hero-headline em {
    font-style: normal;
    color: #ec6e5e;
}

.sp-hero--risorsa .sp-hero-lead {
    margin: 0 0 28px;
    font-size: clamp(16px, 1.35vw, 18px);
    line-height: 1.75;
    color: rgba(255, 249, 238, .68);
    max-width: 520px;
}

.sp-hero--risorsa .sp-hero-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px;
}

.sp-hero--risorsa .sp-hero-note {
    font-size: 13px;
    line-height: 1.5;
    color: rgba(255, 249, 238, .45);
}

.sp-hero--risorsa .sp-hero-visual {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: clamp(400px, 48vw, 580px);
    perspective: 1000px;
}

.sp-hero--risorsa .sp-hero-glow {
    position: absolute;
    inset: 8% 0;
    background: radial-gradient(50% 48% at 50% 50%, rgba(236, 110, 94, .18), transparent 72%);
    filter: blur(8px);
    pointer-events: none;
    animation: sp-ris-breathe 6s ease-in-out infinite;
}

@keyframes sp-ris-breathe {
    0%, 100% { opacity: .75; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.05); }
}

.sp-hero--risorsa .sp-book-stage {
    position: relative;
    transform: rotate(2.5deg);
    transform-style: preserve-3d;
    width: fit-content;
    margin: 0 auto;
}

.sp-hero--risorsa .sp-book-tilt {
    position: relative;
    will-change: transform;
    transition: transform .18s ease-out;
    transform-style: preserve-3d;
}

.sp-hero--risorsa .sp-book {
    width: min(420px, 92%);
    height: auto;
    display: block;
    margin: 0 auto;
    border-radius: 8px 14px 14px 8px;
    box-shadow:
        -18px 0 0 -6px rgba(0, 31, 38, .22),
        -28px 0 0 -10px rgba(0, 31, 38, .1),
        0 34px 80px rgba(15, 31, 36, .26),
        0 10px 28px rgba(15, 31, 36, .14);
}

.sp-hero--risorsa .sp-float-badge {
    position: absolute;
    background: #fff9ee;
    border: 1px solid rgba(15, 31, 36, .1);
    border-radius: 10px;
    padding: 12px 18px;
    box-shadow: 0 14px 34px rgba(15, 31, 36, .12);
    display: flex;
    flex-direction: column;
    gap: 2px;
    animation: sp-ris-floaty 5s ease-in-out infinite;
    z-index: 2;
    pointer-events: none;
}

.sp-hero--risorsa .sp-book-stage .sp-float-badge,
.sp-hero--risorsa .sp-book-tilt .sp-float-badge {
    top: 5%;
    right: 10%;
    left: auto;
}

.sp-hero--risorsa .sp-float-badge b {
    font-family: 'Antonio', sans-serif;
    font-size: 24px;
    line-height: 1;
    color: #ec6e5e;
}

.sp-hero--risorsa .sp-float-badge span {
    font-size: 11px;
    font-weight: 600;
    color: rgba(15, 31, 36, .55);
    letter-spacing: .3px;
}

.sp-hero--risorsa .sp-fb-1 { top: 5%; right: 10%; left: auto; }

@keyframes sp-ris-floaty {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

.sp-hero--risorsa .sp-hin {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .75s cubic-bezier(.22, 1, .36, 1), transform .75s cubic-bezier(.22, 1, .36, 1);
    transition-delay: var(--sp-hd, 0ms);
}

.sp-hero--risorsa .sp-hin--right {
    transform: translateX(36px) rotate(4deg);
}

.sp-hero--risorsa.is-ready .sp-hin {
    opacity: 1;
    transform: none;
}

.sp-hero--risorsa.is-ready .sp-hin--right {
    transform: rotate(2.5deg);
}

@media (max-width: 960px) {
    .sp-hero.sp-hero--risorsa {
        min-height: auto;
        padding-top: 96px;
        padding-bottom: 56px;
    }
    .sp-hero--risorsa .sp-hero-inner {
        grid-template-columns: 1fr;
        gap: 40px;
        min-height: auto;
    }
    .sp-hero--risorsa .sp-hero-copy {
        max-width: none;
        align-self: auto;
        text-align: center;
        align-items: center;
    }
    .sp-hero--risorsa .sp-hero-eyebrow { justify-content: center; }
    .sp-hero--risorsa .sp-hero-lead { margin-left: auto; margin-right: auto; }
    .sp-hero--risorsa .sp-hero-cta { justify-content: center; }
    .sp-hero--risorsa .sp-hero-visual {
        order: -1;
        min-height: auto;
        padding-top: 8px;
        align-self: center;
    }
    .sp-hero--risorsa .sp-book { width: min(280px, 72%); }
    .sp-hero--risorsa .sp-book-stage .sp-float-badge,
    .sp-hero--risorsa .sp-fb-1 { top: 4%; right: 6%; left: auto; }
    .sp-hero--risorsa.is-ready .sp-hin--right { transform: none; }
    .sp-hero--risorsa .sp-book-stage { transform: none; }
}

@media (max-width: 640px) {
    .sp-hero.sp-hero--risorsa {
        padding-top: 80px;
        padding-bottom: 48px;
    }
    .sp-hero--risorsa .sp-hero-headline { font-size: clamp(34px, 9vw, 52px); }
    .sp-hero--risorsa .sp-float-badge { padding: 10px 14px; }
    .sp-hero--risorsa .sp-float-badge b { font-size: 20px; }
}

@media (prefers-reduced-motion: reduce) {
    .sp-hero--risorsa .sp-hin,
    .sp-hero--risorsa .sp-hin--right {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .sp-hero--risorsa .sp-hero-glow,
    .sp-hero--risorsa .sp-float-badge { animation: none; }
    .sp-hero--risorsa .sp-book-tilt { transition: none; }
}

/* BODY */
.sp-body {
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg width='400' height='400' viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='23' cy='47' r='1.5' fill='rgba(0,95,115,0.18)'/%3E%3Ccircle cx='87' cy='12' r='1' fill='rgba(0,95,115,0.12)'/%3E%3Ccircle cx='145' cy='78' r='1.5' fill='rgba(0,95,115,0.15)'/%3E%3Ccircle cx='210' cy='33' r='1' fill='rgba(0,95,115,0.1)'/%3E%3Ccircle cx='278' cy='61' r='2' fill='rgba(0,95,115,0.16)'/%3E%3Ccircle cx='340' cy='22' r='1' fill='rgba(0,95,115,0.13)'/%3E%3Ccircle cx='380' cy='90' r='1.5' fill='rgba(0,95,115,0.18)'/%3E%3Ccircle cx='55' cy='130' r='1' fill='rgba(0,95,115,0.14)'/%3E%3Ccircle cx='118' cy='155' r='2' fill='rgba(0,95,115,0.1)'/%3E%3Ccircle cx='190' cy='112' r='1.5' fill='rgba(0,95,115,0.17)'/%3E%3Ccircle cx='250' cy='140' r='1' fill='rgba(0,95,115,0.12)'/%3E%3Ccircle cx='315' cy='125' r='2' fill='rgba(0,95,115,0.15)'/%3E%3Ccircle cx='370' cy='148' r='1' fill='rgba(0,95,115,0.1)'/%3E%3Ccircle cx='42' cy='95' r='1' fill='rgba(0,95,115,0.13)'/%3E%3Ccircle cx='130' cy='30' r='1.5' fill='rgba(0,95,115,0.16)'/%3E%3Ccircle cx='300' cy='42' r='1' fill='rgba(0,95,115,0.11)'/%3E%3Ccircle cx='10' cy='200' r='1.5' fill='rgba(0,95,115,0.16)'/%3E%3Ccircle cx='75' cy='220' r='1' fill='rgba(0,95,115,0.13)'/%3E%3Ccircle cx='160' cy='195' r='2' fill='rgba(0,95,115,0.18)'/%3E%3Ccircle cx='230' cy='230' r='1.5' fill='rgba(0,95,115,0.14)'/%3E%3Ccircle cx='290' cy='205' r='1' fill='rgba(0,95,115,0.17)'/%3E%3Ccircle cx='355' cy='240' r='1.5' fill='rgba(0,95,115,0.12)'/%3E%3Ccircle cx='110' cy='178' r='1' fill='rgba(0,95,115,0.14)'/%3E%3Ccircle cx='200' cy='165' r='1.5' fill='rgba(0,95,115,0.11)'/%3E%3Ccircle cx='330' cy='185' r='1' fill='rgba(0,95,115,0.15)'/%3E%3Ccircle cx='40' cy='285' r='1' fill='rgba(0,95,115,0.15)'/%3E%3Ccircle cx='100' cy='310' r='2' fill='rgba(0,95,115,0.1)'/%3E%3Ccircle cx='175' cy='270' r='1.5' fill='rgba(0,95,115,0.16)'/%3E%3Ccircle cx='240' cy='300' r='1' fill='rgba(0,95,115,0.13)'/%3E%3Ccircle cx='305' cy='275' r='2' fill='rgba(0,95,115,0.18)'/%3E%3Ccircle cx='365' cy='320' r='1' fill='rgba(0,95,115,0.14)'/%3E%3Ccircle cx='60' cy='255' r='1.5' fill='rgba(0,95,115,0.12)'/%3E%3Ccircle cx='150' cy='330' r='1' fill='rgba(0,95,115,0.16)'/%3E%3Ccircle cx='270' cy='250' r='1' fill='rgba(0,95,115,0.13)'/%3E%3Ccircle cx='390' cy='290' r='1.5' fill='rgba(0,95,115,0.11)'/%3E%3Ccircle cx='20' cy='360' r='1.5' fill='rgba(0,95,115,0.17)'/%3E%3Ccircle cx='90' cy='385' r='1' fill='rgba(0,95,115,0.12)'/%3E%3Ccircle cx='155' cy='350' r='2' fill='rgba(0,95,115,0.15)'/%3E%3Ccircle cx='220' cy='375' r='1.5' fill='rgba(0,95,115,0.1)'/%3E%3Ccircle cx='285' cy='355' r='1' fill='rgba(0,95,115,0.16)'/%3E%3Ccircle cx='345' cy='390' r='2' fill='rgba(0,95,115,0.18)'/%3E%3Ccircle cx='395' cy='365' r='1' fill='rgba(0,95,115,0.13)'/%3E%3Ccircle cx='75' cy='370' r='1' fill='rgba(0,95,115,0.14)'/%3E%3Ccircle cx='190' cy='395' r='1.5' fill='rgba(0,95,115,0.11)'/%3E%3Ccircle cx='320' cy='370' r='1' fill='rgba(0,95,115,0.15)'/%3E%3C/svg%3E");
    background-size: 400px 400px;
    padding: 64px max(6vw, calc((100% - 1400px)/2)) 80px;
}
.sp-body-inner {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 52px;
    align-items: start;
}

/* CONTENT */
.sp-content { color: var(--iwm-green); }
.sp-content h2 {
    font-family:'Antonio',sans-serif; font-size:clamp(26px,3.5vw,36px);
    font-weight:700; line-height:1.2; margin:52px 0 18px; color:var(--iwm-green);
}
.sp-content h3 {
    font-family:'Antonio',sans-serif; font-size:clamp(20px,2.5vw,26px);
    font-weight:600; line-height:1.3; margin:40px 0 14px; color:var(--iwm-green);
}
.sp-content h4,
.sp-content h5,
.sp-content h6 { font-family:'Antonio',sans-serif; font-size:18px; font-weight:600; margin:30px 0 10px; color:var(--iwm-green); }
.sp-content p { font-size:17px; line-height:1.9; margin-bottom:22px; color:var(--iwm-green); opacity:.85; }
.sp-content a { color:var(--cta); text-decoration:underline; text-underline-offset:3px; }
.sp-content a:hover { opacity:.7; }
.sp-content ul, .sp-content ol { margin:0 0 22px 22px; font-size:17px; line-height:1.9; color:var(--iwm-green); opacity:.85; }
.sp-content li { margin-bottom:6px; }
.sp-content blockquote {
    margin:40px 0; padding:22px 28px;
    background:rgba(0,95,115,.06); border-left:3px solid var(--cta);
    border-radius:0 10px 10px 0; font-size:18px; font-style:italic;
    line-height:1.7; color:var(--iwm-green);
}
.sp-content img { max-width:100%; height:auto; border-radius:10px; margin:28px 0; }
.sp-content pre { background:var(--iwm-green); color:var(--white-off); padding:24px; border-radius:10px; overflow-x:auto; font-size:14px; line-height:1.6; margin:28px 0; }
.sp-content code { background:rgba(0,95,115,.1); padding:2px 7px; border-radius:5px; font-size:15px; }
.sp-content pre code { background:none; padding:0; }
/* Tabelle (Gutenberg + classiche) — solo toni caldi, zero sfondi freddi */
.sp-content .wp-block-table,
.sp-content figure.wp-block-table {
    margin: 36px 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 12px;
    border: 1px solid rgba(236, 110, 94, 0.2);
    background: #fff9ee;
    box-shadow: 0 8px 28px rgba(236, 110, 94, 0.08);
}

.sp-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
    font-size: 16px;
    line-height: 1.65;
    color: #2c3e36;
    background: #fff9ee;
}

.sp-content > table {
    margin: 36px 0;
    border-radius: 12px;
    border: 1px solid rgba(236, 110, 94, 0.2);
    box-shadow: 0 8px 28px rgba(236, 110, 94, 0.08);
    overflow: hidden;
}

.sp-content .wp-block-table table {
    border: none;
}

.sp-content table thead th {
    padding: 16px 22px;
    font-family: 'Antonio', sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-align: left;
    color: #005f73;
    background: #fff5e8;
    border: none;
    border-bottom: 2px solid #ec6e5e;
    white-space: nowrap;
}

.sp-content table thead th:not(:last-child) {
    border-right: 1px solid rgba(236, 110, 94, 0.15);
}

.sp-content table tbody tr {
    border-bottom: 1px solid rgba(236, 110, 94, 0.12);
    transition: background 0.18s ease;
}

.sp-content table tbody tr:last-child {
    border-bottom: none;
}

.sp-content table tbody tr:hover {
    background: #fff3eb;
}

.sp-content table tbody td,
.sp-content table tbody th {
    padding: 15px 22px;
    vertical-align: top;
    opacity: 1;
    border: none;
    background: #fff9ee;
}

.sp-content table tbody tr:hover td,
.sp-content table tbody tr:hover th {
    background: #fff3eb;
}

.sp-content table tbody th {
    font-family: 'Sora', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: #005f73;
    width: 28%;
    min-width: 120px;
}

.sp-content table tbody th::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #ec6e5e;
    margin-right: 10px;
    vertical-align: 0.15em;
}

.sp-content table tbody td {
    font-size: 15px;
    color: rgba(44, 62, 54, 0.88);
    font-variant-numeric: tabular-nums;
}

.sp-content table tbody td strong {
    color: #005f73;
    font-weight: 600;
}

.sp-content table tfoot td,
.sp-content table tfoot th {
    padding: 14px 22px;
    font-size: 14px;
    font-weight: 600;
    color: #005f73;
    background: #fff5e8;
    border-top: 2px solid rgba(236, 110, 94, 0.2);
}

.sp-content table caption {
    caption-side: bottom;
    padding: 14px 22px 0;
    font-size: 13px;
    line-height: 1.5;
    color: rgba(44, 62, 54, 0.5);
    text-align: left;
}

.sp-content table a {
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid rgba(236, 110, 94, 0.35);
}

.sp-content table a:hover {
    border-bottom-color: #ec6e5e;
    opacity: 1;
}

/* Tabelle senza thead: prima riga come intestazione */
.sp-content table:not(:has(thead)) tbody tr:first-child td {
    font-family: 'Antonio', sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #005f73;
    background: #fff5e8;
    border-bottom: 2px solid #ec6e5e;
}

@media (max-width: 640px) {
    .sp-content .wp-block-table,
    .sp-content figure.wp-block-table {
        border-radius: 10px;
    }

    .sp-content table thead th,
    .sp-content table tbody td,
    .sp-content table tbody th,
    .sp-content table tfoot td,
    .sp-content table tfoot th {
        padding: 12px 16px;
    }

    .sp-content table thead th {
        font-size: 14px;
        letter-spacing: 0.07em;
    }

    .sp-content table tbody td,
    .sp-content table tbody th {
        font-size: 14px;
    }
}

/* YouTube / video embeds */
.sp-content figure.wp-block-embed,
.sp-content .wp-block-embed {
    margin: 28px auto;
    display: block;
    width: 100%;
    max-width: 100%;
    text-align: center;
}
.sp-content .wp-block-embed__wrapper {
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}
.sp-content .wp-block-embed__wrapper iframe,
.sp-content .wp-block-embed__wrapper video {
    display: block;
    width: 100%;
    max-width: 100%;
    border: none;
    border-radius: 10px;
}
/* Ratio padding trick for responsive iframes */
.sp-content .wp-block-embed.is-type-video .wp-block-embed__wrapper,
.sp-content .wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper {
    aspect-ratio: 16 / 9;
    height: auto;
}
.sp-content .wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper iframe {
    width: 100%;
    height: 100%;
}

/* WebM / video nativo (blocco Gutenberg + link diretti) */
.sp-content .wp-block-video,
.sp-content .sp-video-wrap {
    margin: 28px auto;
    display: block;
    width: 100%;
    max-width: 100%;
}
.sp-content .wp-block-video video,
.sp-content video.sp-video-player {
    display: block;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    border: none;
    border-radius: 10px;
    background: #0e1f23;
    object-fit: contain;
}

/* RankMath TOC (ritrae/espande) */
.sp-wrap .wp-block-rank-math-toc-block,
.sp-wrap .rank-math-toc-block {
    --toc-border: rgba(0,95,115,.2);
    --toc-cream: #fff9ee;
    --toc-link: #005f73;
    margin: 0 0 34px;
    border: 1px solid var(--toc-border);
    border-radius: 14px;
    background: var(--toc-cream);
    overflow: hidden;
    box-shadow: 0 10px 28px rgba(0,95,115,.08);
}
.sp-wrap .wp-block-rank-math-toc-block h2,
.sp-wrap .rank-math-toc-block h2 {
    margin: 0;
    font-family: 'Sora', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    line-height: 1.2;
    color: #005f73;
    padding: 18px 22px;
    border-bottom: 1px solid rgba(0,95,115,.1);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    position: relative;
    padding-left: 42px;
}
.sp-wrap .wp-block-rank-math-toc-block h2::before,
.sp-wrap .rank-math-toc-block h2::before {
    content: '';
    position: absolute;
    left: 22px;
    top: 50%;
    width: 12px;
    height: 2px;
    transform: translateY(-50%);
    background: #ec6e5e;
    border-radius: 2px;
}
.sp-wrap .wp-block-rank-math-toc-block nav,
.sp-wrap .rank-math-toc-block nav {
    padding: 6px 0 10px;
}
.sp-wrap .wp-block-rank-math-toc-block ul,
.sp-wrap .rank-math-toc-block ul {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: toc-counter;
}
.sp-wrap .wp-block-rank-math-toc-block li,
.sp-wrap .rank-math-toc-block li {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    padding: 0 22px;
    border-top: 1px solid rgba(0,95,115,.08);
    min-height: 56px;
    counter-increment: toc-counter;
}
.sp-wrap .wp-block-rank-math-toc-block li::before,
.sp-wrap .rank-math-toc-block li::before {
    content: counter(toc-counter, decimal-leading-zero);
    font-family: 'Sora', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #ec6e5e;
    letter-spacing: .06em;
    flex-shrink: 0;
}
.sp-wrap .wp-block-rank-math-toc-block ul > li:first-child,
.sp-wrap .rank-math-toc-block ul > li:first-child {
    border-top: 0;
}
/* Sub-list (H3, H4, H5, H6): occupa tutta la riga, indentata sotto il link H2 */
.sp-wrap .wp-block-rank-math-toc-block li > ul,
.sp-wrap .rank-math-toc-block li > ul {
    flex-basis: 100%;
    width: 100%;
    padding: 4px 0 14px 52px;
    counter-reset: none;
    border-top: 1px dashed rgba(0,95,115,.15);
    margin-top: -8px;
}
.sp-wrap .wp-block-rank-math-toc-block li li,
.sp-wrap .rank-math-toc-block li li {
    padding: 0;
    min-height: 28px;
    border-top: none;
    counter-increment: none;
}
.sp-wrap .wp-block-rank-math-toc-block li li::before,
.sp-wrap .rank-math-toc-block li li::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: rgba(0,95,115,.3);
    flex-shrink: 0;
    align-self: center;
    font-size: 0;
}
.sp-wrap .wp-block-rank-math-toc-block li li > ul,
.sp-wrap .rank-math-toc-block li li > ul {
    padding: 0 0 4px 14px;
    border-top: none;
    margin-top: 0;
}
.sp-wrap .wp-block-rank-math-toc-block a,
.sp-wrap .rank-math-toc-block a {
    color: var(--toc-link);
    text-decoration: none;
    border-bottom: 0;
    font-family: 'Antonio', sans-serif;
    font-size: clamp(18px, 2.2vw, 30px);
    font-weight: 500;
    line-height: 1.34 !important;
    padding: 10px 0;
    flex: 1;
    transition: color .2s;
}
/* H3 */
.sp-wrap .wp-block-rank-math-toc-block li li > a,
.sp-wrap .rank-math-toc-block li li > a {
    font-family: 'Sora', sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4 !important;
    color: rgba(0,95,115,.8);
    padding: 4px 0;
}
/* H4 */
.sp-wrap .wp-block-rank-math-toc-block li li li > a,
.sp-wrap .rank-math-toc-block li li li > a {
    font-size: 13px;
    font-weight: 500;
    color: rgba(0,95,115,.65);
    padding: 3px 0;
}
/* H5 */
.sp-wrap .wp-block-rank-math-toc-block li li li li > a,
.sp-wrap .rank-math-toc-block li li li li > a {
    font-size: 12px;
    font-weight: 400;
    color: rgba(0,95,115,.5);
    padding: 2px 0;
}
/* H6 */
.sp-wrap .wp-block-rank-math-toc-block li li li li li > a,
.sp-wrap .rank-math-toc-block li li li li li > a {
    font-size: 11px;
    font-weight: 400;
    color: rgba(0,95,115,.4);
    padding: 2px 0;
}
.sp-wrap .wp-block-rank-math-toc-block a:hover,
.sp-wrap .rank-math-toc-block a:hover {
    color: #ec6e5e;
}
.sp-wrap .wp-block-rank-math-toc-block .active > a,
.sp-wrap .rank-math-toc-block .active > a,
.sp-wrap .wp-block-rank-math-toc-block a[aria-current="true"],
.sp-wrap .rank-math-toc-block a[aria-current="true"] { color: #ec6e5e; }
.sp-wrap .wp-block-rank-math-toc-block .sp-toc-toggle,
.sp-wrap .rank-math-toc-block .sp-toc-toggle {
    margin-left: auto;
    border: 1px solid rgba(0,95,115,.18);
    background: rgba(0,95,115,.06);
    color: #005f73;
    border-radius: 10px;
    padding: 7px 14px;
    font-family: 'Sora', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.sp-wrap .wp-block-rank-math-toc-block .sp-toc-toggle::after,
.sp-wrap .rank-math-toc-block .sp-toc-toggle::after {
    content: '▴';
    font-size: 10px;
    line-height: 1;
}
.sp-wrap .wp-block-rank-math-toc-block.is-collapsed .sp-toc-toggle::after,
.sp-wrap .rank-math-toc-block.is-collapsed .sp-toc-toggle::after { content: '▾'; }
.sp-wrap .wp-block-rank-math-toc-block.is-collapsed nav,
.sp-wrap .rank-math-toc-block.is-collapsed nav { display: none; }

/* TAGS */
.sp-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:48px; padding-top:28px; border-top:1px solid rgba(0,95,115,.1); }
.sp-tags-label { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:1px; color:var(--iwm-green); opacity:.45; line-height:34px; margin-right:4px; }
.sp-tag { display:inline-block; padding:7px 14px; background:rgba(0,95,115,.07); border-radius:8px; font-size:12px; font-weight:500; color:var(--iwm-green); text-decoration:none; transition:all .25s; }
.sp-tag:hover { background:var(--iwm-green); color:var(--white-off); }

/* AUTHOR */
.sp-author { display:flex; align-items:stretch; gap:20px; margin-top:48px; padding:28px; background:rgba(0,95,115,.04); border-radius:12px; }
.sp-author-avatar { width:180px; border-radius:10px; overflow:hidden; flex-shrink:0; align-self:stretch; }
.sp-author-avatar img { width:100%; height:100%; object-fit:cover; margin:0; }
.sp-author-label { font-size:10px; text-transform:uppercase; letter-spacing:1.5px; font-weight:600; color:var(--iwm-green); opacity:.45; margin-bottom:4px; }
.sp-author-name { font-family:'Antonio',sans-serif; font-size:22px; font-weight:600; color:var(--iwm-green); margin-bottom:6px; }
.sp-author-name a {
    font-family:'Antonio',sans-serif;
    color: #005f73;
    text-decoration: none;
    border-bottom: 1px solid rgba(0,95,115,0.2);
    transition: border-color .2s, color .2s;
}
.sp-author-name a:hover { color: #005f73; border-color: #005f73; }
.sp-author-bio { font-size:13px; line-height:1.6; color:var(--iwm-green); opacity:.65; margin:0; }
.sp-author-socials { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.sp-author-social {
    display:inline-flex; align-items:center; gap:6px;
    font-size:11px; font-weight:600; letter-spacing:.04em;
    text-transform:uppercase; text-decoration:none;
    color:#005f73; border:1px solid #005f73;
    border-radius:10px; padding:6px 10px; transition:all .2s;
}
.sp-author-social:hover { color:#fff9ee; background:#005f73; border-color:#005f73; }

/* SIDEBAR */
.sp-sidebar {
    display:flex;
    flex-direction:column;
    gap:24px;
    position:-webkit-sticky;
    position:sticky !important;
    top:120px !important;
    align-self:start;
    height:fit-content;
}
.sp-widget { background:#0e1f23; border:1px solid rgba(255,249,238,.1); border-radius:14px; overflow:hidden; box-shadow:0 4px 24px rgba(0,0,0,.18); }
.sp-widget-eyebrow { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:var(--cta); padding:20px 20px 4px; display:flex; align-items:center; gap:8px; }
.sp-widget-eyebrow::before { content:''; display:block; width:18px; height:1px; background:var(--cta); flex-shrink:0; }
.sp-widget-head { font-family:'Antonio',sans-serif; font-size:21px; font-weight:700; color:var(--white-off); padding:4px 20px 12px; }

/* servizi */
.sp-service-item { display:flex; align-items:center; justify-content:space-between; padding:11px 20px; font-size:14px; font-weight:500; color:rgba(255,249,238,.8); text-decoration:none; border-top:1px solid rgba(255,249,238,.08); transition:background .2s, padding-left .2s; }
.sp-service-item:last-child { padding-bottom:24px; }
.sp-service-item:hover { background:rgba(255,249,238,.06); padding-left:26px; color:var(--white-off); }
.sp-service-item svg { width:14px; height:14px; color:var(--cta); opacity:0; transition:opacity .2s; flex-shrink:0; }
.sp-service-item:hover svg { opacity:1; }
.sp-widget-btn { display:block; margin:14px 20px 20px; padding:11px 18px; background:var(--cta); border-radius:8px; font-size:12px; font-weight:600; color:#fff; text-decoration:none; text-align:center; transition:background .25s, color .25s; }
.sp-widget-btn:hover { background:#d45a4a; color:#fff; }

/* portfolio */
.sp-portfolio { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:4px 20px 0; }
.sp-portfolio-item { position:relative; border-radius:8px; overflow:hidden; aspect-ratio:4/3; background:rgba(255,249,238,.08); text-decoration:none; display:block; }
.sp-portfolio-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.16,1,.3,1); }
.sp-portfolio-item:hover img { transform:scale(1.08); }
.sp-portfolio-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(13,31,38,.75) 0%,transparent 60%); opacity:0; transition:opacity .3s; display:flex; align-items:flex-end; padding:10px; }
.sp-portfolio-item:hover .sp-portfolio-overlay { opacity:1; }
.sp-portfolio-overlay span { font-size:11px; font-weight:600; color:#fff; line-height:1.3; }

/* articoli recenti */
.sp-recent-item { display:flex; gap:12px; align-items:center; padding:11px 20px; text-decoration:none; border-top:1px solid rgba(255,249,238,.08); transition:background .2s; }
.sp-recent-item:hover { background:rgba(255,249,238,.06); }
.sp-recent-thumb { width:56px; height:56px; border-radius:7px; object-fit:cover; flex-shrink:0; background:rgba(255,249,238,.1); }
.sp-recent-info { flex:1; min-width:0; }
.sp-recent-cat { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:1.2px; color:var(--cta); margin-bottom:3px; }
.sp-recent-title { font-size:13px; font-weight:600; color:var(--white-off); line-height:1.4; margin:0 0 3px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.sp-recent-date { font-size:10px; color:rgba(255,249,238,.4); }

/* contatto */
.sp-widget--contact { background:var(--iwm-green); border-color:var(--cta); }
.sp-widget--contact .sp-widget-eyebrow { color:var(--cta); }
.sp-widget--contact .sp-widget-eyebrow::before { background:var(--cta); }
.sp-widget--contact .sp-widget-head { color:var(--white-off); }
.sp-contact-row { display:flex; align-items:center; gap:12px; padding:11px 20px; border-top:1px solid rgba(255,249,238,.08); text-decoration:none; transition:background .2s; }
.sp-contact-row:hover { background:rgba(255,249,238,.05); }
.sp-contact-icon { width:34px; height:34px; border-radius:8px; background:rgba(255,249,238,.08); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.sp-contact-icon svg { width:15px; height:15px; stroke:rgba(255,249,238,.65); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.sp-contact-label { font-size:10px; text-transform:uppercase; letter-spacing:1px; font-weight:600; color:rgba(255,249,238,.4); margin-bottom:1px; }
.sp-contact-value { font-size:13px; font-weight:500; color:var(--white-off); }
.sp-contact-btn-wrap { padding:16px 20px 20px; }
.sp-contact-btn-wrap .tp-btn { width:100%; justify-content:center; }

/* RELATED */
.sp-related { background:#0e1f23; padding:80px 6vw; overflow:hidden; }
.sp-related-inner { max-width:1400px; margin:0 auto; }
.sp-related-header { margin-bottom:44px; }
.sp-related-title { font-family:'Antonio',sans-serif; font-size:clamp(28px,4vw,44px); font-weight:700; color:var(--white-off); margin:0; }
.sp-related-title span { color:var(--cta); }
.sp-related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.sp-rc { position:relative; display:flex; flex-direction:column; gap:14px; padding:28px; background:rgba(255,249,238,.04); border:1px solid rgba(255,249,238,.08); border-radius:14px; text-decoration:none; transition:background .25s,border-color .25s; }
.sp-rc:hover { border-color:transparent; }
.sp-rc-svg { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; overflow:visible; }
.sp-rc-svg rect { fill:none; stroke:#ec6e5e; stroke-width:2; vector-effect:non-scaling-stroke; stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset 1.4s cubic-bezier(0.16,1,0.3,1); }
.sp-rc:hover .sp-rc-svg rect { stroke-dashoffset:0; }
.sp-rc-cat { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:var(--cta); }
.sp-rc-title { font-family:'Antonio',sans-serif; font-size:clamp(18px,1.6vw,26px); font-weight:700; color:var(--white-off); line-height:1.2; margin:0; transition:color .25s; }
.sp-rc:hover .sp-rc-title { color:var(--cta); }
.sp-rc-excerpt { font-size:13px; line-height:1.7; color:rgba(255,249,238,.55); margin:0; flex:1; }
.sp-rc-meta { display:flex; align-items:center; gap:12px; margin-top:auto; padding-top:14px; border-top:1px solid rgba(255,249,238,.08); font-size:11px; color:rgba(255,249,238,.35); text-transform:uppercase; letter-spacing:.5px; }
@media (max-width:900px) { .sp-related-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px) { .sp-related-grid { grid-template-columns:1fr; } }

/* Risorsa senza testo: una sola colonna centrata (il form è la CTA) */
.sp-body-inner--solo {
    grid-template-columns: minmax(0, 620px);
    justify-content: center;
}
.sp-body-inner--solo .sp-sidebar { width: 100%; }

/* RESPONSIVE */
@media (max-width:1100px) { .sp-body-inner { grid-template-columns:1fr 320px; gap:36px; } }
@media (max-width:1100px) { .sp-body-inner--solo { grid-template-columns:minmax(0,620px); } }
@media (max-width:1024px) {
    .sp-body-inner { grid-template-columns: 1fr; gap: 0; }
    .sp-sidebar { display: block; }
    .sp-sidebar .iwm-ris-gate {
        margin-top: 44px;
        max-width: 560px;
    }
    .sp-widget--services { display: none; }
}
@media (max-width:900px) { .sp-body-inner { grid-template-columns:1fr; } .sp-portfolio { grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px) {
    .sp-hero:not(.sp-hero--risorsa) { min-height:60vh; }
    .sp-hero:not(.sp-hero--risorsa) .sp-hero-title { font-size:clamp(30px,8vw,52px); }
    .sp-body { padding:40px 6vw 60px; }
    .sp-portfolio { grid-template-columns:1fr 1fr; }
    .sp-related-header { flex-direction:column; align-items:flex-start; gap:16px; }
    .sp-author {
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
        padding: 16px;
    }
    .sp-author-avatar {
        width: 100%;
        height: 280px;
        border-radius: 10px;
    }
    .sp-author > div:last-child {
        width: 100%;
    }
    .sp-author-name {
        font-size: 38px;
        line-height: .95;
        margin-bottom: 10px;
    }
    .sp-author-bio {
        font-size: 14px;
        line-height: 1.45;
    }
    .sp-author-socials {
        gap: 10px;
        margin-top: 12px;
    }
    .sp-author-social {
        font-size: 10px;
        padding: 6px 9px;
    }
    .sp-wrap .wp-block-rank-math-toc-block h2,
    .sp-wrap .rank-math-toc-block h2 { padding: 16px 14px 16px 36px; letter-spacing: .1em; }
    .sp-wrap .wp-block-rank-math-toc-block h2::before,
    .sp-wrap .rank-math-toc-block h2::before { left: 14px; width: 10px; }
    .sp-wrap .wp-block-rank-math-toc-block li,
    .sp-wrap .rank-math-toc-block li { padding: 0 14px; min-height: 48px; gap: 10px; }
    .sp-wrap .wp-block-rank-math-toc-block a,
    .sp-wrap .rank-math-toc-block a { font-size: 22px; padding: 10px 0; line-height: 1.34 !important; }
}

/* ══ CTA cream override ════════════════════════ */
.sp-cta-wrap .cs-cta                        { background-color: #005f73 !important; background-image: none !important; }
.sp-cta-wrap .cs-cta-title                  { color: #fff9ee !important; }
.sp-cta-wrap .cs-cta-title em               { color: #ec6e5e !important; }
.sp-cta-wrap .cs-cta-tag                    { color: #ec6e5e !important; }
.sp-cta-wrap .cs-cta-tag::before            { background: #ec6e5e !important; }
.sp-cta-wrap .cs-cta-desc                   { color: rgba(255,249,238,0.8) !important; }
.sp-cta-wrap .cs-cta-step-num               { color: #ec6e5e !important; }
.sp-cta-wrap .cs-cta-step-body strong       { color: #fff9ee !important; }
.sp-cta-wrap .cs-cta-step-body span         { color: rgba(255,249,238,0.8) !important; }
.sp-cta-wrap .cs-cta-card                   { background: #005f73 !important; border-color: #ec6e5e !important; }
.sp-cta-wrap .cs-cta-card-heading           { color: #fff9ee !important; }
.sp-cta-wrap .cs-cta-row                    { background: rgba(255,249,238,0.08) !important; }
.sp-cta-wrap .cs-cta-row:hover              { background: rgba(255,249,238,0.12) !important; }
.sp-cta-wrap .cs-cta-row-icon               { background: rgba(255,249,238,0.1) !important; }
.sp-cta-wrap .cs-cta-row-icon svg           { stroke: rgba(255,249,238,0.75) !important; }
.sp-cta-wrap .cs-cta-row-label              { color: #fff9ee !important; }
.sp-cta-wrap .cs-cta-row-value              { color: rgba(255,249,238,0.8) !important; }
.sp-cta-wrap .cs-cta-divider                { color: rgba(255,249,238,0.5) !important; }
.sp-cta-wrap .cs-cta-divider::before,
.sp-cta-wrap .cs-cta-divider::after         { background: rgba(255,249,238,0.2) !important; }
.sp-cta-wrap .tp-btn--outline-coral,
.sp-cta-wrap .tp-btn--outline-coral:hover   { color: #fff9ee !important; }
/* ── Form di download (CF7) — card a due toni, alta visibilità ─── */
.sp-sidebar .iwm-ris-gate {
    position: relative;
    z-index: 2;
}

.sp-widget.iwm-ris-gate {
    background: #fff9ee;
    border: 2px solid #005f73;
    border-radius: 16px;
    box-shadow:
        0 28px 70px rgba(0, 31, 38, .2),
        0 8px 24px rgba(0, 95, 115, .12);
    padding: 0;
    overflow: hidden;
}

.sp-widget.iwm-ris-gate::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: #ec6e5e;
    z-index: 1;
}

.iwm-ris-gate-head {
    position: relative;
    padding: 30px 28px 24px;
    background: linear-gradient(165deg, #005f73 0%, #004a5a 100%);
}

.iwm-ris-gate-head::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: radial-gradient(rgba(255, 249, 238, .07) 1px, transparent 1px);
    background-size: 18px 18px;
    opacity: .55;
}

.iwm-ris-gate-tag {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #fff9ee;
    background: rgba(236, 110, 94, .22);
    border: 1px solid rgba(236, 110, 94, .45);
    border-radius: 100px;
    padding: 6px 14px;
    margin-bottom: 14px;
}

.iwm-ris-gate-tag::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #ec6e5e;
    box-shadow: 0 0 0 3px rgba(236, 110, 94, .25);
    flex-shrink: 0;
}

.iwm-ris-gate-title {
    position: relative;
    z-index: 1;
    font-family: 'Antonio', sans-serif;
    font-size: clamp(28px, 3.2vw, 36px);
    font-weight: 700;
    line-height: 1;
    color: #fff9ee;
    margin: 0 0 10px;
}

.iwm-ris-gate-text {
    position: relative;
    z-index: 1;
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
    color: rgba(255, 249, 238, .78);
}

.iwm-ris-gate-body {
    padding: 24px 28px 30px;
    background: #fff9ee;
    color: #0f1f24;
}

.iwm-ris-gate-unavail {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #b32d2e;
}

.iwm-ris-gate-unavail a { color: #005f73; }

.iwm-ris-gate .wpcf7 { margin: 0; }

.iwm-ris-gate .iwm-ris-form-fields,
.iwm-ris-gate .iwm-form-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 4px;
}

.iwm-ris-gate .wpcf7-form-control-wrap {
    display: block;
    margin: 0;
}

.iwm-ris-gate input[type="text"],
.iwm-ris-gate input[type="email"],
.iwm-ris-gate input[type="tel"] {
    width: 100%;
    height: 52px;
    box-sizing: border-box;
    padding: 0 16px;
    border: 1.5px solid rgba(15, 31, 36, .14);
    border-radius: 10px;
    font-family: 'Sora', sans-serif;
    font-size: 15px;
    background: rgba(15, 31, 36, .03);
    color: #0f1f24;
    transition: border-color .25s, box-shadow .25s, background .25s;
}

.iwm-ris-gate input::placeholder { color: rgba(15, 31, 36, .38); }

.iwm-ris-gate input:focus {
    outline: none;
    border-color: #ec6e5e;
    background: #fff9ee;
    box-shadow: 0 0 0 4px rgba(236, 110, 94, .12);
}

.iwm-ris-gate .wpcf7-checkbox,
.iwm-ris-gate .wpcf7-acceptance {
    display: block;
    margin-top: 14px;
}

.iwm-ris-gate .wpcf7-list-item {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: 0 0 10px;
    font-size: 12.5px;
    line-height: 1.55;
    color: rgba(15, 31, 36, .58);
}

.iwm-ris-gate .wpcf7-list-item label {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: 0;
    cursor: pointer;
}

.iwm-ris-gate input[type="checkbox"] {
    margin-top: 3px;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    accent-color: #ec6e5e;
}

.iwm-ris-gate .wpcf7-acceptance a,
.iwm-ris-gate .wpcf7-checkbox a {
    color: #d85a30;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.iwm-ris-gate input.wpcf7-submit.tp-btn,
.iwm-ris-gate .wpcf7-submit.tp-btn {
    width: 100%;
    margin-top: 18px;
    padding: 18px 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: inherit;
    font-weight: 600;
    font-size: 15px;
    line-height: 1.2;
    border-radius: 10px;
    border: 2px solid #ec6e5e !important;
    background-color: #ec6e5e !important;
    color: #fff9ee !important;
    cursor: pointer;
    transition: background-color .3s ease, border-color .3s ease, opacity .2s ease;
    -webkit-appearance: none;
    appearance: none;
}

.iwm-ris-gate input.wpcf7-submit.tp-btn:hover {
    background-color: #d85a30 !important;
    border-color: #d85a30 !important;
}

.iwm-ris-gate .wpcf7-submit.tp-btn {
    justify-content: center;
}

.iwm-ris-gate .iwm-ris-form-note,
.iwm-ris-gate .lm-form-reassure {
    margin: 14px 0 0;
    font-size: 12px;
    line-height: 1.5;
    color: rgba(15, 31, 36, .42);
    text-align: center;
}

.iwm-ris-gate .wpcf7-spinner { display: none; }

.iwm-ris-gate {
    position: relative;
}

.iwm-ris-gate.is-busy .wpcf7-submit.tp-btn,
.iwm-ris-gate.is-busy input.wpcf7-submit.tp-btn {
    opacity: .78;
    cursor: wait;
    pointer-events: none;
}

.iwm-ris-gate.is-busy input.wpcf7-submit.tp-btn::after {
    content: '…';
}

.iwm-ris-gate.is-busy::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 4;
    border-radius: inherit;
    background: rgba(255, 249, 238, .72);
    pointer-events: none;
}

.iwm-ris-gate.is-busy::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 5;
    width: 34px;
    height: 34px;
    margin: -17px 0 0 -17px;
    border: 3px solid rgba(0, 95, 115, .18);
    border-top-color: #005f73;
    border-radius: 50%;
    animation: iwm-ris-spin .75s linear infinite;
    pointer-events: none;
}

@keyframes iwm-ris-spin {
    to { transform: rotate(360deg); }
}

.iwm-ris-gate .wpcf7-not-valid-tip {
    font-size: 11.5px;
    margin-top: 4px;
    color: #b32d2e;
}

.iwm-ris-gate .wpcf7-response-output {
    margin: 14px 0 0 !important;
    padding: 12px 14px !important;
    border-radius: 10px !important;
    border-width: 1px !important;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
    color: #0f1f24 !important;
    background: #fff !important;
}

.iwm-ris-gate .wpcf7 form.sent .wpcf7-response-output {
    color: #1a7f37 !important;
    background: #e8f6ee !important;
    border-color: #46b450 !important;
}

.iwm-ris-gate .wpcf7 form.invalid .wpcf7-response-output,
.iwm-ris-gate .wpcf7 form.unaccepted .wpcf7-response-output {
    color: #9a6700 !important;
    background: #fff8e5 !important;
    border-color: #ffb900 !important;
}

.iwm-ris-gate .wpcf7 form.failed .wpcf7-response-output,
.iwm-ris-gate .wpcf7 form.aborted .wpcf7-response-output,
.iwm-ris-gate .wpcf7 form.spam .wpcf7-response-output {
    color: #b32d2e !important;
    background: #fcebec !important;
    border-color: #dc3232 !important;
}

@media (max-width: 640px) {
    .iwm-ris-gate-head { padding: 26px 22px 20px; }
    .iwm-ris-gate-body { padding: 20px 22px 26px; }
    .sp-sidebar .iwm-ris-gate { max-width: none; }
}

/* Popup download PDF dopo invio form */
.iwm-ris-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s ease;
}

.iwm-ris-modal.is-open {
    opacity: 1;
    visibility: visible;
}

.iwm-ris-modal[hidden] { display: none; }
.iwm-ris-modal:not([hidden]) { display: flex; }

body.iwm-ris-modal-open { overflow: hidden; }

.iwm-ris-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 31, 38, .72);
    backdrop-filter: blur(4px);
}

.iwm-ris-modal-panel {
    position: relative;
    z-index: 1;
    width: min(100%, 480px);
    padding: 40px 36px 36px;
    border-radius: 20px;
    background: #fff9ee;
    border: 2px solid #005f73;
    box-shadow: 0 28px 80px rgba(0, 31, 38, .35);
    text-align: center;
    transform: translateY(12px) scale(.98);
    transition: transform .28s cubic-bezier(.16, 1, .3, 1);
}

.iwm-ris-modal.is-open .iwm-ris-modal-panel {
    transform: translateY(0) scale(1);
}

.iwm-ris-modal-close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 95, 115, .08);
    color: #005f73;
    cursor: pointer;
    transition: background .2s;
}

.iwm-ris-modal-close:hover { background: rgba(0, 95, 115, .14); }

.iwm-ris-modal-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(236, 110, 94, .14);
    color: #ec6e5e;
}

.iwm-ris-modal-title {
    margin: 0 0 12px;
    font-family: 'Antonio', sans-serif;
    font-size: clamp(32px, 5vw, 42px);
    font-weight: 700;
    line-height: 1;
    color: #005f73;
}

.iwm-ris-modal-text {
    margin: 0 0 10px;
    font-size: 15px;
    line-height: 1.65;
    color: rgba(15, 31, 36, .78);
}

.iwm-ris-modal-guide {
    margin: 0 0 24px;
    font-family: 'Antonio', sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
    color: #0f1f24;
}

.iwm-ris-modal-actions {
    display: flex;
    justify-content: center;
    margin-bottom: 16px;
}

.iwm-ris-modal-actions .tp-btn {
    width: 100%;
    max-width: 280px;
    justify-content: center;
}

.iwm-ris-modal-note {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: rgba(15, 31, 36, .45);
}

.iwm-ris-modal-state[hidden] {
    display: none !important;
}

.iwm-ris-modal-spinner {
    width: 52px;
    height: 52px;
    margin: 0 auto 22px;
    border: 4px solid rgba(0, 95, 115, .16);
    border-top-color: #005f73;
    border-radius: 50%;
    animation: iwm-ris-spin .75s linear infinite;
}

.iwm-ris-modal.is-loading .iwm-ris-modal-close {
    opacity: .45;
    pointer-events: none;
}

@media (max-width: 640px) {
    .iwm-ris-modal-panel { padding: 32px 24px 28px; }
}
