{"id":7378,"date":"2026-10-04T10:51:58","date_gmt":"2026-10-04T07:51:58","guid":{"rendered":"https:\/\/digiverkosto.fi\/?page_id=7378"},"modified":"2026-10-10T15:38:16","modified_gmt":"2026-10-10T12:38:16","slug":"etusivu-digiverkosto","status":"publish","type":"page","link":"https:\/\/digiverkosto.fi\/en\/","title":{"rendered":"Home Digital Network"},"content":{"rendered":"\n<div class=\"wp-block-group alignfull is-layout-flow wp-container-core-group-is-layout-9f310aa7 wp-block-group-is-layout-flow\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<style data-wp-block-html=\"css\">\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@1,600&display=swap');\n\n.hero-script {\n  font-family: 'Cormorant Garamond', serif;\n  font-style: italic;\n  font-weight: 600;\n  font-size: 1.25em;\n  letter-spacing: -0.01em;\n  display: inline-block;\n  padding: 0 4px;\n}\n\n.hero-section {\n  background: transparent;\n  width: 100%;\n  padding: 80px 20px;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  text-align: center;\n  box-sizing: border-box;\n}\n\n.hero-content {\n  max-width: 800px;\n  margin: 0 auto;\n}\n\n.hero-subtitle {\n  font-size: 1.1rem;\n  text-transform: uppercase;\n  letter-spacing: 2px;\n  margin-bottom: 12px;\n  opacity: 0.9;\n}\n\n.hero-title {\n  font-size: 3rem;\n  line-height: 1.2;\n  margin-bottom: 20px;\n  font-weight: 700;\n}\n\n.hero-description {\n  font-size: 1.2rem;\n  line-height: 1.6;\n  margin-bottom: 35px;\n  opacity: 0.85;\n  max-width: 650px;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n.hero-actions {\n  display: flex;\n  justify-content: center;\n  gap: 20px;\n  flex-wrap: wrap;\n}\n\n.c-button {\n  background: linear-gradient(140deg, rgba(75, 118, 200, 1) 0%, rgba(31, 70, 145, 1) 100%);\n  border-radius: 45px;\n  font-size: 22px;\n  text-align: left;\n  padding: 11px 0px 11px 0px;\n  border: 4px solid rgb(37, 37, 37) !important;\n  border-style: outset;\n  box-shadow: -6px -5px 18px rgba(255, 255, 255, 0.1);\n  cursor: pointer;\n  transition: all 0.3s ease;\n}\n\n.c-button .c-main {\n  border-radius: 45px;\n  color: rgba(255, 255, 255, 1);\n  padding: 11px 25px 11px 2px;\n  box-shadow: inset 0px 0px 5px rgba(17, 17, 17, 0);\n  transition: all 0.5s ease-in-out;\n  border: 1px solid transparent;\n}\n\n.c-ico {\n  position: relative;\n  margin-right: 20px;\n}\n\n.c-ico .c-blur {\n  background: linear-gradient(318deg, rgba(75, 118, 200, 1) 0%, rgba(31, 70, 145, 1) 100%);\n  border-radius: 100%;\n  margin-left: 0;\n  padding: 8px 23px;\n  filter: blur(1px);\n  text-align: center;\n}\n\n.c-ico .ico-text {\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  transform: translate(-50%, -50%);\n}\n\n.c-button .c-main:hover {\n  box-shadow: inset 0px 0px 5px rgba(17, 17, 17, 0.6);\n  border: 1px solid rgba(26, 26, 26, 0.5);\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.c-button-secondary {\n  background: linear-gradient(140deg, rgba(45, 45, 45, 1) 0%, rgba(20, 20, 20, 1) 100%);\n}\n\n.c-button-secondary .c-blur {\n  background: linear-gradient(318deg, rgba(65, 65, 65, 1) 0%, rgba(35, 35, 35, 1) 100%);\n}\n\n@media (max-width: 768px) {\n  .hero-section {\n    padding: 50px 15px;\n  }\n  .hero-title {\n    font-size: 2.1rem;\n  }\n  .hero-description {\n    font-size: 1rem;\n  }\n  .hero-actions {\n    flex-direction: column;\n    align-items: center;\n    gap: 15px;\n  }\n  .c-button {\n    font-size: 20px;\n    width: 100%;\n    max-width: 280px;\n  }\n}\n<\/style>\n\n<section class=\"hero-section\">\n  <div class=\"hero-content\">\n    <p class=\"hero-subtitle\">Verkkosivut asiakkaitasi varten<\/p>\n    <h1 class=\"hero-title\">\n      Mainostoimisto <span class=\"hero-script\">jossa puhelimeen vastataan<\/span>\n    <\/h1>\n    <p class=\"hero-description\">\n      Digiverkosto on mainostoimisto <strong>kasvuhaluisille<\/strong> yrityksille ymp\u00e4ri Suomen.<br> Digiverkoston toimistot sijaitsevat Veteliss\u00e4 ja Jokioisilla.\n    <\/p>\n    <div class=\"hero-actions\">\n      <a href=\"https:\/\/digiverkosto.fi\/ota-yhteytta\/\" class=\"c-button\" style=\"text-decoration: none;\">\n        <span class=\"c-main\">\n          <span class=\"c-ico\"><span class=\"c-blur\"><\/span> <span class=\"ico-text\">\u2794<\/span><\/span>\n          Ota yhteytt\u00e4\n        <\/span>\n      <\/a>\n      <a href=\"https:\/\/digiverkosto.fi\/referenssit\/\" class=\"c-button c-button-secondary\" style=\"text-decoration: none;\">\n        <span class=\"c-main\">\n          <span class=\"c-ico\"><span class=\"c-blur\"><\/span> <span class=\"ico-text\">\u2794<\/span><\/span>\n          Referenssit\n        <\/span>\n      <\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n  \/* Koko n\u00e4yt\u00f6n korkeus, flex-keskitys ja ylivuodon estot *\/\n  .hero-section {\n    width: 100%;\n    max-width: 100vw;\n    min-height: 100vh;\n    min-height: 100dvh; \/* Huomioi mobiiliselaimien osoiterivit dynaamisesti *\/\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    box-sizing: border-box;\n    overflow-x: hidden; \/* Est\u00e4\u00e4 vaakavierityksen *\/\n    padding: 4vh 5vw; \/* Turvamarginaalit *\/\n    background: transparent !important;\n    background-color: transparent !important;\n  }\n\n  .hero-content {\n    width: 100%;\n    max-width: 1200px;\n    margin: 0 auto;\n    text-align: center; \/* Keskitt\u00e4\u00e4 kaiken sis\u00e4ll\u00f6n vaakasuunnassa *\/\n    box-sizing: border-box;\n    background: transparent !important;\n    background-color: transparent !important;\n  }\n\n  .hero-title, \n  .hero-subtitle, \n  .hero-description {\n    max-width: 100%;\n    word-wrap: break-word; \/* Est\u00e4\u00e4 pitkien sanojen aiheuttaman ylivuodon *\/\n  }\n\n  .hero-actions {\n    display: flex;\n    flex-wrap: wrap; \/* Rivitt\u00e4\u00e4 napit allekkain mobiilissa tarvittaessa *\/\n    justify-content: center;\n    gap: 15px;\n    width: 100%;\n    box-sizing: border-box;\n    margin-top: 2rem;\n  }\n\n  .hero-actions .c-button {\n    display: inline-flex;\n    max-width: 100%; \/* Est\u00e4\u00e4 nappeja kasvamasta yli n\u00e4yt\u00f6n *\/\n    box-sizing: border-box;\n  }\n<\/style>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<section class=\"palvelut-section\" id=\"services\">\n    <!-- Taustan hehku -->\n    <div class=\"palvelut-glow\"><\/div>\n\n    <h2 class=\"section-title reveal\">Palvelumme<\/h2>\n    <p class=\"section-subtitle reveal\">K\u00e4yt\u00e4mme modernia teknologiaa vapauttaaksemme aikasi ja maksimoidaksemme myyntisi.<\/p>\n    \n    <div class=\"services-grid\">\n        \n        <!-- YKK\u00d6SPALVELU: VERKKOSIVUT JA YLL\u00c4PITO (Koko leveys) -->\n        <div class=\"service-card hero-service reveal\">\n            <div class=\"hero-split\">\n                <!-- Vasen: Verkkosivut -->\n                <div class=\"hero-half\">\n                    <span class=\"tag blue-tag\">Ydinpalvelumme<\/span>\n                    <h3>Verkkosivut &amp; Verkkokaupat<\/h3>\n                    <p>Rakennamme ammattimaiset, modernit ja tulosta tekev\u00e4t WordPress-sivustot sek\u00e4 verkkokaupat, jotka on r\u00e4\u00e4t\u00e4l\u00f6ity t\u00e4ysin liiketoimintasi tarpeisiin.<\/p>\n                    <ul class=\"service-list\">\n                        <li>Mobiiliyst\u00e4v\u00e4lliset ja huippunopeat<\/li>\n                        <li>Hakukoneoptimoitu (SEO) heti julkaisussa<\/li>\n                        <li>Konversio-optimoidut ostopolut<\/li>\n                    <\/ul>\n                    <a href=\"https:\/\/digiverkosto.fi\/verkkosivut\/\" class=\"dv-button\">\n                        Tutustu verkkosivuihin\n                        <svg fill=\"currentColor\" viewBox=\"0 0 24 24\" class=\"dv-btn-icon\">\n                            <path clip-rule=\"evenodd\" d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm4.28 10.28a.75.75 0 000-1.06l-3-3a.75.75 0 10-1.06 1.06l1.72 1.72H8.25a.75.75 0 000 1.5h5.69l-1.72 1.72a.75.75 0 101.06 1.06l3-3z\" fill-rule=\"evenodd\"><\/path>\n                        <\/svg>\n                    <\/a>\n                <\/div>\n                \n                <!-- Oikea: Yll\u00e4pito -->\n                <div class=\"hero-half hero-maintenance\">\n                    <span class=\"tag dim-tag\">Jatkuva tuki<\/span>\n                    <h3>Huoleton yll\u00e4pito<\/h3>\n                    <p>Kun sivut ovat valmiit, me pid\u00e4mme ne turvassa ja ajan tasalla. Sin\u00e4 voit keskitty\u00e4 liiketoimintaasi ilman teknist\u00e4 stressi\u00e4.<\/p>\n                    <ul class=\"service-list\">\n                        <li>Palvelintila &amp; Domain<\/li>\n                        <li>Tietoturva ja s\u00e4\u00e4nn\u00f6lliset p\u00e4ivitykset<\/li>\n                        <li>Nopea asiakastuki ongelmatilanteissa<\/li>\n                    <\/ul>\n                    <a href=\"https:\/\/digiverkosto.fi\/verkkosivujen-yllapito\/\" class=\"dv-button outline-button\">\n                        Lue lis\u00e4\u00e4 yll\u00e4pidosta\n                        <svg fill=\"currentColor\" viewBox=\"0 0 24 24\" class=\"dv-btn-icon\">\n                            <path clip-rule=\"evenodd\" d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm4.28 10.28a.75.75 0 000-1.06l-3-3a.75.75 0 10-1.06 1.06l1.72 1.72H8.25a.75.75 0 000 1.5h5.69l-1.72 1.72a.75.75 0 101.06 1.06l3-3z\" fill-rule=\"evenodd\"><\/path>\n                        <\/svg>\n                    <\/a>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- AI & KUVAUS (Kaksi vierekk\u00e4in) -->\n        <div class=\"service-card regular-card reveal\">\n            <span class=\"tag dim-tag\">AI &amp; Automaatio<\/span>\n            <h3>Teko\u00e4lyratkaisut<\/h3>\n            <p>Rakennamme automaatiot, jotka s\u00e4\u00e4st\u00e4v\u00e4t aikaa ja rahaa hoitamalla manuaaliset ty\u00f6t puolestasi vuorokauden ymp\u00e4ri.<\/p>\n            <ul class=\"service-list\">\n                <li>\u00c4lykk\u00e4\u00e4t Chattibotit<\/li>\n                <li>Automaattiset vastaukset<\/li>\n                <li>Tehokas liidien ker\u00e4\u00e4minen<\/li>\n            <\/ul>\n            <a href=\"https:\/\/digiverkosto.fi\/tekoalyratkaisut-yrityksille\/\" class=\"dv-button\">\n                Lue lis\u00e4\u00e4 teko\u00e4lyst\u00e4\n                <svg fill=\"currentColor\" viewBox=\"0 0 24 24\" class=\"dv-btn-icon\">\n                    <path clip-rule=\"evenodd\" d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm4.28 10.28a.75.75 0 000-1.06l-3-3a.75.75 0 10-1.06 1.06l1.72 1.72H8.25a.75.75 0 000 1.5h5.69l-1.72 1.72a.75.75 0 101.06 1.06l3-3z\" fill-rule=\"evenodd\"><\/path>\n                <\/svg>\n            <\/a>\n        <\/div>\n\n        <div class=\"service-card regular-card reveal\">\n            <span class=\"tag dim-tag\">Visuaalisuus<\/span>\n            <h3>Kuvauspalvelut<\/h3>\n            <p>Laadukkaat kuvauspalvelut yrityksesi tarpeisiin. Her\u00e4t\u00e4 br\u00e4ndisi eloon vakuuttavalla ja ammattimaisella materiaalilla.<\/p>\n            <ul class=\"service-list\">\n                <li>360-kuvaus tiloista<\/li>\n                <li>Dronekuvaus ilmasta<\/li>\n                <li>Ammattitason valokuvaus<\/li>\n            <\/ul>\n            <a href=\"https:\/\/digiverkosto.fi\/kuvauspalvelut\/\" class=\"dv-button\">\n                Lue lis\u00e4\u00e4 kuvauksista\n                <svg fill=\"currentColor\" viewBox=\"0 0 24 24\" class=\"dv-btn-icon\">\n                    <path clip-rule=\"evenodd\" d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm4.28 10.28a.75.75 0 000-1.06l-3-3a.75.75 0 10-1.06 1.06l1.72 1.72H8.25a.75.75 0 000 1.5h5.69l-1.72 1.72a.75.75 0 101.06 1.06l3-3z\" fill-rule=\"evenodd\"><\/path>\n                <\/svg>\n            <\/a>\n        <\/div>\n\n        <!-- DIGIMARKKINOINTI (Leve\u00e4 kortti, koko rivi) -->\n        <div class=\"service-card full-width-card reveal\">\n            <span class=\"tag dim-tag\">Kasvu<\/span>\n            <h3>Digimarkkinointi<\/h3>\n            <p>Tavoita oikea yleis\u00f6 ja muuta k\u00e4vij\u00e4t maksaviksi asiakkaiksi. Suunnittelemme ja toteutamme dataan pohjautuvaa markkinointia, joka skaalaa liiketoimintaasi tehokkaasti.<\/p>\n            \n            <ul class=\"service-list two-columns\">\n                <li>Google Ads &amp; Meta Ads (Facebook\/Instagram)<\/li>\n                <li>Hakukoneoptimointi (SEO)<\/li>\n                <li>Google Yritysprofiilin optimointi<\/li>\n                <li>Konversio-optimoidut laskeutumissivut<\/li>\n            <\/ul>\n            \n            <a href=\"https:\/\/digiverkosto.fi\/digimarkkinointi\/\" class=\"dv-button\">\n                Lue markkinoinnista\n                <svg fill=\"currentColor\" viewBox=\"0 0 24 24\" class=\"dv-btn-icon\">\n                    <path clip-rule=\"evenodd\" d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm4.28 10.28a.75.75 0 000-1.06l-3-3a.75.75 0 10-1.06 1.06l1.72 1.72H8.25a.75.75 0 000 1.5h5.69l-1.72 1.72a.75.75 0 101.06 1.06l3-3z\" fill-rule=\"evenodd\"><\/path>\n                <\/svg>\n            <\/a>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n    \/* Osiokohtainen nollaus varmistaa ettei ylivuotoa tapahdu *\/\n    .palvelut-section * {\n        box-sizing: border-box;\n    }\n\n    .palvelut-section { \n        width: 100%;\n        max-width: 1400px;\n        padding: 100px 5vw; \n        margin: 0 auto; \n        color: #f5f5f7; \n        font-family: inherit, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n        position: relative;\n        overflow-x: hidden;\n        background: transparent !important;\n        background-color: transparent !important;\n    }\n    .palvelut-section a { text-decoration: none !important; }\n\n    \/* Taustavalo osiolle (l\u00e4pin\u00e4kyv\u00e4n\u00e4, jotta t\u00e4hdet n\u00e4kyv\u00e4t) *\/\n    .palvelut-glow {\n        position: absolute;\n        top: 20%;\n        left: 50%;\n        transform: translateX(-50%);\n        width: 800px;\n        height: 600px;\n        background: radial-gradient(circle, rgba(0, 113, 227, 0.05) 0%, transparent 70%);\n        z-index: -1;\n        pointer-events: none;\n        max-width: 100vw;\n    }\n    \n    .section-title { \n        font-size: clamp(34px, 6vw, 48px); \n        font-weight: 800; \n        text-align: center; \n        color: #ffffff;\n        margin-bottom: 20px;\n        letter-spacing: -0.02em;\n        word-wrap: break-word;\n    }\n\n    .section-subtitle {\n        text-align: center;\n        color: #86868b;\n        font-size: 18px;\n        max-width: 600px;\n        margin: 0 auto 60px auto;\n        line-height: 1.6;\n        word-wrap: break-word;\n    }\n    \n    .services-grid { \n        display: grid; \n        grid-template-columns: repeat(2, 1fr); \n        gap: 30px; \n        width: 100%;\n    }\n\n    \/* Kortit l\u00e4pin\u00e4kyviksi kevyell\u00e4 lasiefektill\u00e4 *\/\n    .service-card { \n        background: rgba(18, 18, 20, 0.6) !important; \n        border-radius: 24px; \n        padding: 45px 40px; \n        border: 1px solid rgba(255, 255, 255, 0.08); \n        display: flex; \n        flex-direction: column; \n        transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); \n        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4);\n        position: relative;\n        overflow: hidden;\n        width: 100%;\n        backdrop-filter: blur(10px);\n        -webkit-backdrop-filter: blur(10px);\n    }\n\n    .service-card::before {\n        content: '';\n        position: absolute;\n        top: 0; left: 0; width: 100%; height: 3px;\n        background: linear-gradient(90deg, transparent, rgb(0, 113, 227), transparent);\n        opacity: 0.3;\n        transition: opacity 0.4s ease;\n    }\n\n    .service-card:hover {\n        transform: translateY(-8px);\n        border-color: rgba(0, 113, 227, 0.4);\n        box-shadow: 0 20px 45px rgba(0, 113, 227, 0.15);\n    }\n    .service-card:hover::before { opacity: 1; }\n\n    \/* Ykk\u00f6spalvelun & Leve\u00e4n kortin asettelu *\/\n    .hero-service, .full-width-card {\n        grid-column: 1 \/ -1; \n    }\n    \n    .hero-service {\n        background: rgba(21, 24, 33, 0.5) !important;\n        border-color: rgba(0, 113, 227, 0.3);\n        box-shadow: 0 20px 50px rgba(0, 113, 227, 0.1);\n        padding: 0; \n    }\n    \n    .hero-service::before {\n        opacity: 1;\n        background: rgb(0, 113, 227);\n    }\n\n    .hero-split {\n        display: grid;\n        grid-template-columns: 1.2fr 1fr;\n        width: 100%;\n    }\n\n    .hero-half {\n        padding: 50px;\n        display: flex;\n        flex-direction: column;\n        width: 100%;\n        background: transparent !important;\n    }\n\n    .hero-maintenance {\n        background: rgba(0, 0, 0, 0.2) !important;\n        border-left: 1px solid rgba(255, 255, 255, 0.05);\n    }\n\n    .service-card h3 { \n        font-size: 28px; \n        margin: 0 0 15px 0; \n        color: #ffffff; \n        font-weight: 800;\n        letter-spacing: -0.01em;\n        word-wrap: break-word;\n    }\n\n    .tag { \n        display: inline-flex; \n        padding: 6px 14px; \n        border-radius: 100px; \n        font-size: 11px; \n        text-transform: uppercase; \n        font-weight: 700;\n        letter-spacing: 1px;\n        margin-bottom: 20px; \n        width: fit-content;\n        max-width: 100%;\n    }\n    .blue-tag {\n        background: rgba(0, 113, 227, 0.15);\n        color: rgb(0, 113, 227);\n        border: 1px solid rgba(0, 113, 227, 0.3);\n    }\n    .dim-tag {\n        background: rgba(255,255,255,0.05); \n        color: #a1a1a6; \n        border: 1px solid rgba(255, 255, 255, 0.1);\n    }\n\n    .service-card p { \n        color: #86868b; \n        font-size: 16px; \n        margin-bottom: 25px; \n        line-height: 1.6; \n    }\n    \n    .service-list { \n        list-style: none; \n        padding: 0; \n        margin-bottom: 40px; \n    }\n    \n    .service-list li { \n        margin-bottom: 12px; \n        font-size: 15px; \n        display: flex; \n        align-items: flex-start; \n        color: #f5f5f7; \n        line-height: 1.4;\n    }\n    \n    .service-list li::before { \n        content: \"\u2713\"; \n        color: rgb(0, 113, 227); \n        font-weight: bold; \n        margin-right: 12px; \n        flex-shrink: 0;\n    }\n\n    .two-columns {\n        display: grid;\n        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n        gap: 10px;\n    }\n\n    \/* NAPIT *\/\n    .dv-button {\n        position: relative;\n        transition: all 0.3s ease-in-out;\n        box-shadow: 0px 10px 20px rgba(0, 113, 227, 0.25);\n        padding-block: 12px;\n        padding-inline: 24px;\n        background-color: rgb(0, 113, 227);\n        border-radius: 9999px;\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n        color: #ffff !important;\n        gap: 10px;\n        font-weight: 700;\n        border: 2px solid rgba(255, 255, 255, 0.2);\n        outline: none;\n        overflow: hidden;\n        font-size: 15px;\n        cursor: pointer;\n        width: fit-content;\n        max-width: 100%;\n        white-space: normal;\n        text-align: center;\n        margin-top: auto;\n    }\n\n    .dv-btn-icon {\n        width: 20px;\n        height: 20px;\n        transition: all 0.3s ease-in-out;\n        flex-shrink: 0;\n    }\n\n    .dv-button:hover {\n        transform: scale(1.05);\n        border-color: rgba(255, 255, 255, 0.6);\n        box-shadow: 0px 15px 30px rgba(0, 113, 227, 0.4);\n    }\n\n    .dv-button:hover .dv-btn-icon {\n        transform: translate(4px);\n    }\n\n    .dv-button:hover::before {\n        animation: dv-shine 1.5s ease-out infinite;\n    }\n\n    .dv-button::before {\n        content: \"\";\n        position: absolute;\n        width: 100px;\n        height: 100%;\n        background-image: linear-gradient(\n            120deg,\n            rgba(255, 255, 255, 0) 30%,\n            rgba(255, 255, 255, 0.6),\n            rgba(255, 255, 255, 0) 70%\n        );\n        top: 0;\n        left: -100px;\n        opacity: 0.6;\n    }\n    \n    .outline-button {\n        background-color: rgba(255, 255, 255, 0.05);\n        border: 2px solid rgba(255, 255, 255, 0.15);\n        box-shadow: none;\n    }\n    \n    .outline-button:hover {\n        background-color: rgba(255, 255, 255, 0.1);\n        border-color: rgba(255, 255, 255, 0.3);\n    }\n\n    @keyframes dv-shine {\n        0% { left: -100px; }\n        60% { left: 100%; }\n        to { left: 100%; }\n    }\n\n    \/* Scroll Animaatio *\/\n    .reveal { opacity: 0; transform: translateY(30px); transition: all 0.8s ease-out; }\n    .reveal.active { opacity: 1; transform: translateY(0); }\n\n    \/* Responsiivisuus *\/\n    @media (max-width: 1000px) {\n        .services-grid { grid-template-columns: 1fr; gap: 24px; }\n        .hero-split { grid-template-columns: 1fr; }\n        .hero-half { padding: 40px 5vw; } \n        .hero-maintenance { border-left: none; border-top: 1px solid rgba(255, 255, 255, 0.05); }\n        .service-card { padding: 40px 5vw; }\n        .two-columns { grid-template-columns: 1fr; }\n    }\n<\/style>\n\n<script>\n    if (typeof window.animateOnScrollInit === 'undefined') {\n        window.animateOnScrollInit = true;\n        function animateOnScroll() {\n            const elements = document.querySelectorAll('.reveal');\n            elements.forEach(el => {\n                const elementTop = el.getBoundingClientRect().top;\n                if (elementTop < window.innerHeight - 50) {\n                    el.classList.add('active');\n                }\n            });\n        }\n        window.addEventListener('scroll', animateOnScroll);\n        window.addEventListener('load', animateOnScroll);\n        document.addEventListener('DOMContentLoaded', animateOnScroll);\n    }\n<\/script>\n\n\n\n<section id=\"digiverkosto-arvostelut\">\n    <div class=\"reviews-header\">\n        <span class=\"reviews-pre-title\">Asiakkaiden kokemuksia<\/span>\n        <h2>Mit\u00e4 yritt\u00e4j\u00e4t sanovat?<\/h2>\n    <\/div>\n\n    <div class=\"reviews-grid\">\n        <!-- Arvostelu 1 -->\n        <div class=\"review-card\">\n            <div class=\"stars\">\u2605\u2605\u2605\u2605\u2605<\/div>\n            <div class=\"review-text-wrapper\">\n                <p class=\"review-text\">\"Digiverkosto tekee todella nopeaa, tarkkaa ja yst\u00e4v\u00e4llist\u00e4 palvelua! Saivat tosi hyvin kiinni ajatuksestani ja sivuista tuli juuri sellaiset kuin olin halunnutkin ja sain apua my\u00f6s sis\u00e4ll\u00f6iss\u00e4. Iso suositus!!\"<\/p>\n            <\/div>\n            <button class=\"read-more-btn\" onclick=\"toggleReview(this)\">Lue lis\u00e4\u00e4<\/button>\n            <div class=\"review-author\">\u2014 Roosa S<\/div>\n        <\/div>\n\n        <!-- Arvostelu 2 -->\n        <div class=\"review-card\">\n            <div class=\"stars\">\u2605\u2605\u2605\u2605\u2605<\/div>\n            <div class=\"review-text-wrapper\">\n                <p class=\"review-text\">\"Olen eritt\u00e4in tyytyv\u00e4inen Digiverkoston tekemiin nettisivuihin Lev\u00e4hdyshetkelle. Sivut ovat selke\u00e4t, kauniit ja toimivat moitteettomasti kaikilla laitteilla. Tekij\u00e4t ymm\u00e4rsiv\u00e4t hyvin visioni ja pystyiv\u00e4t tuomaan sen verkkosivuille juuri niin kuin halusin. Ammattitaitoista palvelua, joustavuutta ja nopeaa reagointia \u2013 suosittelen l\u00e4mpim\u00e4sti!\"<\/p>\n            <\/div>\n            <button class=\"read-more-btn\" onclick=\"toggleReview(this)\">Lue lis\u00e4\u00e4<\/button>\n            <div class=\"review-author\">\u2014 Hannele S<\/div>\n        <\/div>\n\n        <!-- Arvostelu 3 -->\n        <div class=\"review-card\">\n            <div class=\"stars\">\u2605\u2605\u2605\u2605\u2605<\/div>\n            <div class=\"review-text-wrapper\">\n                <p class=\"review-text\">\"Kiitos koulutuksesta kotisivujen muokkaamiseen. Kouluttaja oli perehtynyt muokattavaan kohteeseen ja neuvoi t\u00e4rkeimm\u00e4t asiat muokkauksessa. Oli my\u00f6s mahdollisuus esitt\u00e4\u00e4 lis\u00e4kysymyksi\u00e4. K\u00e4rsiv\u00e4llinen ja selke\u00e4 opetustyyli.\"<\/p>\n            <\/div>\n            <button class=\"read-more-btn\" onclick=\"toggleReview(this)\">Lue lis\u00e4\u00e4<\/button>\n            <div class=\"review-author\">\u2014 Marja T<\/div>\n        <\/div>\n\n        <!-- Arvostelu 4 -->\n        <div class=\"review-card\">\n            <div class=\"stars\">\u2605\u2605\u2605\u2605\u2605<\/div>\n            <div class=\"review-text-wrapper\">\n                <p class=\"review-text\">\"Olen todella tyytyv\u00e4inen nettisivuista, jotka Digiverkosto teki yritykselleni Sallamarin Jalkaterapia. Yhteisty\u00f6 oli vaivatonta ja helppoa. Sivuista tuli toiveideni mukaiset ja ne palvelevat hyvin yrityst\u00e4ni. Palvelu oli nopeaa, suosittelen!\"<\/p>\n            <\/div>\n            <button class=\"read-more-btn\" onclick=\"toggleReview(this)\">Lue lis\u00e4\u00e4<\/button>\n            <div class=\"review-author\">\u2014 Sallamari P<\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<style>\n    \/* Nollaus varmistaa, ett\u00e4 paddingit lasketaan leveyden sis\u00e4\u00e4n, est\u00e4en ylivuodon *\/\n    #digiverkosto-arvostelut, \n    #digiverkosto-arvostelut * {\n        box-sizing: border-box;\n    }\n\n    #digiverkosto-arvostelut {\n        width: 100%;\n        max-width: 100vw;\n        padding: 100px 5vw;\n        text-align: center;\n        overflow-x: hidden;\n        background: transparent !important;\n        background-color: transparent !important;\n        color: #ffffff;\n        font-family: inherit, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n        position: relative;\n    }\n\n    \/* Taustalle tuotu hienovarainen el\u00e4v\u00e4 sininen hehku (l\u00e4pin\u00e4kyv\u00e4n\u00e4) *\/\n    #digiverkosto-arvostelut::before {\n        content: '';\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        transform: translate(-50%, -50%);\n        width: 800px;\n        max-width: 100vw;\n        height: 500px;\n        background: radial-gradient(circle, rgba(0, 113, 227, 0.08) 0%, transparent 70%);\n        z-index: 1;\n        pointer-events: none;\n    }\n\n    #digiverkosto-arvostelut .reviews-header,\n    #digiverkosto-arvostelut .reviews-grid {\n        position: relative;\n        z-index: 2;\n    }\n\n    #digiverkosto-arvostelut .reviews-header {\n        margin-bottom: 60px;\n        width: 100%;\n    }\n\n    #digiverkosto-arvostelut .reviews-pre-title {\n        display: block;\n        font-weight: 700;\n        text-transform: uppercase;\n        letter-spacing: 0.1em;\n        margin-bottom: 15px;\n        color: rgb(0, 113, 227);\n        font-size: 14px;\n    }\n\n    #digiverkosto-arvostelut h2 {\n        font-weight: 800;\n        margin: 0;\n        letter-spacing: -0.02em;\n        font-size: clamp(28px, 4vw, 42px);\n        color: #ffffff;\n        word-wrap: break-word;\n    }\n\n    \/* Animoitu Grid *\/\n    #digiverkosto-arvostelut .reviews-grid {\n        display: grid;\n        grid-template-columns: repeat(4, 1fr);\n        gap: 25px;\n        width: 100%;\n        max-width: 1400px;\n        margin: 0 auto;\n        align-items: start;\n    }\n\n    #digiverkosto-arvostelut .review-card {\n        background: rgba(18, 18, 20, 0.6) !important;\n        border: 1px solid rgba(255, 255, 255, 0.08);\n        border-radius: 20px;\n        padding: 35px 30px;\n        display: flex;\n        flex-direction: column;\n        text-align: left;\n        backdrop-filter: blur(10px);\n        -webkit-backdrop-filter: blur(10px);\n        transition: all 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);\n        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4);\n        animation: float 6s ease-in-out infinite;\n        position: relative;\n        overflow: hidden;\n        width: 100%;\n    }\n\n    \/* Yl\u00e4reunan korostusviiva korteille *\/\n    #digiverkosto-arvostelut .review-card::before {\n        content: '';\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 3px;\n        background: linear-gradient(90deg, transparent, rgb(0, 113, 227), transparent);\n        opacity: 0.5;\n        transition: opacity 0.3s ease;\n    }\n\n    \/* Animaatio *\/\n    @keyframes float {\n        0% { transform: translateY(0px); }\n        50% { transform: translateY(-10px); }\n        100% { transform: translateY(0px); }\n    }\n\n    #digiverkosto-arvostelut .review-card:nth-child(2) { animation-delay: 1s; }\n    #digiverkosto-arvostelut .review-card:nth-child(3) { animation-delay: 2s; }\n    #digiverkosto-arvostelut .review-card:nth-child(4) { animation-delay: 1.5s; }\n\n    #digiverkosto-arvostelut .review-card:hover {\n        border-color: rgba(0, 113, 227, 0.5);\n        transform: scale(1.02) translateY(-4px) !important;\n        box-shadow: 0 20px 45px rgba(0, 113, 227, 0.15);\n        animation-play-state: paused;\n    }\n\n    #digiverkosto-arvostelut .review-card:hover::before {\n        opacity: 1;\n    }\n\n    #digiverkosto-arvostelut .stars {\n        margin-bottom: 12px;\n        color: #ffc700;\n        font-size: 1.1rem;\n        letter-spacing: 2px;\n    }\n\n    \/* Tekstikomponentti ja rajoitus *\/\n    #digiverkosto-arvostelut .review-text-wrapper {\n        position: relative;\n        margin-bottom: 15px;\n    }\n\n    #digiverkosto-arvostelut .review-text {\n        line-height: 1.6;\n        margin: 0;\n        color: #86868b;\n        font-size: 15px;\n        display: -webkit-box;\n        -webkit-line-clamp: 3;\n        -webkit-box-orient: vertical;\n        overflow: hidden;\n        transition: max-height 0.4s ease;\n    }\n\n    \/* Kun kortti on avattuna (is-open) *\/\n    #digiverkosto-arvostelut .review-card.is-open .review-text {\n        display: block;\n        -webkit-line-clamp: unset;\n    }\n\n    \/* Lue lis\u00e4\u00e4 -painike *\/\n    #digiverkosto-arvostelut .read-more-btn {\n        background: none;\n        border: none;\n        color: rgb(0, 113, 227);\n        font-weight: 700;\n        font-size: 13px;\n        cursor: pointer;\n        padding: 0;\n        margin-bottom: 20px;\n        text-align: left;\n        display: inline-flex;\n        align-items: center;\n        gap: 5px;\n        transition: color 0.2s ease;\n    }\n\n    #digiverkosto-arvostelut .read-more-btn:hover {\n        color: #3391ff;\n    }\n\n    #digiverkosto-arvostelut .read-more-btn::after {\n        content: \"\u25bc\";\n        font-size: 9px;\n        transition: transform 0.3s ease;\n    }\n\n    #digiverkosto-arvostelut .review-card.is-open .read-more-btn::after {\n        transform: rotate(180deg);\n    }\n\n    #digiverkosto-arvostelut .review-author {\n        font-weight: 700;\n        color: #ffffff;\n        font-size: 15px;\n        margin-top: auto;\n    }\n\n    \/* Responsiivisuus *\/\n    @media (max-width: 1024px) {\n        #digiverkosto-arvostelut .reviews-grid {\n            grid-template-columns: repeat(2, 1fr);\n        }\n    }\n\n    @media (max-width: 600px) {\n        #digiverkosto-arvostelut .reviews-grid {\n            grid-template-columns: 1fr;\n        }\n        #digiverkosto-arvostelut .review-card {\n            padding: 30px 25px;\n        }\n    }\n<\/style>\n\n<script>\n    function toggleReview(button) {\n        const card = button.closest('.review-card');\n        card.classList.toggle('is-open');\n        \n        if (card.classList.contains('is-open')) {\n            button.textContent = \"N\u00e4yt\u00e4 v\u00e4hemm\u00e4n\";\n        } else {\n            button.textContent = \"Lue lis\u00e4\u00e4\";\n        }\n    }\n<\/script>\n\n\n\n<section id=\"digiverkosto-ylivoimainen\" class=\"dv-ylivoimainen-section\">\n    <!-- Digitaalinen tausta ja hehku -->\n    <div class=\"dv-digital-bg\"><\/div>\n    <div class=\"dv-glow-orb\"><\/div>\n\n    <div class=\"dv-container\">\n        \n        <!-- Otsikko -->\n        <div class=\"dv-header reveal\">\n            <span class=\"dv-tag\">Kumppanuus<\/span>\n            <h2 class=\"dv-title\">Miksi Digiverkosto on ylivoimainen kumppani?<\/h2>\n        <\/div>\n\n        <!-- Filosofia-kortti (Esteettinen split-layout) -->\n        <div class=\"dv-philosophy-card reveal\">\n            <div class=\"dv-philosophy-content\">\n                <div class=\"philosophy-text-side\">\n                    <h3 class=\"philosophy-headline\">Kaikenkokoiset asiakkaat ovat meille yht\u00e4 t\u00e4rkeit\u00e4.<\/h3>\n                    <p class=\"philosophy-lead\">\n                        Keskitymme jokaiseen asiakkaaseemme t\u00e4ysill\u00e4, emmek\u00e4 koskaan haali liikaa projekteja kerralla. N\u00e4in varmistamme, ett\u00e4 pystymme hoitamaan jokaisen ty\u00f6n <span>tinkim\u00e4tt\u00f6m\u00e4ll\u00e4 laadulla<\/span> alusta loppuun.\n                    <\/p>\n                <\/div>\n                <div class=\"philosophy-features-side\">\n                    <div class=\"p-item\">\n                        <div class=\"p-icon-box\">\n                            <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z\"><\/path><\/svg>\n                        <\/div>\n                        <div>\n                            <h4>5\/5 Asiakastyytyv\u00e4isyys<\/h4>\n                            <p>T\u00e4ht\u00e4\u00e4mme aina korkeammalle kuin on sovittu.<\/p>\n                        <\/div>\n                    <\/div>\n                    <div class=\"p-item\">\n                        <div class=\"p-icon-box\">\n                            <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M13 10V3L4 14h7v7l9-11h-7z\"><\/path><\/svg>\n                        <\/div>\n                        <div>\n                            <h4>Ratkaisukeskeisyys<\/h4>\n                            <p>Jos emme heti tied\u00e4 jotain, selvit\u00e4mme sen hetkess\u00e4.<\/p>\n                        <\/div>\n                    <\/div>\n                    <div class=\"p-item\">\n                        <div class=\"p-icon-box\">\n                            <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z\"><\/path><\/svg>\n                        <\/div>\n                        <div>\n                            <h4>Aina tavoitettavissa<\/h4>\n                            <p>Olemme t\u00e4\u00e4ll\u00e4 sinua varten joka p\u00e4iv\u00e4, projektin j\u00e4lkeenkin.<\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Uusi \"Bento Box\" Grid -->\n        <div class=\"dv-bento-grid\">\n            \n            <!-- Iso korostettu kortti: Hinnoittelu ja omat ty\u00f6kalut -->\n            <div class=\"bento-card bento-large reveal bento-highlight\">\n                <div class=\"bento-inner-glow\"><\/div>\n                <div class=\"bento-badge\">01<\/div>\n                <h3>Fiksumpi hinnoittelu &amp; omat ty\u00f6kalut<\/h3>\n                <p>\n                    Ammattilaistason ratkaisu ei saa maksaa maltaita. Olemme ketter\u00e4 tiimi ilman ison organisaation raskaita kuluja.\n                <\/p>\n                <p class=\"highlight-text\">\n                    Useat toimijat k\u00e4ytt\u00e4v\u00e4t maksullisia kolmannen osapuolen ty\u00f6kaluja, jotka lis\u00e4\u00e4v\u00e4t yll\u00e4pidon hintaan satoja euroja vuodessa. T\u00e4st\u00e4 syyst\u00e4 rakennamme omat r\u00e4\u00e4t\u00e4l\u00f6idyt ty\u00f6kalumme aina kun mahdollista \u2013 <strong>t\u00e4m\u00e4 s\u00e4\u00e4st\u00e4\u00e4 sinulta useita satoja euroja vuosittain<\/strong> laadusta tinkim\u00e4tt\u00e4.\n                <\/p>\n            <\/div>\n\n            <!-- Normaali kortti: Nopea toimitus -->\n            <div class=\"bento-card reveal\">\n                <div class=\"bento-badge\">02<\/div>\n                <h3>Nopea toimitus<\/h3>\n                <p>Aika on yritt\u00e4j\u00e4lle rahaa. Siksi emme jumita kuukausia palavereissa, vaan toimittamme valmiit, laadukkaat sivut ripe\u00e4sti ilman kompromisseja.<\/p>\n            <\/div>\n\n            <!-- Normaali kortti: Takuu -->\n            <div class=\"bento-card reveal\">\n                <div class=\"bento-badge\">03<\/div>\n                <h3>100% Tyytyv\u00e4isyystakuu<\/h3>\n                <p>Sivut ovat valmiit vasta kun olet tyytyv\u00e4inen. Hiomme yksityiskohdat kuntoon niin kauan, ett\u00e4 lopputulos vastaa t\u00e4ydellisesti visiotasi.<\/p>\n            <\/div>\n\n            <!-- Normaali kortti: Aina verkossa -->\n            <div class=\"bento-card reveal\">\n                <div class=\"bento-badge\">04<\/div>\n                <h3>Aina verkossa &amp; toimii<\/h3>\n                <p>Vakaa ja nopea alusta varmistaa, ett\u00e4 asiakkaasi l\u00f6yt\u00e4v\u00e4t sinut vuorokauden jokaisena tuntina \u2013 ilman piinallisia k\u00e4ytt\u00f6katkoja.<\/p>\n            <\/div>\n\n            <!-- Normaali kortti: Luotettava -->\n            <div class=\"bento-card reveal\">\n                <div class=\"bento-badge\">05<\/div>\n                <h3>Luotettava tekij\u00e4<\/h3>\n                <p>Seisomme ty\u00f6mme takana sataprosenttisesti. Meihin voit luottaa horjumatta niin koko projektin ajan kuin pitk\u00e4lle tulevaisuuteen.<\/p>\n            <\/div>\n            \n        <\/div>\n\n        <!-- CTA Osio -->\n        <div class=\"dv-cta-card reveal\">\n            <div class=\"cta-content\">\n                <h3 class=\"cta-title\">Keskitymme aitoihin tuloksiin<\/h3>\n                <p class=\"cta-text\">\n                    Emme valikoi projekteja niiden laajuuden perusteella, vaan sen mukaan, voimmeko aidosti auttaa asiakastamme saamaan parempia tuloksia. Siksi ty\u00f6skentelemme vain yritysten kanssa, joille voimme tarjota todellista kasvua.\n                <\/p>\n                <p class=\"cta-text\" style=\"color: #ffffff; font-weight: 600;\">\n                    Tarjoamme aina maksuttoman konsultaation. Selvit\u00e4\u00e4n yhdess\u00e4, miten toimintaasi voi kehitt\u00e4\u00e4 ja sovimmeko yhteisty\u00f6h\u00f6n.\n                <\/p>\n            <\/div>\n            <div class=\"cta-action\">\n                <a href=\"https:\/\/digiverkosto.fi\/varaa-aika\/\" style=\"text-decoration: none;\">\n                    <button class=\"dv-shine-button\">\n                        Varaa maksuton konsultaatio\n                        <svg fill=\"currentColor\" viewBox=\"0 0 24 24\" class=\"icon\">\n                            <path clip-rule=\"evenodd\" d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm4.28 10.28a.75.75 0 000-1.06l-3-3a.75.75 0 10-1.06 1.06l1.72 1.72H8.25a.75.75 0 000 1.5h5.69l-1.72 1.72a.75.75 0 101.06 1.06l3-3z\" fill-rule=\"evenodd\"><\/path>\n                        <\/svg>\n                    <\/button>\n                <\/a>\n            <\/div>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n    :root {\n        --dv-blue: #0071e3;\n        --dv-blue-gradient: linear-gradient(135deg, rgb(0, 113, 227), rgb(0, 200, 255));\n        --dv-card-bg: rgba(18, 18, 20, 0.6);\n        --dv-text-main: #f5f5f7;\n        --dv-text-dim: #86868b;\n        --dv-border: rgba(255, 255, 255, 0.08);\n    }\n\n    \/* T\u00c4RKE\u00c4\u00c4: Box-sizing varmistaa ettei ylivuotoa tapahdu *\/\n    .dv-ylivoimainen-section, \n    .dv-ylivoimainen-section * {\n        box-sizing: border-box;\n    }\n\n    .dv-ylivoimainen-section {\n        width: 100%;\n        max-width: 100vw;\n        padding: 100px 5vw;\n        background: transparent !important;\n        background-color: transparent !important;\n        color: var(--dv-text-main);\n        font-family: inherit, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n        position: relative;\n        overflow-x: hidden;\n    }\n\n    \/* Kyber-verkko tausta (l\u00e4pin\u00e4kyv\u00e4n\u00e4) *\/\n    .dv-digital-bg {\n        position: absolute;\n        top: 0; left: 0; right: 0; bottom: 0;\n        background-image: \n            linear-gradient(rgba(255, 255, 255, 0.015) 1px, transparent 1px),\n            linear-gradient(90deg, rgba(255, 255, 255, 0.015) 1px, transparent 1px);\n        background-size: 50px 50px;\n        z-index: 0;\n    }\n\n    .dv-glow-orb {\n        position: absolute;\n        top: 40%;\n        left: 50%;\n        transform: translate(-50%, -50%);\n        width: 900px;\n        max-width: 100vw;\n        height: 700px;\n        background: radial-gradient(circle, rgba(0, 113, 227, 0.08) 0%, transparent 60%);\n        z-index: 0;\n        pointer-events: none;\n    }\n\n    .dv-container {\n        max-width: 1300px;\n        width: 100%;\n        margin: 0 auto;\n        position: relative;\n        z-index: 2;\n    }\n\n    \/* Otsikot *\/\n    .dv-header {\n        text-align: center;\n        margin-bottom: 70px;\n        width: 100%;\n    }\n\n    .dv-tag {\n        display: inline-block;\n        padding: 6px 16px;\n        background: rgba(0, 113, 227, 0.1);\n        border: 1px solid rgba(0, 113, 227, 0.3);\n        color: var(--dv-blue);\n        border-radius: 50px;\n        font-size: 13px;\n        font-weight: 700;\n        letter-spacing: 2px;\n        text-transform: uppercase;\n        margin-bottom: 20px;\n        backdrop-filter: blur(5px);\n        -webkit-backdrop-filter: blur(5px);\n    }\n\n    .dv-title {\n        font-size: clamp(34px, 5vw, 48px);\n        font-weight: 800;\n        color: #fff;\n        margin: 0;\n        letter-spacing: -0.02em;\n        word-wrap: break-word;\n    }\n\n    \/* Filosofia-kortti l\u00e4pin\u00e4kyv\u00e4ll\u00e4 lasiefektill\u00e4 *\/\n    .dv-philosophy-card {\n        background: rgba(20, 20, 22, 0.6) !important;\n        border: 1px solid var(--dv-border);\n        border-radius: 32px;\n        padding: 60px;\n        margin-bottom: 50px;\n        backdrop-filter: blur(20px);\n        -webkit-backdrop-filter: blur(20px);\n        box-shadow: 0 30px 60px rgba(0, 0, 0, 0.4);\n        width: 100%;\n    }\n\n    .dv-philosophy-content {\n        display: grid;\n        grid-template-columns: 1.2fr 1fr;\n        gap: 60px;\n        align-items: center;\n    }\n\n    .philosophy-headline {\n        font-size: clamp(28px, 3.5vw, 36px);\n        line-height: 1.2;\n        color: #fff;\n        margin: 0 0 25px 0;\n        font-weight: 800;\n        letter-spacing: -0.02em;\n    }\n\n    .philosophy-lead {\n        font-size: 18px;\n        line-height: 1.7;\n        color: var(--dv-text-dim);\n        margin: 0;\n    }\n    \n    .philosophy-lead span {\n        color: #fff;\n        font-weight: 600;\n    }\n\n    .philosophy-features-side {\n        display: flex;\n        flex-direction: column;\n        gap: 35px;\n    }\n\n    .p-item {\n        display: flex;\n        align-items: flex-start;\n        gap: 20px;\n    }\n\n    .p-icon-box {\n        width: 48px;\n        height: 48px;\n        background: linear-gradient(135deg, rgba(0, 113, 227, 0.2), rgba(0, 113, 227, 0.05));\n        border: 1px solid rgba(0, 113, 227, 0.4);\n        border-radius: 14px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        color: #3391ff;\n        flex-shrink: 0;\n        box-shadow: inset 0 0 15px rgba(0, 113, 227, 0.2);\n    }\n    \n    .p-icon-box svg {\n        width: 24px; height: 24px;\n    }\n\n    .p-item h4 { margin: 0 0 8px 0; font-size: 18px; color: #fff; font-weight: 700; }\n    .p-item p { margin: 0; font-size: 15px; color: var(--dv-text-dim); line-height: 1.5; }\n\n    \/* Moderni Bento Grid *\/\n    .dv-bento-grid {\n        display: grid;\n        grid-template-columns: repeat(3, 1fr);\n        gap: 24px;\n        margin-bottom: 60px;\n        width: 100%;\n    }\n\n    .bento-card {\n        background: var(--dv-card-bg) !important;\n        border: 1px solid var(--dv-border);\n        border-radius: 28px;\n        padding: 45px 35px;\n        backdrop-filter: blur(10px);\n        -webkit-backdrop-filter: blur(10px);\n        transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n        position: relative;\n        overflow: hidden;\n        display: flex;\n        flex-direction: column;\n        width: 100%;\n    }\n\n    .bento-card:hover {\n        transform: translateY(-5px);\n        border-color: rgba(0, 113, 227, 0.5);\n        box-shadow: 0 20px 40px rgba(0, 113, 227, 0.15);\n    }\n\n    \/* Leve\u00e4 Ykk\u00f6skortti *\/\n    .bento-large {\n        grid-column: span 2;\n        background: rgba(20, 24, 30, 0.6) !important;\n    }\n\n    .bento-highlight {\n        border-color: rgba(0, 113, 227, 0.4);\n    }\n    \n    .bento-inner-glow {\n        position: absolute;\n        top: -50px; right: -50px;\n        width: 250px; height: 250px;\n        background: radial-gradient(circle, rgba(0, 113, 227, 0.15) 0%, transparent 70%);\n        pointer-events: none;\n    }\n\n    .bento-badge {\n        font-size: 54px;\n        font-weight: 900;\n        line-height: 1;\n        margin-bottom: 25px;\n        background: var(--dv-blue-gradient);\n        -webkit-background-clip: text;\n        -webkit-text-fill-color: transparent;\n        opacity: 0.8;\n    }\n\n    .bento-card h3 { \n        margin: 0 0 15px 0; \n        font-size: 22px; \n        color: #fff; \n        font-weight: 800;\n        letter-spacing: -0.01em;\n    }\n    \n    .bento-large h3 {\n        font-size: 28px;\n    }\n\n    .bento-card p { \n        margin: 0 0 15px 0; \n        color: var(--dv-text-dim); \n        font-size: 16px; \n        line-height: 1.6; \n    }\n\n    .bento-card .highlight-text {\n        margin-top: auto;\n        padding-top: 20px;\n        border-top: 1px solid rgba(255, 255, 255, 0.08);\n        color: #d1d1d6;\n    }\n\n    .bento-card .highlight-text strong {\n        color: #fff;\n        font-weight: 700;\n    }\n\n    \/* CTA Osio (s\u00e4ilytetty n\u00e4ytt\u00e4v\u00e4n\u00e4 sinisen\u00e4 liukuv\u00e4rin\u00e4) *\/\n    .dv-cta-card {\n        background: linear-gradient(135deg, rgba(0, 113, 227, 0.85) 0%, rgba(0, 50, 110, 0.85) 100%);\n        backdrop-filter: blur(15px);\n        -webkit-backdrop-filter: blur(15px);\n        border: 1px solid rgba(0, 113, 227, 0.4);\n        border-radius: 32px;\n        padding: 60px;\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        gap: 40px;\n        box-shadow: 0 25px 50px rgba(0, 113, 227, 0.2);\n        width: 100%;\n    }\n\n    .cta-content { flex: 1; }\n    .cta-title { font-size: 32px; color: #fff; margin: 0 0 20px 0; font-weight: 800; letter-spacing: -0.01em; word-wrap: break-word;}\n    .cta-text { color: rgba(255,255,255,0.85); font-size: 17px; line-height: 1.6; margin: 0 0 15px 0; }\n    \n    .cta-action { flex-shrink: 0; }\n\n    \/* Painike *\/\n    .dv-shine-button {\n        position: relative;\n        transition: all 0.3s ease-in-out;\n        box-shadow: 0px 10px 25px rgba(0, 0, 0, 0.4);\n        padding-block: 18px;\n        padding-inline: 36px;\n        background-color: #050505;\n        border-radius: 9999px;\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n        color: #ffffff;\n        gap: 12px;\n        font-weight: 700;\n        border: 2px solid rgba(255, 255, 255, 0.2);\n        outline: none;\n        overflow: hidden;\n        font-size: 16px;\n        cursor: pointer;\n        max-width: 100%;\n        white-space: normal;\n    }\n\n    .dv-shine-button .icon {\n        width: 22px; height: 22px;\n        transition: all 0.3s ease-in-out;\n        flex-shrink: 0;\n    }\n\n    .dv-shine-button:hover {\n        transform: scale(1.05);\n        border-color: rgba(255, 255, 255, 0.8);\n        box-shadow: 0px 15px 30px rgba(0, 0, 0, 0.6);\n    }\n\n    .dv-shine-button:hover .icon { transform: translate(5px); }\n    .dv-shine-button:hover::before { animation: shine 1.5s ease-out infinite; }\n\n    .dv-shine-button::before {\n        content: \"\";\n        position: absolute;\n        width: 100px;\n        height: 100%;\n        background-image: linear-gradient(\n            120deg,\n            rgba(255, 255, 255, 0) 30%,\n            rgba(255, 255, 255, 0.8),\n            rgba(255, 255, 255, 0) 70%\n        );\n        top: 0; left: -100px;\n        opacity: 0.6;\n    }\n\n    @keyframes shine {\n        0% { left: -100px; }\n        60% { left: 100%; }\n        to { left: 100%; }\n    }\n\n    \/* Scroll Animaatiot *\/\n    .reveal { opacity: 0; transform: translateY(30px); transition: all 0.8s ease-out; }\n    .reveal.active { opacity: 1; transform: translateY(0); }\n\n    \/* Responsiivisuus *\/\n    @media (max-width: 1024px) {\n        .dv-bento-grid { grid-template-columns: repeat(2, 1fr); }\n        .bento-large { grid-column: span 2; }\n    }\n\n    @media (max-width: 900px) {\n        .dv-philosophy-content { grid-template-columns: 1fr; gap: 40px; }\n        .philosophy-headline { text-align: center; }\n        .philosophy-lead { text-align: center; }\n        .dv-cta-card { flex-direction: column; text-align: center; padding: 50px 30px; }\n        .cta-action { width: 100%; display: flex; justify-content: center; }\n    }\n\n    @media (max-width: 650px) {\n        .dv-bento-grid { grid-template-columns: 1fr; }\n        .bento-large { grid-column: span 1; }\n        .dv-philosophy-card { padding: 40px 25px; } \n        .bento-card { padding: 40px 25px; } \n        .dv-shine-button { \n            padding-block: 14px; \n            padding-inline: 24px; \n            font-size: 15px; \n        } \n        .dv-cta-card { padding: 40px 20px; }\n    }\n<\/style>\n\n<script>\n    if (typeof window.animateOnScrollInit === 'undefined') {\n        window.animateOnScrollInit = true;\n        function animateOnScroll() {\n            const elements = document.querySelectorAll('.reveal');\n            elements.forEach(el => {\n                const elementTop = el.getBoundingClientRect().top;\n                if (elementTop < window.innerHeight - 50) {\n                    el.classList.add('active');\n                }\n            });\n        }\n        window.addEventListener('scroll', animateOnScroll);\n        window.addEventListener('load', animateOnScroll);\n        document.addEventListener('DOMContentLoaded', animateOnScroll);\n    }\n<\/script>\n\n\n\n<section class=\"dv-portfolio-section\">\n    <!-- Digitaalinen taustaverkko ja hehku -->\n    <div class=\"dv-digital-bg\"><\/div>\n    <div class=\"dv-glow-orb\"><\/div>\n\n    <div class=\"dv-portfolio-container\">\n        \n        <div class=\"dv-reveal portfolio-header\">\n            <span class=\"section-tag-blue\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" style=\"margin-right: 6px;\">\n                    <polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon>\n                <\/svg>\n                PORTFOLIO\n            <\/span>\n            <h2 class=\"dv-services-title\">K\u00e4denj\u00e4lkemme.<\/h2>\n            <p class=\"section-subtitle-dark\">\n                Poimintoja viimeisimmist\u00e4 projekteistamme: verkkosivuja, \n                br\u00e4ndi-ilmeit\u00e4 ja visuaalista tarinankerrontaa.\n            <\/p>\n        <\/div>\n\n        <div class=\"dv-portfolio-carousel-area\">\n            \n            <!-- YLEMPI SLIDER (Liikkuu vasemmalle) -->\n            <div class=\"dv-portfolio-window\" id=\"carouselWindow1\">\n                <div class=\"dv-portfolio-track\" id=\"carouselTrack1\">\n                    <div class=\"dv-portfolio-card\">\n                        <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2026\/02\/sivusta-referenssit-kemora.png\" alt=\"Verkkosivut Kemora\">\n                        <div class=\"card-info\"><span>Verkkosivut<\/span><\/div>\n                    <\/div>\n                    <div class=\"dv-portfolio-card\">\n                        <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2026\/06\/Digiverkosto-referenssit-mybalance.png\" alt=\"Verkkokaupat ja alustat\">\n                        <div class=\"card-info\"><span>Verkkokaupat ja alustat<\/span><\/div>\n                    <\/div>\n                    <div class=\"dv-portfolio-card\">\n                        <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2026\/01\/sivusta-referenssit-Ap-Autokorjaamo.png\" alt=\"Verkkosivut AP Autokorjaamo\">\n                        <div class=\"card-info\"><span>Verkkosivut<\/span><\/div>\n                    <\/div>\n                    <div class=\"dv-portfolio-card\">\n                        <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2026\/05\/Kemora-halli-mainokset.png\" alt=\"Mainospaikat Kemoralla\">\n                        <div class=\"card-info\"><span>Mainospaikat Kemoralla<\/span><\/div>\n                    <\/div>\n                    <div class=\"dv-portfolio-card\">\n                        <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2026\/01\/DJI_0039-2-scaled.jpg\" alt=\"Dronekuvaus\">\n                        <div class=\"card-info\"><span>Dronekuvaus<\/span><\/div>\n                    <\/div>\n                    <div class=\"dv-portfolio-card\">\n                        <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2026\/01\/DSC0379-scaled.jpg\" alt=\"Valokuvaus\">\n                        <div class=\"card-info\"><span>Valokuvaus<\/span><\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- ALEMPI SLIDER (Liikkuu oikealle) -->\n            <div class=\"dv-portfolio-window\" id=\"carouselWindow2\">\n                <div class=\"dv-portfolio-track\" id=\"carouselTrack2\">\n                    <div class=\"dv-portfolio-card\">\n                        <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2026\/04\/taksi-kayntikortti-mocup-e1777098237868.png\" alt=\"K\u00e4yntikortit\">\n                        <div class=\"card-info\"><span>K\u00e4yntikortit<\/span><\/div>\n                    <\/div>\n                    <div class=\"dv-portfolio-card\">\n                        <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2026\/06\/digiverkosto-referenssit-kaustinen-festarit.png\" alt=\"Verkkosivujen yll\u00e4pito\">\n                        <div class=\"card-info\"><span>Verkkosivujen yll\u00e4pito<\/span><\/div>\n                    <\/div>\n                    <div class=\"dv-portfolio-card\">\n                        <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2026\/04\/ap_autokorjaamo_rst_2024-Mar-23_03-14-14PM-000_CustomizedView4553037699.png\" alt=\"3D mallinnus\">\n                        <div class=\"card-info\"><span>3D mallinnus<\/span><\/div>\n                    <\/div>\n                    <div class=\"dv-portfolio-card\">\n                        <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2026\/04\/Kemora-kartta-v3-3-scaled.webp\" alt=\"Grafiikat\">\n                        <div class=\"card-info\"><span>Grafiikat<\/span><\/div>\n                    <\/div>\n                    <div class=\"dv-portfolio-card\">\n                        <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2026\/02\/sivusta-referenssit-kemora.png\" alt=\"Digitaaliset palvelut\">\n                        <div class=\"card-info\"><span>Digitaalisuus<\/span><\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n        <\/div>\n\n        <div class=\"dv-portfolio-cta\">\n            <!-- PAINIKE -->\n            <a href=\"https:\/\/digiverkosto.fi\/referenssit\/\" class=\"Projects-Button\" style=\"text-decoration: none;\">\n                <span class=\"IconContainer\">\n                    <!-- Tausta SVG -->\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 259 259\" class=\"svgBG\">\n                        <circle stroke-width=\"7\" stroke=\"#fff\" r=\"69\" cy=\"129.5\" cx=\"129.5\"><\/circle>\n                        <circle fill=\"#fff\" r=\"18.5\" cy=\"18.5\" cx=\"129.5\"><\/circle>\n                        <circle fill=\"#fff\" r=\"18.5\" cy=\"51.5\" cx=\"206.5\"><\/circle>\n                        <circle fill=\"#fff\" r=\"18.5\" cy=\"129.5\" cx=\"240.5\"><\/circle>\n                        <circle fill=\"#fff\" r=\"18.5\" cy=\"207.5\" cx=\"207.5\"><\/circle>\n                        <circle fill=\"#fff\" r=\"18.5\" cy=\"206.5\" cx=\"52.5\"><\/circle>\n                        <circle fill=\"#fff\" r=\"18.5\" cy=\"240.5\" cx=\"129.5\"><\/circle>\n                        <circle fill=\"#fff\" r=\"18.5\" cy=\"129.5\" cx=\"18.5\"><\/circle>\n                        <circle fill=\"#fff\" r=\"18.5\" cy=\"50.5\" cx=\"51.5\"><\/circle>\n                        <line stroke-width=\"8\" stroke=\"#fff\" y2=\"78.7279\" x2=\"79.3848\" y1=\"63.1716\" x1=\"63.8284\"><\/line>\n                        <line stroke-width=\"8\" stroke=\"#fff\" y2=\"194.728\" x2=\"195.385\" y1=\"179.172\" x1=\"179.828\"><\/line>\n                        <line stroke-width=\"8\" stroke=\"#fff\" y2=\"58\" x2=\"130\" y1=\"36\" x1=\"130\"><\/line>\n                        <line stroke-width=\"8\" stroke=\"#fff\" y2=\"64.1715\" x2=\"194.314\" y1=\"78.3137\" x1=\"180.172\"><\/line>\n                        <line stroke-width=\"8\" stroke=\"#fff\" y2=\"180.172\" x2=\"78.3137\" y1=\"194.314\" x1=\"64.1716\"><\/line>\n                        <line stroke-width=\"8\" stroke=\"#fff\" y2=\"223\" x2=\"130\" y1=\"201\" x1=\"130\"><\/line>\n                        <line stroke-width=\"8\" stroke=\"#fff\" y2=\"129\" x2=\"223\" y1=\"129\" x1=\"201\"><\/line>\n                        <line stroke-width=\"8\" stroke=\"#fff\" y2=\"129\" x2=\"58\" y1=\"129\" x1=\"36\"><\/line>\n                    <\/svg>\n\n                    <!-- Etuala SVG -->\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 110 110\" class=\"svgFG\">\n                        <circle stroke-width=\"28\" stroke=\"#fff\" r=\"32\" cy=\"55\" cx=\"55\"><\/circle>\n                        <path fill=\"#fff\" d=\"M41 4C41 1.79086 42.7909 0 45 0H65C67.2091 0 69 1.79086 69 4V12H41V4Z\"><\/path>\n                        <path fill=\"#fff\" d=\"M91.9838 16.9513C93.9123 15.8736 96.3492 16.5633 97.4269 18.4918L107.183 35.9507C108.261 37.8791 107.571 40.3161 105.643 41.3937L98.6592 45.2963L85.0002 20.8538L91.9838 16.9513Z\"><\/path>\n                        <path fill=\"#fff\" d=\"M106.209 69.0964C108.106 70.2275 108.728 72.6828 107.596 74.5804L97.3555 91.7596C96.2243 93.6571 93.7691 94.2784 91.8715 93.1472L84.9998 89.0509L99.337 65L106.209 69.0964Z\"><\/path>\n                        <path fill=\"#fff\" d=\"M69 106C69 108.209 67.2091 110 65 110L45 110C42.7909 110 41 108.209 41 106L41 98L69 98V106Z\"><\/path>\n                        <path fill=\"#fff\" d=\"M17.4641 93.2485C15.5509 94.3531 13.1046 93.6976 12 91.7844L2 74.4639C0.89543 72.5508 1.55093 70.1044 3.4641 68.9998L10.3923 64.9998L24.3923 89.2485L17.4641 93.2485Z\"><\/path>\n                        <path fill=\"#fff\" d=\"M3.4641 41.2485C1.55093 40.144 0.895431 37.6976 2 35.7844L12 18.4639C13.1046 16.5508 15.5509 15.8953 17.4641 16.9998L24.3923 20.9998L10.3923 45.2485L3.4641 41.2485Z\"><\/path>\n                    <\/svg>\n                <\/span>\n                <span class=\"text\">Katso kaikki ty\u00f6t<\/span>\n            <\/a>\n        <\/div>\n    <\/div>\n<\/section>\n\n<style>\n    :root {\n        --dv-blue: rgb(0, 113, 227);\n        --dv-blue-glow: rgba(0, 113, 227, 0.4);\n        --dv-card-bg: rgba(20, 20, 22, 0.6);\n        --dv-text-main: #f5f5f7;\n        --dv-text-dim: #86868b;\n        --dv-border: rgba(255, 255, 255, 0.08);\n    }\n\n    .dv-portfolio-section * {\n        box-sizing: border-box;\n    }\n\n    .dv-portfolio-section {\n        width: 100vw !important;\n        position: relative;\n        left: 50% !important;\n        margin-left: -50vw !important;\n        background: transparent !important;\n        background-color: transparent !important;\n        padding: 100px 0;\n        overflow-x: hidden;\n        overflow-y: hidden;\n        font-family: inherit, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n        color: var(--dv-text-main);\n    }\n\n    \/* Kyber-verkko tausta (l\u00e4pin\u00e4kyv\u00e4n\u00e4) *\/\n    .dv-digital-bg {\n        position: absolute;\n        top: 0; left: 0; right: 0; bottom: 0;\n        background-image: \n            linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),\n            linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);\n        background-size: 40px 40px;\n        z-index: 0;\n        opacity: 0.6;\n    }\n\n    .dv-glow-orb {\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        transform: translate(-50%, -50%);\n        width: 800px;\n        max-width: 100vw;\n        height: 600px;\n        background: radial-gradient(circle, rgba(0, 113, 227, 0.08) 0%, transparent 60%);\n        z-index: 0;\n        pointer-events: none;\n    }\n\n    .dv-portfolio-container {\n        width: 100%;\n        max-width: 1400px;\n        margin: 0 auto;\n        text-align: center;\n        position: relative;\n        z-index: 2;\n        padding: 0 5vw;\n    }\n\n    .portfolio-header {\n        margin-bottom: 50px;\n    }\n\n    .section-tag-blue {\n        display: inline-flex;\n        align-items: center;\n        font-size: 13px;\n        font-weight: 700;\n        color: var(--dv-blue);\n        letter-spacing: 2px;\n        margin-bottom: 15px;\n        padding: 6px 16px;\n        background: rgba(0, 113, 227, 0.1);\n        border: 1px solid rgba(0, 113, 227, 0.2);\n        border-radius: 50px;\n        backdrop-filter: blur(5px);\n        -webkit-backdrop-filter: blur(5px);\n    }\n\n    .dv-services-title {\n        font-size: clamp(32px, 5vw, 48px);\n        font-weight: 800;\n        margin-bottom: 20px;\n        color: #ffffff;\n        letter-spacing: -0.02em;\n        word-wrap: break-word;\n    }\n\n    .section-subtitle-dark {\n        color: var(--dv-text-dim);\n        font-size: 18px;\n        max-width: 600px;\n        margin: 0 auto;\n        line-height: 1.6;\n    }\n\n    .dv-portfolio-carousel-area {\n        position: relative;\n        width: 100vw;\n        left: 50%;\n        transform: translateX(-50%);\n        margin: 50px 0;\n        display: flex;\n        flex-direction: column;\n        gap: 20px;\n        cursor: grab;\n        touch-action: pan-y;\n    }\n    \n    .dv-portfolio-carousel-area:active { cursor: grabbing; }\n\n    .dv-portfolio-window {\n        overflow: hidden;\n        width: 100%;\n        -webkit-mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);\n        mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);\n    }\n\n    .dv-portfolio-track {\n        display: flex;\n        gap: 20px;\n        width: max-content;\n        padding-left: 20px;\n        will-change: transform;\n    }\n\n    \/* Kortit l\u00e4pin\u00e4kyv\u00e4ll\u00e4 lasiefektill\u00e4 *\/\n    .dv-portfolio-card {\n        width: 320px;\n        height: 200px;\n        background: var(--dv-card-bg) !important;\n        border-radius: 16px;\n        overflow: hidden;\n        position: relative;\n        flex-shrink: 0;\n        border: 1px solid var(--dv-border);\n        box-shadow: 0 10px 30px rgba(0,0,0,0.4);\n        transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.4s ease;\n        backdrop-filter: blur(10px);\n        -webkit-backdrop-filter: blur(10px);\n    }\n\n    .dv-portfolio-card::before {\n        content: '';\n        position: absolute;\n        top: 0; left: 0; width: 100%; height: 2px;\n        background: linear-gradient(90deg, transparent, var(--dv-blue), transparent);\n        opacity: 0;\n        transition: opacity 0.4s ease;\n        z-index: 2;\n    }\n\n    .dv-portfolio-card:hover {\n        transform: translateY(-5px) scale(1.02);\n        border-color: rgba(0, 113, 227, 0.4);\n        box-shadow: 0 15px 40px rgba(0, 113, 227, 0.15);\n    }\n\n    .dv-portfolio-card:hover::before {\n        opacity: 1;\n    }\n\n    .dv-portfolio-card img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        pointer-events: none;\n        opacity: 0.75;\n        transition: opacity 0.4s ease, transform 0.6s ease;\n    }\n\n    .dv-portfolio-card:hover img {\n        opacity: 1;\n        transform: scale(1.05);\n    }\n\n    .card-info {\n        position: absolute;\n        bottom: 15px;\n        left: 15px;\n        background: rgba(0, 0, 0, 0.6);\n        backdrop-filter: blur(8px);\n        -webkit-backdrop-filter: blur(8px);\n        padding: 6px 14px;\n        border-radius: 8px;\n        font-size: 11px;\n        font-weight: 700;\n        color: #ffffff;\n        text-transform: uppercase;\n        letter-spacing: 1.5px;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        z-index: 3;\n    }\n\n    .dv-portfolio-cta { \n        margin-top: 60px; \n        display: flex;\n        justify-content: center;\n        position: relative;\n        z-index: 2;\n    }\n\n    \/* Painike *\/\n    .Projects-Button {\n        width: fit-content;\n        height: 50px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        padding: 5px 28px;\n        gap: 12px;\n        border: 1px solid rgba(0, 113, 227, 0.4);\n        border-radius: 12px;\n        cursor: pointer;\n        background: linear-gradient(120deg, rgb(0, 113, 227), rgb(0, 75, 153));\n        transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n        box-shadow: 0px 10px 20px rgba(0, 113, 227, 0.2);\n    }\n    \n    .IconContainer {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        width: 25px;\n        height: 25px;\n        position: relative;\n    }\n    \n    .svgBG {\n        width: 25px;\n        height: auto;\n    }\n    \n    .svgFG {\n        width: 9px;\n        height: auto;\n        z-index: 2;\n        position: absolute;\n    }\n    \n    .Projects-Button .text {\n        color: rgb(255, 255, 255);\n        font-weight: 700;\n        font-size: 16px;\n        letter-spacing: 0.5px;\n    }\n    \n    .Projects-Button:hover .svgFG {\n        animation: clockwise 2.5s linear infinite;\n    }\n    \n    .Projects-Button:hover .svgBG {\n        animation: anti-clockwise 2.5s linear infinite;\n    }\n    \n    @keyframes clockwise {\n        0% { transform: rotate(0deg); }\n        100% { transform: rotate(360deg); }\n    }\n    \n    @keyframes anti-clockwise {\n        0% { transform: rotate(0deg); }\n        100% { transform: rotate(-360deg); }\n    }\n    \n    .Projects-Button:hover {\n        background: linear-gradient(120deg, rgb(20, 133, 247), rgb(0, 95, 190));\n        box-shadow: 0px 15px 30px rgba(0, 113, 227, 0.4);\n        transform: translateY(-3px);\n        border-color: rgba(255, 255, 255, 0.3);\n    }\n\n    @media (max-width: 768px) {\n        .dv-portfolio-card { width: 280px; height: 180px; }\n        .dv-portfolio-window {\n            -webkit-mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);\n            mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);\n        }\n        .dv-portfolio-section { padding: 70px 0; }\n    }\n<\/style>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n    function setupCarousel(trackId, direction) {\n        const track = document.getElementById(trackId);\n        if (!track) return;\n\n        \/\/ Kloonataan kortit tarpeeksi monta kertaa, jotta silmukasta tulee saumaton\n        const originalCards = Array.from(track.children);\n        originalCards.forEach(card => {\n            track.appendChild(card.cloneNode(true));\n        });\n        originalCards.forEach(card => {\n            track.appendChild(card.cloneNode(true));\n        });\n\n        let xPos = 0;\n        let speed = window.innerWidth < 768 ? 0.6 : 0.9;\n        let isPaused = false;\n\n        \/\/ Laske yhden sarjan todellinen leveys\n        function getSingleSetWidth() {\n            let width = 0;\n            for (let i = 0; i < originalCards.length; i++) {\n                width += originalCards[i].offsetWidth + 20; \/\/ 20px on gap\n            }\n            return width;\n        }\n\n        let singleWidth = getSingleSetWidth();\n\n        \/\/ Jos liikutaan oikealle, aloitetaan toisesta setist\u00e4\n        if (direction === 'right') {\n            xPos = -singleWidth;\n        }\n\n        function step() {\n            if (!isPaused) {\n                if (direction === 'left') {\n                    xPos -= speed;\n                    if (xPos <= -singleWidth) {\n                        xPos += singleWidth;\n                    }\n                } else {\n                    xPos += speed;\n                    if (xPos >= 0) {\n                        xPos -= singleWidth;\n                    }\n                }\n                track.style.transform = `translate3d(${xPos}px, 0, 0)`;\n            }\n            requestAnimationFrame(step);\n        }\n\n        requestAnimationFrame(step);\n\n        \/\/ Pys\u00e4ytys hiirell\u00e4 hoveroidessa\n        track.addEventListener('mouseenter', () => isPaused = true);\n        track.addEventListener('mouseleave', () => isPaused = false);\n\n        \/\/ Kosketustuki mobiiliin\n        let touchStartX = 0;\n        track.addEventListener('touchstart', (e) => {\n            isPaused = true;\n            touchStartX = e.touches[0].clientX;\n        }, {passive: true});\n\n        track.addEventListener('touchmove', (e) => {\n            let touchX = e.touches[0].clientX;\n            let diff = touchX - touchStartX;\n            touchStartX = touchX;\n            xPos += diff;\n            track.style.transform = `translate3d(${xPos}px, 0, 0)`;\n        }, {passive: true});\n\n        track.addEventListener('touchend', () => {\n            isPaused = false;\n        });\n\n        window.addEventListener('resize', () => {\n            singleWidth = getSingleSetWidth();\n            speed = window.innerWidth < 768 ? 0.6 : 0.9;\n        });\n    }\n\n    setupCarousel('carouselTrack1', 'left');\n    setupCarousel('carouselTrack2', 'right');\n});\n<\/script>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)\"\/>\n\n\n\n<section class=\"dv-about-section\" id=\"tiimi\">\n    <!-- Digitaalinen taustaheijastus -->\n    <div class=\"dv-glow-orb-about\"><\/div>\n\n    <div class=\"dv-about-container\">\n        \n        <header class=\"dv-about-header reveal\">\n            <span class=\"dv-about-badge\">Tiimi palveluksessasi<\/span>\n            <h2 class=\"dv-about-main-title\">Kasvot Digiverkoston takana<\/h2>\n            <h4 class=\"dv-about-intro\">\n                Uskomme, ett\u00e4 parhaat digitaaliset ratkaisut syntyv\u00e4t suorasta ja rehellisest\u00e4 yhteisty\u00f6st\u00e4. \n                Me emme ole vain kasvoton mainostoimisto, olemme kumppanisi matkalla kohti kasvua.\n            <\/h4>\n        <\/header>\n\n        <div class=\"dv-team-grid\">\n            \n            <!-- Oskari -->\n            <div class=\"dv-member-card reveal\">\n                <div class=\"dv-member-header\">\n                    <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2025\/12\/IMG_4802-e1767019902994.jpeg\" alt=\"Oskari Mikkola\" class=\"dv-member-avatar\">\n                    <div class=\"dv-member-title\">\n                        <h3 class=\"dv-member-name\">Oskari Mikkola<\/h3>\n                        <span class=\"dv-member-role\">Strategia &amp; Myynti<\/span>\n                    <\/div>\n                <\/div>\n                \n                <p class=\"dv-member-bio\">Erikoistunut myyntipsykologiaan, verkosivujen suunnitteluun ja liiketoiminnan skaalaamiseen verkossa. Taitoihin kuuluu my\u00f6s tekninen ongelmanratkaisu, hakukoneoptimointi sek\u00e4 teko\u00e4lyratkaisut.<\/p>\n                \n                <div class=\"dv-member-contact\">\n                    <a href=\"tel:0451074457\" class=\"contact-link\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                            <path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"><\/path>\n                        <\/svg>\n                        045 107 4457\n                    <\/a>\n                    <a href=\"mailto:oskari@digiverkosto.fi\" class=\"contact-link\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                            <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"><\/path>\n                            <polyline points=\"22,6 12,13 2,6\"><\/polyline>\n                        <\/svg>\n                        oskari@digiverkosto.fi\n                    <\/a>\n                <\/div>\n            <\/div>\n\n            <!-- Aleksi -->\n            <div class=\"dv-member-card reveal\" style=\"animation-delay: 0.2s;\">\n                <div class=\"dv-member-header\">\n                    <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2025\/12\/IMG_1781-scaled-e1767019928255.jpg\" alt=\"Aleksi Luhtasela\" class=\"dv-member-avatar\">\n                    <div class=\"dv-member-title\">\n                        <h3 class=\"dv-member-name\">Aleksi Luhtasela<\/h3>\n                        <span class=\"dv-member-role\">Tekninen toteutus &amp; Design<\/span>\n                    <\/div>\n                <\/div>\n                \n                <p class=\"dv-member-bio\">Vastaa siit\u00e4, ett\u00e4 jokainen pikseli on paikallaan ja koodi toimii saumattomasti. My\u00f6s Digiverkoston virallinen kuvaaja ja dronelent\u00e4j\u00e4.<\/p>\n                \n                <div class=\"dv-member-contact\">\n                    <a href=\"tel:0401716579\" class=\"contact-link\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                            <path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"><\/path>\n                        <\/svg>\n                        040 171 6579\n                    <\/a>\n                    <a href=\"mailto:aleksi@digiverkosto.fi\" class=\"contact-link\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                            <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"><\/path>\n                            <polyline points=\"22,6 12,13 2,6\"><\/polyline>\n                        <\/svg>\n                        aleksi@digiverkosto.fi\n                    <\/a>\n                <\/div>\n            <\/div>\n\n        <\/div>\n\n        <!-- P\u00e4ivitetty CTA-alue -->\n        <div class=\"dv-about-cta-footer reveal\">\n            <h4 class=\"dv-cta-mini-title\">Haluatko sparrata ideastasi?<\/h4>\n            <a href=\"https:\/\/digiverkosto.fi\/ota-yhteytta\/\" style=\"text-decoration: none; width: 100%; display: flex; justify-content: center;\">\n                <button class=\"dv-team-shine-button\">\n                    Ota yhteytt\u00e4 tiimiin\n                    <svg fill=\"currentColor\" viewBox=\"0 0 24 24\" class=\"icon\">\n                        <path clip-rule=\"evenodd\" d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm4.28 10.28a.75.75 0 000-1.06l-3-3a.75.75 0 10-1.06 1.06l1.72 1.72H8.25a.75.75 0 000 1.5h5.69l-1.72 1.72a.75.75 0 101.06 1.06l3-3z\" fill-rule=\"evenodd\"><\/path>\n                    <\/svg>\n                <\/button>\n            <\/a>\n        <\/div>\n\n    <\/div>\n<\/section>\n\n<style>\n    :root {\n        --dv-blue: #0071e3;\n        --dv-card-bg: rgba(18, 18, 20, 0.6);\n        --dv-text-main: #f5f5f7;\n        --dv-text-dim: #86868b;\n        --dv-border: rgba(255, 255, 255, 0.08);\n    }\n\n    \/* Varmistetaan, ett\u00e4 box-sizing ja ylivuodon esto toimivat *\/\n    .dv-about-section, \n    .dv-about-section * {\n        box-sizing: border-box;\n    }\n\n    .dv-about-section {\n        width: 100%;\n        max-width: 100vw;\n        background: transparent !important;\n        background-color: transparent !important;\n        padding: 100px 5vw;\n        font-family: inherit, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n        color: var(--dv-text-main);\n        position: relative;\n        overflow-x: hidden;\n    }\n\n    .dv-glow-orb-about {\n        position: absolute;\n        top: 20%;\n        left: 50%;\n        transform: translateX(-50%);\n        width: 800px;\n        max-width: 100vw;\n        height: 600px;\n        background: radial-gradient(circle, rgba(0, 113, 227, 0.08) 0%, transparent 70%);\n        z-index: 0;\n        pointer-events: none;\n    }\n\n    .dv-about-container {\n        max-width: 1100px;\n        width: 100%;\n        margin: 0 auto;\n        position: relative;\n        z-index: 2;\n    }\n\n    .dv-about-header {\n        text-align: center;\n        margin-bottom: 60px;\n        width: 100%;\n    }\n\n    .dv-about-badge {\n        display: inline-block;\n        padding: 6px 16px;\n        background: rgba(0, 113, 227, 0.1);\n        border: 1px solid rgba(0, 113, 227, 0.3);\n        color: var(--dv-blue);\n        border-radius: 50px;\n        font-size: 12px;\n        font-weight: 700;\n        letter-spacing: 1.5px;\n        text-transform: uppercase;\n        margin-bottom: 20px;\n        backdrop-filter: blur(5px);\n        -webkit-backdrop-filter: blur(5px);\n    }\n\n    .dv-about-main-title {\n        font-size: clamp(32px, 5vw, 42px);\n        font-weight: 800;\n        color: #fff;\n        letter-spacing: -0.02em;\n        margin: 0 0 20px 0;\n        word-wrap: break-word;\n    }\n\n    .dv-about-intro {\n        font-size: 18px;\n        color: var(--dv-text-dim);\n        max-width: 700px;\n        margin: 0 auto;\n        line-height: 1.6;\n        font-weight: 400;\n        word-wrap: break-word;\n    }\n\n    \/* Tiimi grid *\/\n    .dv-team-grid {\n        display: grid;\n        grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n        gap: 30px;\n        margin-bottom: 60px;\n        width: 100%;\n    }\n\n    .dv-member-card {\n        background: var(--dv-card-bg) !important;\n        border-radius: 24px;\n        padding: 35px;\n        border: 1px solid var(--dv-border);\n        box-shadow: 0 15px 35px rgba(0,0,0,0.4);\n        transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n        backdrop-filter: blur(10px);\n        -webkit-backdrop-filter: blur(10px);\n        position: relative;\n        display: flex;\n        flex-direction: column;\n        width: 100%;\n    }\n\n    .dv-member-card::before {\n        content: '';\n        position: absolute;\n        top: 0; left: 0; width: 100%; height: 3px;\n        background: linear-gradient(90deg, transparent, rgb(0, 113, 227), transparent);\n        opacity: 0.3;\n        transition: opacity 0.4s ease;\n    }\n\n    .dv-member-card:hover {\n        transform: translateY(-5px);\n        border-color: rgba(0, 113, 227, 0.4);\n        box-shadow: 0 20px 45px rgba(0, 113, 227, 0.15);\n    }\n\n    .dv-member-card:hover::before {\n        opacity: 1;\n    }\n\n    .dv-member-header {\n        display: flex;\n        align-items: center;\n        gap: 20px;\n        margin-bottom: 25px;\n    }\n\n    .dv-member-avatar {\n        width: 80px;\n        height: 80px;\n        border-radius: 50%;\n        object-fit: cover;\n        border: 2px solid rgba(255, 255, 255, 0.1);\n        box-shadow: 0 8px 20px rgba(0,0,0,0.5);\n        flex-shrink: 0;\n    }\n\n    .dv-member-name {\n        font-size: 24px;\n        font-weight: 800;\n        color: #fff;\n        margin: 0 0 5px 0;\n        letter-spacing: -0.01em;\n        word-wrap: break-word;\n    }\n\n    .dv-member-role {\n        font-size: 14px;\n        font-weight: 700;\n        color: var(--dv-blue);\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n    }\n\n    .dv-member-bio {\n        font-size: 15px;\n        color: var(--dv-text-dim);\n        line-height: 1.6;\n        margin-bottom: 30px;\n        flex-grow: 1;\n        word-wrap: break-word;\n    }\n\n    \/* Yhteystiedot *\/\n    .dv-member-contact {\n        display: flex;\n        flex-direction: column;\n        gap: 12px;\n        padding-top: 25px;\n        border-top: 1px solid rgba(255, 255, 255, 0.08);\n    }\n\n    .contact-link {\n        display: inline-flex;\n        align-items: center;\n        gap: 12px;\n        color: #d1d1d6;\n        text-decoration: none;\n        font-size: 14px;\n        font-weight: 500;\n        transition: color 0.2s ease;\n        word-break: break-all;\n    }\n\n    .contact-link svg {\n        width: 18px;\n        height: 18px;\n        color: var(--dv-blue);\n        transition: transform 0.2s ease;\n        flex-shrink: 0;\n    }\n\n    .contact-link:hover {\n        color: #fff;\n    }\n    \n    .contact-link:hover svg {\n        transform: scale(1.1);\n    }\n\n    \/* CTA Alue l\u00e4pin\u00e4kyv\u00e4ll\u00e4 lasiefektill\u00e4 *\/\n    .dv-about-cta-footer {\n        text-align: center;\n        padding: 50px 40px;\n        background: rgba(18, 18, 20, 0.6) !important;\n        backdrop-filter: blur(10px);\n        -webkit-backdrop-filter: blur(10px);\n        border: 1px solid rgba(0, 113, 227, 0.3);\n        border-radius: 24px;\n        box-shadow: 0 15px 30px rgba(0, 0, 0, 0.4);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        width: 100%;\n    }\n\n    .dv-cta-mini-title {\n        font-size: 22px;\n        font-weight: 800;\n        color: #fff;\n        margin: 0 0 30px 0;\n        word-wrap: break-word;\n    }\n\n    \/* Shiny Button *\/\n    .dv-team-shine-button {\n        position: relative;\n        transition: all 0.3s ease-in-out;\n        box-shadow: 0px 10px 20px rgba(0, 113, 227, 0.15);\n        padding-block: 16px;\n        padding-inline: 32px;\n        background-color: #050505;\n        border-radius: 9999px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        color: #ffffff;\n        gap: 12px;\n        font-weight: 700;\n        border: 2px solid rgba(0, 113, 227, 0.5);\n        outline: none;\n        overflow: hidden;\n        font-size: 16px;\n        cursor: pointer;\n        max-width: 100%;\n        white-space: normal;\n    }\n\n    .dv-team-shine-button .icon {\n        width: 22px;\n        height: 22px;\n        transition: all 0.3s ease-in-out;\n        flex-shrink: 0;\n    }\n\n    .dv-team-shine-button:hover {\n        transform: scale(1.05);\n        border-color: #0071e3;\n        box-shadow: 0px 15px 30px rgba(0, 113, 227, 0.3);\n    }\n\n    .dv-team-shine-button:hover .icon {\n        transform: translate(5px);\n    }\n\n    .dv-team-shine-button:hover::before {\n        animation: shine 1.5s ease-out infinite;\n    }\n\n    .dv-team-shine-button::before {\n        content: \"\";\n        position: absolute;\n        width: 100px;\n        height: 100%;\n        background-image: linear-gradient(\n            120deg,\n            rgba(255, 255, 255, 0) 30%,\n            rgba(255, 255, 255, 0.8),\n            rgba(255, 255, 255, 0) 70%\n        );\n        top: 0;\n        left: -100px;\n        opacity: 0.6;\n    }\n\n    @keyframes shine {\n        0% { left: -100px; }\n        60% { left: 100%; }\n        to { left: 100%; }\n    }\n\n    \/* Scroll Animaatiot *\/\n    .reveal { opacity: 0; transform: translateY(20px); transition: all 0.8s ease-out; }\n    .reveal.active { opacity: 1; transform: translateY(0); }\n\n    @media (max-width: 768px) {\n        .dv-team-grid { grid-template-columns: 1fr; }\n        .dv-member-card { padding: 30px 20px; }\n        .dv-about-cta-footer { padding: 40px 20px; }\n        .dv-team-shine-button { \n            padding-block: 14px; \n            padding-inline: 24px; \n            font-size: 15px; \n        }\n    }\n<\/style>\n\n<script>\n    if (typeof window.animateOnScrollInit === 'undefined') {\n        window.animateOnScrollInit = true;\n        function animateOnScroll() {\n            const elements = document.querySelectorAll('.reveal');\n            elements.forEach(el => {\n                const elementTop = el.getBoundingClientRect().top;\n                if (elementTop < window.innerHeight - 50) {\n                    el.classList.add('active');\n                }\n            });\n        }\n        window.addEventListener('scroll', animateOnScroll);\n        window.addEventListener('load', animateOnScroll);\n        document.addEventListener('DOMContentLoaded', animateOnScroll);\n    }\n<\/script>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)\"\/>\n\n\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.12.2\/gsap.min.js\"><\/script>\n\n<section class=\"dv-form-section\">\n    <div class=\"dv-form-container\">\n        <header class=\"dv-form-header\">\n            <h2 class=\"dv-form-title\" id=\"stepTitle\">Pyyd\u00e4 tarjous<\/h2>\n            <div class=\"dv-progress-bar\">\n                <div class=\"dv-progress-fill\" id=\"formProgress\"><\/div>\n            <\/div>\n        <\/header>\n\n        <form id=\"conversationalForm\" action=\"https:\/\/formsubmit.co\/oskari@digiverkosto.fi\" method=\"POST\">\n            <input type=\"hidden\" name=\"_next\" value=\"https:\/\/digiverkosto.fi\/kiitos\">\n            <input type=\"hidden\" name=\"_cc\" value=\"aleksi@digiverkosto.fi\">\n            <input type=\"hidden\" name=\"_subject\" value=\"Uusi tarjouspyynt\u00f6 (Conversational)\">\n            <input type=\"hidden\" name=\"_captcha\" value=\"false\">\n            <input type=\"hidden\" name=\"_template\" value=\"table\">\n\n            <div id=\"hidden-data-container\" style=\"display:none;\"><\/div>\n\n            <div id=\"step-content\"><\/div>\n        <\/form>\n\n        <div class=\"dv-form-footer-logo\">\n            <img decoding=\"async\" src=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/2025\/11\/Kopio-digiverkost-kopy-4.png\" alt=\"DigiVerkosto Logo\">\n        <\/div>\n    <\/div>\n<\/section>\n\n<style>\n    :root { \n        --dv-blue: #0071e3; \n        --dv-blue-glow: rgba(0, 113, 227, 0.2); \n        --dv-black-bg: #070707; \n        --dv-card-bg: #161617; \n        --dv-text-main: #f5f5f7; \n        --dv-text-dim: #86868b; \n        --dv-border-color: #2c2c2e; \n    }\n\n    .dv-form-section { \n        padding: 100px 20px; \n        background: var(--dv-black-bg); \n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif; \n    }\n\n    .dv-form-container { \n        max-width: 750px; \n        margin: 0 auto; \n        border-radius: 35px; \n        padding: 50px; \n        background: var(--dv-card-bg); \n        border: 1px solid var(--dv-border-color); \n        box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3); \n        min-height: 650px; \n        display: flex; \n        flex-direction: column; \n        position: relative; \n    }\n\n    .dv-form-header { \n        text-align: center; \n        margin-bottom: 40px; \n    }\n\n    .dv-form-title { \n        font-size: 32px; \n        font-weight: 800; \n        color: var(--dv-blue); \n        letter-spacing: -0.03em; \n    }\n\n    .dv-progress-bar { \n        width: 100%; \n        height: 10px; \n        background: #252525; \n        border-radius: 20px; \n        margin-top: 25px; \n    }\n\n    .dv-progress-fill { \n        width: 0%; \n        height: 100%; \n        background: var(--dv-blue); \n        border-radius: 20px; \n        transition: width 0.6s cubic-bezier(0.23, 1, 0.32, 1); \n        box-shadow: 0 0 15px var(--dv-blue-glow);\n    }\n\n    .dv-step-label { \n        font-size: 22px; \n        font-weight: 700; \n        display: block; \n        text-align: center; \n        margin-bottom: 35px; \n        color: #fff; \n    }\n\n    .dv-card-grid { \n        display: grid; \n        grid-template-columns: 1fr 1fr; \n        gap: 20px; \n    }\n\n    .dv-choice-card { \n        cursor: pointer; \n    }\n\n    .dv-choice-card input { \n        display: none; \n    }\n\n    .dv-card-inner { \n        background: #1c1c1e; \n        padding: 30px 20px; \n        border-radius: 22px; \n        text-align: center; \n        border: 2px solid var(--dv-border-color); \n        transition: all 0.3s ease; \n        font-size: 16px; \n        font-weight: 600; \n        color: var(--dv-text-main);\n        height: 100%; \n        display: flex; \n        align-items: center; \n        justify-content: center; \n        box-sizing: border-box; \n    }\n\n    .dv-choice-card:hover .dv-card-inner { \n        transform: translateY(-5px); \n        border-color: #424245; \n        background: #252525;\n    }\n\n    .dv-choice-card input:checked + .dv-card-inner { \n        border-color: var(--dv-blue); \n        background: #1c1c1e; \n        color: var(--dv-blue); \n        box-shadow: 0 8px 25px var(--dv-blue-glow); \n        transform: scale(1.03); \n    }\n\n    .dv-input-group { \n        display: flex; \n        flex-direction: column; \n        gap: 20px; \n    }\n\n    .dv-input-group input, \n    .dv-input-group textarea { \n        padding: 20px; \n        border-radius: 18px; \n        border: 1px solid var(--dv-border-color); \n        font-size: 17px; \n        background: #1c1c1e; \n        color: #fff;\n        font-family: inherit; \n        width: 100%; \n        box-sizing: border-box; \n        transition: border-color 0.3s ease;\n    }\n\n    .dv-input-group input:focus, \n    .dv-input-group textarea:focus {\n        outline: none;\n        border-color: var(--dv-blue);\n    }\n\n    .dv-privacy-wrapper { \n        display: flex; \n        align-items: center; \n        justify-content: center; \n        gap: 12px; \n        margin-top: 15px; \n        padding: 10px; \n        cursor: pointer; \n    }\n\n    .dv-privacy-wrapper input { \n        width: 18px !important; \n        height: 18px !important; \n        margin: 0 !important; \n        cursor: pointer; \n        accent-color: var(--dv-blue); \n    }\n\n    .dv-privacy-text { \n        font-size: 14px; \n        color: var(--dv-text-dim); \n        font-weight: 500; \n    }\n\n    .dv-privacy-text a { \n        color: var(--dv-blue); \n        text-decoration: none; \n        font-weight: 600; \n    }\n\n    .dv-nav { \n        display: flex; \n        justify-content: space-between; \n        margin-top: auto; \n        padding-top: 45px; \n        align-items: center; \n    }\n\n    .dv-btn-prev { \n        background: transparent; \n        border: 1px solid var(--dv-border-color); \n        color: var(--dv-text-dim); \n        font-weight: 700; \n        cursor: pointer; \n        font-size: 15px; \n        padding: 12px 24px; \n        border-radius: 100px; \n        transition: all 0.2s ease;\n    }\n\n    .dv-btn-prev:hover {\n        background: rgba(255, 255, 255, 0.05);\n        color: #fff;\n    }\n\n    .dv-btn-next, .dv-btn-submit { \n        background: var(--dv-blue); \n        color: #fff; \n        border: none; \n        padding: 16px 40px; \n        border-radius: 100px; \n        font-weight: 700; \n        cursor: pointer; \n        font-size: 17px; \n        transition: transform 0.2s ease, box-shadow 0.2s ease;\n    }\n\n    .dv-btn-next:hover, .dv-btn-submit:hover {\n        transform: scale(1.05);\n        box-shadow: 0 5px 15px var(--dv-blue-glow);\n    }\n\n    .dv-form-footer-logo { \n        text-align: center; \n        margin-top: 40px; \n        padding-top: 30px; \n        border-top: 1px solid var(--dv-border-color); \n    }\n\n    .dv-form-footer-logo img { \n        max-width: 120px; \n        height: auto; \n        \n    }\n\n    @media (max-width: 600px) { \n        .dv-card-grid { grid-template-columns: 1fr; } \n        .dv-form-container { padding: 35px 20px; } \n    }\n<\/style>\n\n<script>\n    const steps = {\n        start: {\n            title: \"Pyyd\u00e4 tarjous\",\n            question: \"Mist\u00e4 palvelusta olet kiinnostunut?\",\n            type: \"cards\",\n            name: \"Paakategoria\",\n            options: [{ label: \"Verkkosivut\", val: \"web\" }, { label: \"Verkkokauppa\", val: \"ecom\" }, { label: \"Markkinointipalvelut\", val: \"marketing\" }, { label: \"Kuvauspalvelut\", val: \"photo\" }]\n        },\n        web: {\n            question: \"Mik\u00e4 on tarpeesi verkkosivujen suhteen?\",\n            type: \"cards\",\n            name: \"Web_Tarve\",\n            options: [{label:\"Uudet verkkosivut\", val:\"web_new\"}, {label:\"Nykyisten sivujen uudistus\", val:\"web_refresh\"}, {label:\"Yll\u00e4pito ja p\u00e4ivitykset\", val:\"web_maintenance\"}, {label:\"Muu tekninen ty\u00f6\", val:\"web_fix\"}]\n        },\n        web_new: { question: \"Onko sinulla jo valmiina yritysilme (logo, v\u00e4rit, fontit)?\", type: \"cards\", name: \"Web_Ilme\", next: \"web_new_2\", options: [{label:\"Kyll\u00e4 on\", val:\"Kylla\"}, {label:\"Ei ole, tarvitsen suunnittelua\", val:\"Ei_Ilmetta\"}, {label:\"Tarvitsen vain logon\", val:\"Vain_Logo\"}] },\n        web_new_2: { question: \"Montako alasivua arvioit tarvitsevasi?\", type: \"cards\", name: \"Web_Sivumaara\", next: \"web_new_3\", options: [{label:\"1 (One-pager)\", val:\"1\"}, {label:\"2\u20135 sivua\", val:\"2-5\"}, {label:\"6\u201310 sivua\", val:\"6-10\"}, {label:\"Yli 10\", val:\"10+\"}, {label:\"En tied\u00e4 viel\u00e4\", val:\"En_Tieda\"}] },\n        web_new_3: { question: \"Tarvitsetko apua tekstien kirjoittamisessa tai kuvien hankinnassa?\", type: \"cards\", name: \"Web_Sisalto_Apu\", next: \"web_new_4\", options: [{label:\"Kyll\u00e4, t\u00e4ysi sis\u00e4ll\u00f6ntuotanto\", val:\"Kylla\"}, {label:\"Osittain\", val:\"Osittain\"}, {label:\"En, toimitan sis\u00e4ll\u00f6t itse\", val:\"Ei\"}] },\n        web_new_4: { question: \"Onko sinulla jo verkkotunnus ja webhotelli?\", type: \"cards\", name: \"Web_Hosting\", next: \"extra_info\", options: [{label:\"Kyll\u00e4\", val:\"Kylla\"}, {label:\"Ei\", val:\"Ei\"}, {label:\"Tarvitsen apua\", val:\"Tarvitsen_Apua\"}] },\n        web_refresh: { question: \"Mik\u00e4 on nykyinen verkkosivusi osoite?\", type: \"text\", name: \"Nykyinen_URL\", next: \"web_refresh_2\" },\n        web_refresh_2: { question: \"Mik\u00e4 on suurin syy uudistukselle?\", type: \"cards\", name: \"Web_Uudistus_Syy\", next: \"web_refresh_3\", options: [{label:\"Vanhentunut ulkoasu\", val:\"Ulkoasu\"}, {label:\"Huono mobiilitoimivuus\", val:\"Mobiili\"}, {label:\"Vaikea yll\u00e4pito\", val:\"Yllapito\"}, {label:\"Myynnin puute\", val:\"Myynti\"}] },\n        web_refresh_3: { question: \"Pysyt\u00e4\u00e4nk\u00f6 nykyisess\u00e4 alustassa vai vaihdetaanko?\", type: \"cards\", name: \"Web_Alusta_Paatos\", next: \"web_refresh_4\", options: [{label:\"Pysyt\u00e4\u00e4n nykyisess\u00e4\", val:\"Pysytaan\"}, {label:\"Vaihdetaan parempaan\", val:\"Vaihdetaan\"}, {label:\"Tarvitsen suosituksen\", val:\"Suositus\"}] },\n        web_refresh_4: { question: \"S\u00e4ilytet\u00e4\u00e4nk\u00f6 vanhat sis\u00e4ll\u00f6t vai luodaanko uudet?\", type: \"cards\", name: \"Web_Sisalto_Paatos\", next: \"extra_info\", options: [{label:\"S\u00e4ilytet\u00e4\u00e4n ennallaan\", val:\"Sailyta\"}, {label:\"P\u00e4ivitet\u00e4\u00e4n vanhoja\", val:\"Paivitys\"}, {label:\"Kaikki uusiksi\", val:\"Uudet\"}] },\n        web_maintenance: { question: \"Mill\u00e4 alustalla sivustosi on tehty?\", type: \"cards\", name: \"Web_Nykyinen_Alusta\", next: \"web_maintenance_2\", options: [{label:\"WordPress\", val:\"WP\"}, {label:\"Shopify\", val:\"Shopify\"}, {label:\"Wix \/ Squarespace\", val:\"Wix_SS\"}, {label:\"En tied\u00e4 \/ Muu\", val:\"Muu\"}] },\n        web_maintenance_2: { question: \"Millaisesta yll\u00e4pidosta olet kiinnostunut?\", type: \"cards\", name: \"Web_Yllapito_Tyyppi\", next: \"web_maintenance_3\", options: [{label:\"Jatkuva kk-yll\u00e4pito\", val:\"Jatkuva\"}, {label:\"Kertaluontoinen p\u00e4ivitys\", val:\"Kerta\"}, {label:\"Tekninen tuki tarvittaessa\", val:\"Tuki\"}] },\n        web_maintenance_3: { question: \"Mik\u00e4 on sivustosi osoite?\", type: \"text\", name: \"Huolto_URL\", next: \"extra_info\" },\n        web_fix: { question: \"Kuvaile lyhyesti, millaista teknist\u00e4 apua tarvitset?\", type: \"text\", name: \"Vian_Kuvaus\", next: \"web_fix_2\" },\n        web_fix_2: { question: \"Mik\u00e4 on sivustosi osoite?\", type: \"text\", name: \"Huolto_URL\", next: \"extra_info\" },\n\n        ecom: {\n            question: \"Mit\u00e4 tarvitset?\",\n            type: \"cards\",\n            name: \"Ecom_Tarve\",\n            options: [{label:\"Uusi verkkokauppa\", val:\"ecom_new\"}, {label:\"P\u00e4ivitt\u00e4minen\", val:\"ecom_update\"}, {label:\"Muu verkkokauppa ty\u00f6\", val:\"ecom_other\"}, {label:\"Markkinointipalvelut\", val:\"marketing\"}]\n        },\n        ecom_new: {\n            question: \"Kenelle myyt?\",\n            type: \"multi-cards\",\n            name: \"Ecom_Kohderyhma\",\n            next: \"ecom_new_desc\",\n            options: [{label:\"Kuluttajille\", val:\"Kuluttajat\"}, {label:\"Yrityksille\", val:\"Yritykset\"}, {label:\"Valtiolle\", val:\"Valtio\"}, {label:\"Muu\", val:\"Muu\"}]\n        },\n        ecom_new_desc: { question: \"Kuvaus verkkokaupasta\", type: \"text\", name: \"Ecom_Kuvaus\", next: \"ecom_new_2\" },\n        ecom_new_2: { question: \"Montako tuotetta arvioit tulevan?\", type: \"text\", name: \"Ecom_Tuotemaara\", next: \"ecom_new_3\" },\n        ecom_new_3: { question: \"Onko sinulla logo?\", type: \"cards\", name: \"Ecom_Logo\", next: \"ecom_new_4\", options: [{label:\"Kyll\u00e4\", val:\"Kylla\"}, {label:\"Ei\", val:\"Ei\"}, {label:\"Tarvitsen logosuunnittelun\", val:\"Logo_Tarve\"}] },\n        ecom_new_4: { question: \"Tarvitsetko sis\u00e4ll\u00f6ntuotantoa (tekstit, kuvat jne)?\", type: \"cards\", name: \"Ecom_Sisaltoapu\", next: \"ecom_new_5\", options: [{label:\"Kyll\u00e4\", val:\"Kylla\"}, {label:\"Ei\", val:\"Ei\"}, {label:\"Osittain\", val:\"Osittain\"}] },\n        ecom_new_5: { question: \"Montako sivua arvioit tarvitsevasi?\", type: \"cards\", name: \"Ecom_Sivumaara\", next: \"ecom_new_6\", options: [{label:\"1-3\", val:\"1-3\"}, {label:\"4-6\", val:\"4-6\"}, {label:\"7-9\", val:\"7-9\"}, {label:\"10+\", val:\"10+\"}, {label:\"En tied\u00e4\", val:\"En_Tieda\"}] },\n        ecom_new_6: { question: \"Lis\u00e4tietoa (maksutavat, toiveet jne.)\", type: \"textarea\", name: \"Ecom_Lisatiedot\", next: \"extra_info\" },\n        ecom_update: { question: \"Millaisen p\u00e4ivityspalvelun haluat?\", type: \"cards\", name: \"Ecom_Paivitys_Tyyppi\", next: \"ecom_update_2\", options: [{label:\"Kk-yll\u00e4pito\", val:\"Kk_Yllapito\"}, {label:\"Kertaoptimointi\", val:\"Kerta\"}, {label:\"Tarvitsen apua\", val:\"Apu\"}] },\n        ecom_update_2: { question: \"Millaista p\u00e4ivitysty\u00f6t\u00e4 tarvitset?\", type: \"text\", name: \"Ecom_Tyo_Kuvaus\", next: \"ecom_update_3\" },\n        ecom_update_3: { question: \"Mit\u00e4 tuotteita \/ palvelua myyt?\", type: \"text\", name: \"Ecom_Myynti_Kohde\", next: \"ecom_update_4\" },\n        ecom_update_4: { question: \"Montako sivua verkkokaupassasi on?\", type: \"text\", name: \"Ecom_Sivumaara_Nyt\", next: \"extra_info\" },\n        ecom_other: { question: \"Millaista ty\u00f6t\u00e4 tarvitset?\", type: \"text\", name: \"Ecom_Muu_Kuvaus\", next: \"extra_info\" },\n\n        marketing: {\n            question: \"Millaista palvelua tarvitset?\",\n            type: \"cards\",\n            name: \"Mkt_Tyyppi\",\n            options: [{label:\"SEO\", val:\"mkt_seo\"}, {label:\"Paikallinen SEO\", val:\"mkt_local\"}, {label:\"Meta-mainonta\", val:\"mkt_meta\"}, {label:\"Google-mainonta\", val:\"mkt_google\"}, {label:\"Some-mainonta\", val:\"mkt_social\"}, {label:\"S\u00e4hk\u00f6posti\", val:\"mkt_email\"}, {label:\"Google yritysprofiili\", val:\"mkt_gmb\"}, {label:\"En tied\u00e4\", val:\"mkt_help\"}]\n        },\n        mkt_seo: { question: \"Montako sivua haluat optimoida?\", type: \"text\", name: \"SEO_Sivumaara\", next: \"mkt_seo_2\" },\n        mkt_seo_2: { question: \"Millaisen optimoinnin haluat?\", type: \"cards\", name: \"SEO_Taso\", next: \"mkt_seo_3\", options: [{label:\"T\u00e4ysi\", val:\"Taysi\"}, {label:\"Perus\", val:\"Perus\"}, {label:\"Kevyt\", val:\"Kevyt\"}, {label:\"En tied\u00e4\", val:\"mkt_help_seo\"}] },\n        mkt_seo_3: { question: \"Mik\u00e4 on verkkosivusi osoite?\", type: \"text\", name: \"SEO_URL\", next: \"mkt_seo_4\" },\n        mkt_seo_4: { question: \"Oletko kokeillut SEO:a ennen?\", type: \"cards\", name: \"SEO_Aiempi\", options: [{label:\"Kyll\u00e4\", val:\"seo_prev_yes\"}, {label:\"Ei\", val:\"extra_info\"}] },\n        seo_prev_yes: { question: \"Mik\u00e4 oli ongelma?\", type: \"text\", name: \"SEO_Ongelma\", next: \"extra_info\" },\n        mkt_help_seo: { question: \"Mik\u00e4 on tavoitteesi?\", type: \"text\", name: \"SEO_Tavoite\", next: \"extra_info\" },\n        mkt_help: { question: \"Haluatko varata maksuttoman ajan?\", type: \"cards\", name: \"Mkt_Ajanvaraus\", options: [{label:\"Kyll\u00e4 (siirry varaukseen)\", val:\"mkt_calendar\"}, {label:\"Ei, kerron t\u00e4ss\u00e4\", val:\"mkt_no_cal\"}] },\n        mkt_no_cal: { question: \"Kerro vapaasti tavoitteestasi\", type: \"text\", name: \"Mkt_Vapaa_Tavoite\", next: \"extra_info\" },\n        mkt_local: { question: \"Mill\u00e4 alueella haluat n\u00e4ky\u00e4?\", type: \"text\", name: \"Local_Alue\", next: \"mkt_local_2\" },\n        mkt_local_2: { question: \"Onko yritysprofiili vahvistettu?\", type: \"cards\", name: \"Local_GMB_Status\", next: \"mkt_local_3\", options: [{label:\"Kyll\u00e4\", val:\"Kylla\"}, {label:\"On, mutta kesken\", val:\"Kesken\"}, {label:\"Ei ole\", val:\"Ei\"}, {label:\"Tarvitsen apua\", val:\"Apu\"}] },\n        mkt_local_3: { question: \"P\u00e4\u00e4tavoite?\", type: \"cards\", name: \"Local_Goal\", next: \"mkt_local_4\", options: [{label:\"Puhelut\", val:\"Puhelut\"}, {label:\"K\u00e4vij\u00e4t\", val:\"Kavijat\"}, {label:\"Liikenne\", val:\"Liikenne\"}, {label:\"Arvostelut\", val:\"Arvostelut\"}] },\n        mkt_local_4: { question: \"Toimipisteiden m\u00e4\u00e4r\u00e4?\", type: \"cards\", name: \"Local_Stores\", next: \"mkt_local_5\", options: [{label:\"1\", val:\"1\"}, {label:\"2-5\", val:\"2-5\"}, {label:\"6+\", val:\"6+\"}, {label:\"En tied\u00e4\", val:\"En_Tieda\"}] },\n        mkt_local_5: { question: \"Nykyinen osoite?\", type: \"text\", name: \"Local_URL\", next: \"extra_info\" },\n        mkt_meta: { question: \"Mainonnan ensisijainen tavoite?\", type: \"cards\", name: \"Meta_Tavoite\", next: \"mkt_meta_2\", options: [{label:\"Myynti\", val:\"Myynti\"}, {label:\"Liidit\", val:\"Liidit\"}, {label:\"Tunnettuus\", val:\"Tunnettuus\"}, {label:\"Liikenne\", val:\"Liikenne\"}] },\n        mkt_meta_2: { question: \"Onko pikseli ja API asennettu?\", type: \"cards\", name: \"Meta_Tech\", next: \"mkt_meta_3\", options: [{label:\"Kyll\u00e4\", val:\"Kylla\"}, {label:\"On, muttei toimi\", val:\"Vika\"}, {label:\"Ei ole\", val:\"Ei\"}, {label:\"En tied\u00e4\", val:\"Apu\"}] },\n        mkt_meta_3: { question: \"Kuukausibudjetti mainontaan?\", type: \"cards\", name: \"Meta_Budjetti\", next: \"mkt_meta_4\", options: [{label:\"Alle 500\u20ac\", val:\"500\"}, {label:\"500-1500\u20ac\", val:\"1500\"}, {label:\"1500-5000\u20ac\", val:\"5000\"}, {label:\"Yli 5000\u20ac\", val:\"5000plus\"}, {label:\"Tarvitsen suosituksen\", val:\"Suositus\"}] },\n        mkt_meta_4: { question: \"Mainosmateriaalit valmiina?\", type: \"cards\", name: \"Meta_Assets\", next: \"mkt_meta_5\", options: [{label:\"Kyll\u00e4\", val:\"Kylla\"}, {label:\"Osittain\", val:\"Osittain\"}, {label:\"Ei\", val:\"Ei\"}] },\n        mkt_meta_5: { question: \"Business Manager tilit?\", type: \"cards\", name: \"Meta_Tilit\", next: \"mkt_meta_6\", options: [{label:\"Kyll\u00e4\", val:\"Kylla\"}, {label:\"On, mutten osaa\", val:\"Apu\"}, {label:\"Ei ole\", val:\"Ei\"}] },\n        mkt_meta_6: { question: \"Verkkosivun osoite?\", type: \"text\", name: \"Meta_URL\", next: \"extra_info\" },\n        mkt_google: { question: \"Miss\u00e4 haluat mainostesi n\u00e4kyv\u00e4n?\", type: \"cards\", name: \"Google_Sijoitus\", next: \"mkt_google_2\", options: [{label:\"Haku\", val:\"Haku\"}, {label:\"Shopping\", val:\"Shopping\"}, {label:\"YouTube\", val:\"YT\"}, {label:\"Display\", val:\"Display\"}, {label:\"Suositus\", val:\"Suositus\"}] },\n        mkt_google_2: { question: \"Ensisijainen tavoite?\", type: \"cards\", name: \"Google_Tavoite\", next: \"mkt_google_3\", options: [{label:\"Myynti\", val:\"Myynti\"}, {label:\"Liidit\", val:\"Liidit\"}, {label:\"Puhelut\", val:\"Puhelut\"}, {label:\"Br\u00e4ndi\", val:\"Brandi\"}] },\n        mkt_google_3: { question: \"L\u00f6ytyyk\u00f6 Google Ads tili\u00e4?\", type: \"cards\", name: \"Google_Tili_Status\", next: \"mkt_google_4\", options: [{label:\"Kyll\u00e4, aktiivinen\", val:\"Kylla\"}, {label:\"Kyll\u00e4, pys\u00e4hdyksiss\u00e4\", val:\"Pause\"}, {label:\"Ei ole\", val:\"Ei\"}] },\n        mkt_google_4: { question: \"Arvioitu mediabudjetti?\", type: \"cards\", name: \"Google_Budjetti\", next: \"mkt_google_5\", options: [{label:\"Alle 500\u20ac\", val:\"500\"}, {label:\"500-1500\u20ac\", val:\"1500\"}, {label:\"1500-5000\u20ac\", val:\"5000\"}, {label:\"Yli 5000\u20ac\", val:\"5000plus\"}, {label:\"Tarvitsen arvion\", val:\"Arvio\"}] },\n        mkt_google_5: { question: \"Verkkosivun osoite?\", type: \"text\", name: \"Google_URL\", next: \"mkt_google_6\" },\n        mkt_google_6: { question: \"Konversioseuranta (GA4)?\", type: \"cards\", name: \"Google_GA4\", next: \"extra_info\", options: [{label:\"Kyll\u00e4, kunnossa\", val:\"Kylla\"}, {label:\"Ep\u00e4varma\", val:\"Ehk\u00e4\"}, {label:\"Ei \/ En tied\u00e4\", val:\"Ei\"}] },\n        mkt_social: { question: \"Miss\u00e4 kanavissa?\", type: \"cards\", name: \"Social_Kanava\", next: \"mkt_social_2\", options: [{label:\"TikTok\", val:\"TikTok\"}, {label:\"LinkedIn\", val:\"LI\"}, {label:\"Pinterest\", val:\"Pinterest\"}, {label:\"Snapchat\", val:\"Snap\"}, {label:\"Monikanava\", val:\"Multi\"}, {label:\"Apu\", val:\"Apu\"}] },\n        mkt_social_2: { question: \"Kohderyhm\u00e4?\", type: \"cards\", name: \"Social_Target\", next: \"mkt_social_3\", options: [{label:\"Kuluttajat (B2C)\", val:\"B2C\"}, {label:\"Yritykset (B2B)\", val:\"B2B\"}, {label:\"Niche\", val:\"Niche\"}] },\n        mkt_social_3: { question: \"P\u00e4\u00e4tavoite?\", type: \"cards\", name: \"Social_Goal\", next: \"mkt_social_4\", options: [{label:\"Br\u00e4ndi\", val:\"Brandi\"}, {label:\"Ostot\", val:\"Ostot\"}, {label:\"Seuraajat\", val:\"Seuraajat\"}, {label:\"Rekry\", val:\"Rekry\"}] },\n        mkt_social_4: { question: \"Onko videoita\/kuvia?\", type: \"cards\", name: \"Social_Assets\", next: \"mkt_social_5\", options: [{label:\"On, laadukkaat\", val:\"Kylla\"}, {label:\"Apu editoinnissa\", val:\"Editointi\"}, {label:\"Alusta loppuun teilt\u00e4\", val:\"Full\"}] },\n        mkt_social_5: { question: \"Mediabudjetti?\", type: \"cards\", name: \"Social_Budjetti\", next: \"mkt_social_6\", options: [{label:\"Alle 1000\u20ac\", val:\"1000\"}, {label:\"1000-3000\u20ac\", val:\"3000\"}, {label:\"Yli 3000\u20ac\", val:\"3000plus\"}, {label:\"Suositus\", val:\"Suositus\"}] },\n        mkt_social_6: { question: \"Sivun osoite \/ Some-profiili?\", type: \"text\", name: \"Social_URL\", next: \"extra_info\" },\n        mkt_email: { question: \"Tyyppi?\", type: \"cards\", name: \"Email_Tyyppi\", next: \"mkt_email_2\", options: [{label:\"Uutiskirjeet\", val:\"Kirjeet\"}, {label:\"Automaatiot\", val:\"Auto\"}, {label:\"Molemmat\", val:\"Molemmat\"}, {label:\"Apu\", val:\"Apu\"}] },\n        mkt_email_2: { question: \"Tavoite?\", type: \"cards\", name: \"Email_Goal\", next: \"mkt_email_3\", options: [{label:\"Lis\u00e4myynti\", val:\"Lisamyynti\"}, {label:\"Liidien l\u00e4mmittely\", val:\"Liidit\"}, {label:\"Asiakaspalvelu\", val:\"Aspa\"}, {label:\"Br\u00e4ndi\", val:\"Brandi\"}] },\n        mkt_email_3: { question: \"Onko ohjelmistoa (Mailchimp tms)?\", type: \"text\", name: \"Email_Softa\", next: \"mkt_email_4\", placeholder: \"Esim. Klaviyo, Mailchimp tai 'Ei ole'\" },\n        mkt_email_4: { question: \"Onko tilaajalistaa?\", type: \"text\", name: \"Email_Lista\", next: \"mkt_email_5\", placeholder: \"Esim. 'On, 500 nime\u00e4' tai 'Ei ole'\" },\n        mkt_email_5: { question: \"Apu sis\u00e4ll\u00f6ss\u00e4?\", type: \"cards\", name: \"Email_Sisaltoapu\", next: \"mkt_email_6\", options: [{label:\"Tekstit & Ilme\", val:\"Full\"}, {label:\"Vain pohjat\", val:\"Templates\"}, {label:\"Ei, hoidan itse\", val:\"Ei\"}] },\n        mkt_email_6: { question: \"Verkkosivun osoite?\", type: \"text\", name: \"Email_URL\", next: \"extra_info\" },\n        mkt_gmb: { question: \"Tilanne?\", type: \"cards\", name: \"GMB_Tilanne\", next: \"mkt_gmb_2\", options: [{label:\"Uusi tili\", val:\"Uusi\"}, {label:\"Optimointi\", val:\"Optimointi\"}, {label:\"Viankorjaus\", val:\"Vika\"}, {label:\"Yll\u00e4pito\", val:\"Yllapito\"}] },\n        mkt_gmb_2: { question: \"P\u00e4\u00e4tavoite?\", type: \"cards\", name: \"GMB_Goal\", next: \"mkt_gmb_3\", options: [{label:\"Sijoitus kartalla\", val:\"Karta\"}, {label:\"Arvostelut\", val:\"Arvostelut\"}, {label:\"Yhteydenotot\", val:\"Kontakti\"}, {label:\"N\u00e4kyvyys\", val:\"Nakyvyys\"}] },\n        mkt_gmb_3: { question: \"Fyysinen toimipiste?\", type: \"cards\", name: \"GMB_Fyysinen\", next: \"mkt_gmb_4\", options: [{label:\"Kyll\u00e4\", val:\"Kylla\"}, {label:\"Ei (Palvelualue)\", val:\"Ei\"}, {label:\"Sek\u00e4 ett\u00e4\", val:\"Molemmat\"}] },\n        mkt_gmb_4: { question: \"Kuvamateriaali?\", type: \"cards\", name: \"GMB_Kuvat\", next: \"mkt_gmb_5\", options: [{label:\"L\u00f6ytyy\", val:\"Kylla\"}, {label:\"Apu kuvissa\", val:\"Apu\"}, {label:\"Ohjeet\", val:\"Ohjeet\"}] },\n        mkt_gmb_5: { question: \"Toimiala ja verkkosivu?\", type: \"text\", name: \"GMB_URL\", next: \"extra_info\" },\n\n        photo: {\n            question: \"Millaisesta kuvauspalvelusta olet kiinnostunut?\",\n            type: \"cards\",\n            name: \"Photo_Paatyyppi\",\n            options: [{label:\"Dronekuvaus\", val:\"photo_drone\"}, {label:\"360-kuvaus\", val:\"photo_360\"}, {label:\"Valokuvaus\", val:\"photo_standard\"}]\n        },\n        photo_drone: { question: \"Mit\u00e4 haluat kuvattavan?\", type: \"cards\", name: \"Drone_Kohde\", next: \"photo_drone_loc\", options: [{label:\"Kiinteist\u00f6\/tontti\", val:\"Tontti\"}, {label:\"Tapahtuma\", val:\"Tapahtuma\"}, {label:\"Ty\u00f6maa\", val:\"Tyomaa\"}, {label:\"Markkinointi\", val:\"Markkinointi\"}] },\n        photo_drone_loc: { question: \"Miss\u00e4 kuvauskohde sijaitsee?\", type: \"text\", name: \"Drone_Sijainti\", next: \"photo_drone_edit\" },\n        photo_drone_edit: { question: \"Tarvitsetko editointia?\", type: \"cards\", name: \"Drone_Editointi\", next: \"extra_info\", options: [{label:\"Raaka-aineet\", val:\"Raaka\"}, {label:\"Editoitu video\", val:\"Video\"}, {label:\"Markkinointikuvat\", val:\"Kuvat\"}] },\n        photo_360: { question: \"Millaiseen kohteeseen?\", type: \"cards\", name: \"360_Kohde\", next: \"photo_360_size\", options: [{label:\"Toimitila\/Liiketila\", val:\"Liiketila\"}, {label:\"Asunto\", val:\"Asunto\"}, {label:\"Teollisuus\", val:\"Teollisuus\"}, {label:\"Hotelli\/Ravintola\", val:\"Ravintola\"}] },\n        photo_360_size: { question: \"Kuinka laaja kohde (neli\u00f6t\/huoneet)?\", type: \"text\", name: \"360_Koko\", next: \"photo_360_info\" },\n        photo_360_info: { question: \"Infopisteit\u00e4 kuvan sis\u00e4\u00e4n?\", type: \"cards\", name: \"360_Infopisteet\", next: \"photo_360_platform\", options: [{label:\"Kyll\u00e4\", val:\"Kylla\"}, {label:\"Ei\", val:\"Ei\"}, {label:\"En tied\u00e4\", val:\"En_Tieda\"}] },\n        photo_360_platform: { question: \"Mihin esittely tulee?\", type: \"cards\", name: \"360_Alusta\", next: \"extra_info\", options: [{label:\"Verkkosivulle\", val:\"Web\"}, {label:\"Google Maps\", val:\"Maps\"}, {label:\"Molempia\", val:\"Molemmat\"}] },\n        photo_standard: { question: \"Mik\u00e4 on p\u00e4\u00e4kohde?\", type: \"cards\", name: \"Photo_Kohde\", next: \"photo_standard_loc\", options: [{label:\"Henkil\u00f6kuvaus\", val:\"Henkilo\"}, {label:\"Tuotekuvaus\", val:\"Tuote\"}, {label:\"Tilat\", val:\"Tilat\"}, {label:\"Tapahtuma\", val:\"Tapahtuma\"}] },\n        photo_standard_loc: { question: \"Miss\u00e4 kuvaus suoritetaan?\", type: \"cards\", name: \"Photo_Paikka\", next: \"photo_standard_qty\", options: [{label:\"Omat tilat\", val:\"Omat\"}, {label:\"Studiolla\", val:\"Studio\"}, {label:\"Milj\u00f6\u00f6\", val:\"Miljoo\"}] },\n        photo_standard_qty: { question: \"Arvioitu kuvam\u00e4\u00e4r\u00e4 tai kesto?\", type: \"text\", name: \"Photo_Kesto\", next: \"photo_standard_usage\" },\n        photo_standard_usage: { question: \"K\u00e4ytt\u00f6tarkoitus?\", type: \"cards\", name: \"Photo_Kaytto\", next: \"extra_info\", options: [{label:\"Web \/ Some\", val:\"Web\"}, {label:\"Painotuotteet\", val:\"Paino\"}, {label:\"Mainoskampanja\", val:\"Kampanja\"}] },\n\n        extra_info: { question: \"Lis\u00e4tietoa (valinnainen)\", type: \"textarea\", name: \"Lisatiedot\", next: \"contacts\" },\n        contacts: { title: \"Melkein valmista!\", question: \"J\u00e4t\u00e4 yhteystietosi\", type: \"form\" }\n    };\n\n    let history = [];\n    let currentKey = \"start\";\n    let allAnswers = {};\n\n    function renderStep(key) {\n        const step = steps[key];\n        const container = document.getElementById('step-content');\n        document.getElementById('stepTitle').innerText = step.title || \"Tarjouspyynt\u00f6\";\n        \n        gsap.to(container, { opacity: 0, y: 10, duration: 0.2, onComplete: () => {\n            container.innerHTML = `<label class=\"dv-step-label\">${step.question}<\/label>`;\n            \n            if (step.type === \"cards\" || step.type === \"multi-cards\") {\n                const grid = document.createElement('div');\n                grid.className = \"dv-card-grid\";\n                const inputType = step.type === \"multi-cards\" ? \"checkbox\" : \"radio\";\n                step.options.forEach(opt => {\n                    grid.innerHTML += `\n                        <label class=\"dv-choice-card\">\n                            <input type=\"${inputType}\" name=\"${step.name}\" value=\"${opt.val}\" ${step.type === 'cards' ? `onclick=\"handleCardClick('${key}', '${opt.val}', '${opt.label}')\"` : ''}>\n                            <div class=\"dv-card-inner\"><strong>${opt.label}<\/strong><\/div>\n                        <\/label>`;\n                });\n                container.appendChild(grid);\n            } else if (step.type === \"text\" || step.type === \"textarea\") {\n                container.innerHTML += `<div class=\"dv-input-group\">${step.type === \"text\" ? `<input type=\"text\" id=\"stepInput\" placeholder=\"${step.placeholder || 'Kirjoita t\u00e4h\u00e4n...'}\">` : `<textarea id=\"stepInput\" rows=\"4\" placeholder=\"${step.placeholder || 'Kirjoita t\u00e4h\u00e4n...'}\"><\/textarea>`}<\/div>`;\n            } else if (step.type === \"form\") {\n                container.innerHTML += `<div class=\"dv-input-group\"><input type=\"text\" name=\"Nimi\" placeholder=\"Nimi *\" required><input type=\"text\" name=\"Puh\" placeholder=\"Puhelin *\" required><input type=\"email\" name=\"Email\" placeholder=\"S\u00e4hk\u00f6posti *\" required><input type=\"text\" name=\"Yritys\" placeholder=\"Yritys *\"><\/div><div class=\"dv-privacy-wrapper\"><input type=\"checkbox\" id=\"privacyCheck\" required><span class=\"dv-privacy-text\">Hyv\u00e4ksyn <a href=\"https:\/\/digiverkosto.fi\/tietosuojaseloste\/\" target=\"_blank\">tietosuojaselosteen<\/a> *<\/span><\/div>`;\n            }\n\n            const nav = document.createElement('div'); nav.className = \"dv-nav\";\n            if (key !== \"start\") {\n                const pb = document.createElement('button'); pb.type=\"button\"; pb.className=\"dv-btn-prev\"; pb.innerText=\"\u2190 Takaisin\"; pb.onclick=goBack; nav.appendChild(pb);\n            }\n            if (step.type === \"text\" || step.type === \"textarea\" || step.type === \"multi-cards\") {\n                const nb = document.createElement('button'); nb.type=\"button\"; nb.className=\"dv-btn-next\"; nb.innerText=\"Seuraava\";\n                nb.onclick = () => {\n                    if (step.type === \"multi-cards\") {\n                        const sel = Array.from(container.querySelectorAll('input:checked')).map(e => e.value);\n                        if(sel.length === 0) return alert(\"Valitse v\u00e4hint\u00e4\u00e4n yksi\");\n                        allAnswers[step.name] = sel.join(\", \");\n                    } else {\n                        const val = document.getElementById('stepInput').value;\n                        if(!val.trim()) return alert(\"T\u00e4yt\u00e4 kentt\u00e4\");\n                        allAnswers[step.name] = val;\n                    }\n                    goToStep(step.next);\n                };\n                nav.appendChild(nb);\n            }\n            if (step.type === \"form\") {\n                const sb = document.createElement('button'); sb.type=\"submit\"; sb.className=\"dv-btn-submit\"; sb.innerText=\"L\u00c4HET\u00c4\";\n                sb.onclick = syncHiddenFields; nav.appendChild(sb);\n            }\n            container.appendChild(nav);\n            gsap.fromTo(container, { opacity: 0, y: 10 }, { opacity: 1, y: 0, duration: 0.3 });\n            updateProgress();\n        }});\n    }\n\n    function handleCardClick(key, val, label) {\n        if (val === \"mkt_calendar\") return window.location.href = \"https:\/\/digiverkosto.fi\/varaa-aika\";\n        allAnswers[steps[key].name] = label;\n        setTimeout(() => goToStep(steps[key].next || val), 250);\n    }\n\n    function syncHiddenFields() {\n        const hidden = document.getElementById('hidden-data-container');\n        hidden.innerHTML = \"\";\n        for (const [k, v] of Object.entries(allAnswers)) {\n            const i = document.createElement('input'); i.type=\"hidden\"; i.name=k; i.value=v; hidden.appendChild(i);\n        }\n    }\n\n    function goToStep(key) {\n        if (!steps[key]) key = \"contacts\";\n        history.push(currentKey); currentKey = key; renderStep(key);\n    }\n\n    function goBack() {\n        if (history.length > 0) { currentKey = history.pop(); renderStep(currentKey); }\n    }\n\n    function updateProgress() {\n        const p = Math.min((history.length \/ 8) * 100, 100);\n        document.getElementById('formProgress').style.width = p + '%';\n    }\n\n    renderStep(\"start\");\n<\/script>\n\n\n\n<section class=\"section faq-section\">\n    <h2 class=\"growth-title reveal\">Usein kysytty\u00e4<\/h2>\n    <p class=\"faq-intro reveal\">T\u00e4ss\u00e4 ovat yleisimm\u00e4t kysymykset ja vastaukset.<\/p>\n    \n    <div class=\"faq-container reveal\">\n        <!-- 1. Hinta \/ Verkkosivut -->\n        <div class=\"faq-item\">\n            <button class=\"faq-question\">\n                <span>Miten Digiverkoston palvelut hinnoitellaan ja mit\u00e4 uudet verkkosivut maksavat?<\/span>\n                <span class=\"faq-icon\">+<\/span>\n            <\/button>\n            <div class=\"faq-answer\">\n                <p>Palveluidemme hinnat m\u00e4\u00e4r\u00e4ytyv\u00e4t aina projektin laajuuden ja vaadittavan ty\u00f6m\u00e4\u00e4r\u00e4n mukaan. Esimerkiksi laadukkaat ja myyv\u00e4t WordPress-perusverkkosivut pienyritykselle maksavat tyypillisesti alkaen n. 400 euroa. Haluamme pit\u00e4\u00e4 hinnoittelun t\u00e4ysin l\u00e4pin\u00e4kyv\u00e4n\u00e4 ilman piilokuluja tai yll\u00e4tt\u00e4vi\u00e4 lis\u00e4laskuja. Koska emme yll\u00e4pid\u00e4 kallista toimistohallintoa, pystymme tarjoamaan huipputason tuloksia huomattavasti perinteisi\u00e4 mainostoimistoja kustannustehokkaammin.<\/p>\n            <\/div>\n        <\/div>\n\n        <!-- 2. Tulostakuu (USP) -->\n        <div class=\"faq-item\">\n            <button class=\"faq-question\">\n                <span>Miten tarjoamanne 100 % tulostakuu oikein toimii?<\/span>\n                <span class=\"faq-icon\">+<\/span>\n            <\/button>\n            <div class=\"faq-answer\">\n                <p>Tietyiss\u00e4 palveluissamme, kuten hakukoneoptimoinnissa (SEO) ja tietyiss\u00e4 mainoskampanjoissa, tarjoamme 100 % tulostakuun: <strong>sovittu sijoitus tai 0 \u20ac lasku.<\/strong> T\u00e4m\u00e4 tarkoittaa, ett\u00e4 jos emme saavuta yhdess\u00e4 etuk\u00e4teen sovittuja ja selke\u00e4sti mitattavia tavoitteita, et maksa ty\u00f6st\u00e4mme mit\u00e4\u00e4n. Me kannamme riskin puolestasi ja teemme kaikkemme yrityksesi myynnin kasvattamiseksi.<\/p>\n            <\/div>\n        <\/div>\n\n        <!-- 3. Aikataulut -->\n        <div class=\"faq-item\">\n            <button class=\"faq-question\">\n                <span>Kuinka nopeasti uudet verkkosivut tai markkinointikampanja saadaan julki?<\/span>\n                <span class=\"faq-icon\">+<\/span>\n            <\/button>\n            <div class=\"faq-answer\">\n                <p>Projektien kesto riippuu aina toteutuksen laajuudesta, mutta ty\u00f6t aloitamme v\u00e4litt\u00f6m\u00e4sti sopimuksen syntyess\u00e4. Tyypillinen WordPress-verkkosivuprojekti kest\u00e4\u00e4 n. 1-2 viikkoa, parhaimmillaan alle viikon. Digitaalisen markkinoinnin (kuten Meta- tai Google-mainonnan) voimme parhaimmillaan saada liven\u00e4 k\u00e4yntiin jopa alle viikossa. Arvostamme tehokkuutta ja nopeita tuloksia laadusta tinkim\u00e4tt\u00e4.<\/p>\n            <\/div>\n        <\/div>\n\n        <!-- 4. SEO Tulokset -->\n        <div class=\"faq-item\">\n            <button class=\"faq-question\">\n                <span>Kuinka nopeasti hakukoneoptimointi (SEO) alkaa tuottamaan tuloksia?<\/span>\n                <span class=\"faq-icon\">+<\/span>\n            <\/button>\n            <div class=\"faq-answer\">\n                <p>Hakukoneoptimointi on pitk\u00e4j\u00e4nteist\u00e4 ja strategista ty\u00f6t\u00e4. Ensimm\u00e4isi\u00e4 tuloksia ja sijoitusten nousua voidaan n\u00e4hd\u00e4 usein jo 1\u20133 kuukauden kuluessa, mutta todelliset ja pysyv\u00e4t tulokset, eli jatkuva virta uusia orgaanisia asiakkaita vaativat yleens\u00e4 3\u20136 kuukauden j\u00e4rjestelm\u00e4llist\u00e4 ty\u00f6t\u00e4. Oikoteit\u00e4 ei ole, mutta saavutetut tulokset ovat eritt\u00e4in pitk\u00e4kestoisia verrattuna maksettuun mainontaan.<\/p>\n            <\/div>\n        <\/div>\n\n        <!-- 5. Kohderyhm\u00e4 ja sijainti -->\n        <div class=\"faq-item\">\n            <button class=\"faq-question\">\n                <span>Teettek\u00f6 verkkosivuja ja mainontaa vain isoille yrityksille? Miss\u00e4 p\u00e4in toimitte?<\/span>\n                <span class=\"faq-icon\">+<\/span>\n            <\/button>\n            <div class=\"faq-answer\">\n                <p>Emme suinkaan. Autamme suurella intohimolla aivan erityisesti <strong>pienyrityksi\u00e4, yksinyritt\u00e4ji\u00e4 ja paikallisia toimijoita<\/strong> saamaan lis\u00e4\u00e4 n\u00e4kyvyytt\u00e4 ja myynti\u00e4 verkossa. Toki my\u00f6s suuret yhti\u00f6t ovat asiakkaitamme. Vaikka fyysiset toimistomme sijaitsevat Jokioisissa (Kanta-H\u00e4me) ja Veteliss\u00e4 (Keskipohjanmaa), digitaalinen maailma on rajaton. Palvelemme yrityksi\u00e4 et\u00e4n\u00e4 eritt\u00e4in sujuvasti <strong>koko Suomen alueella<\/strong>.<\/p>\n            <\/div>\n        <\/div>\n\n        <!-- 6. Meta-mainonta -->\n        <div class=\"faq-item\">\n            <button class=\"faq-question\">\n                <span>Toimiiko Facebook- ja Instagram-mainonta (Meta) oikeasti pienyrityksille?<\/span>\n                <span class=\"faq-icon\">+<\/span>\n            <\/button>\n            <div class=\"faq-answer\">\n                <p>Kyll\u00e4 toimii, ja usein erinomaisesti. Digiverkosto on erikoistunut tulos- ja konversiokeskeiseen Meta-mainontaan. Emme vain \"buustaa julkaisuja\" ker\u00e4t\u00e4ksemme tykk\u00e4yksi\u00e4, vaan rakennamme strategisia kokonaisuuksia, jotka on kohdennettu tarkasti ostovalmiille kohdeyleis\u00f6ille. Oikein tehtyn\u00e4 Meta-mainonnalla saadaan mitattavia tuloksia ja oikeita euroja my\u00f6s pienemm\u00e4ll\u00e4 mediabudjetilla.<\/p>\n            <\/div>\n        <\/div>\n\n        <!-- 7. Sopimukset -->\n        <div class=\"faq-item\">\n            <button class=\"faq-question\">\n                <span>Sitoudunko pitkiin kuukausisopimuksiin, jos tilaan palveluita?<\/span>\n                <span class=\"faq-icon\">+<\/span>\n            <\/button>\n            <div class=\"faq-answer\">\n                <p>Et sitoudu pakollisiin tai m\u00e4\u00e4r\u00e4aikaisiin \"loukkusopimuksiin\". Tarjoamme joustavia ja asiakkaan tilanteeseen r\u00e4\u00e4t\u00e4l\u00f6ityj\u00e4 ratkaisuja. Monet asiakkaamme valitsevat toistaiseksi voimassa olevan kuukausipalvelun (esimerkiksi verkkosivujen yll\u00e4pitoon, Google Ads -hallintaan tai SEO-ty\u00f6h\u00f6n) yksinkertaisesti siksi, ett\u00e4 parhaiden tulosten saavuttaminen ja yll\u00e4pit\u00e4minen vaatii jatkuvaa ammattilaisen ty\u00f6t\u00e4.<\/p>\n            <\/div>\n        <\/div>\n\n        <!-- 8. AEO \/ Br\u00e4ndin asemointi -->\n        <div class=\"faq-item\">\n            <button class=\"faq-question\">\n                <span>Miksi valita Digiverkosto perinteisen ja suuren mainostoimiston sijaan?<\/span>\n                <span class=\"faq-icon\">+<\/span>\n            <\/button>\n            <div class=\"faq-answer\">\n                <p>Koska me keskitymme puhtaasti sijoitetun p\u00e4\u00e4oman tuottoon (ROI). Me emme myy sinulle kallista \"br\u00e4ndip\u00f6hin\u00e4\u00e4\" tai monimutkaisia termej\u00e4, vaan rakennamme selkeit\u00e4 automaattisia myyntikoneita. Keskitymme vain tekij\u00f6ihin, jotka tuovat oikeasti euroja takaisin yrityksesi kassaan: erottuvaan SEO-n\u00e4kyvyyteen, tehokkaasti konvertoiviin verkkosivuihin ja tulospohjaiseen mainontaan. Lis\u00e4ksi matala organisaatiorakenteemme takaa, ett\u00e4 sijoituksesi menee 100 % itse ty\u00f6h\u00f6n ja mitattaviin tuloksiin.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<style>\n    .faq-section {\n        background: transparent !important;\n        background-color: transparent !important;\n        padding: 100px 20px;\n        font-family: inherit;\n        position: relative;\n        z-index: 2;\n    }\n\n    .faq-container {\n        max-width: 850px;\n        margin: 0 auto;\n    }\n\n    .faq-intro {\n        text-align: center;\n        color: #a1a1a6;\n        font-size: 1.1rem;\n        margin-bottom: 40px;\n        margin-top: -30px;\n    }\n\n    .faq-item {\n        border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    }\n\n    .faq-question {\n        width: 100%;\n        padding: 30px 0;\n        background: none;\n        border: none;\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n        cursor: pointer;\n        color: #f5f5f7;\n        font-size: clamp(17px, 2.5vw, 21px);\n        font-weight: 600;\n        text-align: left;\n        line-height: 1.4;\n    }\n\n    .faq-question span:first-child {\n        padding-right: 20px;\n    }\n\n    .faq-icon {\n        font-size: 24px;\n        color: #86868b;\n        transition: transform 0.4s ease;\n        flex-shrink: 0;\n    }\n\n    .faq-item.active .faq-icon {\n        transform: rotate(45deg);\n        color: #0071e3;\n    }\n\n    .faq-answer {\n        max-height: 0;\n        overflow: hidden;\n        transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n        color: #86868b;\n        font-size: 17px;\n        line-height: 1.6;\n    }\n\n    .faq-item.active .faq-answer {\n        max-height: 800px;\n        padding-bottom: 30px;\n    }\n\n    .faq-answer p { margin-bottom: 15px; }\n    \n    .faq-answer strong {\n        color: #f5f5f7;\n    }\n\n    .growth-title {\n        font-size: clamp(32px, 5vw, 48px);\n        font-weight: 700;\n        text-align: center;\n        margin-bottom: 50px;\n        background: linear-gradient(180deg, #fff 0%, #86868b 100%);\n        -webkit-background-clip: text;\n        -webkit-text-fill-color: transparent;\n    }\n\n    \/* Mobiilioptimointi *\/\n    @media (max-width: 600px) {\n        .faq-question {\n            font-size: 16px;\n            padding: 20px 0;\n        }\n        .faq-answer {\n            font-size: 15px;\n        }\n    }\n<\/style>\n\n<script>\n    document.querySelectorAll('.faq-question').forEach(button => {\n        button.addEventListener('click', () => {\n            const item = button.parentElement;\n            \n            \/\/ Poista n\u00e4iden kommenttimerkit (\/\/), jos haluat ett\u00e4 vain yksi kysymys voi olla auki kerrallaan\n            \/\/ document.querySelectorAll('.faq-item').forEach(otherItem => {\n            \/\/     if(otherItem !== item) otherItem.classList.remove('active');\n            \/\/ });\n\n            item.classList.toggle('active');\n        });\n    });\n<\/script>\n\n\n\n<!-- Avaruustausta kanvaasi -->\n<canvas id=\"dv-global-starfield\"><\/canvas>\n\n<style>\n    \/* 1. Pakotetaan teeman p\u00e4\u00e4rakenteet l\u00e4pin\u00e4kyviksi, jotta t\u00e4hdet n\u00e4kyv\u00e4t l\u00e4pi *\/\n    html, body, #page, .site, .site-content, main, .entry-content {\n        background-color: transparent !important;\n        background: transparent !important;\n    }\n    \n    \/* 2. T\u00e4htitaustan tyylit (Kiinnitetty ruudun taakse) *\/\n    #dv-global-starfield {\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        z-index: -9999; \/* Aivan alimmaiseksi kaiken sis\u00e4ll\u00f6n alle *\/\n        pointer-events: none; \/* Ei h\u00e4iritse klikkailua tai skrollausta *\/\n        opacity: 0; \/* Aluksi piilossa pehme\u00e4\u00e4 sis\u00e4\u00e4ntuloa varten *\/\n        transition: opacity 1.5s ease-in;\n        background-color: #050505; \/* Avaruuden tumma pohjav\u00e4ri *\/\n    }\n<\/style>\n\n<script>\n    document.addEventListener(\"DOMContentLoaded\", function() {\n        const canvas = document.getElementById('dv-global-starfield');\n        if (!canvas) return;\n        \n        const ctx = canvas.getContext('2d');\n        let width, height;\n        let stars = [];\n\n        \/\/ Skaalaa kanvaasi koko ruudun kokoiseksi\n        function resize() {\n            width = window.innerWidth;\n            height = window.innerHeight;\n            canvas.width = width;\n            canvas.height = height;\n        }\n        \n        window.addEventListener('resize', resize);\n        resize();\n\n        \/\/ Luodaan t\u00e4hdet (valkoisia ja muutama sininen)\n        for (let i = 0; i < 200; i++) {\n            stars.push({\n                x: Math.random() * width,\n                y: Math.random() * height,\n                radius: Math.random() * 1.5 + 0.3,\n                speedY: (Math.random() * 0.3 + 0.05) * -1, \/\/ Liike yl\u00f6s\n                speedX: (Math.random() * 0.2 - 0.1), \/\/ Pieni sivuttaisliike\n                color: Math.random() > 0.3 ? 'rgba(255, 255, 255, ' : 'rgba(0, 113, 227, ',\n                opacity: Math.random() * 0.8 + 0.2\n            });\n        }\n\n        \/\/ Animaation piirt\u00e4minen\n        function draw() {\n            ctx.clearRect(0, 0, width, height);\n            \n            stars.forEach(star => {\n                ctx.beginPath();\n                ctx.arc(star.x, star.y, star.radius, 0, Math.PI * 2);\n                ctx.fillStyle = star.color + star.opacity + ')';\n                ctx.fill();\n\n                star.x += star.speedX;\n                star.y += star.speedY;\n\n                \/\/ Jos t\u00e4hti karkaa ruudulta, palautetaan se takaisin\n                if (star.y < 0) {\n                    star.y = height;\n                    star.x = Math.random() * width;\n                }\n                if (star.x < 0) star.x = width;\n                if (star.x > width) star.x = 0;\n            });\n            \n            requestAnimationFrame(draw);\n        }\n        \n        \/\/ Aloitetaan animaatio ja nostetaan l\u00e4pin\u00e4kyvyys esiin pehme\u00e4sti\n        setTimeout(() => {\n            canvas.style.opacity = '1';\n            draw();\n        }, 100);\n    });\n<\/script>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"ProfessionalService\",\n  \"name\": \"Digiverkosto\",\n  \"description\": \"Asiantuntevat digimarkkinoinnin, verkkosivustojen, verkkokauppojen ja teko\u00e4lyratkaisujen toteutukset kasvuhaluisille yrityksille ymp\u00e4ri Suomen.\",\n  \"brand\": {\n    \"@type\": \"Brand\",\n    \"name\": \"Digiverkosto\"\n  },\n  \"url\": \"https:\/\/digiverkosto.fi\",\n  \"telephone\": \"+358451074457\",\n  \"address\": [\n    {\n      \"@type\": \"PostalAddress\",\n      \"addressLocality\": \"Veteli\",\n      \"addressCountry\": \"FI\"\n    },\n    {\n      \"@type\": \"PostalAddress\",\n      \"addressLocality\": \"Jokioinen\",\n      \"addressCountry\": \"FI\"\n    }\n  ],\n  \"aggregateRating\": {\n    \"@type\": \"AggregateRating\",\n    \"ratingValue\": \"5\",\n    \"bestRating\": \"5\",\n    \"worstRating\": \"1\",\n    \"ratingCount\": \"4\"\n  }\n}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Kauanko projekteissa kest\u00e4\u00e4?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Projektien kestoista sovitaan aina etuk\u00e4teen. Kesto riippuu aina projektin laajuudesta ja luonnosta, mutta ty\u00f6t aloitamme aina heti siit\u00e4 sovittaessa.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Tarjoatteko kuukausikohtaisia sopimuksia?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Kyll\u00e4, tarjoamme aina r\u00e4\u00e4t\u00e4l\u00f6ityj\u00e4 sopimuksia asiakkaidemme tarpeisiin. Kuukausikohtaisia sopimuksia ovat useimmiten yll\u00e4pito, p\u00e4ivitt\u00e4minen ja sis\u00e4ll\u00f6n julkaiseminen sovittuina ajankohtina.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Miten hinnoittelette palvelut?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Palveluidemme hinnat m\u00e4\u00e4r\u00e4ytyv\u00e4t projektin laajuuden ja ty\u00f6m\u00e4\u00e4r\u00e4n mukaan. Koska emme ole suuri ja byrokraattinen mainostoimisto, pystymme pit\u00e4m\u00e4\u00e4n kustannukset kilpailukykyisin\u00e4 ilman turhia organisaatiokuluja. Maksatte vain todellisesta ty\u00f6st\u00e4 ja tuloksista.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Mit\u00e4 myyv\u00e4t verkkosivut maksavat?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Hinta riippuu laajuudesta. Ota yhteytt\u00e4, niin laskemme tarjouksen juuri teid\u00e4n tarpeisiinne.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Teettek\u00f6 verkkosivut my\u00f6s pienyrityksille?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Kyll\u00e4. Rakennamme myyv\u00e4t verkkosivut kaiken kokoisille yrityksille, aina yksinyritt\u00e4jist\u00e4 suurempiin yhti\u00f6ihin.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Toimitteko vain Jokioisissa ja Veteliss\u00e4?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Toimistomme sijaitsevat Jokioisten ja Vetelin alueella, mutta palvelemme et\u00e4n\u00e4 ymp\u00e4ri Suomen.\"\n      }\n    }\n  ]\n}\n<\/script>\n<\/div>\n\n\n<link data-noptimize=\"1\" data-no-optimize=\"1\" data-no-minify=\"1\" data-no-defer=\"1\" rel=\"stylesheet\" href=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/trustindex-google-widget.css?1787214414\" media=\"all\"><pre class=\"ti-widget\"><div style=\"opacity: 0;height: 0 !important;overflow: hidden !important\" data-css-url=\"https:\/\/digiverkosto.fi\/wp-content\/uploads\/trustindex-google-widget.css?1787214414\" class=\" ti-widget  ti-goog ti-review-text-mode-readmore ti-text-align-left\" data-no-translation=\"true\" data-time-locale=\"%d %s sitten|t\u00e4n\u00e4\u00e4n|p\u00e4iv\u00e4|p\u00e4iv\u00e4\u00e4|viikko|viikkoa|kuukausi|kuukautta|vuosi|vuotta\" data-plugin-version=\"14.2\" data-layout-id=\"104\" data-layout-category=\"badge, top-rated-badge\" data-set-id=\"drop-shadow\" data-pid=\"wp-widget\" data-language=\"fi\" data-close-locale=\"Kiinni\" data-css-version=\"2\" data-size=\"1\"> <div class=\"ti-widget-container\"> <div class=\"ti-header source-Google\"> <img decoding=\"async\" class=\"ti-platform-icon skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/icon.svg\" alt=\"Google\" width=\"20\" height=\"20\" loading=\"lazy\" \/> <div class=\"ti-header-inner\"> <div class=\"ti-profile-details\"> <div class=\"ti-stars\"><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 1\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 2\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 3\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 4\" width=\"17\" height=\"17\" loading=\"lazy\" \/><img decoding=\"async\" class=\"ti-star skip-lazy\" src=\"https:\/\/cdn.trustindex.io\/assets\/platform\/Google\/star\/f.svg\" alt=\"Google star 5\" width=\"17\" height=\"17\" loading=\"lazy\" \/><\/div> <span class=\"ti-rating\">5.0<\/span> <\/div> <div class=\"ti-top-rated-title\">Parhaiksi arvioitu  palvelu<\/div> <div class=\"ti-verified-by\">Trustindexin vahvistama <span class=\"ti-info-icon\"><\/span><\/div> <div class=\"ti-disclaimer\">Trustindex vahvistaa, ett\u00e4 yrityksen arvostelupisteet ovat yli 4.5. T\u00e4m\u00e4 perustuu Google-alustalle viimeisten 12 kuukauden aikana ker\u00e4ttyihin arvosteluihin, mik\u00e4 oikeuttaa sen saamaan <a href=\"https:\/\/www.trustindex.io\/?a=sys&amp;c=wp-top-rated-badge&amp;url=\/the-trustindex-verified-badge\/\" target=\"_blank\" rel=\"noopener\">Parhaiten arvioidut sertifikaatin<\/a>.<\/div> <\/div> <\/div> <\/div> <\/div> <\/pre><pre class=\"ti-hidden-markup\" hidden style=\"display: none\"><script>\n(function () { if (window.tiLoaderFallback) { return; } window.tiLoaderFallback = true; function tiLoadLoader() { if (window.TrustindexWidget || document.querySelector('script[src*=\"https:\/\/cdn.trustindex.io\/loader.js\"]')) { return; } let script = document.createElement(\"script\"); script.async = true; script.src = \"https:\/\/cdn.trustindex.io\/loader.js\"; script.setAttribute(\"data-ccm-injected\", \"1\"); document.head.appendChild(script); } if (\"loading\" === document.readyState) { document.addEventListener(\"DOMContentLoaded\", tiLoadLoader); } else { tiLoadLoader(); } })();\n<\/script>\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<style data-wp-block-html=\"css\">\n<!-- Esimerkki painikkeesta, joka on keskitetty ja jossa on v\u00e4h\u00e4n tilaa ymp\u00e4rill\u00e4 -->\n<div style=\"text-align: center; padding: 20px;\">\n  <script async src=\"https:\/\/www.gstatic.com\/feedback\/publisher.js\"><\/script>\n  <google-preferred-source domain=\"digiverkosto.fi\" data-theme=\"light\"><\/google-preferred-source>\n<\/div>\n<\/style>\n\n<div style=\"text-align: center; margin: 20px 0;\">\n  <a href=\"https:\/\/www.google.com\/preferences\/source?q=digiverkosto.fi\" target=\"_blank\" rel=\"noopener\" style=\"\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    background-color: transparent;\n    color: #ffffff;\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    padding: 12px 24px;\n    font-family: &#039;Inter&#039;, system-ui, -apple-system, sans-serif;\n    font-size: 15px;\n    font-weight: 500;\n    text-decoration: none;\n    border-radius: 100px;\n    backdrop-filter: blur(10px);\n    transition: all 0.2s ease;\n  \" onmouseover=\"this.style.backgroundColor=&#039;rgba(255, 255, 255, 0.08)&#039;;this.style.borderColor=&#039;rgba(255, 255, 255, 0.4)&#039;;\" onmouseout=\"this.style.backgroundColor=&#039;transparent&#039;;this.style.borderColor=&#039;rgba(255, 255, 255, 0.2)&#039;;\">\n    <!-- Google-logo (SVG) -->\n    <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n      <path d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\" fill=\"#4285F4\"\/>\n      <path d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\" fill=\"#34A853\"\/>\n      <path d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.06H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.94l2.85-2.22.81-.63z\" fill=\"#FBBC05\"\/>\n      <path d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.06l3.66 2.84c.87-2.6 3.3-4.52 6.16-4.52z\" fill=\"#EA4335\"\/>\n    <\/svg>\n    Lis\u00e4\u00e4 suosikiksi Googlessa\n  <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Verkkosivut asiakkaitasi varten Mainostoimisto jossa puhelimeen vastataan Digiverkosto on mainostoimisto kasvuhaluisille yrityksille ymp\u00e4ri Suomen. Digiverkoston toimistot sijaitsevat Veteliss\u00e4 ja Jokioisilla. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-7378","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/digiverkosto.fi\/en\/wp-json\/wp\/v2\/pages\/7378","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digiverkosto.fi\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/digiverkosto.fi\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/digiverkosto.fi\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/digiverkosto.fi\/en\/wp-json\/wp\/v2\/comments?post=7378"}],"version-history":[{"count":23,"href":"https:\/\/digiverkosto.fi\/en\/wp-json\/wp\/v2\/pages\/7378\/revisions"}],"predecessor-version":[{"id":7556,"href":"https:\/\/digiverkosto.fi\/en\/wp-json\/wp\/v2\/pages\/7378\/revisions\/7556"}],"wp:attachment":[{"href":"https:\/\/digiverkosto.fi\/en\/wp-json\/wp\/v2\/media?parent=7378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}