
:root{
  --fm-navy:#161B40;
  --fm-navy2:#20275A;
  --fm-sky:#43BEE5;
  --fm-sky-hover:#6FCFEE;
  --fm-sky-ink:#136F92;
  --fm-text:#3B4058;
  --fm-muted:#6A6F87;
  --fm-line:#E3E6EF;
  --fm-surface:#F3F6FA;
  --fm-serif:'DM Serif Display',Georgia,serif;
  --fm-sans:'Work Sans',system-ui,sans-serif;
}

/* ---------- perusta ---------- */
body{ -webkit-font-smoothing:antialiased; color:var(--fm-text); background:#fff; }
.elementor-widget-heading .elementor-heading-title{ color:var(--fm-navy); font-family:var(--fm-serif); font-weight:400; letter-spacing:-0.005em; }
.elementor-widget-text-editor{ color:var(--fm-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(--fm-sky-ink); text-decoration:underline; text-underline-offset:3px; }
.elementor-widget-text-editor a:hover{ color:var(--fm-navy); }
.fm-surface{ background:var(--fm-surface); }
.fm-lead{ font-size:19px; line-height:1.65; }
.fm-muted{ color:var(--fm-muted); font-size:15px; }

/* ---------- napit ---------- */
.fm-btn .elementor-button{
  background:var(--fm-sky); color:var(--fm-navy); border:1px solid var(--fm-sky);
  border-radius:6px; font-family:var(--fm-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;
}
.fm-btn .elementor-button:hover,.fm-btn .elementor-button:focus{ background:var(--fm-sky-hover); border-color:var(--fm-sky-hover); color:var(--fm-navy); }
.fm-btn .elementor-button .elementor-button-icon{ font-size:14px; }
.fm-btn-ghost .elementor-button{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.fm-btn-ghost .elementor-button:hover,.fm-btn-ghost .elementor-button:focus{ background:#fff; border-color:#fff; color:var(--fm-navy); }
.fm-btn-line .elementor-button{ background:transparent; color:var(--fm-navy); border-color:var(--fm-navy); }
.fm-btn-line .elementor-button:hover,.fm-btn-line .elementor-button:focus{ background:var(--fm-navy); color:#fff; }
.fm-btn-sm .elementor-button{ padding:11px 18px; font-size:14.5px; }
.fm-btn-text .elementor-button{
  background:transparent; border:0; padding:0; border-radius:0; color:var(--fm-sky-ink);
  font-weight:600; font-size:15px; box-shadow:inset 0 -1px 0 0 currentColor;
}
.fm-btn-text .elementor-button:hover{ background:transparent; color:var(--fm-navy); }

/* ---------- pienotsikko ---------- */
.fm-eyebrow{ font-family:var(--fm-sans); font-size:13px; font-weight:600; letter-spacing:0.13em;
  text-transform:uppercase; color:var(--fm-sky-ink); }
.fm-eyebrow p{ margin:0; }
.fm-dark .fm-eyebrow, .fm-hero .fm-eyebrow, .fm-phero .fm-eyebrow{ color:var(--fm-sky); }

/* ---------- ylätunniste ---------- */
header.elementor-location-header{ position:sticky; top:0; z-index:99; }
.fm-header{ background:var(--fm-navy); }
.fm-header-row{ --width:100%; flex-wrap:nowrap !important; }
.fm-logo{ flex:0 0 auto; width:auto; }
.fm-logo p{ margin:0; line-height:1; }
.fm-logo a{ font-family:var(--fm-serif); font-size:27px; color:#fff !important; text-decoration:none !important;
  letter-spacing:0.02em; white-space:nowrap; }
.fm-header .elementor-widget-nav-menu{ flex:1 1 auto; min-width:0; }
.fm-header .elementor-nav-menu--main .elementor-nav-menu{ justify-content:flex-end; }
.fm-nav .elementor-nav-menu--main .elementor-item{
  font-family:var(--fm-sans); font-weight:500; font-size:15px; color:#fff; padding:12px 11px;
}
.fm-nav .elementor-nav-menu--main .elementor-item:hover,
.fm-nav .elementor-nav-menu--main .elementor-item:focus,
.fm-nav .elementor-nav-menu--main .elementor-item.elementor-item-active,
.fm-nav .elementor-nav-menu--main .elementor-item.highlighted{ color:var(--fm-sky); }
.fm-nav .elementor-nav-menu--main .sub-menu{ background:#fff; box-shadow:0 14px 30px rgba(10,14,40,.16);
  border-radius:0 0 6px 6px; min-width:300px !important; padding:8px 0; }
.fm-nav .elementor-nav-menu--main .sub-menu .elementor-sub-item{ color:var(--fm-navy); font-family:var(--fm-sans);
  font-size:15px; padding:11px 20px; background:#fff; border:0; }
.fm-nav .elementor-nav-menu--main .sub-menu .elementor-sub-item:hover,
.fm-nav .elementor-nav-menu--main .sub-menu .elementor-sub-item.elementor-item-active{ background:var(--fm-surface); color:var(--fm-navy); }
.fm-header-cta{ flex:0 0 auto; width:auto; white-space:nowrap; }
@media (min-width:1025px) and (max-width:1279px){
  .fm-nav .elementor-nav-menu--main .elementor-item{ font-size:14px; padding:12px 7px; }
  .fm-logo a{ font-size:24px; }
}
@media (max-width:1279px){ .fm-header-row .fm-header-cta{ display:none !important; } }

/* mobiilivalikko koko headerin levyiseksi */
@media (max-width:1024px){
  .fm-header{ position:relative; }
  .fm-header-row{ justify-content:space-between; align-items:center; }
  .fm-header .elementor-widget-nav-menu{ position:static !important; flex:0 0 auto; width:auto; }
  .fm-header .elementor-widget-nav-menu > .elementor-widget-container{ position:static; }
  .fm-header .elementor-menu-toggle{ margin:0 !important; background:transparent !important; min-width:46px; min-height:46px; }
  .fm-header .elementor-menu-toggle i, .fm-header .elementor-menu-toggle svg{ color:#fff; fill:#fff; }
  .fm-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(10,14,40,.18); max-height:calc(100vh - 80px); overflow-y:auto;
  }
  .fm-header .elementor-nav-menu--dropdown .elementor-item,
  .fm-header .elementor-nav-menu--dropdown .elementor-sub-item{
    background:#fff !important; color:var(--fm-navy) !important; font-family:var(--fm-sans);
    font-size:16px; padding:14px 22px; border-bottom:1px solid var(--fm-line);
  }
  .fm-header .elementor-nav-menu--dropdown .elementor-sub-item{ padding-left:38px; font-size:15.5px; }
  .fm-header .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
  .fm-header .elementor-nav-menu--dropdown .elementor-sub-item.elementor-item-active,
  .fm-header .elementor-nav-menu--dropdown .elementor-item:hover{ background:var(--fm-surface) !important; }
  .fm-logo a{ font-size:23px; }
}

/* ---------- etusivun hero ---------- */
.fm-hero-h1 .elementor-heading-title{ color:#fff; font-size:56px; line-height:1.08; max-width:820px; }
.fm-hero-sub{ max-width:620px !important; }
.fm-hero-sub, .fm-hero-sub p{ color:rgba(255,255,255,.9); font-size:19px; line-height:1.6; }
@media (max-width:1024px){ .fm-hero-h1 .elementor-heading-title{ font-size:44px; } }
@media (max-width:767px){
  .fm-hero-h1 .elementor-heading-title{ font-size:33px; }
  .fm-hero-sub, .fm-hero-sub p{ font-size:17px; }
}

/* ---------- alasivun hero ---------- */
.fm-phero-h1 .elementor-heading-title{ color:#fff; font-size:46px; line-height:1.12; max-width:860px; }
.fm-phero-sub{ max-width:640px !important; }
.fm-phero-sub, .fm-phero-sub p{ color:rgba(255,255,255,.88); font-size:18px; line-height:1.6; }
@media (max-width:1024px){ .fm-phero-h1 .elementor-heading-title{ font-size:38px; } }
@media (max-width:767px){
  .fm-phero-h1 .elementor-heading-title{ font-size:30px; }
  .fm-phero-sub, .fm-phero-sub p{ font-size:16.5px; }
}
.fm-btns{ --width:auto; }
.fm-btns .elementor-widget-button{ width:auto; flex:0 0 auto; }
.e-con.fm-btns{ margin-top:12px; }

/* ---------- tumma kaista ---------- */
.fm-dark{ background:var(--fm-navy); }
.fm-dark .elementor-widget-heading .elementor-heading-title{ color:#fff; }
.fm-dark .elementor-widget-text-editor, .fm-dark .elementor-widget-text-editor p{ color:rgba(255,255,255,.84); }
.fm-dark .elementor-widget-text-editor a{ color:#fff; }

/* ---------- ruudukot ---------- */
.e-con.fm-row{ --width:100%; }
@media (min-width:768px){
  .fm-grid-2 > .e-con-inner > .e-con.fm-col, .fm-grid-2 > .e-con.fm-col{ --width:auto; flex:0 1 calc((100% - 48px)/2); }
  .fm-grid-3 > .e-con-inner > .e-con.fm-col, .fm-grid-3 > .e-con.fm-col{ --width:auto; flex:0 1 calc((100% - 64px)/3); }
  .fm-split, .fm-split-r, .fm-half{ flex-wrap:nowrap !important; }
  .fm-split > .e-con.fm-col-a{ --width:auto; flex:56 1 0; min-width:0; }
  .fm-split > .e-con.fm-col-b{ --width:auto; flex:44 1 0; min-width:0; }
  .fm-split-r > .e-con.fm-col-a{ --width:auto; flex:44 1 0; min-width:0; }
  .fm-split-r > .e-con.fm-col-b{ --width:auto; flex:56 1 0; min-width:0; }
  .fm-half > .e-con.fm-col-a, .fm-half > .e-con.fm-col-b{ --width:auto; flex:1 1 0; min-width:0; }
}
@media (min-width:768px) and (max-width:1024px){
  .fm-grid-3 > .e-con.fm-col{ flex:0 1 calc((100% - 32px)/2); }
}
@media (max-width:767px){
  .e-con.fm-col, .e-con.fm-col-a, .e-con.fm-col-b{ --width:auto; flex:1 1 100%; }
}

/* ---------- kuvat ---------- */
.fm-img img{ width:100%; height:auto; display:block; border-radius:6px; }
.fm-img-tall img{ aspect-ratio:4/5; object-fit:cover; }
.fm-img-wide img{ aspect-ratio:4/3; object-fit:cover; }
.fm-img-sq img{ aspect-ratio:1/1; object-fit:cover; }
.fm-caption{ font-size:14px; color:var(--fm-muted); margin-top:-6px; }

/* ---------- palveluhakemisto ---------- */
.e-con.fm-svc{ border-top:1px solid var(--fm-line); padding:26px 0 !important; }
.e-con.fm-svc:last-child{ border-bottom:1px solid var(--fm-line); }
.fm-svc-num p{ font-family:var(--fm-serif); font-size:24px; color:var(--fm-sky-ink); margin:0; line-height:1.2; }
.fm-svc-title .elementor-heading-title{ font-size:25px; line-height:1.25; }
.fm-svc-title .elementor-heading-title a{ color:var(--fm-navy); }
.fm-svc-title .elementor-heading-title a:hover{ color:var(--fm-sky-ink); }
.fm-svc-text{ font-size:16px; line-height:1.6; }
@media (min-width:768px){
  .fm-svc > .e-con.fm-svc-a{ --width:auto; flex:0 0 64px; }
  .fm-svc > .e-con.fm-svc-b{ --width:auto; flex:0 1 calc(38% - 40px); }
  .fm-svc > .e-con.fm-svc-c{ --width:auto; flex:1 1 0; }
  .fm-svc > .e-con.fm-svc-d{ --width:auto; flex:0 0 auto; }
}
@media (max-width:767px){
  .e-con.fm-svc{ padding:20px 0 !important; }
  .fm-svc > .e-con{ --width:auto; flex:1 1 100%; }
  .fm-svc > .e-con.fm-svc-a{ display:none; }
}

/* ---------- vaiheet ---------- */
.e-con.fm-step{ border-top:2px solid var(--fm-navy); padding-top:20px !important; }
.fm-step-num p{ font-family:var(--fm-serif); font-size:30px; color:var(--fm-sky-ink); line-height:1; margin:0; }
.fm-step-title .elementor-heading-title{ font-size:21px; line-height:1.3; }
.fm-step-text{ font-size:16px; line-height:1.6; }

/* ---------- listat ---------- */
.fm-list .elementor-icon-list-item{ align-items:flex-start; }
.fm-list .elementor-icon-list-icon{ margin-top:5px; }
.fm-list .elementor-icon-list-icon i{ color:var(--fm-sky-ink); font-size:14px; }
.fm-list .elementor-icon-list-text{ font-size:16.5px; line-height:1.55; color:var(--fm-text); }
.fm-dark .fm-list .elementor-icon-list-icon i{ color:var(--fm-sky); }
.fm-dark .fm-list .elementor-icon-list-text{ color:rgba(255,255,255,.86); }
.fm-tags ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.fm-tags li{ border:1px solid var(--fm-line); border-radius:40px; padding:7px 16px; font-size:15px;
  color:var(--fm-navy); background:#fff; }

/* ---------- periaatteet ---------- */
.fm-principles ol{ list-style:none; counter-reset:fm; margin:0; padding:0; columns:2; column-gap:48px; }
.fm-principles li{ counter-increment:fm; break-inside:avoid; padding:14px 0 14px 46px; position:relative;
  border-top:1px solid rgba(255,255,255,.16); color:#fff; font-size:17px; }
.fm-principles li::before{ content:counter(fm); position:absolute; left:0; top:10px; font-family:var(--fm-serif);
  font-size:24px; color:var(--fm-sky); }
@media (max-width:767px){ .fm-principles ol{ columns:1; } }

/* ---------- huomautus ---------- */
.e-con.fm-note{ border-left:3px solid var(--fm-sky); padding:4px 0 4px 22px !important; }
.fm-note-title .elementor-heading-title{ font-size:20px; }

/* ---------- hinnasto ---------- */
.fm-price table{ width:100%; border-collapse:collapse; margin:0; }
.fm-price caption{ text-align:left; font-family:var(--fm-serif); font-size:25px; color:var(--fm-navy);
  padding:0 0 10px; }
.fm-price th, .fm-price td{ border:0; border-bottom:1px solid var(--fm-line); padding:17px 0;
  text-align:left; vertical-align:baseline; background:transparent !important; font-size:17px; }
.fm-price th{ font-weight:500; color:var(--fm-navy); }
.fm-price th a{ color:var(--fm-navy); text-decoration:none; }
.fm-price th a:hover{ color:var(--fm-sky-ink); text-decoration:underline; }
.fm-price td{ text-align:right; white-space:nowrap; font-weight:600; color:var(--fm-navy); padding-left:20px; }
.fm-price td span{ font-weight:400; color:var(--fm-muted); font-size:15px; margin-right:4px; }
.fm-price tr:first-child th, .fm-price tr:first-child td{ border-top:2px solid var(--fm-navy); }
.fm-price table + table{ margin-top:44px; }

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

/* ---------- yhteystiedot ---------- */
.fm-nap .elementor-icon-list-text{ font-size:17px; color:var(--fm-navy); }
.fm-nap .elementor-icon-list-icon i{ color:var(--fm-sky-ink); font-size:16px; width:20px; }
.fm-nap a{ color:var(--fm-navy); text-decoration:none; }
.fm-nap a:hover{ text-decoration:underline; }
.fm-person img{ width:120px; height:120px; object-fit:cover; object-position:50% 20%; border-radius:50%; }
.fm-person{ width:auto; flex:0 0 auto; }
.e-con.fm-person-t{ --width:auto; flex:1 1 0; min-width:0; }
.fm-person-row{ flex-wrap:nowrap !important; }

/* ---------- lomake ---------- */
.fm-form .elementor-field-group > label{ font-family:var(--fm-sans); font-size:14.5px; font-weight:600;
  color:var(--fm-navy); margin-bottom:7px; }
.fm-form .elementor-field-textual, .fm-form select{ border:1px solid #CDD2E0; border-radius:6px; padding:13px 14px;
  font-size:16px; color:var(--fm-navy); background:#fff; min-height:50px; }
.fm-form .elementor-field-textual:focus, .fm-form select:focus{ border-color:var(--fm-navy); outline:0; box-shadow:0 0 0 3px rgba(67,190,229,.25); }
.fm-form .elementor-button[type="submit"]{ background:var(--fm-sky); color:var(--fm-navy); border-radius:6px;
  font-weight:600; font-size:16px; padding:16px 30px; }
.fm-form .elementor-button[type="submit"]:hover{ background:var(--fm-sky-hover); }
.fm-form .elementor-message{ font-size:15.5px; }
.elementor-field-group-fm_hp{ position:absolute !important; left:-9999px !important; width:1px !important;
  height:1px !important; overflow:hidden !important; margin:0 !important; padding:0 !important; }

/* ---------- artikkelilistat ---------- */
.fm-posts .elementor-post__thumbnail{ border-radius:6px; overflow:hidden; }
.fm-posts .elementor-post__title, .fm-posts .elementor-post__title a{ font-family:var(--fm-serif); font-weight:400;
  font-size:22px; line-height:1.3; color:var(--fm-navy); }
.fm-posts .elementor-post__title a:hover{ color:var(--fm-sky-ink); }
.fm-posts .elementor-post__meta-data{ font-size:13.5px; color:var(--fm-muted); }
.fm-posts .elementor-post__excerpt p{ font-size:15.5px; line-height:1.6; color:var(--fm-text); }
.fm-posts .elementor-post__read-more{ color:var(--fm-sky-ink); font-weight:600; font-size:14.5px; }
.fm-posts .elementor-pagination{ margin-top:36px; font-size:16px; }
.fm-posts .elementor-pagination .page-numbers{ padding:6px 12px; color:var(--fm-navy); }
.fm-posts .elementor-pagination .page-numbers.current{ background:var(--fm-navy); color:#fff; border-radius:4px; }

/* ---------- videokortti ---------- */
.fm-video img{ border-radius:6px; width:100%; max-width:300px; aspect-ratio:11/20; object-fit:cover; display:block; margin:0 auto; }

/* ---------- alatunniste ---------- */
.fm-footer{ background:var(--fm-navy); }
.fm-footer .elementor-widget-text-editor, .fm-footer .elementor-widget-text-editor p{ color:rgba(255,255,255,.74); font-size:15.5px; line-height:1.7; }
.fm-footer a{ color:rgba(255,255,255,.8); text-decoration:none; }
.fm-footer a:hover{ color:#fff; text-decoration:underline; }
.fm-footer .fm-foot-h{ font-family:var(--fm-sans); font-size:13px; font-weight:600; letter-spacing:0.13em;
  text-transform:uppercase; color:#fff !important; margin:0 0 4px; }
.fm-footer .fm-logo a{ font-size:30px; }
.fm-footer ul{ list-style:none; margin:0; padding:0; }
.fm-footer li{ margin:0 0 7px; }
.fm-footer-bottom{ border-top:1px solid rgba(255,255,255,.14); }
.fm-footer-bottom .elementor-widget-text-editor, .fm-footer-bottom .elementor-widget-text-editor p{ font-size:14px; color:rgba(255,255,255,.6); }
.fm-footer .elementor-widget-shortcode{ width:auto; flex:0 0 auto; }
.fm-footer .elementor-widget-shortcode button, .fm-footer .elementor-widget-shortcode a,
.fm-footer .dsh-cookie-settings-button, .fm-footer .dsh-privacy-policy-button{
  display:inline-block; background:transparent; border:1px solid rgba(255,255,255,.3); color:rgba(255,255,255,.82);
  font-family:var(--fm-sans); font-size:13.5px; padding:9px 15px; border-radius:6px; cursor:pointer; text-decoration:none;
}
.fm-footer .elementor-widget-shortcode button:hover, .fm-footer .elementor-widget-shortcode a:hover{ border-color:#fff; color:#fff; text-decoration:none; }
.fm-social .elementor-social-icon{ background:transparent; border:1px solid rgba(255,255,255,.3); }
.fm-social .elementor-social-icon i{ color:#fff; }
.fm-social .elementor-social-icon:hover{ background:var(--fm-sky); border-color:var(--fm-sky); }
.fm-social .elementor-social-icon:hover i{ color:var(--fm-navy); }
@media (min-width:900px){
  .fm-footer-grid > .e-con.fm-col{ --width:auto; flex:0 1 calc(20% - 32px); }
  .fm-footer-grid > .e-con.fm-col:first-child{ flex:0 1 calc(32% - 32px); }
  .fm-footer-grid > .e-con.fm-col:last-child{ flex:0 1 calc(28% - 32px); }
}
@media (min-width:768px) and (max-width:899px){
  .fm-footer-grid > .e-con.fm-col{ --width:auto; flex:0 1 calc(50% - 24px); }
}

/* ---------- tietosuojaseloste ---------- */
.fm-legal h2{ font-size:26px; margin:36px 0 12px; }
.fm-legal p, .fm-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; }

/* ---------- artikkelisivu (hello-elementor single) ---------- */
.single-post .site-main{ max-width:780px; margin:0 auto; padding:56px 20px 80px; }
.single-post .page-header .entry-title{ font-family:var(--fm-serif); font-weight:400; color:var(--fm-navy);
  font-size:44px; line-height:1.15; margin:0 0 28px; }
@media (max-width:767px){ .single-post .page-header .entry-title{ font-size:31px; } .single-post .site-main{ padding-top:36px; } }
.single-post .page-content{ font-size:17.5px; line-height:1.75; color:var(--fm-text); }
.single-post .page-content h2{ font-family:var(--fm-serif); font-weight:400; color:var(--fm-navy); font-size:30px; line-height:1.25; margin:42px 0 14px; }
.single-post .page-content h3{ font-family:var(--fm-sans); font-weight:600; color:var(--fm-navy); font-size:20px; margin:30px 0 10px; }
.single-post .page-content a{ color:var(--fm-sky-ink); text-underline-offset:3px; }
.single-post .page-content img{ border-radius:6px; height:auto; }
.single-post .page-content .ds-blog-lead{ font-size:20px; line-height:1.65; color:var(--fm-navy); }
.single-post .page-content blockquote, .single-post .page-content .ds-pull-quote{ border-left:3px solid var(--fm-sky);
  margin:30px 0; padding:4px 0 4px 24px; font-family:var(--fm-serif); font-size:23px; line-height:1.45; color:var(--fm-navy); }
.single-post .page-content blockquote p{ margin:0; }
.single-post .page-content figure{ margin:30px 0; }
.single-post .page-content figcaption{ font-size:14px; color:var(--fm-muted); margin-top:8px; }
.single-post .page-content table{ width:100%; border-collapse:collapse; font-size:16px; }
.single-post .page-content th, .single-post .page-content td{ border:0; border-bottom:1px solid var(--fm-line);
  padding:10px 8px; text-align:left; background:transparent !important; }
.single-post .post-tags{ display:none; }
.fm-post-cta{ margin-top:48px; padding:30px 0 0; border-top:2px solid var(--fm-navy); }
.fm-post-cta p{ margin:0 0 14px; }
.fm-post-cta .fm-post-cta-btn{ display:inline-block; background:var(--fm-sky); color:var(--fm-navy) !important;
  text-decoration:none !important; font-weight:600; padding:13px 22px; border-radius:6px; margin-right:12px; }
.fm-post-cta .fm-post-cta-btn:hover{ background:var(--fm-sky-hover); }
.single-post .page-content .fm-post-date{ font-size:14.5px; color:var(--fm-muted); margin:-12px 0 26px; }

/* ---------- SVG-ikonit (Elementorin inline-ikonit) ---------- */
.fm-list .elementor-icon-list-icon svg{ fill:var(--fm-sky-ink); width:14px; height:14px; }
.fm-dark .fm-list .elementor-icon-list-icon svg{ fill:var(--fm-sky); }
.fm-nap .elementor-icon-list-icon svg{ fill:var(--fm-sky-ink); width:16px; height:16px; }
.fm-faq .elementor-accordion-icon svg{ fill:var(--fm-sky-ink); }
.fm-btn .elementor-button-icon svg{ fill:currentColor; width:14px; height:14px; }
.fm-social .elementor-social-icon svg{ fill:#fff; }
.fm-social .elementor-social-icon:hover svg{ fill:var(--fm-navy); }
.fm-header .elementor-nav-menu--main .sub-arrow svg{ fill:currentColor; }

/* ---------- mobiilivalikko: koko leveys ja korkeus kasvaa alavalikon mukana ---------- */
@media (max-width:1024px){
  .fm-header .e-con{ position:static; }
  .fm-header.e-con{ position:relative; }
  .fm-header .elementor-menu-toggle.elementor-active + nav.elementor-nav-menu--dropdown{
    max-height:calc(100vh - 70px) !important; overflow-y:auto !important;
  }
  .fm-header nav.elementor-nav-menu--dropdown ul.sub-menu{
    position:static !important; top:auto !important; left:auto !important; width:100% !important;
    min-width:0 !important; max-width:none !important; margin:0 !important; box-shadow:none !important;
  }
}

/* ---------- mobiilikorjaukset: hinnasto ja artikkelin reunat ---------- */
@media (max-width:767px){
  .fm-price th, .fm-price td{ font-size:15.5px; padding:14px 0; }
  .fm-price td{ white-space:normal; text-align:right; padding-left:12px; min-width:92px; }
  .fm-price td span{ display:block; font-size:13px; margin:0; }
  .fm-price table{ table-layout:auto; }
}
.single-post .site-main{ padding-left:20px !important; padding-right:20px !important; box-sizing:border-box; }
@media (max-width:767px){ .single-post .site-main{ padding-left:18px !important; padding-right:18px !important; } }

.single-post .page-header, .single-post .page-content{ padding-left:0 !important; padding-right:0 !important;
  margin-left:0 !important; margin-right:0 !important; max-width:none !important; }

/* ---------- kosketusalue: tekstilinkkinapit vähintään 44 px ---------- */
.fm-btn-text .elementor-button{ padding:12px 0 !important; box-shadow:none; text-decoration:underline;
  text-underline-offset:4px; display:inline-flex; align-items:center; min-height:44px; }
