{"id":43752,"date":"2026-01-22T04:06:16","date_gmt":"2026-01-22T02:06:16","guid":{"rendered":"https:\/\/gnistan.fi\/?page_id=43752"},"modified":"2026-05-14T21:18:24","modified_gmt":"2026-05-14T18:18:24","slug":"ottelut","status":"publish","type":"page","link":"https:\/\/gnistan.fi\/sv\/ottelut\/","title":{"rendered":"Matcher"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"43752\" class=\"elementor elementor-43752\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7c8132f e-flex e-con-boxed e-con e-parent\" data-id=\"7c8132f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3e5f21c first-reveal elementor-widget elementor-widget-heading\" data-id=\"3e5f21c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Ottelut<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9d69692 elementor-widget elementor-widget-shortcode\" data-id=\"9d69692\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><style>\n:root {\n    --g-primary: #0033A0;\n    --g-primary-light: #0047CC;\n    --g-accent: #FCE600;\n    --g-bg: #fff;\n    --g-bg-subtle: #F2F6FF;\n    --g-text: #1a1a1a;\n    --g-text-dim: #4D6392;\n    --g-text-muted: #9ca3af;\n    --g-border: #e5e7eb;\n    --g-win: #22c55e;\n    --g-loss: #ef4444;\n    --g-draw: #f59e0b;\n    --g-radius: 12px;\n    --g-font: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n    --g-font-display: \"Bebas Neue\", Impact, sans-serif;\n}\n\n.gnistan-schedule {\n    font-family: var(--g-font);\n    max-width: 1200px;\n    margin: 0 auto;\n}\n\n.g-filters {\n    background: var(--g-bg);\n    padding: 1rem 0;\n    display: flex;\n    gap: 1rem;\n    align-items: center;\n    flex-wrap: wrap;\n}\n\n.g-tabs {\n    display: inline-flex;\n    background: var(--g-bg-subtle);\n    border-radius: 10px;\n    padding: 3px;\n    position: relative;\n    box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 4px 0px inset;\n    overflow: hidden;\n}\n\n.g-tabs button {\n    font: 600 0.875rem var(--g-font);\n    padding: 0.625rem 1.25rem;\n    border: none;\n    background: transparent !important;\n    box-shadow: none !important;\n    color: var(--g-text-dim);\n    cursor: pointer;\n    border-radius: 8px;\n    transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n    position: relative;\n    z-index: 1;\n    outline: none;\n}\n\n.g-tabs button:hover:not(.active) { color: var(--g-text); }\n\n.g-tabs button:focus-visible {\n    outline: 2px solid var(--g-primary);\n    outline-offset: 2px;\n}\n\n.g-tabs button.active { color: #fff; }\n\n.g-slider {\n    position: absolute;\n    top: 3px;\n    left: 3px;\n    height: calc(100% - 6px);\n    background: linear-gradient(135deg, var(--g-primary) 0%, var(--g-primary-light) 100%);\n    border-radius: 8px;\n    box-shadow:\n        0 2px 8px rgba(0, 51, 160, 0.15),\n        inset 0 1px 0 rgba(255, 255, 255, 0.1);\n    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n    z-index: 0;\n}\n\n.g-secondary {\n    display: flex;\n    gap: 0.75rem;\n    align-items: center;\n    flex: 1;\n}\n\n.g-btn-group {\n    display: inline-flex;\n    background: var(--g-bg-subtle);\n    border-radius: 8px;\n    padding: 2px;\n    position: relative;\n    height: 40px;\n}\n\n.g-btn-group button {\n    font: 500 0.8125rem var(--g-font);\n    background: transparent !important;\n    box-shadow: none !important;\n    color: var(--g-text-dim);\n    border: none;\n    padding: 0 1rem;\n    cursor: pointer;\n    border-radius: 6px;\n    transition: color 0.15s;\n    position: relative;\n    z-index: 1;\n    outline: none;\n    display: flex;\n    align-items: center;\n    white-space: nowrap;\n}\n\n.g-btn-group button:hover:not(.active) { color: var(--g-text); }\n\n.g-btn-group button:focus-visible {\n    outline: 2px solid var(--g-primary);\n    outline-offset: 2px;\n}\n\n.g-btn-group button.active { color: var(--g-text); }\n\n.g-btn-group .g-slider {\n    position: absolute;\n    top: 2px;\n    left: 2px;\n    height: calc(100% - 4px);\n    background: #fff;\n    border-radius: 6px;\n    box-shadow:\n        0 2px 4px rgba(0, 0, 0, 0.06),\n        0 1px 2px rgba(0, 0, 0, 0.04);\n    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n    z-index: 0;\n}\n\n.g-select {\n    font: 500 0.8125rem var(--g-font);\n    background: var(--g-bg-subtle);\n    color: var(--g-text);\n    border: none;\n    padding: 0 2.5rem 0 1rem;\n    height: 40px;\n    outline: 2px solid transparent;\n    outline-offset: 2px;\n    border-radius: 8px;\n    cursor: pointer;\n    appearance: none;\n    background-image: url('data:image\/svg+xml;utf8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"%236c757d\"><path d=\"M7 10l5 5 5-5z\"\/><\/svg>');\n    background-repeat: no-repeat;\n    background-position: right 0.75rem center;\n    background-size: 1rem;\n    transition: all 0.2s;\n    white-space: nowrap;\n    min-width: 140px;\n}\n\n.g-select:hover { background-color: #E8EFFE; }\n\n.g-select:focus-visible {\n    outline: 2px solid var(--g-primary);\n    outline-offset: 2px;\n    background-color: #fff;\n}\n\n.g-list { min-height: 100px; }\n\n.g-day-header {\n    font: 1.25rem var(--g-font-display);\n    color: var(--g-text);\n    text-transform: capitalize;\n    letter-spacing: 0.5px;\n    padding: 1.5rem 0 0.75rem;\n    margin-top: 1.5rem;\n    border-bottom: 2px solid var(--g-border);\n}\n\n.g-day-header:first-child { margin-top: 0; }\n\n.g-card {\n    background: var(--g-bg);\n    border: 1px solid var(--g-border);\n    border-radius: var(--g-radius);\n    margin-bottom: 0.75rem;\n    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.g-card:hover {\n    border-color: rgba(0, 51, 160, 0.2);\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);\n}\n\n.g-card[data-outcome=\"win\"]  { border-left: 3px solid var(--g-win); }\n.g-card[data-outcome=\"loss\"] { border-left: 3px solid var(--g-loss); }\n.g-card[data-outcome=\"draw\"] { border-left: 3px solid var(--g-draw); }\n\n.g-card.g-major[data-outcome=\"future\"] {\n    background: linear-gradient(to right, #fffbeb 0%, #ffffff 100%);\n    border-left: 3px solid var(--g-accent);\n}\n\n.g-card__inner {\n    padding: 1.5rem;\n    display: grid;\n    grid-template-columns: 180px 1fr 180px;\n    gap: 2rem;\n    align-items: center;\n}\n\n.g-time {\n    text-align: left;\n    display: flex;\n    flex-direction: column;\n    gap: 0.5rem;\n}\n\n.g-time__label { display: none; }\n\n.g-time .g-badge { align-self: flex-start; }\n\n.g-time__date {\n    font: 1rem var(--g-font-display);\n    color: var(--g-text-dim);\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    margin-bottom: 0.25rem;\n}\n\n.g-time__clock {\n    font: 1.5rem var(--g-font-display);\n    color: var(--g-text);\n    letter-spacing: -0.5px;\n}\n\n.g-teams {\n    display: grid;\n    grid-template-columns: 1fr auto 1fr;\n    gap: 1.5rem;\n    align-items: center;\n}\n\n.g-team {\n    display: flex;\n    align-items: center;\n    gap: 0.875rem;\n}\n\n.g-team.home {\n    flex-direction: row-reverse;\n    justify-self: end;\n}\n\n.g-team.away { justify-self: start; }\n\n.g-team.home .g-team__name { text-align: right; }\n.g-team.away .g-team__name { text-align: left; }\n\n.g-team__logo {\n    width: 40px;\n    height: 40px;\n    object-fit: contain;\n    transition: transform 0.2s;\n}\n\n.g-card:hover .g-team__logo { transform: scale(1.05); }\n\n.g-team__name {\n    font: 0.9rem var(--g-font);\n    color: var(--g-text);\n    letter-spacing: -0.2px;\n}\n\n.g-score {\n    font: 1.5rem var(--g-font-display);\n    color: var(--g-text);\n    text-align: center;\n    letter-spacing: -1px;\n    margin-bottom: -4px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n}\n\n.g-card__meta {\n    display: flex;\n    flex-direction: column;\n    gap: 0.75rem;\n    align-items: flex-end;\n}\n\n.g-ticket-btn {\n    display: inline-flex;\n    align-items: center;\n    gap: 0.5rem;\n    font: 600 0.8125rem var(--g-font);\n    padding: 0.625rem 1.125rem;\n    background: var(--g-primary);\n    color: #fff !important;\n    border: none;\n    border-radius: 8px;\n    cursor: pointer;\n    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n    text-decoration: none !important;\n    box-shadow: 0 2px 8px rgba(0, 51, 160, 0.15);\n    outline: none;\n}\n\n.g-ticket-btn:hover {\n    color: #fff;\n    background: var(--g-primary-light);\n    box-shadow: 0 4px 12px rgba(0, 51, 160, 0.25);\n    text-decoration: none;\n}\n\n.g-ticket-btn:focus-visible {\n    outline: 2px solid var(--g-primary);\n    outline-offset: 2px;\n}\n\n.g-free-entry {\n    display: inline-flex;\n    align-items: center;\n    font: 600 0.8125rem var(--g-font);\n    padding: 0.1rem 0.5rem;\n    padding-bottom: 0.25rem;\n    background: #19a34c;\n    color: #fff;\n    border-radius: 8px;\n}\n\n.g-venue {\n    font: 500 0.8125rem var(--g-font);\n    color: var(--g-text-dim);\n    display: flex;\n    align-items: center;\n    gap: 0.375rem;\n}\n\n.g-venue-link {\n    color: inherit;\n    text-decoration: none !important;\n    transition: color 0.2s;\n    text-align: right;\n}\n\n.g-venue-link:hover, .g-venue-link:focus {\n    color: var(--g-primary);\n    text-decoration: underline !important;\n}\n\n.g-calendar-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 0.5rem;\n    background: var(--g-bg-subtle);\n    border: 1px solid var(--g-border);\n    border-radius: 6px;\n    cursor: pointer;\n    transition: all 0.2s;\n    position: relative;\n    text-decoration: none !important;\n}\n\n.g-calendar-btn:hover {\n    background: var(--g-primary);\n    border-color: var(--g-primary);\n    transform: translateY(-1px);\n}\n\n.g-calendar-btn:hover svg { color: #fff; }\n\n.g-calendar-btn svg {\n    width: 16px;\n    height: 16px;\n    color: var(--g-text-dim);\n    transition: color 0.2s;\n}\n\n.g-calendar-btn:hover::after {\n    content: attr(data-tooltip);\n    position: absolute;\n    bottom: 100%;\n    right: 0;\n    margin-bottom: 8px;\n    padding: 0.375rem 0.625rem;\n    background: rgba(26, 26, 26, 0.95);\n    color: #fff;\n    font-size: 0.75rem;\n    font-weight: 500;\n    white-space: nowrap;\n    border-radius: 4px;\n    pointer-events: none;\n    z-index: 10;\n}\n\n.g-calendar-btn:hover::before {\n    content: '';\n    position: absolute;\n    bottom: 100%;\n    right: 8px;\n    margin-bottom: 2px;\n    border: 4px solid transparent;\n    border-top-color: rgba(26, 26, 26, 0.95);\n    pointer-events: none;\n    z-index: 10;\n}\n\n.g-meta-actions {\n    display: flex;\n    align-items: center;\n    gap: 0.75rem;\n    justify-content: flex-end;\n    flex-direction: row-reverse;\n}\n\n.g-badge {\n    font: 0.8rem var(--g-font-display);\n    padding: 0.25rem 0.5rem;\n    padding-bottom: 0.15rem;\n    border-radius: 0 12px;\n    text-transform: uppercase;\n    white-space: nowrap;\n    color: #fff;\n    letter-spacing: 0.5px;\n}\n\n.g-badge.g-major-badge {\n    background: linear-gradient(135deg, var(--g-primary) 0%, #0047CC 100%);\n}\n\n.g-status-badge {\n    font: 0.625rem var(--g-font);\n    padding: 0.3125rem 0.625rem;\n    border-radius: 6px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    margin-bottom: 0.5rem;\n}\n\n.g-status-live {\n    background: #ef4444;\n    color: white;\n    animation: pulse 2s infinite;\n}\n\n@keyframes pulse {\n    0%, 100% { opacity: 1; }\n    50% { opacity: 0.7; }\n}\n\n.g-empty {\n    display: none;\n    background: var(--g-bg-subtle);\n    padding: 3rem 2rem;\n    text-align: center;\n    color: var(--g-text-dim);\n    border-radius: var(--g-radius);\n}\n\n.g-empty.show { display: block; }\n\n\/* Skeleton loader *\/\n@keyframes shimmer {\n    0%   { background-position: -600px 0; }\n    100% { background-position:  600px 0; }\n}\n\n.g-skel {\n    background: var(--g-bg);\n    border: 1px solid var(--g-border);\n    border-radius: var(--g-radius);\n    margin-bottom: 0.75rem;\n    overflow: hidden;\n}\n\n.g-skel__inner {\n    padding: 1.5rem;\n    display: grid;\n    grid-template-columns: 180px 1fr 180px;\n    gap: 2rem;\n    align-items: center;\n}\n\n.g-skel-block {\n    background: linear-gradient(90deg, var(--g-bg-subtle) 25%, #dde8ff 50%, var(--g-bg-subtle) 75%);\n    background-size: 600px 100%;\n    animation: shimmer 1.4s infinite linear;\n    border-radius: 6px;\n}\n\n.g-skel__time {\n    display: flex;\n    flex-direction: column;\n    gap: 0.5rem;\n}\n\n.g-skel__badge { height: 22px; width: 120px; border-radius: 0 12px; }\n.g-skel__clock { height: 28px; width: 80px; }\n\n.g-skel__teams {\n    display: grid;\n    grid-template-columns: 1fr auto 1fr;\n    gap: 1.5rem;\n    align-items: center;\n}\n\n.g-skel__team-home {\n    display: flex;\n    flex-direction: row-reverse;\n    align-items: center;\n    gap: 0.875rem;\n    justify-self: end;\n}\n\n.g-skel__team-away {\n    display: flex;\n    align-items: center;\n    gap: 0.875rem;\n    justify-self: start;\n}\n\n.g-skel__logo  { width: 40px; height: 40px; border-radius: 4px; flex-shrink: 0; }\n.g-skel__name  { height: 16px; width: 90px; }\n.g-skel__score { height: 28px; width: 50px; margin: 0 auto; }\n\n.g-skel__meta {\n    display: flex;\n    flex-direction: column;\n    gap: 0.75rem;\n    align-items: flex-end;\n}\n\n.g-skel__btn   { height: 36px; width: 110px; border-radius: 8px; }\n.g-skel__venue { height: 14px; width: 130px; }\n\n.g-skel__day-header {\n    height: 24px;\n    width: 200px;\n    border-radius: 4px;\n    margin: 1.5rem 0 0.75rem;\n}\n\n.g-skel__day-header:first-child { margin-top: 0; }\n\n.g-updated {\n    text-align: center;\n    font: 500 0.75rem var(--g-font);\n    color: var(--g-text-muted);\n    margin-top: 2rem;\n}\n\n.g-load-more {\n    display: none;\n    width: 100%;\n    padding: 1rem !important;\n    margin-top: 1rem;\n    font: 600 0.875rem var(--g-font) !important;\n    background: var(--g-bg) !important;\n    border: 2px solid var(--g-border) !important;\n    border-radius: var(--g-radius) !important;\n    color: var(--g-text);\n    cursor: pointer;\n    transition: all 0.2s;\n    outline: none;\n    box-shadow: none !important;\n}\n\n.g-load-more:hover {\n    background: var(--g-bg-subtle) !important;\n    border-color: var(--g-primary) !important;\n    color: var(--g-primary) !important;\n}\n\n.g-load-more:focus-visible, .g-load-more:focus {\n    background: var(--g-bg-subtle) !important;\n    border-color: var(--g-primary) !important;\n    outline: 2px solid var(--g-primary) !important;\n    outline-offset: 2px !important;\n}\n\n.g-load-more.show { display: block; }\n\n@keyframes slideIn {\n    from { opacity: 0; transform: translateY(10px); }\n    to   { opacity: 1; transform: translateY(0); }\n}\n\n.g-card.g-animate { animation: slideIn 0.3s ease-out backwards; }\n\n@media (max-width: 1040px) {\n    .g-filters {\n        padding: 1rem 0;\n        gap: 0.75rem;\n    }\n\n    .g-tabs, .g-btn-group { flex: 0 0 auto; }\n\n    .g-tabs {\n        width: 100%;\n    }\n\n    .g-tabs button { flex: 1; }\n\n    .g-secondary {\n        flex-direction: row;\n        gap: 0.75rem;\n        width: 100%;\n    }\n\n    .g-btn-group { flex: 1; min-width: 0; }\n\n    .g-select {\n        flex: 0;\n        min-width: 50%;\n    }\n\n    .g-card__inner {\n        display: flex;\n        flex-direction: column;\n        gap: 0;\n        padding: 0;\n    }\n\n    .g-card__main { display: contents; }\n\n    .g-time {\n        display: flex;\n        flex-direction: row;\n        justify-content: flex-start;\n        align-items: center;\n        gap: 0.5rem;\n        padding: 0.875rem 1rem;\n        border-bottom: none;\n        min-width: auto;\n        width: 100%;\n    }\n\n    .g-time .g-badge {\n        align-self: auto;\n        order: 2;\n        margin-left: auto;\n    }\n\n    .g-time__clock {\n        font-size: 1.1rem;\n        white-space: nowrap;\n        order: 1;\n    }\n\n    .g-teams {\n        display: grid;\n        grid-template-columns: 1fr auto 1fr;\n        gap: 1rem;\n        width: 100%;\n        align-items: center;\n        justify-content: center;\n        padding: 1rem;\n        border-top: 1px solid var(--g-border);\n        border-bottom: 1px solid var(--g-border);\n    }\n\n    .g-team {\n        display: flex;\n        flex-direction: row;\n        align-items: center;\n        gap: 0.5rem;\n        text-align: center;\n    }\n\n    .g-team.home {\n        justify-content: flex-start;\n        grid-column: 1;\n        flex-direction: row-reverse;\n    }\n\n    .g-team.away { grid-column: 3; }\n\n    .g-team.home .g-team__logo { order: 0; }\n    .g-team.home .g-team__name { text-align: center; }\n\n    .g-team__logo { width: 48px; height: 48px; flex-shrink: 0; }\n\n    .g-team__name { font-size: 0.8rem; line-height: 1.2; }\n\n    .g-score {\n        font-size: 1.25rem;\n        min-width: auto;\n        grid-column: 2;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n\n    .g-card__meta {\n        flex-direction: column;\n        align-items: center;\n        width: 100%;\n        padding: 1rem;\n        border-top: none;\n        min-width: auto;\n        gap: 0.5rem;\n    }\n\n    .g-ticket-btn,\n    .g-free-entry {\n        width: 100%;\n        justify-content: center;\n        order: 1;\n    }\n\n    .g-meta-actions {\n        flex-direction: row-reverse;\n        justify-content: space-between;\n        align-items: center;\n        width: 100%;\n        gap: 0.75rem;\n    }\n\n    .g-calendar-btn { order: 0; }\n\n    .g-venue {\n        text-align: right;\n        font-size: 0.75rem;\n        order: 1;\n        flex: 0;\n        min-width: fit-content;\n    }\n\n    .g-venue-link { text-align: right; }\n\n    \/* Skeleton mobile *\/\n    .g-skel__inner {\n        display: flex;\n        flex-direction: column;\n        gap: 0;\n        padding: 0;\n    }\n\n    .g-skel__time {\n        flex-direction: row;\n        align-items: center;\n        padding: 0.875rem 1rem;\n        gap: 0.5rem;\n        width: 100%;\n        box-sizing: border-box;\n    }\n\n    .g-skel__badge { margin-left: auto; }\n\n    .g-skel__teams {\n        width: 100%;\n        padding: 1rem;\n        border-top: 1px solid var(--g-border);\n        border-bottom: 1px solid var(--g-border);\n        box-sizing: border-box;\n        gap: 1rem;\n    }\n\n    .g-skel__logo { width: 48px; height: 48px; }\n\n    .g-skel__meta {\n        flex-direction: row;\n        justify-content: space-between;\n        align-items: center;\n        width: 100%;\n        padding: 1rem;\n        box-sizing: border-box;\n    }\n}\n<\/style>\n<div id=\"gnistan-8720\" class=\"gnistan-schedule\">\n    <div class=\"g-filters\">\n        <div class=\"g-tabs\">\n            <span class=\"g-slider\"><\/span>\n            <button class=\"active\" data-tab=\"upcoming\">Tulevat<\/button>\n            <button data-tab=\"played\">Pelatut<\/button>\n        <\/div>\n        <div class=\"g-secondary\">\n            <div class=\"g-btn-group\">\n                <span class=\"g-slider\"><\/span>\n                <button class=\"active\" data-loc=\"all\">Kaikki<\/button>\n                <button data-loc=\"home\">Koti<\/button>\n                <button data-loc=\"away\">Vieras<\/button>\n            <\/div>\n            <select class=\"g-select\" data-cat>\n                <option value=\"all\">Kaikki sarjat<\/option>\n                                    <option value=\"b10-2016-synt\">B10 (2016 synt.)<\/option>\n                                    <option value=\"b11-2015-synt\">B11 (2015 synt.)<\/option>\n                                    <option value=\"b11-harraste-2015-synt\">B11 Harraste (2015 synt.)<\/option>\n                                    <option value=\"b12-2014-synt\">B12 (2014 synt.)<\/option>\n                                    <option value=\"b12-harraste-2014-synt\">B12 Harraste (2014 synt.)<\/option>\n                                    <option value=\"b13-11v11-2013-synt\">B13 11v11 (2013 synt.)<\/option>\n                                    <option value=\"b13-8v8-2013-synt\">B13 8v8 (2013 synt.)<\/option>\n                                    <option value=\"b13-8v8-harraste-2013-synt\">B13 8v8 Harraste (2013 synt.)<\/option>\n                                    <option value=\"b14-2012-synt\">B14 (2012 synt.)<\/option>\n                                    <option value=\"b14-15-harraste-11v11-2012-11-synt\">B14-15 Harraste 11v11 (2012-11 synt.)<\/option>\n                                    <option value=\"b15-16-2011-2010-synt\">B15-16 (2011-2010 synt.)<\/option>\n                                    <option value=\"b7-elite-2019-synt\">B7 Elite (2019 synt.)<\/option>\n                                    <option value=\"b7-harraste-2019-synt\">B7 Harraste (2019 synt.)<\/option>\n                                    <option value=\"b7-yleis-2019-synt\">B7 Yleis (2019 synt.)<\/option>\n                                    <option value=\"b8-elite-2018-synt\">B8 Elite (2018 synt.)<\/option>\n                                    <option value=\"b8-harraste-2018-synt\">B8 Harraste (2018 synt.)<\/option>\n                                    <option value=\"b8-yleis-2018-synt\">B8 Yleis (2018 synt.)<\/option>\n                                    <option value=\"b9-elite-7v7-2017-synt\">B9 Elite 7v7 (2017 synt.)<\/option>\n                                    <option value=\"b9-harraste-2017-synt\">B9 Harraste (2017 synt.)<\/option>\n                                    <option value=\"b9-yleis-2017-synt\">B9 Yleis (2017 synt.)<\/option>\n                                    <option value=\"briotech-kansallinen-liiga\">Briotech Kansallinen Liiga<\/option>\n                                    <option value=\"c15-11-haastaja\">C15 (-11) Haastaja<\/option>\n                                    <option value=\"g10-harraste-2016-synt\">G10 Harraste (2016 synt.)<\/option>\n                                    <option value=\"g10-yleis-2016-synt\">G10 Yleis (2016 synt.)<\/option>\n                                    <option value=\"g12-harraste-2014-synt\">G12 Harraste (2014 synt.)<\/option>\n                                    <option value=\"g12-yleis-2014-synt\">G12 Yleis (2014 synt.)<\/option>\n                                    <option value=\"g13-yleis-2013-synt\">G13 Yleis (2013 synt.)<\/option>\n                                    <option value=\"g14-2012-synt\">G14 (2012 synt.)<\/option>\n                                    <option value=\"g14-harraste-2012-synt\">G14 Harraste (2012 synt.)<\/option>\n                                    <option value=\"g15-16-2010-2011-synt\">G15-16 (2010-2011 synt.)<\/option>\n                                    <option value=\"g18h-2008-10-synt\">G18H (2008-10 synt.)<\/option>\n                                    <option value=\"harjoitusottelu-kansallinen-liiga\">Harjoitusottelu Kansallinen Liiga<\/option>\n                                    <option value=\"harjoitusottelu-naisten-kakkonen\">Harjoitusottelu Naisten Kakkonen<\/option>\n                                    <option value=\"harjoitusottelu-p16-ykkonen\">Harjoitusottelu P16 Ykk\u00f6nen<\/option>\n                                    <option value=\"harjoitusottelu-p18-kolmonen\">Harjoitusottelu P18 Kolmonen<\/option>\n                                    <option value=\"harjoitusottelu-t18-sm\">Harjoitusottelu T18 SM<\/option>\n                                    <option value=\"harjoitusottelu-veikkausliiga\">Harjoitusottelu Veikkausliiga<\/option>\n                                    <option value=\"harraste-1\">Harraste 1<\/option>\n                                    <option value=\"kansallinen-cup\">Kansallinen Cup<\/option>\n                                    <option value=\"kilpa\">Kilpa<\/option>\n                                    <option value=\"liigacup\">Liigacup<\/option>\n                                    <option value=\"m35-sm\">M35 SM<\/option>\n                                    <option value=\"m40-sm\">M40 SM<\/option>\n                                    <option value=\"m45-sm\">M45 SM<\/option>\n                                    <option value=\"m45-sm-7v7\">M45 SM 7v7<\/option>\n                                    <option value=\"m50-sm\">M50 SM<\/option>\n                                    <option value=\"miehet-35\">Miehet 35<\/option>\n                                    <option value=\"miehet-35-futsal\">Miehet 35 Futsal<\/option>\n                                    <option value=\"miehet-40\">Miehet 40<\/option>\n                                    <option value=\"miehet-45-7v7\">Miehet 45 7v7<\/option>\n                                    <option value=\"miehet-50\">Miehet 50<\/option>\n                                    <option value=\"miehet-55\">Miehet 55<\/option>\n                                    <option value=\"miehet-harraste-kutonen\">Miehet Harraste Kutonen<\/option>\n                                    <option value=\"miesten-kolmonen\">Miesten Kolmonen<\/option>\n                                    <option value=\"miesten-kutonen\">Miesten Kutonen<\/option>\n                                    <option value=\"miesten-nelonen\">Miesten Nelonen<\/option>\n                                    <option value=\"miesten-regions-cup\">Miesten Regions Cup<\/option>\n                                    <option value=\"miesten-suomen-cup\">Miesten Suomen Cup<\/option>\n                                    <option value=\"naiset-harraste\">Naiset Harraste<\/option>\n                                    <option value=\"naiset-harraste-kolmonen\">Naiset Harraste Kolmonen<\/option>\n                                    <option value=\"naiset-harraste-nelonen\">Naiset Harraste Nelonen<\/option>\n                                    <option value=\"naisten-kakkonen\">Naisten Kakkonen<\/option>\n                                    <option value=\"naisten-kolmonen\">Naisten Kolmonen<\/option>\n                                    <option value=\"naisten-suomen-cup\">Naisten Suomen Cup<\/option>\n                                    <option value=\"naisten-harraste-futsal-kolmonen\">Naisten harraste Futsal-Kolmonen<\/option>\n                                    <option value=\"p10\">P10<\/option>\n                                    <option value=\"p10-5v5\">P10 5v5<\/option>\n                                    <option value=\"p10-elite-2016-8v8\">P10 Elite (2016) 8v8<\/option>\n                                    <option value=\"p10-haaste-2016-8v8\">P10 Haaste (2016) 8v8<\/option>\n                                    <option value=\"p10-harraste-2016-8v8\">P10 Harraste (2016) 8v8<\/option>\n                                    <option value=\"p10-kilpa-2016-8v8\">P10 Kilpa (2016) 8v8<\/option>\n                                    <option value=\"p11\">P11<\/option>\n                                    <option value=\"p11-haaste-2015-12-9\">P11 Haaste (2015) 12.9.<\/option>\n                                    <option value=\"p11-haaste-2015-8v8\">P11 Haaste (2015) 8v8<\/option>\n                                    <option value=\"p11-harraste-2015-8v8\">P11 Harraste (2015) 8v8<\/option>\n                                    <option value=\"p11-kilpa-2015-12-9\">P11 Kilpa (2015) 12.9.<\/option>\n                                    <option value=\"p11-kilpa-2015-8v8\">P11 Kilpa (2015) 8v8<\/option>\n                                    <option value=\"p11-haaste-2015\">P11 haaste (2015)<\/option>\n                                    <option value=\"p12-haaste-2014-8v8\">P12 Haaste (2014) 8v8<\/option>\n                                    <option value=\"p12-harraste-2014-8v8\">P12 Harraste (2014) 8v8<\/option>\n                                    <option value=\"p12-huuhkajaliiga\">P12 Huuhkajaliiga<\/option>\n                                    <option value=\"p12-kakkonen\">P12 Kakkonen<\/option>\n                                    <option value=\"p12-kolmonen\">P12 Kolmonen<\/option>\n                                    <option value=\"p12-kutonen\">P12 Kutonen<\/option>\n                                    <option value=\"p12-nelonen\">P12 Nelonen<\/option>\n                                    <option value=\"p12-ykkonen\">P12 Ykk\u00f6nen<\/option>\n                                    <option value=\"p13-haaste-2013-8v8\">P13 Haaste (2013) 8v8<\/option>\n                                    <option value=\"p13-harraste-2013-8v8\">P13 Harraste (2013) 8v8<\/option>\n                                    <option value=\"p13-huuhkajaliiga\">P13 Huuhkajaliiga<\/option>\n                                    <option value=\"p13-kakkonen\">P13 Kakkonen<\/option>\n                                    <option value=\"p13-kolmonen\">P13 Kolmonen<\/option>\n                                    <option value=\"p13-kutonen\">P13 Kutonen<\/option>\n                                    <option value=\"p13-liiga-etela\">P13 Liiga Etel\u00e4<\/option>\n                                    <option value=\"p13-nelonen\">P13 Nelonen<\/option>\n                                    <option value=\"p13-vitonen\">P13 Vitonen<\/option>\n                                    <option value=\"p13-ykkonen\">P13 Ykk\u00f6nen<\/option>\n                                    <option value=\"p14-huuhkajaliiga\">P14 Huuhkajaliiga<\/option>\n                                    <option value=\"p14-kakkonen\">P14 Kakkonen<\/option>\n                                    <option value=\"p14-liiga-etela\">P14 Liiga Etel\u00e4<\/option>\n                                    <option value=\"p14-nelonen\">P14 Nelonen<\/option>\n                                    <option value=\"p14-vitonen\">P14 Vitonen<\/option>\n                                    <option value=\"p14-ykkonen\">P14 Ykk\u00f6nen<\/option>\n                                    <option value=\"p15-huuhkajaliiga\">P15 Huuhkajaliiga<\/option>\n                                    <option value=\"p15-kakkonen\">P15 Kakkonen<\/option>\n                                    <option value=\"p15-kolmonen\">P15 Kolmonen<\/option>\n                                    <option value=\"p15-liiga-etela\">P15 Liiga Etel\u00e4<\/option>\n                                    <option value=\"p15-vitonen\">P15 Vitonen<\/option>\n                                    <option value=\"p16-liiga-etela\">P16 Liiga Etel\u00e4<\/option>\n                                    <option value=\"p16-ykkonen\">P16 Ykk\u00f6nen<\/option>\n                                    <option value=\"p18-sm\">P18 SM<\/option>\n                                    <option value=\"p18-sm-karsintasarja\">P18 SM-karsintasarja<\/option>\n                                    <option value=\"p2011-haaste\">P2011 Haaste<\/option>\n                                    <option value=\"p2012-harraste\">P2012 Harraste<\/option>\n                                    <option value=\"p2013-haaste\">P2013 Haaste<\/option>\n                                    <option value=\"p2013-harraste\">P2013 Harraste<\/option>\n                                    <option value=\"p2014-eliitti\">P2014 Eliitti<\/option>\n                                    <option value=\"p2014-haaste\">P2014 Haaste<\/option>\n                                    <option value=\"p2014-harraste\">P2014 Harraste<\/option>\n                                    <option value=\"p2015-haaste\">P2015 Haaste<\/option>\n                                    <option value=\"p2015-kilpa\">P2015 Kilpa<\/option>\n                                    <option value=\"p2016-eliitti\">P2016 Eliitti<\/option>\n                                    <option value=\"p2016-kilpa\">P2016 Kilpa<\/option>\n                                    <option value=\"p2017-eliitti-7v7\">P2017 Eliitti 7v7<\/option>\n                                    <option value=\"p2017-haaste\">P2017 Haaste<\/option>\n                                    <option value=\"p2017-harraste\">P2017 Harraste<\/option>\n                                    <option value=\"p2017-kilpa\">P2017 Kilpa<\/option>\n                                    <option value=\"p2018-eliitti\">P2018 Eliitti<\/option>\n                                    <option value=\"p2018-haaste\">P2018 Haaste<\/option>\n                                    <option value=\"p2018-harraste\">P2018 Harraste<\/option>\n                                    <option value=\"p2018-kilpa\">P2018 Kilpa<\/option>\n                                    <option value=\"p2019-haaste\">P2019 Haaste<\/option>\n                                    <option value=\"p2019-harraste\">P2019 Harraste<\/option>\n                                    <option value=\"p2019-kilpa\">P2019 Kilpa<\/option>\n                                    <option value=\"p2019-haaste\">P2019 haaste<\/option>\n                                    <option value=\"p2019-harraste\">P2019 harraste<\/option>\n                                    <option value=\"p2019-kilpa\">P2019 kilpa<\/option>\n                                    <option value=\"p21-ykkonen\">P21 Ykk\u00f6nen<\/option>\n                                    <option value=\"p6-peli-illat\">P6 Peli-illat<\/option>\n                                    <option value=\"p7\">P7<\/option>\n                                    <option value=\"p7-2019-taso-1\">P7 (2019) - Taso 1<\/option>\n                                    <option value=\"p7-2019-taso-2\">P7 (2019) - Taso 2<\/option>\n                                    <option value=\"p7-2019-taso-3\">P7 (2019) - Taso 3<\/option>\n                                    <option value=\"p8\">P8<\/option>\n                                    <option value=\"p8-2018-taso-1\">P8 (2018) - Taso 1<\/option>\n                                    <option value=\"p8-2018-taso-2\">P8 (2018) - Taso 2<\/option>\n                                    <option value=\"p8-2018-taso-3\">P8 (2018) - Taso 3<\/option>\n                                    <option value=\"p9\">P9<\/option>\n                                    <option value=\"p9-2017-kilpa\">P9 (2017) Kilpa<\/option>\n                                    <option value=\"p9-elite-2017-7v7\">P9 Elite (2017) 7v7<\/option>\n                                    <option value=\"p9-haaste-2017-5v5\">P9 Haaste (2017) 5v5<\/option>\n                                    <option value=\"p92017-haaste\">P9(2017) Haaste<\/option>\n                                    <option value=\"p92017-kilpa\">P9(2017) Kilpa<\/option>\n                                    <option value=\"pu12-kutsu-2014\">PU12 kutsu (2014)<\/option>\n                                    <option value=\"pu92017-taso1\">PU9(2017) Taso1<\/option>\n                                    <option value=\"pu92017-taso2\">PU9(2017) Taso2<\/option>\n                                    <option value=\"pojat-tytot-6v-enemman-pelanneet-2020\">Pojat &amp; Tyt\u00f6t 6v enemm\u00e4n pelanneet (2020)<\/option>\n                                    <option value=\"pojat-11-2015\">Pojat 11 (2015)<\/option>\n                                    <option value=\"pojat-11v-haaste-2015\">Pojat 11v haaste (2015)<\/option>\n                                    <option value=\"pojat-13v-kilpa-2013\">Pojat 13v Kilpa (2013)<\/option>\n                                    <option value=\"pojat-2016-haaste\">Pojat 2016 Haaste<\/option>\n                                    <option value=\"pojat-2019-taso-1-ep\">Pojat 2019 - Taso 1 (EP)<\/option>\n                                    <option value=\"pojat-2019-taso-2-vp\">Pojat 2019 - Taso 2 (VP)<\/option>\n                                    <option value=\"pojat-c14-2012-elite\">Pojat C14 (2012) Elite<\/option>\n                                    <option value=\"pojat-c14-2012-haaste\">Pojat C14 (2012) Haaste<\/option>\n                                    <option value=\"pojat-c14-2012-kilpa\">Pojat C14 (2012) Kilpa<\/option>\n                                    <option value=\"pojat-c15-2011-elite\">Pojat C15 (2011) Elite<\/option>\n                                    <option value=\"pojat-c15-2011-haaste\">Pojat C15 (2011) Haaste<\/option>\n                                    <option value=\"pojat-c15-2011-kilpa\">Pojat C15 (2011) Kilpa<\/option>\n                                    <option value=\"pojat-d12-harraste-8v8-2014\">Pojat D12 Harraste 8v8 (2014)<\/option>\n                                    <option value=\"pojat-d13-2013-elite-11v11\">Pojat D13 (2013) Elite 11v11<\/option>\n                                    <option value=\"pojat-d13-2013-kilpa\">Pojat D13 (2013) Kilpa<\/option>\n                                    <option value=\"pojat-d13-haaste-8v8-2013\">Pojat D13 Haaste 8v8 (2013)<\/option>\n                                    <option value=\"pojat-d13-harraste-8v8-2013\">Pojat D13 Harraste 8v8 (2013)<\/option>\n                                    <option value=\"pojat-e10-2016-haaste\">Pojat E10 (2016) Haaste<\/option>\n                                    <option value=\"pojat-e10-2016-harraste\">Pojat E10 (2016) Harraste<\/option>\n                                    <option value=\"pojat-e10-elite-8v8-2016\">Pojat E10 Elite 8v8 (2016)<\/option>\n                                    <option value=\"pojat-e10-harraste-8v8-2016\">Pojat E10 Harraste 8v8 (2016)<\/option>\n                                    <option value=\"pojat-e10-kilpa-8v8-2016\">Pojat E10 Kilpa 8v8 (2016)<\/option>\n                                    <option value=\"pojat-e11-2015-elite\">Pojat E11 (2015) Elite<\/option>\n                                    <option value=\"pojat-e11-2015-haaste\">Pojat E11 (2015) Haaste<\/option>\n                                    <option value=\"pojat-e11-2015-harraste\">Pojat E11 (2015) Harraste<\/option>\n                                    <option value=\"pojat-e11-2015-kilpa\">Pojat E11 (2015) Kilpa<\/option>\n                                    <option value=\"pojat-e11-elite-8v8-2015\">Pojat E11 Elite 8v8 (2015)<\/option>\n                                    <option value=\"pojat-e11-harraste-8v8-2015\">Pojat E11 Harraste 8v8 (2015)<\/option>\n                                    <option value=\"pojat-e11-kilpa-8v8-2015\">Pojat E11 Kilpa 8v8 (2015)<\/option>\n                                    <option value=\"pojat-f9-2017-elite\">Pojat F9 (2017) Elite<\/option>\n                                    <option value=\"pojat-f9-2017-haaste\">Pojat F9 (2017) Haaste<\/option>\n                                    <option value=\"pojat-ja-pojat-ja-tytot-u6-2020-enemman-pelanneet\">Pojat ja Pojat ja tyt\u00f6t U6 (2020) Enemm\u00e4n pelanneet<\/option>\n                                    <option value=\"sekasarja-harraste-7v7\">Sekasarja Harraste 7v7<\/option>\n                                    <option value=\"t10\">T10<\/option>\n                                    <option value=\"t10-5v5\">T10 5v5<\/option>\n                                    <option value=\"t10-futsal\">T10 Futsal<\/option>\n                                    <option value=\"t10-haaste\">T10 Haaste<\/option>\n                                    <option value=\"t10-harraste\">T10 Harraste<\/option>\n                                    <option value=\"t10-harraste-5v5-2016-25-4\">T10 Harraste 5v5 (2016) 25.4.<\/option>\n                                    <option value=\"t12-haaste\">T12 Haaste<\/option>\n                                    <option value=\"t12-kakkonen\">T12 Kakkonen<\/option>\n                                    <option value=\"t12-kolmonen\">T12 Kolmonen<\/option>\n                                    <option value=\"t12-nelonen\">T12 Nelonen<\/option>\n                                    <option value=\"t13-futsal-kakkonen\">T13 Futsal-Kakkonen<\/option>\n                                    <option value=\"t13-haaste\">T13 Haaste<\/option>\n                                    <option value=\"t13-kolmonen\">T13 Kolmonen<\/option>\n                                    <option value=\"t14-2012-harraste\">T14 (2012) harraste<\/option>\n                                    <option value=\"t14-futsal-kakkonen\">T14 Futsal-Kakkonen<\/option>\n                                    <option value=\"t14-futsal-ykkonen\">T14 Futsal-Ykk\u00f6nen<\/option>\n                                    <option value=\"t14-haaste\">T14 Haaste<\/option>\n                                    <option value=\"t14-haaste-2012-11-4\">T14 Haaste (2012) 11.4.<\/option>\n                                    <option value=\"t14-harraste-8v8-2012-11-4\">T14 Harraste 8v8 (2012) 11.4.<\/option>\n                                    <option value=\"t14-helmariliiga\">T14 Helmariliiga<\/option>\n                                    <option value=\"t14-kolmonen\">T14 Kolmonen<\/option>\n                                    <option value=\"t14-nelonen\">T14 Nelonen<\/option>\n                                    <option value=\"t14-ykkonen\">T14 Ykk\u00f6nen<\/option>\n                                    <option value=\"t14-15-harraste\">T14-15 Harraste<\/option>\n                                    <option value=\"t15-haaste\">T15 Haaste<\/option>\n                                    <option value=\"t16-futsal-ykkonen\">T16 Futsal-Ykk\u00f6nen<\/option>\n                                    <option value=\"t18-8v8-ykkonen\">T18 8v8 Ykk\u00f6nen<\/option>\n                                    <option value=\"t18-haaste\">T18 Haaste<\/option>\n                                    <option value=\"t18-kakkonen\">T18 Kakkonen<\/option>\n                                    <option value=\"t18-kolmonen\">T18 Kolmonen<\/option>\n                                    <option value=\"t18-sm\">T18 SM<\/option>\n                                    <option value=\"t18-sm-karsintasarja\">T18 SM-karsintasarja<\/option>\n                                    <option value=\"t2011-12-kilpa\">T2011-12 Kilpa<\/option>\n                                    <option value=\"t2012-harraste-8v8\">T2012 Harraste 8v8<\/option>\n                                    <option value=\"t2016-haaste\">T2016 Haaste<\/option>\n                                    <option value=\"t2016-harraste\">T2016 Harraste<\/option>\n                                    <option value=\"t2016-harraste-5v5\">T2016 Harraste 5v5<\/option>\n                                    <option value=\"t2016-haaste\">T2016 haaste<\/option>\n                                    <option value=\"t7\">T7<\/option>\n                                    <option value=\"t9\">T9<\/option>\n                                    <option value=\"tytot-pojat-2020\">Tyt\u00f6t &amp; Pojat 2020<\/option>\n                                    <option value=\"tytot-12v-2014-haaste\">Tyt\u00f6t 12v (2014) haaste<\/option>\n                                    <option value=\"tytot-12v-2014-harraste\">Tyt\u00f6t 12v (2014) harraste<\/option>\n                                    <option value=\"tytot-d12-2014-harraste\">Tyt\u00f6t D12 (2014) Harraste<\/option>\n                                    <option value=\"u12-avoin-2014\">U12 Avoin (2014)<\/option>\n                                    <option value=\"u12-kutsu-2014\">U12 kutsu (2014)<\/option>\n                                    <option value=\"u13-pojat\">U13 Pojat<\/option>\n                                    <option value=\"u9-kilpa-2017\">U9  Kilpa (2017)<\/option>\n                                    <option value=\"veikkausliiga\">Veikkausliiga<\/option>\n                                    <option value=\"pojat-ja-tytot-u6-2020-vahemman-pelanneet\">pojat ja tyt\u00f6t U6 (2020) V\u00e4hemm\u00e4n pelanneet<\/option>\n                            <\/select>\n        <\/div>\n    <\/div>\n\n    <div class=\"g-list\">\n                    <h3 class=\"g-day-header\">lauantai 29. elokuuta<\/h3>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p8\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(277,65%,45%)\">P8<\/span>\n                        <div class=\"g-time__clock\">klo --:--<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/10x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">Valtti\/Keltainen 2<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/Keltainen 3<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A4969616fede21f322df4dcbe1d0b0b0e%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T000000%0D%0ADTEND%3A20260829T020000%0D%0ASUMMARY%3AValtti%2FKeltainen%202%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP8%20%E2%80%A2%20Ottelua%20ei%20pelata%2Fluovutus%2C%20Helsinki%0D%0ALOCATION%3AOttelua%20ei%20pelata%2Fluovutus%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Ottelua+ei+pelata%2Fluovutus%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Ottelua ei pelata\/luovutus, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p7\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(28,65%,45%)\">P7<\/span>\n                        <div class=\"g-time__clock\">klo 10:00<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/10x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">Valtti\/Vihre\u00e4 3<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/Sininen 3<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3Ab34914a82c6ea8f0d7412307559f5131%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T100000%0D%0ADTEND%3A20260829T120000%0D%0ASUMMARY%3AValtti%2FVihre%C3%A4%203%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP7%20%E2%80%A2%20PuuhaPark%20Areena%20TN%20B2%2C%20Helsinki%0D%0ALOCATION%3APuuhaPark%20Areena%20TN%20B2%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/PuuhaPark+Areena+TN+B2%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        PuuhaPark Areena TN B2, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p7\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(28,65%,45%)\">P7<\/span>\n                        <div class=\"g-time__clock\">klo 10:35<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/1x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">HJK\/T\u00f6\u00f6l\u00f6 Raita<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/Sininen 3<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A544424e25b6d5e94de03abba1fcd8297%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T103500%0D%0ADTEND%3A20260829T123500%0D%0ASUMMARY%3AHJK%2FT%C3%B6%C3%B6l%C3%B6%20Raita%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP7%20%E2%80%A2%20PuuhaPark%20Areena%20TN%20B2%2C%20Helsinki%0D%0ALOCATION%3APuuhaPark%20Areena%20TN%20B2%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/PuuhaPark+Areena+TN+B2%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        PuuhaPark Areena TN B2, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"t10-harraste\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(341,65%,45%)\">T10 Harraste<\/span>\n                        <div class=\"g-time__clock\">klo 10:45<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/3231x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">FC Peltirumpu Vihre\u00e4<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A6bc115dfff2ed320187e434a9ef199d9%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T104500%0D%0ADTEND%3A20260829T124500%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20FC%20Peltirumpu%20Vihre%C3%A4%0D%0ADESCRIPTION%3AT10%20Harraste%20%E2%80%A2%20Nurmi%204%2C%20Lahti%0D%0ALOCATION%3ANurmi%204%2C%20Lahti%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Nurmi+4%2C+Lahti\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Nurmi 4, Lahti                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"t10-harraste\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(341,65%,45%)\">T10 Harraste<\/span>\n                        <div class=\"g-time__clock\">klo 10:45<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan Sininen<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/41x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">Kasiysi\/Pep YJ2<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3Ac7e097df5a7e020422354bda382651fb%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T104500%0D%0ADTEND%3A20260829T124500%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20Kasiysi%2FPep%20YJ2%0D%0ADESCRIPTION%3AT10%20Harraste%20%E2%80%A2%20Nurmi%203%2C%20Lahti%0D%0ALOCATION%3ANurmi%203%2C%20Lahti%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Nurmi+3%2C+Lahti\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Nurmi 3, Lahti                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p8\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(277,65%,45%)\">P8<\/span>\n                        <div class=\"g-time__clock\">klo 11:00<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/1x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">HJK\/Malmi Sinivalk<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/Keltainen 3<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A407bff47b9ccb12f9e82a9e3da51d40f%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T110000%0D%0ADTEND%3A20260829T130000%0D%0ASUMMARY%3AHJK%2FMalmi%20Sinivalk%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP8%20%E2%80%A2%20Hamarin%20N%20A%2C%20Porvoo%0D%0ALOCATION%3AHamarin%20N%20A%2C%20Porvoo%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Hamarin+N+A%2C+Porvoo\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Hamarin N A, Porvoo                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"p8\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(277,65%,45%)\">P8<\/span>\n                        <div class=\"g-time__clock\">klo 11:30<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/Keltainen 3<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/290x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">Akilles\/Gr\u00f6n<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A701f81b3f9f8cfae3034ef033d90d25a%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T113000%0D%0ADTEND%3A20260829T133000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20Akilles%2FGr%C3%B6n%0D%0ADESCRIPTION%3AP8%20%E2%80%A2%20Hamarin%20N%20A%2C%20Porvoo%0D%0ALOCATION%3AHamarin%20N%20A%2C%20Porvoo%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Hamarin+N+A%2C+Porvoo\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Hamarin N A, Porvoo                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"p8\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(277,65%,45%)\">P8<\/span>\n                        <div class=\"g-time__clock\">klo 11:30<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/Keltainen 2<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/52x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">PPJ\/Laru Valkoinen<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3Afc56ebb2a46406167f48117e51a916bb%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T113000%0D%0ADTEND%3A20260829T133000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20PPJ%2FLaru%20Valkoinen%0D%0ADESCRIPTION%3AP8%20%E2%80%A2%20Pirkkola%20nap%20TN%20A%2C%20Helsinki%0D%0ALOCATION%3APirkkola%20nap%20TN%20A%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Pirkkola+nap+TN+A%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Pirkkola nap TN A, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p10\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(316,65%,45%)\">P10<\/span>\n                        <div class=\"g-time__clock\">klo 11:55<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/69x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">EPS\/3<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A339233de53f289451388d53f64e58085%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T115500%0D%0ADTEND%3A20260829T135500%0D%0ASUMMARY%3AEPS%2F3%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP10%20%E2%80%A2%20PuuhaPark%20Areena%20TN%20A%2C%20Helsinki%0D%0ALOCATION%3APuuhaPark%20Areena%20TN%20A%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/PuuhaPark+Areena+TN+A%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        PuuhaPark Areena TN A, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"m35-sm\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(102,65%,45%)\">M35 SM<\/span>\n                        <div class=\"g-time__clock\">klo 12:00<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/2989x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">Esse IK 35<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A5a876c534c98ea99d61667d8c3996225%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T120000%0D%0ADTEND%3A20260829T140000%0D%0ASUMMARY%3AEsse%20IK%2035%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AM35%20SM%20%E2%80%A2%20Siltam%C3%A4ki%201%20N%2C%20Helsinki%0D%0ALOCATION%3ASiltam%C3%A4ki%201%20N%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Siltam%C3%A4ki+1+N%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Siltam\u00e4ki 1 N, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p15-kakkonen\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(293,65%,45%)\">P15 Kakkonen<\/span>\n                        <div class=\"g-time__clock\">klo 12:00<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/4x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">PK-35\/punamusta<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/2<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3Af5fada1312aac9b84707667aa35f93f5%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T120000%0D%0ADTEND%3A20260829T140000%0D%0ASUMMARY%3APK-35%2Fpunamusta%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP15%20Kakkonen%20%E2%80%A2%20Myllypuro%20TN%2C%20Helsinki%0D%0ALOCATION%3AMyllypuro%20TN%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Myllypuro+TN%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Myllypuro TN, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p8\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(277,65%,45%)\">P8<\/span>\n                        <div class=\"g-time__clock\">klo 12:00<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/171x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">FC Kontu\/sininen<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/Keltainen 2<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A1fe1aad1dea304266f1cb237a3195aa2%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T120000%0D%0ADTEND%3A20260829T140000%0D%0ASUMMARY%3AFC%20Kontu%2Fsininen%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP8%20%E2%80%A2%20Pirkkola%20nap%20TN%20B%2C%20Helsinki%0D%0ALOCATION%3APirkkola%20nap%20TN%20B%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Pirkkola+nap+TN+B%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Pirkkola nap TN B, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"p8\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(277,65%,45%)\">P8<\/span>\n                        <div class=\"g-time__clock\">klo 12:30<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/Keltainen 2<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/261x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">LPS\/Musta<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A43d69e119cf2818a30aa03a6dadcf362%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T123000%0D%0ADTEND%3A20260829T143000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20LPS%2FMusta%0D%0ADESCRIPTION%3AP8%20%E2%80%A2%20Pirkkola%20nap%20TN%20A%2C%20Helsinki%0D%0ALOCATION%3APirkkola%20nap%20TN%20A%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Pirkkola+nap+TN+A%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Pirkkola nap TN A, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"p10\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(316,65%,45%)\">P10<\/span>\n                        <div class=\"g-time__clock\">klo 12:40<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/99x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">HooGee<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3Aa7991044560a5ca8eb9d4e334e1bd64f%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T124000%0D%0ADTEND%3A20260829T144000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20HooGee%0D%0ADESCRIPTION%3AP10%20%E2%80%A2%20PuuhaPark%20Areena%20TN%20A%2C%20Helsinki%0D%0ALOCATION%3APuuhaPark%20Areena%20TN%20A%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/PuuhaPark+Areena+TN+A%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        PuuhaPark Areena TN A, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p10\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(316,65%,45%)\">P10<\/span>\n                        <div class=\"g-time__clock\">klo 12:40<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/4x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">PK-35\/Punainen<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/3<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A0877beab9f99358b3db16d4a78643356%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T124000%0D%0ADTEND%3A20260829T144000%0D%0ASUMMARY%3APK-35%2FPunainen%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP10%20%E2%80%A2%20Koskelantie%20nap%20TN%2C%20Helsinki%0D%0ALOCATION%3AKoskelantie%20nap%20TN%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Koskelantie+nap+TN%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Koskelantie nap TN, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p14-vitonen\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(148,65%,45%)\">P14 Vitonen<\/span>\n                        <div class=\"g-time__clock\">klo 13:00<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/5534x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">FC Jenga<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/sininen<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A815a6fc8e44a8d43dbbc5f4739059e32%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T130000%0D%0ADTEND%3A20260829T150000%0D%0ASUMMARY%3AFC%20Jenga%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP14%20Vitonen%20%E2%80%A2%20Ravilinna%20N%2C%20Iitti%0D%0ALOCATION%3ARavilinna%20N%2C%20Iitti%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Ravilinna+N%2C+Iitti\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Ravilinna N, Iitti                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"t12-kakkonen\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(219,65%,45%)\">T12 Kakkonen<\/span>\n                        <div class=\"g-time__clock\">klo 13:00<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/5x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">HPS\/Vihre\u00e4<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A8a42f23f21bf68df4b7e0680f0bf935f%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T130000%0D%0ADTEND%3A20260829T150000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20HPS%2FVihre%C3%A4%0D%0ADESCRIPTION%3AT12%20Kakkonen%20%E2%80%A2%20Pirkkola%20TN%20A%2C%20Helsinki%0D%0ALOCATION%3APirkkola%20TN%20A%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Pirkkola+TN+A%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Pirkkola TN A, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p10\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(316,65%,45%)\">P10<\/span>\n                        <div class=\"g-time__clock\">klo 13:20<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/13x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">K\u00e4Pa\/City2 Black<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/3<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3Aa544d3c8b7b0362d7292b19bed12ba8b%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T132000%0D%0ADTEND%3A20260829T152000%0D%0ASUMMARY%3AK%C3%A4Pa%2FCity2%20Black%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP10%20%E2%80%A2%20Koskelantie%20nap%20TN%2C%20Helsinki%0D%0ALOCATION%3AKoskelantie%20nap%20TN%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Koskelantie+nap+TN%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Koskelantie nap TN, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p10\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(316,65%,45%)\">P10<\/span>\n                        <div class=\"g-time__clock\">klo 13:25<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/394x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">Kulps\/Musta<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3Af8f91388f89ba6eecbcfbc9d647787c9%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T132500%0D%0ADTEND%3A20260829T152500%0D%0ASUMMARY%3AKulps%2FMusta%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP10%20%E2%80%A2%20PuuhaPark%20Areena%20TN%20B%2C%20Helsinki%0D%0ALOCATION%3APuuhaPark%20Areena%20TN%20B%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/PuuhaPark+Areena+TN+B%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        PuuhaPark Areena TN B, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"p15-vitonen\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(63,65%,45%)\">P15 Vitonen<\/span>\n                        <div class=\"g-time__clock\">klo 13:30<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/4<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/5928x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">FC PeKa\/Purha YJ<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A9fd4e18163b0905c7f227660abd1e81d%40gnistan.fi%0D%0ADTSTAMP%3A20260829T055944Z%0D%0ADTSTART%3A20260829T133000%0D%0ADTEND%3A20260829T153000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20FC%20PeKa%2FPurha%20YJ%0D%0ADESCRIPTION%3AP15%20Vitonen%20%E2%80%A2%20Myllypuro%20TN%2C%20Helsinki%0D%0ALOCATION%3AMyllypuro%20TN%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-29.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Myllypuro+TN%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Myllypuro TN, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <\/div>\n\n    <div class=\"g-empty\">Ei otteluita.<\/div>\n    <button class=\"g-load-more\">N\u00e4yt\u00e4 lis\u00e4\u00e4<\/button>\n\n        <div class=\"g-updated\">P\u00e4ivitetty 29.8.2026 klo 08:02<\/div>\n    \n    <!-- Hidden skeleton template for JS to clone -->\n    <div id=\"gnistan-8720-skeleton\" style=\"display:none\"><div class=\"g-skel__day-header g-skel-block\"><\/div><div class=\"g-skel\">\n            <div class=\"g-skel__inner\">\n                <div class=\"g-skel__time\">\n                    <div class=\"g-skel-block g-skel__clock\"><\/div>\n                    <div class=\"g-skel-block g-skel__badge\"><\/div>\n                <\/div>\n                <div class=\"g-skel__teams\">\n                    <div class=\"g-skel__team-home\">\n                        <div class=\"g-skel-block g-skel__logo\"><\/div>\n                        <div class=\"g-skel-block g-skel__name\"><\/div>\n                    <\/div>\n                    <div class=\"g-skel-block g-skel__score\"><\/div>\n                    <div class=\"g-skel__team-away\">\n                        <div class=\"g-skel-block g-skel__logo\"><\/div>\n                        <div class=\"g-skel-block g-skel__name\"><\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"g-skel__meta\">\n                    <div class=\"g-skel-block g-skel__btn\"><\/div>\n                    <div class=\"g-skel-block g-skel__venue\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div><div class=\"g-skel\">\n            <div class=\"g-skel__inner\">\n                <div class=\"g-skel__time\">\n                    <div class=\"g-skel-block g-skel__clock\"><\/div>\n                    <div class=\"g-skel-block g-skel__badge\"><\/div>\n                <\/div>\n                <div class=\"g-skel__teams\">\n                    <div class=\"g-skel__team-home\">\n                        <div class=\"g-skel-block g-skel__logo\"><\/div>\n                        <div class=\"g-skel-block g-skel__name\"><\/div>\n                    <\/div>\n                    <div class=\"g-skel-block g-skel__score\"><\/div>\n                    <div class=\"g-skel__team-away\">\n                        <div class=\"g-skel-block g-skel__logo\"><\/div>\n                        <div class=\"g-skel-block g-skel__name\"><\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"g-skel__meta\">\n                    <div class=\"g-skel-block g-skel__btn\"><\/div>\n                    <div class=\"g-skel-block g-skel__venue\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div><div class=\"g-skel\">\n            <div class=\"g-skel__inner\">\n                <div class=\"g-skel__time\">\n                    <div class=\"g-skel-block g-skel__clock\"><\/div>\n                    <div class=\"g-skel-block g-skel__badge\"><\/div>\n                <\/div>\n                <div class=\"g-skel__teams\">\n                    <div class=\"g-skel__team-home\">\n                        <div class=\"g-skel-block g-skel__logo\"><\/div>\n                        <div class=\"g-skel-block g-skel__name\"><\/div>\n                    <\/div>\n                    <div class=\"g-skel-block g-skel__score\"><\/div>\n                    <div class=\"g-skel__team-away\">\n                        <div class=\"g-skel-block g-skel__logo\"><\/div>\n                        <div class=\"g-skel-block g-skel__name\"><\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"g-skel__meta\">\n                    <div class=\"g-skel-block g-skel__btn\"><\/div>\n                    <div class=\"g-skel-block g-skel__venue\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div><div class=\"g-skel__day-header g-skel-block\"><\/div><div class=\"g-skel\">\n            <div class=\"g-skel__inner\">\n                <div class=\"g-skel__time\">\n                    <div class=\"g-skel-block g-skel__clock\"><\/div>\n                    <div class=\"g-skel-block g-skel__badge\"><\/div>\n                <\/div>\n                <div class=\"g-skel__teams\">\n                    <div class=\"g-skel__team-home\">\n                        <div class=\"g-skel-block g-skel__logo\"><\/div>\n                        <div class=\"g-skel-block g-skel__name\"><\/div>\n                    <\/div>\n                    <div class=\"g-skel-block g-skel__score\"><\/div>\n                    <div class=\"g-skel__team-away\">\n                        <div class=\"g-skel-block g-skel__logo\"><\/div>\n                        <div class=\"g-skel-block g-skel__name\"><\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"g-skel__meta\">\n                    <div class=\"g-skel-block g-skel__btn\"><\/div>\n                    <div class=\"g-skel-block g-skel__venue\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div><div class=\"g-skel\">\n            <div class=\"g-skel__inner\">\n                <div class=\"g-skel__time\">\n                    <div class=\"g-skel-block g-skel__clock\"><\/div>\n                    <div class=\"g-skel-block g-skel__badge\"><\/div>\n                <\/div>\n                <div class=\"g-skel__teams\">\n                    <div class=\"g-skel__team-home\">\n                        <div class=\"g-skel-block g-skel__logo\"><\/div>\n                        <div class=\"g-skel-block g-skel__name\"><\/div>\n                    <\/div>\n                    <div class=\"g-skel-block g-skel__score\"><\/div>\n                    <div class=\"g-skel__team-away\">\n                        <div class=\"g-skel-block g-skel__logo\"><\/div>\n                        <div class=\"g-skel-block g-skel__name\"><\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"g-skel__meta\">\n                    <div class=\"g-skel-block g-skel__btn\"><\/div>\n                    <div class=\"g-skel-block g-skel__venue\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div><div class=\"g-skel\">\n            <div class=\"g-skel__inner\">\n                <div class=\"g-skel__time\">\n                    <div class=\"g-skel-block g-skel__clock\"><\/div>\n                    <div class=\"g-skel-block g-skel__badge\"><\/div>\n                <\/div>\n                <div class=\"g-skel__teams\">\n                    <div class=\"g-skel__team-home\">\n                        <div class=\"g-skel-block g-skel__logo\"><\/div>\n                        <div class=\"g-skel-block g-skel__name\"><\/div>\n                    <\/div>\n                    <div class=\"g-skel-block g-skel__score\"><\/div>\n                    <div class=\"g-skel__team-away\">\n                        <div class=\"g-skel-block g-skel__logo\"><\/div>\n                        <div class=\"g-skel-block g-skel__name\"><\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"g-skel__meta\">\n                    <div class=\"g-skel-block g-skel__btn\"><\/div>\n                    <div class=\"g-skel-block g-skel__venue\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div><\/div>\n<\/div>\n<script>\n(function(){\n    const ID          = \"gnistan-8720\";\n    const LIMIT       = 20;\n    const AJAX_URL    = \"https:\\\/\\\/gnistan.fi\\\/wp-admin\\\/admin-ajax.php\";\n    const PLACEHOLDER = \"https:\\\/\\\/gnistan.fi\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/g-logo-missing-inverted.png\";\n    const TICKETS_URL = \"https:\\\/\\\/gnistan.tmtickets.fi\\\/\";\n    const MONTHS = ['tammikuuta','helmikuuta','maaliskuuta','huhtikuuta','toukokuuta','kes\u00e4kuuta',\n                    'hein\u00e4kuuta','elokuuta','syyskuuta','lokakuuta','marraskuuta','joulukuuta'];\n    const DAYS   = ['sunnuntai','maanantai','tiistai','keskiviikko','torstai','perjantai','lauantai'];\n\n    \/\/ Server-side pagination: only the first page (upcoming, unfiltered) is inlined.\n    \/\/ Everything else is fetched on demand from the gnistan_get_matches endpoint.\n    const INITIAL       = [{\"dt\":\"2026-08-29T00:00:00+03:00\",\"status\":\"Forfeited\",\"home\":false,\"home_name\":\"Valtti\\\/Keltainen 2\",\"away_name\":\"IF Gnistan\\\/Keltainen 3\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/10x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Ottelua ei pelata\\\/luovutus, Helsinki\",\"category\":\"P8\",\"cat_slug\":\"p8\",\"score_h\":0,\"score_a\":3,\"no_time\":true,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T10:00:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"Valtti\\\/Vihre\\u00e4 3\",\"away_name\":\"IF Gnistan\\\/Sininen 3\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/10x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"PuuhaPark Areena TN B2, Helsinki\",\"category\":\"P7\",\"cat_slug\":\"p7\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T10:35:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"HJK\\\/T\\u00f6\\u00f6l\\u00f6 Raita\",\"away_name\":\"IF Gnistan\\\/Sininen 3\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/1x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"PuuhaPark Areena TN B2, Helsinki\",\"category\":\"P7\",\"cat_slug\":\"p7\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T10:45:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\",\"away_name\":\"FC Peltirumpu Vihre\\u00e4\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/3231x.png\",\"venue\":\"Nurmi 4, Lahti\",\"category\":\"T10 Harraste\",\"cat_slug\":\"t10-harraste\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T10:45:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan Sininen\",\"away_name\":\"Kasiysi\\\/Pep YJ2\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/41x.png\",\"venue\":\"Nurmi 3, Lahti\",\"category\":\"T10 Harraste\",\"cat_slug\":\"t10-harraste\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T11:00:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"HJK\\\/Malmi Sinivalk\",\"away_name\":\"IF Gnistan\\\/Keltainen 3\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/1x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Hamarin N A, Porvoo\",\"category\":\"P8\",\"cat_slug\":\"p8\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T11:30:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Keltainen 3\",\"away_name\":\"Akilles\\\/Gr\\u00f6n\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/290x.png\",\"venue\":\"Hamarin N A, Porvoo\",\"category\":\"P8\",\"cat_slug\":\"p8\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T11:30:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Keltainen 2\",\"away_name\":\"PPJ\\\/Laru Valkoinen\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/52x.png\",\"venue\":\"Pirkkola nap TN A, Helsinki\",\"category\":\"P8\",\"cat_slug\":\"p8\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T11:55:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"EPS\\\/3\",\"away_name\":\"IF Gnistan\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/69x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"PuuhaPark Areena TN A, Helsinki\",\"category\":\"P10\",\"cat_slug\":\"p10\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T12:00:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"Esse IK 35\",\"away_name\":\"IF Gnistan\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/2989x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Siltam\\u00e4ki 1 N, Helsinki\",\"category\":\"M35 SM\",\"cat_slug\":\"m35-sm\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T12:00:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"PK-35\\\/punamusta\",\"away_name\":\"IF Gnistan\\\/2\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/4x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Myllypuro TN, Helsinki\",\"category\":\"P15 Kakkonen\",\"cat_slug\":\"p15-kakkonen\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T12:00:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"FC Kontu\\\/sininen\",\"away_name\":\"IF Gnistan\\\/Keltainen 2\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/171x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Pirkkola nap TN B, Helsinki\",\"category\":\"P8\",\"cat_slug\":\"p8\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T12:30:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Keltainen 2\",\"away_name\":\"LPS\\\/Musta\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/261x.png\",\"venue\":\"Pirkkola nap TN A, Helsinki\",\"category\":\"P8\",\"cat_slug\":\"p8\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T12:40:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\",\"away_name\":\"HooGee\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/99x.png\",\"venue\":\"PuuhaPark Areena TN A, Helsinki\",\"category\":\"P10\",\"cat_slug\":\"p10\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T12:40:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"PK-35\\\/Punainen\",\"away_name\":\"IF Gnistan\\\/3\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/4x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Koskelantie nap TN, Helsinki\",\"category\":\"P10\",\"cat_slug\":\"p10\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T13:00:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"FC Jenga\",\"away_name\":\"IF Gnistan\\\/sininen\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/5534x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Ravilinna N, Iitti\",\"category\":\"P14 Vitonen\",\"cat_slug\":\"p14-vitonen\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T13:00:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\",\"away_name\":\"HPS\\\/Vihre\\u00e4\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/5x.png\",\"venue\":\"Pirkkola TN A, Helsinki\",\"category\":\"T12 Kakkonen\",\"cat_slug\":\"t12-kakkonen\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T13:20:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"K\\u00e4Pa\\\/City2 Black\",\"away_name\":\"IF Gnistan\\\/3\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/13x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Koskelantie nap TN, Helsinki\",\"category\":\"P10\",\"cat_slug\":\"p10\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T13:25:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"Kulps\\\/Musta\",\"away_name\":\"IF Gnistan\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/394x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"PuuhaPark Areena TN B, Helsinki\",\"category\":\"P10\",\"cat_slug\":\"p10\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T13:30:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/4\",\"away_name\":\"FC PeKa\\\/Purha YJ\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/5928x.png\",\"venue\":\"Myllypuro TN, Helsinki\",\"category\":\"P15 Vitonen\",\"cat_slug\":\"p15-vitonen\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false}];\n    const INITIAL_TOTAL = 840;\n\n    let tab     = 'upcoming';\n    let filters = { loc: 'all', cat: 'all' };\n    let items   = INITIAL.slice();   \/\/ matches currently held for the active view\n    let total   = INITIAL_TOTAL;     \/\/ total matching the active view (from the server)\n    let reqSeq  = 0;                 \/\/ guards against out-of-order responses\n\n    const el      = document.getElementById(ID);\n    const list    = el.querySelector('.g-list');\n    const empty   = el.querySelector('.g-empty');\n    const loadBtn = el.querySelector('.g-load-more');\n    const tabs    = el.querySelectorAll('[data-tab]');\n    const skelTpl = document.getElementById(ID + '-skeleton');\n\n    const initSlider = (container) => {\n        const slider    = container.querySelector('.g-slider');\n        const activeBtn = container.querySelector('button.active');\n\n        const updateSlider = (target) => {\n            const containerRect = container.getBoundingClientRect();\n            const targetRect    = target.getBoundingClientRect();\n            const offset        = targetRect.left - containerRect.left;\n            slider.style.width     = targetRect.width + 'px';\n            slider.style.transform = `translateX(${offset - (container.classList.contains('g-tabs') ? 3 : 2)}px)`;\n        };\n\n        if (activeBtn) updateSlider(activeBtn);\n        return updateSlider;\n    };\n\n    const tabsSlider = initSlider(el.querySelector('.g-tabs'));\n    const locSlider  = initSlider(el.querySelector('.g-btn-group'));\n\n    window.addEventListener('resize', () => {\n        const activeTab = el.querySelector('.g-tabs button.active');\n        const activeLoc = el.querySelector('.g-btn-group button.active');\n        if (activeTab) tabsSlider(activeTab);\n        if (activeLoc) locSlider(activeLoc);\n    });\n\n    const hash = s => { let h=0; for(let i=0;i<s.length;i++) h=s.charCodeAt(i)+((h<<5)-h); return h; };\n\n    const fmtDay = iso => {\n        const d     = new Date(iso);\n        const day   = DAYS[d.getDay()];\n        const num   = d.getDate();\n        const month = MONTHS[d.getMonth()];\n        return `${day} ${num}. ${month}`;\n    };\n\n    const venueUrl = venue => {\n        if (!venue || venue === 'TBA') return '';\n        return 'https:\/\/www.google.com\/maps\/search\/' + encodeURIComponent(venue);\n    };\n\n    const calendarData = m => {\n        const d   = new Date(m.dt);\n        const end = new Date(d.getTime() + 2 * 60 * 60 * 1000);\n\n        const fmt = dt => {\n            const y   = dt.getFullYear();\n            const mo  = String(dt.getMonth() + 1).padStart(2, '0');\n            const day = String(dt.getDate()).padStart(2, '0');\n            const h   = String(dt.getHours()).padStart(2, '0');\n            const min = String(dt.getMinutes()).padStart(2, '0');\n            const s   = String(dt.getSeconds()).padStart(2, '0');\n            return `${y}${mo}${day}T${h}${min}${s}`;\n        };\n\n        const title = (m.home ? 'IF Gnistan' : m.home_name) + ' vs ' + (m.home ? m.away_name : 'IF Gnistan');\n        let desc = m.category || '';\n        if (m.venue && m.venue !== 'TBA') desc += ' \u2022 ' + m.venue;\n\n        const ics = [\n            'BEGIN:VCALENDAR',\n            'VERSION:2.0',\n            'PRODID:-\/\/IF Gnistan\/\/Otteluohjelma\/\/FI',\n            'BEGIN:VEVENT',\n            'UID:' + btoa(m.dt + title).replace(\/=\/g, '') + '@gnistan.fi',\n            'DTSTAMP:' + fmt(new Date()),\n            'DTSTART:' + fmt(d),\n            'DTEND:' + fmt(end),\n            'SUMMARY:' + title,\n            'DESCRIPTION:' + desc,\n            m.venue && m.venue !== 'TBA' ? 'LOCATION:' + m.venue : '',\n            'END:VEVENT',\n            'END:VCALENDAR'\n        ].filter(Boolean).join('\\r\\n');\n\n        return 'data:text\/calendar;charset=utf-8,' + encodeURIComponent(ics);\n    };\n\n    const card = (m) => {\n        const d        = new Date(m.dt);\n        const time     = m.no_time ? '--:--' : d.toLocaleTimeString('fi-FI', {hour:'2-digit', minute:'2-digit'});\n        const score    = m.status === 'Played' ? `${m.score_h} - ${m.score_a}` : 'VS.';\n        const hue      = Math.abs(hash(m.category || '')) % 360;\n        const homeLogo = m.home_logo || PLACEHOLDER;\n        const awayLogo = m.away_logo || PLACEHOLDER;\n        const dayKey   = d.toISOString().split('T')[0];\n        const isMajor  = m.is_major || false;\n\n        const ticketBtn = m.show_tickets\n            ? `<a href=\"${TICKETS_URL}\" target=\"_blank\" rel=\"noopener\" class=\"g-ticket-btn\">\n                <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                    <path d=\"M3 7v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2Z\"\/>\n                    <path d=\"M8 2v3M16 2v3\"\/>\n                <\/svg>\n                Osta liput\n            <\/a>`\n            : (m.free_entry ? '<span class=\"g-free-entry\">Ilmainen sis\u00e4\u00e4np\u00e4\u00e4sy!<\/span>' : '');\n\n        const calendarBtn = m.outcome === 'future'\n            ? `<a href=\"${calendarData(m)}\"\n                  download=\"gnistan-ottelu-${dayKey}.ics\"\n                  class=\"g-calendar-btn\"\n                  data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                    <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                    <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                    <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                    <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                <\/svg>\n              <\/a>`\n            : '';\n\n        const venueLink = m.venue && m.venue !== 'TBA'\n            ? `<span class=\"g-venue\"><a href=\"${venueUrl(m.venue)}\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">${m.venue}<\/a><\/span>`\n            : (m.venue ? `<span class=\"g-venue\">${m.venue}<\/span>` : '');\n\n        return `<article class=\"g-card g-animate ${isMajor ? 'g-major' : ''}\" data-loc=\"${m.home ? 'home' : 'away'}\" data-cat=\"${m.cat_slug || ''}\" data-outcome=\"${m.outcome || 'future'}\" data-day=\"${dayKey}\">\n            <div class=\"g-card__inner\">\n                <div class=\"g-time\">\n                    <div class=\"g-time__clock\">klo ${time}<\/div>\n                    <span class=\"g-badge ${isMajor ? 'g-major-badge' : ''}\" style=\"${!isMajor ? `background:hsl(${hue},65%,45%)` : ''}\">${m.category || ''}<\/span>\n                <\/div>\n                <div class=\"g-teams\">\n                    <div class=\"g-team home\">\n                        <img decoding=\"async\" src=\"${homeLogo}\" class=\"g-team__logo\" loading=\"lazy\" alt=\"\">\n                        <span class=\"g-team__name\">${m.home_name || ''}<\/span>\n                    <\/div>\n                    <div class=\"g-score\">${score}<\/div>\n                    <div class=\"g-team away\">\n                        <img decoding=\"async\" src=\"${awayLogo}\" class=\"g-team__logo\" loading=\"lazy\" alt=\"\">\n                        <span class=\"g-team__name\">${m.away_name || ''}<\/span>\n                    <\/div>\n                <\/div>\n                <div class=\"g-card__meta\">\n                    ${ticketBtn}\n                    <div class=\"g-meta-actions\">\n                        ${calendarBtn}\n                        ${venueLink}\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/article>`;\n    };\n\n    const showSkeleton = () => {\n        list.innerHTML = skelTpl.innerHTML;\n        empty.classList.remove('show');\n        loadBtn.classList.remove('show');\n    };\n\n    const renderItems = () => {\n        const grouped = {};\n        items.forEach(m => {\n            const d   = new Date(m.dt);\n            const key = d.toISOString().split('T')[0];\n            if (!grouped[key]) {\n                grouped[key] = { label: fmtDay(m.dt), matches: [] };\n            }\n            grouped[key].matches.push(m);\n        });\n\n        let html = '';\n        Object.keys(grouped).forEach(key => {\n            const group = grouped[key];\n            html += `<h3 class=\"g-day-header\">${group.label}<\/h3>`;\n            group.matches.forEach(m => { html += card(m); });\n        });\n\n        list.innerHTML = html;\n        empty.classList.toggle('show', items.length === 0);\n        loadBtn.classList.toggle('show', items.length < total);\n\n        requestAnimationFrame(() => {\n            list.querySelectorAll('.g-card').forEach((card, i) => {\n                if (i < 10) {\n                    card.style.animationDelay = `${i * 0.03}s`;\n                } else {\n                    card.classList.remove('g-animate');\n                }\n            });\n        });\n    };\n\n    \/\/ Fetch one page from the server. reset=true replaces the list (tab\/filter change),\n    \/\/ reset=false appends the next page (\"n\u00e4yt\u00e4 lis\u00e4\u00e4\").\n    const fetchPage = async (reset) => {\n        const myReq  = ++reqSeq;\n        const offset = reset ? 0 : items.length;\n        loadBtn.disabled = true;\n\n        const params = new URLSearchParams({\n            action: 'gnistan_get_matches',\n            tab,\n            loc:    filters.loc,\n            cat:    filters.cat,\n            offset: String(offset),\n            limit:  String(LIMIT)\n        });\n\n        try {\n            const res  = await fetch(AJAX_URL + '?' + params.toString());\n            const json = await res.json();\n            if (myReq !== reqSeq) return;                 \/\/ a newer view superseded this one\n            if (json.success) {\n                items = reset ? json.data.matches : items.concat(json.data.matches);\n                total = json.data.total;\n                renderItems();\n            }\n        } catch (e) {\n            if (myReq !== reqSeq) return;\n            console.error('Gnistan AJAX error:', e);\n            if (reset) { items = []; total = 0; renderItems(); }\n        } finally {\n            if (myReq === reqSeq) loadBtn.disabled = false;\n        }\n    };\n\n    \/\/ Switch to a fresh view (tab or filter change): skeleton, then fetch page 1.\n    const setView = () => { showSkeleton(); fetchPage(true); };\n\n    tabs.forEach(btn => btn.addEventListener('click', () => {\n        tabs.forEach(b => b.classList.remove('active'));\n        btn.classList.add('active');\n        tabsSlider(btn);\n        tab = btn.dataset.tab;\n        setView();\n    }));\n\n    el.querySelectorAll('[data-loc]').forEach(btn => btn.addEventListener('click', () => {\n        el.querySelectorAll('[data-loc]').forEach(b => b.classList.remove('active'));\n        btn.classList.add('active');\n        locSlider(btn);\n        filters.loc = btn.dataset.loc;\n        setView();\n    }));\n\n    el.querySelector('[data-cat]').addEventListener('change', e => {\n        filters.cat = e.target.value;\n        setView();\n    });\n\n    loadBtn.addEventListener('click', () => fetchPage(false));\n\n    \/\/ First page (upcoming \/ all \/ all) is already inlined \u2014 render with no round-trip.\n    renderItems();\n})();\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Matcher<\/p>","protected":false},"author":1,"featured_media":36703,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-43752","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ottelut - IF Gnistan<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gnistan.fi\/sv\/ottelut\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ottelut - IF Gnistan\" \/>\n<meta property=\"og:description\" content=\"Ottelut\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gnistan.fi\/sv\/ottelut\/\" \/>\n<meta property=\"og:site_name\" content=\"IF Gnistan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/ifgnistan\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-14T18:18:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/gnistan.fi\/wp-content\/uploads\/2024\/11\/gnistan-default-featured-2024-c.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ifgnistan1924\" \/>\n<meta name=\"twitter:label1\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/\",\"url\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/\",\"name\":\"Ottelut - IF Gnistan\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gnistan.fi\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/gnistan.fi\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/gnistan-default-featured-2024-c.webp\",\"datePublished\":\"2026-01-22T02:06:16+00:00\",\"dateModified\":\"2026-05-14T18:18:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/#primaryimage\",\"url\":\"https:\\\/\\\/gnistan.fi\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/gnistan-default-featured-2024-c.webp\",\"contentUrl\":\"https:\\\/\\\/gnistan.fi\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/gnistan-default-featured-2024-c.webp\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Etusivu\",\"item\":\"https:\\\/\\\/gnistan.fi\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ottelut\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gnistan.fi\\\/#website\",\"url\":\"https:\\\/\\\/gnistan.fi\\\/\",\"name\":\"IF Gnistan\",\"description\":\"Viralliset sivut\",\"publisher\":{\"@id\":\"https:\\\/\\\/gnistan.fi\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gnistan.fi\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/gnistan.fi\\\/#organization\",\"name\":\"IF Gnistan\",\"url\":\"https:\\\/\\\/gnistan.fi\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\\\/\\\/gnistan.fi\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/gnistan.fi\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/if-gnistan-vector-logo.svg\",\"contentUrl\":\"https:\\\/\\\/gnistan.fi\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/if-gnistan-vector-logo.svg\",\"width\":269,\"height\":314,\"caption\":\"IF Gnistan\"},\"image\":{\"@id\":\"https:\\\/\\\/gnistan.fi\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/facebook.com\\\/ifgnistan\",\"https:\\\/\\\/x.com\\\/ifgnistan1924\",\"https:\\\/\\\/instagram.com\\\/ifgnistan1924\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/ifgnistan\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ottelut - IF Gnistan","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gnistan.fi\/sv\/ottelut\/","og_locale":"sv_SE","og_type":"article","og_title":"Ottelut - IF Gnistan","og_description":"Ottelut","og_url":"https:\/\/gnistan.fi\/sv\/ottelut\/","og_site_name":"IF Gnistan","article_publisher":"https:\/\/facebook.com\/ifgnistan","article_modified_time":"2026-05-14T18:18:24+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/gnistan.fi\/wp-content\/uploads\/2024\/11\/gnistan-default-featured-2024-c.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_site":"@ifgnistan1924","twitter_misc":{"Ber\u00e4knad l\u00e4stid":"1 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/gnistan.fi\/ottelut\/","url":"https:\/\/gnistan.fi\/ottelut\/","name":"Ottelut - IF Gnistan","isPartOf":{"@id":"https:\/\/gnistan.fi\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gnistan.fi\/ottelut\/#primaryimage"},"image":{"@id":"https:\/\/gnistan.fi\/ottelut\/#primaryimage"},"thumbnailUrl":"https:\/\/gnistan.fi\/wp-content\/uploads\/2024\/11\/gnistan-default-featured-2024-c.webp","datePublished":"2026-01-22T02:06:16+00:00","dateModified":"2026-05-14T18:18:24+00:00","breadcrumb":{"@id":"https:\/\/gnistan.fi\/ottelut\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gnistan.fi\/ottelut\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/gnistan.fi\/ottelut\/#primaryimage","url":"https:\/\/gnistan.fi\/wp-content\/uploads\/2024\/11\/gnistan-default-featured-2024-c.webp","contentUrl":"https:\/\/gnistan.fi\/wp-content\/uploads\/2024\/11\/gnistan-default-featured-2024-c.webp","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/gnistan.fi\/ottelut\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Etusivu","item":"https:\/\/gnistan.fi\/"},{"@type":"ListItem","position":2,"name":"Ottelut"}]},{"@type":"WebSite","@id":"https:\/\/gnistan.fi\/#website","url":"https:\/\/gnistan.fi\/","name":"IF Gnistan","description":"Viralliset sivut","publisher":{"@id":"https:\/\/gnistan.fi\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gnistan.fi\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"},{"@type":"Organization","@id":"https:\/\/gnistan.fi\/#organization","name":"IF Gnistan","url":"https:\/\/gnistan.fi\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/gnistan.fi\/#\/schema\/logo\/image\/","url":"https:\/\/gnistan.fi\/wp-content\/uploads\/2019\/10\/if-gnistan-vector-logo.svg","contentUrl":"https:\/\/gnistan.fi\/wp-content\/uploads\/2019\/10\/if-gnistan-vector-logo.svg","width":269,"height":314,"caption":"IF Gnistan"},"image":{"@id":"https:\/\/gnistan.fi\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/ifgnistan","https:\/\/x.com\/ifgnistan1924","https:\/\/instagram.com\/ifgnistan1924","https:\/\/www.linkedin.com\/company\/ifgnistan\/"]}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/pages\/43752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/comments?post=43752"}],"version-history":[{"count":20,"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/pages\/43752\/revisions"}],"predecessor-version":[{"id":43777,"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/pages\/43752\/revisions\/43777"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/media\/36703"}],"wp:attachment":[{"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/media?parent=43752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}