{"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\/en\/ottelut\/","title":{"rendered":"Matches"},"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-8308\" 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=\"briotech-kansallinen-liiga\">Briotech Kansallinen Liiga<\/option>\n                                    <option value=\"m35-sm\">M35 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-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=\"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=\"p10\">P10<\/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-kilpa-2015-12-9\">P11 Kilpa (2015) 12.9.<\/option>\n                                    <option value=\"p12-huuhkajaliiga\">P12 Huuhkajaliiga<\/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-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-vitonen\">P13 Vitonen<\/option>\n                                    <option value=\"p13-ykkonen\">P13 Ykk\u00f6nen<\/option>\n                                    <option value=\"p14-kakkonen\">P14 Kakkonen<\/option>\n                                    <option value=\"p14-liiga-etela\">P14 Liiga Etel\u00e4<\/option>\n                                    <option value=\"p14-vitonen\">P14 Vitonen<\/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=\"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=\"p21-ykkonen\">P21 Ykk\u00f6nen<\/option>\n                                    <option value=\"p7\">P7<\/option>\n                                    <option value=\"p8\">P8<\/option>\n                                    <option value=\"p9\">P9<\/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-harraste\">T10 Harraste<\/option>\n                                    <option value=\"t12-kakkonen\">T12 Kakkonen<\/option>\n                                    <option value=\"t12-nelonen\">T12 Nelonen<\/option>\n                                    <option value=\"t13-kolmonen\">T13 Kolmonen<\/option>\n                                    <option value=\"t14-nelonen\">T14 Nelonen<\/option>\n                                    <option value=\"t14-ykkonen\">T14 Ykk\u00f6nen<\/option>\n                                    <option value=\"t18-8v8-ykkonen\">T18 8v8 Ykk\u00f6nen<\/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=\"t7\">T7<\/option>\n                                    <option value=\"t9\">T9<\/option>\n                                    <option value=\"u13-pojat\">U13 Pojat<\/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%3A20260829T123942Z%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=\"home\" data-cat=\"p12-kutonen\" 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(304,65%,45%)\">P12 Kutonen<\/span>\n                        <div class=\"g-time__clock\">klo 14: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\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/sininen 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\/7x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">MPS\/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%3A44406bcd95e89a9254354bce97e9f4af%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T142000%0D%0ADTEND%3A20260829T162000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20MPS%2F3%0D%0ADESCRIPTION%3AP12%20Kutonen%20%E2%80%A2%20Tapanila%20TN%20B%2C%20Helsinki%0D%0ALOCATION%3ATapanila%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\/Tapanila+TN+B%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Tapanila TN B, Helsinki                                    <\/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 14: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\/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\/12x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">FC Viikingit<\/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%3A711540622e0cb8642a05b36e7564dfe4%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T142000%0D%0ADTEND%3A20260829T162000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20FC%20Viikingit%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=\"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 14: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<\/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\/65x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">NJS\/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%3Ae42f6ddd67b72549b11451bd769a5926%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T143000%0D%0ADTEND%3A20260829T163000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20NJS%2FMusta%0D%0ADESCRIPTION%3AP8%20%E2%80%A2%20Latokartano%20TN%20B2%2C%20Helsinki%0D%0ALOCATION%3ALatokartano%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\/Latokartano+TN+B2%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Latokartano TN B2, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" 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 14: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<\/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\/3057x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">MuSa Ukkoset<\/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%3A114d72cc7ae9af2ca1426ca3f726833f%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T143000%0D%0ADTEND%3A20260829T163000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20MuSa%20Ukkoset%0D%0ADESCRIPTION%3AM35%20SM%20%E2%80%A2%20Siltam%C3%A4ki%202%20N%2C%20Helsinki%0D%0ALOCATION%3ASiltam%C3%A4ki%202%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+2+N%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Siltam\u00e4ki 2 N, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p18-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(342,65%,45%)\">P18 SM<\/span>\n                        <div class=\"g-time__clock\">klo 14: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\/3120x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">VPS J<\/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%3A88cf6ff29299b86ee4367fa907465c75%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T143000%0D%0ADTEND%3A20260829T163000%0D%0ASUMMARY%3AVPS%20J%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP18%20SM%20%E2%80%A2%20Lemonsoft%20Stadion%2C%20Vaasa%0D%0ALOCATION%3ALemonsoft%20Stadion%2C%20Vaasa%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\/Lemonsoft+Stadion%2C+Vaasa\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Lemonsoft Stadion, Vaasa                                    <\/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 15: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\/Keltainen<\/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\/72x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">J\u00e4PS<\/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%3Adea7160af4d52de18c1d5e75e41026fe%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T150000%0D%0ADTEND%3A20260829T170000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20J%C3%A4PS%0D%0ADESCRIPTION%3AP8%20%E2%80%A2%20Latokartano%20TN%20B1%2C%20Helsinki%0D%0ALOCATION%3ALatokartano%20TN%20B1%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\/Latokartano+TN+B1%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Latokartano TN B1, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p12-kutonen\" 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(304,65%,45%)\">P12 Kutonen<\/span>\n                        <div class=\"g-time__clock\">klo 15:10<\/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\/189x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">PPS\/Punainen 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\/sininen 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%3A15e0c82ceed6cb00fb2b4cb2ff7f6141%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T151000%0D%0ADTEND%3A20260829T171000%0D%0ASUMMARY%3APPS%2FPunainen%202%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP12%20Kutonen%20%E2%80%A2%20Tapanila%20TN%20A%2C%20Helsinki%0D%0ALOCATION%3ATapanila%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\/Tapanila+TN+A%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Tapanila TN A, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p14-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(195,65%,45%)\">P14 Kakkonen<\/span>\n                        <div class=\"g-time__clock\">klo 15: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\/1x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">HJK\/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\/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%3Ac7f3803993a8f8fd75abb7128d2104e8%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T152000%0D%0ADTEND%3A20260829T172000%0D%0ASUMMARY%3AHJK%2FSininen%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP14%20Kakkonen%20%E2%80%A2%20Tali%20TN%2C%20Helsinki%0D%0ALOCATION%3ATali%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\/Tali+TN%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Tali TN, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p12-ykkonen\" 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(256,65%,45%)\">P12 Ykk\u00f6nen<\/span>\n                        <div class=\"g-time__clock\">klo 15: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\/34x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">EBK<\/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%3A8ff346f2b9360e921a80bbedf1df05cb%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T154500%0D%0ADTEND%3A20260829T174500%0D%0ASUMMARY%3AEBK%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP12%20Ykk%C3%B6nen%20%E2%80%A2%20Latokartano%20TN%20B%2C%20Helsinki%0D%0ALOCATION%3ALatokartano%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\/Latokartano+TN+B%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Latokartano TN B, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"miesten-nelonen\" 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(280,65%,45%)\">Miesten Nelonen<\/span>\n                        <div class=\"g-time__clock\">klo 16: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\/79x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">Ponnistus\/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\/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%3Ac89004852d02ac30b4c9cddf68a47cd7%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T160000%0D%0ADTEND%3A20260829T180000%0D%0ASUMMARY%3APonnistus%2F2%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AMiesten%20Nelonen%20%E2%80%A2%20Kallio%20TN%2C%20Helsinki%0D%0ALOCATION%3AKallio%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\/Kallio+TN%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Kallio TN, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"p12-ykkonen\" 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(256,65%,45%)\">P12 Ykk\u00f6nen<\/span>\n                        <div class=\"g-time__clock\">klo 16: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\/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\/13x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">K\u00e4Pa<\/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%3A6f2655c6f64b1db62fbd19a4d0e4af1e%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T162500%0D%0ADTEND%3A20260829T182500%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20K%C3%A4Pa%0D%0ADESCRIPTION%3AP12%20Ykk%C3%B6nen%20%E2%80%A2%20Latokartano%20TN%20A%2C%20Helsinki%0D%0ALOCATION%3ALatokartano%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\/Latokartano+TN+A%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Latokartano TN A, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p12-ykkonen\" 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(256,65%,45%)\">P12 Ykk\u00f6nen<\/span>\n                        <div class=\"g-time__clock\">klo 17:05<\/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\/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<\/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%3A42e45b2620e8eddba9e7e7cdae7c3fa4%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T170500%0D%0ADTEND%3A20260829T190500%0D%0ASUMMARY%3AHJK%2FSininen%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP12%20Ykk%C3%B6nen%20%E2%80%A2%20Latokartano%20TN%20B%2C%20Helsinki%0D%0ALOCATION%3ALatokartano%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\/Latokartano+TN+B%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Latokartano TN B, 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 17:10<\/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\/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%3Aacf3b8d9b4dde57e3c7f03a2ce655c0c%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T171000%0D%0ADTEND%3A20260829T191000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20IF%20Gnistan%20Sininen%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=\"home\" data-cat=\"p16-liiga-etela\" 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(4,65%,45%)\">P16 Liiga Etel\u00e4<\/span>\n                        <div class=\"g-time__clock\">klo 17:15<\/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\/3048x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">FC Jazz<\/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%3Ae483f0a76dccb9616bcece991485a160%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T171500%0D%0ADTEND%3A20260829T191500%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20FC%20Jazz%0D%0ADESCRIPTION%3AP16%20Liiga%20Etel%C3%A4%20%E2%80%A2%20Pirkkola%20TN%2C%20Helsinki%0D%0ALOCATION%3APirkkola%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\/Pirkkola+TN%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Pirkkola TN, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card g-major\" data-loc=\"away\" data-cat=\"briotech-kansallinen-liiga\" data-outcome=\"future\" data-day=\"2026-08-29\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge g-major-badge\" style=\"\">Briotech Kansallinen Liiga<\/span>\n                        <div class=\"g-time__clock\">klo 18: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\/2963x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">KuPS<\/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%3Afdbaeac34558c4ffaec932d016684dc7%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T183000%0D%0ADTEND%3A20260829T203000%0D%0ASUMMARY%3AKuPS%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3ABriotech%20Kansallinen%20Liiga%20%E2%80%A2%20V%C3%A4re%20Areena%20TN%2C%20Kuopio%0D%0ALOCATION%3AV%C3%A4re%20Areena%20TN%2C%20Kuopio%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\/V%C3%A4re+Areena+TN%2C+Kuopio\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        V\u00e4re Areena TN, Kuopio                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"naisten-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(168,65%,45%)\">Naisten Kakkonen<\/span>\n                        <div class=\"g-time__clock\">klo 18: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\/69x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">EPS<\/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%3A64269ac69458a4872b185324a3f6c0cb%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260829T183000%0D%0ADTEND%3A20260829T203000%0D%0ASUMMARY%3AEPS%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3ANaisten%20Kakkonen%20%E2%80%A2%20Espoonlahti%202%20TN%2C%20Espoo%0D%0ALOCATION%3AEspoonlahti%202%20TN%2C%20Espoo%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\/Espoonlahti+2+TN%2C+Espoo\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Espoonlahti 2 TN, Espoo                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                                <h3 class=\"g-day-header\">sunnuntai 30. elokuuta<\/h3>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"p7\" data-outcome=\"future\" data-day=\"2026-08-30\">\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\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/Sininen 1<\/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\/65x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">NJS\/Punainen<\/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%3Ae93c08102ce6e9167cd323858d37921e%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260830T100000%0D%0ADTEND%3A20260830T120000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20NJS%2FPunainen%0D%0ADESCRIPTION%3AP7%20%E2%80%A2%20Puistola%20TN%20B2%2C%20Helsinki%0D%0ALOCATION%3APuistola%20TN%20B2%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-30.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\/Puistola+TN+B2%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Puistola TN B2, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"t10-harraste\" data-outcome=\"future\" data-day=\"2026-08-30\">\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:15<\/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\/7x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">MPS 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%3Af868f182d83d9be440ab3c5cb94aff01%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260830T101500%0D%0ADTEND%3A20260830T121500%0D%0ASUMMARY%3AMPS%20Musta%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AT10%20Harraste%20%E2%80%A2%20Nurmi%202%2C%20Nastola%0D%0ALOCATION%3ANurmi%202%2C%20Nastola%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-30.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+2%2C+Nastola\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Nurmi 2, Nastola                                    <\/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-30\">\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:15<\/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\/74x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">FC Honka 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%3A1427d2e7619aed2a8158525d07214622%40gnistan.fi%0D%0ADTSTAMP%3A20260829T123942Z%0D%0ADTSTART%3A20260830T101500%0D%0ADTEND%3A20260830T121500%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20FC%20Honka%20Vihre%C3%A4%0D%0ADESCRIPTION%3AT10%20Harraste%20%E2%80%A2%20Nurmi%201%2C%20Nastola%0D%0ALOCATION%3ANurmi%201%2C%20Nastola%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-08-30.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+1%2C+Nastola\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Nurmi 1, Nastola                                    <\/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 14:16<\/div>\n    \n    <!-- Hidden skeleton template for JS to clone -->\n    <div id=\"gnistan-8308-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-8308\";\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-29T14:20:00+03:00\",\"status\":\"Live\",\"home\":true,\"home_name\":\"IF Gnistan\\\/sininen 2\",\"away_name\":\"MPS\\\/3\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/7x.png\",\"venue\":\"Tapanila TN B, Helsinki\",\"category\":\"P12 Kutonen\",\"cat_slug\":\"p12-kutonen\",\"score_h\":0,\"score_a\":3,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T14:20:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\",\"away_name\":\"FC Viikingit\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/12x.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-29T14:30:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Keltainen\",\"away_name\":\"NJS\\\/Musta\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/65x.png\",\"venue\":\"Latokartano TN B2, 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-29T14:30:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\",\"away_name\":\"MuSa Ukkoset\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/3057x.png\",\"venue\":\"Siltam\\u00e4ki 2 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-29T14:30:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"VPS J\",\"away_name\":\"IF Gnistan\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/3120x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Lemonsoft Stadion, Vaasa\",\"category\":\"P18 SM\",\"cat_slug\":\"p18-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-29T15:00:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Keltainen\",\"away_name\":\"J\\u00e4PS\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/72x.png\",\"venue\":\"Latokartano TN B1, 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-29T15:10:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"PPS\\\/Punainen 2\",\"away_name\":\"IF Gnistan\\\/sininen 2\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/189x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Tapanila TN A, Helsinki\",\"category\":\"P12 Kutonen\",\"cat_slug\":\"p12-kutonen\",\"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-29T15:20:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"HJK\\\/Sininen\",\"away_name\":\"IF Gnistan\\\/2\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/1x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Tali TN, Helsinki\",\"category\":\"P14 Kakkonen\",\"cat_slug\":\"p14-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-29T15:45:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"EBK\",\"away_name\":\"IF Gnistan\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/34x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Latokartano TN B, Helsinki\",\"category\":\"P12 Ykk\\u00f6nen\",\"cat_slug\":\"p12-ykkonen\",\"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-29T16:00:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"Ponnistus\\\/2\",\"away_name\":\"IF Gnistan\\\/3\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/79x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Kallio TN, Helsinki\",\"category\":\"Miesten Nelonen\",\"cat_slug\":\"miesten-nelonen\",\"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-29T16:25:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\",\"away_name\":\"K\\u00e4Pa\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/13x.png\",\"venue\":\"Latokartano TN A, Helsinki\",\"category\":\"P12 Ykk\\u00f6nen\",\"cat_slug\":\"p12-ykkonen\",\"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-29T17:05:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"HJK\\\/Sininen\",\"away_name\":\"IF Gnistan\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/1x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Latokartano TN B, Helsinki\",\"category\":\"P12 Ykk\\u00f6nen\",\"cat_slug\":\"p12-ykkonen\",\"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-29T17:10:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\",\"away_name\":\"IF Gnistan Sininen\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.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-29T17:15:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\",\"away_name\":\"FC Jazz\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/3048x.png\",\"venue\":\"Pirkkola TN, Helsinki\",\"category\":\"P16 Liiga Etel\\u00e4\",\"cat_slug\":\"p16-liiga-etela\",\"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-29T18:30:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"KuPS\",\"away_name\":\"IF Gnistan\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/2963x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"V\\u00e4re Areena TN, Kuopio\",\"category\":\"Briotech Kansallinen Liiga\",\"cat_slug\":\"briotech-kansallinen-liiga\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":true,\"priority\":1,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-08-29T18:30:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"EPS\",\"away_name\":\"IF Gnistan\\\/2\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/69x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Espoonlahti 2 TN, Espoo\",\"category\":\"Naisten Kakkonen\",\"cat_slug\":\"naisten-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-30T10:00:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Sininen 1\",\"away_name\":\"NJS\\\/Punainen\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/65x.png\",\"venue\":\"Puistola 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-30T10:15:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"MPS Musta\",\"away_name\":\"IF Gnistan\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/7x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Nurmi 2, Nastola\",\"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-30T10:15:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan Sininen\",\"away_name\":\"FC Honka Vihre\\u00e4\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/74x.png\",\"venue\":\"Nurmi 1, Nastola\",\"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}];\n    const INITIAL_TOTAL = 814;\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>Matches<\/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\/en\/ottelut\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\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\/en\/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=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\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\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@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\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/gnistan.fi\\\/#organization\",\"name\":\"IF Gnistan\",\"url\":\"https:\\\/\\\/gnistan.fi\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@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\/en\/ottelut\/","og_locale":"en_US","og_type":"article","og_title":"Ottelut - IF Gnistan","og_description":"Ottelut","og_url":"https:\/\/gnistan.fi\/en\/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":{"Est. reading time":"1 minute"},"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":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gnistan.fi\/ottelut\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@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":"en-US"},{"@type":"Organization","@id":"https:\/\/gnistan.fi\/#organization","name":"IF Gnistan","url":"https:\/\/gnistan.fi\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@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\/en\/wp-json\/wp\/v2\/pages\/43752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gnistan.fi\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gnistan.fi\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gnistan.fi\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gnistan.fi\/en\/wp-json\/wp\/v2\/comments?post=43752"}],"version-history":[{"count":20,"href":"https:\/\/gnistan.fi\/en\/wp-json\/wp\/v2\/pages\/43752\/revisions"}],"predecessor-version":[{"id":43777,"href":"https:\/\/gnistan.fi\/en\/wp-json\/wp\/v2\/pages\/43752\/revisions\/43777"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gnistan.fi\/en\/wp-json\/wp\/v2\/media\/36703"}],"wp:attachment":[{"href":"https:\/\/gnistan.fi\/en\/wp-json\/wp\/v2\/media?parent=43752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}