/* KarigasKeittiöt – sivuston tyylit */

:root{
  --kk-ink:#0B1016;
  --kk-ink-soft:#4A525A;
  --kk-red:#C70031;
  --kk-red-2:#E74251;
  --kk-paper:#FFFFFF;
  --kk-sand:#F5F3F1;
  --kk-line:rgba(11,16,22,.11);
  --kk-radius:3px;
}

/* ---------- perusta ---------- */
body{ color:var(--kk-ink); background:var(--kk-paper); -webkit-font-smoothing:antialiased; }
body, .elementor-widget-text-editor{ font-family:"Nunito",system-ui,-apple-system,"Segoe UI",sans-serif; font-size:1.0625rem; line-height:1.74; }
body .elementor-widget-heading .elementor-heading-title{
  font-family:"Abel","Nunito",system-ui,sans-serif;
  color:var(--kk-ink);
  letter-spacing:.004em;
  line-height:1.13;
  font-weight:600;
}
body h1.elementor-heading-title{ font-size:clamp(2.05rem,4.4vw,3.4rem); }
body h2.elementor-heading-title{ font-size:clamp(1.62rem,2.9vw,2.3rem); }
body h3.elementor-heading-title{ font-size:clamp(1.14rem,1.7vw,1.34rem); }
p{ margin:0 0 1em; }
p:last-child{ margin-bottom:0; }
a{ color:var(--kk-red); }
img{ height:auto; }

/* ---------- napit ---------- */
body .elementor-widget-button .elementor-button{
  font-family:"Abel","Nunito",sans-serif;
  background-color:var(--kk-red);
  color:#fff;
  border-radius:var(--kk-radius);
  padding:15px 30px;
  font-size:1.06rem;
  font-weight:600;
  letter-spacing:.03em;
  line-height:1.2;
  border:1px solid var(--kk-red);
  transition:background-color .18s ease, border-color .18s ease;
  white-space:nowrap;
}
body .elementor-widget-button .elementor-button:hover,
body .elementor-widget-button .elementor-button:focus-visible{
  background-color:#A30028; border-color:#A30028; color:#fff;
}
body .elementor-widget-button.kk-btn-ghost .elementor-button{
  background-color:transparent; border-color:rgba(255,255,255,.6); color:#fff;
}
body .elementor-widget-button.kk-btn-ghost .elementor-button:hover{
  background-color:#fff; border-color:#fff; color:var(--kk-ink);
}
body .elementor-widget-button.kk-btn-outline .elementor-button{
  background-color:transparent; border-color:var(--kk-ink); color:var(--kk-ink);
}
body .elementor-widget-button.kk-btn-outline .elementor-button:hover{
  background-color:var(--kk-ink); border-color:var(--kk-ink); color:#fff;
}

/* ---------- yläpalkki ja header ---------- */
.kk-topbar{ background:#070C11; }
.kk-topbar__inner{
  display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px 26px;
  font-size:.93rem; color:rgba(255,255,255,.8);
}
.kk-topbar__inner a{ color:rgba(255,255,255,.8); text-decoration:none; white-space:nowrap; }
.kk-topbar__inner a:hover{ color:#fff; }
.kk-topbar i{ color:var(--kk-red-2); margin-right:2px; }
@media (max-width:600px){
  .kk-topbar__inner{ justify-content:center; gap:4px 18px; font-size:.86rem; }
  .kk-topbar__mail{ display:none; }
}

.kk-header{ background:var(--kk-ink); position:relative; z-index:50; }
.kk-header .elementor-widget-image img{ width:210px; max-width:56vw; display:block; }
.kk-header .elementor-nav-menu .elementor-item{
  font-family:"Abel","Nunito",sans-serif;
  color:#fff; font-size:1.05rem; font-weight:600; letter-spacing:.05em;
  padding:10px 14px;
}
.kk-header .elementor-nav-menu--main .elementor-item:hover,
.kk-header .elementor-nav-menu--main .elementor-item.elementor-item-active{ color:var(--kk-red-2); }
.kk-header .elementor-menu-toggle{ color:#fff; background:transparent; min-width:46px; min-height:46px; }
.kk-header .elementor-menu-toggle svg{ fill:#fff; width:26px; height:26px; }
.kk-header .elementor-nav-menu--dropdown a,
.kk-header .elementor-nav-menu--dropdown a:hover{ background:transparent; }

@media (max-width:1024px){
  .kk-header .elementor-nav-menu--dropdown{
    position:absolute; top:calc(100% + 14px); right:0; left:auto;
    width:min(330px,88vw); background:var(--kk-ink);
    border:1px solid rgba(255,255,255,.16); border-radius:var(--kk-radius);
    box-shadow:0 22px 54px rgba(0,0,0,.45); overflow:hidden;
  }
  .kk-header .elementor-nav-menu--dropdown .elementor-item{ padding:14px 18px; }
  .kk-header .elementor-nav-menu--dropdown .elementor-sub-item{ padding-left:32px; font-size:.98rem; }
}
@media (min-width:1025px) and (max-width:1199px){
  .kk-header .elementor-nav-menu .elementor-item{ padding:10px 9px !important; font-size:.97rem !important; }
}

/* ---------- hero ---------- */
.kk-hero, .kk-pagehero{ position:relative; }
.kk-hero::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(7,12,17,.9) 0%, rgba(7,12,17,.72) 42%, rgba(7,12,17,.42) 100%);
}
.kk-pagehero::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(7,12,17,.9) 0%, rgba(7,12,17,.7) 55%, rgba(7,12,17,.5) 100%);
}
.kk-hero > .e-con-inner, .kk-pagehero > .e-con-inner{ position:relative; z-index:2; }
.kk-hero .elementor-heading-title, .kk-pagehero .elementor-heading-title{ color:#fff; }
.kk-hero .elementor-widget-text-editor, .kk-pagehero .elementor-widget-text-editor{ color:rgba(255,255,255,.9); }
.e-con.kk-hero__inner{ max-width:720px; width:auto; }
.kk-eyebrow .elementor-heading-title{
  font-family:"Abel","Nunito",sans-serif; font-size:.95rem; font-weight:600;
  letter-spacing:.26em; text-transform:uppercase; color:var(--kk-red-2);
}
.kk-hero__lead{ font-size:1.14rem; max-width:56ch; }
.e-con.kk-hero__actions{ display:flex; flex-direction:row; flex-wrap:wrap; gap:14px; width:auto; }
.kk-trust{
  display:flex; flex-wrap:wrap; gap:9px 30px; margin-top:10px;
  font-family:"Abel","Nunito",sans-serif; letter-spacing:.05em;
  color:rgba(255,255,255,.9); font-size:1rem;
}
.kk-trust span{ display:inline-flex; align-items:center; gap:9px; }
.kk-trust span::before{ content:""; width:6px; height:6px; background:var(--kk-red-2); border-radius:50%; flex:none; }

/* ---------- osiot ---------- */
.kk-sand{ background:var(--kk-sand); }
.kk-dark{ background:var(--kk-ink); }
.kk-dark .elementor-heading-title{ color:#fff; }
.kk-dark .elementor-widget-text-editor{ color:rgba(255,255,255,.86); }
.e-con.kk-narrow{ max-width:780px; width:auto; margin-left:auto; margin-right:auto; }
.e-con.kk-sectionhead{ max-width:66ch; width:auto; }
.kk-lead .elementor-widget-text-editor{ font-size:1.13rem; }
.kk-center{ text-align:center; }
.kk-center .kk-brands{ justify-content:center; }
.kk-rounded img{ border-radius:var(--kk-radius); display:block; width:100%; }

/* ---------- kortit ---------- */
.e-con.kk-cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 26px; width:100%; }
.e-con.kk-cards-2{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:46px; align-items:center; }
.e-con.kk-cards-4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:1024px){ .e-con.kk-cards, .e-con.kk-cards-4{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:680px){ .e-con.kk-cards, .e-con.kk-cards-2, .e-con.kk-cards-4{ grid-template-columns:1fr; gap:30px; } }

.e-con.kk-card{
  width:auto; background:transparent; display:flex; flex-direction:column; gap:0;
  padding:0; border-radius:0;
}
.e-con.kk-card__media{ width:auto; overflow:hidden; border-radius:var(--kk-radius); }
.kk-card__media .elementor-widget-container{ line-height:0; }
.kk-card__img img{
  width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
  transition:transform .45s cubic-bezier(.2,.6,.2,1);
}
.e-con.kk-card:hover .kk-card__img img{ transform:scale(1.04); }
.e-con.kk-card__body{ width:auto; padding:16px 0 0; display:flex; flex-direction:column; gap:7px; flex:1 1 auto; }
.kk-card__title .elementor-heading-title{ transition:color .18s ease; }
.e-con.kk-card:hover .kk-card__title .elementor-heading-title{ color:var(--kk-red); }
.kk-card__text{ color:var(--kk-ink-soft); font-size:1rem; line-height:1.6; }
.kk-card__linkwrap{ margin-top:auto; padding-top:8px; }
.kk-card__link{
  font-family:"Abel","Nunito",sans-serif; font-weight:600; letter-spacing:.06em;
  color:var(--kk-red); display:inline-flex; align-items:center; gap:9px; font-size:.99rem;
}
.kk-card__link::after{ content:""; width:20px; height:1px; background:var(--kk-red); transition:width .22s ease; }
.e-con.kk-card:hover .kk-card__link::after{ width:34px; }

/* ---------- vaiheet ---------- */
.e-con.kk-steps{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px 26px; width:100%; }
@media (max-width:1024px){ .e-con.kk-steps{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .e-con.kk-steps{ grid-template-columns:1fr; } }
.e-con.kk-step{ width:auto; border-top:2px solid var(--kk-red); padding-top:17px; gap:5px; }
.kk-step__n .elementor-heading-title{
  font-family:"Abel","Nunito",sans-serif; font-size:.92rem; letter-spacing:.2em;
  color:var(--kk-red); text-transform:uppercase;
}
.kk-step .kk-card__text{ font-size:1rem; }

/* ---------- valikoima ---------- */
.kk-range{ display:flex; flex-wrap:wrap; gap:10px; }
.kk-range a{
  display:inline-flex; align-items:center; gap:9px; text-decoration:none;
  border:1px solid var(--kk-line); border-radius:var(--kk-radius);
  padding:10px 16px; color:var(--kk-ink); background:#fff;
  font-family:"Abel","Nunito",sans-serif; font-size:1.02rem; letter-spacing:.02em;
  transition:border-color .18s ease, color .18s ease;
}
.kk-range a:hover{ border-color:var(--kk-red); color:var(--kk-red); }
.kk-range a::after{ content:"↗"; font-size:.82em; opacity:.5; }

/* ---------- kumppanit ---------- */
.kk-brands{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:22px 46px; }
.kk-brands img{ max-height:56px; width:auto; filter:grayscale(1); opacity:.6; transition:filter .2s ease, opacity .2s ease; }
.kk-brands a:hover img{ filter:none; opacity:1; }

/* ---------- arvostelut ---------- */
.kk-rating{ display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; margin-bottom:22px; }
.kk-rating__score{ font-family:"Abel","Nunito",sans-serif; font-size:2.4rem; line-height:1; color:#fff; }
.kk-rating__meta{ opacity:.8; }
.kk-review{ max-width:60ch; }
.kk-review__stars{ color:#F5A623; letter-spacing:.16em; font-size:1.05rem; }
.kk-review__text{ margin:10px 0 10px; font-size:1.16rem; }
.kk-review__name{ font-family:"Abel","Nunito",sans-serif; letter-spacing:.06em; opacity:.75; font-size:.98rem; }

/* ---------- galleria ---------- */
.kk-gallery .gallery-item img{ border-radius:var(--kk-radius); aspect-ratio:4/3; object-fit:cover; width:100%; display:block; }
.kk-gallery .gallery-item{ transition:opacity .18s ease; }
.kk-gallery .gallery-item:hover{ opacity:.88; }
.kk-strip{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
@media (max-width:700px){ .kk-strip{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.kk-strip img{ width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:var(--kk-radius); display:block; transition:opacity .18s ease; }
.kk-strip a:hover img{ opacity:.86; }

/* ---------- UKK ja lue lisää ---------- */
.kk-faq__item{ border-top:1px solid var(--kk-line); }
.kk-faq__item:last-child{ border-bottom:1px solid var(--kk-line); }
.kk-faq__item > summary{
  list-style:none; cursor:pointer; padding:19px 44px 19px 0; position:relative;
  font-family:"Abel","Nunito",sans-serif; font-size:1.18rem; line-height:1.35; font-weight:600;
}
.kk-faq__item > summary::-webkit-details-marker{ display:none; }
.kk-faq__item > summary::after{
  content:""; position:absolute; right:8px; top:50%; width:13px; height:13px;
  border-right:2px solid var(--kk-red); border-bottom:2px solid var(--kk-red);
  transform:translateY(-70%) rotate(45deg); transition:transform .2s ease;
}
.kk-faq__item[open] > summary::after{ transform:translateY(-30%) rotate(225deg); }
.kk-faq__item > summary:hover{ color:var(--kk-red); }
.kk-faq__a{ padding:0 44px 20px 0; color:var(--kk-ink-soft); max-width:76ch; }

.kk-more{ border-top:1px solid var(--kk-line); border-bottom:1px solid var(--kk-line); }
.kk-more > summary{
  list-style:none; cursor:pointer; padding:17px 0; position:relative;
  font-family:"Abel","Nunito",sans-serif; font-size:1.1rem; letter-spacing:.03em;
  color:var(--kk-red); font-weight:600;
}
.kk-more > summary::-webkit-details-marker{ display:none; }
.kk-more > summary::after{ content:" +"; }
.kk-more[open] > summary::after{ content:" –"; }
.kk-more .kk-prose{ padding-bottom:22px; }

/* ---------- yhteystiedot ---------- */
.e-con.kk-contact{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.02fr); gap:52px; width:100%; align-items:start; }
@media (max-width:900px){ .e-con.kk-contact{ grid-template-columns:1fr; gap:34px; } }
.e-con.kk-contact > .e-con{ width:auto; }
.kk-nap{ list-style:none; margin:0; padding:0; }
.kk-nap li{ padding:13px 0; border-bottom:1px solid var(--kk-line); display:flex; gap:16px; align-items:baseline; }
.kk-nap li:last-child{ border-bottom:0; }
.kk-nap .k{ font-family:"Abel","Nunito",sans-serif; letter-spacing:.07em; color:var(--kk-ink-soft); min-width:118px; flex:none; font-size:.98rem; }
.kk-nap a{ text-decoration:none; }
.kk-nap a:hover{ text-decoration:underline; }
.kk-companies{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
@media (max-width:560px){ .kk-companies{ grid-template-columns:1fr; } }
.kk-company b{ display:block; font-family:"Abel","Nunito",sans-serif; font-size:1.08rem; margin-bottom:5px; }
.kk-company span{ display:block; color:var(--kk-ink-soft); font-size:.99rem; }
.kk-map iframe{ border-radius:var(--kk-radius); display:block; }
.kk-map__link{ margin-top:8px; font-size:.95rem; }
.e-con.kk-formbox{ background:var(--kk-sand); border-radius:var(--kk-radius); padding:32px; width:auto; }
@media (max-width:560px){ .e-con.kk-formbox{ padding:22px 18px; } }

/* lomake */
.kk-formbox .elementor-field-group > label{
  font-family:"Abel","Nunito",sans-serif; letter-spacing:.05em; font-size:.97rem; margin-bottom:6px; color:var(--kk-ink);
}
.kk-formbox .elementor-field-textual{
  border:1px solid var(--kk-line); border-radius:var(--kk-radius); background:#fff;
  padding:13px 14px; font-size:1rem; color:var(--kk-ink); min-height:50px; width:100%;
}
.kk-formbox .elementor-field-textual:focus{ border-color:var(--kk-red); box-shadow:0 0 0 3px rgba(199,0,49,.13); outline:none; }
.kk-formbox textarea.elementor-field-textual{ min-height:140px; }
.kk-formbox .elementor-button[type="submit"]{
  background-color:var(--kk-red); color:#fff; border-radius:var(--kk-radius);
  font-family:"Abel","Nunito",sans-serif; font-size:1.06rem; letter-spacing:.04em; padding:15px 30px; border:0; width:100%;
}
.kk-formbox .elementor-button[type="submit"]:hover{ background-color:#A30028; }
.kk-formbox .elementor-message{ font-size:1rem; }

/* ---------- CTA ---------- */
.kk-cta{ background:var(--kk-ink); }
.kk-cta .elementor-heading-title{ color:#fff; }
.kk-cta .elementor-widget-text-editor{ color:rgba(255,255,255,.88); }
.kk-cta__phones{ display:flex; flex-wrap:wrap; gap:12px 30px; margin:6px 0 4px; }
.kk-cta__phones a{
  color:#fff; text-decoration:none; font-family:"Abel","Nunito",sans-serif;
  font-size:1.26rem; letter-spacing:.03em; display:inline-flex; align-items:center; gap:10px;
}
.kk-cta__phones a:hover{ color:var(--kk-red-2); }
.kk-cta__phones i{ color:var(--kk-red-2); font-size:.9em; }

/* ---------- footer ---------- */
.kk-footer{ background:var(--kk-ink); color:rgba(255,255,255,.78); }
.kk-footer .elementor-heading-title{ color:#fff; font-size:1.04rem; letter-spacing:.11em; text-transform:uppercase; }
.kk-footer .elementor-widget-text-editor{ color:rgba(255,255,255,.76); font-size:1rem; }
.kk-footer a{ color:rgba(255,255,255,.76); text-decoration:none; }
.kk-footer a:hover{ color:#fff; text-decoration:underline; }
.kk-footer .elementor-widget-image img{ width:200px; display:block; }
.e-con.kk-footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1.15fr; gap:40px; width:100%; align-items:start; }
@media (max-width:980px){ .e-con.kk-footer-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; } }
@media (max-width:560px){ .e-con.kk-footer-grid{ grid-template-columns:1fr; } }
.e-con.kk-footer-grid > .e-con{ width:auto; gap:12px; }
.kk-footer ul{ list-style:none; margin:0; padding:0; }
.kk-footer li{ margin:0 0 9px; font-size:1rem; }
.kk-footer__no{ margin-top:14px; color:rgba(255,255,255,.6); font-size:.96rem; line-height:1.6; }
.kk-footer .kk-areas{ display:flex; flex-wrap:wrap; gap:8px 18px; }
.kk-footer .kk-areas a{ font-size:.97rem; }
.kk-footer-bottom{ border-top:1px solid rgba(255,255,255,.13); }
.kk-footer-bottom .elementor-widget-text-editor{ font-size:.93rem; color:rgba(255,255,255,.6); }
.kk-social{ display:flex; gap:12px; }
.kk-social a{
  width:42px; height:42px; border:1px solid rgba(255,255,255,.24); border-radius:var(--kk-radius);
  display:inline-flex; align-items:center; justify-content:center; transition:background .18s ease, border-color .18s ease;
}
.kk-social a:hover{ background:#fff; border-color:#fff; }
.kk-social svg{ width:18px; height:18px; fill:rgba(255,255,255,.86); }
.kk-social a:hover svg{ fill:var(--kk-ink); }
.kk-consent{ display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; justify-content:flex-end; }
.kk-consent button, .kk-consent a{
  background:transparent; border:1px solid rgba(255,255,255,.24); color:rgba(255,255,255,.78);
  border-radius:var(--kk-radius); padding:8px 14px; font-size:.9rem; cursor:pointer; text-decoration:none;
  font-family:"Nunito",sans-serif; line-height:1.2;
}
.kk-consent button:hover, .kk-consent a:hover{ background:rgba(255,255,255,.1); color:#fff; text-decoration:none; }
@media (max-width:760px){ .kk-consent{ justify-content:flex-start; } }

/* ---------- sisältötyypit ---------- */
.kk-prose h2{ font-family:"Abel","Nunito",sans-serif; font-size:1.5rem; margin:1.6em 0 .45em; font-weight:600; }
.kk-prose h3{ font-family:"Abel","Nunito",sans-serif; font-size:1.2rem; margin:1.4em 0 .35em; font-weight:600; }
.kk-prose ul{ padding-left:1.15em; }
.kk-prose li{ margin:0 0 .45em; }
.kk-prose p{ max-width:76ch; }

.kk-siblings{ display:flex; flex-wrap:wrap; gap:10px; }
.kk-siblings a{
  text-decoration:none; border:1px solid var(--kk-line); border-radius:var(--kk-radius);
  padding:9px 16px; color:var(--kk-ink); font-family:"Abel","Nunito",sans-serif; font-size:1rem; background:#fff;
  transition:border-color .18s ease, color .18s ease;
}
.kk-siblings a:hover{ border-color:var(--kk-red); color:var(--kk-red); }
.kk-sand .kk-siblings a{ background:#fff; }

.kk-facts{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
@media (max-width:820px){ .kk-facts{ grid-template-columns:1fr; gap:18px; } }
.kk-fact{ border-left:2px solid var(--kk-red); padding:2px 0 2px 17px; }
.kk-fact b{ display:block; font-family:"Abel","Nunito",sans-serif; font-size:1.08rem; margin-bottom:4px; }
.kk-fact span{ color:var(--kk-ink-soft); font-size:.99rem; line-height:1.6; }

/* aluesivun palvelunostot */
.kk-arealinks{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
@media (max-width:900px){ .kk-arealinks{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .kk-arealinks{ grid-template-columns:1fr; } }
.kk-arealink{ text-decoration:none; color:var(--kk-ink); display:block; }
.kk-arealink img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--kk-radius); display:block; }
.kk-arealink b{ display:block; font-family:"Abel","Nunito",sans-serif; font-size:1.16rem; margin:13px 0 4px; }
.kk-arealink span{ color:var(--kk-ink-soft); font-size:.99rem; line-height:1.6; }
.kk-arealink:hover b{ color:var(--kk-red); }

/* saavutettavuus */
a:focus-visible, button:focus-visible, summary:focus-visible, .elementor-button:focus-visible{
  outline:3px solid var(--kk-red-2); outline-offset:2px;
}
@media (prefers-reduced-motion:reduce){
  *{ transition:none !important; animation:none !important; }
}

/* ---------- viimeistely ---------- */

/* Tummennus vahvemmaksi, jotta otsikko erottuu myös vaaleasta kuvasta */
.kk-hero::before{
  background:linear-gradient(100deg, rgba(6,10,15,.93) 0%, rgba(6,10,15,.8) 46%, rgba(6,10,15,.55) 100%);
}
.kk-pagehero::before{
  background:linear-gradient(100deg, rgba(6,10,15,.94) 0%, rgba(6,10,15,.84) 55%, rgba(6,10,15,.66) 100%);
}
@media (max-width:768px){
  .kk-hero::before, .kk-pagehero::before{
    background:linear-gradient(180deg, rgba(6,10,15,.86) 0%, rgba(6,10,15,.8) 60%, rgba(6,10,15,.92) 100%);
  }
}

/* Aluesivujen palvelunostot neljälle sarakkeelle */
.kk-arealinks{ grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:1100px){ .kk-arealinks{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .kk-arealinks{ grid-template-columns:1fr; } }

/* Sisältyy-listat */
.kk-list{ list-style:none; margin:0; padding:0; }
.kk-list li{
  position:relative; padding:11px 0 11px 30px; border-bottom:1px solid var(--kk-line);
  color:var(--kk-ink-soft);
}
.kk-list li:last-child{ border-bottom:0; }
.kk-list li::before{
  content:""; position:absolute; left:4px; top:19px; width:9px; height:9px;
  border-right:2px solid var(--kk-red); border-bottom:2px solid var(--kk-red);
  transform:rotate(45deg);
}

/* Kuvien lataus ei saa hyppäyttää asettelua */
.kk-card__img img, .kk-arealink img, .kk-strip img{ background:var(--kk-sand); }

/* ---------- korjaukset: otsikkovärit tummilla taustoilla ----------
   Sääntö "body .elementor-widget-heading .elementor-heading-title" on
   tarkempi kuin luokkakohtaiset säännöt, joten vaaleat otsikot pitää
   nostaa samalle tarkkuustasolle. */

body .kk-hero .elementor-widget-heading .elementor-heading-title,
body .kk-pagehero .elementor-widget-heading .elementor-heading-title,
body .kk-dark .elementor-widget-heading .elementor-heading-title,
body .kk-cta .elementor-widget-heading .elementor-heading-title,
body .kk-footer .elementor-widget-heading .elementor-heading-title{
  color:#fff;
}

body .kk-hero .kk-eyebrow .elementor-heading-title,
body .kk-pagehero .kk-eyebrow .elementor-heading-title{
  color:var(--kk-red-2);
}

body .kk-step .kk-step__n .elementor-heading-title{
  color:var(--kk-red);
}

body .kk-footer .elementor-widget-heading .elementor-heading-title{
  font-size:1.04rem; letter-spacing:.11em; text-transform:uppercase;
}

/* Heron leipäteksti ja linkit */
body .kk-hero .elementor-widget-text-editor,
body .kk-pagehero .elementor-widget-text-editor{ color:rgba(255,255,255,.92); }

/* ---------- korjaus: evästetaulukko ei saa levittää sivua ---------- */
.ds-blog-table-wrap{ max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.dsh-cookie-list__table{ width:100%; min-width:540px; border-collapse:collapse; font-size:.95rem; }
.dsh-cookie-list__table th,
.dsh-cookie-list__table td{ border:1px solid var(--kk-line); padding:9px 11px; text-align:left; vertical-align:top; }
.dsh-cookie-list__table th{ background:var(--kk-sand); font-weight:600; }
.dsh-cookie-list__table code{ font-size:.9em; word-break:break-word; }
.kk-prose table{ display:block; max-width:100%; overflow-x:auto; }

/* ---------- korjaus: klikkauskohteiden koko puhelimessa ---------- */
@media (max-width:1024px){
  .kk-topbar__inner a{ padding:9px 0; display:inline-flex; align-items:center; }
  .kk-footer li a,
  .kk-footer .kk-areas a{ display:inline-block; padding:9px 0; }
  .kk-siblings a{ padding:12px 16px; }
  .kk-social a{ width:46px; height:46px; }
  .kk-nap li{ padding:15px 0; }
  .kk-faq__item > summary{ padding:21px 44px 21px 0; }
}

/* ---------- korjaus: leveä evästetaulukko ei saa venyttää containeria ----------
   Elementorin container on flex-elementti, jonka oletus min-width on auto.
   Ilman min-width:0 -sääntöä leveä taulukko työntää koko sivun levenemään. */
.e-con.kk-narrow,
.e-con.kk-prose,
.kk-privacy .e-con,
.kk-privacy .elementor-widget,
.kk-privacy .elementor-widget-container{
  min-width:0;
  max-width:100%;
}
.e-con.kk-narrow{ max-width:780px; }
.kk-privacy .dsh-cookie-list,
.kk-privacy .ds-blog-table-wrap{
  min-width:0; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;
}
@media (max-width:600px){
  .dsh-cookie-list__table{ min-width:480px; font-size:.9rem; }
  .dsh-cookie-list__table th,
  .dsh-cookie-list__table td{ padding:8px 9px; }
}

/* ---------- korjaus: evästetaulukko mahtuu myös 360 px:n ruudulle ---------- */
@media (max-width:700px){
  .dsh-cookie-list__table{
    min-width:0; width:100%; table-layout:fixed; font-size:.85rem;
  }
  .dsh-cookie-list__table th,
  .dsh-cookie-list__table td{ padding:7px 8px; word-break:break-word; }
  .dsh-cookie-list__table code{ word-break:break-all; font-size:.85em; }
  .dsh-cookie-list__table th:first-child,
  .dsh-cookie-list__table td:first-child{ width:26%; }
  .dsh-cookie-list__table th:nth-child(2),
  .dsh-cookie-list__table td:nth-child(2){ width:30%; }
}

/* ---------- korjaus: kahden palstan rivit ----------
   kk-cards-2 määritteli vain sarakkeet, ei display:grid -arvoa, joten
   palstat menivät allekkain. */
.e-con.kk-cards-2{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:46px;
  width:100%;
  align-items:center;
}
.e-con.kk-cards-2 > .e-con{ width:auto; }
@media (max-width:900px){
  .e-con.kk-cards-2{ grid-template-columns:1fr; gap:32px; }
}

/* ---------- korjaus: tummien osioiden HTML-sisällön väri ----------
   HTML-widgetin teksti peri body-värin, jolloin arvostelut jäivät
   tummaksi tummalla taustalla. */
.kk-dark{ color:rgba(255,255,255,.86); }
.kk-cta{ color:rgba(255,255,255,.88); }
.kk-dark .elementor-widget-html,
.kk-cta .elementor-widget-html{ color:inherit; }
.kk-dark .kk-review__text,
.kk-dark .kk-rating__meta,
.kk-dark .kk-review__name{ color:rgba(255,255,255,.9); }
.kk-dark a, .kk-cta a{ color:#fff; }

/* =====================================================================
   Uudistus 12.10.2026: raikkaampi ilme ja konversio
   ===================================================================== */
:root{ --kk-radius:8px; --kk-radius-sm:6px; --kk-shadow:0 14px 40px rgba(11,16,22,.10); --kk-shadow-lg:0 26px 60px rgba(11,16,22,.18); }

/* Napit: pyöristys, korkeus ja nosto */
body .elementor-widget-button .elementor-button{ border-radius:var(--kk-radius-sm); padding:16px 28px; box-shadow:0 8px 22px rgba(199,0,49,.22); transition:background-color .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
body .elementor-widget-button .elementor-button:hover{ transform:translateY(-1px); box-shadow:0 12px 28px rgba(199,0,49,.3); }
body .elementor-widget-button.kk-btn-ghost .elementor-button,
body .elementor-widget-button.kk-btn-outline .elementor-button{ box-shadow:none; }
body .elementor-widget-button.kk-btn-ghost .elementor-button{ background:rgba(255,255,255,.08); backdrop-filter:blur(4px); }
body .elementor-widget-button.kk-btn-sm .elementor-button{ padding:11px 20px; font-size:1rem; box-shadow:none; }

/* Header: tarjousnappi ja alasvetovalikon kontrasti (palaverin 5.10. korjaus) */
.e-con.kk-header__row{ flex-wrap:nowrap; }
.e-con.kk-header__nav{ flex:1 1 auto; width:auto; }
.e-con.kk-header__cta{ flex:0 0 auto; width:auto; }
@media (max-width:767px){ .e-con.kk-header__cta{ display:none; } }
@media (min-width:1025px){
  .kk-header .elementor-nav-menu--main .sub-menu{
    background:var(--kk-ink); border:1px solid rgba(255,255,255,.14); border-radius:var(--kk-radius-sm);
    box-shadow:0 22px 54px rgba(0,0,0,.45); padding:6px 0; min-width:230px;
  }
  body .kk-header .elementor-nav-menu--main .sub-menu a.elementor-sub-item{
    color:rgba(255,255,255,.9); background:transparent; font-family:"Abel","Nunito",sans-serif;
    font-size:1rem; letter-spacing:.03em; padding:11px 20px; border-left:3px solid transparent;
  }
  body .kk-header .elementor-nav-menu--main .sub-menu a.elementor-sub-item:hover,
  body .kk-header .elementor-nav-menu--main .sub-menu a.elementor-sub-item:focus,
  body .kk-header .elementor-nav-menu--main .sub-menu a.elementor-sub-item.highlighted,
  body .kk-header .elementor-nav-menu--main .sub-menu a.elementor-sub-item.elementor-item-active{
    color:#fff; background:rgba(255,255,255,.1); border-left-color:var(--kk-red-2);
  }
}
@media (max-width:1024px){
  body .kk-header .elementor-nav-menu--dropdown a{ color:rgba(255,255,255,.92); }
  body .kk-header .elementor-nav-menu--dropdown a:hover,
  body .kk-header .elementor-nav-menu--dropdown a.highlighted,
  body .kk-header .elementor-nav-menu--dropdown a.elementor-item-active{ color:#fff; background:rgba(255,255,255,.1); }
}

/* Hero: kuva näkyviin, teksti erottuu vasemmalla */
.kk-hero::before{ background:linear-gradient(100deg, rgba(6,10,15,.92) 0%, rgba(6,10,15,.74) 44%, rgba(6,10,15,.28) 100%); }
.kk-pagehero::before{ background:linear-gradient(100deg, rgba(6,10,15,.92) 0%, rgba(6,10,15,.74) 50%, rgba(6,10,15,.4) 100%); }
@media (max-width:768px){
  .kk-hero::before, .kk-pagehero::before{ background:linear-gradient(180deg, rgba(6,10,15,.82) 0%, rgba(6,10,15,.74) 60%, rgba(6,10,15,.9) 100%); }
}
body .kk-hero h1.elementor-heading-title{ font-size:clamp(2.3rem,5vw,3.9rem); line-height:1.06; }
.kk-trust{ margin-top:18px; gap:10px 12px; font-size:.95rem; }
.kk-trust span{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:999px; padding:7px 14px; }
.kk-trust span::before{ display:none; }
.kk-trust span.kk-trust__rating{ gap:10px; }
.kk-stars{ position:relative; display:inline-block; width:5.4em; height:1em; line-height:1; font-size:.95em; }
.kk-stars::before, .kk-stars i::before{ content:"★★★★★"; position:absolute; left:0; top:0; letter-spacing:.08em; white-space:nowrap; }
.kk-stars::before{ color:rgba(255,255,255,.3); }
.kk-stars i{ position:absolute; left:0; top:0; height:100%; overflow:hidden; }
.kk-stars i::before{ color:#F5B301; }
.kk-stars--lg{ font-size:1.35em; }

/* Kortit: valkoinen pohja, kehys ja nosto */
.e-con.kk-card{ background:#fff; border:1px solid var(--kk-line); border-radius:var(--kk-radius); overflow:hidden; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.e-con.kk-card:hover{ transform:translateY(-4px); box-shadow:var(--kk-shadow); border-color:transparent; }
.e-con.kk-card__media{ border-radius:0; }
.e-con.kk-card__body{ padding:20px 22px 22px; }
.kk-card__img img, .kk-arealink img, .kk-strip img, .kk-gallery .gallery-item img, .kk-rounded img, .kk-map iframe{ border-radius:var(--kk-radius); }
.kk-card__img img{ border-radius:0; }

/* Vaiheet: isot numerot */
.e-con.kk-step{ border-top:0; background:#fff; border-radius:var(--kk-radius); padding:26px 24px; box-shadow:0 2px 0 var(--kk-red) inset; }
.kk-sand .e-con.kk-step{ background:#fff; }
body .kk-step .kk-step__n .elementor-heading-title{ font-size:.85rem; }

/* Myymälän tietolaatikko */
.kk-storeinfo{ list-style:none; margin:4px 0 6px; padding:18px 20px; background:var(--kk-sand); border-radius:var(--kk-radius); display:grid; gap:10px; }
.kk-storeinfo li{ display:flex; gap:12px; align-items:baseline; }
.kk-storeinfo i{ color:var(--kk-red); width:16px; text-align:center; flex:none; }
.kk-storeinfo a{ color:var(--kk-ink); text-decoration:none; font-weight:600; }
.kk-storeinfo a:hover{ color:var(--kk-red); }

/* Arvionauha */
.kk-ratingband{ display:flex; flex-wrap:wrap; align-items:center; gap:18px 38px; }
.kk-ratingband__score{ font-family:"Abel","Nunito",sans-serif; color:#fff; display:flex; align-items:baseline; gap:6px; }
.kk-ratingband__score b{ font-size:3.6rem; line-height:1; font-weight:600; }
.kk-ratingband__score span{ font-size:1.3rem; opacity:.7; }
.kk-ratingband__meta{ display:flex; flex-direction:column; gap:6px; color:rgba(255,255,255,.85); }
.kk-ratingband__quote{ margin:0 0 0 auto; padding:0 0 0 26px; border-left:2px solid var(--kk-red-2); max-width:44ch; }
.kk-ratingband__quote p{ font-size:1.25rem; color:#fff; margin:0 0 6px; font-family:"Abel","Nunito",sans-serif; }
.kk-ratingband__quote cite{ font-style:normal; font-size:.95rem; opacity:.7; }
body .kk-ratingband__title .elementor-heading-title{ font-size:.9rem; letter-spacing:.22em; text-transform:uppercase; color:var(--kk-red-2); margin-bottom:6px; }
@media (max-width:760px){ .kk-ratingband__quote{ margin:0; padding-left:18px; } }

/* Toimintakehote lomakkeella */
/* Elementorin taustojen laiska lataus pakottaa background-imagen tyhjäksi, joten väri erikseen. */
.kk-cta{ background-color:var(--kk-ink); background-image:radial-gradient(120% 140% at 0% 0%, #1a222c 0%, var(--kk-ink) 55%); }
.e-con.kk-cta__grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:56px; align-items:center; width:100%; }
@media (max-width:960px){ .e-con.kk-cta__grid{ grid-template-columns:1fr; gap:34px; } }
.e-con.kk-cta__grid > .e-con{ width:auto; }
.e-con.kk-cta__form{ background:#fff; border-radius:12px; padding:32px; box-shadow:var(--kk-shadow-lg); color:var(--kk-ink); }
@media (max-width:560px){ .e-con.kk-cta__form{ padding:24px 18px; } }
body .kk-cta .kk-cta__form .elementor-widget-heading .elementor-heading-title{ color:var(--kk-ink); }
body .kk-cta .kk-cta__form .elementor-widget-text-editor{ color:var(--kk-ink-soft); font-size:1rem; }
.kk-cta__form .elementor-field-group > label{ font-family:"Abel","Nunito",sans-serif; letter-spacing:.05em; font-size:.95rem; margin-bottom:5px; color:var(--kk-ink); }
.kk-cta__form .elementor-field-textual{ border:1px solid var(--kk-line); border-radius:var(--kk-radius-sm); background:#fff; padding:12px 14px; font-size:1rem; color:var(--kk-ink); min-height:48px; width:100%; }
.kk-cta__form .elementor-field-textual:focus{ border-color:var(--kk-red); box-shadow:0 0 0 3px rgba(199,0,49,.13); outline:none; }
.kk-cta__form textarea.elementor-field-textual{ min-height:92px; }
.kk-cta__form .elementor-button[type="submit"], .kk-formbox .elementor-button[type="submit"]{
  background-color:var(--kk-red); color:#fff; border-radius:var(--kk-radius-sm); font-family:"Abel","Nunito",sans-serif;
  font-size:1.08rem; letter-spacing:.04em; padding:16px 28px; border:0; width:100%; box-shadow:0 8px 22px rgba(199,0,49,.22);
}
.kk-cta__form .elementor-button[type="submit"]:hover{ background-color:#A30028; }
.kk-cta__form .elementor-message{ color:var(--kk-ink); }
.kk-benefits{ list-style:none; margin:4px 0 8px; padding:0; display:grid; gap:10px; }
.kk-benefits li{ position:relative; padding-left:32px; color:rgba(255,255,255,.92); }
.kk-benefits li::before{ content:""; position:absolute; left:0; top:4px; width:20px; height:20px; border-radius:50%; background:var(--kk-red); }
.kk-benefits li::after{ content:""; position:absolute; left:7px; top:8px; width:5px; height:9px; border-right:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(45deg); }
.kk-cta__phones{ margin-top:10px; gap:12px; }
.kk-cta__phones a{ border:1px solid rgba(255,255,255,.2); border-radius:var(--kk-radius-sm); padding:10px 16px; font-size:1.15rem; }
.kk-cta__phones a:hover{ border-color:#fff; color:#fff; }
.kk-cta__phones small{ font-family:"Nunito",sans-serif; font-size:.78rem; letter-spacing:.06em; opacity:.6; margin-left:4px; text-transform:uppercase; }
body .kk-cta .kk-eyebrow .elementor-heading-title{ color:var(--kk-red-2); }
#tarjouspyynto, #lomake{ scroll-margin-top:24px; }

/* Yhteystietosivun lomakelaatikko */
.e-con.kk-formbox{ border-radius:12px; padding:34px; }

/* Puhelimen alapalkki */
.kk-mobilebar{ display:none; }
@media (max-width:767px){
  .kk-mobilebar{
    display:grid; grid-template-columns:1fr 1.25fr; gap:8px; position:fixed; left:0; right:0; bottom:0; z-index:9990;
    padding:8px 10px calc(8px + env(safe-area-inset-bottom)); background:rgba(11,16,22,.96); box-shadow:0 -8px 24px rgba(0,0,0,.25);
  }
  .kk-mobilebar a{
    display:flex; align-items:center; justify-content:center; gap:9px; min-height:50px; border-radius:var(--kk-radius-sm);
    font-family:"Abel","Nunito",sans-serif; font-size:1.06rem; font-weight:600; letter-spacing:.04em; text-decoration:none;
  }
  .kk-footer .kk-mobilebar a{ color:#fff; text-decoration:none; }
  .kk-mobilebar__call{ border:1px solid rgba(255,255,255,.3); }
  .kk-mobilebar__quote{ background:var(--kk-red); }
  body{ padding-bottom:68px; }
}

/* Ikonit */
.kk-ico{ width:1em; height:1em; fill:currentColor; flex:none; display:inline-block; vertical-align:-.12em; }
.kk-topbar .kk-ico{ fill:var(--kk-red-2); margin-right:4px; }
.kk-cta__phones .kk-ico{ fill:var(--kk-red-2); font-size:.85em; }
.kk-storeinfo .kk-ico{ fill:var(--kk-red); width:16px; height:16px; position:relative; top:2px; }
.kk-mobilebar .kk-ico{ width:17px; height:17px; }

/* Header: logo, valikko ja nappi samalle riville */
.e-con.kk-header__brand{ flex:0 0 auto; width:auto; }
.e-con.kk-header__nav{ flex:1 1 auto; width:auto; min-width:0; align-items:flex-end; }
.kk-header .elementor-nav-menu--main .elementor-nav-menu{ flex-wrap:nowrap; justify-content:flex-end; }
.kk-header .elementor-nav-menu--main .elementor-item{ white-space:nowrap; }

/* Kielivalinta yläpalkissa */
.kk-lang{ display:inline-flex; align-items:center; gap:2px; margin-left:6px; padding-left:14px; border-left:1px solid rgba(255,255,255,.2); }
.kk-topbar__inner .kk-lang a{ padding:2px 7px; border-radius:4px; font-weight:700; letter-spacing:.06em; font-size:.85rem; color:rgba(255,255,255,.7); }
.kk-topbar__inner .kk-lang a.is-current{ background:rgba(255,255,255,.14); color:#fff; }
.kk-topbar__inner .kk-lang a:hover{ color:#fff; }
#trp-floater-ls, .trp-language-switcher-container.trp-floater-ls-names{ display:none !important; }
@media (max-width:600px){
  .kk-topbar__inner{ flex-wrap:nowrap; gap:4px 12px; font-size:.82rem; }
  .kk-lang{ margin-left:0; padding-left:10px; }
  .kk-topbar__inner .kk-lang a{ padding:2px 6px; }
}
