        :root{
            /* Standartinis nustatymas visoms naršyklėms */
            font-family: Inter, sans-serif;
  
  /* Įjungia automatines ligatūras ir simbolių pataisymus (pvz., Chrome naršyklėje) */
            font-feature-settings: 'liga' 1, 'calt' 1;
            --bg:#fff;
            --bg-darker: #F2F2F2;
            --text-light:#fff;
            --accent-light:#7BBE98;
            --accent:#038B45;
            --accent-dark:#003D1E;
            --txt-s-h2:40px;
        }
        @supports (font-variation-settings: normal) {
          :root { 
            font-family: InterVariable, sans-serif; 
          }
        }

        *{box-sizing:border-box}

        html{
            scroll-behavior: smooth;
            height: 100%;
            overflow-x: hidden;
        }

         body{
            overflow-x: hidden;
            margin:0;
            font-family: inherit;
            font-size: 1rem;
            line-height: 1.5;
            color:#0c0c0c;
            font-weight: 400;
            background:var(--bg);
            -webkit-font-smoothing:antialiased;
            -moz-osx-font-smoothing:grayscale;
        }


        /*--- MAIN  ----------------------------------------------------------------------------------------------------*/

        .hero-banner {
            position: relative;
            width: 100%;
            /* 100vh is measured against the LARGEST possible viewport (toolbar
               hidden). Mobile Safari's address bar/toolbar shrinks on scroll,
               so 100vh doesn't match the actual visible area — the whole
               section (and everything absolutely positioned inside it, like
               .photo-wrapper) visibly jumps as the toolbar animates. 100dvh
               tracks the *current* visible viewport instead. Keep 100vh
               first as a fallback for browsers that don't support dvh. */
            height: 100vh;
            height: 100dvh;
            /* Floor so the section never squeezes its own content (logo,
               CTA, photo) into an unreasonably short box on very short
               viewports — min-height always wins over height when the two
               conflict, so below 710px the section just grows past the
               fold instead of shrinking; the rest of the page scrolls into
               view normally, same as any section taller than the screen. */
            min-height: 710px;
            /* Smooths both the dvh swing (Safari toolbar showing/hiding)
               and the moment the section hits the 710px floor — without
               this, either one is an instant snap. */
            transition: height 0.3s ease;
            background-color: var(--bg-darker); /* Light grey/white background */
            overflow: hidden;
            display: flex;
            flex-direction: column;
            align-items: center;
            padding-top: 40px;
        }

        /* -------------------Decorative background shapes (L & R) */
        .deco {
        position: absolute;
        z-index: 0;
        pointer-events: none; /* Allows clicking through to content */
        -webkit-user-drag: none;
        -webkit-user-select: none;
        -ms-user-select: none;
        user-select: none;
        }

        .deco-left {
        top: 45%;
        left: -20px;
        height: 296px;
        }

        .deco-right {
        top: 45%;
        right: -20px;
        height: 350px;
        }

        .apie-s .deco{
            z-index: 0;
            right:0;
            height:200px;
        }

        @media (max-width: 1290px){
            .apie-s .deco{
                display:none;
            }
        }

        .naujienos-s .deco{
            top:30%;
            left:0;
            height:200px;
            z-index: 0;
        }

        @media (max-width: 1500px){
            .naujienos-s .deco{
                display:none;
            }
        }

    /* -----------------  */
        .logo-wrapper {
        /* Was un-positioned, so z-index had no effect at all — a static
           element always paints below any positioned one (like
           .photo-wrapper below), regardless of z-index or source order.
           Explicit position + z-index guarantees the logo stays on top
           even if .photo-wrapper's photo ever creeps up far enough to
           geometrically overlap it (e.g. during the mobile Safari
           toolbar/viewport-height transition). */
        position: relative;
        z-index: 3;
        margin-top: 150px;
        }

        .main-logo {
        background-color: var(--bg-darker);
        border-radius: 10px;
        padding:10px;
        height: 196px;
        width: auto;
        }

        .hero-cta {
        position: relative; /* was un-positioned — see .logo-wrapper comment */
        margin-top: 48px;
        background-color: var(--bg-darker);
        border: 2px solid var(--accent);
        border-radius:10px;
        color: var(--accent);
        letter-spacing: 0px;
        font-size: 1.20rem;
        font-weight: 400;
        z-index: 3; /* stays above .photo-wrapper's absolute image below it */
        }

        /* The ↓ arrow inherits .hero-cta's own font-size by default (it's
           just a ::after glyph) — sized down a bit on its own so it doesn't
           read as large as the "Pažink" text next to it. */
        .hero-cta.arrow-down::after {
        font-size: 1rem;
        }

        .photo-wrapper {
        position: absolute;
        z-index: 1; /* explicitly below .logo-wrapper/.hero-cta (z-index:3) */
        width: 100%;
        display: flex;
        justify-content: center;
        bottom: -175px;
        }

        .group-photo {
            max-width: 1271px;
            height: auto;
            display: block; 
            z-index: 2;
            -webkit-user-drag: none;
            -webkit-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }

        .bottom-section {
        position: absolute;
        bottom: 0;
        width: 100%;
        display: grid; 
        align-items: end;
        }

        .text-anchor, 
        .wave-divider {
        grid-area: 1 / 1; 
        }

        .text-anchor {
        z-index: 5; 
        margin-bottom: 2.5%;
        padding-left: 4%;
        color: var(--accent);
        }
        
        .title-small{
        display: block;
        font-size: 19px;
        font-weight: 400;
        margin:0;
        font-size: clamp(19px, -5.09px + 1.6713vw, 25px);
        }

        .title-large{
        margin:0;
        font-size: 40px;
        font-weight: 700;
        }

        .wave-divider,
        .wave-divider-phones,
        .wave-divider-tablets{
            -webkit-user-drag: none;
            -webkit-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }

        .wave-divider {
        z-index: 2;
        
        }

        .wave-divider-tablets {
            visibility: hidden;
                 grid-area: 1 / 1; 
        }
        .wave-divider-phones{
            visibility: hidden;
                 grid-area: 1 / 1; 
        }

        .wave-divider-tablets img,
        .wave-divider-phones img,
        .wave-divider img {
            width: 110%;
            height: auto;
            display: block;
            overflow: hidden;
        }

        /*--------- ARTIMIAUSI JAUNYSTES PASIRODYMAI ------------------------------------*/

        h2{
            font-size: var(--txt-s-h2);
            font-weight: 700;
            color:var(--accent);
            margin:0;
        }

        .artimiausi-s{
            background-color: var(--bg-darker);
            width: 100%;
            padding:100px 12vw;
            scroll-margin-top: 130px; /* clears the fixed header when jumped to via #artimiausi-s (skip link, etc.) */
        }

        /*---- KORTELES ---- */

        .events-grid {
            display: grid;
            /* Use a fixed pixel value for the max, not 1fr */
            grid-template-columns: repeat(auto-fit, 410px);
            gap: 30px;
            justify-content: start;
        }

        @media (max-width: 1118px) {
            .events-grid, .naujienos-grid {
                grid-template-columns: repeat(auto-fit, minmax(auto, 410px));
                justify-content: start;
            }
        }

        .artimiausi-s .event-card{
            background-color: var(--bg);
        }

        .event-card {
            position:relative;
            width: 100%; 
            max-width: 610px; 
            border-radius: 5px;
            padding: 16px;
            display: flex;
            flex-direction: column;
            cursor: pointer;
            transition: transform 0.2s;
            /* Ensure the card can receive the CSS variable */
            --bg-image: none;
        }

        .card-image {
            height: 280px; /* or whatever height you want for main page cards */
            width: 100%;
            overflow: hidden;
            border-radius: 10px;
            display: flex;
            justify-content: center;
            align-items: center;
            align-content: center;
            position: relative;
        }

        .card-image::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-image: var(--bg-image);
            background-size: cover;
            background-position: center;
            background-repeat: no-repeat;
            filter: blur(20px);
            transform: scale(1.1);
            z-index: 0;
        }


        .card-image img {
            max-height: 100%;
            max-width: 100%;
            width: auto;
            height: auto;
            object-fit: contain;
            position: relative;
            z-index: 1;
        }

        .card-content {
        padding-top: 16px;
        }

        .card-title {
        color: var(--black);
        font-size: 20px;
        font-weight: 600;
        margin: 0 0 10px 0;
        }


        .card-location {
            display: flex;
            align-items: center; /* Vertically centers icon with text */
            align-content: center;
            gap: 8px;            /* Creates the "bullet" spacing */
            font-weight: 700;
            font-style: normal;  /* Removes the default address italics */
            color: var(--black);
        }

        
        .card-location img {
            height:18px;
            transform:translateY(3px);
        }
        
        .card-date {
            margin-top: 10px;
            display: flex;
            align-items: center; /* Vertically centers icon with text */
            align-content: center;
            font-weight: 700;
            gap: 8px;            /* Creates the "bullet" spacing */
            font-style: normal;  /* Removes the default address italics */
            color: var(--black);
        }

        .card-date img{
            height:16px;
            transform:translateY(2px);
        }
                        
        .artimiausi-s .btn-1,
        .artimiausi-s .btn-2{
            display: inline-flex;
            align-items: center;
            width: fit-content;
            margin-left: 0;
            margin-right: auto;
            margin-top: 20px;
        }

        .event-card .btn-1 {
            display: none; /* Arba flex/block, priklausomai nuo stiliaus */
        }

        .event-card.has-more .btn-1 {
            display: inline-flex; /* Arba flex/block, priklausomai nuo stiliaus */
            align-items: center;
        }

        .artimiausi-s .btn-2{
            margin-top: 64px;
        }
        
        .artimiausi-s a {
            display: inline-flex;
            align-items: center;
            width: fit-content;
            margin-left: 0;
            margin-right: auto;
            margin-top: 20px;
            text-decoration: none;
        }


        /*-----------  APIE CHORA -----------------------------------*/

        .apie-s{
            display: flex;
            align-items: center;
            width:100%;
            gap:20px;
            background-color: var(--bg-darker);
            padding:100px 12vw;
            scroll-margin-top: 130px; /* clears the fixed header when jumped to via #apie-s */
        }

        .apie-info{
            align-items: left;
            align-content: left;
            flex: 1;
            z-index: 1;
        }

        .jaun-logo-green{
            height: 160px;
        }
        .side-image {
            display: flex;
            flex: 1; /* Nuotraukos konteineris užims tiek pat vietos kiek tekstas (50/50) */
            justify-content: flex-end;
            z-index: 1;
        }

        .side-image img {
            height:294px;
            width: auto;
            display: block;
            cursor: pointer;
        }

        /*-----------  JUBILIEJINIS KONCERTAS -----------------------------------*/

        .jubiliejus-s {
            display: flex;
            align-items: center;
            width: 100%;
            gap:70px;
            /* Pašaliname paprastą gap, jei norime maksimalaus tarpo */
            justify-content: space-between; 
            background-color: var(--bg);
            padding: 100px 12vw;
        }

        .jub-info{
            align-items: right;
            align-content: right;
        }
        .side-image-jub {
            display: flex;
            flex: 1;
            justify-content: flex-start;
            width:400px;
            height:300px;
        }

        .side-image-jub img {
            width:100%;
            height: auto;
            display: block;
            object-position: center; 
            object-fit: cover;
            cursor: pointer;
        }
        .jub-2{
            font-weight: 700;
        }

        .side-image-jub.phones{
            display: none;
        }

        /*-----------  NAUJIENOS -----------------------------------*/
       .naujienos-s{
            position: relative;
            background-color: var(--bg);
            width: 100%;
            padding:100px 12vw;
        }

        /*---- KORTELES ---- */

        .badge-new {
            position: absolute;
            text-align: center;
            width: 110px;
            top: -5px;
            left: 0px;
            z-index: 5;
            background: var(--accent);
            color: #fff;
            font-size: .72rem;
            font-weight: 700;
            letter-spacing: .6px;
            text-transform: uppercase;
            padding: 6px 10px;
            border-radius: 20px;
            pointer-events: none;
            user-select: none;
            box-shadow: 0 2px 8px rgba(0,0,0,.22);
            animation: badgePulse 2.4s ease-in-out infinite;
        }


        .naujienos-grid {
            display: grid;
            /* Use a fixed pixel value for the max, not 1fr */
            grid-template-columns: repeat(auto-fit, 410px);
            gap: 30px;
            margin-top: 20px;
            justify-content: start;
            z-index: 1;
        }

        .naujienos-s .card-date {
            font-weight: 400;
        }

        .naujienos-s .btn-2{
            display: inline-flex;
            align-items: center;
            width: fit-content;
            margin: 0 auto 0 0;
        }
        .naujienos-s .btn-1{
            display: inline-flex;
            align-items: center;
            width: fit-content;
            margin-left: 0;
            margin-right: auto;
            margin-top: 20px;
        }

        .naujienos-s .event-card{
            background-color: var(--bg-darker);
        }

        .naujienos-s img{
            object-position: top; 
        }

        .naujienos-s a {
            display: inline-flex;
            align-items: center;
            width: fit-content;
            margin-left: 0;
            margin-right: auto;
            margin-top: 20px;
            text-decoration: none;
        }

        .naujienos-actions {
            display: block;
            width: 100%;
            padding-top: 64px;
            }
    

        /*-----------  KUR DALYVAUJAME 2026 METAIS -----------------------------------*/

        .dalyvavimas-s .btn-1{
            display: inline-flex;
            align-items: center;
            width: fit-content;
            margin-left: 0;
            margin-right: auto;
            margin-top: 40px;
            /* "Artimiausi pasirodymai" reads lower than the other .btn-1
               buttons — same fix as .btn-2: shift padding top→bottom
               (sum unchanged at 14px, so the box/border don't move) to
               lift the text 2px within the fixed-height button. */
            padding-top: 6px;
            padding-bottom: 8px;
        }
        .dalyvavimas-s .btn-1::after{
            top: calc(50% - 1px); /* keeps the arrow paired with the lifted text */
        }

        .dalyvavimas-s {
            display: flex;
            gap: 40px;
            padding:100px 12vw;
            background-color: var(--bg-darker);
            font-family: 'Inter', sans-serif;
            align-items: flex-start;
            justify-content: center;
            align-content: center;
            align-items: center;
        }

        .dalyvavimas-list {
            flex: 2;
        }

        .events-list {
            display: flex;
            flex-direction: column;
            list-style: none;
            gap:30px;
            padding: 0;
        }

        .event-item,
        .event-item-done {
            display: flex;
            align-items: center;
            transition: all 0.3s ease;
        }

        .event-item-done:hover{
            transform: translateX(8px);
            cursor: pointer;
        }


        .event-date,
        .event-date-done {
        background-color: var(--accent);
        color: white;
        padding: 8px 16px;
        font-weight: 700;
        min-width: 120px;
        border-radius: 10px 0px 0px 10px;
        position: relative;
        align-content: center;
        text-align: center;
        z-index: 2;
        }


        .event-date-done {
            color: white;
            padding: 8px 8px;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s ease;
            text-decoration: none;
            min-width: 128px;
            border-radius: 10px 0px 0px 10px;
            position: relative;
            z-index: 2;
        }



        /* Background image layer — completed event with a linked photo */
        .event-date-done::before {
            content: '';
            position: absolute;
            inset: 0;
            background-image: var(--event-bg);
            background-repeat: no-repeat;
            background-position: center;
            background-size: cover;

            border-radius: inherit;
            z-index: -1;

            filter: brightness(0.5);
            opacity: 0.5;
        }



        .event-item-done:not([style*="--event-bg"]) .event-date-done::before {
            display: none;
        }

        .event-details {
            background: var(--bg);
            padding: 8px 20px;
            margin-left: -10px; /* Overlap effect */
            border-radius: 0 10px 10px 0;
            border-left: solid 2px var(--accent);
            border-right: solid 2px var(--accent);
            flex-grow: 1;
            align-content: center;
            font-size: 1rem;
            color: var(--text-body);
        }

        .event-date-arrow {
            font-weight: 700;
            margin-left: 2px;
        }

        /* Every second row: badge on the right, details on the left —
           matches the "Apie chorą" achievements list design. */
        .events-list li:nth-child(even) .event-date,
        .events-list li:nth-child(even) .event-date-done {
            order: 2;
            border-radius: 0 10px 10px 0;
            margin-right: 40px;
        }

        .events-list li:nth-child(even) .event-details {
            order: 1;
            margin-left: 40px;
            margin-right: -10px;
            border-radius: 10px 0 0 10px;
        }

        /* Uniform alignment — no staggered indentation, matches the achievements
           list style on the "Apie chorą" page for a consistent look. */


        .events-gallery {
        flex: 1;
        display: flex;
        gap: 15px;
        }

        .events-gallery img {
        width: 50%;
        cursor: pointer;        
        object-fit: cover;
        height: 360px;
        margin-bottom: 30px;
        }
        .dalyvavimas-s a {
            display: inline-flex;
            align-items: center;
            width: fit-content;
            margin-left: 0;
            margin-right: auto;
            margin-top: 20px;
            text-decoration: none;
        }
        
        @media (max-width: 1440px){
            .dalyvavimas-s{
                justify-content: center;
                align-content: center;
                align-items: center;
                flex-direction: column;
                padding: 60px 5vw;
                gap: 30px;
            }
            .wave-divider{
                visibility: hidden;
            }
            .wave-divider-tablets{
                visibility: visible;
                position: absolute;
                bottom: -10px;
                left: 0;
                width: 100%;
                line-height: 0;
                z-index: 4;
            }
            .photo-wrapper {
                bottom: -125px;
            }
            .group-photo {
                max-width: 871px;
                margin-bottom: -20px; 
            }
        }

        /* TABLET & MOBILE ADAPTATION ----------------------------------------------------------------------------------------------------------*/
        @media (max-width: 1280px) {
            .logo-wrapper {
                margin-top: 120px;
            }

            .main-logo {
                height: 146px;
                width: auto;
            }
            .photo-wrapper {
                bottom: -125px;
            }
            .group-photo {
                max-width: 871px;
                margin-bottom: -20px; 
            }
        }

        @media (max-width: 950px) {

            .text-anchor{
                padding-bottom: 0px;
            }
            .title-small{
                font-size: 1rem;
            }
            .title-large{
                font-size: 2rem;
            }

            .text-anchor{
                margin:0;
            }

            .photo-wrapper {
                bottom: -60px;
            }
            .group-photo {
                max-width: 95vw;
            }
            .deco-left {
                top: 70%;
                left: -20px;
                height: 96px;
            }
            
            .deco-right {
                top: 75%;
                right: -20px;
                height: 150px;
            }
            .card-image {
                height: 180px;
            }
        }


/* General Mobile & Small Screen Adaptation */
    @media (max-width: 768px) {
            .naujienos-actions {
            display: flex;
            flex-direction: column;
            grid-template-columns: none;
            align-items: center;
            align-content: center;
            justify-content: center;
            width: 100%;
            padding-top: 64px;
            gap: 25px;
            }


            .title-small{
                font-size: 1.5rem;
            }
            .title-large{
                font-size: 2.5rem;
            }

            h2{
            font-size: 2rem;
            font-weight: 700;
            margin:0;
             }

            .bottom-section{
                 align-items: center;
                 align-content: center;
                 justify-content: center;
            }
                
            .text-anchor{
                width: auto;
                margin: 0px auto;
                margin-bottom: 20px;
                text-align: center;
                align-items: center;
                align-content: center;
            }
            .wave-divider{
                visibility: hidden;
            }
            .wave-divider-tablets{
                visibility: hidden;
            }
            .wave-divider-phones{
                visibility: visible;
                position: absolute;
                bottom: -10px;
                transform: translateY(clamp(130px, 74.56vw - 272.63px, 300px));
                left: 0;
                width: 100%;
                line-height: 0;
                z-index: 4;
            }

            .apie-s, .jubiliejus-s, .dalyvavimas-s, .artimiausi-s, .naujienos-s {
                flex-direction: column;
                padding: 60px 5vw;
                gap: 30px;
            }

            .events-grid, .naujienos-grid {
                grid-template-columns: repeat(auto-fit, minmax(auto, 410px));
                justify-content: start;
            }

            .side-image, .side-image-jub, .events-gallery {
                width: 100%;
                justify-content: center;
            }

            .artimiausi-s .btn-2{
                margin-top: 60px; 
            }

            .btn-1{
                background-position: right 20px center;
                height:39px;
                padding:0px 7px;
                padding-left:28px;
                padding-right:40px;
                align-items: center;
                align-content: center;
                text-align: center;
            }

            .side-image img {
                width: 90vw;
                height: auto;
            }

            .events-gallery img {
                height: 250px; /* Smaller height for mobile */
            }


            .apie-s .btn-1,
            .jubiliejus-s .btn-1{
                display: inline-flex;
                align-items: center;
                width: fit-content;  /* Mygtukas bus tik tokio pločio, kiek reikia tekstui */
                margin-left: auto;
                margin-right: auto;
                margin-top: 30px;
            }

            /* .jub-info p has no margin reset, so its default ~16px
               browser margin was stacking with the 30px above, pushing
               the button much further from the text than intended. */
            .jub-info p{
                margin-bottom: 0;
            }
            .jubiliejus-s .btn-1{
                margin-top: 16px;
            }

            /* Same issue on "Kur dalyvaujame": .events-list (a <ul>) has
               no margin reset, so its default ~16px browser margin was
               stacking with the base 40px margin-top on the button. */
            .events-list{
                margin-bottom: 0;
            }
            .dalyvavimas-s .btn-1{
                margin-top: 16px;
            }

            .jaun-logo-green{
                display: none;
            }


            .side-image-jub{
                display: none;
            }
            .side-image-jub.phones{
                display: block;
            }


         /*----- Hero banner ----- */

        .deco-left {
            visibility: hidden;
        }

        .deco-right {
            visibility: hidden;
        }

        .logo-wrapper {
        margin-top: 150px;
        }

        .main-logo {
        height: 150px;
        width: auto;
        }

        .photo-wrapper {
        position: absolute;
        width: 100%;
        display: flex;
        justify-content: center;
        bottom: 145px;
        left:5px;
        }

        .group-photo {
        max-width: 120%;
        height: auto;
        display: block; 
        z-index: 2;
        }

        /* --- List Fixes --- */
        .event-item-done, .event-item {
            display:flex;
            margin-left: 0 !important; /* Remove the staggered indentation on tiny screens */
            margin-right: 0 !important;
            flex-direction: row;
            align-items: stretch;
            white-space: wrap;
        }

                /* Staggered indentation effect */

        .event-date, .event-date-done {
            white-space: nowrap;
            width:fit-content;
            height: auto;
            text-align: center;
            padding-right:20px;
            align-content: center;
            border-radius: 10px 0px 0px 10px;
        }



        .event-details {
            width: 100%;
            margin-left: 0;
            border-radius: 0 10px 10px 0;
        }

        /* Every second row flips sides here too, same as desktop. */
        .events-list li:nth-child(even) .event-date,
        .events-list li:nth-child(even) .event-date-done {
            order: 2;
            border-radius: 0 10px 10px 0;
            margin-right: 0;
        }
        .events-list li:nth-child(even) .event-details {
            order: 1;
            margin-left: 0;
            margin-right: -10px;
            border-radius: 10px 0 0 10px;
        }


    }
@media (max-width:660px){


}

@media (max-width:540px){
    .wave-divider-phones{
        transform: translateY(130px);
    }

}

@media (max-width:510px){
    .text-anchor{
        text-align: center;
        margin-bottom: 50px;
    }
    .title-small{
        font-size: 1rem;
    }
    .title-large{
        font-size: 2rem;
    }
}

@media (max-width:480px){
    .wave-divider-phones{
        transform: translateY(60px);
    }
}

@media (max-width:380px){
    .text-anchor{
        margin-bottom: 30px;
    }
}