/* --- KARTTA & LISTAUS --- */
.pride-map-link-wrapper { text-decoration: none !important; color: inherit !important; display: block; transition: opacity 0.2s; }
.pride-map-link-wrapper:hover { opacity: 0.8; }
.pride-map-popup { text-align: left; min-width: 200px; font-family: inherit; }
.pride-map-popup img { width: 100%; height: 80px; object-fit: cover; border-radius: 4px; margin-bottom: 8px; display: block; }
.pride-map-title { font-weight: bold; font-size: 14px; line-height: 1.2; display: block; margin-bottom: 4px; color: #222; }
.popup-meta { font-size: 12px; color: #666; display: flex; flex-direction: column; gap: 2px; }
.pride-map-popup-multi .pride-map-multi-list { list-style: none; margin: 8px 0 0; padding: 0; }
.pride-map-popup-multi .pride-map-multi-list li { margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid #eee; }
.pride-map-popup-multi .pride-map-multi-list li:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; }
.pride-map-popup-multi .pride-map-multi-list a { font-weight: 600; color: var(--pride-map-accent, #ff0090); }
.pride-map-popup-multi .pride-map-multi-list .popup-meta { display: inline; margin-left: 6px; }
.pride-map-marker {
    background: transparent;
    border: 0;
}
.pride-map-marker-dot {
    display: inline-block;
    background: var(--pride-map-accent, #ff0090);
    border: 2px solid #fff;
    border-radius: 999px;
    box-shadow: 0 0 0 2px rgba(0,0,0,0.2);
}

/* --- SUODATTIMET: täysi leveys kuten tapahtumalistaus, teeman fontti --- */
/* Wrapper pakottaa koko kalenterialueen (otsikko + suodatin + lista) samalle leveydelle;
   teema ei rajoita vain suodatinpalkkia. */
.pride-calendar-layout {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    /* Korttinäkymän hover-tooltip voi mennä kortin reunojen yli.
       Jos overflow-x on hidden, tooltip leikkaantuu esimerkiksi vasemmasta laidasta. */
    overflow-x: visible;
}
.pride-calendar-layout .pride-archive-wrapper,
.pride-calendar-layout .pride-filters,
.pride-calendar-layout #pride-map-container,
.pride-calendar-layout #pride-events-container {
    max-width: none !important;
    width: 100% !important;
    box-sizing: border-box;
    min-width: 0;
}
.pride-filters {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    margin-bottom: 28px;
    padding: 20px 24px;
    background: rgba(0, 0, 0, 0.03);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 10px;
    font-family: inherit;
    box-sizing: border-box;
    overflow-x: hidden;
}
.pride-filters select,
.pride-search-box input {
    height: 44px;
    padding: 0 14px;
    border: 1px solid #ddd;
    border-radius: 6px;
    background: #fff;
    font-size: 1rem;
    font-family: inherit;
    box-sizing: border-box;
}
.pride-search-box {
    position: relative;
    flex: 1 1 260px;
    min-width: 200px;
}
.pride-search-box input { width: 100%; padding-left: 42px; }
.pride-search-box input:focus { border-color: var(--pride-accent); outline: none; }
.pride-filters select:focus { border-color: var(--pride-accent); outline: none; }
.pride-search-box .dashicons {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #999;
    font-size: 1.25rem;
    width: 1.25rem;
    height: 1.25rem;
    z-index: 2;
}
/* Varmista että kaikki filtteritekstit mahtuvat – min-leveydet pitkille otsikoille */
.pride-filters select {
    flex: 1 1 180px;
    min-width: 200px;
    cursor: pointer;
    max-width: 280px;
}
#filter-group { min-width: 220px; }

@media (max-width: 768px) {
    .pride-filters {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
        padding: 16px 28px;
    }
    .pride-search-box { flex: 1 1 auto; min-width: 0; max-width: 100%; }
    .pride-filters select,
    .pride-search-box input {
        padding-left: 16px;
        padding-right: 22px;
        max-width: 100%;
        box-sizing: border-box;
    }
    .pride-search-box input { padding-left: 42px; }
    .pride-filters select {
        flex: 1 1 auto;
        min-width: 0;
        max-width: 100%;
        width: 100%;
    }
    #filter-group { min-width: 0; }
    .pride-btn-icon, #pride-reset-btn {
        flex: 1 1 auto;
        min-width: 0;
        max-width: 100%;
        justify-content: center;
        white-space: normal;
        text-align: center;
        min-height: 44px;
        height: auto;
        padding-top: 10px;
        padding-bottom: 10px;
    }
}

/* PAINIKE – teeman fonttikoko (1rem), selkeä korkeus */
.pride-btn-icon, #pride-reset-btn { 
    height: 44px; 
    background: #fff; 
    border: 2px solid var(--pride-primary); 
    color: var(--pride-primary); 
    padding: 0 20px; 
    border-radius: 6px; 
    cursor: pointer; 
    font-weight: 700; 
    font-size: 1rem; 
    white-space: nowrap; 
    flex: 0 0 auto; 
    font-family: inherit; 
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}
.pride-btn-icon:hover, #pride-reset-btn:hover { background:var(--pride-primary); color:#fff; }
.pride-btn-icon:focus-visible, #pride-reset-btn:focus-visible { outline: 2px solid var(--pride-accent); outline-offset: 2px; }
.pride-btn-icon.map-active { background:var(--pride-accent); border-color:var(--pride-accent); color:#fff; }

.pride-event-list { display: grid !important; grid-template-columns: repeat(var(--pride-cols, 3), 1fr) !important; gap: 20px !important; width: 100% !important; box-sizing: border-box; }
.pride-event-card { border: 1px solid #eee; border-radius: 8px; overflow: visible; background: #fff; transition: transform 0.2s; display: flex; flex-direction: column; height: 100%; position: relative; }
.pride-archive-wrapper { width: 100%; box-sizing: border-box; text-align: center; margin-bottom: 40px; font-family: inherit; }
.pride-archive-title {
    font-size: clamp(1.75rem, 4vw, 3rem);
    font-weight: 800;
    /* Teeman layout voi saada otsikon ja filtterit näyttämään liian lähekkäin,
       joten kasvatetaan väliä. */
    margin-bottom: 44px !important;
    color: var(--pride-primary);
    letter-spacing: -0.02em;
    /* Teeman layout voi sijoittaa filtterit otsikon laatikon pohjaan.
       Kasvata line-height, jotta otsikon ja filtteripalkin väli on riittävä. */
    line-height: 2.15 !important;
}
body.post-type-archive-pride_event .wp-block-post-title, body.post-type-archive-pride_event .entry-title { display: none !important; }
@media(max-width: 900px) { .pride-event-list { grid-template-columns: 1fr 1fr !important; } }
@media(max-width: 600px) { .pride-event-list { grid-template-columns: 1fr !important; } }
@media(max-width: 480px) {
    .pride-archive-title { font-size: 2em; margin-bottom: 28px !important; line-height: 2.15 !important; }
    .pride-event-card .pride-card-content { padding: 16px; }
}
.pride-event-card:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0,0,0,0.1); }

/* --- LINKKIKORJAUS & KUVAN KORKEUS --- */
/* Skaalaus: center-center rajaa kuvan keskiosasta; cover täyttää kortin */
.pride-card-image { 
    display: block; 
    text-decoration: none; 
    height: 240px; /* MUUTETTU 180px -> 240px */
    background-size: cover; 
    background-position: center center; 
    background-color: var(--pride-primary); 
    position: relative;
    border-radius: 8px 8px 0 0;
    overflow: hidden;
}

/* --- KORTIN TEKSTIT: hierarkia, välistys, luettavuus --- */
.pride-card-content {
    padding: 22px 20px;
    font-size: var(--pride-body-size);
    font-family: inherit;
    line-height: 1.5;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    border-radius: 0 0 8px 8px;
}
.pride-card-date {
    color: var(--pride-accent);
    font-weight: 700;
    font-size: var(--pride-meta-size);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 8px;
    line-height: 1.3;
}
.pride-card-title {
    margin: 0 0 10px 0;
    font-size: var(--pride-title-size);
    font-weight: 700;
    line-height: 1.25;
}
.pride-card-title a { text-decoration: none; color: var(--pride-primary); }
.pride-card-title a:hover { text-decoration: underline; }
.pride-card-title a:focus-visible { outline: 2px solid var(--pride-accent); outline-offset: 2px; }
.pride-card-meta {
    margin-bottom: 14px;
    font-size: 0.95em;
    color: #555;
    line-height: 1.4;
}
.pride-card-basics {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
    align-items: center;
}
.pride-basic-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.06);
    color: var(--pride-icon-color);
    position: relative;
}
.pride-basic-badge .dashicons {
    font-size: 16px;
    width: 16px;
    height: 16px;
}
.pride-basic-badge-tooltip {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-bottom: 8px;
    padding: 6px 10px;
    background: #1a1a1a;
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    border-radius: 6px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    z-index: 20;
}
.pride-basic-badge-tooltip::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -6px;
    border: 6px solid transparent;
    border-top-color: #1a1a1a;
}
.pride-basic-badge:hover .pride-basic-badge-tooltip {
    opacity: 1;
}
.pride-card-actions {
    margin-top: auto;
    padding-top: 6px;
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}
.pride-btn-more { text-decoration: none; color: var(--pride-primary); font-weight: 600; font-size: 0.9em; }
.pride-btn-more:focus-visible { outline: 2px solid var(--pride-accent); outline-offset: 2px; }
.pride-btn-link-disabled { opacity: 0.65; cursor: not-allowed; }
.pride-btn-more-as-button { color: #fff; }
.pride-btn-more-as-button:hover { color: #fff; }
.pride-event-updates-link { margin: 10px 0 28px; }

/* --- NAPPI (Sateenkaari ja Animaatio) --- */
.pride-btn-buy { 
    background: var(--pride-btn-bg); 
    background-size: var(--pride-btn-size); 
    color: #fff; 
    padding: 8px 12px; 
    border-radius: 4px; 
    text-decoration: none; 
    font-weight: 800; 
    font-size: 0.9em; 
    transition: all 0.3s ease; 
    font-family: inherit; 
    display: inline-block; 
    text-shadow: 0 1px 3px rgba(0,0,0,0.4); 
}
.pride-btn-buy:hover { 
    opacity: 0.9; 
    color: #fff; 
    background-position: right center; 
}

.pride-partner-highlight { background: #e6f7ff; padding: 15px; border-left: 4px solid #1890ff; margin-bottom: 20px; }

/* --- STATUS BADGES & STYLES --- */
.pride-status-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    padding: 5px 10px;
    color: #fff;
    font-weight: 800;
    text-transform: uppercase;
    font-size: 11px;
    border-radius: 4px;
    z-index: 2;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}
.status-sold { background: #d32f2f; }
.status-cancelled { background: #000; }

.pride-status-badge.large {
    font-size: 14px;
    padding: 8px 15px;
    top: 20px;
    right: 20px;
}

.pride-event-card.status-dimmed .pride-card-image::after {
    content: ''; position: absolute; inset: 0; background: rgba(255,255,255,0.3);
}

.pride-btn-buy.disabled, .pride-pro-cta-btn.disabled {
    background: #ccc !important;
    color: #666 !important;
    cursor: not-allowed;
    box-shadow: none !important;
    transform: none !important;
}

/* --- YKSITTÄINEN SIVU --- */
.pride-app { margin: 20px 0; font-family: inherit; }

body.single-pride_event .wp-site-blocks, body.single-pride_event header.wp-block-template-part, body.single-pride_event main.wp-block-group, body.single-pride_event main.wp-block-group > div.wp-block-group { margin-top: 0 !important; padding-top: 0 !important; margin-bottom: 0 !important; }
body.single-pride_event .entry-content, body.single-pride_event main { padding-top: 0 !important; margin-top: 0 !important; }
body.single-pride_event img.wp-post-image:not(.pride-featured-image), body.single-pride_event .entry-header, body.single-pride_event .wp-block-post-title, body.single-pride_event .wp-block-post-featured-image, body.single-pride_event .wp-block-group.has-small-font-size { display: none !important; }

/* Estä teeman marginaalit otsikon ja kuvan väliltä (poistaa "outo tyhjä väli") */
body.single-pride_event .pride-hero.pride-hero-title-only,
body.single-pride_event .pride-hero.pride-hero-title-only .pride-custom-title { margin: 0 !important; padding: 0 !important; }
body.single-pride_event .pride-hero.pride-hero-title-only { min-height: 0 !important; height: auto !important; }
body.single-pride_event .pride-custom-title { margin-bottom: 8px !important; }
body.single-pride_event .pride-featured-image-wrapper { margin-top: 0 !important; }
body.single-pride_event .pride-pro-grid { margin-top: 0 !important; }

.pride-single-event { width: 100%; max-width: var(--pride-width); margin: 0 auto 80px auto; padding: 0 20px; box-sizing: border-box; font-family: inherit; color: inherit; }

/* inherit voi tehdä otsikon näkymättömäksi (esim. vaalea teksti teeman kontissa); eksplisiittinen väri + fallback fonttikoolle */
.pride-custom-title {
    font-size: var(--pride-title-size, clamp(1.5rem, 4vw, 2.75rem));
    margin: 0 0 8px 0;
    line-height: 1.1;
    font-weight: 800;
    color: #1a1a1a;
    letter-spacing: -0.5px;
}
body.single-pride_event .pride-single-event .pride-custom-title {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    /* Ei positionoinnin tarvitse tehdä päällekkäisyyksien/stacking contextien takia. */
}
.pride-featured-image-wrapper { margin-bottom: 24px; margin-top: 0; position: relative; border-radius: 12px; overflow: hidden; height: 420px; background: #eee; }
/* Täyttää alueen (ei harmaita), top-center säilyttää kasvot – leikkaus alhaalta/sivuista */
.pride-featured-image { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center center; border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.05); }
.pride-tags { display: none !important; }
.pride-pro-grid { display: grid; grid-template-columns: 1fr 360px; grid-template-rows: minmax(0, max-content) minmax(0, auto) minmax(0, auto); gap: 12px 80px; align-items: start; }
/* Ilman bannerikuvaa: otsikko riville 1 (ei tyhjää riviä 1), sisältö riville 2 */
.pride-pro-grid.pride-pro-grid--no-hero-img { grid-template-rows: minmax(0, auto) minmax(0, auto); }
.pride-pro-grid.pride-pro-grid--no-hero-img .pride-hero.pride-hero-title-only { grid-row: 1; }
.pride-pro-grid.pride-pro-grid--no-hero-img .pride-pro-content { grid-row: 2; }
/* No-hero-tilassa sidebarin ei pidä kattaa otsikon aluetta. */
.pride-pro-grid.pride-pro-grid--no-hero-img .pride-pro-sidebar { grid-row: 2 / -1; }
/* Rivi 1 pakotettu max-content (ei venymistä), hero tiukka marginaali. */
.pride-hero.pride-hero-title-only { grid-column: 1 / -1; grid-row: 2; margin: 0 0 4px 0; padding: 0; min-height: 0; align-self: start; }
.pride-featured-image-wrapper { grid-column: 1; grid-row: 1; align-self: start; }
.pride-pro-content { grid-column: 1; grid-row: 3; }
.pride-pro-sidebar { grid-column: 2; grid-row: 1 / -1; position: -webkit-sticky; position: sticky; top: 40px; align-self: start; }
.meta-date { font-size: 0.98rem; font-weight: 700; color: #444; margin-bottom: 4px; }
/* WP admin bar voi peittää sticky-elementin, joten siirretään sitä ylöspäin hieman. */
body.admin-bar .pride-pro-sidebar { top: 72px; }
@media (max-width: 782px) {
    body.admin-bar .pride-pro-sidebar { top: 86px; }
}
.pride-info-card-pro { background: #fff; padding: 30px; border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.08); border: 1px solid #eaeaea; color: #222; }
.pride-event-header-row { display: flex; align-items: center; gap: 20px; margin-bottom: 25px; }
.pride-calendar-leaf { width: 74px; height: 74px; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1); border: 1px solid #ddd; display: flex; flex-direction: column; font-family: inherit; flex-shrink: 0; }
.leaf-month {
    background: var(--pride-accent);
    color: #fff;
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
    padding: 4px 2px;
    letter-spacing: 0.02em;
    line-height: 1.1;
    white-space: nowrap;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
}
.leaf-day { background: #fff; color: #222; font-size: 1.9em; font-weight: 700; flex-grow: 1; display: flex; align-items: center; justify-content: center; padding-bottom: 5px; line-height: 1; }
.meta-weekday { font-size: 1.3em; font-weight: 700; color: #222; text-transform: capitalize; }
.meta-time { font-size: 1.05rem; color: #555; margin-top: 4px; }
.pride-sidebar-divider { height: 1px; background: #eee; margin: 25px 0; }
.info-item { display: flex; gap: 15px; margin-bottom: 18px; font-size: 1.05rem; line-height: 1.45; color: #444; }
.info-item .dashicons {
    color: var(--pride-icon-color);
    font-size: 22px;
    width: 22px;
    height: 22px;
    margin-top: 3px;
}
.pride-socials { margin-top: 8px; }
.pride-social-icon { text-decoration: none; margin-right: 8px; color: #555; transition: color 0.2s; }
.pride-social-icon:hover { color: var(--pride-accent); }
.sub-text, .price-note, .registration-note, .stream-note { font-size: 0.95em; color: #666; margin-top: 4px; line-height: 1.4; word-break: break-word; }
.registration-link { display: inline-block; margin-top: 6px; }

/* --- ISO CTA-NAPPI --- */
.pride-pro-cta-btn { 
    display: block; 
    width: 100%; 
    box-sizing: border-box; 
    text-align: center; 
    background: var(--pride-btn-bg); 
    background-size: var(--pride-btn-size);
    color: #fff; 
    padding: 16px 20px; 
    border-radius: 50px; 
    font-weight: 800; 
    font-size: 1.1rem; 
    text-decoration: none; 
    margin-top: 30px; 
    transition: all 0.3s ease; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.1); 
    font-family: inherit; 
    text-shadow: 0 1px 3px rgba(0,0,0,0.4);
}
.pride-pro-cta-btn:hover { 
    transform: translateY(-2px); 
    box-shadow: 0 6px 20px rgba(0,0,0,0.2); 
    color: #fff; 
    background-position: right center;
}
.pride-pro-cta-btn:focus-visible { outline: 2px solid var(--pride-primary); outline-offset: 3px; }
.pride-fav-btn:focus-visible { outline: 2px solid var(--pride-accent); outline-offset: 2px; }

/* --- TAPAHTUMASIVUN VASEN SARAKE: kuvauksen tekstit ja hierarkia --- */
.pride-description-text {
    font-size: var(--pride-body-size);
    font-family: inherit;
    line-height: 1.65;
    color: inherit;
    margin-bottom: 56px;
}
.pride-description-text p {
    margin: 0 0 1em 0;
}
.pride-description-text p:last-child {
    margin-bottom: 0;
}
.pride-description-text h2,
.pride-description-text h3 {
    font-family: inherit;
    font-weight: 700;
    color: var(--pride-primary);
    margin-top: 1.75em;
    margin-bottom: 0.5em;
    line-height: 1.25;
    letter-spacing: -0.01em;
}
.pride-description-text h2 { font-size: 1.25em; }
.pride-description-text h3 { font-size: 1.1em; }
.pride-description-text h2:first-child,
.pride-description-text h3:first-child {
    margin-top: 0;
}
.pride-description-text ul,
.pride-description-text ol {
    margin: 0.5em 0 1em 1.25em;
    padding: 0;
}
.pride-description-text li {
    margin-bottom: 0.35em;
    line-height: 1.5;
}
.pride-description-text strong {
    font-weight: 700;
}

.pride-back-link { margin-top: 40px; }
.pride-back-link-a { color: var(--pride-primary); font-weight: 600; text-decoration: none; font-size: 0.95em; }
.pride-back-link-a:hover { text-decoration: underline; }
.pride-back-link-a:focus-visible { outline: 2px solid var(--pride-accent); outline-offset: 2px; }
.pride-back-link img { display: none !important; }

/* --- Osio-otsikot (Tietoa esteettömyydestä, jne.) --- */
.pride-section-title {
    font-size: var(--pride-h3-size);
    font-family: inherit;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #666;
    margin-top: 0;
    margin-bottom: 22px;
    line-height: 1.3;
}
.pride-access-section-pro .pride-section-title {
    margin-top: 8px;
}
.pride-subsection-title {
    font-size: calc(var(--pride-h3-size) * 0.85);
    font-weight: 600;
    color: #555;
    margin: 0 0 14px 0;
    line-height: 1.3;
}

/* --- Esteettömyyskortit --- */
.pride-specs-cards {
    display: grid;
    /* Pienennetään korttien määrää samalle riville, jotta pitkät otsikot mahtuvat paremmin */
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
    gap: 18px;
    margin-bottom: 32px;
}
.pride-spec-card {
    background: #fff;
    border: 1px solid #eee;
    padding: 22px 20px;
    border-radius: 10px;
    display: flex;
    gap: 16px;
    align-items: flex-start;
    color: #222;
    font-family: inherit;
    line-height: 1.5;
    min-width: 0;
}
.pride-spec-card .dashicons { 
    font-size: 24px; 
    color: var(--pride-icon-color); 
    width: 24px; 
    height: 24px; 
    margin-top: 2px; 
    flex-shrink: 0; 
}
.spec-content { display: flex; flex-direction: column; min-width: 0; overflow: visible; }
.spec-content strong {
    font-size: 0.86rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
    color: #222;
    margin-bottom: 6px;
    line-height: 1.25;
    word-break: break-word;
    overflow-wrap: break-word;
}
.spec-content span {
    font-size: 0.95rem;
    color: #555;
    line-height: 1.45;
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-word;
}
.spec-content a { color: var(--pride-accent); text-decoration: underline; }
.spec-content a:hover { color: var(--pride-primary); }
.spec-content a:focus-visible { outline: 2px solid var(--pride-accent); outline-offset: 2px; }

/* --- Esteettömyyden peruskriteerit (ikonit + teksti ennen haitareja) --- */
.pride-access-basics {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 28px;
}
.pride-access-basic-block {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    font-size: 0.9rem;
    color: #333;
    max-width: 100%;
    min-width: 0;
}
.pride-access-basic-block .dashicons {
    font-size: 22px;
    width: 22px;
    height: 22px;
    color: var(--pride-icon-color);
    flex-shrink: 0;
}
.pride-access-basic-label {
    line-height: 1.3;
    overflow-wrap: break-word;
    word-break: break-word;
}
@media (min-width: 480px) {
    .pride-access-basic-block { max-width: 320px; }
}

/* --- Esteettömyysryhmät (vain kyllä -listat) --- */
.pride-accessibility-groups {
    margin-bottom: 28px;
}
.pride-access-group {
    border: 1px solid #eee;
    border-radius: 8px;
    margin-bottom: 10px;
    overflow: hidden;
    background: #fff;
}
.pride-access-group-title {
    padding: 14px 18px;
    font-weight: 700;
    font-size: 0.95rem;
    cursor: pointer;
    list-style: none;
    display: block;
    color: var(--pride-primary);
}
.pride-access-group-title::-webkit-details-marker { display: none; }
.pride-access-group-title::before {
    content: '\25b8';
    display: inline-block;
    margin-right: 8px;
    transition: transform 0.2s;
}
.pride-access-group[open] .pride-access-group-title::before { transform: rotate(90deg); }
.pride-access-group-list {
    margin: 0;
    padding: 12px 18px 16px 34px;
    list-style: disc;
    color: #555;
    font-size: 0.95rem;
    line-height: 1.6;
    overflow-wrap: break-word;
    word-break: break-word;
}
.pride-access-group-list li { margin-bottom: 4px; }

.pride-sensory-notes {
    /* Aistiesteettömyysteksti on usein ennen seuraavaa h4-otsikkoa.
       Ilman margin-bottom otsikko voi "törmätä" tekstiin. */
    margin: 0 0 22px 0;
    font-size: 0.95rem;
    color: #555;
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-word;
}

.pride-access-group .pride-sensory-notes {
    /* Pienempi väli haitarin sisällä, ettei otsikoiden välistys kasva liikaa. */
    margin: 12px 0 0 0;
}

.pride-access-media-clean { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 32px; }
.pride-access-media-clean + h4.pride-subsection-title { margin-top: 26px; }
.access-gallery-item { margin: 0; flex: 1 1 200px; max-width: 300px; }
.access-gallery-item img { width: 100%; height: 200px; object-fit: cover; border-radius: 8px; border: 1px solid #eee; transition: transform 0.2s; }
.access-gallery-item img:hover { transform: scale(1.02); }
.access-gallery-item figcaption { font-size: 0.85em; color: #888; margin-top: 5px; text-align: center; }
.access-gallery-item a { cursor: zoom-in; display: block; transition: transform 0.2s; } .access-gallery-item a:hover { transform: scale(1.03); }
.full-width-fallback { max-width: 100% !important; flex: 1 1 100%; }
.full-width-fallback img { height: auto; max-height: 400px; }
@media (max-width: 900px) {
    /* Mobiili: flex-sarake, order määrää järjestyksen – kuva ensin, sitten palkki, sitten otsikko ja sisältö */
    .pride-pro-grid { display: flex; flex-direction: column; gap: 24px; }
    /* Mobiili: otsikko ensin, sitten bannerikuva, sitten sivupalkki, lopuksi sisältö */
    .pride-hero.pride-hero-title-only { order: 1; }
    .pride-featured-image-wrapper { order: 2; }
    .pride-pro-sidebar { order: 3; position: static; margin-bottom: 0; width: 100%; min-width: 0; }
    .pride-pro-content { order: 4; }
    .pride-custom-title { font-size: 2.2em; }
}
@media (max-width: 600px) {
    .pride-single-event { padding: 0 16px; margin-top: -20px; }
    .pride-custom-title { font-size: 1.75em; margin-bottom: 20px; }
    .pride-featured-image-wrapper { margin-bottom: 40px; height: 280px; }
    .pride-featured-image { max-height: none; }
    .pride-info-card-pro { padding: 20px; }
    .pride-calendar-leaf { width: 64px; height: 64px; }
    .leaf-month { font-size: 11px; min-height: 24px; padding: 3px 2px; }
    .leaf-day { font-size: 1.5em; }
    .pride-pro-cta-btn { padding: 14px 16px; font-size: 1rem; }
}

/* --- LIGHTBOX --- */
#pride-lightbox { display: none; position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; z-index: 9999999 !important; background: rgba(0,0,0,0.85); backdrop-filter: blur(3px); justify-content: center; align-items: center; cursor: zoom-out; }
.pride-lightbox-content { max-width: 90%; max-height: 90%; object-fit: contain; cursor: default; border-radius: 4px; box-shadow: 0 0 30px rgba(0,0,0,0.8); }
.pride-close { position: absolute; top: 30px; right: 40px; color: #fff; font-size: 50px; font-weight: 300; line-height: 1; cursor: pointer; transition: transform .2s; z-index: 10000000; }
.pride-close:hover { transform: scale(1.1); color: var(--pride-accent); }

/* --- PIILOTETUT KENTÄT (Lomakkeelta) --- */
.hidden-acf-field { display: none !important; }

/* --- UUDET: TOIMINTONAPIT (Sidebar) --- */
.pride-action-buttons {
    margin-top: 30px;
    padding-top: 25px;
    border-top: 1px solid #eee;
    text-align: center;
}

.pride-action-buttons .share-label {
    display: block;
    margin-bottom: 8px;
    text-align: center;
}

.pride-add-to-calendar {
    position: relative;
    margin-bottom: 20px;
}

.pride-calendar-toggle {
    width: 100%;
    cursor: pointer;
    border: 1px solid #ddd;
    font-family: inherit;
    border-radius: 4px;
}

.pride-add-to-calendar:has(.pride-calendar-dropdown.is-open) .pride-calendar-toggle {
    border-radius: 4px 4px 0 0;
}

.pride-calendar-dropdown {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.25s ease-out;
    display: flex;
    flex-direction: column;
}

.pride-calendar-dropdown.is-open {
    max-height: 260px;
}

.pride-calendar-dropdown .pride-action-link {
    border-radius: 0;
    border-left: 1px solid #ddd;
    border-right: 1px solid #ddd;
    border-top: none;
}

.pride-calendar-dropdown .pride-action-link:last-child {
    border-bottom: 1px solid #ddd;
    border-radius: 0 0 4px 4px;
}

.pride-calendar-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 20px;
}

.pride-calendar-dropdown .pride-action-link {
    padding: 8px 10px;
    font-size: 0.95rem;
}

.pride-action-link {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid #ddd;
    color: #444;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 600;
    padding: 10px;
    border-radius: 4px;
    transition: all 0.2s;
}
.pride-action-link:hover { background: #f9f9f9; border-color: #bbb; color: #222; }
.pride-action-link .dashicons { margin-right: 8px; color: var(--pride-icon-color); }

.pride-share-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
}

.share-label {
    font-size: 0.95em;
    color: #666;
    text-transform: uppercase;
    font-weight: 700;
}

.pride-share-icon {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #f0f0f0;
    color: #555;
    text-decoration: none;
    transition: all 0.2s;
}
.pride-share-icon:hover {
    background: var(--pride-accent);
    color: #fff;
    transform: translateY(-2px);
}

/* --- RELATED EVENTS --- */
.pride-related-section {
    margin-top: 80px;
    padding-top: 40px;
    border-top: 1px solid #eee;
}
.pride-related-section .pride-section-title {
    margin-bottom: 30px;
}

/* --- HINTATIEDOT & ESTEETTÖMYYS WYSIWYG --- */
.price-note ul, .price-note ol, .registration-note ul, .registration-note ol, .stream-note ul, .stream-note ol,
.spec-content ul, .spec-content ol {
    margin: 5px 0 10px 20px; /* Sisennys listoille */
    padding: 0;
}
.price-note li, .registration-note li, .stream-note li, .spec-content li {
    margin-bottom: 4px;
}
.price-note p, .registration-note p, .stream-note p, .spec-content p {
    margin: 0 0 8px 0;
}
.spec-content p:last-child {
    margin-bottom: 0;
}

/* --- KIITOS-VIESTIN NAPIT (Korjaus) --- */
.pride-success-actions {
    display: flex;
    gap: 20px; 
    flex-wrap: wrap;
    margin-top: 20px;
}

.pride-success-actions .button {
    margin-right: 0 !important; 
}

/* --- OMA PRIDE / SUOSIKIT (KORJATTU NÄKYVYYS) --- */
.pride-fav-btn {
    position: absolute;
    top: 10px;
    left: 10px;
    background: #fff; /* TÄYSIN VALKOINEN */
    border: none;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    z-index: 5;
    box-shadow: 0 3px 8px rgba(0,0,0,0.3); /* VAHVEMPI VARJO */
    transition: transform 0.2s;
}

.pride-fav-btn:hover {
    transform: scale(1.1);
}

.pride-fav-btn .dashicons {
    font-size: 24px;
    width: 24px;
    height: 24px;
    color: #ccc; 
    transition: all 0.3s;
}

/* AKTIVINEN TILA: SATEENKAARI */
.pride-fav-btn.active .dashicons {
    background: var(--pride-btn-bg);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    transform: scale(1.1);
}

.pride-fav-btn.large {
    top: 20px;
    left: 20px;
    width: 48px;
    height: 48px;
}
.pride-fav-btn.large .dashicons {
    font-size: 32px;
    width: 32px;
    height: 32px;
}

/* Oma Pride -suodatusnappi aktiivisena */
#pride-toggle-favs.active-filter {
    background: var(--pride-btn-bg);
    color: #fff;
    border-color: transparent;
    text-shadow: 0 1px 2px rgba(0,0,0,0.3);
}

/* Oma Pride -suodatusnappi: Sateenkaarisydän */
.pride-filter-heart {
    background: var(--pride-btn-bg);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* Kun nappi on aktiivinen, sydän muuttuu valkoiseksi */
#pride-toggle-favs.active-filter .pride-filter-heart {
    background: none;
    -webkit-background-clip: border-box;
    background-clip: border-box;
    color: #fff;
}