
:root{
  --rk-ink:#2D2F33;
  --rk-ink2:#45484E;
  --rk-stone:#A4A4A4;
  --rk-stone-dark:#6B6D72;
  --rk-text:#3C3E43;
  --rk-muted:#66686D;
  --rk-line:#DDDDDA;
  --rk-surface:#F2F2F0;
  --rk-black:#121314;
  --rk-serif:'EB Garamond',Georgia,'Times New Roman',serif;
  --rk-sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}

/* ---------- perusta ---------- */
body{ -webkit-font-smoothing:antialiased; color:var(--rk-text); background:#fff; }
.elementor-widget-heading .elementor-heading-title{ color:var(--rk-ink); font-family:var(--rk-serif); font-weight:500; letter-spacing:-0.005em; }
.elementor-widget-heading .elementor-heading-title a{ color:inherit; }
.elementor-widget-text-editor{ color:var(--rk-text); }
.elementor-widget-text-editor p{ margin:0 0 1em; }
.elementor-widget-text-editor p:last-child{ margin-bottom:0; }
.elementor-widget-text-editor a{ color:var(--rk-ink); text-decoration:underline; text-underline-offset:3px; }
.elementor-widget-text-editor a:hover{ color:#000; }
.rk-surface{ background:var(--rk-surface); }
.rk-lead{ font-size:19px; line-height:1.65; }
.rk-lead p{ color:var(--rk-ink); }
.e-con-inner > .elementor-widget-text-editor{ max-width:min(100%,72ch); }

/* ---------- napit ---------- */
.rk-btn .elementor-button{
  background:var(--rk-ink); color:#fff; border:1px solid var(--rk-ink);
  border-radius:4px; font-family:var(--rk-sans); font-weight:600; font-size:15.5px;
  padding:15px 26px; letter-spacing:0.005em;
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.rk-btn .elementor-button:hover,.rk-btn .elementor-button:focus{ background:#000; border-color:#000; color:#fff; }
.rk-btn .elementor-button .elementor-button-icon{ font-size:14px; }
.rk-btn .elementor-button .elementor-button-icon svg{ fill:currentColor; width:14px; }
.rk-btn-light .elementor-button{ background:#fff; color:var(--rk-ink); border-color:#fff; }
.rk-btn-light .elementor-button:hover,.rk-btn-light .elementor-button:focus{ background:var(--rk-surface); border-color:var(--rk-surface); color:#000; }
.rk-btn-ghost .elementor-button{ background:transparent; color:#fff; border-color:rgba(255,255,255,.6); }
.rk-btn-ghost .elementor-button:hover,.rk-btn-ghost .elementor-button:focus{ background:#fff; border-color:#fff; color:var(--rk-ink); }
.rk-btn-line .elementor-button{ background:transparent; color:var(--rk-ink); border-color:var(--rk-ink); }
.rk-btn-line .elementor-button:hover,.rk-btn-line .elementor-button:focus{ background:var(--rk-ink); color:#fff; }
.rk-btn-sm .elementor-button{ padding:11px 18px; font-size:14.5px; }
.rk-btn-text .elementor-button{
  background:transparent; border:0; padding:0; border-radius:0; color:var(--rk-ink);
  font-weight:600; font-size:15px; box-shadow:inset 0 -1px 0 0 currentColor;
}
.rk-btn-text .elementor-button:hover{ background:transparent; color:#000; }
.rk-btns{ --width:auto; }
.rk-btns .elementor-widget-button{ width:auto; flex:0 0 auto; }
.e-con.rk-btns{ margin-top:12px; }

/* ---------- pienotsikko ---------- */
.rk-eyebrow{ font-family:var(--rk-sans); font-size:13px; font-weight:600; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--rk-stone-dark); }
.rk-eyebrow p{ margin:0; }
.rk-dark .rk-eyebrow, .rk-hero .rk-eyebrow{ color:#C9C9C7; }

/* ---------- ylätunniste ---------- */
header.elementor-location-header{ position:sticky; top:0; z-index:99; }
.rk-header{ background:#fff; border-bottom:1px solid var(--rk-line); }
.rk-header-row{ --width:100%; flex-wrap:nowrap !important; }
.rk-logo{ flex:0 0 auto; width:auto; }
.rk-logo img{ height:46px; width:auto; max-width:none; display:block; }
.rk-header .elementor-widget-nav-menu{ flex:1 1 auto; min-width:0; }
.rk-header .elementor-nav-menu--main .elementor-nav-menu{ justify-content:flex-end; }
.rk-nav .elementor-nav-menu--main .elementor-item{
  font-family:var(--rk-sans); font-weight:500; font-size:15.5px; color:var(--rk-ink); padding:12px 14px;
}
.rk-nav .elementor-nav-menu--main .elementor-item:hover,
.rk-nav .elementor-nav-menu--main .elementor-item:focus{ color:#000; }
.rk-nav .elementor-nav-menu--main .elementor-item.elementor-item-active{ color:#000; box-shadow:inset 0 -2px 0 0 var(--rk-ink); }
.rk-header-cta{ flex:0 0 auto; width:auto; white-space:nowrap; }
@media (min-width:1025px) and (max-width:1199px){
  .rk-nav .elementor-nav-menu--main .elementor-item{ font-size:14.5px; padding:12px 9px; }
  .rk-logo img{ height:40px; }
}

/* mobiilivalikko koko headerin levyiseksi */
@media (max-width:1024px){
  .elementor-location-header > .e-con, .elementor-location-header .e-con,
  .elementor-location-header .e-con-inner{ position:static; }
  .rk-header{ position:relative !important; }
  .rk-header-row{ justify-content:space-between; align-items:center; }
  .rk-header .elementor-widget-nav-menu{ position:static !important; flex:0 0 auto; width:auto; order:3; }
  .rk-header .elementor-widget-nav-menu > .elementor-widget-container{ position:static; }
  .rk-header .elementor-menu-toggle{ margin:0 !important; background:transparent !important; min-width:46px; min-height:46px; }
  .rk-header .elementor-menu-toggle i, .rk-header .elementor-menu-toggle svg{ color:var(--rk-ink); fill:var(--rk-ink); }
  .rk-header .elementor-nav-menu--dropdown{
    position:absolute !important; top:100% !important; left:0 !important; right:0 !important;
    width:100% !important; max-width:100% !important; background:#fff;
    box-shadow:0 14px 28px rgba(0,0,0,.14); max-height:calc(100vh - 80px); overflow-y:auto;
  }
  .rk-header .elementor-nav-menu--dropdown .elementor-item{
    background:#fff !important; color:var(--rk-ink) !important; font-family:var(--rk-sans);
    font-size:16px; padding:15px 22px; border-bottom:1px solid var(--rk-line);
  }
  .rk-header .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
  .rk-header .elementor-nav-menu--dropdown .elementor-item:hover{ background:var(--rk-surface) !important; }
  .rk-header-cta{ order:2; margin-left:auto; }
  .rk-logo img{ height:38px; }
}
@media (max-width:520px){
  .rk-header-cta .elementor-button-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .rk-header-cta .elementor-button{ padding:11px 13px; }
  .rk-header-cta .elementor-button-icon{ margin:0 !important; }
  .rk-logo img{ height:34px; }
}

/* ---------- hero ---------- */
.rk-hero-h1 .elementor-heading-title{ color:#fff; font-size:60px; line-height:1.06; max-width:780px; }
.rk-hero-sub{ max-width:640px !important; }
.rk-hero-sub, .rk-hero-sub p{ color:rgba(255,255,255,.9); font-size:19px; line-height:1.6; }
.rk-phero-h1 .elementor-heading-title{ color:#fff; font-size:52px; line-height:1.08; max-width:860px; }
.rk-phero-sub{ max-width:660px !important; }
.rk-phero-sub, .rk-phero-sub p{ color:rgba(255,255,255,.9); font-size:18px; line-height:1.6; }
@media (max-width:1024px){
  .rk-hero-h1 .elementor-heading-title{ font-size:46px; }
  .rk-phero-h1 .elementor-heading-title{ font-size:42px; }
}
@media (max-width:767px){
  .rk-hero-h1 .elementor-heading-title{ font-size:36px; }
  .rk-phero-h1 .elementor-heading-title{ font-size:33px; }
  .rk-hero-sub, .rk-hero-sub p, .rk-phero-sub, .rk-phero-sub p{ font-size:16.5px; }
}
.rk-legal-hero{ background:var(--rk-ink); }

/* ---------- tarjouskaista ---------- */
.rk-offer-band{ background:var(--rk-ink); }
.rk-offer-text, .rk-offer-text p{ color:#fff; font-size:17px; margin:0; }
.rk-offer-text strong{ font-weight:600; letter-spacing:0.02em; }
@media (min-width:768px){
  .rk-offer > .e-con.rk-col-a{ --width:auto; flex:1 1 0; }
  .rk-offer > .e-con.rk-col-b{ --width:auto; flex:0 0 auto; }
}

/* ---------- tumma kaista ---------- */
.rk-dark .elementor-widget-heading .elementor-heading-title{ color:#fff; }
.rk-dark .elementor-widget-text-editor, .rk-dark .elementor-widget-text-editor p{ color:rgba(255,255,255,.86); }
.rk-dark .elementor-widget-text-editor a{ color:#fff; }
.rk-cta .elementor-widget-text-editor p{ font-size:18px; }

/* ---------- ruudukot ---------- */
.e-con.rk-row{ --width:100%; }
@media (min-width:768px){
  .rk-grid-2 > .e-con.rk-col{ --width:auto; flex:0 1 calc((100% - 32px)/2); }
  .rk-grid-3 > .e-con.rk-col{ --width:auto; flex:0 1 calc((100% - 64px)/3); }
  .rk-split > .e-con.rk-col-a{ --width:auto; flex:0 1 calc(54% - 28px); }
  .rk-split > .e-con.rk-col-b{ --width:auto; flex:0 1 calc(46% - 28px); }
  .rk-split-r > .e-con.rk-col-a{ --width:auto; flex:0 1 calc(44% - 28px); }
  .rk-split-r > .e-con.rk-col-b{ --width:auto; flex:0 1 calc(56% - 28px); }
  .rk-half > .e-con.rk-col-a, .rk-half > .e-con.rk-col-b{ --width:auto; flex:0 1 calc(50% - 32px); }
  .rk-price-row > .e-con.rk-col-a{ --width:auto; flex:0 1 calc(58% - 20px); }
  .rk-price-row > .e-con.rk-col-b{ --width:auto; flex:0 1 calc(42% - 20px); }
}
@media (min-width:768px) and (max-width:1024px){
  .rk-grid-3 > .e-con.rk-col{ flex:0 1 calc((100% - 32px)/2); }
  .rk-price-row > .e-con.rk-col-a, .rk-price-row > .e-con.rk-col-b{ flex:1 1 100%; }
}
@media (max-width:767px){
  .e-con.rk-col, .e-con.rk-col-a, .e-con.rk-col-b{ --width:auto; flex:1 1 100%; }
}

/* ---------- kuvat ---------- */
.rk-img img{ width:100%; height:auto; display:block; border-radius:4px; }
.rk-img-tall img{ aspect-ratio:4/5; object-fit:cover; }
.rk-img-wide img{ aspect-ratio:4/3; object-fit:cover; }
.rk-img-sq img{ aspect-ratio:1/1; object-fit:cover; }
.rk-pair{ flex-wrap:nowrap !important; }
.rk-pair > .elementor-widget-image{ flex:1 1 0; width:auto; max-width:320px; }

/* ---------- kortit ---------- */
.e-con.rk-card{ background:#fff; border:1px solid var(--rk-line); border-radius:4px; padding:0 0 24px !important; overflow:hidden; }
.rk-card-img img{ aspect-ratio:4/3; object-fit:cover; border-radius:0; transition:transform .4s ease; }
.rk-card-img a{ display:block; overflow:hidden; }
.e-con.rk-card:hover .rk-card-img img{ transform:scale(1.03); }
.rk-card > .elementor-widget:not(.rk-card-img){ padding:0 24px; }
.rk-card-title .elementor-heading-title{ font-size:27px; }
.rk-card-title .elementor-heading-title a{ text-decoration:none; }
.rk-card-text{ font-size:16px; line-height:1.6; flex-grow:1; }
.rk-card .elementor-widget-button{ margin-top:auto; }

/* kapeat näkymät (jatkopalaveri, 19.10.2026): kuvawidget sarakkeen levyiseksi, muuten kortin
   korkeus lasketaan kuvan luonnollisesta leveydestä ja kuva valuu otsikon ja tekstin päälle */
.rk-img, .rk-card-img{ width:100%; }
.e-con.rk-card > .elementor-widget{ flex-shrink:0; }
@media (max-width:767px){
  .rk-img-tall img{ aspect-ratio:3/2; }
}

/* ---------- vaiheet ---------- */
.e-con.rk-step{ border-top:2px solid var(--rk-ink); padding-top:22px !important; }
.rk-step-num p{ font-family:var(--rk-serif); font-size:34px; color:var(--rk-stone-dark); line-height:1; margin:0; }
.rk-step-title .elementor-heading-title{ font-size:25px; line-height:1.25; }
.rk-step-text{ font-size:16.5px; line-height:1.6; }

/* ---------- listat ---------- */
.rk-list .elementor-icon-list-item{ align-items:flex-start; }
.rk-list .elementor-icon-list-icon{ margin-top:5px; }
.rk-list .elementor-icon-list-icon i, .rk-list .elementor-icon-list-icon svg{ color:var(--rk-ink); fill:var(--rk-ink); font-size:13px; width:13px; }
.rk-list .elementor-icon-list-text{ font-size:16.5px; line-height:1.55; color:var(--rk-text); }
.rk-tags ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.rk-tags li{ border:1px solid #C9C9C6; border-radius:40px; padding:8px 17px; font-size:15.5px;
  color:var(--rk-ink); background:#fff; font-weight:500; }

/* ---------- kysymyslista ---------- */
.rk-q .elementor-heading-title{ font-size:23px; }
.rk-qlist .rk-q{ border-top:1px solid var(--rk-line); padding-top:18px; }
.rk-qlist .rk-q:first-child{ border-top:0; padding-top:0; }

/* ---------- hinnasto ---------- */
.rk-price table{ width:100%; border-collapse:collapse; margin:0; background:#fff; border:1px solid var(--rk-line); }
.rk-price th, .rk-price td{ border:0; border-bottom:1px solid var(--rk-line); padding:12px 16px;
  text-align:right; vertical-align:middle; background:#fff !important; font-size:16px; font-variant-numeric:tabular-nums; }
.rk-price thead th{ background:var(--rk-ink) !important; color:#fff; font-weight:600; font-size:14px;
  line-height:1.35; vertical-align:bottom; }
.rk-price thead th span{ font-weight:400; opacity:.75; font-size:13px; }
.rk-price th:first-child{ text-align:left; }
.rk-price tbody th{ font-weight:600; color:var(--rk-ink); }
.rk-price tbody td{ color:var(--rk-text); white-space:nowrap; }
.rk-price tbody tr:nth-child(3n) th, .rk-price tbody tr:nth-child(3n) td{ }
.rk-price tbody tr:hover th, .rk-price tbody tr:hover td{ background:#FAFAF8 !important; }
@media (max-width:520px){
  .rk-price th, .rk-price td{ padding:10px 8px; font-size:14.5px; }
  .rk-price thead th{ font-size:12.5px; }
}
.e-con.rk-box{ background:#fff; border:1px solid var(--rk-line); border-radius:4px; padding:28px 28px !important; }
.rk-box-title .elementor-heading-title{ font-size:24px; }
.rk-extras{ list-style:none; margin:0; padding:0; }
.rk-extras li{ display:flex; justify-content:space-between; gap:16px; padding:9px 0;
  border-bottom:1px solid var(--rk-line); font-size:15.5px; line-height:1.45; }
.rk-extras li span:last-child{ white-space:nowrap; font-weight:600; color:var(--rk-ink); font-variant-numeric:tabular-nums; }
.rk-note{ font-size:14.5px; color:var(--rk-muted); margin-top:12px !important; }

/* ---------- galleria ---------- */
.rk-gallery .gallery{ display:flex !important; flex-wrap:wrap; justify-content:center; gap:12px; margin:0 !important; }
.rk-gallery .gallery-item{ float:none !important; max-width:none !important; margin:0 !important; padding:0 !important; }
.rk-gallery .gallery-columns-2 .gallery-item{ width:calc((100% - 12px)/2) !important; }
.rk-gallery .gallery-columns-4 .gallery-item{ width:calc((100% - 36px)/4) !important; }
.rk-gallery .gallery-columns-5 .gallery-item{ width:calc((100% - 48px)/5) !important; }
.rk-gallery .gallery-icon{ width:100% !important; display:block; }
.rk-gallery .gallery-icon a{ display:block; line-height:0; overflow:hidden; border-radius:4px; }
.rk-gallery .gallery-icon img{ width:100% !important; height:auto; aspect-ratio:1/1; object-fit:cover; border:0 !important; transition:transform .4s ease; }
.rk-gallery .gallery-icon a:hover img{ transform:scale(1.04); }
.rk-gallery .gallery br{ display:none; }
@media (max-width:1024px){ .rk-gallery .gallery-columns-5 .gallery-item{ width:calc((100% - 36px)/4) !important; } }
@media (max-width:767px){
  .rk-gallery .gallery-columns-4 .gallery-item, .rk-gallery .gallery-columns-5 .gallery-item{ width:calc((100% - 12px)/2) !important; }
}

/* ---------- ukk ---------- */
.rk-faq .elementor-accordion-item{ border:0; border-bottom:1px solid var(--rk-line); }
.rk-faq .elementor-accordion-item:first-child{ border-top:1px solid var(--rk-line); }
.rk-faq .elementor-tab-title{ background:transparent; padding:20px 0; font-family:var(--rk-sans);
  font-size:18px; font-weight:600; color:var(--rk-ink); }
.rk-faq .elementor-tab-title a, .rk-faq .elementor-accordion .elementor-tab-title .elementor-accordion-title{ color:var(--rk-ink);
  font-family:var(--rk-sans) !important; font-size:18px !important; font-weight:600 !important; line-height:1.4; }
.rk-faq .elementor-accordion-icon svg{ fill:var(--rk-ink); width:13px; }
.rk-faq .elementor-tab-title .elementor-accordion-icon{ color:var(--rk-ink); }
.rk-faq .elementor-tab-content{ background:transparent; border:0; padding:0 0 22px; font-size:16.5px;
  line-height:1.65; color:var(--rk-text); }

/* ---------- yhteystiedot ---------- */
.rk-nap .elementor-icon-list-text{ font-size:17px; color:var(--rk-ink); }
.rk-nap .elementor-icon-list-icon i, .rk-nap .elementor-icon-list-icon svg{ color:var(--rk-ink); fill:var(--rk-ink); font-size:16px; width:18px; }
.rk-nap a{ color:var(--rk-ink); text-decoration:none; }
.rk-nap a:hover{ text-decoration:underline; }
.rk-map iframe{ width:100%; height:320px; border:0; border-radius:4px; display:block; filter:grayscale(.35); }
.e-con.rk-formbox{ background:var(--rk-surface); border:1px solid var(--rk-line); border-radius:4px; scroll-margin-top:110px; }

/* ---------- lomake ---------- */
.rk-form .elementor-field-group > label{ font-family:var(--rk-sans); font-size:14.5px; font-weight:600;
  color:var(--rk-ink); margin-bottom:7px; }
.rk-form .elementor-field-textual, .rk-form select{ border:1px solid #C4C4C1; border-radius:4px; padding:13px 14px;
  font-size:16px; color:var(--rk-ink); background:#fff; min-height:50px; }
.rk-form .elementor-field-textual:focus, .rk-form select:focus{ border-color:var(--rk-ink); outline:0; box-shadow:0 0 0 3px rgba(45,47,51,.14); }
.rk-form .elementor-button[type="submit"]{ background:var(--rk-ink); color:#fff; border-radius:4px;
  font-weight:600; font-size:16px; padding:16px 30px; }
.rk-form .elementor-button[type="submit"]:hover{ background:#000; }
.rk-form .elementor-message{ font-size:15.5px; }
.elementor-field-group-rk_hp{ position:absolute !important; left:-9999px !important; width:1px !important;
  height:1px !important; overflow:hidden !important; margin:0 !important; padding:0 !important; }

/* ---------- alatunniste ---------- */
.rk-footer{ background:var(--rk-black); }
.rk-footer .elementor-widget-text-editor, .rk-footer .elementor-widget-text-editor p{ color:rgba(255,255,255,.74); font-size:15.5px; line-height:1.7; }
.rk-footer a{ color:rgba(255,255,255,.84); text-decoration:none; }
.rk-footer a:hover{ color:#fff; text-decoration:underline; }
.rk-footer .rk-foot-h{ font-family:var(--rk-sans); font-size:13px; font-weight:600; letter-spacing:0.14em;
  text-transform:uppercase; color:#fff !important; margin:0 0 6px; }
.rk-footer ul{ list-style:none; margin:0; padding:0; }
.rk-footer li{ margin:0 0 7px; }
.rk-logo-foot img{ height:44px; filter:invert(1) grayscale(1); }
.rk-footer-bottom{ border-top:1px solid rgba(255,255,255,.14); }
.rk-footer-bottom .elementor-widget-text-editor, .rk-footer-bottom .elementor-widget-text-editor p{ font-size:14px; color:rgba(255,255,255,.62); }
.rk-footer .elementor-widget-shortcode{ width:auto; flex:0 0 auto; }
.rk-footer .elementor-widget-shortcode button, .rk-footer .elementor-widget-shortcode a,
.rk-footer .dsh-cookie-settings-link{
  display:inline-block; background:transparent; border:1px solid rgba(255,255,255,.3); color:rgba(255,255,255,.84);
  font-family:var(--rk-sans); font-size:13.5px; padding:9px 15px; border-radius:4px; cursor:pointer; text-decoration:none;
}
.rk-footer .elementor-widget-shortcode button:hover, .rk-footer .elementor-widget-shortcode a:hover{ border-color:#fff; color:#fff; text-decoration:none; }
@media (min-width:900px){
  .rk-footer-grid > .e-con.rk-col{ --width:auto; flex:0 1 calc(28% - 32px); }
  .rk-footer-grid > .e-con.rk-col:first-child{ flex:0 1 calc(40% - 32px); }
  .rk-footer-grid > .e-con.rk-col:last-child{ flex:0 1 calc(32% - 32px); }
}
@media (min-width:768px) and (max-width:899px){
  .rk-footer-grid > .e-con.rk-col{ --width:auto; flex:0 1 calc(50% - 24px); }
}
@media (max-width:767px){
  .rk-footer-bottom .rk-col-b{ justify-content:flex-start !important; }
}

/* ---------- tietosuojaseloste ---------- */
.rk-legal h2{ font-size:28px; margin:36px 0 12px; }
.rk-legal p, .rk-legal li{ font-size:16.5px; line-height:1.7; }
.dsh-cookie-list__table{ width:100%; table-layout:fixed; }
.dsh-cookie-list__table th, .dsh-cookie-list__table td{ word-break:break-word; overflow-wrap:anywhere; }
.dsh-cookie-consent__title{ font-family:var(--rk-serif); font-size:22px; font-weight:500; color:var(--rk-ink); margin:0 0 8px; line-height:1.25; }
.dsh-cookie-modal__title{ font-family:var(--rk-serif); font-size:26px; font-weight:500; color:var(--rk-ink); margin:0; line-height:1.2; }
