/* Card hover effect */
.card {
    transition: transform 0.3s, box-shadow 0.3s;
    opacity: 0;
}

.card:hover {
    transform: scale(1.05);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.3);
}

/* Fade-in animation */
.fade-in {
    animation: fadeInUp 1s forwards;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Hero text animation */
.hero-title {
    animation: heroPop 1.2s cubic-bezier(.68, -0.55, .27, 1.55) forwards;
    opacity: 0;
}

@keyframes heroPop {
    0% {
        opacity: 0;
        transform: scale(0.8);
    }

    60% {
        opacity: 1;
        transform: scale(1.1);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* Banner fade-in */
.banner-fade {
    opacity: 0;
    animation: fadeInUp 1s 0.5s forwards;
}

/* Tagline hero migliorata */
.hero-title {
    line-height: 1.15;
}

.hero-title .hero-kicker {
    font-size: clamp(1rem, 1.1vw + .9rem, 1.35rem);
    letter-spacing: .28em;
    text-transform: uppercase;
    font-weight: 500;
    opacity: .85;
}

.hero-title .hero-main {
    font-size: clamp(2.2rem, 3.6vw + 1rem, 4.2rem);
    font-weight: 700;
    background: linear-gradient(100deg,
            #fff7d1 0%,
            #ffe6c9 18%,
            #ffd7e3 36%,
            #efd6ff 54%,
            #d6ecff 72%,
            #d7f8ef 90%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 3px 8px rgba(0, 0, 0, .28));
}

/* Hero title scrolled effect */
.hero-title--scrolled {
    font-size: 2rem !important;
    transform: translateY(-60px) scale(0.7);
    transition: font-size 0.7s cubic-bezier(.68, -0.55, .27, 1.55), transform 0.7s cubic-bezier(.68, -0.55, .27, 1.55), opacity 0.7s;
    opacity: 0.85;
}

/* Hero section and background */
.hero-section {
    position: relative;
    height: 60vh;
    min-height: 400px;
    overflow: hidden;
}

.hero-section img {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 60vh;
    min-height: 400px;
    object-fit: cover;
    filter: brightness(0.5);
    z-index: 0;
    pointer-events: none;
}

.hero-content {
    position: relative;
    z-index: 1;
    top: 50%;
    transform: translateY(-50%);
    text-align: center;
    color: #fff;
}

/* Sfondo bianco per il resto della pagina */
main,
footer,
.banner-fade,
.row.g-4,
.card,
.navbar {
    background: #fff;
}

.navbar-brand img {
    width: 150px !important;
    height: 100px !important;
    object-fit: contain;
}

/* Mini sezione team */
.team-gallery .main-member img {
    /* uniformata alla dimensione delle altre */
    width: 120px;
    height: 120px;
    object-fit: cover;
}

.team-gallery .sub-member img {
    width: 120px;
    height: 120px;
    object-fit: cover;
}

.team-gallery img {
    transition: transform .3s ease, box-shadow .3s ease;
}

.team-gallery img:hover {
    transform: scale(1.05);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, .35);
}

@media (max-width: 576px) {
    .team-gallery .main-member img {
        width: 180px;
        height: 180px;
    }

    .team-gallery .sub-member img {
        width: 100px;
        height: 100px;
    }
}

/* HERO DINAMICA */
.hero-section {
    height: clamp(340px, 55vh, 560px);
    overflow: hidden;
    --heroOverlayA: rgba(0, 0, 0, .55);
    --heroOverlayB: rgba(0, 0, 0, .15);
    --heroScale: 1;
}

.hero-section::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 70% 35%, rgba(255, 255, 255, .08), transparent 60%),
        linear-gradient(115deg, var(--heroOverlayA), var(--heroOverlayB));
    mix-blend-mode: overlay;
    opacity: .9;
    animation: overlayPulse 9s ease-in-out infinite alternate;
    pointer-events: none;
    z-index: 0;
}

@keyframes overlayPulse {
    0% {
        opacity: .75;
        filter: brightness(.95) saturate(1);
    }

    100% {
        opacity: 1;
        filter: brightness(1.05) saturate(1.15);
    }
}

.hero-bg {
    animation: kenBurns 18s ease-in-out infinite alternate;
    transform-origin: center;
    will-change: transform;
    filter: brightness(.55) contrast(1.05);
}

@keyframes kenBurns {
    0% {
        transform: scale(1) translateY(0);
    }

    100% {
        transform: scale(1.15) translateY(-3%);
    }
}

.hero-title {
    opacity: 0;
    transform: translateY(25px) scale(.97);
    letter-spacing: .5px;
    animation: heroTitleIn 1.4s cubic-bezier(.25, .9, .25, 1.1) .3s forwards;
    position: relative;
}

.hero-title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -12px;
    width: 0;
    height: 3px;
    background: linear-gradient(90deg, #ffc107, #0dcaf0, #6610f2);
    border-radius: 2px;
    transform: translateX(-50%);
    animation: underlineGrow 1.2s .9s ease forwards;
}

@keyframes heroTitleIn {
    0% {
        opacity: 0;
        transform: translateY(35px) scale(.92);
    }

    55% {
        opacity: 1;
        transform: translateY(-4px) scale(1.01);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes underlineGrow {
    to {
        width: 230px;
    }
}

.scroll-indicator {
    position: absolute;
    left: 50%;
    bottom: 14px;
    transform: translateX(-50%);
    color: #ffffff;
    font-size: 1.35rem;
    opacity: .75;
    animation: bounce 2.2s ease-in-out infinite;
    z-index: 2;
    cursor: default;
    user-select: none;
}

@keyframes bounce {

    0%,
    100% {
        transform: translate(-50%, 0);
    }

    50% {
        transform: translate(-50%, -12px);
    }
}

/* Effetto shrink / parallax su scroll */
.hero-section.dynamic-shrink {
    transition: height .6s ease;
}

.hero-section.is-shrunk {
    height: clamp(260px, 38vh, 420px);
}

@media (max-width: 576px) {
    .hero-title::after {
        width: 0;
    }

    @keyframes underlineGrow {
        to {
            width: 160px;
        }
    }
}

/* Bottone artistico sezione di impatto */
.btn-art-impact {
    background: linear-gradient(90deg, hsl(210, 50%, 48%) 0%, #3302e3 100%);
    color: #fff;
    letter-spacing: 1px;
    border-radius: 30px;
    box-shadow: 0 4px 16px rgba(255, 126, 95, 0.25), 0 1.5px 8px #feb47b;
    font-family: 'Montserrat', sans-serif;
    font-size: 1.25rem;
    transition: transform 0.18s, box-shadow 0.18s;
}

.btn-art-impact:hover,
.btn-art-impact:focus {
    transform: scale(1.08) rotate(-2deg);
    box-shadow: 0 0 24px #902206, 0 2px 12px #390d01;
}

/* Banner Sostienici e card ombre */
.banner-fade,
.card.shadow-lg {
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18), 0 2px 8px #222;
    border: 1.5px solid #222;
}

/* ===== Statuto PDF section (semplice + HD) ===== */
.statuto-section .statuto-card {
  background: linear-gradient(180deg, #ffffff 0%, #f7f8fa 100%);
  border: 1px solid #e8eaee;
  border-radius: 16px;
  box-shadow: 0 8px 22px rgba(0,0,0,.06);
}
.statuto-section .statuto-copy h3 { letter-spacing: .2px; }
.statuto-section .statuto-copy p { color: #6b7280; }
.statuto-section .btn-statuto {
  border-radius: 999px;
  padding: .65rem 1.1rem;
  border: 1px solid #1f2937;
}

/* Pixel camera SVG: dimensioni e animazioni */
.statuto-art svg { width: 140px; height: auto; image-rendering: pixelated; }
.statuto-art .flash { animation: flashPulse 4s ease-in-out infinite; }
@keyframes flashPulse {
  0% { opacity: 0; }
  8% { opacity: 1; }
  18% { opacity: 0; }
  100% { opacity: 0; }
}

/* Responsive */
@media (max-width: 575.98px) {
  .statuto-section .statuto-card { padding: 1rem !important; }
  .statuto-art { display: none; }
}

/* Responsive layout for main sections and cards */
@media (max-width: 991.98px) {

    .row.g-4>.col-md-4,
    .row.g-4>.col-lg-4 {
        flex: 0 0 100%;
        max-width: 100%;
        margin-bottom: 1.5rem;
    }

    .card {
        margin-bottom: 1.5rem;
    }

    .navbar-nav.flex-row {
        flex-direction: column !important;
        align-items: flex-start !important;
        width: 100%;
    }

    .navbar-collapse {
        background: #111;
        border-radius: 0 0 12px 12px;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
        padding: 1rem 0.5rem;
    }

    .navbar-toggler {
        border: none;
        background: transparent;
        font-size: 1.7rem;
        color: #fff;
        margin-right: 0.5rem;
    }

    .navbar-toggler:focus {
        outline: none;
        box-shadow: none;
    }

    .navbar-nav .nav-link {
        padding: 0.7rem 1rem;
        font-size: 1.1rem;
        border-radius: 8px;
        margin-bottom: 0.2rem;
        width: 100%;
    }

    .navbar .ms-auto {
        margin-top: 1rem;
        width: 100%;
        text-align: center;
    }

    .hero-section {
        height: 30vh !important;
        min-height: 160px !important;
    }

    .banner-fade,
    .bg-primary.banner-fade {
        padding: 1.5rem 0.5rem !important;
    }

    .container.my-5 {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }

    .col-lg-10,
    .col-lg-8 {
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .col-md-5,
    .col-md-7 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .ps-md-5,
    .pe-md-5 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .btn-art-impact {
        font-size: 1rem;
        padding: 0.75rem 1.5rem;
    }

    .img-fluid {
        max-width: 100% !important;
        height: auto !important;
    }

    .navbar-brand img {
        width: 110px !important;
        height: 70px !important;
    }
}

/* Extra small devices */
@media (max-width: 575.98px) {
    .hero-section {
        height: 22vh !important;
        min-height: 100px !important;
    }

    .display-4 {
        font-size: 2rem !important;
    }

    .card-title {
        font-size: 1.2rem !important;
    }

    .btn-art-impact {
        font-size: 0.95rem;
        padding: 0.6rem 1rem;
    }

    .navbar-brand img {
        width: 80px !important;
        height: 50px !important;
    }

    .banner-fade,
    .bg-primary.banner-fade {
        padding: 1rem 0.2rem !important;
    }

    .container.my-5 {
        padding-left: 0.2rem;
        padding-right: 0.2rem;
    }
}

/* Responsive for social section */
@media (max-width: 991.98px) {

    .col-md-5.text-center.d-flex.flex-column.align-items-end.pe-md-5,
    .col-md-7.d-flex.flex-column.align-items-start.ps-md-5 {
        align-items: center !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        text-align: center !important;
    }

    .col-md-7 h4,
    .col-md-7 p {
        text-align: center !important;
    }

    .gap-5 {
        gap: 1.2rem !important;
    }
}

/* Responsive for images in social section */
@media (max-width: 575.98px) {
    .d-flex.justify-content-center.align-items-center.gap-5.mb-4.w-100>div {
        margin-bottom: 1rem;
    }

    .d-flex.justify-content-center.align-items-center.gap-5.mb-4.w-100 {
        flex-direction: column !important;
        gap: 0.5rem !important;
    }
}

/* Responsive footer */
@media (max-width: 767.98px) {
    footer .row {
        flex-direction: column !important;
    }

    footer .col-md-6 {
        margin-bottom: 1rem !important;
    }

    footer img {
        width: 100px !important;
        height: 60px !important;
    }
}

/* Responsive for banner image */
@media (max-width: 575.98px) {
    .banner-fade img {
        max-height: 100px !important;
    }
}

/* ===== PDF SECTION RED REFINEMENT ===== */
.pdf-section {
    background: radial-gradient(circle at 30% 25%, #3a0000 0%, #190000 55%, #0e0e0e 100%);
    box-shadow: 0 10px 40px -10px rgba(120, 0, 0, .55);
    border: 1px solid rgba(255, 80, 60, .18);
}

.pdf-section .pdf-anim-fill {
    background:
        radial-gradient(circle at 28% 32%, rgba(255, 85, 60, .55), rgba(255, 85, 60, 0) 60%),
        radial-gradient(circle at 72% 68%, rgba(140, 0, 0, .45), rgba(140, 0, 0, 0) 65%),
        linear-gradient(135deg, #550000, #280000 55%, #120000 100%);
    animation: pdfBGShift 18s linear infinite;
}

.pdf-section .pdf-icon-wrapper.mega {
    opacity: .22;
    filter: drop-shadow(0 12px 32px rgba(255, 70, 50, .40));
}

.pdf-section .pdf-icon-wrapper.mega .spark {
    background: #ffe9e5;
    box-shadow: 0 0 32px 10px rgba(255, 140, 120, .55);
}

.pdf-section .pdf-content {
    background: linear-gradient(135deg, rgba(255, 255, 255, .14), rgba(255, 255, 255, .06));
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 1.25rem;
    position: relative;
    z-index: 2;
    margin: 1.25rem;
    padding: 1.5rem;
}

/* Mobile: nascondi la scrollbar ma mantieni lo scroll */
@media (max-width: 576px) {

    html,
    body {
        overflow: auto;
        /* mantiene lo scroll verticale */
        overflow-x: hidden;
        /* evita scroll orizzontale accidentale */
        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: none;
        /* IE/Edge legacy */
        scrollbar-width: none;
        /* Firefox */
    }

    /* WebKit (Chrome, Safari, Android) */
    html::-webkit-scrollbar,
    body::-webkit-scrollbar,
    *::-webkit-scrollbar {
        width: 0 !important;
        height: 0 !important;
        background: transparent !important;
    }
}



/* Smartphone: più spazio ai bordi */
@media (max-width: 575.98px) {

    .container,
    .container.my-5,
    .container-fluid {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    /* Navbar collassata più ariosa */
    .navbar-collapse {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }
}

/* Smartphone: centra la hero image e rimuovi il fixed */
@media (max-width: 575.98px) {
    .hero-section .hero-bg {
        position: absolute !important;
        inset: 0;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        object-fit: cover;
        object-position: center center !important;
    }
}

/* Smartphone: evita sovrapposizione dello scroll indicator con il testo */
@media (max-width: 575.98px) {
    .hero-content {
        top: 48% !important;
        transform: translateY(-48%) !important;
        padding-bottom: 64px !important;
        /* spazio dedicato allo scroll indicator */
    }

    .scroll-indicator {
        bottom: 6px !important;
        /* più vicino al bordo inferiore */
        font-size: 1.1rem !important;
        /* leggermente più piccolo su mobile */
        z-index: 1 !important;
        /* dietro al testo */
    }
}

/* Mobile: banner Sostienici con immagine full-width separata dal bottone */
@media (max-width: 575.98px) {
    .banner-fade {
        padding-left: 0 !important;
        padding-right: 0 !important;
        overflow: hidden;
        /* mantiene i bordi arrotondati del banner */
    }

    /* testo con padding laterale dedicato */
    .banner-fade .row>.col-md-8 {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    /* immagine: staccata dal bottone e a tutta larghezza */
    .banner-fade .row>.col-md-4 {
        padding: 0 !important;
    }

    .banner-fade .row>.col-md-4 img {
        display: block;
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        /* override dello stile inline */
        border-radius: 0 !important;
        margin-top: 0.75rem;
        /* spazio dal bottone */
    }
}

/* Mobile: immagine banner con bordi più rotondi e spazio laterale interno */
@media (max-width: 575.98px) {
    .banner-fade .row>.col-md-4 img {
        width: calc(100% - 1.5rem) !important;
        /* lascia spazio ai lati */
        margin: 1rem .75rem 0 !important;
        /* top + spazio sinistra/destra */
        border-radius: 16px !important;
        /* bordi più rotondi */
    }
}

/* Mobile: estetica banner Sostienici con bordi arrotondati e spazio laterale */
@media (max-width: 575.98px) {
    .banner-fade {
        margin-left: 0.75rem !important;
        margin-right: 0.75rem !important;
        border-radius: 18px !important;
    }

    .banner-fade .row>.col-md-4 img {
        margin-top: 1rem !important;
        /* più spazio dal bottone */
    }
}

/* Main section: refresh visivo delle card (dinamico e meno plasticoso) */
.row.g-4 .card {
  position: relative;
  border-radius: 16px !important;
  overflow: hidden;
  transition: transform .22s ease, box-shadow .22s ease, filter .22s ease;
}

/* Mantieni i colori, ma con gradienti morbidi e profondità */
.row.g-4 .card.bg-primary {
  background: linear-gradient(135deg, #0d6efd 0%, #0b5ed7 100%) !important;
  border-color: rgba(255,255,255,.18) !important;
}
.row.g-4 .card.bg-success {
  background: linear-gradient(135deg, #198754 0%, #157347 100%) !important;
  border-color: rgba(255,255,255,.18) !important;
}
.row.g-4 .card.bg-warning {
  background: linear-gradient(135deg, #ffc107 0%, #ff9f05 100%) !important;
  border-color: rgba(0,0,0,.08) !important;
}


/* Annuncio APS */
.announcement-logo { background: radial-gradient(circle at center,#111,#000); }
.announcement-logo .logo-wrapper { position:relative; display:inline-block; cursor:pointer; }
.announcement-logo img { width:260px; max-width:80vw; height:auto; filter:drop-shadow(0 4px 12px rgba(0,0,0,.6)); transition:transform .4s ease; }
.announcement-logo .logo-wrapper:hover img { transform:scale(1.05); }
.notification-badge {
        position:absolute; top:-12px; right:-12px; width:46px; height:46px;
        background:#dc3545; color:#fff; font-weight:700; font-size:1.1rem;
        border-radius:50%; display:flex; align-items:center; justify-content:center;
        box-shadow:0 0 0 0 rgba(220,53,69,.6); animation:pulseBadge 1.6s infinite;
      }
      @keyframes pulseBadge {
        0% { box-shadow:0 0 0 0 rgba(220,53,69,.7); transform:scale(1); }
        60% { box-shadow:0 0 0 18px rgba(220,53,69,0); transform:scale(1.08); }
        100% { box-shadow:0 0 0 0 rgba(220,53,69,0); transform:scale(1); }
      }
      .letter-modal .modal-body { max-height:65vh; overflow-y:auto; line-height:1.5; }
      .letter-modal h5 { font-weight:700; }
      .letter-modal p { margin-bottom:1rem; }
      .letter-modal hr { margin:1.75rem 0; }
      @media (max-width: 576px){
        .notification-badge { width:40px; height:40px; font-size:1rem; }
      }

/* APS Focus (logo grande animato) */
.aps-focus {
  background:
    radial-gradient(circle at 68% 32%, rgba(255,110,70,.18), rgba(0,0,0,0) 60%),
    radial-gradient(circle at 28% 68%, rgba(70,140,255,.12), rgba(0,0,0,0) 62%),
    linear-gradient(140deg,#050506 0%,#0c1115 45%,#141c23 78%,#1c2731 100%);
  position:relative;
  color:#e7edf1;
  overflow:hidden;
}
.aps-focus::before {
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(160deg, rgba(255,255,255,.05) 0%, rgba(255,255,255,0) 55%),
    repeating-linear-gradient(120deg, rgba(255,255,255,.015) 0 2px, rgba(0,0,0,0) 2px 6px);
  mix-blend-mode:overlay;
  opacity:.6;
  pointer-events:none;
}
.aps-focus::after {
  content:"";
  position:absolute; inset:0;
  background: url("data:image/svg+xml,%3Csvg width='160' height='160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
  opacity:.22;
  animation: apsNoise 7s steps(8) infinite;
  pointer-events:none;
}
@keyframes apsNoise { to { transform:translate3d(0,0,0); } }

.aps-focus-title { color:#f6f8fa; text-shadow:0 2px 6px rgba(0,0,0,.6); }
.aps-focus p.small { color:#9fb1be !important; }

/* Logo trigger adattato al dark */
.aps-logo-trigger {
  background:
    radial-gradient(circle at 38% 34%, #1e2a33 0%, #121b22 62%, #0b1014 100%);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.04),
    0 14px 34px -10px rgba(0,0,0,.75),
    0 6px 16px -4px rgba(0,0,0,.65),
    0 0 0 8px rgba(255,255,255,.03);
}
.aps-logo-trigger::after {
  background: conic-gradient(from 0deg,
    rgba(255,160,60,.18),
    rgba(80,140,255,.22),
    rgba(255,160,60,.18));
  opacity:.35;
  filter:blur(.5px);
}
.aps-logo-trigger:hover {
  box-shadow:
    0 0 0 1px rgba(255,255,255,.07),
    0 18px 46px -12px rgba(0,0,0,.85),
    0 8px 22px -6px rgba(0,0,0,.7),
    0 0 0 10px rgba(255,255,255,.04);
}

.aps-core-logo {
  filter: drop-shadow(0 8px 20px rgba(0,0,0,.8)) drop-shadow(0 0 6px rgba(255,255,255,.12));
}

.aps-badge {
  display:none !important;
}

/* Pulizia animazioni legate solo al badge (non più necessarie) */
@keyframes badgeAura {}
@keyframes badgeAttention {}

/* Mobile tuning per dark */
@media (max-width:575.98px){
  .aps-focus { background:linear-gradient(150deg,#06080a,#121b22 65%,#1b2730); }
  .aps-focus p.small { font-size:.72rem; }
}

/* === APS FOCUS COMPACT OVERRIDES === */
.aps-focus {
  padding: 2.25rem 0;
}
.aps-focus-wrapper {
  max-width: 360px;
}
.aps-logo-trigger {
  width: 200px;
  height: 200px;
  max-width: 60vw;
  animation: apsPulse 8s ease-in-out infinite;
  box-shadow:
    0 8px 22px -10px rgba(0,0,0,.7),
    0 4px 10px -4px rgba(0,0,0,.55),
    0 0 0 4px rgba(255,255,255,.02);
}
.aps-logo-trigger:hover {
  transform: scale(1.035);
}
.aps-core-logo {
  width: 74%;
}
.aps-badge {
  width: 44px;
  height: 44px;
  font-size: .95rem;
  top: 10px;
  right: 14px;
  box-shadow: 0 3px 10px -2px rgba(0,0,0,.75), 0 0 0 0 rgba(255,80,50,.5);
}
@keyframes badgePulse {
  0% { transform:scale(1); box-shadow:0 3px 10px -2px rgba(0,0,0,.75),0 0 0 0 rgba(255,80,50,.5); }
  55% { transform:scale(1.1); box-shadow:0 5px 18px -6px rgba(0,0,0,.85),0 0 0 18px rgba(255,80,50,0); }
  100% { transform:scale(1); box-shadow:0 3px 10px -2px rgba(0,0,0,.75),0 0 0 0 rgba(255,80,50,0); }
}
.aps-focus-title {
  margin-top: 1rem !important;
  font-size: .95rem;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.aps-focus p.small {
  font-size: .7rem;
  letter-spacing: .08em;
  opacity: .85;
  margin-top: .15rem;
}

/* Spazi ridotti su mobile */
@media (max-width:575.98px){
  .aps-focus { padding: 1.75rem 0; }
  .aps-logo-trigger { width: 170px; height:170px; }
  .aps-badge { width:38px; height:38px; font-size:.8rem; }
  .aps-focus-title { font-size:.82rem; }
  .aps-focus p.small { font-size:.62rem; }
}

/* === APS BADGE ATTENTION OVERRIDES === */
.aps-badge {
  top:-12px !important;
  right:-12px !important;
  width:52px !important;
  height:52px !important;
  font-size:1.1rem !important;
  border:2px solid rgba(255,255,255,.45);
  background:
    radial-gradient(circle at 30% 28%, #fff 0%, rgba(255,255,255,.2) 38%, rgba(255,255,255,0) 70%),
    linear-gradient(145deg,#ff3d55,#ff8d2e);
  box-shadow:
    0 6px 18px -4px rgba(0,0,0,.85),
    0 0 0 0 rgba(255,90,55,.55),
    0 0 22px -2px rgba(255,120,70,.65);
  animation:
    badgePulse 2.1s ease-in-out infinite,
    badgeAttention 6s ease-in-out infinite;
  position:absolute;
  z-index:4;
}
.aps-badge::after {
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:50%;
  background:
    radial-gradient(circle, rgba(255,120,70,.55), rgba(255,120,70,0) 60%);
  opacity:.55;
  filter:blur(6px);
  animation: badgeAura 3.4s linear infinite;
  pointer-events:none;
}
@keyframes badgeAura {
  0%,100% { transform:scale(.9); opacity:.45; }
  50% { transform:scale(1.15); opacity:.75; }
}
@keyframes badgeAttention {
  0%,88%,100% { transform:scale(1) rotate(0deg); }
  90% { transform:scale(1.18) rotate(4deg); }
  92% { transform:scale(1.07) rotate(-3deg); }
  94% { transform:scale(1.14) rotate(2deg); }
  96% { transform:scale(1.06) rotate(-2deg); }
  98% { transform:scale(1.10) rotate(1deg); }
}

/* Mobile fine-tune */
@media (max-width:575.98px){
  .aps-badge {
    top:-10px !important;
    right:-10px !important;
    width:46px !important;
    height:46px !important;
    font-size:.95rem !important;
  }
  .aps-badge::after { inset:-6px; }
}