/* === CSS CUSTOM PROPERTIES - BASE === */
:root {
    --font-heading: 'Baloo 2', 'Nunito', sans-serif;
    --font-body: 'Nunito', sans-serif;
    --color-primary: #E91E8C;
    --color-text: #2D2D2D;
    --color-bg: #FFFFFF;
    --color-bg-light: #FFF5F9;
    --color-border: #F0E0EA;
    --color-season: #E91E8C;
}

/* === SEZÓNNÍ AKCENTY === */
body.season-spring  { --color-season: #3d8b42; --season-bg: #F0FBF0; }
body.season-summer  { --color-season: #FFB830; --season-bg: #FFFBF0; }
body.season-autumn  { --color-season: #D2691E; --season-bg: #FDF5EE; }
body.season-winter  { --color-season: #5B9BD5; --season-bg: #EFF6FF; }

/* === SEZÓNNÍ HERO GRADIENTY === */
body.season-spring .hero__bg {
    background-image: linear-gradient(140deg, #0d2d1a 0%, #1a5c2d 45%, #4CAF50 80%, #81C784 100%);
}
body.season-summer .hero__bg {
    background-image: linear-gradient(140deg, #3d2000 0%, #7B4500 45%, #E65100 80%, #FFB74D 100%);
}
body.season-autumn .hero__bg {
    background-image: linear-gradient(140deg, #2d1008 0%, #5d1e10 45%, #A0522D 80%, #D2691E 100%);
}
body.season-winter .hero__bg {
    background-image: linear-gradient(140deg, #08152a 0%, #0d2744 45%, #1a5276 80%, #5B9BD5 100%);
}

/* Stejné gradienty pro single post hero a archive hero */
body.season-spring  .post-hero,
body.season-spring  .archive-hero { background-image: linear-gradient(140deg, #0d2d1a 0%, #1a5c2d 45%, #4CAF50 80%, #81C784 100%); }
body.season-summer  .post-hero,
body.season-summer  .archive-hero { background-image: linear-gradient(140deg, #3d2000 0%, #7B4500 45%, #E65100 80%, #FFB74D 100%); }
body.season-autumn  .post-hero,
body.season-autumn  .archive-hero { background-image: linear-gradient(140deg, #2d1008 0%, #5d1e10 45%, #A0522D 80%, #D2691E 100%); }
body.season-winter  .post-hero,
body.season-winter  .archive-hero { background-image: linear-gradient(140deg, #08152a 0%, #0d2744 45%, #1a5276 80%, #5B9BD5 100%); }

/* === HERO DEKORACE CONTAINER === */
.hero-decorations {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 2;
}

.deco-item {
    position: absolute;
    line-height: 0;
    opacity: 0;
    will-change: transform, opacity;
}

/* ─── JARO: třešňové květy ─── */
.deco-flower {
    animation: flowerSway 7s ease-in-out infinite;
}

@keyframes flowerSway {
    0%   { opacity: 0; transform: translateY(0) rotate(0deg) scale(0.85); }
    15%  { opacity: 0.72; transform: translateY(-10px) rotate(6deg) scale(1); }
    50%  { opacity: 0.72; transform: translateY(-20px) rotate(-7deg) scale(1.06); }
    85%  { opacity: 0.72; transform: translateY(-10px) rotate(4deg) scale(1); }
    100% { opacity: 0; transform: translateY(-30px) rotate(14deg) scale(0.85); }
}

/* ─── JARO: motýl ─── */
.deco-butterfly {
    animation: butterflyFly 11s ease-in-out infinite;
}

.deco-butterfly .bf-wing-l {
    transform-box: fill-box;
    transform-origin: right center;
    animation: wingFlapL 0.48s ease-in-out infinite alternate;
}
.deco-butterfly .bf-wing-r {
    transform-box: fill-box;
    transform-origin: left center;
    animation: wingFlapL 0.48s ease-in-out infinite alternate-reverse;
}

@keyframes wingFlapL {
    to { transform: scaleX(0.18); }
}

@keyframes butterflyFly {
    0%   { opacity: 0; transform: translate(0,0) rotate(5deg); }
    10%  { opacity: 0.78; }
    28%  { transform: translate(30px,-25px) rotate(-5deg); }
    52%  { transform: translate(8px,-45px) rotate(9deg); }
    74%  { transform: translate(-25px,-25px) rotate(-4deg); }
    90%  { opacity: 0.78; }
    100% { opacity: 0; transform: translate(45px,-60px) rotate(12deg); }
}

/* ─── LÉTO: velké slunce ─── */
.deco-sun {
    animation: sunPulse 14s ease-in-out infinite;
}

.deco-sun-small {
    animation: sunFloat 9s ease-in-out infinite;
}

.deco-sun .sun-rays,
.deco-sun-small .sun-rays {
    transform-box: fill-box;
    transform-origin: center;
    animation: sunSpin 10s linear infinite;
}

@keyframes sunSpin {
    to { transform: rotate(360deg); }
}

@keyframes sunPulse {
    0%   { opacity: 0; transform: scale(0.88); }
    20%  { opacity: 0.82; transform: scale(1); }
    80%  { opacity: 0.82; transform: scale(1.07); }
    100% { opacity: 0; transform: scale(0.88); }
}

@keyframes sunFloat {
    0%   { opacity: 0; transform: translateY(0); }
    20%  { opacity: 0.62; }
    50%  { transform: translateY(-15px); }
    80%  { opacity: 0.62; }
    100% { opacity: 0; transform: translateY(0); }
}

/* ─── LÉTO: mraky ─── */
.deco-cloud {
    animation: cloudDrift 24s linear infinite;
}

@keyframes cloudDrift {
    0%   { opacity: 0; transform: translateX(-30px); }
    12%  { opacity: 0.62; }
    88%  { opacity: 0.62; }
    100% { opacity: 0; transform: translateX(55px); }
}

/* ─── PODZIM: padající listí ─── */
.deco-leaf {
    animation: leafFall 8s ease-in-out infinite;
}

@keyframes leafFall {
    0%   { opacity: 0; transform: translateY(-20px) translateX(0) rotate(0deg); }
    8%   { opacity: 0.85; }
    50%  { transform: translateY(48vh) translateX(var(--leaf-sway, 45px)) rotate(210deg); }
    92%  { opacity: 0.65; }
    100% { opacity: 0; transform: translateY(108vh) translateX(calc(var(--leaf-sway, 45px) * -0.4)) rotate(400deg); }
}

/* ─── ZIMA: sněhové vločky ─── */
.deco-snowflake {
    animation: snowFall 9s linear infinite;
}

@keyframes snowFall {
    0%   { opacity: 0; transform: translateY(-20px) translateX(0) rotate(0deg); }
    8%   { opacity: 0.88; }
    100% { opacity: 0.2; transform: translateY(110vh) translateX(var(--snow-drift, 15px)) rotate(380deg); }
}

/* ─── REDUKCE POHYBU ─── */
@media (prefers-reduced-motion: reduce) {
    .deco-item,
    .deco-flower,
    .deco-butterfly,
    .deco-sun,
    .deco-sun-small,
    .deco-cloud,
    .deco-leaf,
    .deco-snowflake {
        animation: none !important;
        opacity: 0.5 !important;
    }
    .deco-butterfly .bf-wing-l,
    .deco-butterfly .bf-wing-r,
    .deco-sun .sun-rays,
    .deco-sun-small .sun-rays {
        animation: none !important;
    }
}
