/* Theme additions for behaviour that plugins used to handle with JavaScript. */

/* Header stays at the top on desktop and laptop (former sticky header). */
@media (min-width: 1025px) {
	.ti-location-header { position: sticky; top: 0; z-index: 99; }
	.admin-bar .ti-location-header { top: 32px; }
}

/* Entrance animations start hidden until scrolled into view. */
.ti-invisible { visibility: hidden; }

/* Menu dialog. */
.ti-popup-modal { position: fixed; inset: 0; z-index: 9999; display: none; justify-content: center; align-items: center; background-color: rgba(0, 0, 0, .8); }
.ti-popup-modal[hidden] { display: none !important; }
.ti-popup-modal .dialog-widget-content { position: absolute; animation-duration: .5s; }
.ti-popup-modal .dialog-close-button { position: absolute; cursor: pointer; line-height: 1; }
.ti-popup-modal .dialog-close-button svg { width: 1em; height: 1em; fill: currentColor; }
html.ti-dialog-open { overflow: hidden; }

/* Mobile menu: submenus open with the arrow buttons. */
.ti-popup-modal .eael-simple-menu-vertical .sub-menu a { padding-left: 40px; }
.ti-popup-modal .eael-simple-menu-indicator { cursor: pointer; }
.ti-popup-modal .eael-simple-menu-indicator-open svg { transform: rotate(180deg); }

/* Desktop submenus: also open with the keyboard. */
.hfe-nav-menu li.ti-focus > .sub-menu { visibility: visible; opacity: 1; }

/* Visually hidden text inside icon links. */
.ti-screen-only, .pencil-button__text.ti-screen-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }

/* Video iframe fills its frame. */
.ti-widget-video .ti-wrapper iframe { width: 100%; height: 100%; border: 0; display: flex; }

/* Event tables: hidden sort key. */
.eael-event-calendar-table .hide { display: none; }

/* Pagination. */


/* Contact form (WPForms) styled like the former form. */
.ti-widget-form .wpforms-container { margin: 0 !important; }
.ti-widget-form .wpforms-form .wpforms-field { padding: 0 0 23px !important; margin: 0 !important; }
.ti-widget-form .wpforms-form .wpforms-field-container { margin: 0; }
.ti-widget-form .wpforms-form input[type=text],
.ti-widget-form .wpforms-form input[type=email],
.ti-widget-form .wpforms-form input[type=number],
.ti-widget-form .wpforms-form textarea {
	width: 100% !important; max-width: 100% !important; height: 40px; padding: 12px 16px; box-sizing: border-box;
	background: #fff; border: 1px solid #69727d; border-radius: 4px; box-shadow: none;
	font: 16px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; color: #1f2124;
}
.ti-widget-form .wpforms-form textarea { height: 96px !important; min-height: 96px; padding: 5px 14px; border-radius: 3px; font-size: 15px; resize: vertical; }
.ti-widget-form .wpforms-form ::placeholder { color: #808285; opacity: 1; }
.ti-widget-form .wpforms-form .wpforms-submit-container { padding: 0 12px !important; margin: 0 !important; }
.ti-widget-form .wpforms-form button[type=submit] {
	width: 100%; height: 40px; padding: 0 30px; border: 0; border-radius: 3px;
	background-color: #ffb400 !important; color: #fff !important; font: 500 16px "Open Sans", sans-serif; box-shadow: none;
}
.ti-widget-form .wpforms-form button[type=submit]:hover { filter: brightness(.95); }
.ti-widget-form { width: 100%; }

/* Headings h1–h3 use Katibeh (self-hosted, OFL licence). Only headings use this font face. */
@font-face { font-family: "TIP Katibeh"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/katibeh-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "TIP Katibeh"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/katibeh-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
h1, h2, h3,
:is(h1, h2, h3) :not(i):not(svg):not(svg *):not([class*="fa-"]):not(.ti-svgi) {
	font-family: "TIP Katibeh", "Katibeh", serif !important;
}

/* FAQ page: same content width as the other pages; site background image around a white content area. */
/* (site background image stays, as on the front page) */
.ti-6450 > .e-con.e-parent { max-width: var(--content-width); margin-left: auto; margin-right: auto; background-color: #fff; }

/* Footer news list: title and date on their own lines. */
.ti-footer-news-heading { margin-top: 20px; }
.ti-footer-news .ti-icon-list-item > a { display: block; }
.ti-footer-news .ti-icon-list-item + .ti-icon-list-item { margin-top: 8px; }
.ti-footer-news .ti-icon-list-text { display: block; }
.ti-footer-news__date { display: block; color: #fff; opacity: .7; font-size: 13px; line-height: 1.4; }
.ti-footer-news a:hover .ti-icon-list-text { text-decoration: underline; }

/* Article sidebar ("Vanhat jutut"): titles look like 18px text (Katibeh has small letters, so 26px). */
body .ti-element-1ca3ffc .ti-post__title,
body .ti-element-1ca3ffc .ti-post__title a { font-size: 26px !important; line-height: 1.15 !important; }

/* Article pages: no margin between the header and the content. */
body.single-post #primary { margin-top: 0 !important; }
body.single-post .ti-location-single > .ti-element-1126724 { margin-top: 0 !important; }

/* Toimintakertomukset: same column padding as the other pages so the title lines up. */
.ti-6186 .ti-element.ti-element-a6c3d2c { --padding-top: 3%; --padding-bottom: 3%; --padding-left: 3%; --padding-right: 3%; }

/* Yhteystiedot: left column gets the same padding as the other pages so the first title lines up. */
.ti-5423 .ti-element.ti-element-1f70336 { --padding-top: 3%; --padding-bottom: 3%; --padding-left: 3%; --padding-right: 3%; }

/* Header on one row (logo, menu, social icons) where it fits; narrower screens keep two rows. */
@media (min-width: 1240px) {
	.ti-location-header .ti-element-c1bcff8 { flex-wrap: nowrap !important; align-items: center !important; column-gap: 20px !important; }
	.ti-location-header .ti-element-9587739 { display: none !important; }
	.ti-location-header .ti-element-67646a5 { width: 160px !important; flex: 0 0 160px !important; order: 1; padding: 0 !important; }
	.ti-location-header .ti-element-e7549c5 { width: 100% !important; padding: 0 !important; margin: 0 !important; }
	.ti-location-header .ti-element-e7549c5 img { width: 150px !important; max-width: 150px !important; height: auto !important; }
	.ti-location-header .ti-element-b9ff2b2 { width: auto !important; flex: 1 1 auto !important; order: 2; min-width: 0; padding: 0 !important; min-height: 0 !important; justify-content: center !important; }
	.ti-location-header .ti-element-b9ff2b2 > .ti-element-7c65fcd { margin: 0 !important; }
	.ti-location-header .ti-element-3c466a4 { width: auto !important; flex: 0 0 auto !important; order: 3; padding: 0 !important; }
	.ti-location-header .ti-element-ff0f686 { --grid-column-gap: 14px !important; }
	.ti-location-header .ti-element-7c65fcd .hfe-nav-menu > li > a,
	.ti-location-header .ti-element-7c65fcd .hfe-nav-menu > li > div > a { font-size: 16px !important; padding-left: 8px !important; padding-right: 8px !important; }
}

/* Front page black column: FAQ link styled like the image links above it, everything fits the slider height. */
.ti-element-6b856d9 { --gap: 0px !important; --row-gap: 0px !important; row-gap: 0 !important; gap: 0 !important; justify-content: space-evenly !important; }
@media (min-width: 1025px) { .ti-element-78f47d4 > .ti-element-6b856d9 { flex-grow: 1 !important; } }
.ti-element-6b856d9 .ti-widget-divider .ti-divider { padding-top: 8px !important; padding-bottom: 8px !important; }
.ti-element-6b856d9 .tip-faq-item { text-align: center; }
.ti-element-6b856d9 .tip-faq-item a.tip-faq-link { display: inline-flex !important; flex-direction: column !important; align-items: center !important; padding: 13px 0 18px; color: #fff !important; text-decoration: none; }
.ti-element-6b856d9 .tip-faq-item .tip-faq-icon { display: block !important; width: 25px !important; height: 25px !important; background-color: #ffb400; }
.ti-element-6b856d9 .tip-faq-link .pencil-button__text { margin-top: 12px; font-family: "TIP Katibeh", "Katibeh", serif !important; font-size: 35px; line-height: 23px; color: #fff; -webkit-text-stroke: .5px #fff; }
/* Narrow desktops (slider is lower than the column below 1100px), so the black column is tightened to match it. */
@media (min-width: 1025px) and (max-width: 1099px) {
	.ti-element-6b856d9 .ti-widget-divider .ti-divider { padding-top: 4px !important; padding-bottom: 4px !important; }
	.ti-element-6b856d9 .ti-widget-image img { max-height: 72px; width: auto !important; }
	.ti-element-6b856d9 .tip-faq-item a.tip-faq-link { padding: 6px 0 10px; }
	.ti-element-6b856d9 .tip-faq-link .pencil-button__text { margin-top: 8px; font-size: 30px; line-height: 20px; }
	.ti-element-6b856d9 .tip-faq-item .tip-faq-icon { width: 21px !important; height: 21px !important; }
}

/* Header box sits right at the top edge of the page. */
.ti-location-header .ti-element-0144466 > .e-con-inner { padding-top: 0 !important; }

/* Mobile menu dialog: menu starts 80px lower; close button stays visible below the WordPress admin bar. */
.ti-popup-modal .ti-element-8a17ce2 { margin-top: 80px !important; }
.ti-popup-modal .dialog-close-button { z-index: 10000; }
.admin-bar .ti-popup-modal .dialog-close-button { top: 52px !important; }
@media (max-width: 782px) { .admin-bar .ti-popup-modal .dialog-close-button { top: 66px !important; } }
/* Mobile menu: submenu arrow on the right, just after the link text. */
.ti-popup-modal .eael-simple-menu-vertical li.menu-item-has-children > .eael-simple-menu-indicator { left: auto !important; right: 10px !important; }
.ti-popup-modal .eael-simple-menu-vertical > li > a { padding-right: 52px !important; }
/* Mobile menu: white submenu arrow (closed and open). */
.ti-popup-modal .eael-simple-menu-indicator svg { fill: #fff !important; }
.ti-popup-modal .eael-simple-menu-indicator.eael-simple-menu-indicator-open { border-color: rgba(255, 255, 255, .5) !important; background-color: transparent !important; }
body .ti-popup-modal .ti-10959 .ti-element.ti-element-8a17ce2 .eael-simple-menu li .eael-simple-menu-indicator:hover,
body .ti-popup-modal .ti-10959 .ti-element.ti-element-8a17ce2 .eael-simple-menu li .eael-simple-menu-indicator.eael-simple-menu-indicator-open {
	background-color: transparent !important; border-color: rgba(255, 255, 255, .5) !important;
}

/* Mobile popup menu: active items on a black background. */
body .ti-popup-modal .ti-10959 .ti-element.ti-element-8a17ce2 .eael-simple-menu li > a.eael-item-active,
body .ti-popup-modal .ti-10959 .ti-element.ti-element-8a17ce2 .eael-simple-menu li.current-menu-item > a.eael-item-active,
body .ti-popup-modal .ti-10959 .ti-element.ti-element-8a17ce2 .eael-simple-menu li.current-menu-ancestor > a.eael-item-active {background-color:#000!important;color:#fff!important}

/* Footer: same width as the rest of the site, roomier layout. */
footer.ti-location-footer{max-width:1200px;margin-left:auto;margin-right:auto}
footer.ti-location-footer > .e-con.e-parent{--padding-left:56px;--padding-right:56px;padding-left:56px!important;padding-right:56px!important}
footer .ti-element-4c491090 > .e-con-inner{display:grid!important;grid-template-columns:1fr 1fr 1.3fr;column-gap:48px;row-gap:0;align-items:start}
footer .ti-element-4c491090 > .e-con-inner > .e-con{width:auto!important;max-width:none!important;padding:0!important;--padding-top:0;--padding-right:0;--padding-bottom:0;--padding-left:0;gap:20px}
footer .tip-footer-news-col{display:flex;flex-direction:column;gap:20px}
footer .ti-element-4c491090 .ti-element-9fc7e5a{grid-column:1 / -1;display:grid!important;grid-template-columns:repeat(6,1fr)!important;gap:32px!important;align-items:center;justify-items:center;margin-top:48px;padding-top:40px!important;border-top:1px solid rgba(255,255,255,.18)}
footer .ti-element-9fc7e5a > .ti-element{width:100%!important;max-width:150px;text-align:center}
footer .ti-element-9fc7e5a img{width:auto!important;max-width:100%!important;max-height:72px;height:auto;object-fit:contain}
@media (max-width:1024px){
	footer.ti-location-footer > .e-con.e-parent{--padding-left:32px;--padding-right:32px;padding-left:32px!important;padding-right:32px!important}
	footer .ti-element-4c491090 > .e-con-inner{column-gap:32px}
	footer .ti-element-4c491090 .ti-element-9fc7e5a{grid-template-columns:repeat(3,1fr)!important;row-gap:40px!important}
}
@media (max-width:767px){
	footer.ti-location-footer > .e-con.e-parent{--padding-left:24px;--padding-right:24px;padding-left:24px!important;padding-right:24px!important}
	footer .ti-element-4c491090 > .e-con-inner{grid-template-columns:1fr;row-gap:40px}
	footer .ti-element-4c491090 .ti-element-9fc7e5a{grid-template-columns:repeat(2,1fr)!important;margin-top:8px}
}
footer .tip-footer-news-col .ti-footer-news-heading{margin-top:0}
footer .ti-element-4c491090 > .e-con-inner > .e-con.ti-element-9fc7e5a{grid-template-rows:auto!important;grid-auto-rows:auto!important;margin-top:48px;padding-top:40px!important}
@media (max-width:767px){footer .ti-element-4c491090 > .e-con-inner > .e-con.ti-element-9fc7e5a{margin-top:0;padding-top:32px!important}}

/* Työpajat accordions: an open item keeps its title colour (the active colour was near-white on white). */
.ti-5425 .ti-widget-n-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title{color:var(--n-accordion-title-normal-color)}
.ti-5425 .ti-widget-n-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-icon span > svg{fill:var(--n-accordion-icon-normal-color)}

/* Front page post teasers: tighter line spacing for two-line titles. */
body .ti-element-de2d986 .uael-post__title, body .ti-element-de2d986 .uael-post__title a{line-height:.9!important}

/* In English: show the 600px photo at its own size instead of stretching it to ~1130px. */
body .ti-element.ti-element-4c19900{text-align:center}
body .ti-element.ti-element-4c19900 img{display:block;width:100%!important;max-width:600px!important;height:auto!important;margin-left:auto;margin-right:auto}
body .ti-element.ti-element-4c19900 figure, body .ti-element.ti-element-4c19900 .wp-caption{margin-left:auto!important;margin-right:auto!important;max-width:600px}

/* Front page black box: one horizontal row on tablet and mobile.
   --s scales the three image links and the FAQ text together so they stay the same relative size. */
@media (max-width: 1024px) {
	/* Tablet too: the black box moves under the slider at full width (as on mobile). */
	body .ti-element-f1cf443 > .e-con-inner { flex-wrap: wrap !important; }
	body .ti-element-f1cf443 > .e-con-inner > .ti-element-2ba1c81, body .ti-element-f1cf443 > .e-con-inner > .ti-element-78f47d4 { --width: 100% !important; width: 100% !important; flex: 0 0 100% !important; }
	body .ti-element.ti-element-6b856d9 {
		--s: min(1, calc((100vw - 90px) / 440px));
		flex-direction: row !important; --flex-direction: row !important;
		flex-wrap: nowrap !important; align-items: center !important; justify-content: space-evenly !important;
		padding: calc(22px * var(--s)) 10px !important;
	}
	body .ti-element-6b856d9 > .ti-element { width: auto !important; max-width: none !important; flex: 0 0 auto; margin: 0 !important; }
	body .ti-element-6b856d9 .ti-widget-image img { max-height: none !important; height: auto !important; }
	/* The images have wide black side margins; crop them so the icon and text can be larger. */
	body .ti-element-6b856d9 .ti-widget-image img { object-fit: cover; object-position: center; }
	body .ti-element-6b856d9 .ti-element-2b7e5c4 img { width: calc(92px * var(--s)) !important; height: calc(99px * var(--s)) !important; }
	body .ti-element-6b856d9 .ti-element-89159ac img { width: calc(142px * var(--s)) !important; height: calc(105px * var(--s)) !important; }
	body .ti-element-6b856d9 .ti-element-e4544cd img { width: calc(153px * var(--s)) !important; height: calc(89px * var(--s)) !important; }
	/* Dividers become short vertical lines between the items. */
	body .ti-element-6b856d9 > .ti-widget-divider { flex: 0 0 1px !important; width: 1px !important; height: calc(70px * var(--s)); background: rgba(255,255,255,.6); }
	body .ti-element-6b856d9 > .ti-widget-divider .ti-divider { display: none !important; }
	body .ti-element-6b856d9 .tip-faq-item a.tip-faq-link { padding: calc(13px * var(--s)) 0 calc(18px * var(--s)) !important; }
	body .ti-element-6b856d9 .tip-faq-item .tip-faq-icon { width: calc(25px * var(--s)) !important; height: calc(25px * var(--s)) !important; }
	body .ti-element-6b856d9 .tip-faq-link .pencil-button__text { margin-top: calc(12px * var(--s)) !important; font-size: calc(35px * var(--s)) !important; line-height: calc(23px * var(--s)) !important; }
}


/* Arkisto: same 1200px content width as other pages, and a white content area (like Uutiset). */
.ti-8475 .ti-element.ti-element-5d39b24{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap}
.ti-8475 .ti-element.ti-element-fd5b2a4{background-color:#fff;padding:10px;margin-top:-20px}

/* Arkisto: post titles match the other post listings (Uutiset, Blogi): Katibeh 30px, black. */
.ti-8475 .ti-element.ti-element-fd5b2a4 .ti-post__title, .ti-8475 .ti-element.ti-element-fd5b2a4 .ti-post__title a{color:#020202;font-family:"Katibeh", Sans-serif;font-size:30px}

/* Arkisto: grid gaps match Uutiset. */
.ti-8475 .ti-element.ti-element-fd5b2a4{--grid-row-gap:35px;--grid-column-gap:30px}

/* Arkisto: light card background on each post. */
.ti-8475 .ti-element.ti-element-fd5b2a4 .ti-post{background-color:#F7F4EE;padding:20px}

/* Wider layout on large screens (e.g. 15-inch laptops): 1200px -> 1400px. Smaller screens are unchanged. */
@media (min-width:1400px){
	.e-con{--container-max-width:min(1400px, calc(100vw - 60px))}
	.ti-6766 .ti-element.ti-element-0144466{--content-width:min(1400px, calc(100vw - 60px))}
	footer.ti-location-footer{max-width:min(1400px, calc(100vw - 60px))}
	#content > .ast-container{max-width:min(1440px, calc(100vw - 20px))}
}

/* Top menu: larger text on wide screens, where the one-row header has room for it. */
@media (min-width:1400px){
	.ti-location-header .ti-element-7c65fcd .hfe-nav-menu > li > a,
	.ti-location-header .ti-element-7c65fcd .hfe-nav-menu > li > div > a{font-size:18px !important;padding-left:10px !important;padding-right:10px !important}
}

/* Ohjelmistokalenteri: modern, line-free event list. Each event is a light card; ticket links are buttons. */
.ti-10910 .ti-widget-icon-list .ti-icon-list-text{font-family:"TIP Katibeh","Katibeh",serif !important;font-size:34px !important;line-height:1.1;color:#0a0a0a !important}
.ti-10910 .ti-widget-icon-list .ti-icon-list-icon svg{width:26px !important;height:26px !important}
.ti-10910 .ti-widget-icon-list{margin-top:28px}
.ti-10910 .eael-event-calendar-table{border:0 !important;border-collapse:separate !important;border-spacing:0 10px !important;margin:0 0 8px !important;background:transparent !important;font-family:"Open Sans",sans-serif !important}
.ti-10910 .eael-event-calendar-table th,
.ti-10910 .eael-event-calendar-table td{border:0 !important;background:transparent;vertical-align:middle !important}
.ti-10910 .eael-event-calendar-table thead th{padding:0 22px 2px !important;text-align:left !important;font-family:"Open Sans",sans-serif !important;font-size:12px !important;font-weight:600 !important;letter-spacing:.12em;text-transform:uppercase;color:#8a8580 !important}
.ti-10910 .eael-event-calendar-table thead th a{color:inherit !important;font:inherit !important;text-decoration:none}
.ti-10910 .eael-event-calendar-table thead th .sortArrow{border-top-color:#b8b2aa !important}
.ti-10910 .eael-event-calendar-table tbody tr td{background:#F7F4EE !important;padding:18px 22px !important;font-family:"Open Sans",sans-serif !important;font-size:16px !important;line-height:1.45;color:#1a1a1a !important;transition:background-color .2s}
.ti-10910 .eael-event-calendar-table tbody tr:hover td{background:#F1EBDF !important}
.ti-10910 .eael-event-calendar-table tbody td:first-child{border-radius:12px 0 0 12px}
.ti-10910 .eael-event-calendar-table tbody td:last-child{border-radius:0 12px 12px 0}
.ti-10910 .eael-event-calendar-table td.eael-ec-event-title{font-weight:600 !important;font-size:17px !important}
.ti-10910 .eael-event-calendar-table td.eael-ec-event-description{width:1%;white-space:nowrap}
.ti-10910 .eael-event-calendar-table td.eael-ec-event-description p{margin:0}
.ti-10910 .eael-event-calendar-table td.eael-ec-event-description a{display:inline-block;padding:7px 18px;border-radius:999px;background:#FFB400;color:#0a0a0a !important;font-family:"Open Sans",sans-serif !important;font-size:14px !important;font-weight:700 !important;line-height:1.2;text-decoration:none !important;transition:background-color .2s,transform .2s}
.ti-10910 .eael-event-calendar-table td.eael-ec-event-description a:hover,
.ti-10910 .eael-event-calendar-table td.eael-ec-event-description a:focus-visible{background:#0a0a0a;color:#fff !important}
.ti-10910 .eael-event-calendar-table td.eael-ec-event-date{width:1%;white-space:nowrap;color:#5c5650 !important;font-variant-numeric:tabular-nums}
.ti-10910 .eael-event-calendar-table thead th:nth-child(2){color:transparent !important}
@media (max-width:767px){
	.ti-10910 .ti-widget-icon-list .ti-icon-list-text{font-size:28px !important}
	.ti-10910 .eael-event-calendar-table,
	.ti-10910 .eael-event-calendar-table tbody{display:block}
	.ti-10910 .eael-event-calendar-table thead{display:none}
	.ti-10910 .eael-event-calendar-table tbody tr{display:grid;grid-template-columns:1fr auto;grid-template-areas:"date date" "title ticket";gap:6px 12px;align-items:center;margin:0 0 10px;padding:16px 18px;background:#F7F4EE;border-radius:12px}
	.ti-10910 .eael-event-calendar-table tbody tr td{display:block;padding:0 !important;background:transparent !important;border-radius:0 !important;width:auto !important}
	.ti-10910 .eael-event-calendar-table tbody tr:hover td{background:transparent !important}
	.ti-10910 .eael-event-calendar-table td.eael-ec-event-title{grid-area:title;font-size:16px !important}
	.ti-10910 .eael-event-calendar-table td.eael-ec-event-description{grid-area:ticket}
	.ti-10910 .eael-event-calendar-table td.eael-ec-event-date{grid-area:date;font-size:13px !important;font-weight:600;letter-spacing:.02em;white-space:normal}
}

/* Event tables: past events stay listed but are faded, and their ticket button is hidden. */
.eael-event-calendar-table tbody tr.tip-event-past td{opacity:.45}
.eael-event-calendar-table tbody tr.tip-event-past td.eael-ec-event-description{color:transparent !important}.eael-event-calendar-table tbody tr.tip-event-past td.eael-ec-event-description *{visibility:hidden}
.eael-event-calendar-table tbody tr.tip-event-past:hover td{opacity:.7}
@media (max-width:767px){.ti-10910 .eael-event-calendar-table tbody tr.tip-event-past{opacity:.5}.ti-10910 .eael-event-calendar-table tbody tr.tip-event-past td{opacity:1}}

/* Ohjelmistokalenteri: large, clear page title. */
.ti-10910 .ti-element.ti-element-49f889a .ti-heading-title{font-size:56px !important;line-height:1.1 !important;letter-spacing:0 !important;color:#0a0a0a !important;margin:8px 0 4px}
@media (max-width:767px){.ti-10910 .ti-element.ti-element-49f889a .ti-heading-title{font-size:38px !important}}

/* Back-to-top button: black background, white arrow. */
.hfe-scroll-to-top-wrap .hfe-scroll-to-top-button{background-color:#0a0a0a !important}
.hfe-scroll-to-top-wrap .hfe-scroll-to-top-button i{color:#fff !important}

/* Header social icons: black background on hover (box-shadow so the layout does not move); icon stays yellow. */
.ti-location-header .ti-element-ff0f686 .ti-social-icon{border-radius:6px;transition:background-color .2s,box-shadow .2s}
.ti-location-header .ti-element-ff0f686 .ti-social-icon:hover,
.ti-location-header .ti-element-ff0f686 .ti-social-icon:focus-visible{background-color:#0a0a0a !important;box-shadow:0 0 0 6px #0a0a0a;opacity:1 !important}

/* Footer, mobile: more space above the Ota yhteyttä button. */
@media (max-width:767px){footer.ti-location-footer .ti-element-6937acd1{padding-top:40px !important}}
