.elementor-6797 .elementor-element.elementor-element-0e80ebb > .elementor-container > .elementor-column > .elementor-widget-wrap{align-content:center;align-items:center;}.elementor-6797 .elementor-element.elementor-element-0e80ebb:not(.elementor-motion-effects-element-type-background), .elementor-6797 .elementor-element.elementor-element-0e80ebb > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#000000;background-image:url("https://alpit.io/wp-content/uploads/Alpit18-scaled-1.webp");background-position:0px 0px;background-size:cover;}.elementor-6797 .elementor-element.elementor-element-0e80ebb > .elementor-background-overlay{background-color:#0D131C;opacity:0.9;transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-6797 .elementor-element.elementor-element-0e80ebb > .elementor-container{max-width:800px;min-height:80vh;}.elementor-6797 .elementor-element.elementor-element-0e80ebb{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;}.elementor-6797 .elementor-element.elementor-element-d1f1a42.elementor-column > .elementor-widget-wrap{justify-content:center;}.elementor-6797 .elementor-element.elementor-element-d1f1a42 > .elementor-element-populated{margin:0100px 0px 0px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );font-style:var( --e-global-typography-text-font-style );text-decoration:var( --e-global-typography-text-text-decoration );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-6797 .elementor-element.elementor-element-bbd7ecc{text-align:center;font-family:"Arial", Sans-serif;font-size:13px;font-weight:700;text-transform:uppercase;font-style:normal;line-height:2em;color:#FFFFFF;}.elementor-6797 .elementor-element.elementor-element-ef853ee{text-align:center;font-family:"Arial", Sans-serif;font-size:18px;font-weight:400;text-transform:none;font-style:normal;line-height:2em;color:#FFFFFF;}.elementor-widget-icon-list .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-icon-list .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );font-style:var( --e-global-typography-text-font-style );text-decoration:var( --e-global-typography-text-text-decoration );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-icon-list .elementor-icon-list-text{color:var( --e-global-color-secondary );}.elementor-6797 .elementor-element.elementor-element-ef3f4e1 .elementor-icon-list-icon i{color:var( --e-global-color-secondary );transition:color 0.3s;}.elementor-6797 .elementor-element.elementor-element-ef3f4e1 .elementor-icon-list-icon svg{fill:var( --e-global-color-secondary );transition:fill 0.3s;}.elementor-6797 .elementor-element.elementor-element-ef3f4e1{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-6797 .elementor-element.elementor-element-ef3f4e1 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-6797 .elementor-element.elementor-element-ef3f4e1 .elementor-icon-list-item > a{font-family:"Arial", Sans-serif;font-size:14px;font-weight:300;text-transform:uppercase;font-style:normal;text-decoration:none;line-height:23px;letter-spacing:0px;}.elementor-6797 .elementor-element.elementor-element-ef3f4e1 .elementor-icon-list-text{color:var( --e-global-color-3d761f9 );transition:color 0.3s;}.elementor-6797 .elementor-element.elementor-element-e6dd3ec{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );font-style:var( --e-global-typography-accent-font-style );text-decoration:var( --e-global-typography-accent-text-decoration );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-6797 .elementor-element.elementor-element-0adcde2 .elementor-button{background-color:var( --e-global-color-primary );font-family:"Poppins", Sans-serif;font-size:16px;font-weight:normal;text-transform:uppercase;font-style:normal;text-decoration:none;line-height:1em;letter-spacing:0px;fill:var( --e-global-color-3d761f9 );color:var( --e-global-color-3d761f9 );}.elementor-6797 .elementor-element.elementor-element-2734be8{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:50px;--padding-bottom:50px;--padding-left:50px;--padding-right:50px;}.elementor-6797 .elementor-element.elementor-element-9cd8d85{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6797 .elementor-element.elementor-element-b7ec4f1{text-align:start;font-family:"Arial", Sans-serif;font-size:18px;font-weight:400;text-transform:none;font-style:normal;line-height:2em;color:var( --e-global-color-primary );}.elementor-6797 .elementor-element.elementor-element-fd2d84d .elementor-button{background-color:var( --e-global-color-4d53b9a );font-family:"Arial", Sans-serif;font-size:20px;font-weight:500;text-transform:none;line-height:1em;letter-spacing:0px;fill:var( --e-global-color-primary );color:var( --e-global-color-primary );}.elementor-6797 .elementor-element.elementor-element-fd2d84d:hover{--e-transform-translateX:20px;}.elementor-6797 .elementor-element.elementor-element-fd2d84d{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) -25px;}.elementor-6797 .elementor-element.elementor-element-fd2d84d .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-6797 .elementor-element.elementor-element-fd2d84d .elementor-button .elementor-button-content-wrapper{gap:12px;}.elementor-6797 .elementor-element.elementor-element-3c1c303{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:100px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6797 .elementor-element.elementor-element-3c1c303:not(.elementor-motion-effects-element-type-background), .elementor-6797 .elementor-element.elementor-element-3c1c303 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-primary );}@media(min-width:768px){.elementor-6797 .elementor-element.elementor-element-2734be8{--content-width:800px;}}@media(max-width:1024px){.elementor-6797 .elementor-element.elementor-element-0e80ebb > .elementor-container{min-height:800px;}.elementor-6797 .elementor-element.elementor-element-0e80ebb:not(.elementor-motion-effects-element-type-background), .elementor-6797 .elementor-element.elementor-element-0e80ebb > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:0px 0px;}.elementor-6797 .elementor-element.elementor-element-0e80ebb{padding:0px 25px 0px 25px;}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-6797 .elementor-element.elementor-element-ef3f4e1 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-6797 .elementor-element.elementor-element-ef3f4e1 .elementor-icon-list-item > a{line-height:1.6em;}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-6797 .elementor-element.elementor-element-0adcde2 .elementor-button{font-size:15px;}.elementor-6797 .elementor-element.elementor-element-fd2d84d .elementor-button{font-size:15px;}}@media(max-width:767px){.elementor-6797 .elementor-element.elementor-element-0e80ebb > .elementor-container{min-height:612px;}.elementor-6797 .elementor-element.elementor-element-0e80ebb:not(.elementor-motion-effects-element-type-background), .elementor-6797 .elementor-element.elementor-element-0e80ebb > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:0px 0px;}.elementor-6797 .elementor-element.elementor-element-0e80ebb{padding:0px 20px 0px 20px;}.elementor-6797 .elementor-element.elementor-element-d1f1a42 > .elementor-element-populated{margin:0250px 0px 0px 0px;--e-column-margin-right:0px;--e-column-margin-left:0px;}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-6797 .elementor-element.elementor-element-bbd7ecc{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6797 .elementor-element.elementor-element-ef853ee{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-6797 .elementor-element.elementor-element-ef3f4e1 .elementor-icon-list-item > .elementor-icon-list-text, .elementor-6797 .elementor-element.elementor-element-ef3f4e1 .elementor-icon-list-item > a{font-size:13px;line-height:1.5em;}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-6797 .elementor-element.elementor-element-0adcde2 .elementor-button{font-size:14px;}.elementor-6797 .elementor-element.elementor-element-2734be8{--padding-top:25px;--padding-bottom:25px;--padding-left:25px;--padding-right:25px;}.elementor-6797 .elementor-element.elementor-element-b7ec4f1{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-6797 .elementor-element.elementor-element-fd2d84d .elementor-button{font-size:14px;}}@media(min-width:1920px){.elementor-6797 .elementor-element.elementor-element-0e80ebb:not(.elementor-motion-effects-element-type-background), .elementor-6797 .elementor-element.elementor-element-0e80ebb > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:0px -46px;}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text, .elementor-widget-icon-list .elementor-icon-list-item > a{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-6797 .elementor-element.elementor-element-2734be8{--content-width:800px;}}/* Start custom CSS for section, class: .elementor-element-0e80ebb */.elementor-6797 .elementor-element.elementor-element-0e80ebb .bghero {
      background-image: linear-gradient(rgba(54,155,226,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(54,155,226,0.03) 1px, transparent 1px); background-size: 60px 60px;
    
    }/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-3c1c303 */.elementor-6797 .elementor-element.elementor-element-3c1c303 {
    word-spacing: 2px!important;
}/* End custom CSS */
/* Start custom CSS *//* ==========================================================================
   ALPIT NORDIC | Kyberturvapalveluiden laskuri, tyylit
   Graafinen ohjeisto 2021: Normalidad Wide, sininen #1962A7, navy #002554,
   vaalea #EFEFEF, turkoosi #47BFBC korostuksena, kulmat suorat.

   Laskurin HTML-widgetissa on vain rakenne ja skripti, kaikki tyylit ovat
   tassa. Valitsimissa on kolminkertainen luokka, jotta tyylit voittavat
   teeman ja Elementorin oletukset seka widgetin mahdollisen vanhan
   tyylilohkon. Nappeja ja kenttia tyylittavat saannot kirjoitetaan
   muodossa button.luokka / input.luokka, muuten nollaussaanto voittaa ne.

   OSIOJARJESTYS: 1 riskiarvio, 2 yrityksesi luvut + nykytilanne,
   3 palvelut + vaikutus vierekkain. Nykytilanne riippuu vain liukureista,
   tulospaneeli vain palveluvalinnoista.
   ========================================================================== */
.ancalc-app.ancalc-app.ancalc-app {
  --ancalc-bg: #EFEFEF;
  --ancalc-surface: #FFFFFF;
  --ancalc-panel-2: #EFEFEF;
  --ancalc-fg: #002554;
  --ancalc-muted: #4F6584;
  --ancalc-line: rgba(0, 37, 84, .14);
  --ancalc-accent: #1962A7;
  --ancalc-accent-fg: #FFFFFF;
  --ancalc-cta: #47BFBC;
  --ancalc-risk: #C0392B;
  --ancalc-warn: #E08A1E;
  --ancalc-blue: #1D86C3;
  --ancalc-neutral: rgba(0, 37, 84, .25);
  --ancalc-tint: rgba(25, 98, 167, .07);
  /* Vanhan widgetin tyylilohkon muuttujat brandiarvoihin, jos lohko on viela sivulla. */
  --ancalc-panel: #FFFFFF;
  --ancalc-r: 0px;
  --ancalc-r-sm: 0px;
  --ancalc-elev: none;
  --ancalc-ring: 0 0 0 2px #1962A7;
  --ancalc-grad: linear-gradient(0deg, #1962A7, #1962A7);
  --ancalc-t5: 26px;

  --ancalc-t1: 13px;
  --ancalc-t2: 15px;
  --ancalc-t3: 18px;
  --ancalc-t4: 26px;
  --ancalc-hero: clamp(38px, 6vw, 58px);

  /* Cookiebotin kupla on kiinni vasemmassa alanurkassa ja sen z-index on
     korkeampi kuin alapalkin, joten sita ei voi peittaa. Palkki jattaa
     sille tilaa taman verran. Saada jos kupla vaihtaa kokoa. */
  --ancalc-fab-clear: 76px;

  display: block;
  isolation: isolate;
  direction: ltr;
  text-align: left;
  background-color: var(--ancalc-bg);
  background-image: none;
  color: var(--ancalc-fg);
  font-family: 'normalidad-wide', Arial, sans-serif;
  font-size: var(--ancalc-t2);
  font-weight: 400;
  font-style: normal;
  line-height: 1.55;
  letter-spacing: normal;
  word-spacing: normal;
  text-transform: none;
  text-shadow: none;
  -webkit-font-smoothing: antialiased;
}

/* --- Nollaus -------------------------------------------------------------- */
.ancalc-app.ancalc-app.ancalc-app *,
.ancalc-app.ancalc-app.ancalc-app *::before,
.ancalc-app.ancalc-app.ancalc-app *::after {
  box-sizing: border-box; margin: 0; padding: 0; border: 0; background: none;
  font: inherit; color: inherit; text-align: inherit; text-transform: none;
  text-decoration: none; text-shadow: none; letter-spacing: normal; word-spacing: normal;
  list-style: none; box-shadow: none; border-radius: 0; float: none;
  max-width: none; min-width: 0; min-height: 0; transition: none; animation: none;
}
.ancalc-app.ancalc-app.ancalc-app button,
.ancalc-app.ancalc-app.ancalc-app input {
  -webkit-appearance: none; appearance: none; width: auto; height: auto;
  outline: 0; cursor: auto; vertical-align: baseline;
  /* Osa teemoista pakottaa napeille fontin !important-maareella. */
  font-family: inherit !important;
}
.ancalc-app.ancalc-app.ancalc-app button { cursor: pointer; display: inline-block; }
.ancalc-app.ancalc-app.ancalc-app button:hover,
.ancalc-app.ancalc-app.ancalc-app button:focus { box-shadow: none; transform: none; }
.ancalc-app.ancalc-app.ancalc-app :focus-visible { outline: 2px solid var(--ancalc-accent); outline-offset: 3px; }
.ancalc-app.ancalc-app.ancalc-app [hidden] { display: none !important; }
/* Normalidad Widen taulukkonumerot levittavat myos pilkun ja valilyonnin ("11 , 90"). */
.ancalc-app.ancalc-app.ancalc-app [class*="ancalc-"] { font-variant-numeric: normal; }

/* --- Rakenne: sama sisaltoleveys ja valjyys kuin sivun muissa osioissa ---- */
.ancalc-app.ancalc-app.ancalc-app .ancalc-shell { max-width: 1575px; margin-left: auto; margin-right: auto; padding: 100px 50px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-step + .ancalc-step { margin-top: 76px; }
/* Sivuston kiintea navi peittaa osion ylareunan vieritettaessa. */
.ancalc-app.ancalc-app.ancalc-app [data-ancalc-block] { scroll-margin-top: 120px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-step-body { padding-left: 0; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-step-head { display: block; margin-bottom: 30px; max-width: 62ch; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-eyebrow {
  display: block; margin-bottom: 14px; font-size: 12px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase; color: var(--ancalc-accent);
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-h2 {
  font-size: 26px; font-weight: 700; line-height: 1.25; text-transform: uppercase; letter-spacing: .04em;
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-lead { display: block; margin-top: 14px; color: var(--ancalc-muted); font-size: var(--ancalc-t2); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-panel {
  background-color: var(--ancalc-surface); border: 1px solid var(--ancalc-line); padding: 28px;
}
@media (max-width: 1024px) {
  .ancalc-app.ancalc-app.ancalc-app .ancalc-shell { padding: 80px 30px; }
}
@media (max-width: 760px) {
  .ancalc-app.ancalc-app.ancalc-app .ancalc-shell { padding: 60px 20px; }
  .ancalc-app.ancalc-app.ancalc-app .ancalc-step + .ancalc-step { margin-top: 54px; }
  .ancalc-app.ancalc-app.ancalc-app [data-ancalc-block] { scroll-margin-top: 80px; }
  .ancalc-app.ancalc-app.ancalc-app .ancalc-h2 { font-size: 19px; }
  .ancalc-app.ancalc-app.ancalc-app .ancalc-panel { padding: 20px; }
}

/* --- Palvelut ja vaikutus vierekkain (vaihe 3) ----------------------------
   Palvelusarake vasemmalle, tulospaneeli oikealle. Paneeli seuraa mukana
   kun kortteja selataan, jolloin valinnan vaikutus nakyy koko ajan.
   HUOM: position: sticky lakkaa toimimasta jos jokin esivanhempi on
   overflow: hidden. Elementorin kontti voi olla. */
.ancalc-app.ancalc-app.ancalc-app .ancalc-split { display: grid; grid-template-columns: 1fr; gap: 20px; }
/* Ruudukko sarakkeen sisalla: min-width estaa saraketta levittamasta
   ruudukkoa yli oman tilansa. Nollaus asettaa taman jo, tassa se on
   nakyvissa jottei sita poisteta vahingossa. */
.ancalc-app.ancalc-app.ancalc-app .ancalc-split-main { min-width: 0; }
@media (min-width: 1100px) {
  .ancalc-app.ancalc-app.ancalc-app .ancalc-split {
    grid-template-columns: minmax(0, 1.75fr) minmax(360px, 1fr);
    align-items: start;
  }
  /* Palvelusarake kapenee, joten kortit kahteen sarakkeeseen kolmen sijaan.
     Kolme olisi tassa leveydessa noin 280 px eli liian ahdas. */
  .ancalc-app.ancalc-app.ancalc-app .ancalc-split .ancalc-grid { grid-template-columns: 1fr 1fr; }
  .ancalc-app.ancalc-app.ancalc-app .ancalc-split-side {
    position: sticky; top: 120px;
    max-height: calc(100vh - 140px); overflow-y: auto;
  }
}

/* --- Palvelukortit -------------------------------------------------------- */
.ancalc-app.ancalc-app.ancalc-app .ancalc-grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 640px)  { .ancalc-app.ancalc-app.ancalc-app .ancalc-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .ancalc-app.ancalc-app.ancalc-app .ancalc-grid { grid-template-columns: repeat(3, 1fr); } }

.ancalc-app.ancalc-app.ancalc-app .ancalc-card {
  position: relative; display: flex; flex-direction: column;
  background-color: var(--ancalc-surface); border: 1px solid transparent;
  padding: 32px 28px 28px;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-card:hover { transform: translateY(-3px); border-color: rgba(25, 98, 167, .35); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-card[data-ancalc-on="1"] { border-color: transparent; background-color: var(--ancalc-surface); box-shadow: 0 0 0 2px var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-badge {
  position: absolute; top: 14px; right: 14px; padding: 5px 9px; border-radius: 0; background-image: none;
  background-color: var(--ancalc-cta); color: var(--ancalc-fg);
  font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-cat {
  display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--ancalc-accent);
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-name { display: block; margin-top: 8px; font-size: 17px; font-weight: 700; line-height: 1.3; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-tagline { display: block; margin-top: 12px; font-size: var(--ancalc-t1); line-height: 1.55; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-desc { display: block; margin-top: 12px; font-size: var(--ancalc-t1); line-height: 1.6; color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app button.ancalc-feat-toggle {
  display: inline-block; margin-top: 16px; padding-bottom: 2px; font-size: var(--ancalc-t1);
  color: var(--ancalc-accent); border-bottom: 1px solid rgba(25, 98, 167, .35);
}
.ancalc-app.ancalc-app.ancalc-app button.ancalc-feat-toggle:hover { border-bottom-color: var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-feats { margin-top: 14px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-feat { display: flex; gap: 9px; font-size: var(--ancalc-t1); line-height: 1.5; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-feat + .ancalc-feat { margin-top: 7px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-feat-tick { flex: 0 0 auto; color: var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-card-foot { margin-top: auto; padding-top: 22px; }

/* Hinta */
.ancalc-app.ancalc-app.ancalc-app .ancalc-price-row { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.ancalc-app.ancalc-app.ancalc-app button.ancalc-price-btn { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; width: 100%; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-price { font-size: var(--ancalc-t4); font-weight: 700; line-height: 1; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-unit { flex: 1 1 auto; min-width: 0; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-edit {
  flex: 0 0 auto; margin-left: auto; padding-bottom: 1px; font-size: var(--ancalc-t1);
  color: var(--ancalc-muted); border-bottom: 1px solid var(--ancalc-line);
}
.ancalc-app.ancalc-app.ancalc-app button.ancalc-price-btn:hover .ancalc-edit { color: var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app input.ancalc-price-input {
  width: 110px; padding: 2px 8px; font-size: var(--ancalc-t4);
  background-color: var(--ancalc-panel-2); border: 1px solid var(--ancalc-accent);
}

/* Lukumaara */
.ancalc-app.ancalc-app.ancalc-app .ancalc-qty-block { margin-top: 18px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-qty-label { display: block; margin-bottom: 8px; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-stepper { display: flex; align-items: stretch; gap: 0; width: 148px; }
.ancalc-app.ancalc-app.ancalc-app button.ancalc-step-btn {
  width: 38px; flex: 0 0 38px; font-size: var(--ancalc-t3); line-height: 1; text-align: center;
  border: 1px solid var(--ancalc-line); background-color: var(--ancalc-panel-2);
  transition: border-color .18s ease, color .18s ease;
}
.ancalc-app.ancalc-app.ancalc-app button.ancalc-step-btn:hover { border-color: var(--ancalc-accent); color: var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app input.ancalc-qty-input {
  flex: 1 1 auto; width: 100%; padding: 8px 4px; text-align: center; font-size: var(--ancalc-t2);
  border-top: 1px solid var(--ancalc-line); border-bottom: 1px solid var(--ancalc-line);
  background-color: var(--ancalc-panel-2); -moz-appearance: textfield;
}
.ancalc-app.ancalc-app.ancalc-app input.ancalc-qty-input:focus { border-color: var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-sum { display: block; margin-top: 14px; font-size: var(--ancalc-t2); color: var(--ancalc-accent); }

/* Lisaa-nappi */
.ancalc-app.ancalc-app.ancalc-app button.ancalc-add {
  display: block; width: 100%; margin-top: 18px; padding: 13px 16px;
  text-align: center; font-size: var(--ancalc-t2); font-weight: 700;
  border: 1px solid var(--ancalc-line); background-color: var(--ancalc-panel-2);
  transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}
.ancalc-app.ancalc-app.ancalc-app button.ancalc-add:hover { border-color: var(--ancalc-accent); background-color: var(--ancalc-tint); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-card[data-ancalc-on="1"] button.ancalc-add {
  background-color: var(--ancalc-accent); background-image: none; border-color: transparent; color: var(--ancalc-accent-fg);
}
/* Lukumaaralla 0 palvelua ei voi lisata tarjoukseen. */
.ancalc-app.ancalc-app.ancalc-app button.ancalc-add[disabled],
.ancalc-app.ancalc-app.ancalc-app button.ancalc-add[disabled]:hover {
  cursor: not-allowed; color: var(--ancalc-muted); font-weight: 400;
  border-color: var(--ancalc-line); background-color: var(--ancalc-panel-2);
}

/* Yhteissumma ruudukon alla */
.ancalc-app.ancalc-app.ancalc-app .ancalc-cart-total { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--ancalc-line); text-align: right; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-cart-total-label { display: block; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-cart-total-month { display: block; margin-top: 4px; font-size: var(--ancalc-t4); font-weight: 700; line-height: 1.2; color: var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-cart-total-year { display: block; margin-top: 2px; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }

/* --- Riskiarvio ----------------------------------------------------------- */
.ancalc-app.ancalc-app.ancalc-app .ancalc-narrow { max-width: 720px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-q-top { display: flex; align-items: center; gap: 16px; margin-bottom: 24px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-q-count { font-size: var(--ancalc-t1); color: var(--ancalc-muted); white-space: nowrap; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-track { flex: 1 1 auto; height: 3px; border-radius: 999px; background-color: var(--ancalc-line); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-track-fill { display: block; height: 100%; border-radius: 999px; background-color: var(--ancalc-accent); background-image: none; transition: width .4s ease; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-q { display: block; margin-bottom: 10px; max-width: 54ch; font-size: var(--ancalc-t3); font-weight: 700; line-height: 1.35; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-q-help { display: block; margin-bottom: 24px; max-width: 64ch; font-size: var(--ancalc-t1); line-height: 1.6; color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app button.ancalc-opt {
  display: block; width: 100%; padding: 16px 18px; font-size: var(--ancalc-t2);
  background-color: var(--ancalc-panel-2); border-left: 3px solid transparent;
  transition: border-color .18s ease, background-color .18s ease;
}
.ancalc-app.ancalc-app.ancalc-app button.ancalc-opt + .ancalc-opt { margin-top: 8px; }
.ancalc-app.ancalc-app.ancalc-app button.ancalc-opt:hover { border-left-color: var(--ancalc-accent); background-color: var(--ancalc-tint); }

.ancalc-app.ancalc-app.ancalc-app .ancalc-level { display: block; font-size: var(--ancalc-t4); font-weight: 700; line-height: 1.2; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-meter { height: 8px; max-width: 420px; margin: 18px 0 16px; overflow: hidden; border-radius: 999px; background-color: var(--ancalc-panel-2); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-meter-fill { display: block; height: 100%; border-radius: 999px; transition: width .8s ease; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-verdict { display: block; max-width: 58ch; color: var(--ancalc-muted); }

.ancalc-app.ancalc-app.ancalc-app button.ancalc-toggle {
  display: inline-block; margin-top: 22px; padding-bottom: 2px; font-size: var(--ancalc-t1);
  color: var(--ancalc-muted); border-bottom: 1px solid var(--ancalc-line);
}
.ancalc-app.ancalc-app.ancalc-app button.ancalc-toggle:hover { color: var(--ancalc-fg); border-bottom-color: var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-caret {
  display: inline-block; width: 0; height: 0; margin-left: 8px;
  border-left: 4px solid transparent; border-right: 4px solid transparent;
  border-top: 5px solid currentColor; transition: transform .2s ease;
}
.ancalc-app.ancalc-app.ancalc-app button.ancalc-toggle[aria-expanded="true"] .ancalc-caret { transform: rotate(180deg); }

/* Vastauksen laatu varillisena reunaviivana. */
.ancalc-app.ancalc-app.ancalc-app .ancalc-details { margin-top: 18px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-detail { padding: 12px 14px; background-color: var(--ancalc-panel-2); border-left: 3px solid var(--ancalc-neutral); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-detail + .ancalc-detail { margin-top: 6px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-detail-ok { border-left-color: var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-detail-part { border-left-color: var(--ancalc-warn); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-detail-gap { border-left-color: var(--ancalc-risk); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-detail-q { display: block; font-size: var(--ancalc-t1); line-height: 1.45; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-detail-help { display: block; margin-top: 5px; font-size: var(--ancalc-t1); line-height: 1.55; color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-detail-a { display: block; margin-top: 5px; font-size: var(--ancalc-t1); color: var(--ancalc-accent); }

/* --- Painikkeet: CTA turkoosina navy-tekstilla kuten sivuston muut CTA:t -- */
.ancalc-app.ancalc-app.ancalc-app .ancalc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 28px; }
.ancalc-app.ancalc-app.ancalc-app button.ancalc-btn {
  display: inline-block; padding: 14px 26px; font-size: var(--ancalc-t2);
  background-color: var(--ancalc-cta); background-image: none; color: var(--ancalc-fg);
  font-weight: 400; box-shadow: none; transition: background-color .18s ease, color .18s ease;
}
.ancalc-app.ancalc-app.ancalc-app button.ancalc-btn:hover { background-color: var(--ancalc-fg); color: #FFFFFF; transform: none; filter: none; box-shadow: none; }
.ancalc-app.ancalc-app.ancalc-app button.ancalc-btn[disabled] { opacity: .55; cursor: default; }
.ancalc-app.ancalc-app.ancalc-app button.ancalc-btn-plain {
  padding-bottom: 2px; font-size: var(--ancalc-t2); color: var(--ancalc-muted); border-bottom: 1px solid var(--ancalc-line);
}
.ancalc-app.ancalc-app.ancalc-app button.ancalc-btn-plain:hover { color: var(--ancalc-fg); }

/* --- Yrityksesi luvut ja nykytilanne (vaihe 2) ------------------------------
   Harmaa ylareuna = syotteet, punainen = nykytila, turkoosi = lopputulos.
   Lopputulos on navy-paneeli turkoosein luvuin, ja se on nyt vaiheessa 3
   palveluiden vieressa. */
.ancalc-app.ancalc-app.ancalc-app .ancalc-calc { display: grid; grid-template-columns: 1fr; gap: 20px; max-width: 1240px; }
@media (min-width: 900px) {
  .ancalc-app.ancalc-app.ancalc-app .ancalc-calc { grid-template-columns: 1.15fr 1fr; align-items: start; }
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-pane {
  position: relative; overflow: hidden; padding: 28px 26px 26px;
  background-color: var(--ancalc-surface); border: 1px solid var(--ancalc-line);
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-pane::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background-color: var(--ancalc-line);
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-pane-risk::before { background-color: var(--ancalc-risk); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-pane-good {
  --ancalc-fg: #FFFFFF;
  --ancalc-muted: rgba(255, 255, 255, .78);
  --ancalc-line: rgba(255, 255, 255, .22);
  --ancalc-accent: #47BFBC;
  --ancalc-neutral: rgba(255, 255, 255, .35);
  background-color: #002554; color: #FFFFFF;
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-pane-good::before { background-color: var(--ancalc-accent); background-image: none; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-pane-title { display: block; margin-bottom: 22px; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-pane-foot { margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--ancalc-line); }
@media (max-width: 760px) { .ancalc-app.ancalc-app.ancalc-app .ancalc-pane { padding: 20px; } }

/* Liukurit */
.ancalc-app.ancalc-app.ancalc-app .ancalc-field { display: block; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-field + .ancalc-field { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--ancalc-line); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-field-label {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
  margin-bottom: 12px; font-size: var(--ancalc-t2);
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-value { white-space: nowrap; color: var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-note { display: block; margin-top: 10px; max-width: 48ch; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-scale { display: flex; justify-content: space-between; margin-top: 8px; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app input.ancalc-range { display: block; width: 100%; height: 2px; cursor: pointer; background-color: var(--ancalc-line); }
.ancalc-app.ancalc-app.ancalc-app input.ancalc-range::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none; width: 16px; height: 16px; border: 0;
  border-radius: 50%; background: var(--ancalc-accent); cursor: pointer;
}
.ancalc-app.ancalc-app.ancalc-app input.ancalc-range::-moz-range-thumb {
  width: 16px; height: 16px; border: 0; border-radius: 50%; background: var(--ancalc-accent); cursor: pointer;
}

/* Nykytilanne */
.ancalc-app.ancalc-app.ancalc-app .ancalc-now-item + .ancalc-now-item { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--ancalc-line); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-now-label { display: block; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-now-val { display: block; margin-top: 3px; font-size: var(--ancalc-t3); line-height: 1.25; color: var(--ancalc-risk); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-now-sub { display: block; margin-top: 3px; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }

/* Lopputulos */
.ancalc-app.ancalc-app.ancalc-app .ancalc-hero-label { display: block; font-size: var(--ancalc-t2); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-hero {
  display: block; margin: 10px 0 8px; font-size: var(--ancalc-hero); font-weight: 700; line-height: 1.04; letter-spacing: 0;
  color: var(--ancalc-accent); background-image: none; -webkit-text-fill-color: currentColor;
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-hero-sub { display: block; font-size: var(--ancalc-t2); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-bars { margin-top: 30px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-bar + .ancalc-bar { margin-top: 16px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-bar-head {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
  margin-bottom: 7px; font-size: var(--ancalc-t1);
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-bar-name { color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-bar-val { font-size: var(--ancalc-t2); white-space: nowrap; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-bar-track { height: 12px; overflow: hidden; border-radius: 999px; background-color: rgba(255, 255, 255, .12); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-bar-fill { display: block; height: 100%; border-radius: 999px; transition: width .55s ease; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-fill-risk { background-color: var(--ancalc-risk); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-fill-improved { background-color: var(--ancalc-accent); background-image: none; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-fill-cost { background-color: var(--ancalc-neutral); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-ratio {
  display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap;
  margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--ancalc-line);
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-ratio-num { font-size: var(--ancalc-t4); font-weight: 700; line-height: 1; color: var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-ratio-label { flex: 1 1 220px; font-size: var(--ancalc-t2); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-fine,
.ancalc-app.ancalc-app.ancalc-app .ancalc-disclaimer { display: block; max-width: 54ch; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-fine:not(:empty) { margin-bottom: 8px; }

/* --- Tarjousnakyma ja alapalkki ---------------------------------------------
   Skripti siirtaa nama body-elementin alle, jotta Elementorin transform-
   tyylit eivat riko position: fixed -asemointia. */
.ancalc-app.ancalc-app.ancalc-app.ancalc-portal {
  position: fixed; top: 0; right: 0; bottom: 0; left: 0;
  background: none; z-index: 99990; pointer-events: none;
}
.ancalc-app.ancalc-app.ancalc-app.ancalc-portal > * { pointer-events: auto; }

/* Alapalkki: luvut ja Tarjous-nappi samassa. Luvut ilmestyvat vasta kun
   jotain on valittu, nappi on aina nakyvissa. Asemointi on palkilla, ei
   napilla, joten nappi on position: static. */
.ancalc-app.ancalc-app.ancalc-app .ancalc-sumbar {
  position: fixed; right: 24px; bottom: 24px;
  display: flex; align-items: stretch; gap: 0;
  background-color: var(--ancalc-surface);
  border: 1px solid var(--ancalc-line);
  box-shadow: 0 2px 18px rgba(0, 37, 84, .14);
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-sumbar-figs { display: flex; align-items: center; gap: 28px; padding: 0 24px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-sumbar-item { display: block; white-space: nowrap; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-sumbar-label {
  display: block; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--ancalc-muted);
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-sumbar-val {
  display: block; margin-top: 2px; font-size: var(--ancalc-t2); font-weight: 700; color: var(--ancalc-fg);
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-sumbar-val-good { color: var(--ancalc-accent); }

.ancalc-app.ancalc-app.ancalc-app button.ancalc-cart {
  position: static; align-self: stretch;
  display: inline-flex; align-items: center; gap: 10px; padding: 18px 26px;
  font-size: var(--ancalc-t2); font-weight: 400; border-radius: 0; box-shadow: none;
  background-color: var(--ancalc-cta); background-image: none; color: var(--ancalc-fg);
  transition: background-color .18s ease, color .18s ease;
}
.ancalc-app.ancalc-app.ancalc-app button.ancalc-cart:hover { background-color: var(--ancalc-fg); color: #FFFFFF; transform: none; filter: none; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-cart-count {
  display: inline-block; min-width: 22px; padding: 1px 6px; text-align: center;
  border-radius: 999px; background-color: var(--ancalc-fg); color: #FFFFFF; font-size: var(--ancalc-t1);
}
.ancalc-app.ancalc-app.ancalc-app button.ancalc-cart:hover .ancalc-cart-count { background-color: #FFFFFF; color: var(--ancalc-fg); }

@media (max-width: 860px) {
  /* Mobiilissa palkki kiinni alareunaan koko leveydelta, jolloin summa ja
     riskin pienentyminen nakyvat myos palveluita selatessa. */
  .ancalc-app.ancalc-app.ancalc-app .ancalc-sumbar {
    right: 0; bottom: 0; left: 0;
    border-left: 0; border-right: 0; border-bottom: 0;
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  /* Luvut allekkain, ei vierekkain. Vierekkain ne eivat mahdu puhelimen
     leveyteen kun vasemmalta menee tilaa evastekuplalle ja oikealta napille.
     Aiemmin riskiluku piilotettiin alle 420 pikselin, mika osui juuri
     tavallisiin puhelimiin. */
  .ancalc-app.ancalc-app.ancalc-app .ancalc-sumbar-figs {
    flex: 1 1 auto; flex-direction: column; align-items: flex-start;
    justify-content: center; gap: 1px; min-width: 0;
    padding: 9px 12px 9px calc(var(--ancalc-fab-clear) + 4px);
  }
  .ancalc-app.ancalc-app.ancalc-app .ancalc-sumbar-item {
    display: flex; align-items: baseline; gap: 7px;
    min-width: 0; max-width: 100%;
  }
  .ancalc-app.ancalc-app.ancalc-app .ancalc-sumbar-label {
    flex: 0 0 auto; font-size: 10px; letter-spacing: .04em;
  }
  .ancalc-app.ancalc-app.ancalc-app .ancalc-sumbar-val {
    margin-top: 0; font-size: var(--ancalc-t1);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }
  /* Nappi pysyy oikeassa reunassa myos tyhjana. Ilman margin-left: auto
     se olisi vasemmalla kunnes luvut ilmestyvat ja tyontavat sen oikealle,
     eli nappi hyppaisi paikasta toiseen ensimmaisen valinnan kohdalla. */
  .ancalc-app.ancalc-app.ancalc-app button.ancalc-cart {
    flex: 0 0 auto; margin-left: auto; padding: 16px 18px;
  }
  /* Palkki peittaisi sivun lopun, joten varataan sille tilaa. */
  .ancalc-app.ancalc-app.ancalc-app .ancalc-shell { padding-bottom: 150px; }
}

.ancalc-app.ancalc-app.ancalc-app .ancalc-backdrop {
  position: fixed; top: 0; right: 0; bottom: 0; left: 0;
  background-color: rgba(0, 37, 84, .55); opacity: 0; transition: opacity .25s ease;
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-backdrop[data-ancalc-open="1"] { opacity: 1; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-drawer {
  position: fixed; top: 0; right: 0; bottom: 0; width: 100%; max-width: 520px;
  background-color: #FFFFFF; background-image: none; border-left: 1px solid var(--ancalc-line);
  overflow-y: auto; -webkit-overflow-scrolling: touch;
  transform: translateX(100%); transition: transform .3s ease;
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-drawer[data-ancalc-open="1"] { transform: translateX(0); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-drawer-inner { padding: 26px 24px 40px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-drawer-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 28px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-drawer-title { font-size: 20px; font-weight: 700; line-height: 1; text-transform: uppercase; letter-spacing: .04em; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-close { padding: 6px 8px; font-size: var(--ancalc-t3); line-height: 1; color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-close:hover { color: var(--ancalc-fg); }

.ancalc-app.ancalc-app.ancalc-app .ancalc-empty { padding: 48px 0; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-empty-title { display: block; font-size: var(--ancalc-t3); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-empty-sub { display: block; margin-top: 8px; max-width: 34ch; font-size: var(--ancalc-t2); color: var(--ancalc-muted); }

.ancalc-app.ancalc-app.ancalc-app .ancalc-line-item {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
  padding: 16px 0; border-bottom: 1px solid var(--ancalc-line);
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-li-name { display: block; font-size: var(--ancalc-t2); line-height: 1.35; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-li-detail { display: block; margin-top: 4px; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-li-month { display: block; margin-top: 6px; font-size: var(--ancalc-t2); color: var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-li-year { display: block; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-remove {
  flex: 0 0 auto; padding-bottom: 1px; font-size: var(--ancalc-t1);
  color: var(--ancalc-muted); border-bottom: 1px solid var(--ancalc-line);
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-remove:hover { color: var(--ancalc-risk); border-bottom-color: var(--ancalc-risk); }

.ancalc-app.ancalc-app.ancalc-app .ancalc-totals { margin-top: 24px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-total-row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 10px 0; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-total-row + .ancalc-total-row { border-top: 1px solid var(--ancalc-line); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-total-label { font-size: var(--ancalc-t2); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-total-val { font-size: var(--ancalc-t2); font-weight: 700; white-space: nowrap; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-total-val-accent { color: var(--ancalc-accent); }

.ancalc-app.ancalc-app.ancalc-app .ancalc-box {
  margin-top: 26px; padding: 22px; background-color: var(--ancalc-surface); border: 1px solid var(--ancalc-line);
}
.ancalc-app.ancalc-app.ancalc-app .ancalc-box-accent { background-color: var(--ancalc-tint); border-color: rgba(25, 98, 167, .28); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-box-title { display: block; margin-bottom: 14px; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-box-hero { display: block; font-size: var(--ancalc-t4); font-weight: 700; line-height: 1; color: var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-metric { margin-top: 16px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-metric-label { display: block; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-metric-val { display: block; margin-top: 2px; font-size: var(--ancalc-t3); color: var(--ancalc-accent); }

.ancalc-app.ancalc-app.ancalc-app .ancalc-form { margin-top: 30px; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-form-title { display: block; margin-bottom: 16px; font-size: var(--ancalc-t3); }
.ancalc-app.ancalc-app.ancalc-app input.ancalc-input {
  display: block; width: 100%; padding: 13px 14px; font-size: var(--ancalc-t2);
  background-color: var(--ancalc-panel-2); border: 1px solid var(--ancalc-line);
  transition: border-color .18s ease;
}
.ancalc-app.ancalc-app.ancalc-app input.ancalc-input + .ancalc-input { margin-top: 12px; }
.ancalc-app.ancalc-app.ancalc-app input.ancalc-input:focus { border-color: var(--ancalc-accent); }
.ancalc-app.ancalc-app.ancalc-app input.ancalc-input::placeholder { color: var(--ancalc-muted); opacity: 1; }
.ancalc-app.ancalc-app.ancalc-app button.ancalc-send { display: block; width: 100%; margin-top: 18px; text-align: center; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-status { display: block; margin-top: 14px; font-size: var(--ancalc-t1); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-status-err { color: var(--ancalc-risk); }
.ancalc-app.ancalc-app.ancalc-app button.ancalc-clear { display: block; width: 100%; margin-top: 28px; text-align: center; font-size: var(--ancalc-t1); color: var(--ancalc-muted); }
.ancalc-app.ancalc-app.ancalc-app button.ancalc-clear:hover { color: var(--ancalc-risk); }

.ancalc-app.ancalc-app.ancalc-app .ancalc-sent { padding: 40px 0; }
.ancalc-app.ancalc-app.ancalc-app .ancalc-sent-title { display: block; font-size: var(--ancalc-t3); }
.ancalc-app.ancalc-app.ancalc-app .ancalc-sent-sub { display: block; margin-top: 8px; font-size: var(--ancalc-t2); color: var(--ancalc-muted); }

/* --- Liikkeen vahentaminen ------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .ancalc-app.ancalc-app.ancalc-app .ancalc-track-fill,
  .ancalc-app.ancalc-app.ancalc-app .ancalc-meter-fill,
  .ancalc-app.ancalc-app.ancalc-app .ancalc-bar-fill,
  .ancalc-app.ancalc-app.ancalc-app .ancalc-drawer,
  .ancalc-app.ancalc-app.ancalc-app .ancalc-backdrop,
  .ancalc-app.ancalc-app.ancalc-app button.ancalc-opt,
  .ancalc-app.ancalc-app.ancalc-app .ancalc-card,
  .ancalc-app.ancalc-app.ancalc-app button.ancalc-add,
  .ancalc-app.ancalc-app.ancalc-app button.ancalc-btn,
  .ancalc-app.ancalc-app.ancalc-app button.ancalc-cart,
  .ancalc-app.ancalc-app.ancalc-app input.ancalc-input { transition: none; }
  .ancalc-app.ancalc-app.ancalc-app .ancalc-card:hover { transform: none; }
}

/* ==========================================================================
   SIVUKOHTAISET SAANNOT (vain tama sivu)
   ========================================================================== */
/* Vanhat hero- ja johdantolohkot (vanha Elementor) piilotettu uuden ilmeen tielta.
   Kun ne on poistettu editorissa, taman saannon voi poistaa. */
.elementor-6797 .elementor-element-0e80ebb,
.elementor-6797 .elementor-element-2734be8 { display: none !important; }
/* Laskurin ymparilla oleva kontti (#laskuriin): navy-tausta ja 100 px ylavali pois. */
.elementor-6797 .elementor-element.elementor-element-3c1c303 { background-color: #EFEFEF !important; --padding-top: 0px !important; }
.elementor-6797 .elementor-element.elementor-element-3c1c303 > .e-con-inner { padding-top: 0 !important; }/* End custom CSS */