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

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

img,
picture,
svg,
video,
canvas {
    display: block;
    max-width: 100%;
}

button,
input,
textarea,
select {
    font: inherit;
    border: none;
    outline: none;
    background: none;
}

a {
    color: inherit;
    text-decoration: none;
}

ul,
ol {
    list-style: none;
}
/* src/styles/fonts.css */

/* ===========================
   SYNE
=========================== */
@font-face {
    font-family: "Syne";
    src: url("/themes/pierogy2/vite/assets/Syne-Regular-CQ4ah_ba.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Syne";
    src: url("/themes/pierogy2/vite/assets/Syne-Bold-Blm-6FZO.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* ===========================
   GEIST
=========================== */
@font-face {
    font-family: "Geist";
    src: url("/themes/pierogy2/vite/assets/Geist-Regular-w2QFeScy.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Geist";
    src: url("/themes/pierogy2/vite/assets/Geist-SemiBold-DkaAkULY.woff2") format("woff2");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Geist";
    src: url("/themes/pierogy2/vite/assets/Geist-Bold-DORQXWRF.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
/* ===========================
   CORMORANT GARAMOND
=========================== */
@font-face {
    font-family: "Cormorant Garamond";
    src: url("../assets/fonts/CormorantGaramond/CormorantGaramond-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Cormorant Garamond";
    src: url("../assets/fonts/CormorantGaramond/CormorantGaramond-SemiBold.ttf") format("truetype");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Cormorant Garamond";
    src: url("../assets/fonts/CormorantGaramond/CormorantGaramond-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* ===========================
   CORMORANT GARAMOND (Variable)
=========================== */
@font-face {
    font-family: "Cormorant Garamond";
    src: url("/themes/pierogy2/vite/assets/CormorantGaramond-VariableFont_wght-B4Q5m-X8.ttf") format("truetype");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

/* ===========================
   PLAYFAIR DISPLAY (Variable)
=========================== */
@font-face {
    font-family: "Playfair Display";
    src: url("/themes/pierogy2/vite/assets/PlayfairDisplay-VariableFont_wght-Cl-XvBsO.ttf") format("truetype");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

/* ===========================
   CRIMSON PRO (Variable)
=========================== */
@font-face {
    font-family: "Crimson Pro";
    src: url("/themes/pierogy2/vite/assets/CrimsonPro-VariableFont_wght-Dwk_57xn.ttf") format("truetype");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}
/* src/styles/typography.css */

:root {
    /* ==========================================
       DEFINICJE GŁÓWNYCH FONTÓW
    ========================================== */
    --font-heading: "Syne", sans-serif;         /* Główny font dla nagłówków H1-H6 */
    --font-body: "Geist", sans-serif;           /* Główny font dla zwykłego tekstu (akapity) */
    
    /* NASZ NOWY FONT DO LOGO (Możesz tu wpisać "Playfair Display" lub "Crimson Pro") */
    --font-serif: "Cormorant Garamond", serif;  

    /* Aliasy (jeśli używasz ich w starym kodzie) */
    --font-display: var(--font-heading);

    /* ==========================================
       SKALA WIELKOŚCI FONTÓW (Typographic Scale)
    ========================================== */
    --fs-900: clamp(5rem, 9vw, 7rem);
    --fs-800: clamp(3.5rem, 6vw, 5rem);
    --fs-700: clamp(2.5rem, 4vw, 3.5rem);
    --fs-600: 2rem;
    --fs-500: 1.5rem;
    --fs-400: 1rem;
    --fs-300: 0.875rem;
}

section {
    position: relative;
    /* Marginesy i wysokości są teraz kontrolowane przez pliki poszczególnych komponentów */
}

/* Możesz całkowicie usunąć starą klasę .about stąd, 
   bo masz już plik About.css, który się tym zajmuje */

.container {
    width: min(1400px, 100%);
    margin: 0 auto;
    padding-inline: 80px;
}

/* Opcjonalnie: żeby na telefonach boczne marginesy nie były za duże */
@media (max-width: 768px) {
    .container {
        padding-inline: 24px;
    }
}
/* src/styles/global.css */

body {
    font-family: var(--font-body);
    background: var(--background);
    color: var(--text);
    overflow-x: hidden;
    transition: background-color 0.3s ease, color 0.3s ease;
}

#app, .app, main {
    width: 100%;
    min-height: 100vh;
}

.container {
    width: min(100% - 48px, var(--container));
    margin-inline: auto;
}

section {
    position: relative;
}
/* src/theme/colors.css */

/* ==========================================
   MOTYW JASNY (DOMYŚLNY)
========================================== */
:root,
[data-theme="light"] {
    /* Paleta bazowa */
    --background: #ffffff;
    --surface: #f8fafc;
    --primary: #2563eb;
    --secondary: #38bdf8;
    --accent: var(--primary);
    --text: #0f172a;
    --muted: #64748b;
    --text-secondary: var(--muted);
    --border: #e2e8f0;
    --surface-alt:#f6f8fb;

    /* Cienie */
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.12);
    
    /* Tokeny komponentu: NAVBAR */
    --navbar-bg: #F6F8FB;
    --navbar-border: rgba(15, 23, 42, 0.08);
    --navbar-button-bg: #0f172a;
    --navbar-button-border: #0f172a;
    --navbar-button-text: #ffffff;
    --navbar-text: #0f172a;
    --navbar-text-muted: #475569;

    /* Tokeny komponentu: HERO */
    --hero-bg: #ffffff;
    --hero-title: #0f172a;
    --hero-text: #334155;
    --hero-muted: #64748b;
    --hero-accent: #1877f2;
    --hero-glow-1: rgba(24, 119, 242, 0.06);
    --hero-glow-2: rgba(0, 180, 255, 0.05);
    
    /* Nadpisujemy główny kolor akcentu naszym akademickim błękitem */
    --primary: #1E538E;
    --primary-hover: #163f6c;
    
    /* Dedykowany token dla tekstu na przycisku głównym */
    --btn-primary-text: #ffffff;

}

/* ==========================================
   MOTYW CIEMNY
========================================== */
[data-theme="dark"] {
    /* Paleta bazowa */
    --background: #030712;
    --surface: #0f172a;
    --primary: #38bdf8;
    --secondary: #22d3ee;
    --accent: var(--primary);
    --text: #f8fafc;
    --muted: #94a3b8;
    --text-secondary: var(--muted);
    --border: rgba(255, 255, 255, 0.08);

    /* Cienie */
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.15);
    --shadow-lg: 0 10px 30px rgba(0, 0, 0, 0.25);
    
    /* Tokeny komponentu: NAVBAR */
    --navbar-bg: rgba(3, 7, 18, 0.68);
    --navbar-border: rgba(255, 255, 255, 0.08);
    --navbar-button-bg: rgba(6, 20, 34, 0.55);
    --navbar-button-border: rgba(255, 255, 255, 0.12);
    --navbar-button-text: #f8fafc;
    --navbar-text: #f8fafc;
    --navbar-text-muted: #94a3b8;

    /* Tokeny komponentu: HERO */
    --hero-bg: #030712;
    --hero-title: #f8fafc;
    --hero-text: #cbd5e1;
    --hero-muted: #94a3b8;
    --hero-accent: #22e7ff;
    --hero-glow-1: rgba(34, 231, 255, 0.08);
    --hero-glow-2: rgba(34, 231, 255, 0.05);
    
    --primary: #2E75C2;
    --primary-hover: #1E538E;
    
    --btn-primary-text: #ffffff;
}
/* src/theme/theme.css */

:root {
    /* Fundamenty typograficzne */
    --font-heading: "Syne", sans-serif;
    --font-body: "Geist", sans-serif;

    /* Wymiary i układ */
    --container: 1320px;
    --transition: 0.3s ease;

    /* Odstępy (Spacing) */
    --space-xs: 4px;
    --space-sm: 8px;
    --space-md: 16px;
    --space-lg: 32px;

    /* Zaokrąglenia krawędzi (Border Radius) */
    --radius: 14px;
    --radius-sm: 8px;
    --radius-md: 14px;
    --radius-lg: 24px;
}
#animation-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 1;
}

#animation-canvas canvas {
    display: block;
    width: 100%;
    height: 100%;
}
/* src/components/ui/Button/Button.css */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    padding: 14px 28px;
    border-radius: 999px;
    cursor: pointer;
    text-decoration: none;
    font-weight: 600;
    transition: var(--transition);
}







/* Wyraźniejszy ruch dla wszystkich przycisków */
.btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px -6px rgba(0, 0, 0, 0.15);
}



/* DRUGI PRZYCISK (Programme) - zmiana tła na widoczniejszą */
.btn-secondary:hover {
    background: var(--border);
    border-color: var(--primary);
    color: var(--primary);
}

.btn-primary,
a.btn-primary,
button.btn-primary {
    background-color: var(--primary) !important;
    color: var(--btn-primary-text) !important;
    border: 2px solid var(--primary);
    box-shadow: 0 4px 12px rgba(30, 83, 142, 0.25);
}

.btn-primary:hover,
a.btn-primary:hover,
button.btn-primary:hover {
    background-color: var(--primary-hover) !important;
    border-color: var(--primary-hover);
    color: var(--btn-primary-text) !important;
    box-shadow: 0 8px 20px rgba(30, 83, 142, 0.4);
}
.navbar {
    position: fixed;
    inset: 0 0 auto 0;
    height: 100px;
    z-index: 1000;
    
    /* Używamy zmiennych z colors.css */
    background-color: var(--navbar-bg);
    border-bottom: 1px solid var(--navbar-border);
    
    /* Efekt "mrożonego szkła" (wymaga lekko przezroczystego tła w zmiennej, aby był widoczny) */
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px); /* Wsparcie dla Safari */
    
    transition: height 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, backdrop-filter 0.3s ease;
}
/* ==========================================
   GŁÓWNY KONTENER (Wyśrodkowany, z ograniczoną szerokością)
========================================== */
.navbar__container {
    max-width: 1400px; /* Ogranicza rozrastanie się na dużych ekranach */
    width: 100%;
    height: 100%;
    margin: 0 auto;    /* Centruje kontener na ekranie */
    padding: 0 80px;   /* Odstępy po bokach - takie jak miałeś oryginalnie */
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* ==========================================
   PRAWA STRONA (Ułożenie w jednym rzędzie)
========================================== */
.navbar__right {
    display: flex;
    align-items: center;
    gap: 32px; 
}
.navbar__name{

    font-family:var(--font-heading);
    font-size:1rem;
    color: var(--navbar-text);
    font-weight: 700;
    letter-spacing: .18em;


}

.navbar__brand-name {

    font-family: 'Syne', sans-serif;
    font-size: 21px;
    font-weight: 700;
    line-height: 1;

    letter-spacing: .16em;

    color: var(--navbar-text);

    white-space: nowrap;
}
.navbar__brand-year {

    margin-top: 2px;

    font-family: 'Syne', sans-serif;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;

    letter-spacing: .42em;

    color: var(--navbar-text-muted);

    white-space: nowrap;
}
.navbar__brand-container {
    display: flex;
    align-items: center; /* Wyrównuje oba napisy w pionie */
    gap: 16px; /* Odstęp między słowem PIEROGY a rokiem */
}

.navbar__logo-title {
    font-family: 'Syne', sans-serif;
    font-size: 2px; /* Dokładny rozmiar z Twojego starego kodu */
    font-weight: 700;
    letter-spacing: .16em;
    color: var(--navbar-text, #0f172a);
    line-height: 1;
}

.navbar__logo-year {
    font-family: var(--font-body, "Geist", sans-serif);
    font-size: 16px;
    font-weight: 400;
    color: var(--navbar-text-muted, #64748b);
    line-height: 1;
    /* To tworzy pionową kreskę oddzielającą */
    border-left: 1px solid var(--navbar-border, #cbd5e1);
    padding-left: 16px;
}
.navbar__logo line{

    stroke:var(--primary);

    stroke-width:2;

    opacity:.65;

}

.navbar__logo circle{

    fill:var(--primary);

}

.navbar__titles{

    display:flex;

    flex-direction:column;

    line-height:1;

}


.navbar__edition{

    margin-top:4px;

    font-size:.68rem;

    letter-spacing:.32em;

    text-transform:uppercase;

    color:var(--muted);

}

.navbar__logo{

    width:36px;

    height:36px;

    transition:
        transform .35s ease,
        filter .35s ease;

}
.navbar__brand{

    display:flex;

    align-items:center;

    gap:16px;

    transition:.3s ease;

}

.navbar__brand:hover .navbar__logo{

    transform:rotate(8deg) scale(1.06);

    filter:drop-shadow(
        0 0 10px rgba(56,189,248,.45)
    );

}


/* 1. Na dużych ekranach całkowicie ukrywamy ikonę hamburgera */
.navbar__toggle {
    display: none;
}

/* 2. Pełne menu wyświetla się poziomo */
.navbar__menu {
    display: flex;
    align-items: center;
    gap: 2.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}


/* ==========================================
   LINKI W MENU (Z animowanym podkreśleniem)
========================================== */
.navbar__menu a {
    color: var(--navbar-text-muted, #475569); 
    font-family: var(--font-body, "Geist", sans-serif);
    font-weight: 500;
    font-size: 0.95rem;
    text-decoration: none;
    position: relative; /* Niezbędne do absolutnego pozycjonowania kreski */
    padding: 4px 0;
    transition: color 0.3s ease;
}

/* Stan po najechaniu oraz aktywna podstrona */
.navbar__menu a:hover, 
.navbar__menu a.active {
    color: var(--primary); 
}

/* Kreska animująca się od środka (domyślnie szerokość 0) */
.navbar__menu a::after {
    content: '';
    position: absolute;
    width: 0;
    height: 1px;
    bottom: -4px;
    left: 0;
    background-color: var(--primary);
    transition: width 0.3s ease;
}

/* Rozwinięcie kreski do 100% szerokości po najechaniu */
.navbar__menu a:hover::after, 
.navbar__menu a.active::after {
    width: 100%;
}

/* ==========================================
   PRZYCISK REGISTER W NAVBARZE (Styl z sekcji Hero)
========================================== */
.navbar__register {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px; /* Nieco niższy niż w Hero, idealny do navbara */
    padding: 0 28px;
    background-color: #004b87; /* Ciemny, elegancki granat (dopasuj ewentualnie do zmiennej) */
    border: none; /* Usuwamy ramkę */
    border-radius: 9999px; /* Maksymalne zaokrąglenie (kształt pigułki) */
    color: #ffffff;
    font-family: var(--font-body, "Geist", sans-serif);
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); /* Delikatny cień dodający głębi */
    
    transition: 
        background-color 0.25s ease, 
        transform 0.25s ease, 
        box-shadow 0.25s ease;
}

.navbar__register:hover {
    background-color: #00335a; /* Ciemniejszy odcień przy najechaniu */
    color: #ffffff; /* Upewniamy się, że tekst zostaje biały */
    transform: translateY(-2px); /* Lekkie uniesienie przycisku */
    box-shadow: 0 6px 12px -2px rgba(0, 0, 0, 0.15); /* Zwiększony cień na hover */
}
[data-theme="dark"] .navbar {
    /* Ciemne szkło */
    background-color: rgba(15, 23, 42, 0.85);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

/* ==========================================
   ZACHOWANIE PODCZAS SKROLOWANIA 
========================================== */
.navbar.is-scrolled {
    /* Navbar zmniejsza wysokość podczas zjeżdżania w dół, 
       żeby oddać więcej miejsca na treść */
    height: 75px; 
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
}
@media (max-width: 1024px) {

    .navbar{

        padding:0 24px;

    }

   

    .navbar__register{

        display:none;

    }

    /* 1. Włączamy widoczność przycisku hamburgera */
    .navbar__toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 42px;
        border-radius: var(--radius-sm);
        border: 1px solid var(--border);
        background: var(--surface);
        color: var(--text);
        font-size: 1.25rem;
        cursor: pointer;
        transition: var(--transition);
    }

    .navbar__toggle:hover {
        background: var(--border);
    }

    /* 2. Ukrywamy poziome menu na start */
    .navbar__menu {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background: var(--background);
        border-bottom: 1px solid var(--border);
        box-shadow: var(--shadow-lg);
        
        /* Układ pionowy dla rozwijanego menu */
        flex-direction: column;
        align-items: flex-start;
        padding: 24px;
        gap: 16px;
    }

    /* 3. Klasa nadawana po kliknięciu przez Twój NavbarController.js */
    .navbar__menu.is-open {
        display: flex;
    }

}
/* 1. Kontener lewej kolumny - sztywne wyrównanie do lewej */
.hero__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    max-width: 600px;
}

/* 2. Tytuł główny z akcentem na rok */
.hero__title {
    font-family: var(--font-heading);
    font-size: var(--fs-800);
    font-weight: 700;
    line-height: 1.1;
    margin: 16px 0;
    color: var(--hero-title, var(--text));
}

.hero__title-year {
    color: var(--primary);
    font-weight: 400; /* Lżejsza waga fontu dla kontrastu */
}

/* 3. Podtytuł konferencji */
.hero__subtitle {
    font-size: var(--fs-500);
    color: var(--hero-muted, var(--muted));
    line-height: 1.6;
    margin-bottom: 24px;
}

/* 4. Pastylka z datą i miejscem (Metadata Badge) */
.hero__metadata {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 8px 18px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 999px;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--text);
    box-shadow: var(--shadow-sm);
    margin-bottom: 36px;
}

.hero__metadata-separator {
    color: var(--primary);
    font-weight: bold;
}

/* 5. Kontener na przyciski CTA */
.hero__actions {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.hero {

    position: relative;

    min-height: 100vh;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    padding: 120px 48px 80px;

}

.hero__eyebrow {

    font-family: var(--font-body);

    font-weight: 600;

    letter-spacing: .45em;

    display: inline-block;

    margin-bottom: 22px;

    color: var(--primary);

    text-transform: uppercase;

    font-size: .8rem;

    opacity: .95;

}

.hero__meta {

    display: flex;

    justify-content: center;

    gap: 28px;

    margin-top: 24px;

    color: var(--hero-muted);

    font-size: .95rem;

}

.hero__year-inline {

    color: var(--primary);

    font-size: .35em;

    font-weight: 500;

    letter-spacing: .35em;

    vertical-align: middle;

    margin-left: .4em;

}

.accent{

    color:var(--primary);

    font-weight:700;

}

.hero__description{

    margin-top:28px;

    color: var(--hero-muted);

    font-size:1rem;

    letter-spacing:.02em;

}
.hero--static .hero__background {

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            rgba(3,7,18,.82),
            rgba(3,7,18,.90)
        );

    z-index: 0;

}

.hero--static .hero__content {

    position: relative;
    z-index: 1;

}

.countdown {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    margin: 3rem 0;
    flex-wrap: wrap;
}

.countdown__item {
    min-width: 95px;
    padding: 1rem;

    border-radius: 16px;

    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.15);
    backdrop-filter: blur(12px);

    text-align: center;

    transition: transform .2s;
}

.countdown__item:hover {
    transform: translateY(-3px);
}

.countdown__value {
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1;
}

.countdown__label {
    margin-top: .6rem;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    opacity: .7;
}
.hero {

    position: relative;

    min-height: 100vh;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    padding: 120px 48px 80px;

}
.hero__title {

    font-family: "Syne", sans-serif;

    font-weight: 600;
letter-spacing: -0.04em;
font-size: clamp(4rem, 7vw, 5.8rem);


    margin-bottom: 8px;

}
.hero__content {

    position: relative;

    z-index: 2;

    max-width: 900px;

    text-align: center;

}
.hero__eyebrow {

    font-family: var(--font-body);

    font-weight: 600;

    letter-spacing: .45em;

    display: inline-block;

    margin-bottom: 22px;

    color: var(--primary);

    text-transform: uppercase;

    font-size: .8rem;

    opacity: .95;

}

.hero__meta {

    display: flex;

    justify-content: center;

    gap: 28px;

    margin-top: 24px;

    color: var(--hero-muted);

    font-size: .95rem;

}

.hero__actions {

    display: flex;

    justify-content: center;

    gap: 18px;

    margin-top:36px;
}

.hero__year-inline {

    color: var(--primary);

    font-size: .35em;

    font-weight: 500;

    letter-spacing: .35em;

    vertical-align: middle;

    margin-left: .4em;

}

.hero__subtitle {

    font-size: 2rem;

    line-height: 1.55;

    max-width: 900px;

}

.accent{

    color:var(--primary);

    font-weight:700;

}

.hero__description{

    margin-top:28px;

    color: var(--hero-muted);

    font-size:1rem;

    letter-spacing:.02em;

}
.hero--static .hero__background {

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            rgba(3,7,18,.82),
            rgba(3,7,18,.90)
        );

    z-index: 0;

}

.hero--static .hero__content {

    position: relative;
    z-index: 1;

}

/* ==========================================
   GŁÓWNY UKŁAD SEKCJI HERO
========================================== */

.hero {
    min-height: calc(100vh - var(--navbar-height, 80px));
    display: flex;
    align-items: center;
}

.hero__background {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.hero__container {
    position: relative;
    z-index: 2;
    width: min(1320px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 0.9fr;
    gap: 96px;
    align-items: center;
    padding: 80px 64px;
}

/* ==========================================
   LEWA KOLUMNA: TREŚĆ
========================================== */

.hero__content,
.hero__left {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    max-width: 600px;
    gap: 24px;
}

.section__eyebrow {
    color: var(--primary, #1E538E);
    text-transform: uppercase;
    letter-spacing: 0.35em;
    font-size: 0.75rem;
    font-weight: 600;
}

/* Tytuł główny i rok 2027 w jednej linii */
.hero__content h1.hero__title {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;          /* Blokuje zrzucenie do nowej linii */
    white-space: nowrap;        /* Ignoruje entery w szablonie JS */
    align-items: baseline;
    gap: 0.35em;
    margin: 0;
    width: 100%;
    font-family: var(--font-heading, sans-serif);
    font-size: var(--fs-800, clamp(3.5rem, 6vw, 5rem));
    font-weight: 700;
    line-height: 1.1;
    color: var(--hero-title, var(--text));
}

/* Styl dla roku 2027 wewnątrz tytułu */
.hero__content h1.hero__title .hero__title-year {
    display: inline-block;
    color: var(--primary, #1E538E);
    font-weight: 600;
    letter-spacing: normal;
    margin: 0;
    font-size: 0.85em;
}

.hero__subtitle {
    text-align: left;
    width: 100%;
    font-size: 1.2rem;
    color: var(--navbar-text-muted, #475569);
    line-height: 1.6;
    margin: 0;
}

/* ==========================================
   METADATA BADGE (Pastylka z datą)
========================================== */

.hero__metadata,
.hero__meta {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 8px 20px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 999px;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--text);
    box-shadow: var(--shadow-sm);
}
/* Wyrównanie ikony z tekstem */
.hero__metadata-item {
    display: flex;
    align-items: center;
    gap: 8px; /* Odstęp między ikoną a tekstem */
}

/* Ikony SVG dziedziczą kolor po tekście */
.hero__metadata-item svg {
    color: currentColor; 
}
.hero__metadata-separator,
.hero__dot {
    color: var(--muted);
    opacity: 0.5;
}

.hero__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 8px;
}

/* ==========================================
   PRAWA KOLUMNA: GRAFIKA (ART)
========================================== */

.hero__art {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.hero__art::before {
    content: '';
    position: absolute;
    width: 520px;
    height: 520px;
    background: radial-gradient(circle, var(--hero-glow-1, rgba(30, 83, 142, 0.08)) 0%, transparent 70%);
    opacity: 1;
    filter: blur(90px);
    z-index: -1;
}


.hero__subtitle {

    font-size: 1.15rem;

    line-height: 1.8;

    color: var(--text-secondary);

    max-width: 720px;

}

.hero__subtitle .highlight {

    color: var(--primary);

    font-weight: 700;

    font-size: 1.08em;

    font-family: "Syne", sans-serif;

}
/* ==========================================
   RESPONSYWNOŚĆ (RWD < 992px)
========================================== */

@media (max-width: 992px) {
    .hero__container {
        grid-template-columns: 1fr;
        gap: 48px;
        text-align: center;
        padding: 64px 32px;
    }

    .hero__content,
    .hero__left {
        align-items: center;
        text-align: center;
    }

    h1.hero__title {
        justify-content: center !important;
    }

    .hero__subtitle {
        text-align: center;
        max-width: 100%;
    }
}
.hero__art{

    display:flex;
    justify-content:center;
    align-items:center;

    position:relative;

}

.hero__art svg{

    width:min(320px,100%);
    height:auto;
    filter:
        drop-shadow(0 20px 40px rgba(0,0,0,.18));
    animation:heroFloat 8s ease-in-out infinite;

}

.hero__art::before{

    content:"";

    position:absolute;

    width:420px;
    height:420px;

    border-radius:50%;

    background:
        radial-gradient(circle,
            rgba(61,185,232,.18),
            transparent 70%);

    filter:blur(40px);

    z-index:-1;

}

[data-theme="dark"] .hero-art__svg{

    filter:
        drop-shadow(0 0 12px rgba(0,255,240,.12))
        drop-shadow(0 0 26px rgba(139,92,246,.08));

}
.hero__art{

    display:flex;

    flex-direction:column;

    align-items:center;

}

.hero__brand{

    margin-top:0rem;

    text-align:center;

}

.hero__brand-title{

    font-family:var(--font-heading);

    font-size:1.8rem;

    font-weight:700;

    letter-spacing:.12em;

    color:var(--primary);

}

.hero__brand-subtitle{

    margin-top:.75rem;

    font-size:1rem;

    line-height:1.45;

    color:var(--text-secondary);

}
.about {
    /* USUNIĘTO min-height: 100vh; */
    display: flex;
    align-items: center;
    padding: 80px 0; /* Zmienione z 140px 0 */
}

.about__container {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 120px;
    align-items: center;
}

.about__label{

    color:var(--accent);

    text-transform:uppercase;

    letter-spacing:.25em;

    font-size:.8rem;

    margin-bottom:24px;

}

.about__title {
    font-family: "Syne", sans-serif;
    font-size: clamp(1.8rem, 3vw, 3rem);
    font-weight: 700;
    line-height: 1;
    color: var(--text);
    margin-bottom: 36px;
}
.about__text{

    max-width:720px;

    color:var(--text-secondary);

    font-size:1.15rem;

    line-height:1.9;

}

.about__card{

    border:1px solid rgba(255,255,255,.08);

    border-radius:24px;

    padding:48px;

    backdrop-filter:blur(20px);

}

.about__year{

    font-size:4rem;

    font-weight:700;

    margin-bottom:20px;

}

.about__city{

    font-size:2rem;

    margin-bottom:12px;

}

.about__date{

    color:var(--text-secondary);

}
/* ==========================================
   STYLIZACJA LINKU (Podkreślenie + Strzałka)
========================================== */
.about__link {
    /* Usuwamy display: inline-flex i gap - link wraca do naturalnego zachowania tekstu */
    font-weight: 400; 
    color: var(--primary, #0284c7);
    
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    text-decoration-color: rgba(2, 132, 199, 0.4); 
    
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

/* Animacja samej strzałki */
.about__link-arrow {
    display: inline-block;
    margin-left: 6px; /* Zastępuje nam flexowe 'gap' */
    text-decoration: none; /* Wyłącza podkreślenie pod samą strzałką */
    transition: transform 0.2s ease;
}

/* Efekt po najechaniu myszką */
.about__link:hover {
    color: var(--primary-hover, #0369a1);
    text-decoration-color: currentColor; 
}

.about__link:hover .about__link-arrow {
    transform: translateX(4px); 
}
/* DODATEK: Responsywność dla ekranów mobilnych (żeby tekst i karta ustawiły się w kolumnę na telefonach) */
@media (max-width: 960px) {
    .about__container {
        grid-template-columns: 1fr;
        gap: 60px;
    }
}

.topics{

    padding:160px 0;

}

.topics__container{

    width:min(1200px,92%);

    margin:auto;

}

.topics__label{

    color:var(--accent);

    letter-spacing:.25em;

    text-transform:uppercase;

    margin-bottom:20px;

}

.topics__title{

    font-size:clamp(2.5rem,5vw,4.5rem);

    margin-bottom:80px;

}

.topics__grid{

    display:grid;

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

    gap:32px;

}

.topic{

    padding:40px;

    border:1px solid rgba(255,255,255,.08);

    border-radius:24px;

    transition:.35s;

}

.topic:hover{

    transform:translateY(-6px);

    border-color:var(--accent);

}
/* ===================================================== */
/* SPEAKERS                                               */
/* ===================================================== */

.speakers {
    padding: 80px 0; /* Zmienione z 120px 0 */
    background: var(--background);
}

.speakers__container {
    max-width: 1400px;
    margin: 0 auto;
}


/* ===================================================== */
/* HEADER                                                 */
/* ===================================================== */

.speakers__header {
    max-width: 760px;
    margin-bottom: 70px;
}

.speakers__eyebrow {
    display: block;
    margin-bottom: 14px;

    font-family: "Syne", sans-serif;
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .28em;

    color: var(--primary);
}


.speakers__title {
    margin: 0;
    font-family: "Syne", sans-serif;
    font-size: clamp(1.8rem, 3vw, 3rem);
    font-weight: 700;
    line-height: 1;
    color: var(--text);
}


.speakers__intro {
    margin-top: 1.5rem;

    max-width: 620px;

    color: var(--muted);
    line-height: 1.8;
}


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

.speakers__grid {

    display:grid;

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

    column-gap:5rem;

}


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

.speaker {

    display:flex;

    gap:1.25rem;

    padding:1.6rem 0;

    border-bottom:1px solid var(--border);

    transition:.25s ease;

}

.speaker:hover{

    padding-left:12px;

    border-left:3px solid var(--primary);

}


/* ===================================================== */
/* NUMBER                                                 */
/* ===================================================== */

.speaker__number{

    width:34px;

    flex-shrink:0;

    font-family:"Syne",sans-serif;

    font-size:.75rem;

    letter-spacing:.25em;

    color:var(--primary);

}


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

.speaker__content{

    flex:1;

}

.speaker__name{

    margin:0;

    font-family:"Syne",sans-serif;

    font-size:1.45rem;

    font-weight:500;

    color:var(--text);

}

.speaker__affiliation{

    margin-top:.45rem;

    color:var(--primary);

    font-size:1rem;

}

.speaker__position{

    margin-top:.2rem;

    color:var(--muted);

    font-size:.92rem;

}
/* ==========================================
   SEKCJA KOMITETU
========================================== */
.committee {
    padding: 80px 0; /* Zmienione z 6rem 0 */
    background-color: var(--surface, #ffffff);
}

.committee__header {
    text-align: center;
    margin-bottom: 4rem;
}

.committee__eyebrow {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--primary, #0284c7);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}

.committee__title {
    font-size: 2.5rem;
    color: var(--text, #0f172a);
    margin: 0;
}

/* GRUPY (Scientific / Local) */
.committee__group {
    margin-bottom: 4rem;
}

.committee__group:last-child {
    margin-bottom: 0;
}

.committee__group-title {
    font-size: 1.5rem;
    color: var(--text, #0f172a);
    margin-bottom: 2rem;
    text-align: center;
    border-bottom: 1px solid var(--border, #e2e8f0);
    padding-bottom: 1rem;
}

/* SIATKA CZŁONKÓW */
.committee__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 2rem;
}

/* POJEDYNCZY CZŁONEK */
.committee__member {
    background: var(--surface-alt, #f8fafc);
    padding: 1.5rem;
    border-radius: 12px;
    border: 1px solid var(--border, #e2e8f0);
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.committee__member:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
}

.committee__member-name {
    font-size: 1.125rem;
    color: var(--text, #0f172a);
    margin: 0 0 0.5rem 0;
}

.committee__member-affiliation {
    font-size: 0.875rem;
    color: var(--text-secondary, #64748b);
    margin: 0;
}

.committee__member-role {
    display: inline-block;
    margin-top: 1rem;
    padding: 0.25rem 0.75rem;
    background-color: var(--primary-light, #e0f2fe);
    color: var(--primary-dark, #0369a1);
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 999px;
    text-transform: uppercase;
}

/* STAN PUSTY */
.committee__empty {
    text-align: center;
    padding: 4rem 0;
}

.committee__empty p {
    font-size: 1.25rem;
    color: var(--text-secondary, #64748b);
    font-weight: 500;
}

/* ==========================================
   DODATKOWE INFORMACJE O KOMITECIE
========================================== */
.committee__additional-info {
    margin-top: 4rem;
    padding-top: 3rem;
    border-top: 1px solid var(--border, #e2e8f0);
    color: var(--text-secondary, #475569);
    font-size: 1rem;
    line-height: 1.7;
}

.committee__additional-info p {
    margin-bottom: 1.5rem;
}

.committee__additional-info strong {
    color: var(--text, #0f172a);
}

.committee__dioscuri ul {
    margin-bottom: 2rem;
    padding-left: 2rem; /* Powiększony margines dla kropek */
    list-style-type: disc; /* Przywrócenie kropek */
}

.committee__dioscuri li {
    margin-bottom: 0.5rem;
    display: list-item; /* Ochrona przed globalnym resetem CSS */
}

.committee__contact a {
    color: var(--primary, #0284c7);
    text-decoration: underline; /* Wymuszenie stałego podkreślenia */
    text-underline-offset: 4px;
    font-weight: 500;
}

.committee__contact a:hover {
    text-decoration: none; /* Znika po najechaniu myszką */
}

/* ==========================================
   TRYB CIEMNY (Dark Mode)
========================================== */
[data-theme="dark"] .committee {
    background-color: var(--surface, #0f172a);
}

[data-theme="dark"] .committee__title,
[data-theme="dark"] .committee__group-title,
[data-theme="dark"] .committee__member-name {
    color: var(--text, #f8fafc);
}

[data-theme="dark"] .committee__group-title {
    border-color: var(--border, #1e293b);
}

[data-theme="dark"] .committee__member {
    background: var(--surface-alt, #1e293b);
    border-color: var(--border, #334155);
}

[data-theme="dark"] .committee__member-role {
    background-color: rgba(56, 189, 248, 0.1);
    color: #38bdf8;
}

[data-theme="dark"] .committee__additional-info {
    border-top-color: var(--border, #1e293b);
    color: #94a3b8;
}

[data-theme="dark"] .committee__additional-info strong {
    color: #f8fafc;
}
/* ===================================================== */
/* PARTNERS                                               */
/* ===================================================== */

.partners {
    position: relative;
    padding: 80px 7vw; /* Zmienione z 110px 7vw 130px */
    background: var(--surface-alt); 
    overflow: hidden;
}

.partners__container {
    max-width: 1400px;
    margin: 0 auto;
}

/* HEADER */

.partners__header {
    margin-bottom: 80px;
}

.partners__eyebrow {
    display: block;
    margin-bottom: 16px;
    font-family: "Syne", sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.28em;
    color: #22e7ff;
}

.partners__title {
    margin: 0;
    font-family: "Syne", sans-serif;
    font-size: clamp(1.8rem, 3vw, 3rem);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.03em;
    color: #f2fcff;
}

/* GROUP */

.partners__group {
    position: relative;
}

.partners__label {
    margin-bottom: 40px;
    font-family: "Syne", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(200, 215, 230, 0.45);
}

/* LOGOS */

.partners__logos {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 60px 90px;
}

.partners__logos--organizers {
    gap: 70px 110px;
}

/* ITEM */

.partners__item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
}

.partners__logo-box {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;

    width: 320px;
    height: 130px;
    padding: 22px 30px;

    background: #ffffff;
    border-radius: 8px;
}

.partners__logo {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 260px;
    max-height: 86px;
    object-fit: contain;
    opacity: 0.9;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.partners__item:hover .partners__logo {
    opacity: 1;
    transform: translateY(-3px);
}

/* NAME */

.partners__name {
    max-width: 320px;
    font-family: "Syne", sans-serif;
    font-size: 13px;
    line-height: 1.5;
    color: rgba(200, 215, 230, 0.6);
}

/* DIVIDER */

.partners__divider {
    width: 100%;
    height: 1px;
    margin: 70px 0;
    background: linear-gradient(
        90deg,
        rgba(34, 231, 255, 0.3),
        rgba(118, 88, 255, 0.2),
        transparent
    );
}

/* MOBILE */

@media (max-width: 768px) {
    .partners {
        padding: 80px 28px 100px;
    }

    .partners__header {
        margin-bottom: 60px;
    }

    .partners__logos,
    .partners__logos--organizers {
        flex-direction: column;
        align-items: flex-start;
        gap: 50px;
    }

    .partners__logo-box {
        width: min(320px, calc(100vw - 56px));
        height: 120px;
        padding: 20px 24px;
    }

    .partners__logo {
        max-width: 240px;
        max-height: 75px;
    }
}

/* ==========================================
   TŁO I KONTRAST TEKSTÓW W JASNYM MOTYWIE
========================================== */
[data-theme="light"] .partners {
    /* Konkretny, ciemniejszy szary, który mocno odetnie się od Venue */
    background-color: #cbd5e1; 
}

/* Wymuszamy mocny, ciemny kolor na wszystkich tekstach w tej sekcji */
[data-theme="light"] .partners__title,
[data-theme="light"] .partners__label,
[data-theme="light"] .partners__name {
    color: #0f172a; /* Bardzo głęboki, niemal czarny kolor dla idealnej czytelności */
}

/* Kolor dla małego napisu "ORGANIZERS & PARTNERS" nad tytułem */
[data-theme="light"] .partners__eyebrow {
    color: #0284c7; /* Mocniejszy niebieski, jeśli domyślny primary byłby za jasny */
    font-weight: 700;
}

/* Odwracamy białe logotypy na ciemne w jasnym motywie */


/* ==========================================
   KOLORY DLA CIEMNEGO MOTYWU (Księżyc)
========================================== */
[data-theme="dark"] .partners {
    background-color: #0f172a; /* Bardzo ciemny granat (niemal czarny) */
}

/* Główne teksty na biało */
[data-theme="dark"] .partners__title,
[data-theme="dark"] .partners__label,
[data-theme="dark"] .partners__name {
    color: #f8fafc; 
}

/* Mały napis nad tytułem w jaśniejszym niebieskim dla lepszego kontrastu */
[data-theme="dark"] .partners__eyebrow {
    color: #38bdf8; 
}
.venue {
    padding: 7rem 0;
    background: var(--surface-alt);
}

/* GŁÓWNA SIATKA */
.venue__grid {
    display: grid;
    /* Szersza lewa kolumna (1fr), prawa zajmuje 1.2fr */
    grid-template-columns: 1fr 1.2fr; 
    gap: 4rem;
    /* Rozciąga obie kolumny do identycznej wysokości */
    align-items: stretch; 
}

/* LEWA KOLUMNA (Zawartość) */
.venue__content {
    display: flex;
    flex-direction: column;
    justify-content: center; /* Wyśrodkowuje całość w pionie względem zdjęcia */
}

/* NAGŁÓWEK (Teraz po lewej) */
.venue__header {
    text-align: left;
    margin-bottom: 3.5rem;
}

.venue__eyebrow {
    display: block;
    margin-bottom: 14px;
    font-family: "Syne", sans-serif;
    font-size: 0.75rem; /* Przywracamy mały rozmiar, jak w sekcji Speakers */
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--primary);
}

.venue__title {
    margin: 0 0 36px 0;
    font-family: "Syne", sans-serif;
    font-size: clamp(1.8rem, 3vw, 3rem); /* Taki sam jak w About i Speakers */
    font-weight: 700; /* Dodajemy brakujące pogrubienie */
    line-height: 1;
    color: var(--text);
}

.venue__lead {
    color: var(--text-secondary);
    line-height: 1.8;
}

/* SZCZEGÓŁY (Daty, Adres) */
.venue__details {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.venue__label {
    display: block;
    color: var(--primary);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: .4rem;
}

.venue__value {
    color: var(--text);
    line-height: 1.8;
}

/* PRAWA KOLUMNA (Obrazek) */
.venue__image {
    position: relative;
    border-radius: 28px;
    overflow: hidden;
    box-shadow: 0 25px 60px rgba(0,0,0,.15);
    display: flex; /* Zapewnia rozciąganie obrazka wewnątrz flex/grid kontenera */
}

.venue__image img {
    display: block;
    width: 100%;
    height: 100%; /* Obraz dopasowuje się do wysokości lewej kolumny */
    min-height: 560px; /* Minimalna wysokość, żeby zawsze dobrze wyglądał */
    object-fit: cover;
}

.venue__image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(0,0,0,.38),
        transparent 45%
    );
}

.venue__card {
    position: absolute;
    left: 2rem;
    bottom: 2rem;
    z-index: 2;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(18px);
    padding: 1.5rem 1.7rem;
    border-radius: 20px;
    max-width: 340px;
}

.venue__card h3 {
    margin: 0;
    color: var(--text); /* Wymusza ciemny tekst na jasnym tle karty w obu motywach */
}

.venue__card p {
    margin: .5rem 0 1rem;
    color: var(--text-secondary);
}

.venue__card a {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
}

.venue__card a:hover {
    text-decoration: underline;
}

/* RESPONSYSWNOŚĆ (Ekrany Mobilne) */
@media(max-width: 960px) {
    .venue__grid {
        grid-template-columns: 1fr;
    }
    .venue__image img {
        min-height: 400px; /* Nieco niższy obraz na telefonach */
    }
}

/* ==========================================
   KOLORY DLA CIEMNEGO MOTYWU (Księżyc)
========================================== */
[data-theme="dark"] .venue {
    background-color: #1e293b; /* Ciemnoszary/granatowy dla odcięcia tła */
}

[data-theme="dark"] .venue__title,
[data-theme="dark"] .venue__value {
    color: #f8fafc; 
}

[data-theme="dark"] .venue__lead {
    color: #94a3b8; 
}

[data-theme="dark"] .venue__card {
    background: rgba(15, 23, 42, 0.92); 
}

[data-theme="dark"] .venue__card h3 {
    color: #f8fafc;
}

[data-theme="dark"] .venue__card p {
    color: #94a3b8;
}
/* ==========================================
   SEKCJA PROGRAMME (Główny kontener)
========================================== */

.programme {
    padding: 80px 0;
    background-color: var(--background, #0f172a); /* Ciemne tło */
    color: var(--text, #f8fafc);
}

.programme__title {
    font-family: "Syne", sans-serif;
    font-size: clamp(1.8rem, 3vw, 3rem);
    font-weight: 700;
    line-height: 1;
    color: var(--text);
    margin-bottom: 48px;
}

/* Stan, gdy nie ma wydarzeń */
.schedule__empty {
    font-family: var(--font-body, sans-serif);
    font-size: 1.1rem;
    color: var(--muted, #94a3b8);
    padding: 32px;
    text-align: center;
    border: 1px dashed var(--border, rgba(255, 255, 255, 0.1));
    border-radius: 12px;
}
/* src/components/sections/Programme/components/ProgrammeCard.css */

.card {
    background: var(--surface);
    border: 1px solid var(--border);
    box-shadow: var(--shadow-sm);
    border-radius: var(--radius);
    overflow: hidden;
    transition: var(--transition);
}

.card:hover {
    transform: translateY(-8px);
    border-color: var(--primary);
}

.programme-card__header{

    margin-bottom:2.5rem;

}

.programme-card__label{

    color:var(--text-secondary);

    font-size:.9rem;

    text-transform:uppercase;

    letter-spacing:.12em;

    margin-bottom:.5rem;

}

.programme-card__title{

    margin:0;

    font-size:2rem;

}

.programme-card__date{

    margin-top:.35rem;

    color:var(--text-secondary);

}

/* ===================================== */

.programme-card__events{

    display:flex;

    flex-direction:column;

    gap:2rem;

}
.programme-day {
    min-height: auto; /* Usuwa rozciąganie na cały ekran (100vh) */
    padding: 24px 0;  /* Ustawia sensowniejszy, mniejszy margines wewnętrzny */
}
/* ===================================== */

.programme-event{

    display:grid;

    grid-template-columns:90px 50px 1fr;

    gap:2rem;

    align-items:flex-start;

    position:relative;

}

/* ===================================== */

.programme-event__time{

    text-align:right;

    color:var(--text-secondary);

    font-weight:600;

    padding-top:10px;

    white-space:nowrap;

}

/* ===================================== */

.programme-event__timeline{

    position:relative;

    display:flex;

    justify-content:center;

    align-items:flex-start;

}

.programme-event__timeline::after{

    content:"";

    position:absolute;

    top:42px;

    bottom:-40px;

    left:50%;

    transform:translateX(-50%);

    width:2px;

    background:rgba(255,255,255,.08);

}

.programme-event:last-child .programme-event__timeline::after{

    display:none;

}

/* ===================================== */

.programme-event__dot{

    width:42px;

    height:42px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:linear-gradient(
        135deg,
        var(--color-primary),
        var(--color-secondary)
    );

    box-shadow:
        0 0 0 6px rgba(255,255,255,.02),
        0 0 25px rgba(255,120,0,.25);

    position:relative;

    z-index:2;

    font-size:1.05rem;

}
/* ===================================== */

.programme-event__card{

    position:relative;

    background:rgba(255,255,255,.04);

    border:1px solid rgba(255,255,255,.08);

    border-radius:20px;

    padding:1.5rem;

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;

}

.programme-event__card:hover{

    transform:translateY(-2px);

    border-color:rgba(255,255,255,.16);

    box-shadow:
        0 16px 36px rgba(0,0,0,.22);

}

/* ===================================== */

.programme-event__header{

    display:flex;

    justify-content:space-between;

    align-items:flex-start;

    gap:1rem;

    margin-bottom:.9rem;

}

.programme-event__header h3{

    margin:0;

    font-size:1.15rem;

    line-height:1.35;

    font-weight:700;

    color:var(--text-primary);

}

.programme-event__header span{

    flex-shrink:0;

    color:var(--text-secondary);

    font-size:.9rem;

}

/* ===================================== */

.programme-event__speaker{

    margin-top:.3rem;

    font-weight:600;

    color:var(--text-primary);

}

/* ===================================== */

.programme-event__location{

    margin-top:.35rem;

    color:var(--text-secondary);

    font-size:.95rem;

}

/* ===================================== */

.programme-event--coffee .programme-event__dot{

    background:linear-gradient(
        135deg,
        #b7791f,
        #d69e2e
    );

}

.programme-event--lunch .programme-event__dot{

    background:linear-gradient(
        135deg,
        #c05621,
        #dd6b20
    );

}

.programme-event--registration .programme-event__dot{

    background:linear-gradient(
        135deg,
        #2563eb,
        #3b82f6
    );

}

.programme-event--opening .programme-event__dot{

    background:linear-gradient(
        135deg,
        #7c3aed,
        #9333ea
    );

}

.programme-event--trip .programme-event__dot{

    background:linear-gradient(
        135deg,
        #0f766e,
        #14b8a6
    );

}

.programme-event--social .programme-event__dot{

    background:linear-gradient(
        135deg,
        #be185d,
        #ec4899
    );

}

.programme-event--talk .programme-event__dot{

    background:linear-gradient(
        135deg,
        var(--color-primary),
        var(--color-secondary)
    );

}
/* ===================================== */

.programme-event__card::before{

    content:"";

    position:absolute;

    inset:0;

    border-radius:inherit;

    pointer-events:none;

    background:linear-gradient(
        180deg,
        rgba(255,255,255,.03),
        transparent 45%
    );

}

/* ===================================== */

.programme-event:target .programme-event__card{

    border-color:var(--color-primary);

    box-shadow:
        0 0 0 1px rgba(255,120,0,.25),
        0 16px 40px rgba(0,0,0,.25);

}

/* ===================================== */

.programme-event+.programme-event{

    margin-top:.25rem;

}

/* ===================================== */

@media (max-width:900px){

    .programme-card{

        margin-bottom:4rem;

    }

    .programme-event{

        grid-template-columns:72px 42px 1fr;

        gap:1rem;

    }

    .programme-event__time{

        font-size:.92rem;

        padding-top:8px;

    }

    .programme-event__dot{

        width:36px;

        height:36px;

        font-size:.95rem;

    }

    .programme-event__timeline::after{

        top:36px;

        bottom:-32px;

    }

    .programme-event__card{

        padding:1.2rem;

    }

    .programme-event__header h3{

        font-size:1.05rem;

    }

}

/* ===================================== */

@media (max-width:640px){

    .programme-event{

        grid-template-columns:1fr;

        gap:.8rem;

    }

    .programme-event__time{

        text-align:left;

        padding:0;

        font-size:.9rem;

    }

    .programme-event__timeline{

        display:none;

    }

    .programme-event__card{

        margin-left:0;

    }
    

}
/* ==========================================
   POJEDYNCZE WYDARZENIE (Oś czasu Programme)
========================================== */

.programme-event {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    position: relative;
    padding-bottom: 32px;
}

/* Pionowa linia łącząca wydarzenia */
.programme-event:not(:last-child)::before {
    content: '';
    position: absolute;
    top: 26px; /* Start dokładnie od środka kropki (20px margin-top + 6px promień) */
    left: 149px; 
    bottom: -26px; /* Dociągnięcie linii w dół dokładnie do środka kropki następnego elementu */
    width: 2px;
    background-color: var(--border, #e2e8f0); 
    z-index: 0;
}

/* ==========================================
   CZAS (Z lewej strony)
========================================== */

.programme-event__time {
    width: 120px; /* Sztywna szerokość zamiast min-width */
    flex-shrink: 0; /* Gwarantuje, że blok nigdy się nie ściśnie */
    font-family: var(--font-body, "Geist", sans-serif);
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--text-muted, #64748b);
    padding-top: 16px;
    text-align: right;
}

/* Kropka na osi */
.programme-event__indicator {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: var(--primary, #0ea5e9); /* Ładny, żywy niebieski */
    margin-top: 20px;
    z-index: 1;
    /* Obramowanie w kolorze tła (białe na jasnym motywie) */
    box-shadow: 0 0 0 4px var(--background, #ffffff); 
}

/* ==========================================
   KARTA (Z prawej strony)
========================================== */

.programme-event__card {
    flex: 1;
    background-color: var(--surface, #ffffff); /* Czysta biel kart */
    border: 1px solid var(--border, #e2e8f0); /* Wyraźna, jasnoszara ramka */
    border-radius: 12px;
    padding: 20px 24px;
    /* Subtelny cień odrywający kartę od tła */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03); 
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.programme-event__card:hover {
    /* Bardzo delikatna zmiana tła na ułamek szarości/błękitu */
    background-color: var(--surface-hover, #f8fafc);
    border-color: var(--primary, #0ea5e9); 
    /* Mocniejszy cień i uniesienie karty do góry */
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); 
    transform: translateY(-2px); 
}

.programme-event__title {
    font-family: var(--font-heading, "Syne", sans-serif);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--text, #0f172a); /* Ciemny, czytelny granat/czerń */
    margin: 0;
    line-height: 1.3;
}

.programme-event__desc {
    font-family: var(--font-body, "Geist", sans-serif);
    font-size: 0.95rem;
    color: var(--text-muted, #475569); /* Ciemnoszary dla opisów */
    margin: 6px 0 0 0;
    line-height: 1.5;
}
/* ==========================================
   LOGO NAVBAR (Układ z Separatorem)
========================================== */

.navbar__brand-container {
    display: flex;
    align-items: center;
    gap: 16px;
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.navbar__brand-container:hover {
    opacity: 0.85;
}

/* ==========================================
   LEWA STRONA (Główna nazwa i rocznik)
========================================== */

.navbar__logo-left {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
}

.navbar__logo-title {
    /* 
       👇 TUTAJ TESTUJEMY NOWE FONTY! 
       Podmień na: "Playfair Display" lub "Crimson Pro" 
    */
    font-family: var(--font-heading);
    font-size: var(--fs-600);
    font-weight: 700;
    letter-spacing: 0.15em;
    color: var(--navbar-text, #0f172a);
    line-height: 1;
    margin-bottom: 4px;
}

.navbar__logo-year-wrapper {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding-right: 4px;
}

/* Pozioma kreseczka przed rokiem */
.navbar__logo-line {
    height: 1px;
    width: 48px; 
    background-color: var(--muted, #94a3b8);
    opacity: 0.6;
}

.navbar__logo-year {
    font-family: var(--font-body, "Geist", sans-serif);
    font-size: var(--fs-400); /* Z Twojego typography.css */
    font-weight: 500;
    color: var(--navbar-text-muted, #64748b);
    letter-spacing: 0.05em;
}

/* ==========================================
   PIONOWY SEPARATOR
========================================== */

.navbar__logo-separator {
    width: 1px;
    height: 54px;
    background-color: var(--border, #e2e8f0);
}

/* ==========================================
   PRAWA STRONA (Rozwinięcie)
========================================== */

.navbar__logo-right {
    font-family: var(--font-body, "Cormorant Garamond", sans-serif);
    font-size: 0.75rem; /* Celowo małe, żeby nie przytłaczało */
    line-height: 1.35;
    color: var(--navbar-text-muted, #475569);
    text-align: left;
}

/* Wyróżnione litery tworzące akronim */
.navbar__logo-right .highlight {
    color: var(--primary, #1E538E);
    font-weight: 600;
}
.footer {
    padding: 3rem 0;
    /* Korzystamy ze zmiennych motywu, żeby automatycznie reagował na słońce/księżyc */
    background: var(--background, #0f172a);
    border-top: 1px solid var(--border, rgba(255, 255, 255, 0.1));
}

.footer__container {
    width: min(1200px, 92%);
    margin: 0 auto;
}

.footer__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap; /* Pozwala na zawijanie tekstu na wąskich ekranach */
    gap: 1rem;
}

/* ==========================================
   TYPOGRAFIA FOOTERA
========================================== */
.footer__copyright,
.footer__university {
    font-family: var(--font-body, "Geist", sans-serif);
    font-size: 0.85rem;
    color: var(--muted, #94a3b8);
}

.footer__university span {
    margin: 0 8px;
    opacity: 0.5;
}

/* ==========================================
   RESPONSYWNOŚĆ (Ekrany Mobilne)
========================================== */
@media (max-width: 768px) {
    .footer__bottom {
        flex-direction: column;
        text-align: center;
        gap: 1.5rem;
    }
}
.programme {
    padding: 8rem 0;
}

.programme h1 {
    margin-bottom: 3rem;
    text-align: center;
    font-size: clamp(2rem, 4vw, 3rem);
}

.programme-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 4rem;
    align-items: start;
}

.programme-navigation {
    position: sticky;
    top: 100px;

    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.programme-navigation a {
    color: var(--text-secondary);
    text-decoration: none;

    padding: .85rem 1rem;

    border-radius: 12px;

    transition: .25s;
}

.programme-navigation a:hover {
    background: rgba(255,255,255,.05);
    color: var(--text-primary);
}

.programme-content {
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

.programme-day__header {
    margin-bottom: 2rem;
}

.programme-day__header h2 {
    margin-bottom: .3rem;
}

.programme-day__header span {
    color: var(--text-secondary);
}

.programme-day__items {
    position: relative;

    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.programme-item{

    display:grid;

    grid-template-columns:90px 50px 1fr;

    gap:2rem;

    align-items:flex-start;

    position:relative;

}

.programme-item__time{

    text-align:right;

    font-weight:600;

    color:var(--text-secondary);

    padding-top:8px;

}

.programme-item__timeline{

    position:relative;

    display:flex;

    justify-content:center;

}

.programme-item__timeline::after{

    content:"";

    position:absolute;

    top:40px;

    bottom:-60px;

    width:2px;

    background:rgba(255,255,255,.08);

}

.programme-item:last-child
.programme-item__timeline::after{

    display:none;

}

.programme-item__dot{

    width:42px;

    height:42px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:linear-gradient(
        135deg,
        var(--color-primary),
        var(--color-secondary)
    );

    box-shadow:
        0 0 0 6px rgba(255,255,255,.02),
        0 0 25px rgba(255,120,0,.25);

    z-index:2;

}

.programme-item__card{

    background:rgba(255,255,255,.04);

    border:1px solid rgba(255,255,255,.08);

    border-radius:20px;

    padding:1.6rem;

    transition:.25s;

}

.programme-item__card:hover{

    transform:translateY(-3px);

    border-color:rgba(255,255,255,.15);

}

.programme-item__header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:1rem;

}

.programme-item__header h3{

    margin:0;

}

.programme-item__room{

    padding:.35rem .8rem;

    border-radius:999px;

    background:rgba(255,255,255,.05);

    font-size:.8rem;

}

.programme-item__speaker{

    margin-top:1rem;

    font-weight:600;

}

.programme-item__affiliation{

    margin-top:.35rem;

    color:var(--text-secondary);

}
.programme-navigation a.active{

    background:linear-gradient(
        135deg,
        var(--color-primary),
        var(--color-secondary)
    );

    color:white;

    font-weight:600;

}
.programme-icon{

    width:20px;
    height:20px;

    color:white;

}
}
