/* Sahkoappi v0.2 – scoped styles, deliberately restrained; no theme or font overrides. */
.sahkoappi-widget{--sa-ink:#1d302a;--sa-muted:#64746e;--sa-line:#dfe7e2;--sa-pale:#f6f8f6;--sa-accent:#175e4e;--sa-accent-hover:#104b3d;font:inherit;font-size:15px;line-height:1.5;color:var(--sa-ink);margin:18px 0 36px;isolation:isolate}
.sahkoappi-widget *,.sahkoappi-widget *:before,.sahkoappi-widget *:after{box-sizing:border-box}
.sahkoappi-widget [hidden],.sa-company-grid [hidden]{display:none!important}
.sa-title{font-size:23px;font-weight:700;letter-spacing:-.02em;margin:0 0 20px}
.sa-filter-head{display:grid;grid-template-columns:minmax(140px,1.1fr) minmax(130px,.85fr) minmax(155px,1.1fr) auto;align-items:end;gap:12px;padding:17px;background:#fff;border:1px solid var(--sa-line);border-radius:10px}
.sa-quick-input{min-width:0}.sa-quick-input label{display:block;font-weight:650;font-size:12px;line-height:1.4;margin:0 0 6px;color:#44574f}
.sa-quick-input input,.sa-quick-input select{width:100%;height:43px;min-width:0;border:1px solid #c8d4cd;border-radius:6px;background:#fff!important;color:var(--sa-ink)!important;font:inherit!important;font-size:14px!important;box-shadow:none!important;padding:9px 11px!important;outline-offset:2px}
.sa-input-wrap{position:relative}.sa-input-wrap input{padding-right:65px!important}.sa-input-wrap span{position:absolute;right:11px;top:50%;transform:translateY(-50%);pointer-events:none;font-size:12px;color:var(--sa-muted)}
.sa-filter-btn{height:43px!important;border:1px solid var(--sa-accent)!important;border-radius:6px!important;color:#fff!important;background:var(--sa-accent)!important;font-size:14px!important;font-weight:650!important;padding:9px 21px!important;white-space:nowrap;cursor:pointer}
.sa-filter-btn:hover,.sa-primary:hover,.sa-cta:hover{background:var(--sa-accent-hover)!important;color:#fff!important}
.sa-filter-btn span{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;font-size:11px;border-radius:50%;min-width:18px;height:18px;padding:1px 4px;color:var(--sa-accent);background:#fff}
.sa-results-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:5px 16px;margin:18px 0 5px;font-size:12px;color:var(--sa-muted)}
.sa-results-bar strong{font-size:15px;color:var(--sa-ink)}
.sa-disclosure{font-size:12px;color:var(--sa-muted);margin:0 0 18px!important;line-height:1.6}
.sa-validation{color:#9b3025;font-size:13px;margin:7px 0 12px}
.sa-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
.sa-card{display:flex;flex-direction:column;gap:0;min-width:0;background:#fff;border:1px solid var(--sa-line);border-radius:10px;padding:19px 20px 17px;box-shadow:0 2px 8px rgba(16,39,28,.03);transition:border-color .15s ease}
.sa-card:hover{border-color:#b2c9bc}
.sa-card-top{display:flex;align-items:center;gap:15px;min-height:65px}
.sa-logo{width:114px;min-width:114px;min-height:56px;display:flex;align-items:center;justify-content:center;border:1px solid #edf0ec;background:#fff;border-radius:6px;padding:7px;text-align:center}
.sa-logo img{display:block;object-fit:contain;width:100%;height:auto;max-height:52px}.sa-logo strong{font-size:14px;line-height:1.2}
.sa-card-heading{min-width:0;flex:1}.sa-card-heading .sa-supplier{font-size:12px;color:var(--sa-muted);margin:0 0 2px!important}.sa-card-heading h3{font-size:17px;line-height:1.25;letter-spacing:-.015em;font-weight:700;margin:0 0 5px!important;color:var(--sa-ink)}.sa-subtype{font-size:12px;color:var(--sa-muted);margin:0!important}
.sa-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.sa-tag{font-size:11px;background:#f2f6f3;color:#496257;border:1px solid #e7eee9;border-radius:3px;padding:3px 7px;font-weight:600}.sa-tag-offer{background:#eaf4ee;color:#17614d;border-color:#dbebdf}
.sa-card-rates{display:grid;grid-template-columns:1.02fr .82fr 1.08fr;gap:0;margin:17px 0 14px;background:#f8faf8;border-radius:6px;padding:14px 7px}
.sa-card-rates>div{min-width:0;padding:0 10px}.sa-card-rates>div+div{border-left:1px solid #e0e7e1}.sa-card-rates span{font-size:11px;display:block;color:#5c7066;min-height:19px}.sa-card-rates strong{font-size:22px;line-height:1.25;display:block;letter-spacing:-.025em;color:var(--sa-ink);font-weight:750;overflow-wrap:anywhere}.sa-card-rates small{font-size:11px;color:var(--sa-muted);display:block;margin-top:2px}
.sa-features{margin:0 0 12px;padding:0;display:grid;grid-template-columns:1fr;gap:0}.sa-features>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #eff2ef}.sa-features dt{font-size:12px;color:var(--sa-muted);font-weight:400}.sa-features dd{font-size:12px;text-align:right;font-weight:650;margin:0;color:var(--sa-ink)}
.sa-caution{margin:2px 0 10px!important;padding:8px 10px;border-left:2px solid #b89356;background:#fbf8f1;color:#6a542f;font-size:12px}
.sa-details{margin-bottom:15px}.sa-details summary{list-style:none;cursor:pointer;font-size:13px;color:var(--sa-accent);font-weight:650;padding:7px 0;border:0}.sa-details summary::-webkit-details-marker{display:none}.sa-details summary span{float:right;margin-right:4px;font-size:18px;font-weight:400}.sa-details[open] summary span{transform:rotate(45deg)}
.sa-details-body{padding:12px 0;border-top:1px solid var(--sa-line);font-size:12px}.sa-details-body .sa-details-subtitle{font-size:12px;font-weight:700;margin:12px 0 8px}.sa-details-body p{font-size:12px;color:var(--sa-muted);margin:8px 0!important}
.sa-more-grid{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 15px}.sa-more-grid div{min-width:0}.sa-more-grid dt{color:var(--sa-muted);font-size:11px}.sa-more-grid dd{font-weight:650;margin:1px 0;font-size:12px}.sa-component-list{padding:0;margin:0;list-style:none}.sa-component-list li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #edf1ec;padding:5px 0}.sa-component-list strong{text-align:right}
.sa-card-footer{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;border-top:1px solid var(--sa-line)}.sa-cta{display:inline-flex;align-items:center;justify-content:center;gap:13px;background:var(--sa-accent)!important;color:#fff!important;border-radius:5px;text-decoration:none!important;font-size:13px;font-weight:700;padding:11px 15px;line-height:1.35;text-align:center}.sa-cta span{font-size:17px}.sa-ad,.sa-unavailable{font-size:11px;color:var(--sa-muted)}
.sa-empty,.sa-initial-empty{background:var(--sa-pale);border:1px solid var(--sa-line);padding:17px;border-radius:8px;font-size:14px;color:var(--sa-muted)}.sa-more{display:block;margin:24px auto 0;background:#fff;color:var(--sa-accent);border:1px solid #bacdc0;border-radius:6px;padding:10px 25px;cursor:pointer;font:inherit;font-size:14px;font-weight:650}
/* Elbob-style modal, independent of theme typography and standard WordPress popups. */
.sa-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:18px}.sa-modal-shade{position:absolute;inset:0;background:rgba(18,31,25,.57)}
.sa-modal-panel{position:relative;display:flex;flex-direction:column;max-height:min(800px,90vh);width:min(640px,100%);border-radius:10px;box-shadow:0 22px 80px rgba(0,0,0,.2);background:#fff;outline:none}
.sa-modal-header,.sa-modal-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 22px;background:#fff}.sa-modal-header{border-bottom:1px solid var(--sa-line);border-radius:10px 10px 0 0}.sa-modal-header h3{font-size:19px;color:var(--sa-ink);margin:0;font-weight:700}.sa-icon-button{cursor:pointer;background:#f4f6f4!important;color:#375246!important;font-size:26px!important;line-height:1!important;border:0!important;border-radius:5px!important;width:33px;height:33px;padding:0!important;display:flex;align-items:center;justify-content:center}
.sa-modal-body{padding:2px 22px 16px;overflow-y:auto;overscroll-behavior:contain}.sa-filter-group{margin:0!important;padding:16px 0!important;border:0!important;border-bottom:1px solid var(--sa-line)!important;min-width:0}.sa-filter-group:last-child{border-bottom:0!important}.sa-filter-group legend{font-size:14px;font-weight:750;color:var(--sa-ink);padding:12px 0 0;margin:0}.sa-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 13px;margin-top:2px}.sa-check-grid label{display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:13px;color:#35483d}.sa-check-grid input{accent-color:var(--sa-accent);margin:3px 0 0!important;flex:0 0 auto}.sa-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.sa-two label{font-size:12px;color:var(--sa-muted);font-weight:600}.sa-two select{width:100%;display:block;border:1px solid #c8d4cd;background:#fff;color:var(--sa-ink);font-size:14px;border-radius:5px;padding:10px;margin-top:6px}
.sa-modal-footer{border-top:1px solid var(--sa-line);border-radius:0 0 10px 10px}.sa-reset{background:#fff!important;color:#38594a!important;border:1px solid #d0dad4!important;padding:10px 16px!important;font-weight:650;font-size:14px;cursor:pointer;border-radius:5px!important}.sa-primary{background:var(--sa-accent)!important;color:#fff!important;border:0!important;padding:11px 22px!important;font-weight:700;font-size:14px;cursor:pointer;border-radius:5px!important}
/* Compact comparison table */
.sa-table-wrap{width:100%;overflow-x:auto}.sa-table{width:100%;min-width:800px;border-collapse:collapse;background:#fff;border:1px solid var(--sa-line);font-size:13px}.sa-table th{background:var(--sa-pale);font-size:12px;font-weight:700;text-align:left;color:#4f6758;padding:15px 13px}.sa-table td{padding:16px 13px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--sa-line)}.sa-table td small{display:block;font-size:11px;color:var(--sa-muted);margin-top:3px}.sa-table-company{display:flex;gap:12px;align-items:center}.sa-table-company img{width:65px;max-height:42px;object-fit:contain}.sa-table-company span{display:block;font-size:12px}.sa-table-company small{color:var(--sa-accent)!important}.sa-table-cost{font-weight:750;white-space:nowrap}.sa-table-link{color:var(--sa-accent)!important;font-weight:700;text-decoration:none;white-space:nowrap}
.sa-company-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.sa-company{border:1px solid #dfe7e2;background:#fff;border-radius:9px;padding:19px}.sa-company-logo{height:60px;display:flex;align-items:center;justify-content:flex-start}.sa-company-logo img{max-width:150px;max-height:58px;object-fit:contain}.sa-company .sa-company-name{margin:10px 0 4px;font-size:18px;font-weight:700;line-height:1.35}.sa-company p{margin:0 0 13px;color:#64746e;font-size:13px}.sa-company a{font-size:14px;font-weight:700;text-decoration:none;color:#175e4e}
@media(max-width:1100px){.sa-cards{grid-template-columns:1fr}.sa-card-rates strong{font-size:23px}}
@media(max-width:780px){.sa-filter-head{grid-template-columns:1fr 1fr}.sa-filter-btn{width:100%}.sa-company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.sa-filter-head{padding:12px;gap:10px}.sa-sort-top{grid-column:1/2}.sa-filter-btn{grid-column:2/3}.sa-quick-input input,.sa-quick-input select{font-size:13px!important}.sa-card{padding:15px}.sa-card-top{gap:10px;align-items:flex-start}.sa-logo{width:94px;min-width:94px;min-height:55px}.sa-card-heading h3{font-size:16px}.sa-card-rates{padding:12px 2px}.sa-card-rates>div{padding:0 8px}.sa-card-rates span{font-size:10px;min-height:32px}.sa-card-rates strong{font-size:18px}.sa-card-rates small{font-size:10px}.sa-results-bar{margin-top:14px}.sa-modal{padding:0;align-items:flex-end}.sa-modal-panel{width:100%;max-height:93vh;border-radius:12px 12px 0 0}.sa-check-grid{grid-template-columns:1fr}.sa-modal-header,.sa-modal-footer{padding:15px 17px}.sa-modal-body{padding:0 17px 14px}.sa-company-grid{grid-template-columns:1fr}}

/* v0.3.0: Elbob 2.0.7 card and filter presentation adapted to Sahkoappi.
   Original card/filter visual rules copied from the supplied Elbob plugin,
   scoped to this widget. */
.sahkoappi-widget .el-products-container{
          --brand-green: #004630;
          --light-gray: #f7f8fa;
          --medium-gray: #e9ecef;
          --dark-gray: #333;
          --text-color: #555;
          --border-radius: 8px;
          --card-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
          
          display: grid;
          grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
          justify-content: center;
          gap: 20px;
          
          font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
          padding: 0 15px;
          box-sizing: border-box;
      }
.sahkoappi-widget .el-products-container *{
          box-sizing: border-box;
      }
.sahkoappi-widget .el-products-container .card{
          background-color: #fff;
          border: 1px solid rgba(0, 70, 48, 0.18);
          border-radius: var(--border-radius);
          box-shadow: var(--card-shadow);
          padding: 16px;
          display: flex;
          flex-direction: column;
          gap: 12px;
          position: relative;
      }
.sahkoappi-widget .el-products-container .card-header{
          display: flex;
          align-items: flex-start;
          gap: 12px;
      }
.sahkoappi-widget .el-products-container .card-logo{
          width: 50px;
          height: 50px;
          object-fit: contain;
          border: 1px solid #eee;
          border-radius: var(--border-radius);
          padding: 5px;
          flex-shrink: 0;
      }
.sahkoappi-widget .el-products-container .card-title-section .card-provider-name{
          font-size: 13px;
          color: #888;
          margin: 0 0 2px 0;
      }
.sahkoappi-widget .el-products-container .card-title-section .card-title-text{
          font-size: 18px;
          color: var(--dark-gray);
          margin: 0 0 4px 0;
          font-weight: bold;
          line-height: 1.2;
      }
.sahkoappi-widget .rating-stars{
          display: inline-flex;
          gap: 2px;
          margin-right: 4px;
      }
.sahkoappi-widget .rating-stars .star-icon{
          width: 14px;
          height: 14px;
          fill: #FDB913;
          flex-shrink: 0;
      }
.sahkoappi-widget .el-products-container .card-rating{
          font-size: 14px;
          color: var(--text-color);
          display: flex;
          align-items: center;
          gap: 4px;
          margin-top: 2px;
          flex-wrap: wrap;
      }
.sahkoappi-widget .el-products-container .card-rating-score{
          font-weight: 600;
      }
.sahkoappi-widget .card-updated-row{
          margin-top: 6px;
          font-size: 12px;
          color: #777;
          display: inline-flex;
          align-items: center;
          gap: 8px;
          flex-wrap: wrap;
      }
.sahkoappi-widget .card-updated-row strong{ color:#666; font-weight: 600; }
.sahkoappi-widget .source-tooltip{
          position: relative;
          display: inline-flex;
          align-items: center;
          gap: 6px;
          cursor: pointer;
          user-select: none;
      }
.sahkoappi-widget .source-tooltip .info-dot{
          width: 18px;
          height: 18px;
          border-radius: 50%;
          background: #eef3f1;
          border: 1px solid rgba(0,70,48,0.18);
          color: #004630;
          font-weight: 800;
          display: inline-flex;
          align-items: center;
          justify-content: center;
          font-size: 12px;
          line-height: 1;
      }
.sahkoappi-widget .source-tooltip .tooltip-bubble{
          position: absolute;
          left: 0;
          top: 26px;
          min-width: 220px;
          max-width: 320px;
          background: #111;
          color: #fff;
          padding: 10px 12px;
          border-radius: 10px;
          font-size: 12px;
          line-height: 1.35;
          box-shadow: 0 10px 24px rgba(0,0,0,0.18);
          opacity: 0;
          visibility: hidden;
          transform: translateY(6px);
          transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
          z-index: 9999;
      }
.sahkoappi-widget .source-tooltip .tooltip-bubble::before{
          content:"";
          position:absolute;
          top:-6px;
          left: 12px;
          width: 12px;
          height: 12px;
          background:#111;
          transform: rotate(45deg);
      }
.sahkoappi-widget .source-tooltip:hover .tooltip-bubble, .sahkoappi-widget .source-tooltip:focus-within .tooltip-bubble{
          opacity: 1;
          visibility: visible;
          transform: translateY(0);
      }
@media  (max-width: 767px){.sahkoappi-widget .source-tooltip .tooltip-bubble{ left: auto; right: 0; }.sahkoappi-widget .source-tooltip .tooltip-bubble::before{ left: auto; right: 12px; }}
@supports  (left: clamp(0px, 0px, 0px)){.sahkoappi-widget .source-tooltip .tooltip-bubble{ max-width: min(320px, calc(100vw - 32px)); }}
.sahkoappi-widget .el-products-container .card-price-block{
          background-color: var(--light-gray);
          border-radius: var(--border-radius);
          padding: 12px;
          text-align: center;
      }
.sahkoappi-widget .el-products-container .card-price{
          font-size: 20px;
          font-weight: bold;
          color: var(--dark-gray);
      }
.sahkoappi-widget .el-products-container .card-price-sub{
          font-size: 13px;
          color: var(--text-color);
          margin-top: 2px;
      }
.sahkoappi-widget .el-products-container .card-features{
          list-style: none;
          padding: 0 !important; 
          margin: 0 !important;
          text-indent: 0 !important;
          font-size: 14px;
          display: flex;
          flex-direction: column;
          gap: 8px;
      }
.sahkoappi-widget .el-products-container .card-features li{
          display: flex;
          justify-content: space-between;
          align-items: flex-start;
          gap: 6px;
          border-bottom: 1px dashed #eee;
          padding-bottom: 4px;
          margin-left: 0 !important; 
          padding-left: 0 !important;
      }
.sahkoappi-widget .el-products-container .card-features li:last-child{
          border-bottom: none;
      }
.sahkoappi-widget .el-products-container .feature-label{
          color: #666;
          display: flex;
          align-items: center;
          gap: 6px;
      }
.sahkoappi-widget .el-products-container .feature-value{
          font-weight: 500;
          text-align: right;
          color: var(--dark-gray);
      }
.sahkoappi-widget .intro-card{
          background-color: #fffbeb; 
          border: 1px solid #fcd34d;
          color: #92400e;
          padding: 10px;
          border-radius: 6px;
          font-size: 13px;
          margin-top: 5px;
          display: flex;
          align-items: center;
          gap: 8px;
          line-height: 1.4;
      }
.sahkoappi-widget .intro-card strong{
          color: #78350f;
          display: block;
          font-size: 12px;
          text-transform: uppercase;
          margin-bottom: 2px;
      }
.sahkoappi-widget .intro-icon{
          color: #d97706;
          flex-shrink: 0;
      }
.sahkoappi-widget .el-products-container .card-tags{
          display: flex;
          flex-wrap: wrap;
          gap: 6px;
          font-size: 12px;
      }
.sahkoappi-widget .el-products-container .info-tag{
          background-color: var(--light-gray);
          border-radius: 4px;
          padding: 4px 8px;
          display: inline-flex;
          align-items: center;
          gap: 5px;
          border: 1px solid #e0e0e0;
      }
.sahkoappi-widget .el-products-container .card-cta-button{
          margin-top: auto;
          display: block;
          width: 100%;
          background: #095BD3 !important;
          background-image: none !important;
          border: 1px solid #095BD3 !important;
          color: #fff !important;
          text-align: center;
          padding: 12px 0;
          border-radius: var(--border-radius);
          font-weight: bold;
          font-size: 17px; 
          text-transform: uppercase; 
          letter-spacing: 0.5px; 
          text-decoration: none;
          transition: background-color 0.2s, border-color 0.2s;
          box-sizing: border-box;
      }
.sahkoappi-widget .el-products-container .card-cta-button:hover,
.sahkoappi-widget .el-products-container .card-cta-button:focus{
          background: #0649AA !important;
          background-image: none !important;
          border-color: #0649AA !important;
          color: #fff !important;
      }
.sahkoappi-widget .el-products-container .card-cta-button:focus-visible{
          outline: 3px solid #FFC400;
          outline-offset: 3px;
      }
.sahkoappi-widget .elbob-card-feed{
          --filter-brand-color: #004630;
          --filter-primary-text: #333;
          --filter-secondary-text: #555;
          --filter-border-color: #e0e0e0;
          --filter-background-light: #f7f8fa;
          --filter-overlay-bg: rgba(0, 0, 0, 0.5);
      }
.sahkoappi-widget .filter-sticky-header{
          background-color: rgba(255, 255, 255, 0.85);
          backdrop-filter: blur(10px);
          -webkit-backdrop-filter: blur(10px);
          position: sticky;
          top: 0;
          z-index: 10;
          padding: 10px 15px;
          border-bottom: 1px solid var(--filter-border-color);
          margin-bottom: 20px;
          display: flex;
          justify-content: center;
          flex-direction: column;
          gap: 8px;
          align-items: center;
      }
.sahkoappi-widget .filter-trigger-btn{
          display: inline-flex;
          align-items: center;
          gap: 8px;
          background-color: var(--filter-background-light);
          border: 1px solid var(--filter-border-color);
          padding: 10px 16px;
          border-radius: 50px;
          font-size: 15px;
          font-weight: 600;
          color: var(--filter-primary-text);
          cursor: pointer;
          transition: background-color 0.2s, box-shadow 0.2s;
      }
.sahkoappi-widget .filter-trigger-btn:hover{ background-color: #f0f1f3; }
.sahkoappi-widget .filter-count-badge{
          background-color: var(--filter-brand-color);
          color: white;
          font-size: 12px;
          font-weight: bold;
          border-radius: 50%;
          width: 22px;
          height: 22px;
          display: inline-flex;
          justify-content: center;
          align-items: center;
          margin-left: 4px;
      }
.sahkoappi-widget .last-updated-global{
          font-size: 12px;
          color: #666;
          display: inline-flex;
          align-items: center;
          gap: 8px;
          flex-wrap: wrap;
      }
.sahkoappi-widget .last-updated-global strong{ color:#555; }
.sahkoappi-widget .elbob-filter-modal-overlay{
          position: fixed;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          background-color: var(--filter-overlay-bg);
          z-index: 99999;
          display: flex;
          justify-content: center;
          align-items: flex-end;
          opacity: 0;
          visibility: hidden;
          transition: opacity 0.3s ease;
      }
.sahkoappi-widget .elbob-filter-modal-overlay[hidden]{ display: none; }
.sahkoappi-widget .elbob-filter-modal-overlay.active{ opacity: 1; visibility: visible; }
.sahkoappi-widget .elbob-filter-modal-content{
          background: #fff;
          width: 100%;
          max-width: 100%;
          max-height: 90vh;
          display: flex;
          flex-direction: column;
          border-top-left-radius: 16px;
          border-top-right-radius: 16px;
          transform: translateY(100%);
          transition: transform 0.3s ease-out;
          box-shadow: 0 -5px 20px rgba(0,0,0,0.1);
      }
.sahkoappi-widget .elbob-filter-modal-overlay.active .elbob-filter-modal-content{ transform: translateY(0); }
.sahkoappi-widget .filter-modal-header{
          display: flex;
          justify-content: space-between;
          align-items: center;
          padding: 16px 20px;
          border-bottom: 1px solid var(--filter-border-color);
          flex-shrink: 0;
      }
.sahkoappi-widget .filter-modal-header .filter-modal-heading{ margin: 0; font-size: 18px; font-weight: 700; color: var(--filter-primary-text); }
.sahkoappi-widget .close-btn{
          background: none;
          border: none;
          cursor: pointer;
          padding: 4px;
          color: var(--filter-secondary-text);
      }
.sahkoappi-widget .close-btn:hover{ color: var(--filter-primary-text); }
.sahkoappi-widget .filter-modal-body{ overflow-y: auto; padding: 20px; }
.sahkoappi-widget .filter-section{ padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid #f0f0f0; }
.sahkoappi-widget .filter-section:last-child{ border-bottom: none; margin-bottom: 0; }
.sahkoappi-widget .filter-section-title{ font-weight: bold; margin-bottom: 12px; font-size: 16px; display: block; }
.sahkoappi-widget .filter-grid{ display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; }
.sahkoappi-widget .filter-list{ display: flex; flex-direction: column; gap: 10px; }
.sahkoappi-widget .filter-grid label, .sahkoappi-widget .filter-list label{
          display: flex; align-items: center; gap: 8px; font-size: 15px; cursor: pointer;
          padding: 8px; border-radius: 6px; transition: background-color 0.2s;
      }
.sahkoappi-widget .filter-grid label:hover, .sahkoappi-widget .filter-list label:hover{ background-color: var(--filter-background-light); }
.sahkoappi-widget .elbob-card-feed input[type="checkbox"]{ width: 1.2em; height: 1.2em; accent-color: var(--filter-brand-color); }
.sahkoappi-widget .select-wrapper{ position: relative; }
.sahkoappi-widget .select-wrapper::after{
          content: "▼"; font-size: 12px; position: absolute; right: 15px; top: 50%;
          transform: translateY(-50%); pointer-events: none; color: #888;
      }
.sahkoappi-widget .sort-control select{
          width: 100%; padding: 12px 15px; font-size: 16px; border-radius: 8px;
          border: 1px solid var(--filter-border-color); background-color: #fff;
          -webkit-appearance: none; -moz-appearance: none; appearance: none;
      }
.sahkoappi-widget .filter-modal-footer{
          display: flex; gap: 10px; padding: 16px 20px;
          border-top: 1px solid var(--filter-border-color); background-color: #fff; flex-shrink: 0;
      }
.sahkoappi-widget .filter-modal-footer button{
          flex-grow: 1; padding: 14px; font-size: 16px; font-weight: bold;
          border-radius: 8px; border: none; cursor: pointer; transition: background-color 0.2s;
      }
.sahkoappi-widget .primary-btn{ background-color: var(--filter-brand-color); color: white; }
.sahkoappi-widget .primary-btn:hover{ background-color: #003221; }
.sahkoappi-widget .secondary-btn{ background-color: var(--filter-background-light); color: var(--filter-primary-text); border: 1px solid var(--filter-border-color); }
.sahkoappi-widget .secondary-btn:hover{ background-color: #e9eaec; }
@media  (min-width: 768px) {.sahkoappi-widget .el-products-container{ padding: 0 25px; }.sahkoappi-widget .elbob-filter-modal-overlay{ align-items: center; }.sahkoappi-widget .elbob-filter-modal-content{
              transform: translateY(0) scale(0.9); opacity: 0; transition: transform 0.3s ease, opacity 0.3s ease;
              border-radius: 12px; max-width: 600px; max-height: 80vh;
          }.sahkoappi-widget .elbob-filter-modal-overlay.active .elbob-filter-modal-content{ transform: translateY(0) scale(1); opacity: 1; }}
/* Only Finnish additions: compact annual consumption and postcode inputs. */
.sahkoappi-widget .sa-elbob-toolbar {flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:12px;padding:12px 15px;}
.sahkoappi-widget .sa-elbob-toolbar .filter-trigger-btn{flex-shrink:0;}
.sahkoappi-widget .sa-elbob-quick {display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;flex:1;}
.sahkoappi-widget .sa-elbob-quick label{font-size:12px;font-weight:600;color:#555;display:flex;flex-direction:column;gap:3px;}
.sahkoappi-widget .sa-elbob-quick input{background:white!important;border:1px solid #dadfe0!important;border-radius:6px!important;box-shadow:none!important;height:38px!important;font-size:14px!important;padding:7px 9px!important;max-width:158px!important;color:#333!important;}
.sahkoappi-widget .sa-elbob-quick .sa-elbob-input{display:flex;align-items:center;gap:6px;}
.sahkoappi-widget .sa-elbob-quick small{font-size:11px;color:#666;white-space:nowrap;}
.sahkoappi-widget .sa-elbob-toolbar .last-updated-global {margin-left:auto;font-size:11px;}
.sahkoappi-widget .el-products-container{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));padding:0 15px;align-items:stretch;}
.sahkoappi-widget .el-products-container .card{min-width:0;height:100%;}
.sahkoappi-widget .el-products-container .card-logo-placeholder{display:flex;align-items:center;justify-content:center;background:#f5f7f5;color:#004630;font-weight:750;}
.sahkoappi-widget .el-products-container .card-title-text{margin:0 0 4px!important;}
.sahkoappi-widget .el-products-container .card-price-block{text-align:left;}
.sahkoappi-widget .el-products-container .card-price{font-size:20px;overflow-wrap:anywhere;}
.sahkoappi-widget .el-products-container .card-price-sub{line-height:1.45;}
.sahkoappi-widget .el-products-container .card-features .feature-intro-row,
.sahkoappi-widget .el-products-container .card-features .feature-note-row{border:0;display:block;}
.sahkoappi-widget .el-products-container .card-features .intro-card{width:100%;}
.sahkoappi-widget .el-products-container .feature-note-text{font-size:12px;color:#805832;background:#fff9ed;padding:8px;border-radius:4px;margin-top:6px;}
.sahkoappi-widget .el-products-container .card-features .feature-note-row .feature-label{font-weight:700;}
.sahkoappi-widget .el-products-container .card-tags{margin:3px 0 1px;}
.sahkoappi-widget .el-products-container .sa-details{border-top:1px solid #eee;margin:0 0 8px;}
.sahkoappi-widget .el-products-container .sa-details summary{color:#004630;font-weight:600;}
.sahkoappi-widget .el-products-container .card-cta-button{padding:12px 8px;margin-top:auto;font-size:15px!important;line-height:1.45;text-transform:none;}
.sahkoappi-widget .sa-elbob-ad{text-align:center;font-size:11px;color:#777;margin-top:-6px;}
.sahkoappi-widget .elbob-filter-modal-overlay{isolation:isolate;}
.sahkoappi-widget .elbob-filter-modal-content{max-width:600px;}
.sahkoappi-widget .elbob-filter-modal-overlay .filter-modal-header .close-btn{font-size:28px;line-height:1;padding:2px 8px!important;background:transparent!important;}
.sahkoappi-widget .elbob-filter-modal-overlay .filter-modal-footer .primary-btn{background:#004630!important;color:white!important;}
.sahkoappi-widget .elbob-filter-modal-overlay .filter-modal-footer .secondary-btn{background:#f7f8fa!important;color:#333!important;}
.sahkoappi-widget .sa-elbob-selects{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.sahkoappi-widget .sa-elbob-selects label{display:grid;font-size:13px;font-weight:600;color:#555;gap:5px;}
.sahkoappi-widget .sa-elbob-selects select{display:block;width:100%;min-width:0;padding:10px!important;border:1px solid #ddd!important;background:#fff!important;border-radius:6px!important;font-size:14px!important;}
.sahkoappi-widget .sa-results-bar{padding:0 15px;margin:0 0 6px;}
.sahkoappi-widget .sa-disclosure{padding:0 15px;margin:0 0 12px!important;}
.sahkoappi-widget .sa-validation{padding:0 15px;}
.sahkoappi-widget .sa-more{border-radius:8px;color:#004630;border-color:#004630;}
@media(max-width:700px){
 .sahkoappi-widget .sa-elbob-toolbar{align-items:stretch;gap:10px;}
 .sahkoappi-widget .sa-elbob-toolbar .filter-trigger-btn{width:100%;justify-content:center;}
 .sahkoappi-widget .sa-elbob-quick{flex:1;width:100%;justify-content:space-between;}
 .sahkoappi-widget .sa-elbob-quick label{min-width:0;flex:1;}
 .sahkoappi-widget .sa-elbob-quick input{width:100%;max-width:none!important;}
 .sahkoappi-widget .sa-elbob-toolbar .last-updated-global{margin-left:0;}
 .sahkoappi-widget .sa-elbob-selects{grid-template-columns:1fr;}
 .sahkoappi-widget .el-products-container{padding:0 3px;}
}
/* Ensure modal is not trapped under sticky theme headers by the older isolation setting. */
.sahkoappi-widget{isolation:auto}

/* v0.4.0: Compact desktop filter panel; bottom-sheet filters on small screens.
   Scoped to the Sahkoappi widget; card appearance remains inherited from Elbob. */
.sahkoappi-widget .sa-comparison-desktop{margin:0 0 12px;}
.sahkoappi-widget .sa-filter-topline{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 14px;}
.sahkoappi-widget .sa-filter-intro{display:flex;flex-direction:column;gap:3px;min-width:0;}
.sahkoappi-widget .sa-filter-intro>span{font-size:12px;color:#63718b;}
.sahkoappi-widget .sa-top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.sahkoappi-widget .sa-top-actions>label{font-size:12px;font-weight:500;color:#63718b;}
.sahkoappi-widget .sa-top-actions select{height:39px!important;width:auto!important;max-width:200px;padding:7px 32px 7px 12px!important;border-radius:22px!important;background-color:#f7f8fb!important;border:1px solid #dce2ea!important;font-size:13px!important;color:#172c46!important;box-shadow:none!important;cursor:pointer;}
.sahkoappi-widget .sa-clear-btn{border:0!important;background:transparent!important;color:#344968!important;text-decoration:underline;font-size:12px!important;cursor:pointer;padding:7px 3px!important;line-height:1.5;}
.sahkoappi-widget .sa-clear-btn:hover{color:#004630!important;}
.sahkoappi-widget .sa-desktop-filter-panel{background:#f8f9fb;border:1px solid #e0e5ed;border-radius:12px;padding:13px 13px 12px;}
.sahkoappi-widget .sa-desktop-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;align-items:end;}
.sahkoappi-widget .sa-desktop-filter-grid>label{display:flex;flex-direction:column;min-width:0;gap:5px;margin:0;font-size:12px;}
.sahkoappi-widget .sa-desktop-filter-grid>label>span:first-child{font-size:10px;letter-spacing:.075em;line-height:1.3;font-weight:700;color:#4a5d78;white-space:nowrap;}
.sahkoappi-widget .sa-desktop-filter-grid select,.sahkoappi-widget .sa-desktop-filter-grid input,
.sahkoappi-widget .sa-mobile-modal .sa-mobile-filter-pair input,.sahkoappi-widget .sa-mobile-modal select{
 display:block;width:100%;height:37px!important;min-width:0;padding:7px 10px!important;margin:0!important;line-height:1.3!important;
 background:#fff!important;border:1px solid #d9e0e9!important;border-radius:8px!important;box-shadow:none!important;
 font-size:13px!important;color:#172c46!important;outline-offset:2px;
}
.sahkoappi-widget .sa-desktop-filter-grid input:focus,.sahkoappi-widget .sa-desktop-filter-grid select:focus,
.sahkoappi-widget .sa-mobile-modal input:focus,.sahkoappi-widget .sa-mobile-modal select:focus{border-color:#306d58!important;outline:2px solid #d7e9df;}
.sahkoappi-widget .sa-desktop-filter-grid .sa-filter-number{display:block;position:relative;}
.sahkoappi-widget .sa-desktop-filter-grid .sa-filter-number input{padding-right:43px!important;}
.sahkoappi-widget .sa-filter-number small{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;color:#7d8793;pointer-events:none;}
.sahkoappi-widget .sa-filter-checks{display:flex;align-items:center;gap:7px 16px;flex-wrap:wrap;padding-top:12px;}
.sahkoappi-widget .sa-filter-checks label{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:#304560;white-space:nowrap;cursor:pointer;margin:0;font-weight:400;}
.sahkoappi-widget .sa-filter-checks input,.sahkoappi-widget .sa-mobile-modal input[type="checkbox"]{accent-color:#004630;width:15px;height:15px;margin:0!important;cursor:pointer;}
.sahkoappi-widget .sa-mobile-filter-summary,.sahkoappi-widget .sa-mobile-floating-filter{display:none;}
.sahkoappi-widget .sa-disclosure{padding:0 3px;margin:11px 0 15px!important;}
.sahkoappi-widget .sa-validation{padding:0 3px;}
@media(min-width:761px) and (max-width:1050px){
 .sahkoappi-widget .sa-desktop-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
}
@media(max-width:760px){
 .sahkoappi-widget .sa-comparison-desktop{display:none!important;}
 .sahkoappi-widget .sa-mobile-filter-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 3px 12px;border-bottom:1px solid #e5e9ef;margin:0 0 9px;}
 .sahkoappi-widget .sa-mobile-filter-summary>div{display:flex;flex-direction:column;gap:2px;}
 .sahkoappi-widget .sa-mobile-filter-summary strong{font-size:15px;color:#142c45;}
 .sahkoappi-widget .sa-mobile-filter-summary span{font-size:11px;color:#687486;}
 .sahkoappi-widget .sa-mobile-clear{background:none!important;border:0!important;text-decoration:underline;color:#4a5d72;font-size:12px!important;padding:8px!important;cursor:pointer;}
 .sahkoappi-widget .sa-mobile-floating-filter{position:fixed!important;display:flex;align-items:center;justify-content:center;gap:9px;bottom:calc(18px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 40px);z-index:9990;min-height:48px;padding:12px 20px!important;color:#fff!important;background:#004630!important;border:1px solid #004630!important;border-radius:28px!important;box-shadow:0 5px 22px rgba(0,0,0,.22)!important;font-size:14px!important;font-weight:700!important;line-height:1.2;cursor:pointer;transition:opacity .2s ease,visibility .2s ease;}
 .sahkoappi-widget .sa-mobile-floating-filter.sa-is-outside{opacity:0;visibility:hidden;pointer-events:none;}
 .sahkoappi-widget .sa-floating-count{display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:#004630;background:#fff;border-radius:20px;min-width:21px;height:21px;padding:0 4px;}
 .sahkoappi-widget .sa-mobile-modal.elbob-filter-modal-overlay{position:fixed!important;inset:0;z-index:99999!important;align-items:flex-end!important;justify-content:center!important;padding:0!important;background:rgba(18,27,31,.55)!important;}
 .sahkoappi-widget .sa-mobile-modal.elbob-filter-modal-overlay[hidden]{display:none!important;}
 .sahkoappi-widget .sa-mobile-modal .elbob-filter-modal-content{margin:0!important;display:flex!important;flex-direction:column!important;width:100%!important;max-width:none!important;max-height:92dvh!important;border-radius:16px 16px 0 0!important;transform:translateY(15px)!important;transition:transform .18s ease!important;background:#fff!important;box-shadow:0 -5px 35px rgba(0,0,0,.18);}
 .sahkoappi-widget .sa-mobile-modal.active .elbob-filter-modal-content{transform:translateY(0)!important;opacity:1!important;}
 .sahkoappi-widget .sa-mobile-modal .filter-modal-header{padding:15px 18px!important;flex:none;}
 .sahkoappi-widget .sa-mobile-modal .filter-modal-header .filter-modal-heading{font-size:18px;}
 .sahkoappi-widget .sa-mobile-modal .filter-modal-body{overflow-y:auto!important;min-height:0!important;flex:1;padding:13px 18px 15px!important;overscroll-behavior:contain;}
 .sahkoappi-widget .sa-mobile-modal .filter-section{margin:0 0 12px;padding:0 0 15px;border-bottom:1px solid #ecf0f3;}
 .sahkoappi-widget .sa-mobile-modal .filter-section-title{font-size:13px;margin:0 0 9px;}
 .sahkoappi-widget .sa-mobile-modal .sa-mobile-filter-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;}
 .sahkoappi-widget .sa-mobile-modal .sa-mobile-filter-pair label{display:grid;gap:6px;min-width:0;font-weight:600;font-size:12px;color:#455b6d;}
 .sahkoappi-widget .sa-mobile-modal .filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
 .sahkoappi-widget .sa-mobile-modal .filter-grid label,.sahkoappi-widget .sa-mobile-modal .filter-list label{padding:9px!important;display:flex;align-items:center;gap:8px;border:1px solid #edf0f2;border-radius:7px;font-size:12px;}
 .sahkoappi-widget .sa-mobile-modal .sa-elbob-selects{grid-template-columns:1fr 1fr;}
 .sahkoappi-widget .sa-mobile-modal .filter-modal-footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px))!important;flex:none;display:grid;grid-template-columns:1fr 2fr;gap:10px;}
 .sahkoappi-widget .sa-mobile-modal .filter-modal-footer button{min-height:43px;border-radius:8px;}
 body.sa-filter-dialog-open{overflow:hidden!important;}
}
@media(max-width:390px){.sahkoappi-widget .sa-mobile-modal .sa-mobile-filter-pair{grid-template-columns:1fr;}.sahkoappi-widget .sa-mobile-modal .filter-grid{grid-template-columns:1fr;}}
@media(max-width:760px){
 .sahkoappi-widget .sa-mobile-modal fieldset.filter-group{border:0!important;border-bottom:1px solid #ecf0f3!important;margin:0 0 14px!important;padding:0 0 15px!important;min-width:0;}
 .sahkoappi-widget .sa-mobile-modal fieldset.filter-group legend{float:none;width:auto;padding:0!important;margin:0 0 10px!important;font-size:13px;font-weight:700;}
 .sahkoappi-widget .sa-mobile-modal .filter-grid{clear:both;}
 .sahkoappi-widget .sa-mobile-modal .filter-grid label{border:1px solid #edf0f2!important;}
}


/* v0.4.2: Even product headings, separated supplier offers and discreet ad disclosure. */
.sahkoappi-widget .el-products-container .card-header{min-height:108px;}
.sahkoappi-widget .el-products-container .card-title-section{min-width:0;flex:1;}
.sahkoappi-widget .el-products-container .card-title-text{
 display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
 overflow:hidden;overflow-wrap:anywhere;line-height:1.25;
}
.sahkoappi-widget .el-products-container .intro-card .sa-offer-content{min-width:0;flex:1;}
.sahkoappi-widget .el-products-container .sa-offer-text{
 display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;
 overflow:hidden;overflow-wrap:anywhere;line-height:1.4;
}
.sahkoappi-widget .el-products-container .sa-offer-content small{
 display:block;margin-top:4px;font-size:11px;color:#876634;line-height:1.3;
}
.sahkoappi-widget .el-products-container .sa-card-action{
 display:flex;flex-direction:column;align-items:stretch;gap:3px;margin-top:auto;
}
.sahkoappi-widget .el-products-container .sa-card-action .card-cta-button{margin-top:0;}
.sahkoappi-widget .el-products-container .sa-card-action .sa-elbob-ad{
 display:block;margin:0;text-align:center;font-size:10px;font-weight:400;line-height:1.35;
 color:#878787;letter-spacing:0;
}

/* v0.4.5: explicitly opted-in, manually checked 6-month contracts. */
.sahkoappi-widget .sa-curated-disclosure {
    font-size: 12px;
    line-height: 1.5;
    color: #536575;
    margin: 8px 2px 12px;
}
.sahkoappi-widget .sa-curated-card-source {
    font-size: 11px;
    line-height: 1.45;
    color: #617080;
    margin: 0 0 12px;
}
