.spd-program { width:100%; margin:24px auto; text-align:center; }
.spd-program-link { display:block; width:100%; margin:0 auto; text-decoration:none !important; color:inherit !important; }
.spd-program-card {
    position:relative;
    width:100%;
    overflow:hidden;
    border-radius:20px;
    background-size:cover;
    background-position:center;
    box-shadow:0 12px 32px rgba(0,0,0,.18);
    transition:transform .18s ease, box-shadow .18s ease;
    container-type:inline-size;
}
a.spd-program-link:hover .spd-program-card,
a.spd-program-link:focus .spd-program-card { transform:translateY(-2px); box-shadow:0 16px 38px rgba(0,0,0,.22); }
.spd-overlay {
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:8%;
    box-sizing:border-box;
    background:linear-gradient(to bottom, rgba(255,255,255,.05), rgba(255,255,255,.03));
}
.spd-program-title {
    color:#0b3b82;
    font-weight:800;
    line-height:1.12;
    text-align:center;
    margin-bottom:2.4%;
    text-shadow:0 2px 0 rgba(255,255,255,.84), 0 3px 14px rgba(255,255,255,.60);
    font-size:clamp(26px,4vw,56px);
}
.spd-program-date {
    color:#0b3b82;
    font-weight:800;
    line-height:1.28;
    text-align:center;
    text-shadow:0 2px 0 rgba(255,255,255,.82), 0 3px 14px rgba(255,255,255,.58);
    max-width:90%;
    font-size:clamp(17px,2.8vw,36px);
}
.spd-program-button {
    margin-top:4%;
    display:inline-flex;
    align-items:center;
    gap:.55em;
    background:linear-gradient(180deg,#1687e8,#0755b8);
    color:#fff;
    padding:.65em 1.15em;
    border-radius:999px;
    font-weight:750;
    line-height:1.15;
    box-shadow:0 6px 18px rgba(0,0,0,.16);
    font-size:clamp(14px,2vw,26px);
}
.spd-arrow { font-size:1.35em; line-height:1; }
.spd-admin-notice { max-width:900px; margin:16px auto; padding:12px 14px; border:1px dashed #8c8f94; border-radius:8px; background:#f6f7f7; }
@supports (container-type:inline-size) {
    .spd-program-title { font-size:clamp(20px,5.3cqw,58px); }
    .spd-program-date { font-size:clamp(14px,3.2cqw,36px); }
    .spd-program-button { font-size:clamp(12px,2.2cqw,24px); }
}
@media (max-width:700px) {
    .spd-program-card { border-radius:14px; }
    .spd-overlay { padding:8% 7%; }
    .spd-program-date { max-width:95%; }
}

/* Ελαφριά εποχικά animations: μόνο transforms/opacity, χωρίς GIF ή JavaScript. */
.spd-overlay { z-index:2; }
.spd-season-animation {
    position:absolute;
    inset:0;
    z-index:1;
    overflow:hidden;
    pointer-events:none;
}
.spd-season-particle {
    position:absolute;
    display:block;
    will-change:transform, opacity;
}

/* Κοινή κατανομή σωματιδίων */
.spd-season-particle:nth-child(1) { left:7%;  --d:0s;    --dur:11s; --x:48px;  --s:.78; }
.spd-season-particle:nth-child(2) { left:18%; --d:-5s;   --dur:14s; --x:-34px; --s:1.05; }
.spd-season-particle:nth-child(3) { left:29%; --d:-9s;   --dur:12s; --x:58px;  --s:.64; }
.spd-season-particle:nth-child(4) { left:41%; --d:-2s;   --dur:15s; --x:-50px; --s:.92; }
.spd-season-particle:nth-child(5) { left:53%; --d:-11s;  --dur:13s; --x:38px;  --s:.72; }
.spd-season-particle:nth-child(6) { left:64%; --d:-7s;   --dur:16s; --x:-42px; --s:1.10; }
.spd-season-particle:nth-child(7) { left:74%; --d:-3.5s; --dur:12s; --x:52px;  --s:.82; }
.spd-season-particle:nth-child(8) { left:84%; --d:-8s;   --dur:15s; --x:-36px; --s:.68; }
.spd-season-particle:nth-child(9) { left:93%; --d:-1s;   --dur:13s; --x:46px;  --s:.96; }
.spd-season-particle:nth-child(10){ left:12%; --d:-10s;  --dur:17s; --x:-28px; --s:.58; }
.spd-season-particle:nth-child(11){ left:48%; --d:-6s;   --dur:18s; --x:26px;  --s:.70; }
.spd-season-particle:nth-child(12){ left:79%; --d:-13s;  --dur:16s; --x:-30px; --s:.62; }

/* Οκτώβριος / Νοέμβριος: φύλλα */
.spd-season-leaves .spd-season-particle,
.spd-season-leaves-deep .spd-season-particle {
    top:-12%;
    width:18px;
    height:11px;
    border-radius:80% 10% 80% 10%;
    background:#ef8a22;
    opacity:.78;
    transform:scale(var(--s)) rotate(20deg);
    animation:spd-leaf-fall var(--dur) linear infinite;
    animation-delay:var(--d);
    box-shadow:0 1px 2px rgba(0,0,0,.08);
}
.spd-season-leaves .spd-season-particle:nth-child(3n) { background:#f2b83b; }
.spd-season-leaves .spd-season-particle:nth-child(3n+1) { background:#df5b2a; }
.spd-season-leaves-deep .spd-season-particle { background:#c84f28; opacity:.74; }
.spd-season-leaves-deep .spd-season-particle:nth-child(2n) { background:#e89025; }
.spd-season-leaves-deep .spd-season-particle:nth-child(3n) { background:#9d3f2a; }
@keyframes spd-leaf-fall {
    0%   { transform:translate3d(0,-14%,0) rotate(0deg) scale(var(--s)); opacity:0; }
    8%   { opacity:.78; }
    46%  { transform:translate3d(calc(var(--x) * .45),50vh,0) rotate(210deg) scale(var(--s)); }
    100% { transform:translate3d(var(--x),112vh,0) rotate(520deg) scale(var(--s)); opacity:.12; }
}

/* Χειμώνας: νιφάδες */
.spd-season-snow .spd-season-particle,
.spd-season-snow-soft .spd-season-particle,
.spd-season-snow-festive .spd-season-particle {
    top:-8%;
    width:7px;
    height:7px;
    border-radius:50%;
    background:rgba(255,255,255,.92);
    box-shadow:0 0 5px rgba(255,255,255,.75);
    opacity:.82;
    transform:scale(var(--s));
    animation:spd-snow-fall var(--dur) linear infinite;
    animation-delay:var(--d);
}
.spd-season-snow-soft .spd-season-particle { opacity:.58; }
.spd-season-snow-festive .spd-season-particle:nth-child(3n) { width:10px; height:10px; opacity:.9; }
@keyframes spd-snow-fall {
    0%   { transform:translate3d(0,-10%,0) scale(var(--s)); opacity:0; }
    10%  { opacity:.82; }
    50%  { transform:translate3d(calc(var(--x) * .42),52vh,0) scale(var(--s)); }
    100% { transform:translate3d(var(--x),110vh,0) scale(var(--s)); opacity:.24; }
}

/* Άνοιξη: πέταλα / άνθη */
.spd-season-petals .spd-season-particle,
.spd-season-petals-soft .spd-season-particle,
.spd-season-blossom .spd-season-particle {
    top:-10%;
    width:14px;
    height:9px;
    border-radius:70% 30% 70% 30%;
    background:rgba(255,190,205,.90);
    opacity:.76;
    transform:scale(var(--s)) rotate(25deg);
    animation:spd-petal-fall var(--dur) ease-in-out infinite;
    animation-delay:var(--d);
}
.spd-season-petals-soft .spd-season-particle { opacity:.52; background:rgba(255,214,224,.92); }
.spd-season-blossom .spd-season-particle:nth-child(2n) { background:rgba(255,255,255,.90); }
.spd-season-blossom .spd-season-particle:nth-child(3n) { background:rgba(249,176,199,.88); }
@keyframes spd-petal-fall {
    0%   { transform:translate3d(0,-12%,0) rotate(0deg) scale(var(--s)); opacity:0; }
    12%  { opacity:.76; }
    45%  { transform:translate3d(calc(var(--x) * -.25),45vh,0) rotate(160deg) scale(var(--s)); }
    72%  { transform:translate3d(calc(var(--x) * .65),74vh,0) rotate(300deg) scale(var(--s)); }
    100% { transform:translate3d(var(--x),110vh,0) rotate(430deg) scale(var(--s)); opacity:.08; }
}

/* Σεπτέμβριος: διακριτικά χαρτάκια */
.spd-season-paper .spd-season-particle {
    top:15%;
    width:15px;
    height:10px;
    border-radius:2px;
    background:rgba(255,255,255,.48);
    border:1px solid rgba(40,110,180,.28);
    opacity:.50;
    transform:scale(var(--s)) rotate(-12deg);
    animation:spd-paper-float var(--dur) ease-in-out infinite alternate;
    animation-delay:var(--d);
}
.spd-season-paper .spd-season-particle:nth-child(2n) { top:28%; }
.spd-season-paper .spd-season-particle:nth-child(3n) { top:42%; }
@keyframes spd-paper-float {
    0%   { transform:translate3d(-14px,0,0) rotate(-12deg) scale(var(--s)); }
    50%  { transform:translate3d(calc(var(--x) * .35),-18px,0) rotate(10deg) scale(var(--s)); }
    100% { transform:translate3d(var(--x),10px,0) rotate(-6deg) scale(var(--s)); }
}

/* Ιούνιος: μικρές λάμψεις */
.spd-season-sparkles .spd-season-particle {
    top:20%;
    width:6px;
    height:6px;
    border-radius:50%;
    background:rgba(255,255,255,.95);
    box-shadow:0 0 9px 2px rgba(255,241,163,.55);
    opacity:.18;
    transform:scale(var(--s));
    animation:spd-sparkle 4.8s ease-in-out infinite;
    animation-delay:var(--d);
}
.spd-season-sparkles .spd-season-particle:nth-child(2n) { top:36%; }
.spd-season-sparkles .spd-season-particle:nth-child(3n) { top:52%; }
@keyframes spd-sparkle {
    0%,100% { transform:scale(.55); opacity:.10; }
    45%     { transform:scale(1.35); opacity:.72; }
    60%     { transform:scale(.9); opacity:.28; }
}

@media (prefers-reduced-motion: reduce) {
    .spd-season-animation { display:none !important; }
    .spd-program-card { transition:none; }
}
