/*
Theme Name: Ecomus Child
Theme URI: https://wpecomus.com/
Author: DrFuri
Author URI: http://drfuri.com/
Description: Multipurpose WooCommerce WordPress Theme
Version: 1.0.0
Requires at least: 5.0
Tested up to: 5.8
Requires PHP: 7.0
License: GNU General Public License v2+
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ecomus
Domain Path: /lang/
Tags: one-column, two-columns, left-sidebar, right-sidebar, full-width-template, post-formats, theme-options, threaded-comments, translation-ready
Template: ecomus
*/

/* ── Printtipiste brändivärit ── */
:root {
    /* Sininen (pääväri) */
    --pp-primary: #0072B5;
    --pp-primary-medium: #56A1CF;
    --pp-primary-light: #A6CCE8;
    --pp-primary-lightest: #D4E6F2;
    /* Tummansininen (navy) */
    --pp-navy: #152850;
    --pp-navy-medium: #5C6A88;
    --pp-navy-light: #A3ABBD;
    --pp-navy-lightest: #D1D5DE;
    /* Musta / harmaa */
    --pp-black: #1E1E1E;
    --pp-gray-dark: #54515A;
    --pp-gray-medium: #908D94;
    --pp-gray-light: #C5C3C8;
    /* Beige / kulta */
    --pp-gold: #BDA572;
    --pp-gold-medium: #C7AE86;
    --pp-gold-light: #DDD1BD;
    --pp-gold-lightest: #EEE5DA;

    /* Ecomus-teeman ylikirjoitukset */
    --em-color__primary: #0072B5;
    --em-color__dark: #1E1E1E;
    --em-color__base: #54515A;
    --em-link-color: #1E1E1E;
    --em-link-color-hover: #0072B5;
    --em-color-price-sale: #0072B5;

    /* Product card image border-radius */
    --em-image-rounded-product-card: 12px;
}

/* Product card short description bottom margin */
ul.products li.product .short-description {
    margin-bottom: 15px;
}

/* Single product: space between short description and variation selectors */
.single-product div.product .short-description {
    margin-bottom: 35px;
}

/* Site content padding */
.site-content {
    padding-top: 0;
    position: relative;
    z-index: 1;
}

/* Varmista, että sisältö ei mene kuvien päälle */
.elementor-section {
    position: relative;
    z-index: 1;
}

.elementor-widget-image,
.elementor-widget-image img {
    position: relative;
    z-index: 0;
}

/* Yhteystiedot-sivun ulkoasun korjaukset */

/* Piilota "Need Help?" osio - JavaScript hoitaa tämän */
body.page-template-default .elementor-widget-container.hide-need-help {
    display: none !important;
}

/* Korjaa Yhteystiedot-sivun layout */
body.page-template-default .elementor-section {
    margin-bottom: 40px;
}

/* Yhteystiedot-osioiden tyylittely */
.elementor-widget-heading h2.elementor-heading-title,
.elementor-widget-heading h3.elementor-heading-title {
    margin-bottom: 30px;
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.3;
}

/* Toimipisteiden tyylittely */
.elementor-widget-heading h4.elementor-heading-title,
.elementor-widget-heading h5.elementor-heading-title,
.elementor-widget-heading h6.elementor-heading-title {
    margin-top: 30px;
    margin-bottom: 15px;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.4;
}

/* Yhteystietojen listaus */
.elementor-widget-text-editor p {
    margin-bottom: 10px;
    line-height: 1.6;
}

.elementor-widget-text-editor p:last-child {
    margin-bottom: 0;
}

/* Lomakkeen tyylittely */
.elementor-widget-wpcf7 .wpcf7-form {
    max-width: 100%;
}

.elementor-widget-wpcf7 .wpcf7-form-control {
    width: 100%;
    padding: 12px;
    margin-bottom: 15px;
    border: 1px solid #C5C3C8;
    border-radius: 4px;
    font-size: 16px;
    box-sizing: border-box;
}

.elementor-widget-wpcf7 .wpcf7-form-control:focus {
    outline: none;
    border-color: #0072B5;
    box-shadow: 0 0 0 2px rgba(0, 114, 181, 0.1);
}

.elementor-widget-wpcf7 .wpcf7-submit {
    background-color: #0072B5;
    color: #fff;
    padding: 12px 30px;
    border: none;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.elementor-widget-wpcf7 .wpcf7-submit:hover {
    background-color: #152850;
}

/* Yhteystietojen osioiden välistys */
.elementor-element[data-widget_type="heading.default"] + .elementor-element[data-widget_type="text-editor.default"] {
    margin-top: 20px;
}

/* Varmista, että sisältö on oikein keskitetty */
.elementor-section.elementor-section-boxed > .elementor-container {
    max-width: 1200px;
    margin: 0 auto;
}

/* Responsiivisuus */
@media (max-width: 768px) {
    .elementor-widget-heading h2.elementor-heading-title,
    .elementor-widget-heading h3.elementor-heading-title {
        font-size: 1.5rem;
    }
    
    .elementor-widget-heading h4.elementor-heading-title,
    .elementor-widget-heading h5.elementor-heading-title,
    .elementor-widget-heading h6.elementor-heading-title {
        font-size: 1.25rem;
    }
    
    .elementor-column {
        margin-bottom: 20px;
    }
    
    .elementor-widget-wpcf7 .wpcf7-form-control {
        font-size: 16px; /* Estää zoomaus iOS:llä */
    }
}

/* Korjaa footer-elementit, jotka näkyvät sivulla */
body.page-template-default .elementor-location-footer {
    display: none;
}

/* Yhteystietojen osioiden layout */
.elementor-element[data-widget_type="heading.default"] {
    margin-bottom: 20px;
}

/* Paranna yhteystietojen näyttöä */
.elementor-widget-text-editor {
    margin-bottom: 20px;
}

/* Korjaa osioiden välistys */
.elementor-section:not(:last-child) {
    margin-bottom: 40px;
}

/* Varmista, että lomake on oikein tyylitelty */
.elementor-widget-wpcf7 {
    margin-top: 30px;
}

/* Korjaa yhteystietojen osioiden layout mobiilissa */
@media (max-width: 768px) {
    .elementor-section {
        margin-bottom: 30px;
    }
    
    .elementor-column {
        margin-bottom: 20px;
    }
}

/* SVG-kuvien ylivuotosuoja (ei aseta width:auto joka rikkoisi inline-ikonit) */
svg {
    max-width: 100%;
}

/* Korjaa erityisesti suuret SVG-kuvat (kuten Clock-ikoni) */
svg[viewBox="0 0 512 512"],
svg[viewBox*="512"] {
    max-width: 24px !important;
    max-height: 24px !important;
    width: 24px !important;
    height: 24px !important;
}

/* Korjaa kaikki SVG-kuvat, joilla ei ole eksplisiittistä kokoa */
svg:not([width]):not([height]) {
    max-width: 24px !important;
    max-height: 24px !important;
}

/* Elementor SVG-ikoneiden koon korjaus */
.elementor-widget svg,
.elementor-element svg {
    max-width: 100%;
    height: auto;
    width: auto;
    max-height: 200px;
}

/* Yleiset SVG-ikoneiden tyylit */
.ecomus-svg-icon svg,
.menu-item-icon svg,
.elementor-icon svg {
    width: 1em;
    height: 1em;
    max-width: 24px;
    max-height: 24px;
    vertical-align: middle;
}

/* Elementor ikonien koon korjaus */
.elementor-icon {
    display: inline-block;
}

.elementor-icon svg {
    width: 1em;
    height: 1em;
    max-width: 48px;
    max-height: 48px;
}

/* Elementor ikoni box -koko */
.elementor-icon-box-icon svg {
    width: 1em;
    height: 1em;
    max-width: 64px;
    max-height: 64px;
}

/* Header SVG-ikoneiden koko */
.header-logo svg,
.header-search__button svg,
.header-cart__icon svg {
    max-width: 100%;
    height: auto;
    width: auto;
}

.header-logo svg {
    max-width: 200px;
    max-height: 60px;
}

.header-search__button svg,
.header-cart__icon svg {
    max-width: 24px;
    max-height: 24px;
}

/* Footer SVG-ikoneiden koko */
.footer svg,
.site-footer svg {
    max-width: 24px;
    max-height: 24px;
}

/* Yhteystiedot-sivun SVG-ikoneiden koko */
.elementor-widget-text-editor svg,
.elementor-widget-heading svg {
    max-width: 24px;
    max-height: 24px;
    vertical-align: middle;
}

/* Varmista, että SVG-kuvat eivät ylitä kontainerinsa kokoa */
.elementor-widget-container svg,
.elementor-column svg,
.elementor-section svg {
    max-width: 100% !important;
    height: auto !important;
}

/* Korjaa SVG-kuvat tekstieditorissa ja muissa widgeteissä */
.elementor-widget-text-editor svg,
.elementor-widget-icon svg,
.elementor-widget-icon-box svg {
    max-width: 24px !important;
    max-height: 24px !important;
    width: 24px !important;
    height: 24px !important;
}

/* Korjaa SVG-kuvat, jotka ovat suoraan elementor-elementin sisällä */
.elementor-element > svg {
    max-width: 24px !important;
    max-height: 24px !important;
    width: 24px !important;
    height: 24px !important;
}

/* Muropolun yhtenäinen väri ja opacity kaikilla sivuilla */
.woocommerce-breadcrumb,
.woocommerce-breadcrumb a,
.site-breadcrumb,
.site-breadcrumb a {
    color: #54515A !important;
    opacity: 0.9;
}
.woocommerce-breadcrumb a:hover,
.site-breadcrumb a:hover {
    color: #152850 !important;
}

/* Breadcrumb-ikonien alkuperäinen koko - tulee ennen muita sääntöjä */
.site-breadcrumb svg,
.site-breadcrumb .ecomus-svg-icon svg,
.woocommerce-breadcrumb svg,
.woocommerce-breadcrumb .ecomus-svg-icon svg,
.breadcrumbs svg,
.breadcrumbs .ecomus-svg-icon svg,
[class*="breadcrumb"] svg[viewBox="0 0 6 10"],
[class*="breadcrumb"] .ecomus-svg-icon svg[viewBox="0 0 6 10"] {
    max-width: 8px !important;
    max-height: 8px !important;
    width: 8px !important;
    height: 8px !important;
    font-size: 8px !important;
}

/* Korjaa Clock-ikonit ja muut suuret SVG-kuvat Bootstrap-columnissa */
.col-1 svg,
.col-2 svg,
.col-3 svg,
.col-4 svg,
.col-5 svg,
.col-6 svg,
.col-7 svg,
.col-8 svg,
.col-9 svg,
.col-10 svg,
.col-11 svg,
.col-12 svg,
[class*="col-"] svg {
    max-width: 24px !important;
    max-height: 24px !important;
    width: 24px !important;
    height: 24px !important;
}

/* Korjaa SVG-kuvat, jotka ovat flex-containerissa */
.d-flex svg,
.align-items-center svg {
    max-width: 24px !important;
    max-height: 24px !important;
    width: 24px !important;
    height: 24px !important;
}

/* Korjaa kaikki SVG-kuvat, joilla on viewBox 512x512 (Clock-ikoni) */
svg[viewBox="0 0 512 512"] {
    max-width: 24px !important;
    max-height: 24px !important;
    width: 24px !important;
    height: 24px !important;
}

/* Korjaa SVG-kuvat, joilla on eksplisiittinen suuri koko */
svg[width="1280"],
svg[height="1280"],
svg[width="512"],
svg[height="512"] {
    max-width: 24px !important;
    max-height: 24px !important;
    width: 24px !important;
    height: 24px !important;
}

/* Korjaa SVG-kuvien oletusasetukset */
img[src$=".svg"],
img[src*=".svg"] {
    max-width: 100%;
    height: auto;
    width: auto;
}

/* Responsiivisuus SVG-ikoneille */
@media (max-width: 768px) {
    .elementor-icon svg,
    .elementor-icon-box-icon svg {
        max-width: 48px;
        max-height: 48px;
    }
    
    .header-logo svg {
        max-width: 150px;
        max-height: 45px;
    }
}

/* Tekstiilit-ja-tyovaatteet -sivun tyylit graafinen-suunnittelu -sivun mukaan */

/* Tunnista tekstiilit-ja-tyovaatteet -sivu */
body.page-id-30 .elementor-page,
body.page-id-30 article {
    /* Varmista, että layout on sama kuin graafinen-suunnittelu -sivulla */
    max-width: 100%;
}

/* Ensimmäisen osion otsikko (pääotsikko) - sama tyyli kuin graafinen-suunnittelu */
body.page-id-30 article > div:first-child h2.elementor-heading-title,
body.page-id-30 article > div:first-child h2 {
    font-size: 68px;
    font-weight: 600;
    margin-top: 0;
    margin-bottom: 0;
    line-height: 1.2;
}

/* Ensimmäisen osion alateksti */
body.page-id-30 article > div:first-child p {
    font-size: 18px;
    line-height: 1.6;
    margin-bottom: 30px;
}

/* H4-otsikot - sama tyyli kuin graafinen-suunnittelu */
body.page-id-30 article h4.elementor-heading-title,
body.page-id-30 article h4 {
    font-size: 42px;
    font-weight: 600;
    margin-top: 0;
    margin-bottom: 0;
    line-height: 1.3;
}

/* H3-otsikot - testimonial-otsikko tyyli */
body.page-id-30 article h3.elementor-heading-title,
body.page-id-30 article h3 {
    font-size: 52px;
    font-weight: 400;
    margin-top: 0;
    margin-bottom: 0;
    line-height: 1.3;
}

/* Osioiden välistys - sama kuin graafinen-suunnittelu */
body.page-id-30 article > div {
    margin-bottom: 60px;
}

body.page-id-30 article > div:last-child {
    margin-bottom: 0;
}

/* Paranna layout-rakennetta */
body.page-id-30 .elementor-section {
    margin-bottom: 60px;
}

body.page-id-30 .elementor-section:last-child {
    margin-bottom: 0;
}

/* Varmista, että tekstisisältö on oikein tyylitelty */
body.page-id-30 .elementor-widget-text-editor {
    font-size: 16px;
    line-height: 1.6;
}

body.page-id-30 .elementor-widget-text-editor p {
    margin-bottom: 15px;
}

body.page-id-30 .elementor-widget-text-editor p:last-child {
    margin-bottom: 0;
}

/* Responsiivisuus */
@media (max-width: 768px) {
    body.page-id-30 article > div:first-child h2.elementor-heading-title,
    body.page-id-30 article > div:first-child h2 {
        font-size: 42px;
    }
    
    body.page-id-30 article h4.elementor-heading-title,
    body.page-id-30 article h4 {
        font-size: 32px;
    }
    
    body.page-id-30 article h3.elementor-heading-title,
    body.page-id-30 article h3 {
        font-size: 36px;
    }
    
    body.page-id-30 article > div {
        margin-bottom: 40px;
    }
}

/* Graafinen-suunnittelu -sivun lomakkeen tyylit */
/* Soittopyyntö-lomakkeen asettelu ja tyylit */
.row.g-0.form.soittopyynto {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    align-items: stretch;
    gap: 0;
    justify-content: center;
}

.row.g-0.form.soittopyynto .col-12 {
    padding: 0;
}

/* Puhelinnumero-kenttä */
.row.g-0.form.soittopyynto .phone {
    padding-right: 0;
}

@media (min-width: 768px) {
    .row.g-0.form.soittopyynto .phone {
        flex: 0 0 180px;
        max-width: 180px;
    }
}

.row.g-0.form.soittopyynto .phone input[type="tel"],
.row.g-0.form.soittopyynto .phone .wpcf7-form-control {
    width: 100%;
    padding: 12px 15px 12px 25px;
    border: 1px solid #C5C3C8;
    border-right: none;
    border-radius: 23px 0 0 23px;
    font-size: 16px;
    line-height: 1.5;
    box-sizing: border-box;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    height: 100%;
    min-height: 48px;
}

.row.g-0.form.soittopyynto .phone input[type="tel"]:focus,
.row.g-0.form.soittopyynto .phone .wpcf7-form-control:focus {
    outline: none;
    border-color: #0072B5;
    box-shadow: 0 0 0 2px rgba(0, 114, 181, 0.1);
    z-index: 1;
    position: relative;
}

/* Sähköpostiosoite-kenttä */
.row.g-0.form.soittopyynto .email {
    padding-right: 0;
    padding-left: 0;
}

@media (min-width: 768px) {
    .row.g-0.form.soittopyynto .email {
        flex: 0 0 180px;
        max-width: 180px;
    }
}

.row.g-0.form.soittopyynto .email input[type="email"],
.row.g-0.form.soittopyynto .email .wpcf7-form-control {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #C5C3C8;
    border-left: none;
    border-right: none;
    border-radius: 0;
    font-size: 16px;
    line-height: 1.5;
    box-sizing: border-box;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    height: 100%;
    min-height: 48px;
}

.row.g-0.form.soittopyynto .email input[type="email"]:focus,
.row.g-0.form.soittopyynto .email .wpcf7-form-control:focus {
    outline: none;
    border-color: #0072B5;
    box-shadow: 0 0 0 2px rgba(0, 114, 181, 0.1);
    z-index: 1;
    position: relative;
}

/* Lähetä-painike */
.row.g-0.form.soittopyynto .submit {
    padding-left: 0;
    padding-right: 0;
}

@media (min-width: 768px) {
    .row.g-0.form.soittopyynto .submit {
        flex: 1 1 auto;
        min-width: 0;
    }
}

.row.g-0.form.soittopyynto .submit input[type="submit"],
.row.g-0.form.soittopyynto .submit .wpcf7-submit {
    width: 100%;
    padding: 12px 30px;
    background-color: #0072B5;
    color: #fff;
    border: none;
    border-radius: 0 23px 23px 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    cursor: pointer;
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
    box-sizing: border-box;
    height: 100%;
    min-height: 48px;
}

.row.g-0.form.soittopyynto .submit input[type="submit"]:hover,
.row.g-0.form.soittopyynto .submit .wpcf7-submit:hover {
    background-color: #152850;
}

.row.g-0.form.soittopyynto .submit input[type="submit"]:focus,
.row.g-0.form.soittopyynto .submit .wpcf7-submit:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(0, 114, 181, 0.3);
}

/* Poista paragraph-elementtien marginaalit ja varmista, että ne eivät vaikuta korkeuteen */
.row.g-0.form.soittopyynto p {
    margin: 0;
    padding: 0;
    display: flex;
    align-items: stretch;
    height: 100%;
}

.row.g-0.form.soittopyynto .phone,
.row.g-0.form.soittopyynto .email,
.row.g-0.form.soittopyynto .submit {
    display: flex;
    align-items: stretch;
}

/* Varmista, että wpcf7-form-control-wrap ei aiheuta ongelmia */
.row.g-0.form.soittopyynto .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

/* Responsiivisuus */
@media (max-width: 767.98px) {
    .row.g-0.form.soittopyynto {
        justify-content: center;
    }
    
    .row.g-0.form.soittopyynto .phone,
    .row.g-0.form.soittopyynto .email,
    .row.g-0.form.soittopyynto .submit {
        padding-right: 0;
        padding-left: 0;
        margin-bottom: 15px;
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    .row.g-0.form.soittopyynto .phone input[type="tel"],
    .row.g-0.form.soittopyynto .phone .wpcf7-form-control {
        border-right: 1px solid #C5C3C8;
        border-radius: 4px;
    }
    
    .row.g-0.form.soittopyynto .email input[type="email"],
    .row.g-0.form.soittopyynto .email .wpcf7-form-control {
        border-left: 1px solid #C5C3C8;
        border-right: 1px solid #C5C3C8;
        border-radius: 4px;
    }
    
    .row.g-0.form.soittopyynto .submit {
        margin-bottom: 0;
    }
    
    .row.g-0.form.soittopyynto .submit input[type="submit"],
    .row.g-0.form.soittopyynto .submit .wpcf7-submit {
        border-radius: 4px;
    }
}

/* Underform-elementin tyylit (yhteystiedot lomakkeen alla) */
.underform {
    margin-top: 20px;
    color: #fff;
    width: 100%;
}

.underform .hero-call {
    color: #fff;
    text-decoration: none;
    font-weight: 500;
}

.underform .hero-call:hover {
    text-decoration: underline;
    color: #fff;
}

.underform br.d-md-none {
    display: none !important;
}

@media (max-width: 767.98px) {
    .underform {
        text-align: center !important;
    }
}

/* Header category menu border radius */
.header-category__title {
    border-radius: 23px !important;
    overflow: hidden;
}

.header-category-menu {
    border-radius: 23px;
    /* Ei overflow: hidden, jotta alasvetovalikko näkyy */
}

/* Tuotevalikoima-dropdown: sulkeutumisviive estää vahingossa uudelleen avautumisen */
.header-category__content {
    transition: opacity .3s ease .4s, visibility .3s ease .4s, transform .3s ease .4s !important;
}

.header-category-menu:hover .header-category__content {
    transition: opacity .3s ease 0s, visibility .3s ease 0s, transform .3s ease 0s !important;
}

/* Tuotevalikoima: hover-taustaväri navigoinnin helpottamiseksi */
.header-category__menu ul.menu > li > a:hover,
.header-category__menu ul.menu .sub-menu li a:hover {
    background-color: #EEE5DA !important;
    border-radius: 6px;
}

/* Tuotevalikoima sub-menu: fadeIn pois, näytetään heti */
.header-category__menu ul.menu li.menu-item-has-children:not(.menu-item-mega) > ul.sub-menu:not(.sub-mega-menu) {
    transition: none !important;
    transform: none !important;
}
.header-category__menu ul.menu li.menu-item-has-children:not(.menu-item-mega):hover > ul.sub-menu:not(.sub-mega-menu) {
    transform: none !important;
}
}

}

    aspect-ratio: 1 / 1 !important;
    --em-ratio: 100% !important;
}

/* Kategoriat: tasalevyinen grid-layout */
.catalog-top-categories {
    padding: 20px 0 30px !important;
    overflow: visible !important;
}

.catalog-top-categories .swiper-wrapper {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
    gap: 12px !important;
    transform: none !important;
    padding: 4px 0 !important;
    overflow: visible !important;
}

.catalog-top-categories .swiper-pagination,
.catalog-top-categories .swiper-button-next,
.catalog-top-categories .swiper-button-prev {
    display: none !important;
}

.catalog-top-categories__item.swiper-slide {
    width: 100% !important;
    margin: 0 !important;
    overflow: visible !important;
}

.catalog-top-categories__inner.em-ratio {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    background-color: #ffffff !important;
    border-radius: 12px !important;
    padding: 12px !important;
    height: 100% !important;
    min-height: 80px !important;
    --em-ratio: unset !important;
    box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 2px 0px !important;
    transition: all 0.25s ease !important;
    border: 1px solid #D1D5DE !important;
}

.catalog-top-categories__inner.em-ratio:hover,
.catalog-top-categories__inner.em-ratio:focus {
    box-shadow: rgba(14, 63, 126, 0.06) 0px 0px 0px 1px, rgba(42, 51, 70, 0.03) 0px 1px 1px -0.5px, rgba(42, 51, 70, 0.04) 0px 2px 2px -1px, rgba(42, 51, 70, 0.04) 0px 3px 3px -1.5px, rgba(42, 51, 70, 0.03) 0px 5px 5px -2.5px, rgba(42, 51, 70, 0.03) 0px 10px 10px -5px, rgba(42, 51, 70, 0.03) 0px 24px 24px -8px !important;
    transform: translateY(-3px) !important;
    border-color: #C5C3C8 !important;
    outline: none !important;
}

.catalog-top-categories__inner.em-ratio:focus-visible {
    border-color: #152850 !important;
    box-shadow: 0 0 0 3px rgba(21,40,80,0.15) !important;
}

/* Aktiivinen/nykyinen kategoria */
.catalog-top-categories__item.active .catalog-top-categories__inner.em-ratio {
    border-color: #56A1CF !important;
    border-width: 2px !important;
    background-color: #fafafa !important;
}

.catalog-top-categories__inner.em-ratio::before {
    display: none !important;
}

.catalog-top-categories__image {
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    object-fit: contain !important;
    object-position: center center !important;
    padding: 6px !important;
    background-color: transparent !important;
    border-radius: 10px !important;
    position: relative !important;
    flex-shrink: 0 !important;
}

.catalog-top-categories__title,
.catalog-top-categories__title.em-button {
    position: static !important;
    margin: 0 0 0 10px !important;
    background: none !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex: 1 !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
}

.catalog-top-categories__text {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #152850 !important;
    white-space: normal !important;
    line-height: 1.4 !important;
    word-break: break-word !important;
    text-align: left !important;
    position: static !important;
    transform: none !important;
}

.catalog-top-categories__title .ecomus-svg-icon {
    display: none !important;
}

/* Tablet */
@media (max-width: 900px) {
    .catalog-top-categories .swiper-wrapper {
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
        gap: 10px !important;
    }
}

/* Mobiili */
@media (max-width: 600px) {
    .catalog-top-categories .swiper-wrapper {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }
    .catalog-top-categories__image {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
    }
    .catalog-top-categories__inner.em-ratio {
        padding: 10px !important;
        min-height: 68px !important;
    }
    .catalog-top-categories__text {
        font-size: 13px !important;
    }
    .catalog-top-categories__title {
        margin-left: 10px !important;
    }
}

/* Pienennetään related/upsells/cross-sells otsikkojen fonttikokoa */
.related.products > h2,
.upsells.products > h2,
.cross-sells > h2,
.recently-viewed-products > h2 {
    font-size: 28px;
    font-size: 1.75rem;
    font-weight: 400;
    text-align: center;
    margin: 0;
    padding-bottom: 40px;
}

/* Leveät puhelimet (Samsung Fold ym.) – 3 saraketta tuotteille */
@media (min-width: 500px) and (max-width: 767px) {
    ul.products.mobile-col-2 li.product {
        width: 33.33% !important;
    }
    .swiper-container .swiper-slide,
    .ecomus-testimonial-carousel-2__item.swiper-slide,
    .ecomus-image-box-carousel__item.swiper-slide,
    .ecomus-posts-carousel__item.swiper-slide {
        width: 33.33% !important;
        flex-shrink: 0;
    }
}

/* Gallerian thumbnailit - tuote näkyy kokonaan */
.single-product div.product .ecomus-product-gallery-thumbnails .swiper-slide img {
    object-fit: contain;
}

/* Gallerian pääkuva - max-korkeus */
.woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image,
.woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image img {
    max-height: 780px;
}
.woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image img {
    width: auto;
    height: auto;
    object-fit: contain;
}

/* Gallerian pääkuva - max-korkeus (Swiper) */
.woocommerce-product-gallery__image.swiper-slide,
.woocommerce-product-gallery__image.swiper-slide img,
.woocommerce-product-gallery .swiper-slide img {
    max-height: 780px !important;
    object-fit: contain !important;
}
.woocommerce-product-gallery .swiper-wrapper {
    max-height: 780px;
    align-items: center;
}

/* Thumbnailit - varmista klikattavuus */
.ecomus-product-gallery-thumbnails .woocommerce-product-gallery__image {
    cursor: pointer;
    pointer-events: auto !important;
}
.ecomus-product-gallery-thumbnails .woocommerce-product-gallery__image a {
    pointer-events: auto !important;
}

/* Piilota "Customers also bought" mini-cartista */
.mini-cart-panel .cross-sells,
.mini-cart-content .cross-sells,
.woocommerce-mini-cart .cross-sells,
.cart-panel .cross-sells {
    display: none !important;
}

/* Piilota tuotekortilta Toimitus & Palautus ja Jaa painikkeet */
.product-delivery-return,
.product-share,
.single-product .delivery-return,
.single-product .product-sharing,
.single-product .share-button,
.woocommerce-product-details .delivery-return,
.woocommerce-product-details .share {
    display: none !important;
}

/* Piilota Alikategoriat-osio tuotekategoriasivuilta */
.product-subcategories {
    display: none !important;
}

/* Piilota Ecomus-teeman "Lataa lisää" painike (käytetään FiboFiltersin painiketta) */
.ecomus-load-more-wrapper {
    display: none !important;
}

/* Tuotekorttien kuvat pystysuuntaisiksi (ei neliöiksi) */
ul.products li.product .product-thumbnail {
    min-height: 320px !important;
}

/* ===== FiboFilters – tyylikäs horisontaalinen suodatinpalkki ===== */

/* Pääkontaineri */
.fibofilters-horizontal-filters-container {
    zoom: 1;
    margin-bottom: 16px !important;
}

.fibofilters-horizontal-filters-container .fibofilters-horizontal-filters {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
    border: 1px solid #D1D5DE !important;
    border-radius: 8px !important;
    background: #fff !important;
    padding: 0 !important;
    padding-bottom: 0 !important;
    overflow: visible !important;
}

/* Yksittäiset suodatinnapit – yliaja FiboFiltersin box-shadow-border */
.fibofilters-horizontal-filters-container .fibofilters-filter-button {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 16px 20px !important;
    background-color: transparent !important;
    border: none !important;
    border-right: 1px solid #D1D5DE !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #1E1E1E !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    transition: background 0.15s ease, color 0.15s ease !important;
    line-height: 1.4 !important;
}

.fibofilters-horizontal-filters-container .fibofilters-filter-button:before {
    display: none !important;
}

.fibofilters-horizontal-filters-container .fibofilters-filter-button:focus {
    outline: none !important;
    box-shadow: none !important;
}

.fibofilters-horizontal-filters-container .fibofilters-filter-button:last-child {
    border-right: none !important;
}

.fibofilters-horizontal-filters-container .fibofilters-filter-button:hover {
    background-color: #f5f5f5 !important;
    color: #152850 !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

.fibofilters-horizontal-filters-container .fibofilters-filter-button.fibofilters-filter-button-selected,
.fibofilters-horizontal-filters-container .fibofilters-filter-button.fibofilters-filter-button-selected:hover {
    background-color: #D4E6F2 !important;
    color: #152850 !important;
    font-weight: 600 !important;
    box-shadow: none !important;
}

/* Chevron-ikoni napissa */
.fibofilters-horizontal-filters-container .fibofilters-filter-button-icon {
    width: 10px !important;
    height: 10px !important;
    opacity: 0.5;
    transition: transform 0.2s ease, opacity 0.15s ease;
}

.fibofilters-horizontal-filters-container .fibofilters-filter-button:hover .fibofilters-filter-button-icon {
    opacity: 0.8;
}

.fibofilters-horizontal-filters-container .fibofilters-filter-button.fibofilters-filter-button-selected .fibofilters-filter-button-icon {
    transform: rotate(180deg);
    opacity: 0.8;
}

/* Popover/dropdown paneeli */
.fibofilters-popover {
    border: 1px solid #D1D5DE !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
    background: #fff !important;
    overflow: hidden;
}

/* Suodatinlohko popoverin sisällä */
.fibofilters-block {
    padding: 0;
}

.fibofilters-block__headline {
    display: none; /* Otsikko piiloon popoverissa, nappi näyttää jo nimen */
}

.fibofilters-block__content {
    padding: 8px 0;
}

.fibofilters-block__content-inner {
    padding: 0 4px;
}

/* Filteröintilistan itemit */
.fibofilters-block__items-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.fibofilters-item {
    margin: 0;
    padding: 0;
}

.fibofilters-item__interactive {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    cursor: pointer;
    border-radius: 4px;
    transition: background 0.12s ease;
}

.fibofilters-item__interactive:hover {
    background: #f5f5f5;
}

.fibofilters-item__label {
    font-size: 14px;
    color: #1E1E1E;
    line-height: 1.4;
}

.fibofilters-selected .fibofilters-item__label {
    font-weight: 600;
    color: #152850;
}

.fibofilters-item__counter {
    font-size: 12px;
    color: #908D94;
    margin-left: auto;
}

/* Checkbox-kontrolli */
.fibofilters-item__control {
    width: 16px;
    height: 16px;
    border: 1.5px solid #C5C3C8;
    border-radius: 3px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.fibofilters-selected .fibofilters-item__control {
    border-color: #152850;
    background: #152850;
}

.fibofilters-selected .fibofilters-item__control svg {
    color: #fff;
}

/* Väripallukat – neliötyyli kuten tuotekorteissa */
.fibofilters-item--color {
    border-radius: 4px !important;
    box-shadow: none !important;
    padding: 0 !important;
    transform: none !important;
}

.fibofilters-item--color:hover {
    transform: none !important;
}

.fibofilters-item--color.fibofilters-selected {
    transform: none !important;
}

.fibofilters-item--color .fibofilters-item__color {
    width: 30px !important;
    height: 30px !important;
    border-radius: 4px !important;
    border: 1px solid #C5C3C8 !important;
    box-shadow: none !important;
    padding: 0 !important;
    transition: border-color 0.15s ease !important;
}

.fibofilters-item--color .fibofilters-item__color-inner {
    border-radius: 3px !important;
    width: 100% !important;
    height: 100% !important;
}

.fibofilters-item--color.fibofilters-selected .fibofilters-item__color {
    border-color: #56A1CF !important;
    border-width: 2px !important;
}

/* Aktiiviset suodattimet (chipsi-rivi) */
.fibofilters-applied-filters-container {
    margin-top: 2px !important;
    margin-bottom: 8px !important;
}

.fibofilters-applied-filters {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    align-items: center !important;
}

.fibofilters-applied-filters .fibofilters-applied-filter {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px 14px !important;
    border: none !important;
    border-radius: 6px !important;
    box-shadow: inset 0 0 0 1.5px #56A1CF !important;
    background: #fff !important;
    background-color: #fff !important;
    font-size: 14px !important;
    color: #1E1E1E !important;
    cursor: pointer !important;
    transition: box-shadow 0.15s ease !important;
}

.fibofilters-applied-filters .fibofilters-applied-filter:hover {
    box-shadow: inset 0 0 0 2px #56A1CF !important;
    background: #fff !important;
    background-color: #fff !important;
    color: #1E1E1E !important;
}

/* "Tyhjennä suodatin" – pelkkä teksti ilman kehystä */
.fibofilters-applied-filters .fibofilters-applied-filter--clear-all,
.fibofilters-applied-filters .fibofilters-applied-filter--clear-all:hover {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 8px 0 !important;
    color: #908D94 !important;
    font-weight: 400 !important;
    font-size: 14px !important;
}

.fibofilters-applied-filters .fibofilters-applied-filter--clear-all:hover {
    color: #54515A !important;
    box-shadow: none !important;
}

/* X-ikoni suodattimessa */
.fibofilters-applied-filter-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin-left: 4px !important;
    cursor: pointer !important;
    color: #1E1E1E !important;
}

.fibofilters-applied-filter-icon:before,
.fibofilters-applied-filter-icon:after {
    display: none !important;
    content: none !important;
}

.fibofilters-applied-filter-icon svg {
    width: 14px !important;
    height: 14px !important;
    opacity: 0.8 !important;
    position: relative !important;
    z-index: 1 !important;
}

.fibofilters-applied-filter:hover .fibofilters-applied-filter-icon svg {
    opacity: 1 !important;
}

/* Haku filteröintipaneelissa */
.fibofilters-items-search {
    padding: 4px 8px 8px;
}

.fibofilters-items-search input[type="search"] {
    width: 100%;
    padding: 6px 10px;
    border: 1px solid #C5C3C8;
    border-radius: 6px;
    font-size: 13px;
    outline: none;
    transition: border-color 0.15s ease;
}

.fibofilters-items-search input[type="search"]:focus {
    border-color: #152850;
}

/* Hintaslaideri */
.fibofilters-range__track {
    height: 4px;
    border-radius: 2px;
}

.fibofilters-range__segment--active {
    background: #152850 !important;
}

.fibofilters-range__handle {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid #152850 !important;
    background: #fff !important;
    cursor: grab;
}

/* Mobiilioptimointi */
@media (max-width: 768px) {
    .fibofilters-horizontal-filters {
        flex-wrap: wrap;
        border-radius: 6px;
    }

    .fibofilters-filter-button {
        padding: 8px 12px;
        font-size: 13px;
    }
}

/* Lajittelu-dropdown FiboFilters-palkissa */
.pp-orderby {
    margin-left: auto;
    position: relative;
    flex-shrink: 0;
}

.pp-orderby__btn,
.pp-orderby__btn:focus {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 16px 20px !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    border-left: 1px solid #D1D5DE !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #1E1E1E !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    line-height: 1.4 !important;
    transition: background 0.15s ease !important;
    outline: none !important;
}

.pp-orderby__btn:hover {
    background: #f5f5f5 !important;
    background-color: #f5f5f5 !important;
    color: #1E1E1E !important;
}

.pp-orderby__chevron {
    transition: transform 0.2s ease;
}

.pp-orderby--open .pp-orderby__chevron {
    transform: rotate(180deg);
}

.pp-orderby__dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 200px;
    background: #fff;
    border: 1px solid #D1D5DE;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    z-index: 100;
    padding: 6px 0;
}

.pp-orderby--open .pp-orderby__dropdown {
    display: block;
}

.pp-orderby__option {
    display: block !important;
    width: 100% !important;
    padding: 10px 20px !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-align: left !important;
    font-size: 14px !important;
    color: #1E1E1E !important;
    cursor: pointer !important;
    transition: background 0.12s ease !important;
}

.pp-orderby__option:hover {
    background: #f5f5f5 !important;
    background-color: #f5f5f5 !important;
    color: #1E1E1E !important;
}

.pp-orderby__option--active,
.pp-orderby__option--active:hover {
    font-weight: 600 !important;
    color: #152850 !important;
}

/* Ostoskorisivun korjaukset */
.woocommerce-cart-form .product-thumbnail {
    width: 80px !important;
    min-width: 80px !important;
    max-width: 80px !important;
    padding: 5px !important;
    background: #f8f8f8 !important;
}

.woocommerce-cart-form .product-thumbnail img {
    width: 70px !important;
    height: auto !important;
    max-width: 70px !important;
    object-fit: contain !important;
}

.woocommerce-cart-form table.shop_table td {
    vertical-align: middle !important;
}

/* Ostoskori mobiilissa */
@media (max-width: 768px) {
    .woocommerce-cart-form .product-thumbnail {
        width: 60px !important;
        min-width: 60px !important;
        max-width: 60px !important;
        padding: 4px !important;
    }

    .woocommerce-cart-form .product-thumbnail img {
        width: 52px !important;
        max-width: 52px !important;
    }

    .woocommerce-cart-form table.shop_table td.product-name {
        max-width: 150px !important;
    }

    .woocommerce-cart-form table.shop_table {
        font-size: 13px !important;
    }
}

/* Piilota "Customers also bought" -osio ostoskori off-canvas menussa */
.ecomus-mini-products-recommended {
    display: none !important;
}

/* Piilota "Delivery & Return" -linkki tuotekortilla */
.ecomus-extra-link-item--delivery-return {
    display: none !important;
}

/* Piilota "Share" -linkki tuotekortilla */
.ecomus-extra-link-item--share {
    display: none !important;
}

/* Piilota "Share" -osio artikkelisivulta */
.entry-meta__share {
    display: none !important;
}

/* Korjaa määrävalitsimien +/- ikonit */
.woocommerce .quantity .ecomus-qty-button,
.quantity .ecomus-qty-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #1E1E1E !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 2 !important;
}

.woocommerce .quantity .ecomus-qty-button svg,
.quantity .ecomus-qty-button svg {
    display: block !important;
    width: 12px !important;
    height: 12px !important;
    fill: #1E1E1E !important;
    color: #1E1E1E !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 3 !important;
}

.woocommerce .quantity .ecomus-qty-button svg path,
.quantity .ecomus-qty-button svg path {
    fill: #1E1E1E !important;
    stroke: none !important;
}

.woocommerce .quantity .ecomus-svg-icon--minus svg,
.quantity .ecomus-svg-icon--minus svg {
    height: 12px !important;
}

/* Varmista että ::before ei peitä ikonia */
.woocommerce .quantity .ecomus-qty-button::before,
.quantity .ecomus-qty-button::before {
    z-index: 1 !important;
}

/* Korjaa kategorialinkkien klikkaus Swiper-karusellissa */
.catalog-top-categories__wrapper {
    touch-action: pan-y !important;
    overflow: visible !important;
}

.catalog-top-categories__wrapper .swiper {
    overflow: visible !important;
}

.catalog-top-categories__item a {
    pointer-events: auto !important;
    cursor: pointer !important;
}

.catalog-top-categories__inner {
    -webkit-user-drag: none !important;
    user-select: auto !important;
}
