/* Lohjan Putkityöt — sivuston tyylit */
:root{
  --lp-sin:#0E76BC; --lp-sin-t:#0A4E7D; --lp-pun:#ED1C24;
  --lp-tumma:#10202F; --lp-teksti:#1D2733; --lp-harmaa:#55616F;
  --lp-vaalea:#F2F6FA; --lp-raja:#DEE5EC;
}
body{ -webkit-font-smoothing:antialiased; }

/* Sarakeleveydet (flex-riveissä gap 26px) — Elementor lukee --width */
.lp-w-50{ --width:calc(50% - 13px) !important; width:calc(50% - 13px) !important; }
.lp-w-33{ --width:calc(33.333% - 18px) !important; width:calc(33.333% - 18px) !important; }
.lp-w-25{ --width:calc(25% - 20px) !important; width:calc(25% - 20px) !important; }
.lp-w-60{ --width:calc(60% - 22px) !important; width:calc(60% - 22px) !important; }
.lp-w-40{ --width:calc(40% - 22px) !important; width:calc(40% - 22px) !important; }
.lp-w-66{ --width:calc(66.666% - 13px) !important; width:calc(66.666% - 13px) !important; }
.lp-w-34{ --width:calc(33.333% - 13px) !important; width:calc(33.333% - 13px) !important; }
@media (max-width:1024px){
  .lp-w-25{ --width:calc(50% - 13px) !important; width:calc(50% - 13px) !important; }
  .lp-w-33,.lp-w-34{ --width:calc(50% - 13px) !important; width:calc(50% - 13px) !important; }
  .lp-w-60,.lp-w-40{ --width:calc(50% - 13px) !important; width:calc(50% - 13px) !important; }
}
@media (max-width:767px){
  .lp-w-50,.lp-w-33,.lp-w-25,.lp-w-60,.lp-w-40,.lp-w-66,.lp-w-34{ --width:100% !important; width:100% !important; }
}

/* Otsikkovärit — kitin globaalisävy ei riitä */
.elementor-widget-heading h1.elementor-heading-title,
.elementor-widget-heading h2.elementor-heading-title,
.elementor-widget-heading h3.elementor-heading-title,
.elementor-widget-heading h4.elementor-heading-title{ color:var(--lp-tumma); }
.lp-teksti-valk .elementor-heading-title{ color:#fff; }

/* Ikonilistan teksti */
.elementor-icon-list-item, .elementor-icon-list-text{ color:var(--lp-teksti); }
.elementor-icon-list-text a{ color:inherit; text-decoration:none; }
.elementor-icon-list-text a:hover{ color:var(--lp-sin); }

/* Kuvat täyttävät sarakkeen */
.elementor-widget-image img{ height:auto; }
.lp-kuva-tayta img{ width:100%; }

/* Leipätekstin luettavuus */
.lp-lead, .lp-lead p{ font-size:19px; line-height:1.65; color:var(--lp-harmaa); }
@media (max-width:767px){ .lp-lead, .lp-lead p{ font-size:17px; } }
.lp-mitta{ max-width:760px; }
.lp-teksti-valk, .lp-teksti-valk p, .lp-teksti-valk li{ color:rgba(255,255,255,.88); }

/* Palvelukortti */
.lp-kortti{ overflow:hidden; background:#fff; transition:box-shadow .2s ease, transform .2s ease; }
.lp-kortti:hover{ box-shadow:0 12px 30px rgba(16,32,47,.13); transform:translateY(-3px); }
.lp-kortti .elementor-widget-image img{ display:block; width:100%; height:210px; object-fit:cover; }
.lp-kortti .elementor-widget-image{ line-height:0; }
.lp-kortti-sis{ padding:22px 24px 26px; }
.lp-kortti-sis .elementor-widget-heading{ margin-bottom:8px; }

/* Lukukortti (numerot) */
.lp-luku .elementor-heading-title{ font-size:40px; line-height:1.05; color:var(--lp-sin); letter-spacing:-.5px; }
@media (max-width:767px){ .lp-luku .elementor-heading-title{ font-size:32px; } }

/* Hero */
.lp-hero{ min-height:560px; }
.lp-hero .elementor-heading-title{ text-shadow:0 2px 14px rgba(8,20,32,.35); }
@media (max-width:767px){ .lp-hero{ min-height:440px; } }
.lp-sivuhero{ min-height:330px; }
@media (max-width:767px){ .lp-sivuhero{ min-height:250px; } }

/* Napit rinnakkain */
.lp-napit{ display:flex; flex-wrap:wrap; gap:14px; }
.lp-napit .elementor-widget{ width:auto; }
.elementor-button{ transition:background-color .18s ease, color .18s ease; }

/* Toggle / UKK */
.lp-ukk .elementor-toggle .elementor-tab-title{
  font-family:Montserrat,sans-serif; font-weight:600; font-size:18px;
  border-bottom:1px solid var(--lp-raja); padding:18px 4px;
}
.lp-ukk .elementor-toggle .elementor-tab-content{ border:0; padding:4px 4px 22px; color:var(--lp-harmaa); }
.lp-ukk .elementor-toggle .elementor-tab-title.elementor-active{ color:var(--lp-sin); }

/* Referenssitaulukko */
.lp-ref-ryhma{ break-inside:avoid; }
.lp-ref-ryhma .elementor-widget-heading .elementor-heading-title{
  font-size:14px; letter-spacing:.06em; text-transform:uppercase; color:var(--lp-sin);
}
.lp-ref-ryhma .elementor-widget-text-editor, .lp-ref-ryhma .elementor-widget-text-editor p{ color:var(--lp-harmaa); font-size:15.5px; line-height:1.6; }

/* Yhteystietorivi */
.lp-yht a{ color:inherit; text-decoration:none; }
.lp-yht a:hover{ text-decoration:underline; }

/* Sertifikaatit */
.lp-sertit img{ max-height:120px; width:auto; }

/* Elementor-lomake */
.lp-lomake .elementor-field-group > label{
  font-family:Montserrat,sans-serif; font-weight:600; font-size:14.5px; color:var(--lp-tumma); margin-bottom:7px;
}
.lp-lomake .elementor-field-textual{
  border:1px solid var(--lp-raja); border-radius:4px; padding:13px 14px; font-size:16px; background:#fff;
}
.lp-lomake .elementor-field-textual:focus{ border-color:var(--lp-sin); box-shadow:0 0 0 3px rgba(14,118,188,.13); outline:none; }
.lp-lomake .elementor-field-type-radio .elementor-field-subgroup,
.lp-lomake .elementor-field-type-checkbox .elementor-field-subgroup{ gap:6px 22px; }
.lp-lomake .elementor-field-subgroup label{ font-weight:400; font-size:16px; }
.lp-lomake .elementor-button{ width:100%; }
@media (min-width:768px){ .lp-lomake .elementor-button{ width:auto; min-width:220px; } }

/* Header */
.lp-header{ box-shadow:0 1px 0 var(--lp-raja); }
.lp-navi .elementor-item{
  font-family:Montserrat,sans-serif; font-weight:600; font-size:15px; letter-spacing:.01em;
}
.lp-header .elementor-nav-menu--dropdown{ width:100%; }
.lp-header .elementor-nav-menu--dropdown a{ font-size:16px; padding:14px 20px; }
.lp-ylapalkki a{ color:#fff; text-decoration:none; }
.lp-ylapalkki a:hover{ text-decoration:underline; }

/* Footer */
.lp-footer, .lp-footer p, .lp-footer li{ color:rgba(255,255,255,.80); font-size:15.5px; }
.lp-footer a{ color:rgba(255,255,255,.80); text-decoration:none; }
.lp-footer a:hover{ color:#fff; text-decoration:underline; }
.lp-footer .elementor-heading-title{ color:#fff; font-size:16px; letter-spacing:.05em; text-transform:uppercase; }
.lp-footer .elementor-icon-list-item, .lp-footer .elementor-icon-list-text{ color:rgba(255,255,255,.80); }
.lp-footer-alarivi, .lp-footer-alarivi p{ color:rgba(255,255,255,.55); font-size:14px; }
.lp-footer-napit .dsh-cookie-settings-button,
.lp-footer-napit .dsh-privacy-policy-button,
.lp-footer-napit a, .lp-footer-napit button{
  display:inline-block; margin:0 14px 8px 0; padding:9px 16px; font-size:13.5px;
  border:1px solid rgba(255,255,255,.35); border-radius:4px; background:transparent;
  color:rgba(255,255,255,.80); cursor:pointer; font-family:Montserrat,sans-serif;
}
.lp-footer-napit a:hover, .lp-footer-napit button:hover{ border-color:#fff; color:#fff; text-decoration:none; }

/* Tietosuojaseloste */
.lp-selostus h2{ font-size:24px; margin:34px 0 12px; }
.lp-selostus h3{ font-size:19px; margin:24px 0 10px; }
.lp-selostus p, .lp-selostus li{ color:var(--lp-harmaa); }
.lp-selostus table{ width:100%; border-collapse:collapse; margin:18px 0; font-size:15px; }
.lp-selostus th, .lp-selostus td{ border:1px solid var(--lp-raja); padding:10px 12px; text-align:left; }
.lp-selostus th{ background:var(--lp-vaalea); font-family:Montserrat,sans-serif; }

/* Video */
.lp-video .elementor-wrapper{ border-radius:6px; overflow:hidden; }

/* Elementorin sisäkontit eivät saa tuplatäytettä */
.elementor-element.e-con.e-con-inner{ padding-left:0; padding-right:0; }

/* Header-sarakkeet */
.lp-header .lp-logo{ width:230px; flex:0 0 auto; }
.lp-header .lp-navi-col{ flex:1 1 auto; width:auto; min-width:0; }
.lp-header .lp-cta-col{ flex:0 0 auto; width:auto; }
@media (max-width:1024px){
  .lp-header .lp-cta-col{ display:none; }
  .lp-header .lp-navi-col{ flex:0 0 auto; }
  .lp-header .lp-logo{ width:190px; }
}
/* Mobiilissa CTA omalle riville */
@media (max-width:767px){
  .lp-header .e-con-inner .e-con{ flex-wrap:wrap !important; }
  .lp-header .lp-cta-col{ display:flex !important; width:100% !important; --width:100% !important; order:3; margin-top:10px; }
  .lp-header .lp-cta-col .elementor-widget-button, .lp-header .lp-cta-col .elementor-button{ width:100%; }
  .lp-header .lp-logo{ width:158px; }
  .lp-header .lp-navi-col{ margin-left:auto; }
}
@media (max-width:480px){ .lp-header .lp-logo{ width:165px; } }

/* Yläpalkki piiloon kapeilla */
@media (max-width:900px){ .lp-piilo-mob{ display:none !important; } }
@media (max-width:600px){ .lp-ylapalkki .elementor-icon-list-item{ font-size:13px; } }

/* Mobiilivalikko koko leveydelle */
.lp-header .elementor-nav-menu--dropdown{ width:100vw; max-width:100vw; left:0; }
.lp-header nav.elementor-nav-menu--dropdown{ box-shadow:0 14px 26px rgba(16,32,47,.14); }

/* Keskitetyt otsikkoblokit */
.lp-otsikko-keski{ align-items:center; }

/* Referenssiotsikot */
.lp-ref-otsikko .elementor-heading-title{ color:var(--lp-sin); }

/* Ikonilistan linkit perivät värin */
.elementor-icon-list-text a{ color:inherit; text-decoration:none; }
.elementor-icon-list-text a:hover{ text-decoration:underline; }

/* Sisältökuvat täyttävät sarakkeen; logot ja tunnukset eivät */
.lp-kuva-tayta, .lp-kuva-tayta img{ width:100% !important; height:auto; display:block; }

/* Sarakeleveydet gapin mukaan (summa = 100% - gapit) */
@media (min-width:1025px){
  .lp-gap-44 .lp-w-50{ --width:calc(50% - 22px) !important; width:calc(50% - 22px) !important; }
  .lp-gap-44 .lp-w-33{ --width:calc(33.333% - 29.3px) !important; width:calc(33.333% - 29.3px) !important; }
  .lp-gap-36 .lp-w-33{ --width:calc(33.333% - 24px) !important; width:calc(33.333% - 24px) !important; }
  .lp-gap-36 .lp-w-50{ --width:calc(50% - 18px) !important; width:calc(50% - 18px) !important; }
  .lp-gap-18 .lp-w-50{ --width:calc(50% - 9px) !important; width:calc(50% - 9px) !important; }
}
@media (min-width:768px) and (max-width:1024px){
  .lp-gap-44 .lp-w-50,.lp-gap-44 .lp-w-33,.lp-gap-36 .lp-w-33,.lp-gap-36 .lp-w-50{
    --width:calc(50% - 22px) !important; width:calc(50% - 22px) !important; }
}

/* Palvelukortin nappi kortin alalaitaan */
.lp-kortti{ display:flex; flex-direction:column; }
.lp-kortti .lp-kortti-sis{ flex:1 1 auto; display:flex; flex-direction:column; }
.lp-kortti .lp-kortti-sis .elementor-widget-button{ margin-top:auto; }

/* Valikko yhdelle riville */
.lp-navi .elementor-nav-menu--main{ flex-wrap:nowrap; }
.lp-navi .elementor-nav-menu--main .elementor-item{ white-space:nowrap; }
@media (min-width:1025px) and (max-width:1400px){
  .lp-navi .elementor-nav-menu--main .elementor-item{ font-size:13.5px; padding-left:7px; padding-right:7px; }
  .lp-header .lp-logo{ width:162px; }
  .lp-header .lp-cta-col .elementor-button{ padding:13px 16px; font-size:13.5px; }
}
.lp-header .lp-cta-col .elementor-button{ padding:14px 20px; }

/* Mobiiliotsikoiden koko */
@media (max-width:767px){
  .lp-hero .elementor-heading-title{ font-size:29px !important; line-height:1.16 !important; }
  .lp-sivuhero .elementor-heading-title{ font-size:26px !important; line-height:1.18 !important; }
  .lp-hero{ min-height:0; }
}
/* Evästetaulukko vieritettäväksi kapealla */
.dsh-cookie-list, .lp-selostus .dsh-cookie-list{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.dsh-cookie-list__table{ min-width:520px; }
#dsh-cookie-modal .dsh-cookie-list{ overflow-x:auto; }
