/* ===== RESET ===== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:Arial, sans-serif;
}

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

.hero {
    min-height: 80vh;
    display: flex;
    align-items: center;
    background-image: url('../img/hero-bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 60px 0;
}

.hero-row {
    min-height: 80vh;
}

.hero-content {
    max-width: 520px;
    margin-left: auto;
}

.hero-content h1 {
    font-size: 56px;
    color: #6A2CA0;
    margin-bottom: 15px;
    font-weight: 800;
}

.hero-content p {
    font-size: 20px;
    color: #333;
    margin-bottom: 25px;
    line-height: 1.6;
}

.hero-btn {
    padding: 16px 34px;
    border: none;
    border-radius: 30px;
    background: #6A2CA0;
    color: white;
    font-size: 18px;
    cursor: pointer;
    transition: 0.3s;
    text-decoration: none;
    display: inline-block;
}

.hero-btn:hover {
    transform: scale(1.05);
}

.hero-btn2 {
    padding: 16px 34px;
    border: none;
    border-radius: 30px;
    background: #efebf7;
    color: #6A2CA0;
    font-size: 18px;
    cursor: pointer;
    transition: 0.3s;
    text-decoration: none;
    display: inline-block;
}
.hero-btn2:hover {
    transform: scale(1.05);
}

.hero-image img {
    max-width: 700px;
    width: 100%;
    height: auto;
}

@media (max-width: 991.98px) {
    .hero {
        min-height: auto;
        padding: 80px 0 60px;
    }

    .hero-row {
        min-height: auto;
    }

    .hero-content {
        max-width: 100%;
        margin-left: 0;
    }

    .hero-content h1 {
        font-size: 40px;
    }

    .hero-content p {
        font-size: 18px;
    }

    .hero-image {
        text-align: center;
    }

    .hero-image img {
        max-width: 500px;
    }
}

@media (max-width: 575.98px) {
    .hero-content h1 {
        font-size: 32px;
    }

    .hero-content p {
        font-size: 16px;
    }

    .hero-image img {
        max-width: 100%;
    }
    .hero-btn {
        width: 175px;
    }
    .hero-btn2 {
        margin-top: 5px;
        width: 175px;
    }
}

/* ===== COUNTRIES SECTION ===== */

.countries {
    padding: 90px 20px;
    background: transparent;
}

.countries-container {
    max-width: 1200px;
    margin: 0 auto;
}

.countries-heading {
    text-align: center;
    margin-bottom: 36px;
}

.countries-stars {
    margin-bottom: 10px;
    font-size: 18px;
    color: #f2c94c;
    letter-spacing: 6px;
    line-height: 1;
}

.countries-heading h2 {
    text-align: center;
    font-size: 42px;
    font-weight: 700;
    color: #4f2a7f;
    line-height: 1.2;
}


.countries-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 18px 20px;
}

.country-card{

    display:flex;
    align-items:center;
    gap:12px;

    padding:16px 20px;

    background:white;

    border-radius:20px;

    box-shadow:0 8px 20px rgba(0,0,0,0.05);

}

.country-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(137, 92, 182, 0.16);
}

.country-card img {
    width: 46px;
    height: 30px;
    object-fit: cover;
    border-radius: 8px;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.country-card span {
    font-size: 22px;
    font-weight: 500;
    color: #6b5a7d;
    line-height: 1.3;
}

/* ===== TABLET ===== */

@media (max-width: 1100px) {
    .countries-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ===== MOBILE ===== */

@media (max-width: 640px) {
    .countries {
        padding: 70px 16px;
    }

    .countries-heading h2 {
        font-size: 30px;
    }

    .countries-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .country-card {
        min-height: 74px;
        padding: 16px 18px;
        border-radius: 18px;
    }

    .country-card img {
        width: 40px;
        height: 26px;
    }

    .country-card span {
        font-size: 18px;
    }
}

.country-card .fi{

    font-size:28px;
    border-radius:6px;

}

/* ===== COUNTRIES BUTTON ===== */

.countries-button{

    display:flex;
    justify-content:center;

    margin-top:40px;

}

.countries-more{

    padding:14px 30px;

    border:none;
    border-radius:30px;

    background:#6A2CA0;

    color:white;

    font-size:16px;

    cursor:pointer;

    transition:0.3s;

}

.countries-more:hover{

    transform:scale(1.05);

    box-shadow:0 10px 20px rgba(0,0,0,0.15);

}

@media (max-width:1100px){

    .countries-grid{

        grid-template-columns:repeat(3,1fr);

    }

}

@media (max-width:640px){

    .countries-grid{

        grid-template-columns:repeat(2,1fr);

    }

}


/* ===== JUDGES SECTION ===== */

.judges {
    padding: 100px 20px;

    background: linear-gradient(
            180deg,
            #f7f3ff 0%,
            #f1ecff 40%,
            #f7f3ff 100%
    );

    position: relative;
}

.judges::before {

    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    background-image: radial-gradient(
            rgba(255,255,255,0.8) 1px,
            transparent 1px
    );

    background-size: 80px 80px;

    opacity: 0.3;

    pointer-events: none;
}

.judges-container {
    max-width: 1200px;
    margin: 0 auto;
}

.judges-heading {
    text-align: center;
    margin-bottom: 36px;
}

.judges-stars {
    margin-bottom: 10px;
    font-size: 18px;
    color: #f2c94c;
    letter-spacing: 6px;
    line-height: 1;
}

.judges-heading h2 {
    font-size: 42px;
    font-weight: 700;
    color: #4f2a7f;
    line-height: 1.2;
}

.judges-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 18px 20px;
}

.judge-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 12px;

    min-height: 110px;
    padding: 18px 20px;

    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 20px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.05);

    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.judge-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(137, 92, 182, 0.16);
}

.judge-name {
    font-size: 20px;
    font-weight: 600;
    color: #5c4677;
    line-height: 1.3;
}

.judge-country {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #6b5a7d;
    font-size: 16px;
    font-weight: 500;
}

.judge-country .fi {
    font-size: 24px;
    border-radius: 4px;
}

/* ===== TABLET ===== */

@media (max-width: 1200px) {
    .judges-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 992px) {
    .judges-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ===== MOBILE ===== */

@media (max-width: 640px) {
    .judges {
        padding: 70px 16px;
    }

    .judges-heading h2 {
        font-size: 30px;
    }

    .judges-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .judge-card {
        min-height: auto;
        padding: 16px 18px;
        border-radius: 18px;
    }

    .judge-name {
        font-size: 18px;
    }

    .judge-country {
        font-size: 15px;
    }
}


/* ===== SCHEDULE SECTION ===== */

.schedule {
    padding: 100px 20px;
    background: #ffffff;
}

.schedule-container {
    max-width: 1000px;
    margin: 0 auto;
}

.schedule-heading {
    text-align: center;
    margin-bottom: 20px;
}

.schedule-stars {
    color: #f2c94c;
    letter-spacing: 6px;
    margin-bottom: 10px;
    font-size: 18px;
    line-height: 1;
}

.schedule-heading h2 {
    font-size: 42px;
    color: #4f2a7f;
    line-height: 1.2;
}

/* ===== TABS ===== */

.schedule-tabs {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 36px;
    flex-wrap: wrap;
}

.schedule-tab {
    padding: 14px 28px;
    border: none;
    border-radius: 999px;
    background: #efebf7;
    color: #8a79a8;
    cursor: pointer;
    font-weight: 600;
    font-size: 16px;
    transition: 0.3s ease;
}

.schedule-tab.active {
    background: #6A2CA0;
    color: #ffffff;
    box-shadow: 0 8px 20px rgba(141, 98, 217, 0.22);
}

.schedule-tab:hover {
    transform: translateY(-2px);
}

/* ===== DAY CARD ===== */

.schedule-day {
    display: none;
}

.schedule-day.active {
    display: block;
    background: linear-gradient(180deg, #f8f3ff 0%, #f4edff 100%);
    border-radius: 28px;
    padding: 16px 28px;
    box-shadow: 0 12px 28px rgba(126, 91, 171, 0.08);
}

/* ===== ROW ===== */

.schedule-item {
    display: grid;
    grid-template-columns: 170px 1fr;
    gap: 24px;
    align-items: center;

    padding: 18px 0;
    border-bottom: 1px solid rgba(120, 93, 160, 0.12);
}

.schedule-item:last-child {
    border-bottom: none;
}

.schedule-item .time {
    font-weight: 700;
    color: #4f2a7f;
    font-size: 28px;
    line-height: 1.2;
}

.schedule-item .event {
    color: #5e4c78;
    font-size: 26px;
    line-height: 1.35;
}

/* ===== MOBILE ===== */

@media (max-width: 768px) {
    .schedule {
        padding: 70px 16px;
    }

    .schedule-heading h2 {
        font-size: 30px;
    }

    .schedule-day.active {
        padding: 14px 18px;
        border-radius: 20px;
    }

    .schedule-item {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 16px 0;
    }

    .schedule-item .time {
        font-size: 20px;
    }

    .schedule-item .event {
        font-size: 18px;
    }

    .schedule-tab {
        padding: 12px 18px;
        font-size: 14px;
    }
}
/* ===== STREAM SECTION ===== */

.stream {
    padding: 100px 20px;
    background: #ffffff;
}

.stream-container {
    max-width: 1100px;
    margin: 0 auto;
}

.stream-heading {
    text-align: center;
    margin-bottom: 32px;
}

.stream-stars {
    margin-bottom: 10px;
    font-size: 18px;
    color: #f2c94c;
    letter-spacing: 6px;
    line-height: 1;
}

.stream-heading h2 {
    font-size: 42px;
    font-weight: 700;
    color: #4f2a7f;
    line-height: 1.2;
    margin-bottom: 10px;
}

.stream-heading p {
    font-size: 18px;
    color: #7a6b92;
}

.stream-box {
    position: relative;
    background: linear-gradient(180deg, #f8f3ff 0%, #f3ecff 100%);
    border-radius: 28px;
    padding: 24px;
    box-shadow: 0 12px 30px rgba(137, 92, 182, 0.12);
}

.stream-badge {
    position: absolute;
    top: 20px;
    left: 20px;
    z-index: 2;

    padding: 8px 14px;
    border-radius: 999px;
    background: #ff4d6d;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1px;
}

.stream-video {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
    border-radius: 22px;
    overflow: hidden;
    background: #e9defc;
}

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

.stream-actions {
    display: flex;
    justify-content: center;
    margin-top: 30px;
}

.stream-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 14px 30px;
    border-radius: 30px;
    text-decoration: none;

    background: #6A2CA0;
    color: #fff;
    font-size: 16px;
    font-weight: 600;

    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.stream-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(137, 92, 182, 0.18);
}

/* ===== MOBILE ===== */

@media (max-width: 640px) {
    .stream {
        padding: 70px 16px;
    }

    .stream-heading h2 {
        font-size: 30px;
    }

    .stream-heading p {
        font-size: 16px;
    }

    .stream-box {
        padding: 16px;
        border-radius: 20px;
    }

    .stream-badge {
        top: 14px;
        left: 14px;
        font-size: 12px;
        padding: 6px 10px;
    }

    .stream-btn {
        width: 100%;
        max-width: 280px;
    }
}

/* ===== SPONSORS SECTION ===== */

.sponsors {
    padding: 100px 20px;
    background: #fff;
    /*        linear-gradient(*/
    /*        180deg,*/
    /*        #f8f3ff 0%,*/
    /*        #ffffff 45%,*/
    /*        #f8f3ff 100%*/
    /*);*/
}

.sponsors-container {
    max-width: 1200px;
    margin: 0 auto;
}

.sponsors-heading {
    text-align: center;
    margin-bottom: 40px;
}

.sponsors-stars {
    margin-bottom: 10px;
    font-size: 18px;
    color: #f2c94c;
    letter-spacing: 6px;
    line-height: 1;
}

.sponsors-heading h2 {
    font-size: 42px;
    font-weight: 700;
    color: #4f2a7f;
    line-height: 1.2;
    margin-bottom: 10px;
}

.sponsors-heading p {
    font-size: 18px;
    color: #7a6b92;
}

/* ===== SPONSORS GRID ===== */

.sponsors-grid{

    display:grid;
    grid-template-columns:repeat(3,1fr);

    gap:50px;

    align-items:center;
    justify-items:center;

    margin-top:50px;

}

/* ===== LOGOS ===== */

.sponsor img{

    max-width:180px;
    width:100%;

    height:auto;

    object-fit:contain;

    transition:transform 0.3s ease;

}

/* hover эффект */

.sponsor img:hover{

    transform:scale(1.1);

}

/* ===== TABLET ===== */

@media (max-width: 992px) {
    .sponsors-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ===== MOBILE ===== */

@media (max-width: 640px) {
    .sponsors {
        padding: 70px 16px;
    }

    .sponsors-heading h2 {
        font-size: 30px;
    }

    .sponsors-heading p {
        font-size: 16px;
    }

    .sponsors-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
    }

    .sponsor-card {
        min-height: 100px;
        padding: 18px;
        border-radius: 18px;
    }

    .sponsor-card img {
        max-height: 50px;
    }
}


/* ===== VENUE SECTION ===== */

.venue{

    padding:100px 20px;

    background: linear-gradient(
            180deg,
            #f7f3ff 0%,
            #f1ecff 40%,
            #f7f3ff 100%
    );

    /*background:linear-gradient(*/
    /*        180deg,*/
    /*        #ffffff 0%,*/
    /*        #f8f3ff 100%*/
    /*);*/

}

.venue-container{

    max-width:1200px;
    margin:auto;

}

.venue-heading{

    text-align:center;
    margin-bottom:50px;

}

.venue-stars{

    color:#f2c94c;
    letter-spacing:6px;
    margin-bottom:10px;

}

.venue-heading h2{

    font-size:42px;
    color:#4f2a7f;
    margin-bottom:10px;

}

.venue-heading p{

    color:#7a6b92;
    font-size:18px;

}

/* ===== CONTENT ===== */

.venue-content{

    display:grid;
    grid-template-columns:1fr 1fr;

    gap:40px;

    align-items:center;

}

/* ===== TEXT ===== */

.venue-info h3{

    font-size:26px;
    margin-bottom:15px;
    color:#4f2a7f;

}

.venue-info p{

    color:#5e4c78;
    margin-bottom:16px;
    line-height:1.6;

}

.venue-address{

    font-weight:600;

}

/* ===== BUTTON ===== */

.venue-btn{

    display:inline-block;

    padding:14px 28px;

    border-radius:30px;

    background:#6A2CA0;

    color:white;
    text-decoration:none;

    font-weight:600;

    transition:0.3s;

}

.venue-btn:hover{

    transform:scale(1.05);

}

/* ===== MAP ===== */

.venue-map{

    width:100%;
    height:400px;

    border-radius:24px;

    overflow:hidden;

    box-shadow:0 10px 25px rgba(0,0,0,0.1);

}

.venue-map iframe{

    width:100%;
    height:100%;
    border:none;

}

/* ===== MOBILE ===== */

@media (max-width:900px){

    .venue-content{

        grid-template-columns:1fr;

    }

    .venue-map{

        height:350px;

    }

}

/* ===== FOOTER ===== */

.footer{

    position:relative;

    padding:80px 20px 30px;
    background-image:url('../img/hero-bg.png');
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
    /*background:linear-gradient(*/
    /*        135deg,*/
    /*        #e8dcff 0%,*/
    /*        #f5e8ff 50%,*/
    /*        #ffe9dc 100%*/
    /*);*/

    overflow:hidden;

}

/* city silhouette */

.footer::before{

    content:"";

    position:absolute;

    bottom:0;
    left:0;

    width:100%;
    height:220px;

    /*background:url("../img/prague-skyline.png") center bottom no-repeat;*/

    background-size:contain;

    opacity:0.25;

    pointer-events:none;

}

.footer ul {
    padding-left: 0rem;
}

/* container */

.footer-container{

    max-width:1200px;
    margin:auto;

    position:relative;
    z-index:2;

}

/* grid */

.footer-grid{

    display:grid;
    grid-template-columns:1fr 1fr 1fr;

    gap:60px;

    margin-bottom:60px;

}

/* headings */

.footer-column h3{

    font-size:26px;
    color:#6b4ca7;

    margin-bottom:16px;

}

/* text */

.footer-column p{

    color:#5e4c78;

    line-height:1.6;

}

/* button */

.footer-btn{

    display:inline-block;

    margin-top:20px;

    padding:12px 26px;

    border-radius:30px;

    background:#6A2CA0;

    color:white;

    text-decoration:none;

    font-weight:600;

    transition:0.3s;

}

.footer-btn:hover{

    transform:scale(1.05);

}

/* social */

.footer-social{

    list-style:none;

}

.footer-social li{

    margin-bottom:12px;

}

.footer-social a{

    text-decoration:none;

    color:#5e4c78;

    font-weight:500;

    display:flex;

    align-items:center;

    gap:10px;

}

.footer-social a:hover{

    color:#6a4cff;

}

/* copyright */

.footer-bottom{

    text-align:center;

    padding-top:30px;

    border-top:1px solid rgba(0,0,0,0.08);

    color:#5e4c78;

}

/* responsive */

@media (max-width:900px){

    .footer-grid{

        grid-template-columns:1fr;

        gap:40px;

        text-align:center;

    }

    .footer-btn{

        margin-left:auto;
        margin-right:auto;

    }

    .footer-social a{

        justify-content:center;

    }

}

/* Контейнеры со звездами по бокам */
.side-stars {
    position: fixed;
    top: 0;
    bottom: 0;
    width: 250px;
    pointer-events: none;
    z-index: 2;
    overflow: hidden;
}

.side-stars-left {
    left: 0;
}

.side-stars-right {
    right: 0;
}

/* Сама звезда */
.side-star {
    position: absolute;
    display: block;
    opacity: 0;
    animation: twinkle 3s infinite ease-in-out, floatStar 4s infinite ease-in-out;
    filter: drop-shadow(0 0 6px rgba(253, 235, 183, 0.45));
}

/* Форма звезды через символ */
.side-star::before {
    content: "✦";
    display: block;
    font-family: serif;
    line-height: 1;
    background: linear-gradient(135deg, rgba(234, 214, 151, 0.7), rgba(252, 249, 91, 0.7) 45%, rgba(166, 77, 255, 0.69) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Размеры */
.side-star.size-sm::before {
    font-size: 16px;
}

.side-star.size-md::before {
    font-size: 24px;
}

.side-star.size-lg::before {
    font-size: 34px;
}

/* Анимация мерцания */
@keyframes twinkle {
    0% {
        opacity: 0;
        transform: scale(0.6) rotate(0deg);
    }
    20% {
        opacity: 0.95;
        transform: scale(1) rotate(8deg);
    }
    40% {
        opacity: 0.55;
        transform: scale(0.85) rotate(-6deg);
    }
    60% {
        opacity: 1;
        transform: scale(1.05) rotate(4deg);
    }
    100% {
        opacity: 0;
        transform: scale(0.6) rotate(0deg);
    }
}

/* Легкое плавание */
@keyframes floatStar {
    0% {
        translate: 0 0;
    }
    50% {
        translate: 0 -8px;
    }
    100% {
        translate: 0 0;
    }
}

/* Дополнительные мягкие блики */
.side-star.glow::after {
    content: "";
    position: absolute;
    inset: 50% auto auto 50%;
    width: 18px;
    height: 18px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(250, 223, 128, 0.35), rgba(124, 120, 255, 0) 70%);
    z-index: -1;
}

/* Чтобы на мобильных не мешало */
@media (max-width: 768px) {
    .side-stars {
        width: 45px;
    }

    .side-star.size-lg::before {
        font-size: 18px;
    }

    .side-star.size-md::before {
        font-size: 14px;
    }

    .side-star.size-sm::before {
        font-size: 10px;
    }
}

/* Для пользователей с отключенной анимацией */
@media (prefers-reduced-motion: reduce) {
    .side-star {
        animation: none;
        opacity: 0.6;
    }
}
h2 {
    font-family: "Playfair Display", serif;
}
h1 {
    font-family: "Playfair Display", serif;
}

a{
    text-decoration: none;
}


.stream-video {
    position: relative;
    width: 100%;
    height: 400px;
    background: #000 url('https://img.youtube.com/vi/V3fXIIOa8TA/maxresdefault.jpg') center/cover no-repeat;
    border-radius: 10px;
    overflow: hidden;
}

/* затемнение */
.stream-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    background: rgba(0, 0, 0, 0.5);
    transition: 0.3s;
}

.stream-overlay:hover {
    background: rgba(0, 0, 0, 0.7);
}

/* кнопка */
.play-button {
    background: red;
    color: #fff;
    padding: 15px 25px;
    font-size: 18px;
    border-radius: 50px;
    font-weight: bold;
    transition: 0.3s;
}

.play-button:hover {
    background: #cc0000;
    transform: scale(1.05);
}