/* ============================================================
 * TOKENS
 * ============================================================ */

.assome-course-v4{
    --blue:#143f68;
    --blue-soft:#e8f0f8;
    --dark:#0a2947;
    --deep:#071d32;
    --orange:#f3a126;
    --orange-soft:#fff4e2;
    --green:#2e7d4f;
    --red:#c0392b;
    --text:#172331;
    --muted:#5f6b78;
    --soft:#f5f7f9;
    --line:#e2e7eb;
    --white:#fff;
    --radius:14px;
    --radius-sm:8px;
    --shadow:0 18px 50px rgba(10,41,71,.08);
    --shadow-lg:0 28px 70px rgba(0,0,0,.22);
    --ease:cubic-bezier(.2,.7,.2,1);

    color:var(--text);
    -webkit-font-smoothing:antialiased;
}

.assome-course-v4 *{ box-sizing:border-box; }

.assome-course-v4 img{ max-width:100%; }

.assome-course-v4 a:focus-visible,
.assome-course-v4 button:focus-visible{
    outline:3px solid var(--orange);
    outline-offset:3px;
}

.av4-icon{
    flex:none;
    width:1.15em;
    height:1.15em;
    vertical-align:-.2em;
}


/* ============================================================
 * LAYOUT
 * ============================================================ */

.av4-wrap{
    width:min(1180px, calc(100% - 48px));
    margin-left:auto;
    margin-right:auto;
}

.av4-narrow{ max-width:850px; }

.av4-section{
    padding:clamp(60px,8vw,96px) 0;
    scroll-margin-top:70px;
}

.av4-soft{ background:var(--soft); }

.av4-section-head{ margin-bottom:26px; }

.av4-eyebrow,
.av4-label{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-bottom:12px;
    color:var(--blue);
    font-size:11px;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.av4-label::before{
    content:"";
    width:22px;
    height:2px;
    border-radius:2px;
    background:var(--orange);
}

.av4-light{ color:rgba(255,255,255,.7); }

.av4-section h2,
.av4-gallery h2,
.av4-related h2{
    margin:0;
    color:var(--dark);
    font-size:clamp(30px,4vw,44px);
    line-height:1.1;
    letter-spacing:-.03em;
}

.av4-rich,
.av4-intro{
    color:#44515d;
    font-size:17px;
    line-height:1.75;
}

.av4-rich ul,
.av4-intro ul{
    padding-left:0;
    list-style:none;
}

.av4-rich ul li,
.av4-intro ul li{
    position:relative;
    margin-bottom:8px;
    padding-left:26px;
}

.av4-rich ul li::before,
.av4-intro ul li::before{
    content:"";
    position:absolute;
    top:.7em;
    left:4px;
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--orange);
}

.av4-intro{ max-width:780px; }


/* ============================================================
 * HERO
 * ============================================================ */

.av4-hero{
    position:relative;
    padding:clamp(48px,7vw,84px) 0;
    color:#fff;
    background:
        radial-gradient(circle at 12% 0%,rgba(243,161,38,.16),transparent 32%),
        radial-gradient(circle at 90% 100%,rgba(255,255,255,.08),transparent 40%),
        linear-gradient(135deg,var(--deep),var(--blue));
    isolation:isolate;
}

.av4-hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background-image:
        linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
    background-size:44px 44px;
    -webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);
    mask-image:linear-gradient(180deg,#000,transparent 85%);
}

.av4-hero-grid{
    display:grid;
    grid-template-columns:minmax(0,1.3fr) minmax(340px,.85fr);
    gap:clamp(36px,5vw,64px);
    align-items:center;
}

.av4-hero-copy{ max-width:760px; }

.av4-eyebrow{
    padding:6px 12px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:30px;
    background:rgba(255,255,255,.06);
    color:rgba(255,255,255,.85);
}

.av4-hero h1{
    margin:0;
    color:#fff;
    font-size:clamp(38px,5vw,64px);
    line-height:1.04;
    letter-spacing:-.035em;
    text-wrap:balance;
}

.av4-subtitle{
    max-width:640px;
    margin:22px 0 0;
    color:rgba(255,255,255,.8);
    font-size:clamp(17px,1.6vw,19px);
    line-height:1.6;
}

.av4-hero-facts{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    max-width:640px;
    margin:32px 0 0;
}

.av4-hero-fact{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
    padding:14px 16px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:var(--radius-sm);
    background:rgba(255,255,255,.06);
    backdrop-filter:blur(6px);
}

.av4-hero-fact-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:none;
    width:38px;
    height:38px;
    border-radius:50%;
    background:rgba(243,161,38,.16);
    color:var(--orange);
}

.av4-hero-fact dt{
    margin:0 0 3px;
    color:rgba(255,255,255,.58);
    font-size:10px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.av4-hero-fact dd{
    margin:0;
    color:#fff;
    font-size:15px;
    font-weight:700;
    line-height:1.3;
}

.av4-tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:22px;
}

.av4-tags span{
    padding:7px 13px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:30px;
    color:rgba(255,255,255,.88);
    font-size:13px;
}

.av4-tags .av4-tag-accent{
    border-color:var(--orange);
    background:var(--orange);
    color:var(--dark);
    font-weight:700;
}


/* BREADCRUMB E STATO DEL CORSO */

.av4-breadcrumb{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin-bottom:18px;
    color:rgba(255,255,255,.6);
    font-size:13px;
}

.av4-breadcrumb a{
    color:rgba(255,255,255,.8) !important;
    text-decoration:none !important;
}

.av4-breadcrumb a:hover{ color:#fff !important; text-decoration:underline !important; }

.av4-eyebrow{ margin-bottom:16px; }

.av4-status-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--orange);
}

.av4-status-today .av4-status-dot,
.av4-status-soon .av4-status-dot{ animation:av4-pulse 1.8s infinite; }

.av4-status-running .av4-status-dot{ background:#5fd08a; }


/* BUY CARD */

.av4-buy{
    width:100%;
    max-width:480px;
    justify-self:end;
    overflow:hidden;
    border-radius:var(--radius);
    background:#fff;
    color:var(--text);
    box-shadow:var(--shadow-lg);
}

.av4-hero-image{
    aspect-ratio:16/9;
    background:#e9eef2;
}

.av4-hero-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.av4-buy-body{ padding:24px; }

.av4-buy-topline{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-end;
    justify-content:space-between;
    gap:12px 18px;
    margin-bottom:16px;
}

/* La hero non deve mai contenere form estesi: i form completi restano nella sezione informazioni. */
.av4-hero .av4-buy form:not(.cart){ display:none !important; }

.av4-price{
    color:var(--dark);
    font-size:32px;
    font-weight:800;
    letter-spacing:-.02em;
    line-height:1.1;
}

.av4-price ins{ text-decoration:none; }

.av4-price del{
    margin-right:6px;
    font-size:16px;
    opacity:.45;
}

.av4-seats{
    flex:1 1 170px;
    max-width:220px;
    font-size:13px;
    font-weight:700;
}

.av4-seats-text{
    display:flex;
    align-items:center;
    gap:7px;
    color:var(--green);
}

.av4-seats-text small{
    color:var(--muted);
    font-weight:500;
}

.av4-seats-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:currentColor;
    box-shadow:0 0 0 4px color-mix(in srgb,currentColor 18%,transparent);
}

.av4-seats.is-low .av4-seats-text{ color:#c46d00; }
.av4-seats.is-full .av4-seats-text{ color:var(--red); }

.av4-seats.is-low .av4-seats-dot{ animation:av4-pulse 1.8s infinite; }

.av4-seats-bar{
    height:5px;
    margin-top:8px;
    overflow:hidden;
    border-radius:5px;
    background:var(--line);
}

.av4-seats-bar span{
    display:block;
    height:100%;
    border-radius:5px;
    background:linear-gradient(90deg,var(--blue),var(--orange));
}

.av4-buy-date{
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:16px;
    padding:11px 14px;
    border-radius:var(--radius-sm);
    background:var(--soft);
    color:var(--dark);
    font-size:14px;
    font-weight:600;
}

.av4-buy-date .av4-icon{ color:var(--blue); }

.av4-buy-date strong{
    margin-left:auto;
    padding:3px 9px;
    border-radius:20px;
    background:var(--orange-soft);
    color:#a85b00;
    font-size:12px;
    white-space:nowrap;
}

.av4-highlights{
    display:grid;
    gap:9px;
    margin:0 0 18px;
    padding:0 0 16px;
    border-bottom:1px solid var(--line);
    list-style:none;
}

.av4-highlights li{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:0;
    color:var(--text);
    font-size:14px;
    line-height:1.4;
}

.av4-highlights .av4-icon{
    margin-top:1px;
    color:var(--orange);
}

.av4-buy form.cart{ margin:0 0 10px !important; }

.av4-buy .quantity{ display:none !important; }

.av4-buy .single_add_to_cart_button{
    width:100% !important;
    min-height:52px;
    border:0 !important;
    border-radius:var(--radius-sm) !important;
    background:var(--orange) !important;
    color:#18212b !important;
    font-weight:800 !important;
    transition:transform .15s var(--ease), box-shadow .15s var(--ease) !important;
}

.av4-buy .single_add_to_cart_button:hover{
    transform:translateY(-1px);
    box-shadow:0 10px 24px rgba(243,161,38,.35);
}

.av4-buy-link{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    margin-top:14px;
    color:var(--blue) !important;
    font-size:13px;
    font-weight:700;
    text-decoration:none !important;
}

.av4-buy-link:hover{ text-decoration:underline !important; }


/* BUTTONS */

.av4-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-height:52px;
    padding:12px 22px;
    border-radius:var(--radius-sm);
    font-weight:750;
    line-height:1.2;
    text-align:center;
    text-decoration:none !important;
    transition:transform .15s var(--ease), box-shadow .15s var(--ease), background-color .15s, border-color .15s;
}

.av4-btn:hover{ transform:translateY(-1px); }

.av4-primary{
    margin-top:10px;
    background:var(--orange);
    color:#18212b !important;
}

.av4-primary:hover{ box-shadow:0 10px 24px rgba(243,161,38,.35); }

.av4-outline{
    margin-top:10px;
    border:2px solid var(--dark);
    color:var(--dark) !important;
}

.av4-outline:hover{
    background:var(--dark);
    color:#fff !important;
}

.av4-secondary{
    margin-top:9px;
    border:1px solid var(--line);
    color:var(--blue) !important;
}

.av4-secondary:hover{
    border-color:#25d366;
    background:#f1fcf5;
    color:#128c4b !important;
}

.av4-white{
    display:inline-flex;
    background:#fff;
    color:var(--dark) !important;
}

.av4-white:hover{ box-shadow:0 10px 26px rgba(0,0,0,.2); }


/* ============================================================
 * NAV
 * ============================================================ */

.av4-nav{
    position:sticky;
    top:0;
    z-index:30;
    border-bottom:1px solid var(--line);
    background:rgba(255,255,255,.94);
    -webkit-backdrop-filter:saturate(1.4) blur(12px);
    backdrop-filter:saturate(1.4) blur(12px);
}

.admin-bar .av4-nav{ top:32px; }

.av4-nav .av4-wrap{
    display:flex;
    gap:6px;
    overflow-x:auto;
    scrollbar-width:none;
}

.av4-nav .av4-wrap::-webkit-scrollbar{ display:none; }

.av4-nav a{
    position:relative;
    flex:none;
    padding:18px 12px 16px;
    color:var(--muted) !important;
    font-size:13px;
    font-weight:700;
    text-decoration:none !important;
    transition:color .15s;
}

.av4-nav a::after{
    content:"";
    position:absolute;
    left:12px;
    right:12px;
    bottom:0;
    height:3px;
    border-radius:3px 3px 0 0;
    background:var(--orange);
    transform:scaleX(0);
    transition:transform .25s var(--ease);
}

.av4-nav a:hover,
.av4-nav a.is-active{ color:var(--dark) !important; }

.av4-nav a:hover::after,
.av4-nav a.is-active::after{ transform:scaleX(1); }


/* ============================================================
 * AI NOTE
 * ============================================================ */

.av4-ai-note{
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin-top:14px;
    color:var(--muted);
    font-size:12px;
    line-height:1.5;
}

.av4-ai-note span{
    flex:0 0 auto;
    color:var(--orange);
    font-size:11px;
}

.av4-ai-note-hero{
    margin:0;
    padding:7px 14px;
    border-top:1px solid var(--line);
    background:#fbfcfd;
    color:#7a8490;
    font-size:10.5px;
    line-height:1.35;
}

.av4-ai-note-inline{
    margin-top:10px;
    padding:0 2px;
    font-size:11px;
}


/* ============================================================
 * AULA E STAGE
 * ============================================================ */

.av4-learning-path{ background:#fff; }

.av4-learning-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    margin-bottom:22px;
}

.av4-learning-head .av4-section-head{ margin-bottom:0; }

.av4-learning-total{
    flex:0 0 auto;
    padding:13px 18px;
    border-left:3px solid var(--orange);
    border-radius:0 var(--radius-sm) var(--radius-sm) 0;
    background:var(--soft);
}

.av4-learning-total small{
    display:block;
    margin-bottom:4px;
    color:var(--muted);
    font-size:9px;
    font-weight:850;
    letter-spacing:.1em;
}

.av4-learning-total strong{
    color:var(--dark);
    font-size:20px;
}

.av4-learning-split{
    display:flex;
    gap:4px;
    margin-bottom:22px;
    overflow:hidden;
    border-radius:var(--radius-sm);
    font-size:12px;
    font-weight:800;
}

.av4-learning-split span{
    min-width:84px;
    padding:10px 14px;
    white-space:nowrap;
}

.av4-split-class{
    background:var(--blue);
    color:#fff;
}

.av4-split-stage{
    background:var(--orange);
    color:var(--dark);
    text-align:right;
}

.av4-learning-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:18px;
}

.av4-learning-card{
    display:grid;
    grid-template-columns:48px 1fr;
    gap:18px;
    padding:28px;
    border:1px solid var(--line);
    border-top:3px solid var(--blue);
    border-radius:var(--radius);
    background:#fff;
}

.av4-learning-card-stage{
    border-top-color:var(--orange);
    background:#fffaf4;
}

.av4-learning-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:46px;
    height:46px;
    border-radius:50%;
    background:var(--blue-soft);
    color:var(--blue);
    font-size:22px;
}

.av4-learning-card-stage .av4-learning-icon{
    background:var(--orange-soft);
    color:#c46d00;
}

.av4-learning-kicker{
    margin-bottom:8px;
    color:var(--muted);
    font-size:10px;
    font-weight:850;
    letter-spacing:.11em;
}

.av4-learning-card h3{
    margin:0 0 8px;
    color:var(--dark);
    font-size:20px;
    line-height:1.25;
}

.av4-learning-hours{
    margin:0 0 8px;
    color:var(--blue);
    font-size:38px;
    font-weight:900;
    letter-spacing:-.03em;
    line-height:1;
}

.av4-learning-card-stage .av4-learning-hours{ color:#c46d00; }

.av4-learning-hours span{
    font-size:15px;
    font-weight:750;
    letter-spacing:0;
}

.av4-learning-meta{
    margin:8px 0 0;
    color:var(--muted);
    font-size:14px;
    line-height:1.6;
}

.av4-learning-meta strong{ color:var(--text); }

.av4-learning-desc{
    margin-top:12px;
    color:var(--muted);
    font-size:14.5px;
    line-height:1.65;
}

.av4-learning-desc p{ margin:0 0 8px; }


/* ============================================================
 * SKILLS
 * ============================================================ */

.av4-skills{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    margin-top:34px;
}

.av4-skills article{
    display:flex;
    gap:16px;
    padding:24px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
    transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s;
}

.av4-skills article:hover{
    transform:translateY(-2px);
    border-color:transparent;
    box-shadow:var(--shadow);
}

.av4-check{
    display:flex;
    flex:0 0 34px;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    border-radius:50%;
    background:var(--blue);
    color:#fff;
}

.av4-skills h3{
    margin:4px 0 6px;
    color:var(--dark);
    font-size:18px;
    line-height:1.3;
}

.av4-skills p{
    margin:0;
    color:var(--muted);
    line-height:1.6;
}


/* ============================================================
 * ACCORDION (programma + FAQ)
 * ============================================================ */

.av4-accordion-content,
.av4-faq-answer{
    display:grid;
    grid-template-rows:0fr;
    transition:grid-template-rows .3s var(--ease);
}

.av4-collapse-inner{
    min-height:0;
    overflow:hidden;
}

.av4-module.open .av4-accordion-content,
.av4-faq.open .av4-faq-answer{
    grid-template-rows:1fr;
}

.av4-plus{
    display:flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    border-radius:50%;
    background:var(--soft);
    color:var(--blue);
    font-size:22px;
    line-height:1;
    transition:transform .25s var(--ease), background-color .2s, color .2s;
}

.av4-module.open .av4-plus,
.av4-faq.open .av4-plus{
    transform:rotate(45deg);
    background:var(--orange);
    color:var(--dark);
}


/* PROGRAMMA */

.av4-program-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:8px;
}

.av4-program-meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin-bottom:26px;
}

.av4-program-meta span{
    padding:6px 12px;
    border-radius:30px;
    background:var(--soft);
    color:var(--dark);
    font-size:13px;
    font-weight:700;
}

.av4-expand-all{
    padding:6px 12px;
    border:1px solid var(--line);
    border-radius:30px;
    background:#fff;
    color:var(--blue);
    font-size:13px;
    font-weight:700;
    cursor:pointer;
}

.av4-expand-all:hover{ border-color:var(--blue); }

.av4-program{ border-top:1px solid var(--line); }

.av4-module{
    border-bottom:1px solid var(--line);
    transition:background-color .2s;
}

.av4-module.open{ background:linear-gradient(90deg,var(--soft),transparent); }

.av4-accordion-button{
    display:grid;
    grid-template-columns:52px 1fr auto 32px;
    gap:18px;
    align-items:center;
    width:100%;
    padding:22px 12px 22px 0;
    border:0;
    background:none;
    color:inherit;
    font:inherit;
    text-align:left;
    cursor:pointer;
}

.av4-module.is-static .av4-accordion-button{ cursor:default; }

.av4-module.is-static .av4-plus{ visibility:hidden; }

.av4-number{
    display:flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    border:1px solid var(--line);
    border-radius:50%;
    background:#fff;
    color:var(--blue);
    font-size:13px;
    font-weight:800;
}

.av4-module.open .av4-number{
    border-color:var(--blue);
    background:var(--blue);
    color:#fff;
}

.av4-module-title{
    color:var(--text);
    font-size:18px;
    font-weight:750;
    line-height:1.35;
}

.av4-hours{
    padding:4px 10px;
    border-radius:20px;
    background:var(--blue-soft);
    color:var(--blue);
    font-size:12.5px;
    font-weight:700;
    white-space:nowrap;
}

.av4-accordion-content .av4-collapse-inner{
    padding:0 56px 0 70px;
    color:var(--muted);
    line-height:1.7;
}

.av4-module.open .av4-accordion-content .av4-collapse-inner{ padding-bottom:24px; }


/* ============================================================
 * EDITORIAL IMAGE
 * ============================================================ */

.av4-editorial{ padding:10px 0 clamp(50px,7vw,80px); }

.av4-editorial-media{ margin:0; width:100%; }

.assome-course-v4 .av4-editorial img{
    display:block;
    width:100%;
    height:clamp(300px,36vw,540px);
    border-radius:var(--radius);
    object-fit:cover;
    object-position:center;
}


/* ============================================================
 * REQUISITI
 * ============================================================ */

.av4-two{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
}

.av4-two-single{ grid-template-columns:1fr; max-width:850px; }

.av4-two article{
    padding:clamp(26px,3vw,38px);
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
}

.av4-two article h2{ font-size:clamp(26px,3vw,32px); }

.av4-two article p{
    color:#44515d;
    font-size:17px;
    line-height:1.7;
}

.av4-card-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:48px;
    height:48px;
    margin-bottom:18px;
    border-radius:12px;
    background:var(--blue-soft);
    color:var(--blue);
    font-size:22px;
}


/* ============================================================
 * WHY
 * ============================================================ */

.av4-why{
    background:
        radial-gradient(circle at 100% 0%,var(--orange-soft),transparent 38%),
        var(--soft);
}

.av4-why-head{
    max-width:760px;
    margin-bottom:34px;
}

.av4-why-head .av4-section-head{ margin-bottom:14px; }

.av4-why-intro{ font-size:17px; }

.av4-why-intro p:last-child{ margin-bottom:0; }

.av4-why-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:18px;
}

/* 3 per riga; con 2, 4 o 5 elementi l'ultima riga si allarga per non lasciare buchi. */
.av4-why-card{ grid-column:span 2; }
.av4-why-grid[data-count="1"] .av4-why-card{ grid-column:1 / -1; }
.av4-why-grid[data-count="2"] .av4-why-card,
.av4-why-grid[data-count="4"] .av4-why-card{ grid-column:span 3; }
.av4-why-grid[data-count="5"] .av4-why-card:nth-child(n+4){ grid-column:span 3; }

.av4-why-card{
    position:relative;
    display:flex;
    flex-direction:column;
    padding:28px 26px 26px;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
    transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s;
}

.av4-why-card::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:3px;
    background:linear-gradient(90deg,var(--orange),transparent);
    opacity:0;
    transition:opacity .2s;
}

.av4-why-card:hover{
    transform:translateY(-3px);
    border-color:transparent;
    box-shadow:var(--shadow);
}

.av4-why-card:hover::after{ opacity:1; }

.av4-why-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    margin-bottom:18px;
    border-radius:12px;
    background:var(--blue);
    color:#fff;
    font-size:20px;
}

.av4-why-card h3{
    margin:0 0 10px;
    color:var(--dark);
    font-size:19px;
    font-weight:750;
    line-height:1.3;
    letter-spacing:-.01em;
}

.av4-why-text{
    color:var(--muted);
    font-size:15px;
    line-height:1.65;
}

.av4-why-text p{ margin:0 0 8px; }
.av4-why-text p:last-child{ margin-bottom:0; }

.av4-why-text strong{
    color:var(--dark);
    font-weight:750;
}


/* ============================================================
 * CERTIFICATE
 * ============================================================ */

.av4-certificate{ padding:10px 0 clamp(50px,7vw,80px); }

.av4-cert-card{
    position:relative;
    display:grid;
    grid-template-columns:76px 1fr;
    gap:26px;
    padding:clamp(28px,4vw,46px);
    overflow:hidden;
    border-radius:var(--radius);
    background:
        radial-gradient(circle at 100% 0%,rgba(243,161,38,.22),transparent 40%),
        var(--dark);
    color:#fff;
}

.av4-cert-card h2{
    margin:0 0 14px;
    color:#fff;
    font-size:clamp(26px,3.4vw,38px);
}

.av4-cert-card .av4-label{ color:var(--orange); }

.av4-cert-desc{
    color:rgba(255,255,255,.78);
    line-height:1.7;
}

.av4-cert-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:64px;
    height:64px;
    border-radius:50%;
    background:var(--orange);
    color:var(--dark);
    font-size:30px;
}


/* ============================================================
 * TEACHERS
 * ============================================================ */

.av4-teachers{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}

.av4-teachers article{
    display:grid;
    grid-template-columns:170px 1fr;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
}

.assome-course-v4 .av4-teachers > article:only-child{
    grid-column:1 / -1;
    grid-template-columns:240px 1fr;
}

.av4-teacher-image{
    min-height:230px;
    background:var(--soft);
}

.av4-teacher-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
}

.av4-teacher-image.is-placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,var(--blue),var(--deep));
    color:rgba(255,255,255,.9);
    font-size:42px;
    font-weight:800;
    letter-spacing:.02em;
}

.av4-teacher-body{ padding:26px; }

.av4-teacher-body h3{
    margin:0 0 5px;
    color:var(--dark);
    font-size:21px;
}

.av4-teacher-body > strong{
    display:block;
    margin-bottom:13px;
    color:var(--blue);
    font-size:13px;
}

.av4-teacher-body div{
    color:var(--muted);
    font-size:14.5px;
    line-height:1.65;
}


/* ============================================================
 * GALLERY + LIGHTBOX
 * ============================================================ */

.av4-gallery{
    padding:clamp(60px,8vw,90px) 0;
    background:var(--soft);
}

.av4-gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}

.av4-gallery-grid[data-count="1"]{ grid-template-columns:1fr; }
.av4-gallery-grid[data-count="2"],
.av4-gallery-grid[data-count="4"]{ grid-template-columns:repeat(2,1fr); }

.av4-gallery-item{
    position:relative;
    display:block;
    overflow:hidden;
    aspect-ratio:4/3;
    border-radius:var(--radius-sm);
    cursor:zoom-in;
}

.av4-gallery-item::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,transparent 55%,rgba(7,29,50,.45));
    opacity:0;
    transition:opacity .3s;
}

.av4-gallery-item:hover::after{ opacity:1; }

.av4-gallery-item img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s var(--ease);
}

.av4-gallery-item:hover img{ transform:scale(1.04); }

.av4-lightbox{
    position:fixed;
    inset:0;
    z-index:999999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:60px 70px;
    background:rgba(4,15,27,.94);
    opacity:0;
    visibility:hidden;
    transition:opacity .25s, visibility .25s;
}

.av4-lightbox.is-open{
    opacity:1;
    visibility:visible;
}

.av4-lightbox img{
    max-width:100%;
    max-height:100%;
    border-radius:6px;
    object-fit:contain;
    box-shadow:0 30px 80px rgba(0,0,0,.4);
}

.av4-lightbox button{
    position:absolute;
    display:flex;
    align-items:center;
    justify-content:center;
    width:48px;
    height:48px;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.12);
    color:#fff;
    font-size:22px;
    cursor:pointer;
    transition:background-color .2s;
}

.av4-lightbox button:hover{ background:rgba(255,255,255,.24); }

.av4-lightbox-close{ top:16px; right:16px; }
.av4-lightbox-prev{ left:14px; top:50%; transform:translateY(-50%); }
.av4-lightbox-next{ right:14px; top:50%; transform:translateY(-50%); }

.av4-lightbox-count{
    position:absolute;
    bottom:18px;
    left:50%;
    transform:translateX(-50%);
    color:rgba(255,255,255,.7);
    font-size:13px;
}


/* ============================================================
 * FAQ
 * ============================================================ */

.av4-faq-list{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
}

.av4-faq + .av4-faq{ border-top:1px solid var(--line); }

.av4-faq-button{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    width:100%;
    padding:22px 24px;
    border:0;
    background:none;
    color:var(--text);
    font:inherit;
    font-size:17px;
    font-weight:750;
    line-height:1.4;
    text-align:left;
    cursor:pointer;
}

.av4-faq-button:hover{ background:#fbfcfd; }

.av4-faq-button .av4-plus{ flex:none; }

.av4-faq-answer .av4-collapse-inner{
    padding:0 72px 0 24px;
    color:var(--muted);
    line-height:1.7;
}

.av4-faq.open .av4-faq-answer .av4-collapse-inner{ padding-bottom:22px; }


/* ============================================================
 * RELATED COURSES
 * ============================================================ */

.av4-related{
    padding:clamp(60px,8vw,90px) 0;
    background:#fff;
}

.av4-related-head{ margin-bottom:6px; }

.av4-related-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
}

.av4-related-card{
    position:relative;
    display:flex;
    flex-direction:column;
    min-width:0;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
    transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}

.av4-related-card:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow);
}

.av4-related-image{
    position:relative;
    display:block;
    overflow:hidden;
    aspect-ratio:16/10;
    background:var(--soft);
}

.av4-related-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s var(--ease);
}

.av4-related-card:hover .av4-related-image img{ transform:scale(1.04); }

.av4-related-placeholder{
    display:block;
    width:100%;
    height:100%;
    background:linear-gradient(135deg,var(--blue),var(--deep));
}

.av4-related-badge{
    position:absolute;
    top:12px;
    left:12px;
    padding:5px 10px;
    border-radius:20px;
    background:var(--orange);
    color:var(--dark);
    font-size:11px;
    font-weight:800;
    letter-spacing:.04em;
}

.av4-related-body{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:22px 24px 24px;
}

.av4-related-area{
    margin-bottom:9px;
    color:var(--blue);
    font-size:11px;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.av4-related-card h3{
    margin:0 0 12px;
    color:var(--dark);
    font-size:20px;
    line-height:1.3;
}

/* L'intera card è cliccabile tramite il link del titolo. */
.av4-related-card h3 a{
    color:inherit !important;
    text-decoration:none !important;
}

.av4-related-card h3 a::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
}

.av4-related-date{
    display:flex;
    align-items:center;
    gap:7px;
    margin:0 0 18px;
    color:var(--muted);
    font-size:13.5px;
}

.av4-related-bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-top:auto;
    padding-top:18px;
    border-top:1px solid var(--line);
}

.av4-related-price{
    color:var(--dark);
    font-size:17px;
    font-weight:850;
}

.av4-related-link{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--blue);
    font-size:13px;
    font-weight:800;
}

.av4-related-link .av4-icon{ transition:transform .2s var(--ease); }

.av4-related-card:hover .av4-related-link .av4-icon{ transform:translateX(4px); }


/* ============================================================
 * CONTACT
 * ============================================================ */

.av4-contact{
    padding:clamp(60px,8vw,90px) 0;
    background:
        radial-gradient(circle at 90% 10%,rgba(243,161,38,.16),transparent 35%),
        linear-gradient(135deg,var(--deep),var(--blue));
    color:#fff;
    scroll-margin-top:70px;
}

.av4-contact-grid{
    display:grid;
    grid-template-columns:1fr .85fr;
    gap:clamp(36px,6vw,70px);
    align-items:center;
}

.av4-contact h2{
    margin:0 0 6px;
    color:#fff;
    font-size:clamp(32px,4vw,46px);
    line-height:1.1;
    letter-spacing:-.03em;
}

.av4-contact .av4-section-head{ margin-bottom:16px; }

.av4-contact p{
    max-width:520px;
    color:rgba(255,255,255,.78);
    font-size:17px;
    line-height:1.65;
}

.av4-contact-actions{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:14px 24px;
    margin-top:24px;
}

.av4-brochure{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:#fff !important;
    font-weight:700;
    text-decoration:none !important;
    border-bottom:1px solid rgba(255,255,255,.35);
    padding-bottom:2px;
}

.av4-brochure:hover{ border-color:var(--orange); }

.av4-form,
.av4-contact-summary{
    padding:32px;
    border-radius:var(--radius);
    background:#fff;
    color:var(--text);
    box-shadow:var(--shadow-lg);
}

.av4-form h3,
.av4-contact-summary h3{
    margin:6px 0 16px;
    color:var(--dark);
    font-size:24px;
    line-height:1.25;
}

.av4-contact-summary small{
    color:var(--muted);
    font-size:11px;
    font-weight:800;
    letter-spacing:.1em;
}

.av4-contact-summary p{
    display:flex;
    justify-content:space-between;
    gap:16px;
    max-width:none;
    margin:0;
    padding:12px 0;
    border-top:1px solid var(--line);
    color:var(--muted);
    font-size:14px;
}

.av4-contact-summary strong{
    color:var(--text);
    text-align:right;
}

.av4-contact-summary .av4-btn{ margin-top:18px; }


/* ============================================================
 * PREZZO: RATE E OFFERTA, CORSO CONCLUSO
 * ============================================================ */

.av4-price-notes{
    display:flex;
    flex-direction:column;
    gap:3px;
    margin-top:6px;
    color:var(--muted);
    font-size:13px;
    font-weight:600;
    letter-spacing:0;
    line-height:1.4;
}

.av4-sale-until{ color:#c46d00; }

.av4-status-ended .av4-status-dot{ background:#a7b3c0; }

.av4-ended-box{
    margin-bottom:12px;
    padding:14px 16px;
    border-radius:var(--radius-sm);
    background:var(--orange-soft);
    color:var(--text);
    font-size:14px;
    line-height:1.5;
}

.av4-ended-box strong{ display:block; color:var(--dark); }


/* ============================================================
 * VIDEO (facciata: l'iframe si carica solo al clic)
 * ============================================================ */

.av4-video{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:16px;
    overflow:hidden;
    aspect-ratio:16/9;
    border-radius:var(--radius);
    background:linear-gradient(135deg,var(--blue),var(--deep)) center / cover no-repeat;
    box-shadow:var(--shadow);
}

.av4-video::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,rgba(7,29,50,.6),rgba(7,29,50,.1));
}

.av4-video-play{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:76px;
    height:76px;
    padding:0 0 0 4px;
    border:0;
    border-radius:50%;
    background:var(--orange);
    color:var(--dark);
    box-shadow:0 0 0 10px rgba(243,161,38,.25);
    cursor:pointer;
    transition:transform .2s var(--ease);
}

.av4-video-play:hover{ transform:scale(1.07); }

.av4-video-label{
    position:absolute;
    left:18px;
    bottom:14px;
    color:#fff;
    font-size:13px;
    font-weight:700;
}

.av4-video iframe{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:0;
}


/* ============================================================
 * SBOCCHI LAVORATIVI
 * ============================================================ */

.av4-careers{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
    gap:14px;
}

.av4-careers article{
    display:flex;
    gap:14px;
    padding:22px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
}

.av4-career-icon{
    display:flex;
    flex:none;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    border-radius:10px;
    background:var(--orange-soft);
    color:#c46d00;
}

.av4-careers h3{
    margin:6px 0 4px;
    color:var(--dark);
    font-size:17px;
    line-height:1.3;
}

.av4-careers p{
    margin:0;
    color:var(--muted);
    font-size:14.5px;
    line-height:1.55;
}


/* ============================================================
 * CONTATTI: INDIRIZZO E MODULO
 * ============================================================ */

.av4-address{
    display:flex;
    gap:12px;
    max-width:520px;
    margin-top:22px;
    padding:16px 18px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:var(--radius-sm);
    background:rgba(255,255,255,.06);
}

.av4-address .av4-icon{
    margin-top:2px;
    color:var(--orange);
    font-size:20px;
}

.av4-address strong,
.av4-address span{
    display:block;
    color:#fff;
}

.av4-address span{
    color:rgba(255,255,255,.75);
    font-size:15px;
}

.av4-address a{
    display:inline-block;
    margin-top:6px;
    color:var(--orange) !important;
    font-size:14px;
    font-weight:700;
    text-decoration:none !important;
}



/* ============================================================
 * TESTIMONIALS
 * ============================================================ */

.av4-testimonials{
    background:
        radial-gradient(circle at 0% 0%,var(--orange-soft),transparent 40%),
        #fff;
}

.av4-testimonial-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
}

.av4-testimonial-grid[data-count="1"]{ grid-template-columns:minmax(0,760px); }
.av4-testimonial-grid[data-count="2"]{ grid-template-columns:repeat(2,minmax(0,1fr)); }

.av4-testimonial{
    display:flex;
    flex-direction:column;
    margin:0;
    padding:28px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
    box-shadow:0 10px 30px rgba(10,41,71,.05);
}

.av4-testimonial-mark{
    display:flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    margin-bottom:16px;
    border-radius:50%;
    background:var(--orange);
    color:var(--dark);
    font-size:18px;
}

.av4-testimonial blockquote{
    flex:1;
    margin:0 0 22px;
    padding:0;
    border:0;
    color:var(--text);
    font-size:16.5px;
    font-style:normal;
    line-height:1.7;
}

.av4-testimonial blockquote p{ margin:0 0 10px; }

.av4-testimonial figcaption{
    display:flex;
    align-items:center;
    gap:12px;
    padding-top:18px;
    border-top:1px solid var(--line);
}

.av4-testimonial-avatar{
    display:flex;
    flex:none;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:50%;
    background:var(--blue);
    color:#fff;
    font-weight:800;
}

.av4-testimonial figcaption strong{
    display:block;
    color:var(--dark);
    font-size:15px;
}

.av4-testimonial figcaption small{
    display:block;
    color:var(--muted);
    font-size:13px;
}


/* ============================================================
 * BARRA ISCRIZIONE (fissa in basso, mobile e desktop)
 * ============================================================ */

.av4-mobile-bar{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:9990;
    display:flex;
    align-items:center;
    gap:18px;
    padding:12px max(24px, calc((100% - 1180px) / 2)) calc(12px + env(safe-area-inset-bottom));
    border-top:1px solid var(--line);
    background:rgba(255,255,255,.97);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    box-shadow:0 -10px 30px rgba(10,41,71,.1);
    transform:translateY(110%);
    transition:transform .3s var(--ease);
}

.av4-mobile-bar.is-visible{ transform:none; }

.av4-mobile-bar-title{
    flex:1;
    min-width:0;
}

.av4-mobile-bar-title strong{
    display:block;
    overflow:hidden;
    color:var(--dark);
    font-size:16px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.av4-mobile-bar-title small,
.av4-mobile-bar-price small{
    display:block;
    overflow:hidden;
    color:var(--muted);
    font-size:12px;
    font-weight:600;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.av4-mobile-bar-price{
    min-width:0;
    text-align:right;
}

.av4-mobile-bar-price strong{
    color:var(--dark);
    font-size:19px;
    line-height:1.2;
}

.av4-mobile-bar-price del{ font-size:12px; opacity:.5; }
.av4-mobile-bar-price ins{ text-decoration:none; }

.av4-mobile-bar .av4-btn{
    flex:none;
    min-height:46px;
    margin:0;
    padding:10px 22px;
}

.av4-mobile-bar-wa{
    border:1px solid var(--line);
    color:#128c4b !important;
}

body.assome-course-page.av4-has-mobile-bar{ padding-bottom:76px; }


/* ============================================================
 * ENROLLMENT MODAL
 * ============================================================ */

.av4-enrollment-modal{
    position:fixed;
    inset:0;
    z-index:999999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:28px;
}

.av4-enrollment-modal.is-open{
    display:flex;
    animation:av4-fade .2s ease;
}

.av4-enrollment-modal.is-open .av4-enrollment-dialog{ animation:av4-rise .3s var(--ease); }

.av4-enrollment-backdrop{
    position:absolute;
    inset:0;
    background:rgba(7,29,50,.72);
    -webkit-backdrop-filter:blur(7px);
    backdrop-filter:blur(7px);
}

.av4-enrollment-dialog{
    position:relative;
    z-index:1;
    width:min(720px,100%);
    max-height:min(88vh,900px);
    overflow:auto;
    overscroll-behavior:contain;
    padding:30px;
    border-radius:18px;
    background:#fff;
    box-shadow:0 34px 90px rgba(0,0,0,.28);
}

.av4-enrollment-close{
    position:sticky;
    top:0;
    float:right;
    z-index:3;
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    margin:-8px -8px 0 16px;
    padding:0;
    border:0;
    border-radius:50%;
    background:var(--soft);
    color:var(--dark);
    font-size:20px;
    cursor:pointer;
    transition:background-color .2s, transform .2s;
}

.av4-enrollment-close:hover{
    background:var(--orange);
    transform:rotate(90deg);
}

.av4-enrollment-heading{
    padding:2px 48px 18px 0;
    border-bottom:1px solid var(--line);
}

.av4-enrollment-heading h2{
    margin:0;
    color:var(--dark);
    font-size:clamp(26px,4vw,36px);
    line-height:1.12;
}

.av4-enrollment-content .assome-v4-enrollment{
    margin:22px 0 0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:#fff !important;
    box-shadow:none !important;
}

.av4-enrollment-content .assome-v4-enrollment h3{ font-size:24px; }

body.av4-modal-open{ overflow:hidden; }


/* ============================================================
 * ANIMATIONS
 * ============================================================ */

@keyframes av4-fade{ from{opacity:0} to{opacity:1} }
@keyframes av4-rise{ from{opacity:0;transform:translateY(18px) scale(.98)} to{opacity:1;transform:none} }
@keyframes av4-pulse{ 50%{opacity:.35} }

.av4-reveal{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .6s var(--ease), transform .6s var(--ease);
}

.av4-reveal.is-visible{
    opacity:1;
    transform:none;
}

@media (prefers-reduced-motion:reduce){
    .assome-course-v4 *,
    .assome-course-v4 *::before,
    .assome-course-v4 *::after{
        animation:none !important;
        transition:none !important;
    }
    .av4-reveal{ opacity:1; transform:none; }
}


/* ============================================================
 * TRUE FULL WIDTH — SOLO SCHEDE ASSOME
 * ============================================================ */

body.assome-course-page .site-content,
body.assome-course-page .site-content > .ast-container,
body.assome-course-page .content-area,
body.assome-course-page #primary,
body.assome-course-page .site-main,
body.assome-course-page .woocommerce,
body.assome-course-page div.product{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
}

/* overflow-x:clip (non hidden) mantiene funzionante la nav sticky. */
body.assome-course-page .assome-course-v4{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    overflow-x:clip;
}

body.assome-course-page .assome-course-v4 > section,
body.assome-course-page .assome-course-v4 > nav{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
}


/* REMOVE STANDARD WC */

body.assome-course-page .product.type-product > .woocommerce-product-gallery,
body.assome-course-page .product.type-product > .summary,
body.assome-course-page .product.type-product > .woocommerce-tabs,
body.assome-course-page .product.type-product > .related,
body.assome-course-page .product.type-product > .upsells{
    display:none !important;
}


/* ============================================================
 * PANORAMICA: componente autonomo, protetto dagli stili del tema.
 * ============================================================ */

.assome-course-v4 #panoramica .assome-cp-overview{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:56px !important;
}
.assome-course-v4 #panoramica .assome-cp-overview::before,
.assome-course-v4 #panoramica .assome-cp-overview::after{content:none !important;display:none !important}
.assome-course-v4 #panoramica .assome-cp-overview > .assome-cp-overview-text,
.assome-course-v4 #panoramica .assome-cp-overview > .assome-cp-overview-media{
    flex:0 0 calc((100% - 56px) / 2) !important;
    width:calc((100% - 56px) / 2) !important;
    max-width:calc((100% - 56px) / 2) !important;
    min-width:0 !important;
    position:static !important;
    float:none !important;
    transform:none !important;
    margin:0 !important;
    padding:0 !important;
    align-self:flex-start !important;
}
.assome-course-v4 #panoramica .assome-cp-overview-text{order:0 !important}
.assome-course-v4 #panoramica .assome-cp-overview-media{order:1 !important}
.assome-course-v4 #panoramica .assome-cp-overview-photo{
    display:block !important;
    position:static !important;
    width:100% !important;
    min-height:0 !important;
    height:auto !important;
    margin:0 !important;
    padding:0 !important;
    line-height:0;
    aspect-ratio:var(--av4-overview-ratio,16 / 9);
    overflow:hidden;
    border-radius:var(--radius);
    background:transparent;
    box-shadow:var(--shadow);
}
.assome-course-v4 #panoramica .assome-cp-overview-photo img{
    display:block !important;
    position:static !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    transform:none !important;
    aspect-ratio:var(--av4-overview-ratio,16 / 9) !important;
    contain-intrinsic-size:none !important;
    object-fit:contain !important;
    object-position:center !important;
}
.assome-course-v4 #panoramica .assome-cp-overview-caption{
    margin:12px 0 0;
    color:var(--muted);
    font-size:11px;
    line-height:1.5;
    text-align:center;
    overflow-wrap:break-word;
}
.assome-course-v4 #panoramica .assome-cp-overview-caption span{color:var(--orange)}
.assome-course-v4 #panoramica .assome-cp-overview-text .av4-rich{
    text-align:justify;
    -webkit-hyphens:auto;
    hyphens:auto;
    overflow-wrap:break-word;
}
.assome-course-v4 #panoramica .assome-cp-overview-text .av4-rich p{margin:0 0 1.15em}
.assome-course-v4 #panoramica .assome-cp-overview-text .av4-rich p:last-child{margin-bottom:0}
.assome-course-v4 #panoramica .assome-cp-overview-text .av4-rich ul,
.assome-course-v4 #panoramica .assome-cp-overview-text .av4-rich ol{text-align:left}
.assome-course-v4 #panoramica .assome-cp-overview-text-only > .assome-cp-overview-text{
    flex-basis:100% !important;width:100% !important;max-width:850px !important;
}


/* ============================================================
 * RESPONSIVE
 * ============================================================ */

@media(max-width:1024px){

    .av4-related-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }

    .av4-teachers{ grid-template-columns:1fr; }

    .av4-testimonial-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }

    .av4-why-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
    .av4-why-grid .av4-why-card,
    .av4-why-grid[data-count] .av4-why-card{ grid-column:auto; }
    .av4-why-grid[data-count="1"] .av4-why-card,
    .av4-why-grid[data-count="3"] .av4-why-card:last-child,
    .av4-why-grid[data-count="5"] .av4-why-card:last-child{ grid-column:1 / -1; }
}

@media(max-width:900px){

    .av4-wrap{ width:calc(100% - 32px); }

    .av4-hero-grid,
    .av4-contact-grid{
        grid-template-columns:1fr;
    }

    .av4-buy{
        max-width:none;
        justify-self:stretch;
    }

    .av4-learning-head,
    .av4-program-head{
        align-items:flex-start;
        flex-direction:column;
        gap:16px;
    }

    .av4-program-meta{ margin-bottom:20px; }

    .av4-skills,
    .av4-two{
        grid-template-columns:1fr;
    }

    .av4-gallery-grid,
    .av4-gallery-grid[data-count]{
        grid-template-columns:repeat(2,1fr);
    }

    .av4-gallery-grid[data-count="1"]{ grid-template-columns:1fr; }

    .assome-course-v4 #panoramica .assome-cp-overview{
        flex-direction:column !important;gap:28px !important;
    }
    .assome-course-v4 #panoramica .assome-cp-overview > .assome-cp-overview-text,
    .assome-course-v4 #panoramica .assome-cp-overview > .assome-cp-overview-media{
        flex:0 0 auto !important;width:100% !important;max-width:100% !important;
    }
    .assome-course-v4 #panoramica .assome-cp-overview-text .av4-rich{
        text-align:left;-webkit-hyphens:none;hyphens:none;
    }

    .av4-testimonial-grid,
    .av4-testimonial-grid[data-count]{
        grid-template-columns:1fr;
    }


    .av4-why-grid{ grid-template-columns:1fr; }
    .av4-why-grid .av4-why-card,
    .av4-why-grid[data-count] .av4-why-card{ grid-column:auto !important; }

    .av4-form{ padding:24px 18px; }

    /* Barra iscrizione: su mobile solo prezzo e pulsanti */
    .av4-mobile-bar{
        gap:10px;
        padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    }

    .av4-mobile-bar-title{ display:none; }

    .av4-mobile-bar-price{
        flex:1;
        text-align:left;
    }

    .av4-mobile-bar-price strong{ font-size:18px; }

    .av4-mobile-bar .av4-btn{ padding:10px 16px; }

    .av4-mobile-bar-wa{ padding:10px 13px !important; }

    .av4-mobile-bar-wa span{ display:none; }
}

@media(max-width:782px){
    .admin-bar .av4-nav{ top:46px; }
}

@media(max-width:600px){

    .admin-bar .av4-nav{ top:0; }

    .av4-wrap{ width:calc(100% - 28px); }

    .av4-hero h1{ font-size:36px; }

    .av4-hero-facts{
        grid-template-columns:1fr 1fr;
        gap:8px;
        margin-top:24px;
    }

    .av4-hero-fact{
        flex-direction:column;
        align-items:flex-start;
        gap:8px;
        padding:12px;
    }

    .av4-hero-fact-icon{ width:32px; height:32px; }

    .av4-buy-body{ padding:20px; }

    .av4-learning-card{
        grid-template-columns:1fr;
        padding:22px;
    }

    .av4-related-grid,
    .av4-gallery-grid,
    .av4-gallery-grid[data-count]{
        grid-template-columns:1fr;
    }

    .av4-accordion-button{
        grid-template-columns:40px 1fr 32px;
        gap:12px;
    }

    .av4-number{ width:38px; height:38px; }

    .av4-hours{ display:none; }

    .av4-accordion-content .av4-collapse-inner{ padding:0 8px 0 52px; }

    .av4-faq-button{ padding:18px; font-size:16px; }

    .av4-faq-answer .av4-collapse-inner{ padding:0 18px; }

    .av4-teachers article,
    .assome-course-v4 .av4-teachers > article:only-child{
        grid-template-columns:1fr;
    }

    .av4-teacher-image{ min-height:0; aspect-ratio:4/3; }

    /* Senza foto: banda bassa con iniziali invece di un grande riquadro vuoto. */
    .av4-teacher-image.is-placeholder{
        aspect-ratio:auto;
        height:84px;
        justify-content:flex-start;
        padding-left:26px;
        font-size:28px;
    }

    .av4-cert-card{ grid-template-columns:1fr; }

    /* Perché: icona accanto al titolo, card più compatte */
    .av4-why-card{
        display:grid;
        grid-template-columns:38px 1fr;
        column-gap:14px;
        padding:20px;
    }

    .av4-why-icon{
        width:38px;
        height:38px;
        margin:0;
        border-radius:10px;
        font-size:17px;
    }

    .av4-why-card h3{
        align-self:center;
        margin:0;
        font-size:17px;
    }

    .av4-why-text{
        grid-column:1 / -1;
        margin-top:10px;
    }

    .av4-why .av4-narrow{ padding-left:18px; }

    .assome-course-v4 .av4-editorial img{
        height:auto;
        aspect-ratio:4 / 3;
    }

    .av4-lightbox{ padding:60px 10px; }

    .av4-lightbox-prev,
    .av4-lightbox-next{ top:auto; bottom:12px; transform:none; }

    .av4-enrollment-modal{
        align-items:flex-end;
        padding:0;
    }

    .av4-enrollment-dialog{
        width:100%;
        max-height:92vh;
        padding:22px 16px 24px;
        border-radius:18px 18px 0 0;
    }
}