
:root{
  --vx-ink:#16181A;
  --vx-ink2:#23262A;
  --vx-text:#4A4E52;
  --vx-muted:#75797D;
  --vx-line:#E3E2E0;
  --vx-surface:#F6F5F3;
}

/* ---------- perustypografia ---------- */
body{ -webkit-font-smoothing:antialiased; }
.elementor-widget-heading .elementor-heading-title{ color:var(--vx-ink); letter-spacing:-0.015em; }
.elementor-widget-text-editor{ color:var(--vx-text); }
.elementor-widget-text-editor p{ margin:0 0 1em; }
.elementor-widget-text-editor p:last-child{ margin-bottom:0; }
a{ color:var(--vx-ink); }

/* ---------- napit ---------- */
.vx-btn .elementor-button{
  background:var(--vx-ink); color:#fff; border-radius:2px;
  font-family:'Inter',sans-serif; font-weight:600; font-size:15px;
  letter-spacing:0.01em; padding:15px 28px; border:1px solid var(--vx-ink);
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.vx-btn .elementor-button:hover,.vx-btn .elementor-button:focus{ background:#000; border-color:#000; color:#fff; }
.vx-btn-ghost .elementor-button{
  background:transparent; color:#fff; border:1px solid rgba(255,255,255,.55);
}
.vx-btn-ghost .elementor-button:hover,.vx-btn-ghost .elementor-button:focus{
  background:#fff; border-color:#fff; color:var(--vx-ink);
}
.vx-btn-line .elementor-button{
  background:transparent; color:var(--vx-ink); border:1px solid var(--vx-line);
}
.vx-btn-line .elementor-button:hover{ background:var(--vx-ink); border-color:var(--vx-ink); color:#fff; }
.vx-btn-sm .elementor-button{ padding:11px 20px; font-size:14px; }

/* ---------- ylätunniste ---------- */
.vx-topbar{ background:var(--vx-ink); }
.vx-topbar .elementor-widget-text-editor{
  color:rgba(255,255,255,.72); font-size:13.5px; line-height:1.4;
}
.vx-topbar a{ color:#fff; text-decoration:none; }
.vx-topbar a:hover{ text-decoration:underline; }

.vx-header{ background:#fff; border-bottom:1px solid var(--vx-line); }
.vx-header .elementor-widget-image img{ height:58px; width:auto; display:block; }
.vx-nav .elementor-nav-menu--main .elementor-item{
  font-family:'Inter',sans-serif; font-weight:500; font-size:13.5px;
  color:var(--vx-ink); padding:10px 8px; letter-spacing:0.005em;
}
.vx-nav .elementor-nav-menu--main .elementor-item:hover,
.vx-nav .elementor-nav-menu--main .elementor-item.elementor-item-active{ color:#000; }
.vx-nav .elementor-nav-menu--main .elementor-item.elementor-item-active{ box-shadow:inset 0 -2px 0 0 var(--vx-ink); }
.vx-nav .elementor-nav-menu--dropdown .elementor-item{ font-size:16px; padding:14px 20px; }
@media (max-width:1024px){
  .vx-header .elementor-menu-toggle{ min-width:46px; min-height:46px; }
}
@media (min-width:1025px) and (max-width:1299px){
  .vx-nav .elementor-nav-menu--main .elementor-item{ font-size:13px; padding:10px 6px; }
}

/* ---------- osiot ---------- */
.vx-eyebrow .elementor-heading-title{
  font-family:'Inter',sans-serif; font-weight:600; font-size:12.5px;
  letter-spacing:0.14em; text-transform:uppercase; color:var(--vx-muted);
}
.vx-eyebrow-light .elementor-heading-title{ color:rgba(255,255,255,.7); }
.vx-lead{ font-size:19px; line-height:1.65; color:var(--vx-text); }
.vx-surface{ background:var(--vx-surface); }

/* ---------- etusivun hero ---------- */
.vx-hero{ position:relative; }
.vx-hero-h1 .elementor-heading-title{
  color:#fff; font-size:56px; line-height:1.1; font-weight:700; letter-spacing:-0.025em;
}
.vx-hero-sub{ color:rgba(255,255,255,.9); font-size:19px; line-height:1.6; max-width:700px; }
.vx-hero-sub p{ color:rgba(255,255,255,.88); }
@media (max-width:1024px){ .vx-hero-h1 .elementor-heading-title{ font-size:42px; } }
@media (max-width:767px){
  .vx-hero-h1 .elementor-heading-title{ font-size:31px; }
  .vx-hero-sub{ font-size:17px; }
}

/* ---------- alasivun hero ---------- */
.vx-phero-h1 .elementor-heading-title{
  color:#fff; font-size:44px; line-height:1.14; font-weight:700; letter-spacing:-0.02em;
}
.vx-phero-sub{ color:rgba(255,255,255,.88); font-size:18px; line-height:1.6; max-width:620px; }
.vx-phero-sub p{ color:rgba(255,255,255,.86); }
@media (max-width:767px){
  .vx-phero-h1 .elementor-heading-title{ font-size:29px; }
  .vx-phero-sub{ font-size:16.5px; }
}

/* ---------- kortit ---------- */
.vx-card{ background:#fff; border:1px solid var(--vx-line); border-radius:3px; overflow:hidden; }
.vx-card-body{ padding:26px 26px 28px; }
.vx-card .elementor-widget-image img{
  width:100%; height:210px; object-fit:cover; display:block; border-radius:0;
}
.vx-card-title .elementor-heading-title{ font-size:20px; font-weight:600; line-height:1.3; }
.vx-card-text{ font-size:15.5px; line-height:1.6; color:var(--vx-text); }
.vx-card-link .elementor-button{
  padding:0; background:transparent; border:0; color:var(--vx-ink);
  font-size:14.5px; font-weight:600; box-shadow:inset 0 -1px 0 0 var(--vx-ink);
  border-radius:0;
}
.vx-card-link .elementor-button:hover{ background:transparent; color:#000; box-shadow:inset 0 -2px 0 0 #000; }

/* ---------- faktapalkki ---------- */
.vx-fact{ border-top:2px solid var(--vx-ink); padding-top:20px; }
.vx-fact-title .elementor-heading-title{ font-size:17px; font-weight:600; margin-bottom:6px; }
.vx-fact-text{ font-size:15.5px; line-height:1.6; }

/* ---------- vaiheet ---------- */
.vx-step-num .elementor-heading-title{
  font-family:'Rubik',sans-serif; font-size:14px; font-weight:600;
  letter-spacing:0.12em; color:var(--vx-muted);
}
.vx-step .elementor-widget-image img{ width:100%; height:230px; object-fit:cover; display:block; }
.vx-step-title .elementor-heading-title{ font-size:20px; font-weight:600; margin-top:2px; }
.vx-step-text{ font-size:15.5px; line-height:1.65; }

/* ---------- perustelulohko ---------- */
.vx-reason{ border-top:1px solid var(--vx-line); padding-top:22px; }
.vx-reason-title .elementor-heading-title{ font-size:18px; font-weight:600; margin-bottom:8px; }
.vx-reason-text{ font-size:15.5px; line-height:1.65; }

/* ---------- listat ---------- */
.vx-list .elementor-icon-list-item{ align-items:flex-start; }
.vx-list .elementor-icon-list-icon{ margin-top:4px; }
.vx-list .elementor-icon-list-icon i{ color:var(--vx-ink); font-size:13px; }
.vx-list .elementor-icon-list-text{ font-size:16px; line-height:1.55; color:var(--vx-text); }
.vx-list-light .elementor-icon-list-icon i{ color:#fff; }
.vx-list-light .elementor-icon-list-text{ color:rgba(255,255,255,.85); }

/* ---------- sitaatti ---------- */
.vx-quote{
  font-family:'Rubik',sans-serif; font-size:21px; line-height:1.55; color:var(--vx-ink);
  border-left:3px solid var(--vx-ink); padding-left:26px; font-weight:400;
}
.vx-quote p{ color:var(--vx-ink); }
.vx-quote-source{ font-size:14.5px; color:var(--vx-muted); padding-left:29px; }

/* ---------- tumma kaista ---------- */
.vx-dark{ background:var(--vx-ink); }
.vx-dark .elementor-widget-heading .elementor-heading-title{ color:#fff; }
.vx-dark .elementor-widget-text-editor{ color:rgba(255,255,255,.82); }
.vx-dark .elementor-widget-text-editor p{ color:rgba(255,255,255,.82); }
.vx-dark a{ color:#fff; }

/* ---------- galleria ---------- */
.vx-gallery .gallery-item img{
  width:100%; height:100%; object-fit:cover; border:0 !important; border-radius:2px;
}
.vx-gallery .gallery-item{ margin:0 !important; }
.vx-gallery figure{ margin:0; }

/* ---------- ukk ---------- */
.vx-faq .elementor-accordion-item{ border:0; border-bottom:1px solid var(--vx-line); }
.vx-faq .elementor-tab-title{
  background:transparent; padding:20px 0; font-family:'Rubik',sans-serif;
  font-size:18px; font-weight:600; color:var(--vx-ink);
}
.vx-faq .elementor-tab-title a{ color:var(--vx-ink); }
.vx-faq .elementor-tab-content{
  background:transparent; border:0; padding:0 0 22px; font-size:16px;
  line-height:1.65; color:var(--vx-text);
}

/* ---------- lomake ---------- */
.vx-form .elementor-field-group label{
  font-family:'Inter',sans-serif; font-size:14px; font-weight:600;
  color:var(--vx-ink); margin-bottom:7px;
}
.vx-form .elementor-field-textual{
  border:1px solid var(--vx-line); border-radius:2px; padding:13px 14px;
  font-size:16px; color:var(--vx-ink); background:#fff;
}
.vx-form .elementor-field-textual:focus{ border-color:var(--vx-ink); outline:0; box-shadow:none; }
.vx-form .elementor-button[type="submit"]{
  background:var(--vx-ink); color:#fff; border-radius:2px; font-weight:600;
  font-size:15px; padding:15px 30px;
}
.vx-form .elementor-button[type="submit"]:hover{ background:#000; }
.vx-form .elementor-message{ font-size:15px; }

/* ---------- yhteystietokortti ---------- */
.vx-nap{ background:var(--vx-surface); border:1px solid var(--vx-line); border-radius:3px; }
.vx-nap .elementor-icon-list-text{ font-size:16px; }
.vx-nap a{ text-decoration:none; }
.vx-nap a:hover{ text-decoration:underline; }

/* ---------- alatunniste ---------- */
.vx-footer{ background:var(--vx-ink); }
.vx-footer .elementor-widget-heading .elementor-heading-title{
  color:#fff; font-size:13px; font-family:'Inter',sans-serif; font-weight:600;
  letter-spacing:0.13em; text-transform:uppercase;
}
.vx-footer .elementor-widget-text-editor{ color:rgba(255,255,255,.72); font-size:15px; line-height:1.7; }
.vx-footer .elementor-widget-text-editor p{ color:rgba(255,255,255,.72); }
.vx-footer .elementor-icon-list-text{ color:rgba(255,255,255,.72); font-size:15px; }
.vx-footer .elementor-icon-list-item:hover .elementor-icon-list-text{ color:#fff; }
.vx-footer .elementor-icon-list-icon i{ color:rgba(255,255,255,.55); font-size:13px; }
.vx-footer a{ color:rgba(255,255,255,.72); text-decoration:none; }
.vx-footer a:hover{ color:#fff; text-decoration:underline; }
.vx-footer .elementor-widget-image img{ height:56px; width:auto; }
.vx-footer-bottom{ border-top:1px solid rgba(255,255,255,.13); }
.vx-footer-bottom .elementor-widget-text-editor{ font-size:13.5px; color:rgba(255,255,255,.55); }
.vx-footer-bottom .elementor-widget-text-editor p{ color:rgba(255,255,255,.55); }
.vx-footer .dsh-cookie-settings-button,
.vx-footer .dsh-privacy-policy-button,
.vx-footer .elementor-widget-shortcode button,
.vx-footer .elementor-widget-shortcode a{
  display:inline-block; background:transparent; border:1px solid rgba(255,255,255,.3);
  color:rgba(255,255,255,.78); font-family:'Inter',sans-serif; font-size:13.5px;
  padding:9px 16px; border-radius:2px; text-decoration:none; cursor:pointer;
  margin:0 8px 8px 0;
}
.vx-footer .elementor-widget-shortcode button:hover,
.vx-footer .elementor-widget-shortcode a:hover{ border-color:#fff; color:#fff; text-decoration:none; }

/* ---------- some ---------- */
.vx-social .elementor-grid-item a{ color:rgba(255,255,255,.72); }
.vx-social .elementor-grid-item a:hover{ color:#fff; }

/* ---------- tietosuojaseloste ---------- */
.vx-legal h2{ font-size:22px; margin:34px 0 12px; }
.vx-legal h3{ font-size:18px; margin:24px 0 10px; }
.vx-legal p,.vx-legal li{ font-size:16px; line-height:1.7; }
.vx-legal table{ width:100%; border-collapse:collapse; font-size:14.5px; margin-top:18px; }
.vx-legal table th,.vx-legal table td{
  border:1px solid var(--vx-line); padding:10px 12px; text-align:left; vertical-align:top;
}
.vx-legal table th{ background:var(--vx-surface); font-weight:600; }

/* ---------- mobiili ---------- */
@media (max-width:767px){
  .vx-card .elementor-widget-image img{ height:190px; }
  .vx-step .elementor-widget-image img{ height:200px; }
}

/* ---------- ruudukot ---------- */
.e-con.vx-row{ --width:100%; }
@media (min-width:768px){
  .vx-grid-2 .e-con.vx-col{ --width:auto; flex:0 1 calc((100% - 36px)/2); }
  .vx-grid-3 .e-con.vx-col{ --width:auto; flex:0 1 calc((100% - 64px)/3); }
  .vx-grid-4 .e-con.vx-col{ --width:auto; flex:0 1 calc((100% - 92px)/4); }
  .vx-split .e-con.vx-col-a{ --width:auto; flex:0 1 calc(54% - 26px); }
  .vx-split .e-con.vx-col-b{ --width:auto; flex:0 1 calc(46% - 26px); }
  .vx-split-half .e-con.vx-col-a{ --width:auto; flex:0 1 calc(50% - 26px); }
  .vx-split-half .e-con.vx-col-b{ --width:auto; flex:0 1 calc(50% - 26px); }
}
@media (min-width:768px) and (max-width:1024px){
  .vx-grid-4 .e-con.vx-col{ flex:0 1 calc((100% - 36px)/2); }
  .vx-grid-3 .e-con.vx-col{ flex:0 1 calc((100% - 36px)/2); }
  .vx-grid-3 .e-con.vx-col:first-child:nth-last-child(3){ flex:0 1 100%; }
}
@media (max-width:767px){
  .e-con.vx-col,.e-con.vx-col-a,.e-con.vx-col-b{ --width:auto; flex:1 1 100%; }
}

/* ---------- ylätunnisteen rivi ---------- */
.vx-header-row{ --width:100%; }
.vx-header-row .elementor-widget-nav-menu{ flex:1 1 auto; }
.vx-topbar-row{ --width:100%; }
@media (max-width:767px){ .vx-topbar{ display:none !important; } }
@media (max-width:1299px){
  .vx-header-row .vx-header-cta{ display:none !important; }
}

/* ---------- alatunnisteen rivi ---------- */
@media (min-width:900px){
  .vx-footer-grid .e-con.vx-col{ --width:auto; flex:0 1 calc(22% - 28px); }
  .vx-footer-grid .e-con.vx-col:first-child{ flex:0 1 calc(34% - 28px); }
}
@media (min-width:768px) and (max-width:899px){
  .vx-footer-grid .e-con.vx-col{ --width:auto; flex:0 1 calc(50% - 22px); }
}

/* ---------- ylätunnisteen solut ---------- */
.vx-header-row .elementor-widget-image{ flex:0 0 auto; width:auto; }
.vx-header-row .vx-header-cta{ flex:0 0 auto; width:auto; white-space:nowrap; }
.vx-header-row .elementor-widget-nav-menu{ flex:1 1 auto; min-width:0; }
.vx-header-row .elementor-menu-toggle{ margin-left:auto; }
.vx-header .elementor-nav-menu--main .elementor-nav-menu{ justify-content:flex-end; }
.vx-header .elementor-menu-toggle svg{ fill:#16181A; }
@media (max-width:1024px){
  .vx-header .elementor-nav-menu--dropdown{
    left:0 !important; right:0 !important; width:100% !important; max-width:100% !important;
    background:#fff; border-top:1px solid var(--vx-line);
    box-shadow:0 12px 26px rgba(0,0,0,.09);
  }
  .vx-header .elementor-nav-menu--dropdown .elementor-item{
    color:var(--vx-ink) !important; border-bottom:1px solid var(--vx-line);
  }
}
.vx-topbar-row .elementor-widget-text-editor{ margin-bottom:0; }
.vx-topbar .elementor-widget-text-editor p{ margin:0; }

/* ---------- widgettien perusvälit ---------- */
.vx-hero-btns .elementor-widget-button{ width:auto; flex:0 0 auto; }
.vx-hero-btns{ --width:auto; }
.e-con.vx-hero-btns{ margin-top:10px; }
.vx-footer-bottom .elementor-widget-shortcode{ width:auto; flex:0 0 auto; }

/* ---------- footerin valkoinen logo ---------- */
.vx-footer .vx-footer-logo img{ height:74px; width:auto; display:block; }

/* ---------- ikonilistojen tasaus ---------- */
.vx-footer .elementor-icon-list-item{ align-items:flex-start; }
.vx-footer .elementor-icon-list-icon{ margin-top:5px; }
.vx-footer .elementor-icon-list-icon i{ font-size:5px; }
.vx-footer .elementor-icon-list-items{ gap:0; }
.vx-nap .elementor-icon-list-icon i{ font-size:5px; }
.vx-nap .elementor-icon-list-icon{ margin-top:8px; }

/* ---------- galleria: tasakorkeat ruudut ---------- */
.vx-gallery .gallery-item img{ aspect-ratio:4/3; }

/* ---------- korttien tasakorkeus ---------- */
.vx-grid-4 .e-con.vx-card, .vx-grid-3 .e-con.vx-card, .vx-grid-2 .e-con.vx-card{
  align-self:stretch;
}
.e-con.vx-card{ display:flex; flex-direction:column; }
.e-con.vx-card .e-con.vx-card-body{ flex:1 1 auto; display:flex; flex-direction:column; }
.e-con.vx-card .vx-card-link{ margin-top:auto; padding-top:14px; }

/* ---------- vaiheiden ja perustelujen tasaus ---------- */
.vx-grid-3 .e-con.vx-step, .vx-grid-4 .e-con.vx-reason,
.vx-grid-3 .e-con.vx-reason, .vx-grid-3 .e-con.vx-fact{ align-self:stretch; }

/* ---------- heron mitta ---------- */
.vx-hero-h1 .elementor-heading-title{ max-width:960px; }
.vx-phero-h1 .elementor-heading-title{ max-width:840px; }

/* ---------- mobiilivalikko koko headerin levyiseksi ---------- */
@media (max-width:1024px){
  .vx-header{ position:relative; }
  .vx-header .elementor-widget-nav-menu > .elementor-widget-container{ position:static; }
  .vx-header .elementor-nav-menu--dropdown{
    position:absolute !important; top:100% !important;
    left:0 !important; right:0 !important;
    width:100% !important; max-width:100% !important;
  }
  .vx-header .elementor-widget-image img{ height:46px; }
  .vx-header{ padding-top:12px; padding-bottom:12px; }
}

/* ---------- kiinnittyvä ylätunniste ---------- */
.vx-header.elementor-sticky--effects{ box-shadow:0 2px 14px rgba(0,0,0,.08); }

/* ---------- mobiilivalikko: korjaus ---------- */
@media (max-width:1024px){
  .vx-header .elementor-widget-nav-menu{
    position:static !important; display:flex; justify-content:flex-end;
  }
  .vx-header .elementor-nav-menu--dropdown{
    position:absolute !important; top:100% !important;
    left:0 !important; right:0 !important;
    width:100% !important; max-width:100% !important;
  }
  .vx-header .elementor-menu-toggle{ background:transparent !important; }
  .vx-header .elementor-menu-toggle i,
  .vx-header .elementor-menu-toggle svg{ color:#16181A; fill:#16181A; }
  .vx-header .elementor-nav-menu--dropdown .elementor-item{
    background:#fff !important; color:#16181A !important;
  }
  .vx-header .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
  .vx-header .elementor-nav-menu--dropdown .elementor-item:hover{
    background:#F6F5F3 !important; color:#16181A !important;
  }
}

@media (max-width:1024px){
  .vx-header .elementor-widget-nav-menu,
  .vx-header .elementor-widget-nav-menu > .elementor-widget-container{ width:100%; }
  .vx-header .elementor-menu-toggle{ margin-left:auto !important; }
}

/* ---------- kevyemmät kortit (ei laatikkoa) ---------- */
.e-con.vx-card{ background:transparent; border:0; border-top:2px solid var(--vx-ink);
  border-radius:0; }
.e-con.vx-card .e-con.vx-card-body{ padding:22px 0 0; }

/* ---------- kevyt paneeli ---------- */
.e-con.vx-panel{ border-top:2px solid var(--vx-ink); }

/* ---------- yläpalkki mobiilissa ---------- */
@media (max-width:767px){
  .vx-topbar{ display:flex !important; }
  .vx-topbar .vx-topbar-area,
  .vx-topbar .vx-topbar-sep,
  .vx-topbar .vx-topbar-mail{ display:none; }
  .vx-topbar-row{ flex-direction:row !important; }
  .vx-topbar-row .e-con.vx-col-a{ display:none; }
  .vx-topbar-row .e-con.vx-col-b{ flex:1 1 100%; align-items:center; }
  .vx-topbar .elementor-widget-text-editor{ text-align:center; font-size:14px; }
  .vx-topbar a{ font-weight:600; }
}

/* ---------- honeypot ---------- */
.elementor-field-group.vx-honeypot{
  position:absolute !important; left:-9999px !important; width:1px !important;
  height:1px !important; overflow:hidden !important;
}

/* ---------- ukk ---------- */
.vx-faq .elementor-accordion-item:first-child{ border-top:1px solid var(--vx-line); }

/* ---------- rahoituskumppanin logo ---------- */
.vx-op-logo img{ width:120px; height:auto; display:block; }
.vx-op-logo{ text-align:left; margin-top:6px; }

/* ---------- mobiiliheaderin lopullinen tasaus ---------- */
@media (max-width:1024px){
  .vx-header-row{ justify-content:space-between; align-items:center; }
  .vx-header .elementor-widget-nav-menu,
  .vx-header .elementor-widget-nav-menu > .elementor-widget-container{
    width:auto; flex:0 0 auto;
  }
  .vx-header .elementor-menu-toggle{ margin:0 !important; }
}

/* ---------- honeypot piiloon (Elementorin oma kenttäluokka) ---------- */
.elementor-field-group-vx_hp{
  position:absolute !important; left:-9999px !important; top:auto !important;
  width:1px !important; height:1px !important; overflow:hidden !important;
  margin:0 !important; padding:0 !important;
}

/* ---------- kiinnittyvä ylätunniste (CSS, ei Elementorin JS) ----------
   Koko header-lohko on sticky ja yläpalkin korkeus vieritetään pois
   negatiivisella topilla, jolloin vain valikkorivi jää kiinni. */
header.elementor-location-header{ position:sticky; top:-37px; z-index:99; }
@media (max-width:767px){ header.elementor-location-header{ top:-38px; } }
.vx-header{ position:relative; z-index:99; }
html{ scroll-padding-top:110px; }

/* ---------- yläpalkin kiinteä korkeus (sticky-offset riippuu tästä) ---------- */
.vx-topbar{ height:37px; padding-top:0 !important; padding-bottom:0 !important;
  overflow:hidden; justify-content:center; }
.vx-topbar .vx-topbar-row{ flex-wrap:nowrap !important; align-items:center; }
.vx-topbar .elementor-widget-text-editor p{ white-space:nowrap; overflow:hidden;
  text-overflow:ellipsis; }
@media (max-width:767px){
  .vx-topbar{ height:38px; }
}

/* ---------- heron ingressin mitta (Elementorin post-CSS asettaa max-width:100%) ---------- */
.vx-hero-sub{ max-width:700px !important; }
.vx-phero-sub{ max-width:640px !important; }
