/*
 * Tekkor v2 — komponenttityylit.
 *
 * KOOTTU TIEDOSTOSTA scripts/v2-tyylit.css. Älä muokkaa tätä suoraan:
 * muutos katoaa seuraavassa viennissä. Muokkaa lähdettä ja aja
 * node --env-file=.env scripts/vie-teemaan.mjs --confirm
 *
 * Kaikki säännöt on skoopattu .tekkor-v2-luokalla tai :has(.tekkor-v2):lla,
 * joten tämä tiedosto ei voi muuttaa sivuja joilla ei ole v2-sisältöä —
 * vaikka se latautuu jokaisella sivulla.
 */
/* --- Teeman kuoren nollaus v2-sivuilla ---------------------------------
   Sivustonlaajuinen saanto asettaa bodyn tummaksi v1:ta varten.
   v2 on vaalea, joten se kumotaan niilla sivuilla joilla on v2-sisaltoa. */
body:has(.tekkor-v2),
body:has(.tekkor-v2) .site-main,
body:has(.tekkor-v2) .page-content,
body:has(.tekkor-v2) .woocommerce {
    background-color: #FFFFFF !important;
}

/* Hello Elementor tulostaa oman sivuotsikkopalkkinsa ja rajaa sisallon
   leveytta. v2:ssa otsikko on osa heroa ja osiot vievat koko leveyden. */
body:has(.tekkor-v2) .page-header { display: none !important; }
body:has(.tekkor-v2) .site-main,
body:has(.tekkor-v2) .page-content {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

/* ==========================================================================
   TEKKOR REDESIGN v2
   Lahde: tenant/tekkor/design-tokens.json (Tekkor.fi v2.html)

   SKOOPPI: jokainen saanto alkaa .tekkor-v2:lla. Luokka on vain v2-templatejen
   containereissa, joten tama lohko ei voi muuttaa yhtakaan livesivua. Alla
   olevat v1-lohkot jaavat koskemattomiksi ja ohjaavat yha livea.

   !important on tarpeen koska Elementor kirjoittaa per-elementti-CSS:n
   korkeammalla spesifisyydella (.elementor-<sivu> .elementor-element
   .elementor-element-<id>) kuin yksi luokka.
   ========================================================================== */

/* --- Perusta ------------------------------------------------------------- */
.tekkor-v2,
.tekkor-v2 .e-con {
    --gap: 0px;
    row-gap: 0;
    column-gap: 0;
}
.tekkor-v2 {
    font-family: 'DM Sans', system-ui, sans-serif;
    padding: 0 !important;
    width: 100%;
    max-width: none !important;
}
.tekkor-v2 .elementor-widget:not(:last-child) { margin-bottom: 0; }

/* Sisallon 1240px-rajaus. Tausta ja viivat leviavat containerissa reunasta
   reunaan, sisus keskittaa. */
.tekkor-v2-sisus {
    width: 100% !important;
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 0 40px !important;
}

/* Osioiden pystyrytmi. Tumma palvelut-vyo on designissa matalampi (112). */
.tekkor-v2-osio > .tekkor-v2-sisus {
    padding-top: 128px !important;
    padding-bottom: 128px !important;
}
.tekkor-v2-palvelut > .tekkor-v2-sisus {
    padding-top: 112px !important;
    padding-bottom: 112px !important;
}

/* Osiotaustat. Sivurytmi: vaalea - vaalea sivelty - tumma - vaalea. */
.tekkor-v2-kayttovoimat { background-color: #FFFFFF !important; }
.tekkor-v2-merkit       { background-color: #F5F7FA !important; }
.tekkor-v2-palvelut     { background-color: #0D1B2E !important; }
.tekkor-v2-cta          { background-color: #FFFFFF !important; }

/* --- Typografia ---------------------------------------------------------- */
.tekkor-v2 .tekkor-v2-kicker .elementor-heading-title {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #2F6FB8;
    line-height: 1.2;
}
.tekkor-v2 .tekkor-v2-kicker--vaalea .elementor-heading-title { color: #8FB6E4; }
.tekkor-v2 .tekkor-v2-kicker { margin-bottom: 18px; }

.tekkor-v2 .tekkor-v2-hero-h1 .elementor-heading-title {
    font-size: 62px;
    line-height: 1.04;
    letter-spacing: -0.03em;
    font-weight: 600;
    color: #FFFFFF;
    text-wrap: pretty;
}
.tekkor-v2 .tekkor-v2-hero-h1 { margin-bottom: 24px; }

.tekkor-v2 .tekkor-v2-h2 .elementor-heading-title {
    font-size: 42px;
    line-height: 1.12;
    letter-spacing: -0.025em;
    font-weight: 600;
    color: #0D1B2E;
}
.tekkor-v2 .tekkor-v2-h2--vaalea .elementor-heading-title { color: #FFFFFF; }
.tekkor-v2 .tekkor-v2-h2--cta .elementor-heading-title {
    font-size: 38px;
    line-height: 1.15;
    text-wrap: pretty;
}

.tekkor-v2 .tekkor-v2-h3 .elementor-heading-title {
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: #0D1B2E;
    line-height: 1.25;
}

.tekkor-v2 .tekkor-v2-lead,
.tekkor-v2 .tekkor-v2-lead p {
    font-size: 17px;
    line-height: 1.65;
    color: #4A5769;
    margin: 0;
}
.tekkor-v2 .tekkor-v2-hero-lead,
.tekkor-v2 .tekkor-v2-hero-lead p {
    font-size: 19px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.72);
    max-width: 470px;
    margin: 0;
}
.tekkor-v2 .tekkor-v2-hero-lead { margin-bottom: 36px; }

.tekkor-v2 .tekkor-v2-meta .elementor-heading-title {
    font-size: 13px;
    font-weight: 400;
    color: #5E6B80;
    white-space: nowrap;
    line-height: 1.4;
}

/* --- Napit --------------------------------------------------------------- */
/* Designissa napit ovat 2px pyoristettyja ja ainoa oranssi pinta koko sivulla.
   Elementorin oma nappityyli nollataan kokonaan. */
.tekkor-v2 .tekkor-v2-nappi .elementor-button {
    border-radius: 2px !important;
    border: 1px solid transparent !important;
    padding: 14px 28px !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    line-height: 1.2 !important;
    white-space: nowrap;
    transition: background-color .2s, color .2s, border-color .2s !important;
    box-shadow: none !important;
    fill: currentColor;
}
.tekkor-v2 .tekkor-v2-nappi--oranssi .elementor-button {
    background-color: #E8892B !important;
    color: #FFFFFF !important;
}
.tekkor-v2 .tekkor-v2-nappi--oranssi .elementor-button:hover {
    background-color: #D47C22 !important;
}
.tekkor-v2 .tekkor-v2-nappi--reuna-vaalea .elementor-button {
    background-color: transparent !important;
    color: #FFFFFF !important;
    border-color: rgba(255, 255, 255, 0.45) !important;
}
.tekkor-v2 .tekkor-v2-nappi--reuna-vaalea .elementor-button:hover {
    background-color: rgba(255, 255, 255, 0.12) !important;
}
.tekkor-v2 .tekkor-v2-nappi--reuna-tumma .elementor-button {
    background-color: transparent !important;
    color: #0D1B2E !important;
    border-color: #0D1B2E !important;
}
.tekkor-v2 .tekkor-v2-nappi--reuna-tumma .elementor-button:hover {
    background-color: #0D1B2E !important;
    color: #FFFFFF !important;
}

.tekkor-v2 .tekkor-v2-napit {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    width: auto !important;
}

/* --- Nuolilinkit --------------------------------------------------------- */
.tekkor-v2 .tekkor-v2-nuoli {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14.5px;
    font-weight: 600;
    color: #2F6FB8;
    text-decoration: none;
    line-height: 1.4;
}
.tekkor-v2 .tekkor-v2-nuoli-karki {
    display: inline-block;
    transition: transform .2s;
}
.tekkor-v2 .tekkor-v2-nuoli:hover .tekkor-v2-nuoli-karki { transform: translateX(5px); }
.tekkor-v2 .tekkor-v2-nuolilinkki--vaalea .tekkor-v2-nuoli { color: #FFFFFF; font-size: 15px; }
.tekkor-v2 .tekkor-v2-nuolilinkki--pelkka .tekkor-v2-nuoli { font-size: 18px; }

/* Rivin hover siirtaa nuolta, ei pelkka nuolen oma hover. */
.tekkor-v2 .tekkor-v2-kortti:hover .tekkor-v2-nuoli-karki,
.tekkor-v2 .tekkor-v2-merkkirivi:hover .tekkor-v2-nuoli-karki { transform: translateX(5px); }

/* ==========================================================================
   HEADER
   ========================================================================== */
.tekkor-v2-header {
    position: fixed !important;
    top: 0; left: 0; right: 0;
    z-index: 50;
    background: transparent;
    transition: background-color .35s;
}
.tekkor-v2-header.on-tumma,
.tekkor-v2-header.on-auki {
    background-color: rgba(13, 27, 46, 0.98);
    backdrop-filter: blur(10px);
}
.tekkor-v2-header-sisalto {
    width: 100% !important;
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 0 40px !important;
    height: 72px;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
}
.tekkor-v2-header .tekkor-v2-logo { width: auto !important; }
.tekkor-v2-header .tekkor-v2-logo img {
    height: 24px;
    width: auto;
    display: block;
    filter: brightness(0) invert(1);
}

.tekkor-v2-navi {
    width: auto !important;
    margin-left: auto !important;
    display: flex;
    align-items: center;
}
.tekkor-v2-navi .elementor-widget-container {
    display: flex;
    align-items: center;
    gap: 2px;
}
.tekkor-v2 .tekkor-v2-navilinkki {
    font-size: 15px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.72);
    padding: 8px 16px;
    text-decoration: none;
    transition: color .18s;
    white-space: nowrap;
}
.tekkor-v2 .tekkor-v2-navilinkki:hover,
.tekkor-v2 .tekkor-v2-navilinkki.on-aktiivinen { color: #FFFFFF; }
.tekkor-v2 .tekkor-v2-navilinkki.on-aktiivinen { font-weight: 600; }

.tekkor-v2-header-nappi { width: auto !important; margin-left: 18px !important; }
.tekkor-v2 .tekkor-v2-header-nappi .elementor-button {
    padding: 10px 20px !important;
    font-size: 14px !important;
}

/* Hampurilainen ja mobiilipaneeli elavat yhdessa html-widgetissa. */
.tekkor-v2-header-toiminnot { width: auto !important; }
/* Hello Elementor tyylittaa kaikki <button>-elementit teeman korostusvarilla.
   Se osui hampurilaiseen ja teki siita oranssin laatikon, joten nollataan. */
.tekkor-v2 .tekkor-v2-hampurilainen {
    display: none;
    background: none !important;
    background-color: transparent !important;
    color: #FFFFFF !important;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.35) !important;
    border-radius: 2px;
    width: 44px;
    height: 40px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    cursor: pointer;
    padding: 0;
}
.tekkor-v2-hampurilainen span {
    width: 18px;
    height: 1.5px;
    background: #FFFFFF;
    transition: transform .22s;
}
.tekkor-v2-header.on-auki .tekkor-v2-hampurilainen span:first-child {
    transform: translateY(3.25px) rotate(45deg);
}
.tekkor-v2-header.on-auki .tekkor-v2-hampurilainen span:last-child {
    transform: translateY(-3.25px) rotate(-45deg);
}

.tekkor-v2-mobiilivalikko {
    position: absolute;
    top: 72px; left: 0; right: 0;
    overflow: hidden;
    max-height: 0;
    background-color: rgba(13, 27, 46, 0.98);
    transition: max-height .32s cubic-bezier(.22, .61, .36, 1);
    border-top: 1px solid transparent;
}
.tekkor-v2-header.on-auki .tekkor-v2-mobiilivalikko {
    max-height: 420px;
    border-top-color: rgba(255, 255, 255, 0.10);
}
.tekkor-v2-mobiilivalikko-sisalto {
    max-width: 1240px;
    margin: 0 auto;
    padding: 10px 20px 22px;
}
.tekkor-v2-mobiilivalikko a {
    display: block;
    font-size: 17px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.74);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    padding: 15px 0;
    text-decoration: none;
}
.tekkor-v2-mobiilivalikko a.tekkor-v2-mobiilipuhelin {
    display: inline-block;
    border-bottom: none;
    margin-top: 18px;
    font-size: 15px;
    color: #8FB6E4;
    padding: 0;
}

/* ==========================================================================
   HERO
   ========================================================================== */
.tekkor-v2-hero {
    position: relative !important;
    overflow: hidden;
    background-color: #0D1B2E !important;
}
/* Kaksi kerrosta: valokuva vaimennettuna, sen paalla gradienttiverho.
   Taustakuva on taalla eika Elementorissa, koska opacity ja grayscale
   osuisivat muuten myos sisaltoon. Vaihto: korvaa url() alta. */
.tekkor-v2-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('https://tekkor.tuonetti.dev/wp-content/uploads/2024/03/Tekkor_hero_01.webp');
    background-size: cover;
    background-position: center;
    opacity: 0.22;
    filter: grayscale(0.5);
    pointer-events: none;
}
.tekkor-v2-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(96deg, #0D1B2E 12%, rgba(13, 27, 46, 0.90) 48%, rgba(13, 27, 46, 0.55) 100%);
    pointer-events: none;
}
.tekkor-v2-hero > .e-child { position: relative; z-index: 1; }

.tekkor-v2-hero-sisalto {
    width: 100% !important;
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 164px 40px 96px !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 56px !important;
}
/* Designin ruudukko on minmax(0,1.02fr) minmax(0,.98fr) — flex-suhteina
   sama jako, ja se laskee gapin oikein toisin kuin prosenttileveydet. */
.tekkor-v2-hero-teksti {
    flex: 1.02 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
}
.tekkor-v2-hero-kuva {
    flex: 0.98 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    align-items: center !important;
}
/* Designin lapinakyva hero-PNG puuttuu mediakirjastosta. Valkotaustainen
   tuotekuva sijoitetaan vaalealle laatalle — sama 3px pyoristys kuin
   kayttovoimakorteissa, jotta se lukeutuu jarjestelmaan eika irralliseksi.
   Kun lapinakyva kuva saadaan, poista laatta ja jata pelkka drop-shadow. */
.tekkor-v2-hero-kuva .elementor-widget-image {
    background: #F5F7FA;
    border-radius: 3px;
    padding: 28px;
    max-width: 480px;
    width: 100%;
    filter: drop-shadow(0 30px 60px rgba(0, 0, 0, 0.55));
}
.tekkor-v2-hero-kuva img {
    width: 100%;
    display: block;
    mix-blend-mode: multiply;
}

/* Luottamuspalkki: viiva reunasta reunaan, sisalto 1240px:iin rajattuna. */
.tekkor-v2-luottamus {
    border-top: 1px solid rgba(255, 255, 255, 0.10);
    width: 100% !important;
}
.tekkor-v2-luottamus-teksti {
    width: 100% !important;
    max-width: 1240px;
    margin: 0 auto !important;
    padding: 22px 40px !important;
}
.tekkor-v2-luottamus-teksti .elementor-widget-container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 44px;
}
.tekkor-v2-luottamus-teksti span {
    font-size: 13.5px;
    color: rgba(255, 255, 255, 0.62);
    letter-spacing: 0.01em;
}

/* ==========================================================================
   KAYTTOVOIMAT
   ========================================================================== */
.tekkor-v2-intro {
    max-width: 620px !important;
    margin-bottom: 72px !important;
}
.tekkor-v2-intro .tekkor-v2-h2 { margin-bottom: 18px; }
.tekkor-v2-merkit .tekkor-v2-intro { margin-bottom: 64px !important; }

.tekkor-v2-kortit {
    flex-direction: row !important;
    gap: 36px !important;
    align-items: stretch !important;
}
.tekkor-v2-kortti {
    width: 33.333% !important;
    min-width: 0 !important;
    cursor: pointer;
}
.tekkor-v2-kortti-kuva {
    background: #F5F7FA;
    border-radius: 3px;
    overflow: hidden;
    margin-bottom: 24px !important;
    padding: 0 !important;
}
.tekkor-v2-kortti-kuva img {
    width: 100%;
    aspect-ratio: 5 / 4;
    object-fit: contain;
    /* Tuotekuvat ovat valkotaustaisia. multiply poistaa valkoisen pohjan
       #F5F7FA-laattaa vasten. Tama on syy siihen miksi osio on vaalea. */
    mix-blend-mode: multiply;
    display: block;
    transition: transform .5s cubic-bezier(.22, .61, .36, 1);
}
.tekkor-v2-kortti:hover .tekkor-v2-kortti-kuva img { transform: scale(1.04); }

.tekkor-v2-kortti-otsikko {
    flex-direction: row !important;
    align-items: baseline !important;
    gap: 12px !important;
    margin-bottom: 10px !important;
}
.tekkor-v2-kortti-otsikko > * { width: auto !important; }
.tekkor-v2 .tekkor-v2-numero .elementor-heading-title {
    font-size: 12px;
    font-weight: 600;
    color: #5E6B80;
    letter-spacing: 0.08em;
}
.tekkor-v2 .tekkor-v2-kortti-teksti,
.tekkor-v2 .tekkor-v2-kortti-teksti p {
    font-size: 15.5px;
    line-height: 1.65;
    color: #4A5769;
    margin: 0;
}
.tekkor-v2 .tekkor-v2-kortti-teksti { margin-bottom: 18px; }

/* ==========================================================================
   TUOTEMERKIT
   ========================================================================== */
.tekkor-v2-merkkirivi {
    flex-direction: row !important;
    align-items: center !important;
    gap: 48px !important;
    padding: 38px 0 !important;
    cursor: pointer;
}
/* Viiva vain rivien VALIIN, ei ensimmaisen ylle. Sisarusvalitsin on
   luotettavampi kuin :first-child, joka pettaa jos puuhun tulee muita solmuja. */
.tekkor-v2-merkkirivi + .tekkor-v2-merkkirivi { border-top: 1px solid #E4E9F0; }

.tekkor-v2-merkki-nimi {
    width: 300px !important;
    flex: 0 0 300px !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 14px !important;
    min-width: 0 !important;
}
.tekkor-v2-merkki-nimi > * { width: auto !important; }
.tekkor-v2 .tekkor-v2-brandinimi .elementor-heading-title {
    font-size: 26px;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: #0D1B2E;
    line-height: 1.2;
}
.tekkor-v2 .tekkor-v2-merkki-logo img { height: 22px; width: auto; }

.tekkor-v2 .tekkor-v2-merkki-teksti,
.tekkor-v2 .tekkor-v2-merkki-teksti p {
    font-size: 15.5px;
    line-height: 1.68;
    color: #4A5769;
    margin: 0;
}
.tekkor-v2-merkki-teksti { flex: 1 1 auto !important; min-width: 0 !important; }

.tekkor-v2-merkki-maara {
    width: auto !important;
    flex: 0 0 auto !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 18px !important;
    white-space: nowrap;
}
.tekkor-v2-merkki-maara > * { width: auto !important; }
.tekkor-v2 .tekkor-v2-merkki-maara .tekkor-v2-meta .elementor-heading-title { font-size: 14px; }

/* Merkkirivin linkki: "17 tuotetta ->". Designissa maara ja nuoli olivat
   erillisia ja vain nuoli oli linkki — 12 pikselin klikkausalue jota kukaan
   ei tunnistanut linkiksi. Nyt ne ovat yksi linkki, mutta ulkoasu on sama:
   maara on yha metatekstin kokoinen ja varinen, nuoli sen perassa. */
.tekkor-v2 .tekkor-v2-nuolilinkki--merkki .tekkor-v2-nuoli {
    font-size: 14px;
    font-weight: 400;
    color: #5E6B80;
    gap: 10px;
}
.tekkor-v2 .tekkor-v2-nuolilinkki--merkki .tekkor-v2-nuoli-karki {
    font-size: 18px;
    color: #2F6FB8;
}
.tekkor-v2 .tekkor-v2-merkkirivi:hover .tekkor-v2-nuolilinkki--merkki .tekkor-v2-nuoli { color: #0D1B2E; }

/* ==========================================================================
   PALVELUT (tumma vyo)
   ========================================================================== */
.tekkor-v2-palvelut-otsikko {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 24px !important;
    margin-bottom: 60px !important;
}
.tekkor-v2-palvelut-otsikko-teksti { max-width: 560px !important; width: auto !important; }
.tekkor-v2-palvelut-otsikko > .tekkor-v2-nuolilinkki { width: auto !important; }

/* Designissa ruudukkovali on 0 ja erottelu tehdaan pelkilla ylaviivoilla. */
.tekkor-v2-palvelusolut {
    flex-direction: row !important;
    gap: 0 !important;
    align-items: stretch !important;
}
.tekkor-v2-palvelusolu {
    width: 25% !important;
    min-width: 0 !important;
    padding: 30px 30px 30px 30px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    cursor: pointer;
}
.tekkor-v2-palvelusolut > .tekkor-v2-palvelusolu:first-child { padding-left: 0 !important; }
.tekkor-v2 .tekkor-v2-palvelu-otsikko .elementor-heading-title {
    font-size: 19px;
    font-weight: 600;
    color: #FFFFFF;
    transition: color .2s;
    line-height: 1.3;
}
.tekkor-v2-palvelusolu:hover .tekkor-v2-palvelu-otsikko .elementor-heading-title { color: #8FB6E4; }
.tekkor-v2 .tekkor-v2-palvelu-otsikko { margin-bottom: 10px; }
.tekkor-v2 .tekkor-v2-palvelu-teksti,
.tekkor-v2 .tekkor-v2-palvelu-teksti p {
    font-size: 14.5px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.60);
    margin: 0;
}

/* ==========================================================================
   CTA
   ========================================================================== */
.tekkor-v2-cta-sisalto {
    flex-direction: row !important;
    align-items: center !important;
    gap: 56px !important;
    border-top: 1px solid #E4E9F0;
    padding-top: 56px !important;
}
.tekkor-v2-cta-teksti { flex: 1 1 auto !important; min-width: 0 !important; }
.tekkor-v2-cta-sisalto > .tekkor-v2-napit { flex: 0 0 auto !important; }
.tekkor-v2-cta-teksti .tekkor-v2-h2 { margin-bottom: 14px; }
.tekkor-v2-cta-teksti .tekkor-v2-lead p { max-width: 520px; }

/* ==========================================================================
   SISASIVUT — otsikkopalkki (designin PageShell)
   ========================================================================== */
.tekkor-v2-masthead { background-color: #0D1B2E !important; }
.tekkor-v2-masthead > .tekkor-v2-sisus {
    padding-top: 160px !important;
    padding-bottom: 80px !important;
}
.tekkor-v2 .tekkor-v2-sivu-h1 .elementor-heading-title {
    font-size: 48px;
    line-height: 1.1;
    letter-spacing: -0.03em;
    font-weight: 600;
    color: #FFFFFF;
}
.tekkor-v2 .tekkor-v2-sivu-h1 { margin-bottom: 16px; }
.tekkor-v2 .tekkor-v2-masthead-lead,
.tekkor-v2 .tekkor-v2-masthead-lead p {
    font-size: 17.5px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.68);
    max-width: 560px;
    margin: 0;
}

/* ==========================================================================
   PALVELUT-SIVU — kaksipalstainen lista
   Eri komponentti kuin etusivun tumma vyo: vaalea, kaksi palstaa,
   ylaviiva ja 36px padding jokaiselle kohdalle.
   ========================================================================== */
.tekkor-v2-palvelulista > .tekkor-v2-sisus {
    padding-top: 112px !important;
    padding-bottom: 112px !important;
}
.tekkor-v2-palvelulista-ruudukko {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    column-gap: 64px !important;
    row-gap: 0 !important;
    align-items: flex-start !important;
}
.tekkor-v2-palvelukohta {
    width: calc(50% - 32px) !important;
    min-width: 0 !important;
    padding: 36px 0 !important;
    border-top: 1px solid #E4E9F0;
}
.tekkor-v2 .tekkor-v2-h3--palvelu .elementor-heading-title {
    font-size: 23px;
    letter-spacing: -0.02em;
}
.tekkor-v2 .tekkor-v2-h3--palvelu { margin-bottom: 12px; }
.tekkor-v2 .tekkor-v2-palvelukohta-teksti,
.tekkor-v2 .tekkor-v2-palvelukohta-teksti p {
    font-size: 16px;
    line-height: 1.7;
    color: #4A5769;
    margin: 0;
}

/* ==========================================================================
   OTA YHTEYTTA -SIVU
   ========================================================================== */
.tekkor-v2-yhteys > .tekkor-v2-sisus {
    padding-top: 112px !important;
    padding-bottom: 112px !important;
}
.tekkor-v2-yhteys-ruudukko {
    flex-direction: row !important;
    gap: 80px !important;
    align-items: flex-start !important;
}
.tekkor-v2-yhteys-tiedot { flex: 1 1 0 !important; min-width: 0 !important; }
.tekkor-v2-yhteys-lomake { flex: 1.5 1 0 !important; min-width: 0 !important; }
.tekkor-v2-yhteys-kohta { margin-bottom: 26px !important; }
.tekkor-v2 .tekkor-v2-yhteys-nimike .elementor-heading-title {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #5E6B80;
}
.tekkor-v2 .tekkor-v2-yhteys-nimike { margin-bottom: 7px; }
.tekkor-v2 .tekkor-v2-yhteys-arvo .elementor-heading-title {
    font-size: 17px;
    font-weight: 500;
    color: #0D1B2E;
}

/* --- Fluent Forms -lomake v2:n ilmeeseen ---------------------------------
   Lomake on sivuston oikea lomake 3 ("Yhteydenotto") — sama jota nykyinen
   yhteydenottosivu kayttaa. Vain ulkoasu tulee taalta; kentat, validointi,
   Turnstile-suoja ja ilmoitukset ovat lomakkeen omia. */
.tekkor-v2-lomake .fluentform label,
.tekkor-v2-lomake .fluentform .ff-el-input--label label,
.tekkor-v2-lomake .ff-el-input--label {
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: #5E6B80 !important;
    margin-bottom: 8px;
}
/* HUOM tarkkuudesta: ylla olevassa v1-lohkossa on skooppaamaton saanto
   ".fluentform input[type=text] { background-color:#0D1B2E !important }".
   Se on tarkkuudeltaan (0,2,1) ja voittaa yhden luokan v2-saannon, vaikka
   molemmissa on !important. Siksi tassa toistetaan sama valitsinmuoto
   .tekkor-v2-lomake-etuliitteella — (0,3,1) voittaa. v1-lohkoon ei kosketa,
   koska nykyinen yhteydenottosivu on kiinni siina. */
.tekkor-v2-lomake .ff-el-form-control,
.tekkor-v2-lomake .fluentform input[type="text"],
.tekkor-v2-lomake .fluentform input[type="email"],
.tekkor-v2-lomake .fluentform input[type="tel"],
.tekkor-v2-lomake .fluentform input[type="url"],
.tekkor-v2-lomake .fluentform input[type="number"],
.tekkor-v2-lomake .fluentform select,
.tekkor-v2-lomake .fluentform textarea {
    width: 100%;
    background: #FFFFFF !important;
    background-color: #FFFFFF !important;
    border: 1px solid #E4E9F0 !important;
    border-radius: 2px !important;
    padding: 13px 14px !important;
    font-family: inherit !important;
    font-size: 15.5px !important;
    line-height: 1.5 !important;
    color: #0D1B2E !important;
    box-shadow: none !important;
}
.tekkor-v2-lomake .fluentform input:focus,
.tekkor-v2-lomake .fluentform select:focus,
.tekkor-v2-lomake .fluentform textarea:focus {
    border-color: #2F6FB8 !important;
    outline: none !important;
}
.tekkor-v2-lomake .fluentform ::placeholder { color: #5E6B80 !important; opacity: 1; }
.tekkor-v2-lomake .ff-el-group { margin-bottom: 16px; }
.tekkor-v2-lomake .ff-btn-submit,
.tekkor-v2-lomake .ff-el-group .ff-btn.ff-btn-submit {
    background: #E8892B !important;
    background-color: #E8892B !important;
    color: #FFFFFF !important;
    border: 1px solid transparent !important;
    border-radius: 2px !important;
    padding: 14px 28px !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em;
    box-shadow: none !important;
    transition: background-color .2s !important;
}
.tekkor-v2-lomake .ff-btn-submit:hover { background-color: #D47C22 !important; }
.tekkor-v2-lomake .text-danger,
.tekkor-v2-lomake .error { color: #C0492F !important; font-size: 12.5px !important; }
.tekkor-v2-lomake .ff-el-is-error .ff-el-form-control { border-color: #C0492F !important; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.tekkor-v2-footer { background-color: #0D1B2E !important; }
.tekkor-v2-footer > .tekkor-v2-sisus { padding-top: 80px !important; padding-bottom: 36px !important; }
.tekkor-v2-footer-palstat {
    flex-direction: row !important;
    gap: 56px !important;
    margin-bottom: 64px !important;
    align-items: flex-start !important;
}
.tekkor-v2-footer-brandi     { width: 45% !important; }
.tekkor-v2-footer-sivukartta,
.tekkor-v2-footer-yhteys     { width: 27.5% !important; }

.tekkor-v2-footer .tekkor-v2-logo img {
    height: 24px;
    width: auto;
    filter: brightness(0) invert(1);
    margin-bottom: 18px;
}
.tekkor-v2 .tekkor-v2-footer-tagline,
.tekkor-v2 .tekkor-v2-footer-tagline p {
    font-size: 14.5px;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.58);
    max-width: 300px;
    margin: 0;
}
.tekkor-v2 .tekkor-v2-footer-otsikko .elementor-heading-title {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #8FB6E4;
}
.tekkor-v2 .tekkor-v2-footer-otsikko { margin-bottom: 18px; }
.tekkor-v2 .tekkor-v2-footer-linkit a {
    display: block;
    font-size: 14.5px;
    color: rgba(255, 255, 255, 0.58);
    margin-bottom: 11px;
    text-decoration: none;
    transition: color .18s;
}
.tekkor-v2 .tekkor-v2-footer-linkit a:hover { color: #FFFFFF; }
.tekkor-v2 .tekkor-v2-footer-yhteystiedot a {
    display: block;
    font-size: 15px;
    color: rgba(255, 255, 255, 0.82);
    margin-bottom: 8px;
    text-decoration: none;
}
.tekkor-v2-footer-alapalkki {
    border-top: 1px solid rgba(255, 255, 255, 0.10);
    padding-top: 24px !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    gap: 14px !important;
}
.tekkor-v2-footer-alapalkki > * { width: auto !important; }
.tekkor-v2 .tekkor-v2-copyright span {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.58);
}
.tekkor-v2-footer-alapalkki .tekkor-v2-footer-linkit a { font-size: 13px; margin-bottom: 0; }

/* ==========================================================================
   VERKKOKAUPPA
   Designissa ei ole naita nakymia. Kaikki alla on johdettu v2:n omista
   komponenteista: sama otsikkopalkki, sama #F5F7FA-kuvalaatta ja
   multiply-sekoitus, samat hiusviivat, sama typografia.
   ========================================================================== */

/* --- Murupolku tummalla otsikkopalkilla ---------------------------------- */
.tekkor-v2-murupolku { margin-bottom: 14px; }
.tekkor-v2-murupolku,
.tekkor-v2-murupolku .woocommerce-breadcrumb,
.tekkor-v2-murupolku a {
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase;
    color: #8FB6E4 !important;
    text-decoration: none;
}
.tekkor-v2-murupolku a:hover { color: #FFFFFF !important; }

/* --- Merkkivalinta kayttovoimasivulla ------------------------------------
   Uuden tietoarkkitehtuurin toinen askel: kayttovoima on jo valittu, tassa
   valitaan merkki. Rivi rakennetaan oikeista tuotemaarista, joten se voi
   sisaltaa kaksi tai kolme merkkia — siksi leveys joustaa eika ole 1/3. */
.tekkor-v2-merkkivalinta { background-color: #F5F7FA !important; }
.tekkor-v2-merkkivalinta > .tekkor-v2-sisus {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
}
.tekkor-v2-merkkivalinta .tekkor-v2-kicker { margin-bottom: 28px; }

.tekkor-v2-merkkilogot .elementor-widget-container {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}
.tekkor-v2 a.tekkor-v2-merkkilogo {
    flex: 1 1 220px;
    max-width: 320px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    background: #FFFFFF;
    border: 1px solid #E4E9F0;
    border-radius: 3px;
    padding: 24px 26px 22px;
    text-decoration: none;
    transition: border-color .2s, transform .2s;
}
.tekkor-v2 a.tekkor-v2-merkkilogo:hover {
    border-color: #2F6FB8;
    transform: translateY(-2px);
}
.tekkor-v2-merkkilogo-kuva {
    display: block;
    height: 46px;
    margin-bottom: 14px;
}
.tekkor-v2-merkkilogo-kuva img {
    height: 100%;
    width: auto;
    max-width: 160px;
    object-fit: contain;
    object-position: left center;
    display: block;
}
.tekkor-v2 .tekkor-v2-merkkilogo-nimi {
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: #0D1B2E;
    line-height: 1.3;
}
.tekkor-v2 .tekkor-v2-merkkilogo-maara {
    font-size: 13px;
    color: #5E6B80;
}

/* --- Tuotesivu ----------------------------------------------------------- */
.tekkor-v2-tuote > .tekkor-v2-sisus,
.tekkor-v2-arkisto > .tekkor-v2-sisus {
    padding-top: 96px !important;
    padding-bottom: 96px !important;
}
.tekkor-v2-tuote-ruudukko {
    flex-direction: row !important;
    gap: 80px !important;
    align-items: flex-start !important;
}
.tekkor-v2-tuote-kuva { flex: 1 1 0 !important; min-width: 0 !important; }
.tekkor-v2-tuote-tiedot { flex: 1 1 0 !important; min-width: 0 !important; }

/* Tuotekuva samalle laatalle kuin kayttovoimakortit. Tuotekuvat ovat
   valkotaustaisia, joten multiply poistaa valkoisen pohjan. */
.tekkor-v2-tuotekuva .woocommerce-product-gallery__image,
.tekkor-v2-tuotekuva .flex-viewport {
    background: #F5F7FA;
    border-radius: 3px;
    overflow: hidden;
}
.tekkor-v2-tuotekuva img { mix-blend-mode: multiply; display: block; }
.tekkor-v2-tuotekuva .flex-control-thumbs { margin-top: 14px; gap: 10px; display: flex; padding: 0; }
.tekkor-v2-tuotekuva .flex-control-thumbs li { list-style: none; width: 72px; margin: 0; }
.tekkor-v2-tuotekuva .flex-control-thumbs img {
    background: #F5F7FA;
    border-radius: 3px;
    border: 1px solid #E4E9F0;
}

.tekkor-v2 .tekkor-v2-tuote-kuvaus,
.tekkor-v2 .tekkor-v2-tuote-kuvaus p {
    font-size: 17px;
    line-height: 1.65;
    color: #4A5769;
}
.tekkor-v2-tuote-kuvaus { margin-bottom: 32px; padding-bottom: 32px; border-bottom: 1px solid #E4E9F0; }

/* Tarjouspyyntonappi on sivuston tarkein konversio — se saa v2:n oranssin,
   ja vain se. Muut napit tuotesivulla ovat toissijaisia. */
.tekkor-v2-tuote-osto button,
.tekkor-v2-tuote-osto .single_add_to_cart_button,
.tekkor-v2-tuote-osto .gpls_woo_rfq_btn,
.tekkor-v2-tuote-osto a.button {
    background: #E8892B !important;
    background-color: #E8892B !important;
    color: #FFFFFF !important;
    border: 1px solid transparent !important;
    border-radius: 2px !important;
    padding: 14px 28px !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    box-shadow: none !important;
    transition: background-color .2s !important;
}
.tekkor-v2-tuote-osto button:hover,
.tekkor-v2-tuote-osto .single_add_to_cart_button:hover,
.tekkor-v2-tuote-osto a.button:hover { background-color: #D47C22 !important; }
.tekkor-v2-tuote-osto input[type="number"],
.tekkor-v2-tuote-osto .qty {
    background: #FFFFFF !important;
    border: 1px solid #E4E9F0 !important;
    border-radius: 2px !important;
    padding: 13px 10px !important;
    color: #0D1B2E !important;
}

/* --- Tuotetiedot-osio ---------------------------------------------------- */
.tekkor-v2-tuote-sisalto { background-color: #F5F7FA !important; }
.tekkor-v2-tuote-sisalto > .tekkor-v2-sisus {
    padding-top: 96px !important;
    padding-bottom: 96px !important;
}
.tekkor-v2 .tekkor-v2-h2--tuote .elementor-heading-title { font-size: 30px; }
.tekkor-v2 .tekkor-v2-h2--tuote { margin-bottom: 28px; }
.tekkor-v2 .tekkor-v2-tuoteteksti,
.tekkor-v2 .tekkor-v2-tuoteteksti p,
.tekkor-v2 .tekkor-v2-tuoteteksti li {
    font-size: 16px;
    line-height: 1.7;
    color: #4A5769;
}
.tekkor-v2 .tekkor-v2-tuoteteksti h2,
.tekkor-v2 .tekkor-v2-tuoteteksti h3 {
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: #0D1B2E;
    margin: 28px 0 12px;
}
/* Taulukot ovat tuotesivujen paaasiallinen tietosisalto (momenttialueet).
   Hiusviivat, ei laatikoita — sama kieli kuin brandiriveilla. */
/* Tuotetaulukoissa on jopa 18 saraketta (momenttialueet, mitat). Ilman omaa
   vierityskonttia ne levittavat koko sivun ja synnyttavat vaakavierityksen —
   1920px:n nakymassa sivu oli 2182px leveä. Design kieltaa vaakavierityksen,
   joten taulukko vierii itse eika sivu. */
.tekkor-v2 .tekkor-v2-tuoteteksti table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    white-space: nowrap;
    border-collapse: collapse;
    margin: 20px 0;
    font-size: 15px;
    background: #FFFFFF;
}
/* Varmistin: mikaan yksittainen sisalto ei saa levittaa v2-osiota. */
.tekkor-v2 { overflow-x: clip; }
.tekkor-v2 .tekkor-v2-tuoteteksti th,
.tekkor-v2 .tekkor-v2-tuoteteksti td {
    border: none !important;
    border-bottom: 1px solid #E4E9F0 !important;
    padding: 12px 14px !important;
    text-align: left;
    color: #4A5769;
}
.tekkor-v2 .tekkor-v2-tuoteteksti th {
    background: transparent !important;
    color: #0D1B2E;
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Tuotetekstin linkit ovat v2:n sinisia, eivat teeman oranssia. */
.tekkor-v2 .tekkor-v2-tuoteteksti a,
.tekkor-v2 .tekkor-v2-tuote-kuvaus a {
    color: #2F6FB8 !important;
    text-decoration: none;
    font-weight: 600;
}
.tekkor-v2 .tekkor-v2-tuoteteksti a:hover { text-decoration: underline; }

/* --- Variaatiovalinta ----------------------------------------------------
   Variaatiotuotteilla (esim. EBT-CA) tarjouspyyntonappi on pois kaytosta
   kunnes malli on valittu. Valinta on siksi osa konversiopolkua, ei
   sivuseikka — se saa saman kentta-ilmeen kuin lomake. */
.tekkor-v2-tuote-osto .variations,
.tekkor-v2-tuote-osto table.variations {
    border: none !important;
    margin: 0 0 20px !important;
    background: transparent !important;
}
.tekkor-v2-tuote-osto .variations th,
.tekkor-v2-tuote-osto .variations td {
    border: none !important;
    padding: 0 0 10px !important;
    background: transparent !important;
}
.tekkor-v2-tuote-osto .variations label {
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #5E6B80 !important;
}
.tekkor-v2-tuote-osto select {
    width: 100%;
    background: #FFFFFF !important;
    border: 1px solid #E4E9F0 !important;
    border-radius: 2px !important;
    padding: 13px 14px !important;
    font-family: inherit !important;
    font-size: 15.5px !important;
    color: #0D1B2E !important;
}
.tekkor-v2-tuote-osto .reset_variations {
    font-size: 13px !important;
    color: #5E6B80 !important;
    font-weight: 400 !important;
}
/* Pois kaytosta oleva nappi nayttaa siilta miltä se on: ei tayttä oranssia. */
.tekkor-v2-tuote-osto button.disabled,
.tekkor-v2-tuote-osto button:disabled {
    background-color: #E4E9F0 !important;
    color: #5E6B80 !important;
    cursor: not-allowed;
}

/* --- Tuoteruudukko: arkisto ja lisamyynti -------------------------------- */
/* Lisamyyntiosion otsikko ("Saatat myos pitaa naista...") */
.tekkor-v2-lisamyynti h2,
.tekkor-v2-tuoteruudukko > .elementor-widget-container > h2 {
    font-size: 30px !important;
    font-weight: 600 !important;
    letter-spacing: -0.025em !important;
    color: #0D1B2E !important;
    margin-bottom: 28px !important;
    text-align: left !important;
}
.tekkor-v2-lisamyynti > .tekkor-v2-sisus { padding-top: 0 !important; padding-bottom: 96px !important; }
.tekkor-v2-tuoteruudukko ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 36px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}
.tekkor-v2-tuoteruudukko ul.products::before,
.tekkor-v2-tuoteruudukko ul.products::after { display: none !important; }
.tekkor-v2-tuoteruudukko ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    text-align: left !important;
}
/* Kuvalaatta on pseudoelementti linkin sisalla, EI kuvan oma taustavari.
   Syy: mix-blend-mode sekoittaa elementin taustineen kaikkineen sen ALLA
   olevaan pintaan. Jos laatta on kuvan omana taustana, multiply sekoittuu
   sivun valkoiseen eika laattaan — jolloin kuvan valkoinen pohja jaa
   valkoiseksi ja laatasta nakyy vain reunakaistale. */
.tekkor-v2-tuoteruudukko ul.products li.product > a.woocommerce-LoopProduct-link {
    display: block;
    position: relative;
    isolation: isolate;
    text-decoration: none;
}
.tekkor-v2-tuoteruudukko ul.products li.product > a.woocommerce-LoopProduct-link::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    aspect-ratio: 5 / 4;
    background: #F5F7FA;
    border-radius: 3px;
    z-index: 0;
}
.tekkor-v2-tuoteruudukko ul.products li.product img {
    position: relative;
    z-index: 1;
    background: transparent;
    mix-blend-mode: multiply;
    display: block;
    width: 100%;
    aspect-ratio: 5 / 4;
    object-fit: contain;
    margin-bottom: 20px !important;
    transition: transform .5s cubic-bezier(.22, .61, .36, 1);
}
.tekkor-v2-tuoteruudukko ul.products li.product:hover img { transform: scale(1.04); }
.tekkor-v2-tuoteruudukko ul.products li.product .woocommerce-loop-product__title,
.tekkor-v2-tuoteruudukko ul.products li.product h2 {
    font-size: 19px !important;
    font-weight: 600 !important;
    letter-spacing: -0.015em;
    color: #0D1B2E !important;
    line-height: 1.3;
    padding: 0 !important;
    margin: 0 0 8px !important;
}
.tekkor-v2-tuoteruudukko ul.products li.product .price {
    font-size: 15px !important;
    color: #5E6B80 !important;
    font-weight: 400 !important;
}
.tekkor-v2-tuoteruudukko ul.products li.product .button,
.tekkor-v2-tuoteruudukko ul.products li.product a.button {
    background: transparent !important;
    color: #2F6FB8 !important;
    border: none !important;
    padding: 0 !important;
    margin-top: 12px !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
    display: inline-block;
}
.tekkor-v2-tuoteruudukko .woocommerce-loop-category__title { color: #0D1B2E !important; }
.tekkor-v2-tuoteruudukko .onsale { display: none !important; }

/* Sivutus */
.tekkor-v2-tuoteruudukko .woocommerce-pagination ul {
    border: none !important;
    display: flex;
    gap: 6px;
    margin-top: 48px !important;
    padding: 0;
}
.tekkor-v2-tuoteruudukko .woocommerce-pagination ul li { border: none !important; }
.tekkor-v2-tuoteruudukko .woocommerce-pagination a,
.tekkor-v2-tuoteruudukko .woocommerce-pagination span {
    border: 1px solid #E4E9F0 !important;
    border-radius: 2px;
    padding: 9px 14px !important;
    color: #4A5769 !important;
    font-size: 14px;
    background: #FFFFFF !important;
}
.tekkor-v2-tuoteruudukko .woocommerce-pagination span.current {
    background: #0D1B2E !important;
    border-color: #0D1B2E !important;
    color: #FFFFFF !important;
}

/* ==========================================================================
   SISAANTULO
   Oletus on NAKYVA. Animaatio ajetaan vain jos selain tukee
   scroll-driven-animaatioita — nain sisalto ei voi jaada piiloon siksi etta
   jokin ei laukennut. prefers-reduced-motion ohittaa koko lohkon.
   ========================================================================== */
/* Piilotus tapahtuu VAIN jos skripti ehti merkita html-elementin. Jos JS ei
   aja — virhe, esto, vanha selain — mitaan ei piiloteta ja sisalto nakyy.
   Skripti paljastaa myos varmistimella 1000 ms:n kuluttua, joten mikaan ei
   voi jaada piiloon siksi etta havainnoija ei laukennut.

   Aiempi toteutus kaytti scroll-driven-animaatiota (animation-timeline: view()).
   Se piti kaikki osiot alkutilassa koko sivun kuvakaappauksissa — sisalto oli
   oikeasti piilossa. Siksi tama on nyt JS-ohjattu, kuten design maarittelee. */
@media (prefers-reduced-motion: no-preference) {
    html.tekkor-v2-js .tekkor-v2-intro,
    html.tekkor-v2-js .tekkor-v2-kortti,
    html.tekkor-v2-js .tekkor-v2-merkkirivi,
    html.tekkor-v2-js .tekkor-v2-palvelut-otsikko,
    html.tekkor-v2-js .tekkor-v2-palvelusolu,
    html.tekkor-v2-js .tekkor-v2-cta-sisalto {
        opacity: 0;
        transform: translateY(18px);
        transition: opacity .8s cubic-bezier(.22, .61, .36, 1),
                    transform .8s cubic-bezier(.22, .61, .36, 1);
    }
    html.tekkor-v2-js .on-nakyvissa {
        opacity: 1 !important;
        transform: none !important;
    }

    /* Porrastus sisarusten kesken: 110 ms korteille, 90 ms brandiriveille,
       80 ms palvelusoluille — designin arvot. */
    .tekkor-v2-kortti:nth-child(2)      { transition-delay: .11s; }
    .tekkor-v2-kortti:nth-child(3)      { transition-delay: .22s; }
    .tekkor-v2-merkkirivi:nth-child(2)  { transition-delay: .09s; }
    .tekkor-v2-merkkirivi:nth-child(3)  { transition-delay: .18s; }
    .tekkor-v2-palvelusolu:nth-child(2) { transition-delay: .08s; }
    .tekkor-v2-palvelusolu:nth-child(3) { transition-delay: .16s; }
    .tekkor-v2-palvelusolu:nth-child(4) { transition-delay: .24s; }
}

/* ==========================================================================
   SISALTOSIVU — theme builder -template ei-Elementor-sivuille

   Tietosuojaseloste, tarjouspyyntolomake, oma tili ja jokainen tulevaisuudessa
   lisattava sivu renderoityvat taman lapi. Sivujen omaan sisaltoon EI kosketa:
   template antaa tumman otsikkopalkin ja WordPressin sisalto tulee sen alle
   post-content-widgetissa. Kaikki alla oleva koskee siis tuntematonta
   HTML:aa — siksi valitsimet ovat elementtitason, eivat luokkatason.
   ========================================================================== */
.tekkor-v2-sisaltoteksti > .tekkor-v2-sisus {
    padding-top: 96px !important;
    padding-bottom: 112px !important;
}

/* Jatkuvan tekstin palsta on kapeampi kuin 1240px. Tietosuojaselosteessa on
   yli 7 000 merkkia yhtenaista tekstia; taydella leveydella rivi on yli 200
   merkkia eika sita lue kukaan. 760px pitaa rivin 90 merkin tuntumassa. */
.tekkor-v2 .tekkor-v2-teksti { max-width: 760px; }

.tekkor-v2 .tekkor-v2-teksti,
.tekkor-v2 .tekkor-v2-teksti p,
.tekkor-v2 .tekkor-v2-teksti li,
.tekkor-v2 .tekkor-v2-teksti td {
    font-size: 16.5px;
    line-height: 1.75;
    color: #4A5769;
}
.tekkor-v2 .tekkor-v2-teksti p { margin: 0 0 18px; }
.tekkor-v2 .tekkor-v2-teksti > *:last-child { margin-bottom: 0; }

.tekkor-v2 .tekkor-v2-teksti h2 {
    font-size: 28px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: #0D1B2E;
    margin: 44px 0 14px;
}
.tekkor-v2 .tekkor-v2-teksti h3,
.tekkor-v2 .tekkor-v2-teksti h4 {
    font-size: 20px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: #0D1B2E;
    margin: 30px 0 10px;
}
.tekkor-v2 .tekkor-v2-teksti > *:first-child { margin-top: 0; }

.tekkor-v2 .tekkor-v2-teksti ul,
.tekkor-v2 .tekkor-v2-teksti ol {
    padding-left: 22px;
    margin: 0 0 18px;
}
.tekkor-v2 .tekkor-v2-teksti li { margin-bottom: 8px; }

/* Linkit ovat v2:n sinisia, eivat teeman oranssia. */
.tekkor-v2 .tekkor-v2-teksti a {
    color: #2F6FB8 !important;
    text-decoration: none;
    font-weight: 600;
}
.tekkor-v2 .tekkor-v2-teksti a:hover { text-decoration: underline; }

/* Sama vierityskontti kuin tuotesivun taulukoissa: mikaan taulukko ei saa
   levittaa sivua vaakasuuntaan. */
.tekkor-v2 .tekkor-v2-teksti table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    border-collapse: collapse;
    margin: 20px 0;
    font-size: 15px;
}
.tekkor-v2 .tekkor-v2-teksti th,
.tekkor-v2 .tekkor-v2-teksti td {
    border: none !important;
    border-bottom: 1px solid #E4E9F0 !important;
    padding: 12px 14px !important;
    text-align: left;
}
.tekkor-v2 .tekkor-v2-teksti th {
    background: transparent !important;
    color: #0D1B2E;
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* --- Lomake sisaltosivulla ------------------------------------------------
   Tarjouspyyntosivu (944) on tavallinen WP-sivu jonka sisalla on Fluent Forms
   -lomake. Se ei ole .tekkor-v2-lomake-kaareessa kuten yhteydenottosivun
   lomake, joten samat saannot toistetaan tassa skoopissa. Kentat, validointi
   ja ilmoitukset ovat lomakkeen omia — vain ulkoasu tulee taalta. */
.tekkor-v2-sisaltoteksti .ff-el-input--label,
.tekkor-v2-sisaltoteksti .fluentform label {
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: #5E6B80 !important;
    margin-bottom: 8px;
}
.tekkor-v2-sisaltoteksti .ff-el-form-control,
.tekkor-v2-sisaltoteksti .fluentform input[type="text"],
.tekkor-v2-sisaltoteksti .fluentform input[type="email"],
.tekkor-v2-sisaltoteksti .fluentform input[type="tel"],
.tekkor-v2-sisaltoteksti .fluentform input[type="url"],
.tekkor-v2-sisaltoteksti .fluentform input[type="number"],
.tekkor-v2-sisaltoteksti .fluentform select,
.tekkor-v2-sisaltoteksti .fluentform textarea {
    width: 100%;
    background: #FFFFFF !important;
    background-color: #FFFFFF !important;
    border: 1px solid #E4E9F0 !important;
    border-radius: 2px !important;
    padding: 13px 14px !important;
    font-family: inherit !important;
    font-size: 15.5px !important;
    line-height: 1.5 !important;
    color: #0D1B2E !important;
    box-shadow: none !important;
}
.tekkor-v2-sisaltoteksti .fluentform input:focus,
.tekkor-v2-sisaltoteksti .fluentform select:focus,
.tekkor-v2-sisaltoteksti .fluentform textarea:focus {
    border-color: #2F6FB8 !important;
    outline: none !important;
}
.tekkor-v2-sisaltoteksti .fluentform .ff-btn-submit {
    background: #E8892B !important;
    border: none !important;
    border-radius: 2px !important;
    color: #FFFFFF !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    padding: 15px 30px !important;
    transition: background-color .2s ease;
}
.tekkor-v2-sisaltoteksti .fluentform .ff-btn-submit:hover { background: #D47C22 !important; }

/* --- Oma tili -------------------------------------------------------------
   WooCommercen tilisivu on kaksipalstainen: navigaatio ja sisalto. Se ei ole
   konversiopolulla mutta se on osa sivustoa, ja v1:n oranssit linkit
   pistaisivat silmaan vaalealla. */
.tekkor-v2-sisaltoteksti .woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0 0 32px;
    padding: 0;
    border-top: 1px solid #E4E9F0;
}
.tekkor-v2-sisaltoteksti .woocommerce-MyAccount-navigation li {
    margin: 0;
    border-bottom: 1px solid #E4E9F0;
}
.tekkor-v2-sisaltoteksti .woocommerce-MyAccount-navigation a {
    display: block;
    padding: 14px 0;
    font-size: 15px;
    font-weight: 600;
    color: #0D1B2E !important;
    text-decoration: none;
}
.tekkor-v2-sisaltoteksti .woocommerce-MyAccount-navigation a:hover,
.tekkor-v2-sisaltoteksti .woocommerce-MyAccount-navigation .is-active a {
    color: #2F6FB8 !important;
}

/* WooCommercen omat ilmoituslaatikot ovat teemasta riippumatta harmaita
   laatikoita oranssilla reunalla. Hiusviiva ja sininen sopivat v2:een. */
.tekkor-v2 .woocommerce-message,
.tekkor-v2 .woocommerce-info,
.tekkor-v2 .woocommerce-error {
    background: #F5F7FA !important;
    border: 1px solid #E4E9F0 !important;
    border-top: 2px solid #2F6FB8 !important;
    border-radius: 0 !important;
    color: #4A5769 !important;
    font-size: 15.5px;
    padding: 18px 22px !important;
}
.tekkor-v2 .woocommerce-error { border-top-color: #C0492F !important; }
.tekkor-v2 .woocommerce-message::before,
.tekkor-v2 .woocommerce-info::before,
.tekkor-v2 .woocommerce-error::before { display: none !important; }

/* ==========================================================================
   TARJOUSPYYNTOKORI

   Kori on konversiopolun viimeinen askel ennen lomaketta, joten sen on
   nayttava samalta kuin muu sivusto. WooCommercen oma taulukko on
   laatikkomainen; v2:ssa se on hiusviivoja kuten brandirivit ja palvelulista.
   ========================================================================== */
.tekkor-v2-kori > .tekkor-v2-sisus {
    padding-top: 96px !important;
    padding-bottom: 112px !important;
}
.tekkor-v2-kori table.shop_table {
    border: none !important;
    border-radius: 0 !important;
    border-collapse: collapse !important;
    width: 100%;
    margin: 0 0 40px;
}
.tekkor-v2-kori table.shop_table th {
    border: none !important;
    border-bottom: 1px solid #E4E9F0 !important;
    padding: 0 12px 14px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #5E6B80 !important;
    text-align: left;
}
.tekkor-v2-kori table.shop_table td {
    border: none !important;
    border-bottom: 1px solid #E4E9F0 !important;
    padding: 22px 12px !important;
    font-size: 15.5px;
    color: #4A5769 !important;
    vertical-align: middle;
}
.tekkor-v2-kori table.shop_table td.product-name a {
    color: #0D1B2E !important;
    font-weight: 600;
    text-decoration: none;
}
.tekkor-v2-kori table.shop_table td.product-name a:hover { color: #2F6FB8 !important; }

/* Tuotekuva korissa samalle laatalle kuin muualla — valkotaustaiset
   tuotekuvat sulautuvat #F5F7FA-pohjaan multiply-sekoituksella. */
.tekkor-v2-kori table.shop_table td.product-thumbnail img {
    width: 72px;
    height: 72px;
    object-fit: contain;
    background: #F5F7FA;
    mix-blend-mode: multiply;
    border-radius: 3px;
}

.tekkor-v2-kori .quantity input.qty {
    background: #FFFFFF !important;
    border: 1px solid #E4E9F0 !important;
    border-radius: 2px !important;
    padding: 10px 8px !important;
    font-family: inherit !important;
    font-size: 15px !important;
    color: #0D1B2E !important;
    box-shadow: none !important;
}
.tekkor-v2-kori a.remove {
    color: #5E6B80 !important;
    font-size: 20px !important;
    background: transparent !important;
}
.tekkor-v2-kori a.remove:hover {
    color: #C0492F !important;
    background: transparent !important;
}

/* Kupongin kentta ja napit. Elementorin oma korityyli antaa napeille
   pyoristyksen ja varjon — v2:ssa ei kumpaakaan. */
.tekkor-v2-kori .coupon input[type="text"] {
    background: #FFFFFF !important;
    border: 1px solid #E4E9F0 !important;
    border-radius: 2px !important;
    padding: 13px 14px !important;
    font-family: inherit !important;
    font-size: 15.5px !important;
    color: #0D1B2E !important;
}
.tekkor-v2-kori .button,
.tekkor-v2-kori button.button,
.tekkor-v2-kori input.button,
.tekkor-v2-kori a.button,
.tekkor-v2-kori .checkout-button {
    border: none !important;
    border-radius: 2px !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    padding: 15px 30px !important;
    text-transform: none !important;
    transition: background-color .2s ease;
}
.tekkor-v2-kori .button,
.tekkor-v2-kori button.button,
.tekkor-v2-kori input.button,
.tekkor-v2-kori a.button {
    background: #0D1B2E !important;
    color: #FFFFFF !important;
}
.tekkor-v2-kori .button:hover,
.tekkor-v2-kori button.button:hover,
.tekkor-v2-kori input.button:hover,
.tekkor-v2-kori a.button:hover { background: #1B2C45 !important; }

/* Ainoa oranssi pinta korissa: eteenpain vieva nappi. */
.tekkor-v2-kori .checkout-button,
.tekkor-v2-kori a.checkout-button.button {
    background: #E8892B !important;
    color: #FFFFFF !important;
}
.tekkor-v2-kori .checkout-button:hover,
.tekkor-v2-kori a.checkout-button.button:hover { background: #D47C22 !important; }

.tekkor-v2-kori .cart_totals h2 {
    font-size: 22px !important;
    font-weight: 600 !important;
    letter-spacing: -0.015em;
    color: #0D1B2E !important;
    margin-bottom: 16px;
}
.tekkor-v2-kori .cart_totals table.shop_table td,
.tekkor-v2-kori .cart_totals table.shop_table th { padding: 16px 0 !important; }

/* Tyhja kori. WooCommercen oletusteksti on keskitetty ja iso; v2:ssa se on
   tavallista leipatekstia muun sisallon tapaan. */
.tekkor-v2-kori .cart-empty,
.tekkor-v2-kori .wc-empty-cart-message p {
    font-size: 17px !important;
    line-height: 1.65;
    color: #4A5769 !important;
    text-align: left !important;
}
.tekkor-v2-kori .return-to-shop { margin-top: 24px; }

/* ==========================================================================
   KASSA — tarjouspyynnon lahetys

   Sivuston tarkein lomake. Kenttien nimikkeet, jarjestys ja pakollisuudet
   tulevat widgetilta sellaisenaan; tama lohko koskee vain ulkoasua.
   ========================================================================== */
.tekkor-v2-kassa > .tekkor-v2-sisus {
    padding-top: 96px !important;
    padding-bottom: 112px !important;
}
.tekkor-v2-kassa h3,
.tekkor-v2-kassa .e-checkout-section-title {
    font-size: 22px !important;
    font-weight: 600 !important;
    letter-spacing: -0.015em;
    color: #0D1B2E !important;
    margin-bottom: 18px !important;
}
.tekkor-v2-kassa label {
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #5E6B80 !important;
}
.tekkor-v2-kassa input[type="text"],
.tekkor-v2-kassa input[type="email"],
.tekkor-v2-kassa input[type="tel"],
.tekkor-v2-kassa input[type="password"],
.tekkor-v2-kassa textarea,
.tekkor-v2-kassa select {
    background: #FFFFFF !important;
    border: 1px solid #E4E9F0 !important;
    border-radius: 2px !important;
    padding: 13px 14px !important;
    font-family: inherit !important;
    font-size: 15.5px !important;
    line-height: 1.5 !important;
    color: #0D1B2E !important;
    box-shadow: none !important;
}
.tekkor-v2-kassa input:focus,
.tekkor-v2-kassa textarea:focus,
.tekkor-v2-kassa select:focus {
    border-color: #2F6FB8 !important;
    outline: none !important;
}
.tekkor-v2-kassa .required { color: #C0492F !important; }

/* --- Maa-valitsin (select2) ----------------------------------------------
   Maa/alue-kentta ei ole tavallinen <select> vaan select2:n rakentama
   kolmiosainen rakenne. Padding EI saa mennä ulkokuorelle: silloin valittu
   arvo ("Suomi") piirtyy laatikon ulkopuolelle, koska select2 asemoi tekstin
   omalla line-heightillaan. Mitat annetaan siksi sisemmalle elementille. */
.tekkor-v2-kassa .select2-container--default .select2-selection--single {
    height: auto !important;
    padding: 0 !important;
    background: #FFFFFF !important;
    border: 1px solid #E4E9F0 !important;
    border-radius: 2px !important;
    box-shadow: none !important;
}
.tekkor-v2-kassa .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding: 13px 34px 13px 14px !important;
    line-height: 1.5 !important;
    font-family: inherit !important;
    font-size: 15.5px !important;
    color: #0D1B2E !important;
}
.tekkor-v2-kassa .select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 0 !important;
    right: 10px !important;
    height: 100% !important;
}

/* Pudotusvalikko renderoityy <body>:n alle, siis .tekkor-v2:n ULKOPUOLELLE.
   Siksi skooppina on koko sivu — mutta vain silloin kun sivulla on v2-sisaltoa,
   jolloin saanto ei voi vuotaa v1-nakymiin. */
body:has(.tekkor-v2) .select2-dropdown {
    border: 1px solid #E4E9F0 !important;
    border-radius: 2px !important;
    box-shadow: 0 8px 24px rgba(13, 27, 46, 0.10);
}
body:has(.tekkor-v2) .select2-container--default .select2-results__option {
    font-family: 'DM Sans', system-ui, sans-serif;
    font-size: 15.5px;
    color: #4A5769;
    padding: 10px 14px;
}
body:has(.tekkor-v2) .select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: #F5F7FA !important;
    color: #0D1B2E !important;
}
body:has(.tekkor-v2) .select2-search--dropdown .select2-search__field {
    border: 1px solid #E4E9F0 !important;
    border-radius: 2px !important;
    padding: 10px 12px !important;
    font-family: inherit !important;
}

/* Tilausyhteenveto samalla hiusviivakielella kuin kori. */
.tekkor-v2-kassa table.shop_table,
.tekkor-v2-kassa .e-checkout__order_review table {
    border: none !important;
    border-radius: 0 !important;
    border-collapse: collapse !important;
    background: transparent !important;
}
.tekkor-v2-kassa table.shop_table th,
.tekkor-v2-kassa table.shop_table td {
    border: none !important;
    border-bottom: 1px solid #E4E9F0 !important;
    padding: 16px 12px !important;
    font-size: 15.5px;
    color: #4A5769 !important;
    text-align: left;
}
.tekkor-v2-kassa table.shop_table th {
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #5E6B80 !important;
}

/* Ainoa oranssi pinta kassalla: lahetysnappi. */
.tekkor-v2-kassa #place_order,
.tekkor-v2-kassa button.button,
.tekkor-v2-kassa input.button,
.tekkor-v2-kassa a.button {
    border: none !important;
    border-radius: 2px !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    padding: 16px 34px !important;
    text-transform: none !important;
    transition: background-color .2s ease;
}
.tekkor-v2-kassa button.button,
.tekkor-v2-kassa input.button,
.tekkor-v2-kassa a.button {
    background: #0D1B2E !important;
    color: #FFFFFF !important;
}
.tekkor-v2-kassa #place_order {
    background: #E8892B !important;
    color: #FFFFFF !important;
}
.tekkor-v2-kassa #place_order:hover { background: #D47C22 !important; }

/* ==========================================================================
   BREAKPOINT 880 — kaikki yksipalstaiseksi, header hampurilaiseksi
   ========================================================================== */
@media (max-width: 880px) {
    .tekkor-v2-sisus { padding: 0 20px !important; }
    .tekkor-v2-osio > .tekkor-v2-sisus { padding-top: 80px !important; padding-bottom: 80px !important; }
    .tekkor-v2-palvelut > .tekkor-v2-sisus { padding-top: 76px !important; padding-bottom: 76px !important; }

    /* Header */
    .tekkor-v2-header-sisalto { padding: 0 20px !important; }
    .tekkor-v2-navi, .tekkor-v2-header-nappi { display: none !important; }
    .tekkor-v2 .tekkor-v2-hampurilainen { display: flex; }

    /* Hero */
    .tekkor-v2-hero::after {
        background: linear-gradient(180deg, rgba(13, 27, 46, 0.92), rgba(13, 27, 46, 0.86));
    }
    .tekkor-v2-hero-sisalto {
        flex-direction: column !important;
        padding: 128px 20px 72px !important;
        gap: 40px !important;
    }
    .tekkor-v2-hero-teksti, .tekkor-v2-hero-kuva { flex: 0 0 auto !important; width: 100% !important; }
    .tekkor-v2-hero-kuva img { max-width: 340px; }
    .tekkor-v2 .tekkor-v2-hero-h1 .elementor-heading-title { font-size: 40px; }
    .tekkor-v2 .tekkor-v2-hero-lead, .tekkor-v2 .tekkor-v2-hero-lead p { font-size: 17px; }
    .tekkor-v2-luottamus-teksti { padding: 20px !important; }
    .tekkor-v2-luottamus-teksti .elementor-widget-container { gap: 10px 20px; }

    /* Otsikot astuvat alas */
    .tekkor-v2 .tekkor-v2-h2 .elementor-heading-title { font-size: 30px; }
    .tekkor-v2 .tekkor-v2-h2--cta .elementor-heading-title { font-size: 28px; }
    .tekkor-v2-intro { margin-bottom: 48px !important; }
    .tekkor-v2-merkit .tekkor-v2-intro { margin-bottom: 40px !important; }

    /* Tuotemerkit allekkain */
    .tekkor-v2-merkkirivi {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 14px !important;
        padding: 30px 0 !important;
    }
    .tekkor-v2-merkki-nimi { width: 100% !important; flex: 0 0 auto !important; }
    .tekkor-v2 .tekkor-v2-brandinimi .elementor-heading-title { font-size: 22px; }

    /* Palvelut allekkain: ylaviiva ensimmaiselle, alaviiva jokaiselle */
    .tekkor-v2-palvelut-otsikko { margin-bottom: 40px !important; }
    .tekkor-v2-palvelusolut { flex-direction: column !important; }
    .tekkor-v2-palvelusolu {
        width: 100% !important;
        padding: 24px 0 !important;
        border-top: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    }
    .tekkor-v2-palvelusolut > .tekkor-v2-palvelusolu:first-child {
        border-top: 1px solid rgba(255, 255, 255, 0.14);
    }

    /* Sisasivut */
    .tekkor-v2-masthead > .tekkor-v2-sisus {
        padding-top: 120px !important;
        padding-bottom: 60px !important;
    }
    .tekkor-v2 .tekkor-v2-sivu-h1 .elementor-heading-title { font-size: 34px; }
    .tekkor-v2-palvelulista > .tekkor-v2-sisus,
    .tekkor-v2-yhteys > .tekkor-v2-sisus {
        padding-top: 72px !important;
        padding-bottom: 72px !important;
    }
    .tekkor-v2-palvelulista-ruudukko { column-gap: 0 !important; }
    .tekkor-v2-palvelukohta { width: 100% !important; padding: 28px 0 !important; }
    .tekkor-v2-yhteys-ruudukko { flex-direction: column !important; gap: 44px !important; }

    /* Verkkokauppa */
    .tekkor-v2-tuote > .tekkor-v2-sisus,
    .tekkor-v2-arkisto > .tekkor-v2-sisus,
    .tekkor-v2-tuote-sisalto > .tekkor-v2-sisus {
        padding-top: 64px !important;
        padding-bottom: 64px !important;
    }
    .tekkor-v2-lisamyynti > .tekkor-v2-sisus { padding-bottom: 64px !important; }
    .tekkor-v2-tuote-ruudukko { flex-direction: column !important; gap: 40px !important; }
    .tekkor-v2-tuote-kuva, .tekkor-v2-tuote-tiedot { flex: 0 0 auto !important; width: 100% !important; }
    .tekkor-v2-tuoteruudukko ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px !important; }
    .tekkor-v2-yhteys-tiedot,
    .tekkor-v2-yhteys-lomake { flex: 0 0 auto !important; width: 100% !important; }

    /* Sisaltosivu, kori ja kassa */
    .tekkor-v2-kassa > .tekkor-v2-sisus,
    .tekkor-v2-sisaltoteksti > .tekkor-v2-sisus,
    .tekkor-v2-kori > .tekkor-v2-sisus {
        padding-top: 56px !important;
        padding-bottom: 64px !important;
    }
    .tekkor-v2 .tekkor-v2-teksti { max-width: none; }
    .tekkor-v2 .tekkor-v2-teksti h2 { font-size: 24px; margin-top: 34px; }
    .tekkor-v2 .tekkor-v2-teksti h3,
    .tekkor-v2 .tekkor-v2-teksti h4 { font-size: 19px; }

    /* Korin taulukko: WooCommerce siirtyy omaan mobiiliasetteluunsa jossa
       jokainen solu on oma rivinsa. Hiusviiva kuuluu silloin RIVIN alle,
       ei jokaisen solun — muuten jokainen tuote nayttaa nelja viivaa. */
    .tekkor-v2-kori table.shop_table td {
        padding: 12px 0 !important;
        border-bottom: none !important;
        text-align: right;
    }
    .tekkor-v2-kori table.shop_table tr { display: block; border-bottom: 1px solid #E4E9F0; }
    .tekkor-v2-kori table.shop_table td.product-thumbnail { text-align: left; }
    .tekkor-v2-kori .coupon input[type="text"] { width: 100%; margin-bottom: 12px; }
    .tekkor-v2-kori .button,
    .tekkor-v2-kori button.button,
    .tekkor-v2-kori input.button,
    .tekkor-v2-kori a.button,
    .tekkor-v2-kori .checkout-button { width: 100%; text-align: center; }

    /* CTA ja footer allekkain */
    .tekkor-v2-cta-sisalto {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 32px !important;
        padding-top: 40px !important;
    }
    .tekkor-v2-footer > .tekkor-v2-sisus { padding-top: 56px !important; padding-bottom: 28px !important; }
    .tekkor-v2-footer-palstat {
        flex-direction: column !important;
        gap: 34px !important;
        margin-bottom: 40px !important;
    }
    .tekkor-v2-footer-brandi,
    .tekkor-v2-footer-sivukartta,
    .tekkor-v2-footer-yhteys { width: 100% !important; }
}

/* ==========================================================================
   BREAKPOINT 480 — ei designissa, vaan pakon sanelema.
   Designin kapea koko on 40px ja se on verifioitu 390px:ssa. Kriteeristomme
   pienin breakpoint on 320px, jossa "kiristysmomentti," ei mahdu riville ja
   Hello Elementorin globaali overflow-wrap katkaisee sanan keskelta. Yksi
   askel lisaa pitaa sanan ehjana.
   ========================================================================== */
@media (max-width: 480px) {
    .tekkor-v2 .tekkor-v2-hero-h1 .elementor-heading-title { font-size: 30px; }
}

/* ==========================================================================
   BREAKPOINT 780 — kayttovoimakortit 3 -> 1.
   EI KOSKAAN 2: kolmesta kortista jaisi yksi orvoksi omalle rivilleen.
   ========================================================================== */
@media (max-width: 780px) {
    .tekkor-v2-kortit { flex-direction: column !important; gap: 32px !important; }
    .tekkor-v2-kortti { width: 100% !important; }
    .tekkor-v2-kortti-kuva img { aspect-ratio: 4 / 3; }
}

/* Tuoteruudukko kestaa kaksi palstaa pidemmalle kuin kayttovoimakortit —
   tuotenimi ja hinta ovat lyhyita, joten ne eivat ahtaudu. Yksi palsta
   vasta kun kaksikin alkaa olla liian kapea. */
@media (max-width: 560px) {
    .tekkor-v2-tuoteruudukko ul.products { grid-template-columns: 1fr; }
}
