/*
Theme Name: E-KLIIMA City Inspired
Theme URI: https://www.e-kliima.ee/
Author: BalticMaster
Description: City-style premium WooCommerce theme for E-KLIIMA.EE.
Version: 3.1.1
Requires PHP: 7.4
Text Domain: ekliima
*/

:root{
  --blue:#0b8ed8;--blue-dark:#006eb6;--blue-soft:#eaf7fd;
  --green:#65b741;--green-dark:#469d28;
  --text:#17324a;--heading:#102d45;--muted:#6c7f8d;
  --light:#f4f9fc;--line:#e2edf3;--white:#fff;
  --shadow:0 12px 34px rgba(19,74,110,.09);
  --shadow-hover:0 20px 48px rgba(19,74,110,.16);
}
*{box-sizing:border-box}
body{margin:0;color:var(--text);background:#fff;font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--blue)}
img{max-width:100%;height:auto}.ek-container{width:min(1280px,calc(100% - 42px));margin-inline:auto}
.ek-topbar{background:#fff;color:#527083;border-bottom:1px solid var(--line);font-size:14px;padding:9px 0}
.ek-topbar-inner{display:flex;justify-content:space-between;align-items:center;gap:24px}.ek-topbar-inner>div:first-child{color:var(--blue-dark);font-weight:800}.ek-topbar-inner>div:first-child:before{content:"☎";margin-right:8px;color:var(--green)}
.ek-site-header{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}
.ek-header-inner{min-height:86px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:36px}
.ek-logo{display:inline-flex;align-items:center;gap:13px;color:var(--heading);font-size:25px;line-height:1;font-weight:950;letter-spacing:.01em;text-decoration:none;white-space:nowrap}
.ek-logo-mark{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:#fff;font-weight:950;background:linear-gradient(135deg,var(--blue),#2fc4ee);box-shadow:0 14px 28px rgba(11,142,216,.22)}
.ek-main-nav{display:flex;justify-content:flex-end;align-items:center;gap:22px}.ek-main-nav ul{display:flex;align-items:center;gap:26px;margin:0;padding:0;list-style:none}
.ek-main-nav a{color:var(--heading);font-size:15px;font-weight:820;text-decoration:none}.ek-main-nav a:hover{color:var(--blue)}
.ek-header-cta,.ek-btn{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:14px 23px;border-radius:999px;font-weight:900;text-decoration:none;border:1px solid transparent;line-height:1.1;transition:.18s ease}
.ek-header-cta,.ek-btn-primary{color:#fff;background:var(--green);box-shadow:0 12px 26px rgba(101,183,65,.26)}.ek-header-cta:hover,.ek-btn-primary:hover{transform:translateY(-2px);background:var(--green-dark);color:#fff}
.ek-btn-secondary{color:var(--blue-dark);background:#fff;border-color:#cfe6f2;box-shadow:0 10px 26px rgba(19,74,110,.08)}.ek-btn-secondary:hover{transform:translateY(-2px);background:var(--blue-soft)}
.ek-mobile-toggle{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--heading);font-size:24px}
.ek-product-nav{background:#fff;border-bottom:1px solid var(--line)}.ek-product-nav-inner{min-height:66px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.ek-product-nav a{display:flex;align-items:center;justify-content:center;gap:9px;min-height:66px;padding:10px;color:var(--heading);font-weight:850;font-size:14px;text-align:center;text-decoration:none;border-left:1px solid var(--line)}
.ek-product-nav a:last-child{border-right:1px solid var(--line)}.ek-product-nav a:hover{background:var(--blue-soft);color:var(--blue-dark)}
.ek-hero{position:relative;margin:0 auto;min-height:610px;padding:76px 0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.94) 45%,rgba(234,247,253,.70) 100%),radial-gradient(circle at 78% 32%,rgba(11,142,216,.18),transparent 30%);overflow:hidden}
.ek-hero:after{content:"";position:absolute;right:0;top:0;bottom:0;width:50%;background:radial-gradient(circle at 70% 50%,rgba(11,142,216,.16),transparent 44%),linear-gradient(135deg,#e9f7fd,#fff);clip-path:polygon(22% 0,100% 0,100% 100%,0 100%);z-index:0}
.ek-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.75fr);gap:60px;align-items:center}
.ek-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border-radius:999px;background:var(--blue-soft);color:var(--blue-dark);font-size:13px;font-weight:900}
.ek-hero h1{max-width:790px;margin:22px 0 20px;color:var(--heading);font-size:clamp(46px,5.4vw,78px);line-height:.98;letter-spacing:-.06em;text-wrap:balance}
.ek-hero p{max-width:690px;margin:0 0 32px;color:#607b8e;font-size:19px;line-height:1.72}.ek-hero-actions{display:flex;gap:15px;flex-wrap:wrap}
.ek-hero-proof{display:flex;flex-wrap:wrap;gap:18px;margin-top:34px}.ek-hero-proof-item{display:flex;align-items:center;gap:10px;color:#5c7283;font-weight:780;font-size:14px}
.ek-hero-proof-item:before{content:"✓";width:24px;height:24px;border-radius:999px;display:grid;place-items:center;background:var(--green);color:#fff;font-size:13px;font-weight:950}
.ek-hero-visual{position:relative;min-height:440px;display:grid;place-items:center}.ek-unit-card{position:relative;width:500px;max-width:100%;background:#fff;border:1px solid var(--line);border-radius:30px;padding:32px;box-shadow:0 30px 70px rgba(19,74,110,.16)}
.ek-unit-card:before{content:"A+++";position:absolute;right:28px;top:28px;z-index:4;min-width:66px;height:42px;border-radius:999px;display:grid;place-items:center;color:#fff;background:var(--green);font-weight:950;box-shadow:0 12px 26px rgba(101,183,65,.26)}
.ek-ac-svg{width:100%;height:190px;display:block;filter:drop-shadow(0 18px 24px rgba(19,74,110,.13))}
.ek-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}.ek-mini-stat{min-height:78px;padding:14px;border-radius:18px;background:var(--light);color:var(--muted);font-size:12px;border:1px solid var(--line)}
.ek-mini-stat b{display:block;margin-top:4px;color:var(--heading);font-size:17px;line-height:1.15}
.ek-section{margin-block:70px}.ek-section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:28px}
.ek-section h2,.ek-page-title{margin:0;color:var(--heading);font-size:clamp(38px,4.2vw,58px);line-height:1.04;letter-spacing:-.055em;text-wrap:balance}.ek-section-head p,.ek-page-intro{margin:10px 0 0;color:var(--muted);font-size:17px;max-width:720px}
.ek-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.ek-cat-card{position:relative;min-height:310px;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;color:#fff;text-decoration:none;border-radius:28px;overflow:hidden;background:linear-gradient(135deg,#0b8ed8,#0f4f83);box-shadow:var(--shadow);transition:.2s ease}
.ek-cat-card:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,45,69,.05),rgba(16,45,69,.78)),radial-gradient(circle at 72% 20%,rgba(255,255,255,.28),transparent 28%);z-index:1}
.ek-cat-card:after{content:"";position:absolute;right:-30px;top:26px;width:220px;height:140px;border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(239,248,252,.9));box-shadow:0 26px 48px rgba(0,0,0,.16);transform:rotate(-8deg)}
.ek-cat-card:hover{transform:translateY(-7px);box-shadow:var(--shadow-hover)}.ek-cat-icon{position:absolute;right:42px;top:50px;z-index:2;width:84px;height:84px;display:grid;place-items:center;border-radius:24px;background:rgba(255,255,255,.16);color:#fff;font-size:36px;backdrop-filter:blur(8px)}
.ek-cat-card b{position:relative;z-index:2;max-width:260px;margin:0 0 10px;color:#fff;font-size:26px;line-height:1.04;letter-spacing:-.04em}.ek-cat-text{position:relative;z-index:2;max-width:290px;color:rgba(255,255,255,.88);font-size:14px}.ek-cat-link{position:relative;z-index:2;width:fit-content;margin-top:18px;padding:9px 13px;border-radius:999px;background:#fff;color:var(--blue-dark);font-weight:900;font-size:13px}
.ek-trust-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.ek-trust-item{min-height:170px;padding:28px;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.ek-trust-item b{display:block;margin-bottom:10px;color:var(--heading);font-size:21px;line-height:1.15;letter-spacing:-.035em}.ek-trust-item span{color:var(--muted);font-size:15px;line-height:1.62}
.ek-service-band{background:var(--light);border-block:1px solid var(--line);padding:72px 0;margin-block:70px}.ek-service-card{display:grid;grid-template-columns:1fr .75fr;gap:46px;align-items:center}
.ek-service-card h2{margin:0 0 18px;color:var(--heading);font-size:clamp(36px,4vw,54px);line-height:1.04;letter-spacing:-.055em}.ek-service-card p{color:var(--muted);font-size:17px;line-height:1.72}.ek-service-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.ek-service-stat{min-height:150px;padding:24px;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.ek-service-stat strong{display:block;color:var(--green);font-size:38px;line-height:1;letter-spacing:-.05em}.ek-service-stat span{display:block;margin-top:8px;color:var(--muted)}
.ek-footer-cta{margin-block:70px;min-height:260px;border-radius:32px;padding:46px;background:linear-gradient(90deg,rgba(16,45,69,.92),rgba(11,142,216,.78)),radial-gradient(circle at 88% 12%,rgba(255,255,255,.25),transparent 30%);color:#fff;display:flex;justify-content:space-between;gap:34px;align-items:center;box-shadow:var(--shadow-hover);overflow:hidden}.ek-footer-cta h2{margin:0 0 12px;font-size:clamp(34px,4vw,52px);line-height:1.04;letter-spacing:-.055em}.ek-footer-cta p{margin:0;max-width:680px;color:rgba(255,255,255,.86);font-size:17px}.ek-footer-cta .ek-btn{background:#fff;color:var(--blue-dark);white-space:nowrap;box-shadow:0 16px 34px rgba(0,0,0,.14)}
.ek-site-footer{background:#102d45;color:#dff5ff;padding:54px 0 28px}.ek-footer-grid{display:grid;grid-template-columns:1.45fr repeat(3,1fr);gap:38px}.ek-site-footer h3{margin:0 0 14px;color:#fff;font-size:17px}.ek-site-footer p,.ek-site-footer a{color:rgba(224,247,255,.82);font-size:14px;text-decoration:none}.ek-site-footer a:hover{color:#fff}.ek-footer-bottom{margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);color:rgba(224,247,255,.68);font-size:13px}
.ek-page-header{padding:58px 0 34px;background:var(--light);border-bottom:1px solid var(--line)}.ek-archive-shell{margin-block:46px 70px}.ek-archive-layout{display:grid;grid-template-columns:280px 1fr;gap:32px;align-items:start}.ek-shop-sidebar{position:sticky;top:118px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.ek-shop-sidebar h3{margin:0 0 16px;color:var(--heading);font-size:22px;letter-spacing:-.035em}
.ek-filter-note{color:var(--muted);font-size:14px}.ek-filter-list{margin:18px 0 0;padding:18px 0 0;border-top:1px solid var(--line);list-style:none}.ek-filter-list li{margin:10px 0}.ek-filter-list a{color:var(--muted);text-decoration:none;font-weight:780}.ek-filter-list a:hover{color:var(--blue)}
.woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering{margin-bottom:24px}.woocommerce .woocommerce-result-count{color:var(--muted)}.woocommerce .woocommerce-ordering select{min-height:46px;border:1px solid var(--line);border-radius:14px;padding:0 16px;background:#fff;color:var(--muted);font-weight:800}
.woocommerce ul.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:0;padding:0}.woocommerce ul.products:before,.woocommerce ul.products:after{display:none!important}.woocommerce ul.products li.product{width:auto!important;float:none!important;margin:0!important;list-style:none}
.ek-product-card{height:100%;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;transition:.2s ease}.ek-product-card:hover{transform:translateY(-6px);border-color:#c9e4f2;box-shadow:var(--shadow-hover)}
.ek-product-media{position:relative;min-height:250px;padding:26px;display:grid;place-items:center;background:#fff;text-decoration:none;border-bottom:1px solid var(--line)}.ek-product-media:after{content:"";position:absolute;left:38px;right:38px;bottom:28px;height:28px;background:radial-gradient(ellipse,rgba(19,74,110,.13),transparent 70%);filter:blur(7px)}
.ek-product-media img{position:relative;z-index:2;width:100%;max-width:310px;height:190px;object-fit:contain;filter:drop-shadow(0 18px 22px rgba(19,74,110,.13));transition:.2s ease}.ek-product-card:hover .ek-product-media img{transform:translateY(-4px) scale(1.04)}
.ek-badge-row{position:absolute;z-index:4;top:16px;left:16px;right:16px;display:flex;gap:8px;flex-wrap:wrap}.ek-badge{min-height:30px;display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;color:#fff;font-size:12px;font-weight:900}.ek-badge-green{background:var(--green)}.ek-badge-orange{background:#f2a431}.ek-badge-blue{background:var(--blue)}.ek-badge-muted{background:#8da0ad}
.ek-product-body{padding:22px;display:flex;flex-direction:column;gap:13px;flex:1}.ek-product-brand{width:fit-content;color:var(--blue-dark);font-size:12px;font-weight:950;letter-spacing:.07em;text-transform:uppercase}.ek-product-title{min-height:52px;margin:0;color:var(--heading);font-size:21px;line-height:1.2;letter-spacing:-.035em}.ek-product-title a{color:var(--heading);text-decoration:none}.ek-product-title a:hover{color:var(--blue)}.ek-product-desc{min-height:48px;margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.ek-product-specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ek-product-spec{min-height:62px;padding:11px;border-radius:14px;background:var(--light);border:1px solid var(--line);color:var(--muted);font-size:12px}.ek-product-spec span{display:block;margin-bottom:3px}.ek-product-spec b{display:block;color:var(--heading);font-size:14px;font-weight:900;line-height:1.22}
.ek-product-price{margin-top:auto;padding-top:15px;border-top:1px solid var(--line)}.ek-price-net{color:var(--heading);font-size:28px;line-height:1.05;font-weight:950;letter-spacing:-.04em}.ek-price-net .amount{color:var(--heading)}.ek-price-gross{margin-top:4px;color:var(--muted);font-size:13px}.ek-vat-label{color:var(--muted);font-size:13px;font-weight:800}.ek-price-request{color:var(--heading);font-size:21px;font-weight:950}
.ek-product-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.ek-card-btn{min-height:46px;border-radius:999px;display:grid;place-items:center;padding:11px 14px;font-size:14px;font-weight:900;text-decoration:none!important;text-align:center}.ek-card-btn-secondary{background:var(--blue-soft);color:var(--blue-dark)}.ek-card-btn-primary{background:var(--green);color:#fff;box-shadow:0 12px 24px rgba(101,183,65,.22)}.ek-card-btn-primary:hover{background:var(--green-dark);color:#fff}
.ek-single-product-shell{margin-block:46px 70px}.ek-single-product-card{padding:32px;background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow)}.ek-single-product-card .summary .price{color:var(--heading);font-size:32px;font-weight:950}
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{border-radius:999px;background:var(--green);color:#fff;font-weight:900;border:0}.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{background:var(--green-dark);color:#fff}
@media(max-width:1120px){.ek-header-inner{grid-template-columns:auto auto}.ek-main-nav{display:none;position:absolute;left:21px;right:21px;top:96px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-hover)}.ek-main-nav.is-open,.ek-main-nav.is-open ul{display:flex;flex-direction:column;align-items:stretch}.ek-main-nav ul{gap:12px}.ek-header-cta{width:100%}.ek-mobile-toggle{display:inline-grid;place-items:center;justify-self:end}.ek-product-nav{display:none}.ek-hero-inner,.ek-service-card,.ek-archive-layout{grid-template-columns:1fr}.ek-hero:after{display:none}.ek-category-grid,.ek-trust-grid,.woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}.ek-shop-sidebar{position:static}}
@media(max-width:680px){.ek-container{width:min(100% - 24px,1280px)}.ek-topbar-inner{flex-direction:column;align-items:flex-start;gap:4px}.ek-logo{font-size:20px}.ek-logo-mark{width:40px;height:40px}.ek-hero{padding:44px 0;min-height:auto}.ek-hero h1{font-size:42px}.ek-hero p{font-size:16px}.ek-category-grid,.ek-trust-grid,.woocommerce ul.products,.ek-mini-stats,.ek-service-stats{grid-template-columns:1fr}.ek-cat-card{min-height:260px}.ek-section{margin-block:46px}.ek-section-head,.ek-footer-cta{flex-direction:column;align-items:flex-start}.ek-footer-cta{padding:30px}.ek-footer-grid{grid-template-columns:1fr}.ek-product-actions{grid-template-columns:1fr}}


/* Custom logo sizing fallback */
.ek-logo .custom-logo,
.ek-logo img.custom-logo {
    display: block;
    width: var(--ek-logo-width, 190px) !important;
    max-width: var(--ek-logo-width, 190px) !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain;
}


/* =========================================================
   v3.1.2 WooCommerce emergency product-card guard
   If WooCommerce default content-product.php is used or a plugin
   overwrites the template, product titles must not become skyscrapers.
   ========================================================= */

.woocommerce ul.products li.product {
    background: #fff !important;
    border: 1px solid var(--line) !important;
    border-radius: var(--ek-card-radius, 24px) !important;
    box-shadow: var(--shadow) !important;
    overflow: hidden !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}

.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
    display: flex !important;
    flex-direction: column !important;
    text-decoration: none !important;
    color: inherit !important;
}

.woocommerce ul.products li.product a img {
    width: 100% !important;
    max-width: 310px !important;
    height: 190px !important;
    object-fit: contain !important;
    margin: 26px auto !important;
    display: block !important;
    filter: drop-shadow(0 18px 22px rgba(19,74,110,.13));
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2.woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
    margin: 0 !important;
    padding: 22px 22px 8px !important;
    color: var(--heading) !important;
    font-family: var(--ek-heading-font, Inter, Arial, sans-serif) !important;
    font-size: var(--ek-product-title-size, 21px) !important;
    line-height: 1.2 !important;
    letter-spacing: -.035em !important;
    font-weight: 950 !important;
    min-height: 0 !important;
    max-height: calc(var(--ek-product-title-size, 21px) * 1.2 * var(--ek-product-title-lines, 3)) !important;
    display: -webkit-box !important;
    -webkit-line-clamp: var(--ek-product-title-lines, 3) !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}

.woocommerce ul.products li.product .price {
    display: block !important;
    padding: 10px 22px 16px !important;
    color: var(--heading) !important;
    font-size: 22px !important;
    font-weight: 950 !important;
}

.woocommerce ul.products li.product .button {
    width: calc(100% - 44px) !important;
    margin: auto 22px 22px !important;
    min-height: 46px !important;
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    border-radius: var(--ek-button-radius, 999px) !important;
    background: var(--green) !important;
    color: #fff !important;
    font-weight: 900 !important;
    text-align: center !important;
}

.woocommerce ul.products li.product .button:hover {
    background: var(--green-dark) !important;
    color: #fff !important;
}

/* Custom E-KLIIMA card title guard */
.ek-product-title {
    max-height: calc(var(--ek-product-title-size, 21px) * 1.2 * var(--ek-product-title-lines, 3)) !important;
    display: -webkit-box !important;
    -webkit-line-clamp: var(--ek-product-title-lines, 3) !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}

@media (max-width: 680px) {
    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .woocommerce ul.products li.product h2.woocommerce-loop-product__title {
        font-size: min(var(--ek-product-title-size, 21px), 22px) !important;
    }
}


/* =========================================================
   v3.1.3 Product card proportions fix
   Bigger product images, smaller product titles.
   ========================================================= */

/* Custom E-KLIIMA product card */
.ek-product-media {
    min-height: var(--ek-product-image-height, 300px) !important;
    padding: 22px 26px !important;
}

.ek-product-media img,
.ek-product-media .attachment-woocommerce_thumbnail,
.ek-product-media .woocommerce-placeholder {
    width: 100% !important;
    max-width: 380px !important;
    height: 230px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
}

.ek-product-title,
.ek-product-title a {
    font-size: min(var(--ek-product-title-size, 22px), 26px) !important;
    line-height: 1.16 !important;
    letter-spacing: -.035em !important;
    font-weight: 950 !important;
}

.ek-product-title {
    min-height: calc(min(var(--ek-product-title-size, 22px), 26px) * 1.16 * 2) !important;
    max-height: calc(min(var(--ek-product-title-size, 22px), 26px) * 1.16 * var(--ek-product-title-lines, 3)) !important;
}

/* Standard WooCommerce fallback card */
.woocommerce ul.products li.product a img {
    width: 100% !important;
    max-width: 380px !important;
    height: 230px !important;
    object-fit: contain !important;
    margin: 22px auto 18px !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2.woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
    font-size: min(var(--ek-product-title-size, 22px), 26px) !important;
    line-height: 1.16 !important;
    letter-spacing: -.035em !important;
    font-weight: 950 !important;
    min-height: calc(min(var(--ek-product-title-size, 22px), 26px) * 1.16 * 2) !important;
    max-height: calc(min(var(--ek-product-title-size, 22px), 26px) * 1.16 * var(--ek-product-title-lines, 3)) !important;
    padding: 20px 22px 8px !important;
}

/* Make card content less oversized */
.ek-product-desc {
    font-size: 14px !important;
    line-height: 1.5 !important;
}

.ek-product-spec {
    min-height: 58px !important;
}

.ek-product-spec b {
    font-size: 14px !important;
}

.ek-price-net {
    font-size: 26px !important;
}

/* Better default proportion: image zone separated, title zone sane */
.ek-product-card {
    border-radius: var(--ek-card-radius, 24px) !important;
}

@media (max-width: 680px) {
    .ek-product-media img,
    .woocommerce ul.products li.product a img {
        max-width: 330px !important;
        height: 210px !important;
    }

    .ek-product-title,
    .ek-product-title a,
    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .woocommerce ul.products li.product h2.woocommerce-loop-product__title {
        font-size: min(var(--ek-product-title-size, 22px), 24px) !important;
    }
}


/* =========================================================
   v3.1.4 Header search, CTA removed from header
   ========================================================= */

.ek-header-search {
    width: min(320px, 28vw);
    min-width: 220px;
    height: 48px;
    display: grid;
    grid-template-columns: 1fr 48px;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(19,74,110,.07);
    overflow: hidden;
}

.ek-header-search input[type="search"] {
    width: 100%;
    height: 100%;
    border: 0;
    outline: 0;
    padding: 0 0 0 18px;
    background: transparent;
    color: var(--heading);
    font-family: var(--ek-body-font, Inter, Arial, sans-serif);
    font-size: 14px;
    font-weight: 750;
}

.ek-header-search input[type="search"]::placeholder {
    color: var(--muted);
    opacity: .9;
}

.ek-header-search button {
    width: 48px;
    height: 48px;
    border: 0;
    border-left: 1px solid var(--line);
    background: var(--blue-soft);
    color: var(--blue-dark);
    cursor: pointer;
    font-size: 16px;
    display: grid;
    place-items: center;
    transition: background .18s ease, color .18s ease;
}

.ek-header-search button:hover {
    background: var(--blue);
    color: #fff;
}

/* Since header CTA is removed, navigation gets breathing room */
.ek-main-nav {
    gap: 18px;
}

@media (max-width: 1120px) {
    .ek-header-search {
        width: 100%;
        min-width: 0;
        margin-top: 6px;
    }

    .ek-header-search input[type="search"] {
        font-size: 16px;
    }
}

@media (max-width: 680px) {
    .ek-header-search {
        height: 46px;
        grid-template-columns: 1fr 46px;
    }

    .ek-header-search button {
        width: 46px;
        height: 46px;
    }
}


/* =========================================================
   v3.1.5 Header search placement + editable hero banner
   ========================================================= */

.ek-header-inner {
    grid-template-columns: auto minmax(260px, 420px) 1fr !important;
}

.ek-header-search {
    justify-self: start;
    width: 100%;
    max-width: 420px;
    min-width: 260px;
}

.ek-main-nav {
    justify-content: flex-end;
}

/* Hero image mode */
.ek-hero.has-custom-hero-image {
    background-color: #fff !important;
    background-size: cover !important;
    background-position: var(--ek-hero-bg-position, center center) !important;
    background-repeat: no-repeat !important;
}

.ek-hero.has-custom-hero-image::after {
    display: none !important;
}

.ek-hero.has-custom-hero-image .ek-hero-inner {
    min-height: inherit;
}

/* No dark overlay. Only light text shadow for readability, not dimming. */
.ek-hero.has-custom-hero-image h1,
.ek-hero.has-custom-hero-image p,
.ek-hero.has-custom-hero-image .ek-eyebrow,
.ek-hero.has-custom-hero-image .ek-hero-proof-item {
    text-shadow: 0 2px 12px rgba(255,255,255,.65);
}

.ek-hero.has-custom-hero-image .ek-eyebrow {
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(226,237,243,.9);
}

.ek-hero.has-custom-hero-image .ek-hero-proof-item {
    color: var(--ek-hero-muted-color, #607b8e);
}

.ek-hero.hero-device-hidden .ek-hero-inner {
    grid-template-columns: minmax(0, 760px);
}

.ek-hero.hero-device-hidden {
    min-height: var(--ek-hero-min-height, 610px);
    display: flex;
    align-items: center;
}

/* Mobile */
@media (max-width: 1120px) {
    .ek-header-inner {
        grid-template-columns: auto 1fr auto !important;
        gap: 18px;
    }

    .ek-header-search {
        justify-self: stretch;
        width: 100%;
        max-width: none;
        min-width: 0;
        margin-top: 0;
    }

    .ek-main-nav.is-open {
        top: 104px;
    }
}

@media (max-width: 760px) {
    .ek-header-inner {
        grid-template-columns: 1fr auto !important;
        min-height: auto;
        padding-block: 14px;
    }

    .ek-header-search {
        grid-column: 1 / -1;
        order: 3;
    }

    .ek-mobile-toggle {
        order: 2;
    }

    .ek-logo {
        order: 1;
    }

    .ek-main-nav.is-open {
        top: 142px;
    }
}


/* =========================================================
   v3.1.6 Technical catalogue product card
   Layout: image, category, centered title, technical table, price, buttons.
   No installment text.
   ========================================================= */

.woocommerce ul.products {
    align-items: stretch;
}

.ek-product-card-technical {
    border-radius: var(--ek-card-radius, 18px) !important;
    border: 1px solid var(--line) !important;
    box-shadow: 0 4px 18px rgba(16,45,69,.11) !important;
    background: #fff !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}

.ek-product-card-technical:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 34px rgba(16,45,69,.16) !important;
}

.ek-product-card-technical .ek-product-media {
    min-height: 300px !important;
    padding: 28px 22px 18px !important;
    background: #fff !important;
    border-bottom: 0 !important;
}

.ek-product-card-technical .ek-product-media::after {
    display: none !important;
}

.ek-product-card-technical .ek-product-media img,
.ek-product-card-technical .ek-product-media .attachment-woocommerce_thumbnail,
.ek-product-card-technical .ek-product-media .woocommerce-placeholder {
    width: 100% !important;
    max-width: 335px !important;
    height: 245px !important;
    object-fit: contain !important;
    margin: 0 auto !important;
    filter: none !important;
}

.ek-product-card-technical .ek-product-body {
    padding: 0 20px 24px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    flex: 1 !important;
}

.ek-product-card-technical .ek-product-category {
    margin: 0 0 4px !important;
    color: var(--ek-product-card-accent, #4b008c) !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    text-align: center !important;
    font-weight: 950 !important;
}

.ek-product-card-technical .ek-product-title {
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 0 22px !important;
    padding: 0 8px !important;
    text-align: center !important;
    display: block !important;
    overflow: visible !important;
}

.ek-product-card-technical .ek-product-title a {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    color: var(--ek-product-card-accent, #4b008c) !important;
    font-size: 22px !important;
    line-height: 1.12 !important;
    letter-spacing: -.02em !important;
    font-weight: 950 !important;
    text-decoration: none !important;
}

.ek-product-card-technical .ek-product-title a:hover {
    color: var(--ek-product-card-accent-hover, #8a007b) !important;
}

.ek-product-tech-table {
    margin: 0 0 24px !important;
    border-top: 1px dashed #d7dce2 !important;
    border-bottom: 1px dashed #d7dce2 !important;
}

.ek-tech-row {
    min-height: 38px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.25fr) minmax(88px, .75fr) !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 8px 0 !important;
    border-bottom: 1px dashed #d7dce2 !important;
}

.ek-tech-row:last-child {
    border-bottom: 0 !important;
}

.ek-tech-label {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    color: #6f757b !important;
    font-size: 13px !important;
    line-height: 1.12 !important;
    min-width: 0 !important;
}

.ek-tech-label small {
    font-size: 11px !important;
    color: #8a9198 !important;
}

.ek-tech-icon {
    width: 18px !important;
    min-width: 18px !important;
    display: inline-grid !important;
    place-items: center !important;
    color: #8b9299 !important;
    font-size: 15px !important;
    line-height: 1 !important;
}

.ek-tech-value {
    color: #424850 !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    text-align: right !important;
    font-weight: 850 !important;
    overflow-wrap: anywhere !important;
}

.ek-energy-pill {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 24px !important;
    padding: 4px 9px !important;
    border-radius: 999px !important;
    background: var(--green) !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 950 !important;
}

.ek-product-card-technical .ek-product-price {
    margin-top: auto !important;
    padding-top: 0 !important;
    border-top: 0 !important;
    text-align: center !important;
}

.ek-price-main {
    margin: 0 0 20px !important;
    color: var(--ek-product-card-accent, #4b008c) !important;
    font-size: 32px !important;
    line-height: 1 !important;
    letter-spacing: -.035em !important;
    font-weight: 950 !important;
}

.ek-price-main .amount {
    color: var(--ek-product-card-accent, #4b008c) !important;
}

.ek-product-card-technical .ek-product-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    margin-top: 0 !important;
}

.ek-product-card-technical .ek-card-btn {
    min-height: 45px !important;
    border-radius: 999px !important;
    padding: 10px 14px !important;
    font-size: 14px !important;
    font-weight: 950 !important;
    text-align: center !important;
    text-decoration: none !important;
}

.ek-product-card-technical .ek-card-btn-secondary {
    background: #fff !important;
    color: #5b5b5b !important;
    border: 2px solid #b9b9b9 !important;
    box-shadow: none !important;
}

.ek-product-card-technical .ek-card-btn-secondary:hover {
    border-color: var(--ek-product-card-accent, #4b008c) !important;
    color: var(--ek-product-card-accent, #4b008c) !important;
}

.ek-product-card-technical .ek-card-btn-primary {
    background: #fff !important;
    color: var(--ek-product-card-accent, #4b008c) !important;
    border: 2px solid var(--ek-product-card-accent, #4b008c) !important;
    box-shadow: none !important;
}

.ek-product-card-technical .ek-card-btn-primary:hover {
    background: var(--ek-product-card-accent, #4b008c) !important;
    color: #fff !important;
}

/* Hide old fallback fragments inside technical card */
.ek-product-card-technical .ek-product-desc,
.ek-product-card-technical .ek-product-specs,
.ek-product-card-technical .ek-price-net,
.ek-product-card-technical .ek-price-gross,
.ek-product-card-technical .ek-monthly-price {
    display: none !important;
}

@media (max-width: 680px) {
    .ek-product-card-technical .ek-product-media {
        min-height: 260px !important;
    }

    .ek-product-card-technical .ek-product-media img {
        height: 215px !important;
        max-width: 300px !important;
    }

    .ek-product-card-technical .ek-product-title a {
        font-size: 21px !important;
    }

    .ek-price-main {
        font-size: 30px !important;
    }
}


/* =========================================================
   v3.1.7 Editable catalogue card visibility
   ========================================================= */

.ek-product-card-technical.ek-card-no-image .ek-product-body {
    padding-top: 24px !important;
}

.ek-product-card-technical .ek-product-actions.ek-actions-count-1 {
    grid-template-columns: 1fr !important;
}

.ek-product-card-technical .ek-product-price:empty {
    display: none !important;
}



/* Better spacing if category or title are hidden */
.ek-product-card-technical .ek-product-body > .ek-product-tech-table:first-child {
    margin-top: 0 !important;
}

.ek-product-card-technical .ek-product-body > .ek-product-price:first-child {
    margin-top: auto !important;
}


/* =========================================================
   v3.1.8 Omaduste table fallback
   If selected fields are not found, real WooCommerce attributes are shown.
   ========================================================= */

.ek-product-tech-table-empty {
    opacity: .72;
}

.ek-product-tech-table-empty .ek-tech-value {
    color: #9aa3aa !important;
    font-weight: 750 !important;
}


/* =========================================================
   v3.1.9 Dual price in catalogue card: km-ta + km-ga
   ========================================================= */

.ek-price-dual {
    margin: 0 0 20px !important;
    display: grid !important;
    gap: 6px !important;
    text-align: center !important;
}

.ek-price-net-row,
.ek-price-gross-row {
    display: flex !important;
    justify-content: center !important;
    align-items: baseline !important;
    gap: 8px !important;
    line-height: 1.1 !important;
}

.ek-price-label {
    color: #7a838b !important;
    font-size: 13px !important;
    font-weight: 850 !important;
    text-transform: lowercase !important;
}

.ek-price-net-value {
    color: #575f68 !important;
    font-size: 21px !important;
    font-weight: 900 !important;
    letter-spacing: -.02em !important;
}

.ek-price-net-value .amount {
    color: #575f68 !important;
}

.ek-price-gross-value {
    color: var(--ek-product-card-accent, #4b008c) !important;
    font-size: 32px !important;
    font-weight: 950 !important;
    letter-spacing: -.035em !important;
}

.ek-price-gross-value .amount {
    color: var(--ek-product-card-accent, #4b008c) !important;
}

/* Old single price kept as fallback */
.ek-price-main {
    margin-bottom: 20px !important;
}

@media (max-width: 680px) {
    .ek-price-net-value {
        font-size: 20px !important;
    }

    .ek-price-gross-value {
        font-size: 30px !important;
    }
}
