{"id":43752,"date":"2026-01-22T04:06:16","date_gmt":"2026-01-22T02:06:16","guid":{"rendered":"https:\/\/gnistan.fi\/?page_id=43752"},"modified":"2026-05-14T21:18:24","modified_gmt":"2026-05-14T18:18:24","slug":"ottelut","status":"publish","type":"page","link":"https:\/\/gnistan.fi\/sv\/ottelut\/","title":{"rendered":"Matcher"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"43752\" class=\"elementor elementor-43752\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7c8132f e-flex e-con-boxed e-con e-parent\" data-id=\"7c8132f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3e5f21c first-reveal elementor-widget elementor-widget-heading\" data-id=\"3e5f21c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Ottelut<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9d69692 elementor-widget elementor-widget-shortcode\" data-id=\"9d69692\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><style>\n:root {\n    --g-primary: #0033A0;\n    --g-primary-light: #0047CC;\n    --g-accent: #FCE600;\n    --g-bg: #fff;\n    --g-bg-subtle: #F2F6FF;\n    --g-text: #1a1a1a;\n    --g-text-dim: #4D6392;\n    --g-text-muted: #9ca3af;\n    --g-border: #e5e7eb;\n    --g-win: #22c55e;\n    --g-loss: #ef4444;\n    --g-draw: #f59e0b;\n    --g-radius: 12px;\n    --g-font: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n    --g-font-display: \"Bebas Neue\", Impact, sans-serif;\n}\n\n.gnistan-schedule {\n    font-family: var(--g-font);\n    max-width: 1200px;\n    margin: 0 auto;\n}\n\n.g-filters {\n    background: var(--g-bg);\n    padding: 1rem 0;\n    display: flex;\n    gap: 1rem;\n    align-items: center;\n    flex-wrap: wrap;\n}\n\n.g-tabs {\n    display: inline-flex;\n    background: var(--g-bg-subtle);\n    border-radius: 10px;\n    padding: 3px;\n    position: relative;\n    box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 4px 0px inset;\n    overflow: hidden;\n}\n\n.g-tabs button {\n    font: 600 0.875rem var(--g-font);\n    padding: 0.625rem 1.25rem;\n    border: none;\n    background: transparent !important;\n    box-shadow: none !important;\n    color: var(--g-text-dim);\n    cursor: pointer;\n    border-radius: 8px;\n    transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n    position: relative;\n    z-index: 1;\n    outline: none;\n}\n\n.g-tabs button:hover:not(.active) { color: var(--g-text); }\n\n.g-tabs button:focus-visible {\n    outline: 2px solid var(--g-primary);\n    outline-offset: 2px;\n}\n\n.g-tabs button.active { color: #fff; }\n\n.g-slider {\n    position: absolute;\n    top: 3px;\n    left: 3px;\n    height: calc(100% - 6px);\n    background: linear-gradient(135deg, var(--g-primary) 0%, var(--g-primary-light) 100%);\n    border-radius: 8px;\n    box-shadow:\n        0 2px 8px rgba(0, 51, 160, 0.15),\n        inset 0 1px 0 rgba(255, 255, 255, 0.1);\n    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n    z-index: 0;\n}\n\n.g-secondary {\n    display: flex;\n    gap: 0.75rem;\n    align-items: center;\n    flex: 1;\n}\n\n.g-btn-group {\n    display: inline-flex;\n    background: var(--g-bg-subtle);\n    border-radius: 8px;\n    padding: 2px;\n    position: relative;\n    height: 40px;\n}\n\n.g-btn-group button {\n    font: 500 0.8125rem var(--g-font);\n    background: transparent !important;\n    box-shadow: none !important;\n    color: var(--g-text-dim);\n    border: none;\n    padding: 0 1rem;\n    cursor: pointer;\n    border-radius: 6px;\n    transition: color 0.15s;\n    position: relative;\n    z-index: 1;\n    outline: none;\n    display: flex;\n    align-items: center;\n    white-space: nowrap;\n}\n\n.g-btn-group button:hover:not(.active) { color: var(--g-text); }\n\n.g-btn-group button:focus-visible {\n    outline: 2px solid var(--g-primary);\n    outline-offset: 2px;\n}\n\n.g-btn-group button.active { color: var(--g-text); }\n\n.g-btn-group .g-slider {\n    position: absolute;\n    top: 2px;\n    left: 2px;\n    height: calc(100% - 4px);\n    background: #fff;\n    border-radius: 6px;\n    box-shadow:\n        0 2px 4px rgba(0, 0, 0, 0.06),\n        0 1px 2px rgba(0, 0, 0, 0.04);\n    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n    z-index: 0;\n}\n\n.g-select {\n    font: 500 0.8125rem var(--g-font);\n    background: var(--g-bg-subtle);\n    color: var(--g-text);\n    border: none;\n    padding: 0 2.5rem 0 1rem;\n    height: 40px;\n    outline: 2px solid transparent;\n    outline-offset: 2px;\n    border-radius: 8px;\n    cursor: pointer;\n    appearance: none;\n    background-image: url('data:image\/svg+xml;utf8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"%236c757d\"><path d=\"M7 10l5 5 5-5z\"\/><\/svg>');\n    background-repeat: no-repeat;\n    background-position: right 0.75rem center;\n    background-size: 1rem;\n    transition: all 0.2s;\n    white-space: nowrap;\n    min-width: 140px;\n}\n\n.g-select:hover { background-color: #E8EFFE; }\n\n.g-select:focus-visible {\n    outline: 2px solid var(--g-primary);\n    outline-offset: 2px;\n    background-color: #fff;\n}\n\n.g-list { min-height: 100px; }\n\n.g-day-header {\n    font: 1.25rem var(--g-font-display);\n    color: var(--g-text);\n    text-transform: capitalize;\n    letter-spacing: 0.5px;\n    padding: 1.5rem 0 0.75rem;\n    margin-top: 1.5rem;\n    border-bottom: 2px solid var(--g-border);\n}\n\n.g-day-header:first-child { margin-top: 0; }\n\n.g-card {\n    background: var(--g-bg);\n    border: 1px solid var(--g-border);\n    border-radius: var(--g-radius);\n    margin-bottom: 0.75rem;\n    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.g-card:hover {\n    border-color: rgba(0, 51, 160, 0.2);\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);\n}\n\n.g-card[data-outcome=\"win\"]  { border-left: 3px solid var(--g-win); }\n.g-card[data-outcome=\"loss\"] { border-left: 3px solid var(--g-loss); }\n.g-card[data-outcome=\"draw\"] { border-left: 3px solid var(--g-draw); }\n\n.g-card.g-major[data-outcome=\"future\"] {\n    background: linear-gradient(to right, #fffbeb 0%, #ffffff 100%);\n    border-left: 3px solid var(--g-accent);\n}\n\n.g-card__inner {\n    padding: 1.5rem;\n    display: grid;\n    grid-template-columns: 180px 1fr 180px;\n    gap: 2rem;\n    align-items: center;\n}\n\n.g-time {\n    text-align: left;\n    display: flex;\n    flex-direction: column;\n    gap: 0.5rem;\n}\n\n.g-time__label { display: none; }\n\n.g-time .g-badge { align-self: flex-start; }\n\n.g-time__date {\n    font: 1rem var(--g-font-display);\n    color: var(--g-text-dim);\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    margin-bottom: 0.25rem;\n}\n\n.g-time__clock {\n    font: 1.5rem var(--g-font-display);\n    color: var(--g-text);\n    letter-spacing: -0.5px;\n}\n\n.g-teams {\n    display: grid;\n    grid-template-columns: 1fr auto 1fr;\n    gap: 1.5rem;\n    align-items: center;\n}\n\n.g-team {\n    display: flex;\n    align-items: center;\n    gap: 0.875rem;\n}\n\n.g-team.home {\n    flex-direction: row-reverse;\n    justify-self: end;\n}\n\n.g-team.away { justify-self: start; }\n\n.g-team.home .g-team__name { text-align: right; }\n.g-team.away .g-team__name { text-align: left; }\n\n.g-team__logo {\n    width: 40px;\n    height: 40px;\n    object-fit: contain;\n    transition: transform 0.2s;\n}\n\n.g-card:hover .g-team__logo { transform: scale(1.05); }\n\n.g-team__name {\n    font: 0.9rem var(--g-font);\n    color: var(--g-text);\n    letter-spacing: -0.2px;\n}\n\n.g-score {\n    font: 1.5rem var(--g-font-display);\n    color: var(--g-text);\n    text-align: center;\n    letter-spacing: -1px;\n    margin-bottom: -4px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n}\n\n.g-card__meta {\n    display: flex;\n    flex-direction: column;\n    gap: 0.75rem;\n    align-items: flex-end;\n}\n\n.g-ticket-btn {\n    display: inline-flex;\n    align-items: center;\n    gap: 0.5rem;\n    font: 600 0.8125rem var(--g-font);\n    padding: 0.625rem 1.125rem;\n    background: var(--g-primary);\n    color: #fff !important;\n    border: none;\n    border-radius: 8px;\n    cursor: pointer;\n    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n    text-decoration: none !important;\n    box-shadow: 0 2px 8px rgba(0, 51, 160, 0.15);\n    outline: none;\n}\n\n.g-ticket-btn:hover {\n    color: #fff;\n    background: var(--g-primary-light);\n    box-shadow: 0 4px 12px rgba(0, 51, 160, 0.25);\n    text-decoration: none;\n}\n\n.g-ticket-btn:focus-visible {\n    outline: 2px solid var(--g-primary);\n    outline-offset: 2px;\n}\n\n.g-free-entry {\n    display: inline-flex;\n    align-items: center;\n    font: 600 0.8125rem var(--g-font);\n    padding: 0.1rem 0.5rem;\n    padding-bottom: 0.25rem;\n    background: #19a34c;\n    color: #fff;\n    border-radius: 8px;\n}\n\n.g-venue {\n    font: 500 0.8125rem var(--g-font);\n    color: var(--g-text-dim);\n    display: flex;\n    align-items: center;\n    gap: 0.375rem;\n}\n\n.g-venue-link {\n    color: inherit;\n    text-decoration: none !important;\n    transition: color 0.2s;\n    text-align: right;\n}\n\n.g-venue-link:hover, .g-venue-link:focus {\n    color: var(--g-primary);\n    text-decoration: underline !important;\n}\n\n.g-calendar-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 0.5rem;\n    background: var(--g-bg-subtle);\n    border: 1px solid var(--g-border);\n    border-radius: 6px;\n    cursor: pointer;\n    transition: all 0.2s;\n    position: relative;\n    text-decoration: none !important;\n}\n\n.g-calendar-btn:hover {\n    background: var(--g-primary);\n    border-color: var(--g-primary);\n    transform: translateY(-1px);\n}\n\n.g-calendar-btn:hover svg { color: #fff; }\n\n.g-calendar-btn svg {\n    width: 16px;\n    height: 16px;\n    color: var(--g-text-dim);\n    transition: color 0.2s;\n}\n\n.g-calendar-btn:hover::after {\n    content: attr(data-tooltip);\n    position: absolute;\n    bottom: 100%;\n    right: 0;\n    margin-bottom: 8px;\n    padding: 0.375rem 0.625rem;\n    background: rgba(26, 26, 26, 0.95);\n    color: #fff;\n    font-size: 0.75rem;\n    font-weight: 500;\n    white-space: nowrap;\n    border-radius: 4px;\n    pointer-events: none;\n    z-index: 10;\n}\n\n.g-calendar-btn:hover::before {\n    content: '';\n    position: absolute;\n    bottom: 100%;\n    right: 8px;\n    margin-bottom: 2px;\n    border: 4px solid transparent;\n    border-top-color: rgba(26, 26, 26, 0.95);\n    pointer-events: none;\n    z-index: 10;\n}\n\n.g-meta-actions {\n    display: flex;\n    align-items: center;\n    gap: 0.75rem;\n    justify-content: flex-end;\n    flex-direction: row-reverse;\n}\n\n.g-badge {\n    font: 0.8rem var(--g-font-display);\n    padding: 0.25rem 0.5rem;\n    padding-bottom: 0.15rem;\n    border-radius: 0 12px;\n    text-transform: uppercase;\n    white-space: nowrap;\n    color: #fff;\n    letter-spacing: 0.5px;\n}\n\n.g-badge.g-major-badge {\n    background: linear-gradient(135deg, var(--g-primary) 0%, #0047CC 100%);\n}\n\n.g-status-badge {\n    font: 0.625rem var(--g-font);\n    padding: 0.3125rem 0.625rem;\n    border-radius: 6px;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    margin-bottom: 0.5rem;\n}\n\n.g-status-live {\n    background: #ef4444;\n    color: white;\n    animation: pulse 2s infinite;\n}\n\n@keyframes pulse {\n    0%, 100% { opacity: 1; }\n    50% { opacity: 0.7; }\n}\n\n.g-empty {\n    display: none;\n    background: var(--g-bg-subtle);\n    padding: 3rem 2rem;\n    text-align: center;\n    color: var(--g-text-dim);\n    border-radius: var(--g-radius);\n}\n\n.g-empty.show { display: block; }\n\n\/* Skeleton loader *\/\n@keyframes shimmer {\n    0%   { background-position: -600px 0; }\n    100% { background-position:  600px 0; }\n}\n\n.g-skel {\n    background: var(--g-bg);\n    border: 1px solid var(--g-border);\n    border-radius: var(--g-radius);\n    margin-bottom: 0.75rem;\n    overflow: hidden;\n}\n\n.g-skel__inner {\n    padding: 1.5rem;\n    display: grid;\n    grid-template-columns: 180px 1fr 180px;\n    gap: 2rem;\n    align-items: center;\n}\n\n.g-skel-block {\n    background: linear-gradient(90deg, var(--g-bg-subtle) 25%, #dde8ff 50%, var(--g-bg-subtle) 75%);\n    background-size: 600px 100%;\n    animation: shimmer 1.4s infinite linear;\n    border-radius: 6px;\n}\n\n.g-skel__time {\n    display: flex;\n    flex-direction: column;\n    gap: 0.5rem;\n}\n\n.g-skel__badge { height: 22px; width: 120px; border-radius: 0 12px; }\n.g-skel__clock { height: 28px; width: 80px; }\n\n.g-skel__teams {\n    display: grid;\n    grid-template-columns: 1fr auto 1fr;\n    gap: 1.5rem;\n    align-items: center;\n}\n\n.g-skel__team-home {\n    display: flex;\n    flex-direction: row-reverse;\n    align-items: center;\n    gap: 0.875rem;\n    justify-self: end;\n}\n\n.g-skel__team-away {\n    display: flex;\n    align-items: center;\n    gap: 0.875rem;\n    justify-self: start;\n}\n\n.g-skel__logo  { width: 40px; height: 40px; border-radius: 4px; flex-shrink: 0; }\n.g-skel__name  { height: 16px; width: 90px; }\n.g-skel__score { height: 28px; width: 50px; margin: 0 auto; }\n\n.g-skel__meta {\n    display: flex;\n    flex-direction: column;\n    gap: 0.75rem;\n    align-items: flex-end;\n}\n\n.g-skel__btn   { height: 36px; width: 110px; border-radius: 8px; }\n.g-skel__venue { height: 14px; width: 130px; }\n\n.g-skel__day-header {\n    height: 24px;\n    width: 200px;\n    border-radius: 4px;\n    margin: 1.5rem 0 0.75rem;\n}\n\n.g-skel__day-header:first-child { margin-top: 0; }\n\n.g-updated {\n    text-align: center;\n    font: 500 0.75rem var(--g-font);\n    color: var(--g-text-muted);\n    margin-top: 2rem;\n}\n\n.g-load-more {\n    display: none;\n    width: 100%;\n    padding: 1rem !important;\n    margin-top: 1rem;\n    font: 600 0.875rem var(--g-font) !important;\n    background: var(--g-bg) !important;\n    border: 2px solid var(--g-border) !important;\n    border-radius: var(--g-radius) !important;\n    color: var(--g-text);\n    cursor: pointer;\n    transition: all 0.2s;\n    outline: none;\n    box-shadow: none !important;\n}\n\n.g-load-more:hover {\n    background: var(--g-bg-subtle) !important;\n    border-color: var(--g-primary) !important;\n    color: var(--g-primary) !important;\n}\n\n.g-load-more:focus-visible, .g-load-more:focus {\n    background: var(--g-bg-subtle) !important;\n    border-color: var(--g-primary) !important;\n    outline: 2px solid var(--g-primary) !important;\n    outline-offset: 2px !important;\n}\n\n.g-load-more.show { display: block; }\n\n@keyframes slideIn {\n    from { opacity: 0; transform: translateY(10px); }\n    to   { opacity: 1; transform: translateY(0); }\n}\n\n.g-card.g-animate { animation: slideIn 0.3s ease-out backwards; }\n\n@media (max-width: 1040px) {\n    .g-filters {\n        padding: 1rem 0;\n        gap: 0.75rem;\n    }\n\n    .g-tabs, .g-btn-group { flex: 0 0 auto; }\n\n    .g-tabs {\n        width: 100%;\n    }\n\n    .g-tabs button { flex: 1; }\n\n    .g-secondary {\n        flex-direction: row;\n        gap: 0.75rem;\n        width: 100%;\n    }\n\n    .g-btn-group { flex: 1; min-width: 0; }\n\n    .g-select {\n        flex: 0;\n        min-width: 50%;\n    }\n\n    .g-card__inner {\n        display: flex;\n        flex-direction: column;\n        gap: 0;\n        padding: 0;\n    }\n\n    .g-card__main { display: contents; }\n\n    .g-time {\n        display: flex;\n        flex-direction: row;\n        justify-content: flex-start;\n        align-items: center;\n        gap: 0.5rem;\n        padding: 0.875rem 1rem;\n        border-bottom: none;\n        min-width: auto;\n        width: 100%;\n    }\n\n    .g-time .g-badge {\n        align-self: auto;\n        order: 2;\n        margin-left: auto;\n    }\n\n    .g-time__clock {\n        font-size: 1.1rem;\n        white-space: nowrap;\n        order: 1;\n    }\n\n    .g-teams {\n        display: grid;\n        grid-template-columns: 1fr auto 1fr;\n        gap: 1rem;\n        width: 100%;\n        align-items: center;\n        justify-content: center;\n        padding: 1rem;\n        border-top: 1px solid var(--g-border);\n        border-bottom: 1px solid var(--g-border);\n    }\n\n    .g-team {\n        display: flex;\n        flex-direction: row;\n        align-items: center;\n        gap: 0.5rem;\n        text-align: center;\n    }\n\n    .g-team.home {\n        justify-content: flex-start;\n        grid-column: 1;\n        flex-direction: row-reverse;\n    }\n\n    .g-team.away { grid-column: 3; }\n\n    .g-team.home .g-team__logo { order: 0; }\n    .g-team.home .g-team__name { text-align: center; }\n\n    .g-team__logo { width: 48px; height: 48px; flex-shrink: 0; }\n\n    .g-team__name { font-size: 0.8rem; line-height: 1.2; }\n\n    .g-score {\n        font-size: 1.25rem;\n        min-width: auto;\n        grid-column: 2;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n\n    .g-card__meta {\n        flex-direction: column;\n        align-items: center;\n        width: 100%;\n        padding: 1rem;\n        border-top: none;\n        min-width: auto;\n        gap: 0.5rem;\n    }\n\n    .g-ticket-btn,\n    .g-free-entry {\n        width: 100%;\n        justify-content: center;\n        order: 1;\n    }\n\n    .g-meta-actions {\n        flex-direction: row-reverse;\n        justify-content: space-between;\n        align-items: center;\n        width: 100%;\n        gap: 0.75rem;\n    }\n\n    .g-calendar-btn { order: 0; }\n\n    .g-venue {\n        text-align: right;\n        font-size: 0.75rem;\n        order: 1;\n        flex: 0;\n        min-width: fit-content;\n    }\n\n    .g-venue-link { text-align: right; }\n\n    \/* Skeleton mobile *\/\n    .g-skel__inner {\n        display: flex;\n        flex-direction: column;\n        gap: 0;\n        padding: 0;\n    }\n\n    .g-skel__time {\n        flex-direction: row;\n        align-items: center;\n        padding: 0.875rem 1rem;\n        gap: 0.5rem;\n        width: 100%;\n        box-sizing: border-box;\n    }\n\n    .g-skel__badge { margin-left: auto; }\n\n    .g-skel__teams {\n        width: 100%;\n        padding: 1rem;\n        border-top: 1px solid var(--g-border);\n        border-bottom: 1px solid var(--g-border);\n        box-sizing: border-box;\n        gap: 1rem;\n    }\n\n    .g-skel__logo { width: 48px; height: 48px; }\n\n    .g-skel__meta {\n        flex-direction: row;\n        justify-content: space-between;\n        align-items: center;\n        width: 100%;\n        padding: 1rem;\n        box-sizing: border-box;\n    }\n}\n<\/style>\n<div id=\"gnistan-2448\" 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=\"harraste-1\">Harraste 1<\/option>\n                                    <option value=\"kai-pahlman-sm-lopputurnaus\">Kai Pahlman SM-lopputurnaus<\/option>\n                                    <option value=\"miehet-35-futsal\">Miehet 35 Futsal<\/option>\n                                    <option value=\"miehet-45-7v7\">Miehet 45 7v7<\/option>\n                                    <option value=\"miehet-55\">Miehet 55<\/option>\n                                    <option value=\"miehet-harraste-kutonen\">Miehet Harraste Kutonen<\/option>\n                                    <option value=\"naiset-harraste-kolmonen\">Naiset Harraste Kolmonen<\/option>\n                                    <option value=\"p10\">P10<\/option>\n                                    <option value=\"p10-futsal-2017\">P10 Futsal (2017)<\/option>\n                                    <option value=\"p12-futsal-kakkonen\">P12 Futsal-Kakkonen<\/option>\n                                    <option value=\"p16-futsal-kakkonen\">P16 Futsal-Kakkonen<\/option>\n                                    <option value=\"p18-sm\">P18 SM<\/option>\n                                    <option value=\"p2012-harraste\">P2012 Harraste<\/option>\n                                    <option value=\"p2013-haaste\">P2013 Haaste<\/option>\n                                    <option value=\"p2013-kilpa\">P2013 Kilpa<\/option>\n                                    <option value=\"p2014-harraste\">P2014 Harraste<\/option>\n                                    <option value=\"p2014-kilpa\">P2014 Kilpa<\/option>\n                                    <option value=\"p2015-eliitti\">P2015 Eliitti<\/option>\n                                    <option value=\"p2015-kilpa\">P2015 Kilpa<\/option>\n                                    <option value=\"p2016-eliitti\">P2016 Eliitti<\/option>\n                                    <option value=\"p2016-haaste\">P2016 Haaste<\/option>\n                                    <option value=\"p2016-harraste\">P2016 Harraste<\/option>\n                                    <option value=\"p2016-kilpa\">P2016 Kilpa<\/option>\n                                    <option value=\"p2017-eliitti-5v5\">P2017 Eliitti 5v5<\/option>\n                                    <option value=\"p2017-eliitti7v7\">P2017 Eliitti7v7<\/option>\n                                    <option value=\"p2017-kilpa\">P2017 Kilpa<\/option>\n                                    <option value=\"p2018-eliitti\">P2018 Eliitti<\/option>\n                                    <option value=\"p2018-haaste\">P2018 Haaste<\/option>\n                                    <option value=\"p2018-harraste\">P2018 Harraste<\/option>\n                                    <option value=\"p2018-kilpa\">P2018 Kilpa<\/option>\n                                    <option value=\"p7\">P7<\/option>\n                                    <option value=\"p8\">P8<\/option>\n                                    <option value=\"p9\">P9<\/option>\n                                    <option value=\"pojat-8-taso-1-2019\">Pojat 8 Taso 1 (2019)<\/option>\n                                    <option value=\"pojat-8-taso-2-2019\">Pojat 8 Taso 2 (2019)<\/option>\n                                    <option value=\"pojat-8-taso-3-2019\">Pojat 8 Taso 3 (2019)<\/option>\n                                    <option value=\"pojat-c14-2013-elite\">Pojat C14 (2013) Elite<\/option>\n                                    <option value=\"pojat-c14-2013-harraste\">Pojat C14 (2013) Harraste<\/option>\n                                    <option value=\"pojat-c15-2012-elite\">Pojat C15 (2012) Elite<\/option>\n                                    <option value=\"pojat-c15-2012-kilpa\">Pojat C15 (2012) Kilpa<\/option>\n                                    <option value=\"pojat-d12-2015-haaste\">Pojat D12 (2015) Haaste<\/option>\n                                    <option value=\"pojat-d12-2015-harraste\">Pojat D12 (2015) Harraste<\/option>\n                                    <option value=\"pojat-d12-2015-kilpa\">Pojat D12 (2015) Kilpa<\/option>\n                                    <option value=\"pojat-d13-2014-elite\">Pojat D13 (2014) Elite<\/option>\n                                    <option value=\"pojat-d13-2014-haaste\">Pojat D13 (2014) Haaste<\/option>\n                                    <option value=\"pojat-e10-2017-elite-7v7\">Pojat E10 (2017) Elite 7v7<\/option>\n                                    <option value=\"pojat-e10-2017-haaste-5v5\">Pojat E10 (2017) Haaste 5v5<\/option>\n                                    <option value=\"pojat-e10-2017-harraste-5v5\">Pojat E10 (2017) Harraste 5v5<\/option>\n                                    <option value=\"pojat-e11-2016-elite-7v7\">Pojat E11 (2016) Elite 7v7<\/option>\n                                    <option value=\"pojat-e11-2016-kilpa-7v7\">Pojat E11 (2016) Kilpa 7v7<\/option>\n                                    <option value=\"sekasarja-harraste-7v7\">Sekasarja Harraste 7v7<\/option>\n                                    <option value=\"t10\">T10<\/option>\n                                    <option value=\"t11-futsal-2016\">T11 Futsal (2016)<\/option>\n                                    <option value=\"t13-futsal-kolmonen\">T13 Futsal-Kolmonen<\/option>\n                                    <option value=\"t13-futsal-nelonen\">T13 Futsal-Nelonen<\/option>\n                                    <option value=\"t18-8v8-ykkonen\">T18 8v8 Ykk\u00f6nen<\/option>\n                                    <option value=\"t18-futsal-ykkonen\">T18 Futsal-Ykk\u00f6nen<\/option>\n                                    <option value=\"t2012-13-haaste\">T2012-13 Haaste<\/option>\n                                    <option value=\"t2012-13-harraste\">T2012-13 Harraste<\/option>\n                                    <option value=\"t2012-13-kilpa\">T2012-13 Kilpa<\/option>\n                                    <option value=\"t2014-15-harraste\">T2014-15 Harraste<\/option>\n                                    <option value=\"t2016-haaste\">T2016 Haaste<\/option>\n                                    <option value=\"t2016-harraste\">T2016 Harraste<\/option>\n                                    <option value=\"t7\">T7<\/option>\n                                    <option value=\"t9\">T9<\/option>\n                                    <option value=\"tytot-d13-2014-haaste\">Tyt\u00f6t D13 (2014) Haaste<\/option>\n                                    <option value=\"veikkausliiga\">Veikkausliiga<\/option>\n                            <\/select>\n        <\/div>\n    <\/div>\n\n    <div class=\"g-list\">\n                    <h3 class=\"g-day-header\">keskiviikko 14. lokakuuta<\/h3>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"miehet-45-7v7\" data-outcome=\"future\" data-day=\"2026-10-14\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(220,65%,45%)\">Miehet 45 7v7<\/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\/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\/66x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">TuPS<\/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%3A8ec21f5f0f357fefc84a19f70b05ed0e%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261014T183000%0D%0ADTEND%3A20261014T203000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20TuPS%0D%0ADESCRIPTION%3AMiehet%2045%207v7%20%E2%80%A2%20Pirkkola%20nap%20TN%2C%20Helsinki%0D%0ALOCATION%3APirkkola%20nap%20TN%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-14.ics\"\n                                   class=\"g-calendar-btn\"\n                                   data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                        <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                                        <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                                        <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                                        <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                                    <\/svg>\n                                <\/a>\n                                                                                        <span class=\"g-venue\">\n                                    <a href=\"https:\/\/www.google.com\/maps\/search\/Pirkkola+nap+TN%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Pirkkola nap TN, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"miehet-harraste-kutonen\" data-outcome=\"future\" data-day=\"2026-10-14\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(143,65%,45%)\">Miehet Harraste Kutonen<\/span>\n                        <div class=\"g-time__clock\">klo 21: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\/189x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">PPS\/Ohi ja yli<\/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\/Kipin\u00e4t<\/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%3A670a2992cbb8bdf3c5a4e377d03222fb%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261014T210000%0D%0ADTEND%3A20261014T230000%0D%0ASUMMARY%3APPS%2FOhi%20ja%20yli%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AMiehet%20Harraste%20Kutonen%20%E2%80%A2%20Kartanonkoski%20TN%20A%2C%20Vantaa%0D%0ALOCATION%3AKartanonkoski%20TN%20A%2C%20Vantaa%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-14.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\/Kartanonkoski+TN+A%2C+Vantaa\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Kartanonkoski TN A, Vantaa                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                                <h3 class=\"g-day-header\">torstai 15. lokakuuta<\/h3>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"kai-pahlman-sm-lopputurnaus\" data-outcome=\"future\" data-day=\"2026-10-15\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(49,65%,45%)\">Kai Pahlman SM-lopputurnaus<\/span>\n                        <div class=\"g-time__clock\">klo 15: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\/1x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">HJK<\/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%3A97e0dc0218d3101baec9eb381ca50656%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261015T153000%0D%0ADTEND%3A20261015T173000%0D%0ASUMMARY%3AHJK%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AKai%20Pahlman%20SM-lopputurnaus%20%E2%80%A2%20Tekonurmi%202%2C%20Tammela%0D%0ALOCATION%3ATekonurmi%202%2C%20Tammela%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-15.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\/Tekonurmi+2%2C+Tammela\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Tekonurmi 2, Tammela                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"p9\" data-outcome=\"future\" data-day=\"2026-10-15\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(179,65%,45%)\">P9<\/span>\n                        <div class=\"g-time__clock\">klo 17: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 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\/1x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">HJK\/T\u00f6\u00f6l\u00f6 Keltavalkoinen<\/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%3A0b8539031c59a30784cdad30814a5aba%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261015T170000%0D%0ADTEND%3A20261015T190000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20HJK%2FT%C3%B6%C3%B6l%C3%B6%20Keltavalkoinen%0D%0ADESCRIPTION%3AP9%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-10-15.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=\"p9\" data-outcome=\"future\" data-day=\"2026-10-15\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(179,65%,45%)\">P9<\/span>\n                        <div class=\"g-time__clock\">klo 17:00<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/1x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">HJK\/Malmi Raita<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/Sininen 3<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3Ac3ae1be9340e0cdb5f360f58315e3e82%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261015T170000%0D%0ADTEND%3A20261015T190000%0D%0ASUMMARY%3AHJK%2FMalmi%20Raita%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP9%20%E2%80%A2%20Latokartano%20TN%20A1%2C%20Helsinki%0D%0ALOCATION%3ALatokartano%20TN%20A1%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-15.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+A1%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Latokartano TN A1, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"p9\" data-outcome=\"future\" data-day=\"2026-10-15\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(179,65%,45%)\">P9<\/span>\n                        <div class=\"g-time__clock\">klo 17: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\/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\/79x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">Ponnistus\/Raita<\/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%3A815d9cbe973efde720ee0a9f8acca906%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261015T173000%0D%0ADTEND%3A20261015T193000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20Ponnistus%2FRaita%0D%0ADESCRIPTION%3AP9%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-10-15.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=\"p9\" data-outcome=\"future\" data-day=\"2026-10-15\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(179,65%,45%)\">P9<\/span>\n                        <div class=\"g-time__clock\">klo 17: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\/Sininen 3<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/133x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">PPV\/Valkoinen<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A408495271f32cfc25f38ea8337e8cbf5%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261015T173000%0D%0ADTEND%3A20261015T193000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20PPV%2FValkoinen%0D%0ADESCRIPTION%3AP9%20%E2%80%A2%20Latokartano%20TN%20A2%2C%20Helsinki%0D%0ALOCATION%3ALatokartano%20TN%20A2%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-15.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+A2%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Latokartano TN A2, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"p9\" data-outcome=\"future\" data-day=\"2026-10-15\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(179,65%,45%)\">P9<\/span>\n                        <div class=\"g-time__clock\">klo 18: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\/261x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">LPS\/vihre\u00e4<\/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%3Aa0a469f215a450d17cea702e5b7a95c6%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261015T180000%0D%0ADTEND%3A20261015T200000%0D%0ASUMMARY%3ALPS%2Fvihre%C3%A4%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AP9%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-10-15.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=\"p9\" data-outcome=\"future\" data-day=\"2026-10-15\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(179,65%,45%)\">P9<\/span>\n                        <div class=\"g-time__clock\">klo 18: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 3<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/189x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">PPS\/Valkoinen 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%3A921a58bfe16b89e836dcb55194096458%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261015T180000%0D%0ADTEND%3A20261015T200000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20PPS%2FValkoinen%202%0D%0ADESCRIPTION%3AP9%20%E2%80%A2%20Latokartano%20TN%20A2%2C%20Helsinki%0D%0ALOCATION%3ALatokartano%20TN%20A2%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-15.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+A2%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Latokartano TN A2, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"miehet-55\" data-outcome=\"future\" data-day=\"2026-10-15\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(120,65%,45%)\">Miehet 55<\/span>\n                        <div class=\"g-time__clock\">klo 21: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\/5x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">HPS<\/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%3A8470d714ee6c71cb5a86e4cc70700144%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261015T210500%0D%0ADTEND%3A20261015T230500%0D%0ASUMMARY%3AHPS%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AMiehet%2055%20%E2%80%A2%20Briotech%20Arena%20A%2C%20Helsinki%0D%0ALOCATION%3ABriotech%20Arena%20A%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-15.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\/Briotech+Arena+A%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Briotech Arena A, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                                <h3 class=\"g-day-header\">perjantai 16. lokakuuta<\/h3>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"kai-pahlman-sm-lopputurnaus\" data-outcome=\"future\" data-day=\"2026-10-16\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(49,65%,45%)\">Kai Pahlman SM-lopputurnaus<\/span>\n                        <div class=\"g-time__clock\">klo 11:30<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan<\/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\/21x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">Ilves<\/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%3A2d2b4242fcf203faa03b62cbad6f3ad2%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261016T113000%0D%0ADTEND%3A20261016T133000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20Ilves%0D%0ADESCRIPTION%3AKai%20Pahlman%20SM-lopputurnaus%20%E2%80%A2%20Tekonurmi%201%2C%20Tammela%0D%0ALOCATION%3ATekonurmi%201%2C%20Tammela%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-16.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\/Tekonurmi+1%2C+Tammela\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Tekonurmi 1, Tammela                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"kai-pahlman-sm-lopputurnaus\" data-outcome=\"future\" data-day=\"2026-10-16\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(49,65%,45%)\">Kai Pahlman SM-lopputurnaus<\/span>\n                        <div class=\"g-time__clock\">klo 16: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\/2991x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">FF Jaro<\/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%3A073ac7a99a489001cf1cb881e48d4b9a%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261016T163000%0D%0ADTEND%3A20261016T183000%0D%0ASUMMARY%3AFF%20Jaro%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AKai%20Pahlman%20SM-lopputurnaus%20%E2%80%A2%20Tekonurmi%202%2C%20Tammela%0D%0ALOCATION%3ATekonurmi%202%2C%20Tammela%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-16.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\/Tekonurmi+2%2C+Tammela\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Tekonurmi 2, Tammela                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"t9\" data-outcome=\"future\" data-day=\"2026-10-16\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(327,65%,45%)\">T9<\/span>\n                        <div class=\"g-time__clock\">klo 17: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 2<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/261x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">LPS\/Musta<\/span>\n                        <\/div>\n                    <\/div>\n                    <div class=\"g-card__meta\">\n                                                <div class=\"g-meta-actions\">\n                                                            <a href=\"data:text\/calendar;charset=utf-8,BEGIN%3AVCALENDAR%0D%0AVERSION%3A2.0%0D%0APRODID%3A-%2F%2FIF%20Gnistan%2F%2FOtteluohjelma%2F%2FFI%0D%0ABEGIN%3AVEVENT%0D%0AUID%3A8a298eb01fdc529c52a591d4c493ef27%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261016T170000%0D%0ADTEND%3A20261016T190000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20LPS%2FMusta%0D%0ADESCRIPTION%3AT9%20%E2%80%A2%20Kulosaari%20nap%20TN%20B%2C%20Helsinki%0D%0ALOCATION%3AKulosaari%20nap%20TN%20B%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-16.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\/Kulosaari+nap+TN+B%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Kulosaari nap TN B, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"away\" data-cat=\"t9\" data-outcome=\"future\" data-day=\"2026-10-16\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(327,65%,45%)\">T9<\/span>\n                        <div class=\"g-time__clock\">klo 17: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\/394x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">Kulps\/Minitimantit<\/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%3A401fe5752206636a27df5f5ed620f0cc%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261016T173000%0D%0ADTEND%3A20261016T193000%0D%0ASUMMARY%3AKulps%2FMinitimantit%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AT9%20%E2%80%A2%20Kulosaari%20nap%20TN%20B%2C%20Helsinki%0D%0ALOCATION%3AKulosaari%20nap%20TN%20B%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-16.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\/Kulosaari+nap+TN+B%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Kulosaari nap TN B, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"t9\" data-outcome=\"future\" data-day=\"2026-10-16\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(327,65%,45%)\">T9<\/span>\n                        <div class=\"g-time__clock\">klo 18: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 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\/10x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">Valtti\/Keltainen<\/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%3Af8e1c696b1b4e7b2782d7e3a89a498f5%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261016T180000%0D%0ADTEND%3A20261016T200000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20Valtti%2FKeltainen%0D%0ADESCRIPTION%3AT9%20%E2%80%A2%20Kulosaari%20nap%20TN%20A%2C%20Helsinki%0D%0ALOCATION%3AKulosaari%20nap%20TN%20A%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-16.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\/Kulosaari+nap+TN+A%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Kulosaari nap TN A, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                                <h3 class=\"g-day-header\">lauantai 17. lokakuuta<\/h3>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"p18-sm\" data-outcome=\"future\" data-day=\"2026-10-17\">\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 13:00<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan<\/span>\n                        <\/div>\n                        <div class=\"g-score\">VS.<\/div>\n                        <div class=\"g-team away\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/21x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">Ilves<\/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%3A6ac68645208c11face834bb0f00fd004%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261017T130000%0D%0ADTEND%3A20261017T150000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20Ilves%0D%0ADESCRIPTION%3AP18%20SM%20%E2%80%A2%20Markku.fi%20Areena%2C%20Helsinki%0D%0ALOCATION%3AMarkku.fi%20Areena%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-17.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\/Markku.fi+Areena%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Markku.fi Areena, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card g-major\" data-loc=\"away\" data-cat=\"veikkausliiga\" data-outcome=\"future\" data-day=\"2026-10-17\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge g-major-badge\" style=\"\">Veikkausliiga<\/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\/2611x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">HJK<\/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%3A243e9813144cde9d39afddb79aae6dae%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261017T160000%0D%0ADTEND%3A20261017T180000%0D%0ASUMMARY%3AHJK%20vs%20IF%20Gnistan%0D%0ADESCRIPTION%3AVeikkausliiga%20%E2%80%A2%20Bolt%20Arena%20TN%2C%20Helsinki%0D%0ALOCATION%3ABolt%20Arena%20TN%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-17.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\/Bolt+Arena+TN%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Bolt Arena TN, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                                <h3 class=\"g-day-header\">sunnuntai 18. lokakuuta<\/h3>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"p9\" data-outcome=\"future\" data-day=\"2026-10-18\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(179,65%,45%)\">P9<\/span>\n                        <div class=\"g-time__clock\">klo 12:00<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/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\/52x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">PPJ\/J\u00e4tk\u00e4saari sin<\/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%3A83ac020f22062d58721bcb0559a6723b%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261018T120000%0D%0ADTEND%3A20261018T140000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20PPJ%2FJ%C3%A4tk%C3%A4saari%20sin%0D%0ADESCRIPTION%3AP9%20%E2%80%A2%20Latokartano%20TN%20A1%2C%20Helsinki%0D%0ALOCATION%3ALatokartano%20TN%20A1%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-18.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+A1%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Latokartano TN A1, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"p9\" data-outcome=\"future\" data-day=\"2026-10-18\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(179,65%,45%)\">P9<\/span>\n                        <div class=\"g-time__clock\">klo 12:30<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/Keltainen<\/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\/4x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">PK-35<\/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%3A4a4fd152da851ee69e93e33722267830%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261018T123000%0D%0ADTEND%3A20261018T143000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20PK-35%0D%0ADESCRIPTION%3AP9%20%E2%80%A2%20Latokartano%20TN%20A2%2C%20Helsinki%0D%0ALOCATION%3ALatokartano%20TN%20A2%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-18.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+A2%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Latokartano TN A2, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <article class=\"g-card \" data-loc=\"home\" data-cat=\"p9\" data-outcome=\"future\" data-day=\"2026-10-18\">\n                <div class=\"g-card__inner\">\n                    <div class=\"g-time\">\n                        <span class=\"g-badge \" style=\"background:hsl(179,65%,45%)\">P9<\/span>\n                        <div class=\"g-time__clock\">klo 13:00<\/div>\n                    <\/div>\n                    <div class=\"g-teams\">\n                        <div class=\"g-team home\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.torneopal.net\/logo\/palloliitto\/14x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">IF Gnistan\/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\/95x.png\" alt=\"\" class=\"g-team__logo\" loading=\"lazy\">\n                            <span class=\"g-team__name\">LePa\/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%3A6a1767f42334134a4494aae6cab028c6%40gnistan.fi%0D%0ADTSTAMP%3A20261014T130059Z%0D%0ADTSTART%3A20261018T130000%0D%0ADTEND%3A20261018T150000%0D%0ASUMMARY%3AIF%20Gnistan%20vs%20LePa%2Fmusta%0D%0ADESCRIPTION%3AP9%20%E2%80%A2%20Latokartano%20TN%20A2%2C%20Helsinki%0D%0ALOCATION%3ALatokartano%20TN%20A2%2C%20Helsinki%0D%0AEND%3AVEVENT%0D%0AEND%3AVCALENDAR%0D%0A\"\n                                   download=\"gnistan-ottelu-2026-10-18.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+A2%2C+Helsinki\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">\n                                        Latokartano TN A2, Helsinki                                    <\/a>\n                                <\/span>\n                                                    <\/div>\n                    <\/div>\n                <\/div>\n            <\/article>\n                        <\/div>\n\n    <div class=\"g-empty\">Ei otteluita.<\/div>\n    <button class=\"g-load-more\">N\u00e4yt\u00e4 lis\u00e4\u00e4<\/button>\n\n        <div class=\"g-updated\">P\u00e4ivitetty 14.10.2026 klo 14:34<\/div>\n    \n    <!-- Hidden skeleton template for JS to clone -->\n    <div id=\"gnistan-2448-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-2448\";\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-10-14T18:30:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\",\"away_name\":\"TuPS\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/66x.png\",\"venue\":\"Pirkkola nap TN, Helsinki\",\"category\":\"Miehet 45 7v7\",\"cat_slug\":\"miehet-45-7v7\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-14T21:00:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"PPS\\\/Ohi ja yli\",\"away_name\":\"IF Gnistan\\\/Kipin\\u00e4t\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/189x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Kartanonkoski TN A, Vantaa\",\"category\":\"Miehet Harraste Kutonen\",\"cat_slug\":\"miehet-harraste-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-10-15T15:30:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"HJK\",\"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\":\"Tekonurmi 2, Tammela\",\"category\":\"Kai Pahlman SM-lopputurnaus\",\"cat_slug\":\"kai-pahlman-sm-lopputurnaus\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-15T17:00:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Sininen 2\",\"away_name\":\"HJK\\\/T\\u00f6\\u00f6l\\u00f6 Keltavalkoinen\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/1x.png\",\"venue\":\"Latokartano TN B1, Helsinki\",\"category\":\"P9\",\"cat_slug\":\"p9\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-15T17:00:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"HJK\\\/Malmi Raita\",\"away_name\":\"IF Gnistan\\\/Sininen 3\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/1x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Latokartano TN A1, Helsinki\",\"category\":\"P9\",\"cat_slug\":\"p9\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-15T17:30:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Sininen 2\",\"away_name\":\"Ponnistus\\\/Raita\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/79x.png\",\"venue\":\"Latokartano TN B2, Helsinki\",\"category\":\"P9\",\"cat_slug\":\"p9\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-15T17:30:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Sininen 3\",\"away_name\":\"PPV\\\/Valkoinen\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/133x.png\",\"venue\":\"Latokartano TN A2, Helsinki\",\"category\":\"P9\",\"cat_slug\":\"p9\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-15T18:00:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"LPS\\\/vihre\\u00e4\",\"away_name\":\"IF Gnistan\\\/Sininen 2\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/261x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Latokartano TN B2, Helsinki\",\"category\":\"P9\",\"cat_slug\":\"p9\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-15T18:00:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Sininen 3\",\"away_name\":\"PPS\\\/Valkoinen 2\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/189x.png\",\"venue\":\"Latokartano TN A2, Helsinki\",\"category\":\"P9\",\"cat_slug\":\"p9\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-15T21:05:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"HPS\",\"away_name\":\"IF Gnistan\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/5x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Briotech Arena A, Helsinki\",\"category\":\"Miehet 55\",\"cat_slug\":\"miehet-55\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-16T11:30:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\",\"away_name\":\"Ilves\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/21x.png\",\"venue\":\"Tekonurmi 1, Tammela\",\"category\":\"Kai Pahlman SM-lopputurnaus\",\"cat_slug\":\"kai-pahlman-sm-lopputurnaus\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-16T16:30:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"FF Jaro\",\"away_name\":\"IF Gnistan\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/2991x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Tekonurmi 2, Tammela\",\"category\":\"Kai Pahlman SM-lopputurnaus\",\"cat_slug\":\"kai-pahlman-sm-lopputurnaus\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-16T17:00:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Sininen 2\",\"away_name\":\"LPS\\\/Musta\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/261x.png\",\"venue\":\"Kulosaari nap TN B, Helsinki\",\"category\":\"T9\",\"cat_slug\":\"t9\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-16T17:30:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"Kulps\\\/Minitimantit\",\"away_name\":\"IF Gnistan\\\/Sininen 2\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/394x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Kulosaari nap TN B, Helsinki\",\"category\":\"T9\",\"cat_slug\":\"t9\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-16T18:00:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Sininen 2\",\"away_name\":\"Valtti\\\/Keltainen\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/10x.png\",\"venue\":\"Kulosaari nap TN A, Helsinki\",\"category\":\"T9\",\"cat_slug\":\"t9\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-17T13:00:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\",\"away_name\":\"Ilves\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/21x.png\",\"venue\":\"Markku.fi Areena, Helsinki\",\"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-10-17T16:00:00+03:00\",\"status\":\"Fixture\",\"home\":false,\"home_name\":\"HJK\",\"away_name\":\"IF Gnistan\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/2611x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"venue\":\"Bolt Arena TN, Helsinki\",\"category\":\"Veikkausliiga\",\"cat_slug\":\"veikkausliiga\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":true,\"priority\":0,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-18T12:00:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Keltainen\",\"away_name\":\"PPJ\\\/J\\u00e4tk\\u00e4saari sin\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/52x.png\",\"venue\":\"Latokartano TN A1, Helsinki\",\"category\":\"P9\",\"cat_slug\":\"p9\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-18T12:30:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Keltainen\",\"away_name\":\"PK-35\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/4x.png\",\"venue\":\"Latokartano TN A2, Helsinki\",\"category\":\"P9\",\"cat_slug\":\"p9\",\"score_h\":0,\"score_a\":0,\"no_time\":false,\"outcome\":\"future\",\"is_major\":false,\"priority\":999,\"show_tickets\":false,\"free_entry\":false},{\"dt\":\"2026-10-18T13:00:00+03:00\",\"status\":\"Fixture\",\"home\":true,\"home_name\":\"IF Gnistan\\\/Keltainen\",\"away_name\":\"LePa\\\/musta\",\"home_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/14x.png\",\"away_logo\":\"https:\\\/\\\/cdn.torneopal.net\\\/logo\\\/palloliitto\\\/95x.png\",\"venue\":\"Latokartano TN A2, Helsinki\",\"category\":\"P9\",\"cat_slug\":\"p9\",\"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 = 655;\n\n    let tab     = 'upcoming';\n    let filters = { loc: 'all', cat: 'all' };\n    let items   = INITIAL.slice();   \/\/ matches currently held for the active view\n    let total   = INITIAL_TOTAL;     \/\/ total matching the active view (from the server)\n    let reqSeq  = 0;                 \/\/ guards against out-of-order responses\n\n    const el      = document.getElementById(ID);\n    const list    = el.querySelector('.g-list');\n    const empty   = el.querySelector('.g-empty');\n    const loadBtn = el.querySelector('.g-load-more');\n    const tabs    = el.querySelectorAll('[data-tab]');\n    const skelTpl = document.getElementById(ID + '-skeleton');\n\n    const initSlider = (container) => {\n        const slider    = container.querySelector('.g-slider');\n        const activeBtn = container.querySelector('button.active');\n\n        const updateSlider = (target) => {\n            const containerRect = container.getBoundingClientRect();\n            const targetRect    = target.getBoundingClientRect();\n            const offset        = targetRect.left - containerRect.left;\n            slider.style.width     = targetRect.width + 'px';\n            slider.style.transform = `translateX(${offset - (container.classList.contains('g-tabs') ? 3 : 2)}px)`;\n        };\n\n        if (activeBtn) updateSlider(activeBtn);\n        return updateSlider;\n    };\n\n    const tabsSlider = initSlider(el.querySelector('.g-tabs'));\n    const locSlider  = initSlider(el.querySelector('.g-btn-group'));\n\n    window.addEventListener('resize', () => {\n        const activeTab = el.querySelector('.g-tabs button.active');\n        const activeLoc = el.querySelector('.g-btn-group button.active');\n        if (activeTab) tabsSlider(activeTab);\n        if (activeLoc) locSlider(activeLoc);\n    });\n\n    const hash = s => { let h=0; for(let i=0;i<s.length;i++) h=s.charCodeAt(i)+((h<<5)-h); return h; };\n\n    const fmtDay = iso => {\n        const d     = new Date(iso);\n        const day   = DAYS[d.getDay()];\n        const num   = d.getDate();\n        const month = MONTHS[d.getMonth()];\n        return `${day} ${num}. ${month}`;\n    };\n\n    const venueUrl = venue => {\n        if (!venue || venue === 'TBA') return '';\n        return 'https:\/\/www.google.com\/maps\/search\/' + encodeURIComponent(venue);\n    };\n\n    const calendarData = m => {\n        const d   = new Date(m.dt);\n        const end = new Date(d.getTime() + 2 * 60 * 60 * 1000);\n\n        const fmt = dt => {\n            const y   = dt.getFullYear();\n            const mo  = String(dt.getMonth() + 1).padStart(2, '0');\n            const day = String(dt.getDate()).padStart(2, '0');\n            const h   = String(dt.getHours()).padStart(2, '0');\n            const min = String(dt.getMinutes()).padStart(2, '0');\n            const s   = String(dt.getSeconds()).padStart(2, '0');\n            return `${y}${mo}${day}T${h}${min}${s}`;\n        };\n\n        const title = (m.home ? 'IF Gnistan' : m.home_name) + ' vs ' + (m.home ? m.away_name : 'IF Gnistan');\n        let desc = m.category || '';\n        if (m.venue && m.venue !== 'TBA') desc += ' \u2022 ' + m.venue;\n\n        const ics = [\n            'BEGIN:VCALENDAR',\n            'VERSION:2.0',\n            'PRODID:-\/\/IF Gnistan\/\/Otteluohjelma\/\/FI',\n            'BEGIN:VEVENT',\n            'UID:' + btoa(m.dt + title).replace(\/=\/g, '') + '@gnistan.fi',\n            'DTSTAMP:' + fmt(new Date()),\n            'DTSTART:' + fmt(d),\n            'DTEND:' + fmt(end),\n            'SUMMARY:' + title,\n            'DESCRIPTION:' + desc,\n            m.venue && m.venue !== 'TBA' ? 'LOCATION:' + m.venue : '',\n            'END:VEVENT',\n            'END:VCALENDAR'\n        ].filter(Boolean).join('\\r\\n');\n\n        return 'data:text\/calendar;charset=utf-8,' + encodeURIComponent(ics);\n    };\n\n    const card = (m) => {\n        const d        = new Date(m.dt);\n        const time     = m.no_time ? '--:--' : d.toLocaleTimeString('fi-FI', {hour:'2-digit', minute:'2-digit'});\n        const score    = m.status === 'Played' ? `${m.score_h} - ${m.score_a}` : 'VS.';\n        const hue      = Math.abs(hash(m.category || '')) % 360;\n        const homeLogo = m.home_logo || PLACEHOLDER;\n        const awayLogo = m.away_logo || PLACEHOLDER;\n        const dayKey   = d.toISOString().split('T')[0];\n        const isMajor  = m.is_major || false;\n\n        const ticketBtn = m.show_tickets\n            ? `<a href=\"${TICKETS_URL}\" target=\"_blank\" rel=\"noopener\" class=\"g-ticket-btn\">\n                <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                    <path d=\"M3 7v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2Z\"\/>\n                    <path d=\"M8 2v3M16 2v3\"\/>\n                <\/svg>\n                Osta liput\n            <\/a>`\n            : (m.free_entry ? '<span class=\"g-free-entry\">Ilmainen sis\u00e4\u00e4np\u00e4\u00e4sy!<\/span>' : '');\n\n        const calendarBtn = m.outcome === 'future'\n            ? `<a href=\"${calendarData(m)}\"\n                  download=\"gnistan-ottelu-${dayKey}.ics\"\n                  class=\"g-calendar-btn\"\n                  data-tooltip=\"Lis\u00e4\u00e4 kalenteriin\">\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                    <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\n                    <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line>\n                    <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line>\n                    <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line>\n                <\/svg>\n              <\/a>`\n            : '';\n\n        const venueLink = m.venue && m.venue !== 'TBA'\n            ? `<span class=\"g-venue\"><a href=\"${venueUrl(m.venue)}\" target=\"_blank\" rel=\"noopener\" class=\"g-venue-link\">${m.venue}<\/a><\/span>`\n            : (m.venue ? `<span class=\"g-venue\">${m.venue}<\/span>` : '');\n\n        return `<article class=\"g-card g-animate ${isMajor ? 'g-major' : ''}\" data-loc=\"${m.home ? 'home' : 'away'}\" data-cat=\"${m.cat_slug || ''}\" data-outcome=\"${m.outcome || 'future'}\" data-day=\"${dayKey}\">\n            <div class=\"g-card__inner\">\n                <div class=\"g-time\">\n                    <div class=\"g-time__clock\">klo ${time}<\/div>\n                    <span class=\"g-badge ${isMajor ? 'g-major-badge' : ''}\" style=\"${!isMajor ? `background:hsl(${hue},65%,45%)` : ''}\">${m.category || ''}<\/span>\n                <\/div>\n                <div class=\"g-teams\">\n                    <div class=\"g-team home\">\n                        <img decoding=\"async\" src=\"${homeLogo}\" class=\"g-team__logo\" loading=\"lazy\" alt=\"\">\n                        <span class=\"g-team__name\">${m.home_name || ''}<\/span>\n                    <\/div>\n                    <div class=\"g-score\">${score}<\/div>\n                    <div class=\"g-team away\">\n                        <img decoding=\"async\" src=\"${awayLogo}\" class=\"g-team__logo\" loading=\"lazy\" alt=\"\">\n                        <span class=\"g-team__name\">${m.away_name || ''}<\/span>\n                    <\/div>\n                <\/div>\n                <div class=\"g-card__meta\">\n                    ${ticketBtn}\n                    <div class=\"g-meta-actions\">\n                        ${calendarBtn}\n                        ${venueLink}\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/article>`;\n    };\n\n    const showSkeleton = () => {\n        list.innerHTML = skelTpl.innerHTML;\n        empty.classList.remove('show');\n        loadBtn.classList.remove('show');\n    };\n\n    const renderItems = () => {\n        const grouped = {};\n        items.forEach(m => {\n            const d   = new Date(m.dt);\n            const key = d.toISOString().split('T')[0];\n            if (!grouped[key]) {\n                grouped[key] = { label: fmtDay(m.dt), matches: [] };\n            }\n            grouped[key].matches.push(m);\n        });\n\n        let html = '';\n        Object.keys(grouped).forEach(key => {\n            const group = grouped[key];\n            html += `<h3 class=\"g-day-header\">${group.label}<\/h3>`;\n            group.matches.forEach(m => { html += card(m); });\n        });\n\n        list.innerHTML = html;\n        empty.classList.toggle('show', items.length === 0);\n        loadBtn.classList.toggle('show', items.length < total);\n\n        requestAnimationFrame(() => {\n            list.querySelectorAll('.g-card').forEach((card, i) => {\n                if (i < 10) {\n                    card.style.animationDelay = `${i * 0.03}s`;\n                } else {\n                    card.classList.remove('g-animate');\n                }\n            });\n        });\n    };\n\n    \/\/ Fetch one page from the server. reset=true replaces the list (tab\/filter change),\n    \/\/ reset=false appends the next page (\"n\u00e4yt\u00e4 lis\u00e4\u00e4\").\n    const fetchPage = async (reset) => {\n        const myReq  = ++reqSeq;\n        const offset = reset ? 0 : items.length;\n        loadBtn.disabled = true;\n\n        const params = new URLSearchParams({\n            action: 'gnistan_get_matches',\n            tab,\n            loc:    filters.loc,\n            cat:    filters.cat,\n            offset: String(offset),\n            limit:  String(LIMIT)\n        });\n\n        try {\n            const res  = await fetch(AJAX_URL + '?' + params.toString());\n            const json = await res.json();\n            if (myReq !== reqSeq) return;                 \/\/ a newer view superseded this one\n            if (json.success) {\n                items = reset ? json.data.matches : items.concat(json.data.matches);\n                total = json.data.total;\n                renderItems();\n            }\n        } catch (e) {\n            if (myReq !== reqSeq) return;\n            console.error('Gnistan AJAX error:', e);\n            if (reset) { items = []; total = 0; renderItems(); }\n        } finally {\n            if (myReq === reqSeq) loadBtn.disabled = false;\n        }\n    };\n\n    \/\/ Switch to a fresh view (tab or filter change): skeleton, then fetch page 1.\n    const setView = () => { showSkeleton(); fetchPage(true); };\n\n    tabs.forEach(btn => btn.addEventListener('click', () => {\n        tabs.forEach(b => b.classList.remove('active'));\n        btn.classList.add('active');\n        tabsSlider(btn);\n        tab = btn.dataset.tab;\n        setView();\n    }));\n\n    el.querySelectorAll('[data-loc]').forEach(btn => btn.addEventListener('click', () => {\n        el.querySelectorAll('[data-loc]').forEach(b => b.classList.remove('active'));\n        btn.classList.add('active');\n        locSlider(btn);\n        filters.loc = btn.dataset.loc;\n        setView();\n    }));\n\n    el.querySelector('[data-cat]').addEventListener('change', e => {\n        filters.cat = e.target.value;\n        setView();\n    });\n\n    loadBtn.addEventListener('click', () => fetchPage(false));\n\n    \/\/ First page (upcoming \/ all \/ all) is already inlined \u2014 render with no round-trip.\n    renderItems();\n})();\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Matcher<\/p>","protected":false},"author":1,"featured_media":36703,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-43752","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ottelut - IF Gnistan<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gnistan.fi\/sv\/ottelut\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ottelut - IF Gnistan\" \/>\n<meta property=\"og:description\" content=\"Ottelut\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gnistan.fi\/sv\/ottelut\/\" \/>\n<meta property=\"og:site_name\" content=\"IF Gnistan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/facebook.com\/ifgnistan\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-14T18:18:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/gnistan.fi\/wp-content\/uploads\/2024\/11\/gnistan-default-featured-2024-c.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ifgnistan1924\" \/>\n<meta name=\"twitter:label1\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/\",\"url\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/\",\"name\":\"Ottelut - IF Gnistan\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gnistan.fi\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/gnistan.fi\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/gnistan-default-featured-2024-c.webp\",\"datePublished\":\"2026-01-22T02:06:16+00:00\",\"dateModified\":\"2026-05-14T18:18:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/#primaryimage\",\"url\":\"https:\\\/\\\/gnistan.fi\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/gnistan-default-featured-2024-c.webp\",\"contentUrl\":\"https:\\\/\\\/gnistan.fi\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/gnistan-default-featured-2024-c.webp\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gnistan.fi\\\/ottelut\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Etusivu\",\"item\":\"https:\\\/\\\/gnistan.fi\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ottelut\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gnistan.fi\\\/#website\",\"url\":\"https:\\\/\\\/gnistan.fi\\\/\",\"name\":\"IF Gnistan\",\"description\":\"Viralliset sivut\",\"publisher\":{\"@id\":\"https:\\\/\\\/gnistan.fi\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gnistan.fi\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/gnistan.fi\\\/#organization\",\"name\":\"IF Gnistan\",\"url\":\"https:\\\/\\\/gnistan.fi\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\\\/\\\/gnistan.fi\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/gnistan.fi\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/if-gnistan-vector-logo.svg\",\"contentUrl\":\"https:\\\/\\\/gnistan.fi\\\/wp-content\\\/uploads\\\/2019\\\/10\\\/if-gnistan-vector-logo.svg\",\"width\":269,\"height\":314,\"caption\":\"IF Gnistan\"},\"image\":{\"@id\":\"https:\\\/\\\/gnistan.fi\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/facebook.com\\\/ifgnistan\",\"https:\\\/\\\/x.com\\\/ifgnistan1924\",\"https:\\\/\\\/instagram.com\\\/ifgnistan1924\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/ifgnistan\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ottelut - IF Gnistan","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gnistan.fi\/sv\/ottelut\/","og_locale":"sv_SE","og_type":"article","og_title":"Ottelut - IF Gnistan","og_description":"Ottelut","og_url":"https:\/\/gnistan.fi\/sv\/ottelut\/","og_site_name":"IF Gnistan","article_publisher":"https:\/\/facebook.com\/ifgnistan","article_modified_time":"2026-05-14T18:18:24+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/gnistan.fi\/wp-content\/uploads\/2024\/11\/gnistan-default-featured-2024-c.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_site":"@ifgnistan1924","twitter_misc":{"Ber\u00e4knad l\u00e4stid":"1 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/gnistan.fi\/ottelut\/","url":"https:\/\/gnistan.fi\/ottelut\/","name":"Ottelut - IF Gnistan","isPartOf":{"@id":"https:\/\/gnistan.fi\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gnistan.fi\/ottelut\/#primaryimage"},"image":{"@id":"https:\/\/gnistan.fi\/ottelut\/#primaryimage"},"thumbnailUrl":"https:\/\/gnistan.fi\/wp-content\/uploads\/2024\/11\/gnistan-default-featured-2024-c.webp","datePublished":"2026-01-22T02:06:16+00:00","dateModified":"2026-05-14T18:18:24+00:00","breadcrumb":{"@id":"https:\/\/gnistan.fi\/ottelut\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gnistan.fi\/ottelut\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/gnistan.fi\/ottelut\/#primaryimage","url":"https:\/\/gnistan.fi\/wp-content\/uploads\/2024\/11\/gnistan-default-featured-2024-c.webp","contentUrl":"https:\/\/gnistan.fi\/wp-content\/uploads\/2024\/11\/gnistan-default-featured-2024-c.webp","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/gnistan.fi\/ottelut\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Etusivu","item":"https:\/\/gnistan.fi\/"},{"@type":"ListItem","position":2,"name":"Ottelut"}]},{"@type":"WebSite","@id":"https:\/\/gnistan.fi\/#website","url":"https:\/\/gnistan.fi\/","name":"IF Gnistan","description":"Viralliset sivut","publisher":{"@id":"https:\/\/gnistan.fi\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gnistan.fi\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"},{"@type":"Organization","@id":"https:\/\/gnistan.fi\/#organization","name":"IF Gnistan","url":"https:\/\/gnistan.fi\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/gnistan.fi\/#\/schema\/logo\/image\/","url":"https:\/\/gnistan.fi\/wp-content\/uploads\/2019\/10\/if-gnistan-vector-logo.svg","contentUrl":"https:\/\/gnistan.fi\/wp-content\/uploads\/2019\/10\/if-gnistan-vector-logo.svg","width":269,"height":314,"caption":"IF Gnistan"},"image":{"@id":"https:\/\/gnistan.fi\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/facebook.com\/ifgnistan","https:\/\/x.com\/ifgnistan1924","https:\/\/instagram.com\/ifgnistan1924","https:\/\/www.linkedin.com\/company\/ifgnistan\/"]}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/pages\/43752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/comments?post=43752"}],"version-history":[{"count":20,"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/pages\/43752\/revisions"}],"predecessor-version":[{"id":43777,"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/pages\/43752\/revisions\/43777"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/media\/36703"}],"wp:attachment":[{"href":"https:\/\/gnistan.fi\/sv\/wp-json\/wp\/v2\/media?parent=43752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}