.elementor-kit-6{--e-global-color-primary:#0F4C64;--e-global-color-secondary:#073B4C;--e-global-color-text:#062F3D;--e-global-color-accent:#FF6F61;--e-global-color-sgmint:#88E8B7;--e-global-color-sgaqua:#A8DADC;--e-global-color-sgnight:#052C39;--e-global-color-sgpaper:#F3F6F5;--e-global-typography-primary-font-family:"DM Sans";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"DM Sans";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"DM Sans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"DM Sans";--e-global-typography-accent-font-weight:600;color:#062F3D;font-family:"DM Sans", Sans-serif;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* =========================================================================
   Signal Group – Elementor-sivusto, v2 ("face lift")
   Mittasuhteet kultaisesta leikkauksesta (φ = 1.618):
   - typografia: 17 px × φ^(n/2)  → 17 · 21.6 · 27.5 · 35 · 44.5 · 56.6 · 72 · 91.6
   - välistys: Fibonacci 8 · 13 · 21 · 34 · 55 · 89 · 144 · 233
   - palstat 38.2 / 61.8, kuvasuhteet 1.618 : 1, tekstin mitta ≈ 61.8 % palstasta
   Värit: petroli hallitsee, minttu vain korosteena, koralli vain päätoimintoihin.
   ========================================================================= */
:root {
  --phi: 1.618;
  --t-0: 17px; --t-1: 21.6px; --t-2: 27.5px; --t-3: 35px; --t-4: 44.5px; --t-5: 56.6px; --t-6: 72px; --t-7: 91.6px;
  --s-1: 8px; --s-2: 13px; --s-3: 21px; --s-4: 34px; --s-5: 55px; --s-6: 89px; --s-7: 144px; --s-8: 233px;

  --sg-petrol: #0F4C64;
  --sg-deep: #073B4C;
  --sg-night: #052C39;
  --sg-ink: #062F3D;
  --sg-mint: #88E8B7;
  --sg-aqua: #A8DADC;
  --sg-coral: #FF6F61;
  --sg-paper: #F2F5F4;
  --sg-stone: #E4EBE9;
  --sg-line: rgba(6, 47, 61, .14);
  --sg-line-2: rgba(6, 47, 61, .28);
  --sg-line-inv: rgba(255, 255, 255, .16);
  --sg-muted: #4A6470;
  --sg-muted-inv: rgba(255, 255, 255, .72);

  --sg-wrap: 1240px;
  --sg-gutter: clamp(21px, 4vw, 55px);
  --sg-sec: clamp(89px, 9.5vw, 144px);
  --sg-r: 3px;
  --sg-ease: cubic-bezier(.2, .7, .1, 1);
}

html { scroll-behavior: smooth; scroll-padding-top: 0; }
body { font-family: "DM Sans", system-ui, sans-serif; color: var(--sg-ink); background: #fff; font-size: var(--t-0); line-height: 1.618; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body .elementor-heading-title { font-family: "DM Sans", system-ui, sans-serif; color: inherit; margin: 0; }
a { color: inherit; }
p { margin: 0 0 var(--s-3); }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.sg-hide { display: none !important; }
.sg-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
button, [type=button], [type=submit] { border: 0; }
button:hover, button:focus, [type=button]:hover, [type=submit]:hover { background-color: transparent; }
:focus-visible { outline: 2px solid var(--sg-coral); outline-offset: 3px; }

/* ---------- Typografia ---------- */
.sg-eyebrow .elementor-heading-title, span.sg-eyebrow { display: inline-flex; align-items: center; gap: var(--s-2); font-size: 14px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--sg-petrol); }
.sg-eyebrow .elementor-heading-title::before, span.sg-eyebrow::before { content: ""; width: var(--s-4); height: 1px; background: currentColor; opacity: .6; }
.sg-inv .sg-eyebrow .elementor-heading-title, .sg-inv span.sg-eyebrow { color: var(--sg-mint); }
.sg-h1 .elementor-heading-title { font-size: clamp(40px, 5vw, var(--t-6)); font-weight: 700; line-height: 1.04; letter-spacing: -.034em; text-wrap: balance; }
.sg-h2 .elementor-heading-title { font-size: clamp(var(--t-3), 4.2vw, var(--t-5)); font-weight: 700; line-height: 1.08; letter-spacing: -.028em; text-wrap: balance; }
.sg-h3 .elementor-heading-title { font-size: clamp(var(--t-1), 2.2vw, var(--t-2)); font-weight: 600; line-height: 1.2; letter-spacing: -.015em; }
.sg-lede, .sg-lede p { font-size: clamp(18px, 1.55vw, var(--t-1)); line-height: 1.55; color: var(--sg-muted); max-width: 38em; }
.sg-inv .sg-lede, .sg-inv .sg-lede p, .sg-inv .elementor-widget-text-editor { color: var(--sg-muted-inv); }
.sg-inv { color: #fff; }

/* ---------- Napit ---------- */
.sg-btn .elementor-button, .sg-btn-ghost .elementor-button, .sg-btn-light .elementor-button {
  display: inline-flex; align-items: center; gap: var(--s-2); min-height: 55px; padding: 0 var(--s-4);
  font-family: "DM Sans", sans-serif; font-size: var(--t-0); font-weight: 600; line-height: 1; letter-spacing: -.005em;
  border-radius: var(--sg-r); transition: background-color .3s var(--sg-ease), color .3s, border-color .3s;
}
.sg-btn .elementor-button { background: var(--sg-coral); color: var(--sg-ink); border: 1px solid var(--sg-coral); }
.sg-btn .elementor-button:hover { background: #fff; border-color: #fff; color: var(--sg-ink); }
.sg-btn-ghost .elementor-button { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.4); }
.sg-btn-ghost .elementor-button:hover { background: #fff; color: var(--sg-ink); border-color: #fff; }
.sg-btn-light .elementor-button { background: var(--sg-petrol); color: #fff; border: 1px solid var(--sg-petrol); }
.sg-btn-light .elementor-button:hover { background: var(--sg-ink); border-color: var(--sg-ink); color: #fff; }
.sg-link .elementor-button { background: none; padding: 0 0 4px; min-height: 0; color: var(--sg-petrol); font-weight: 600; font-size: var(--t-0); border-bottom: 1px solid var(--sg-coral); border-radius: 0; white-space: nowrap; }
.sg-link .elementor-button:hover { color: var(--sg-ink); border-bottom-color: var(--sg-ink); }
.sg-inv .sg-link .elementor-button { color: #fff; }

/* ---------- Osiot ---------- */
.sg-sec { padding: var(--sg-sec) var(--sg-gutter) !important; }
.sg-sec > .e-con-inner { max-width: var(--sg-wrap) !important; padding: 0 !important; }
.sg-sec--paper { background: var(--sg-paper); }
.sg-sec--deep { background: var(--sg-deep); }
.sg-sec--night { background: var(--sg-night); }
.sg-sec.sg-sec--tight { padding-top: 0 !important; }
.sg-head { display: grid !important; grid-template-columns: 1fr 1.618fr; gap: var(--s-3) var(--s-6); align-items: end; margin-bottom: var(--s-6); }
.sg-head > * { min-width: 0; width: auto !important; }
.sg-head--row { grid-template-columns: 1fr auto; }
/* Kultainen jako: 38.2 / 61.8 */
.sg-gold { display: grid !important; grid-template-columns: 1fr 1.618fr; gap: var(--s-6); align-items: start; }
.sg-gold-r { display: grid !important; grid-template-columns: 1.618fr 1fr; gap: var(--s-6); align-items: start; }
.sg-gold > *, .sg-gold-r > * { min-width: 0; width: auto !important; }
.sg-sticky { position: sticky !important; top: 121px; }

/* ---------- Header ---------- */
.sg-header { position: fixed !important; inset: 0 0 auto 0; z-index: 90; padding: 0 var(--sg-gutter) !important; height: 89px; transition: background-color .4s, height .4s var(--sg-ease), box-shadow .4s; }
.sg-header > .e-con-inner { max-width: var(--sg-wrap) !important; height: 100%; align-items: center; flex-wrap: nowrap !important; }
.admin-bar .sg-header { top: 32px; }
.sg-header.is-solid, .sg-header.is-open { background: var(--sg-deep); height: 72px; box-shadow: 0 1px 0 var(--sg-line-inv); }
.sg-nohero .sg-header { background: var(--sg-deep); }
body.sg-nohero { padding-top: 89px; }
.sg-header .sg-h-right { width: auto !important; flex: 0 0 auto !important; margin-left: auto; }
.sg-logo a { display: block; line-height: 0; }
.sg-logo img { width: 144px; height: auto; }
.sg-nav .elementor-nav-menu--main .elementor-item { font-size: 15.5px; font-weight: 500; color: rgba(255,255,255,.88); padding: var(--s-2) var(--s-2); }
.sg-nav .elementor-nav-menu--main .elementor-item:hover, .sg-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: #fff; }
.sg-nav .elementor-nav-menu--main .elementor-item::after { background-color: var(--sg-mint) !important; height: 1px !important; }
.sg-nav .elementor-nav-menu--dropdown { background: var(--sg-deep); }
.sg-nav .elementor-nav-menu--dropdown a { color: #fff !important; font-size: 15.5px; padding: var(--s-2) var(--s-3) !important; }
.sg-nav .elementor-nav-menu--dropdown a:hover { background: var(--sg-petrol) !important; }
.sg-nav .elementor-menu-toggle { background: transparent; color: #fff; font-size: 24px; }
.sg-nav .elementor-menu-toggle svg { fill: #fff; }
.sg-h-cta .elementor-button { min-height: 44px; padding: 0 var(--s-3); font-size: 15px; }
@media (max-width: 1024px) { .sg-h-cta { display: none; } }

/* ---------- Hero ---------- */
.sg-hero { min-height: 100svh; padding: 144px var(--sg-gutter) 0 !important; position: relative; overflow: hidden; background-color: var(--sg-night); }
.sg-hero::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(90deg, rgba(5,44,57,.94) 0%, rgba(5,44,57,.82) 38.2%, rgba(7,59,76,.55) 100%), linear-gradient(0deg, rgba(5,44,57,.9) 0%, rgba(5,44,57,0) 38.2%); }
.sg-hero > .e-con-inner { position: relative; z-index: 1; max-width: var(--sg-wrap) !important; min-height: calc(100svh - 144px); justify-content: space-between; }
.sg-hero__grid { display: grid !important; grid-template-columns: 1.618fr 1fr; gap: var(--s-6); align-items: end; flex-grow: 1 !important; --flex-grow: 1; padding-bottom: var(--s-6) !important; }
.sg-hero__grid > * { min-width: 0; width: auto !important; }
.sg-hero__copy { gap: var(--s-4) !important; }
.sg-hero .sg-h1 .elementor-heading-title { color: #fff; max-width: 13em; }
.sg-hero .sg-lede p { color: rgba(255,255,255,.82); max-width: 32em; }
.sg-actions { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; gap: var(--s-2) !important; }
.sg-actions > * { width: auto !important; }
/* Avainluvut */
.sg-kpi__cap { display: block; padding-bottom: var(--s-2); font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--sg-mint); }
.sg-kpi__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sg-kpi__item { padding: var(--s-3) var(--s-3) var(--s-3) 0; border-top: 1px solid var(--sg-line-inv); }
.sg-kpi__n { display: block; font-size: clamp(26px, 2.6vw, var(--t-3)); font-weight: 700; letter-spacing: -.03em; line-height: 1.1; color: #fff; font-variant-numeric: tabular-nums; }
.sg-kpi__l { display: block; margin-top: 4px; font-size: 14px; line-height: 1.4; color: var(--sg-muted-inv); }

/* Yhtiöiden logorivi */
.sg-logos { display: grid; grid-template-columns: repeat(8, auto); align-items: center; justify-content: space-between; gap: var(--s-3) var(--s-4); padding: var(--s-4) 0; }
.sg-logos a { display: flex; align-items: center; justify-content: center; height: 55px; opacity: .66; transition: opacity .3s; }
.sg-logos a:hover, .sg-logos a:focus-visible { opacity: 1; }
.sg-logos img { width: var(--w); height: var(--h); max-width: none; object-fit: contain; }
.sg-hero .sg-logos { border-top: 1px solid var(--sg-line-inv); }

/* ---------- Kohderyhmäpolut ---------- */
.sg-paths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--sg-line-2); }
.sg-path { display: flex; flex-direction: column; gap: var(--s-2); padding: var(--s-4) var(--s-4) var(--s-4) 0; text-decoration: none; color: var(--sg-ink); position: relative; }
.sg-path + .sg-path { padding-left: var(--s-4); border-left: 1px solid var(--sg-line); }
.sg-path__who { font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--sg-muted); }
.sg-path__h { font-size: var(--t-2); font-weight: 600; line-height: 1.2; letter-spacing: -.02em; transition: color .3s; }
.sg-path__p { font-size: 16px; color: var(--sg-muted); margin: 0; max-width: 24em; }
.sg-path__go { margin-top: auto; padding-top: var(--s-3); display: inline-flex; align-items: center; gap: var(--s-1); font-weight: 600; color: var(--sg-petrol); }
.sg-path__go svg { width: 18px; height: 18px; transition: transform .4s var(--sg-ease); }
.sg-path:hover .sg-path__go svg { transform: translateX(6px); }
.sg-path:hover .sg-path__h { color: var(--sg-petrol); }

/* ---------- Palvelut ---------- */
.sg-svc-rows { border-top: 1px solid var(--sg-line-2); }
.sg-svc-row { display: grid; grid-template-columns: minmax(0, 1fr) 55px; gap: var(--s-1) var(--s-4); align-items: center; padding: var(--s-4) 0; border-bottom: 1px solid var(--sg-line-2); text-decoration: none; color: var(--sg-ink); }
.sg-svc-row h2, .sg-svc-row h3 { margin: 0; font-size: var(--t-2); font-weight: 600; letter-spacing: -.02em; line-height: 1.2; transition: color .3s; }
.sg-svc-row p { grid-column: 1; margin: 0; font-size: 16px; color: var(--sg-muted); max-width: 38em; }
.sg-svc-row .sg-svc-tags { display: block; margin-top: var(--s-2); font-size: 14px; color: var(--sg-petrol); }
.sg-arrow { width: 55px; height: 55px; border-radius: 50%; border: 1px solid var(--sg-line-2); display: grid; place-items: center; color: var(--sg-petrol); transition: background-color .35s var(--sg-ease), color .35s, border-color .35s; }
.sg-arrow svg { width: 20px; height: 20px; transition: transform .45s var(--sg-ease); }
.sg-svc-row .sg-arrow { grid-row: 1 / span 2; grid-column: 2; }
.sg-svc-row:hover h2, .sg-svc-row:hover h3 { color: var(--sg-petrol); }
.sg-svc-row:hover .sg-arrow, .sg-svc-row:focus-visible .sg-arrow { background: var(--sg-petrol); border-color: var(--sg-petrol); color: #fff; }
.sg-svc-row:hover .sg-arrow svg { transform: translateX(3px); }

/* ---------- Kartta ---------- */
.sg-map { position: relative; margin: 0 auto; max-width: 378px; }
.sg-map img { width: 100%; height: auto; display: block; }
.sg-pin { position: absolute; width: 13px; height: 13px; margin: -6.5px 0 0 -6.5px; border-radius: 50%; background: var(--sg-mint); box-shadow: 0 0 0 3px rgba(136,232,183,.22); }
.sg-pin::after { content: ""; position: absolute; inset: -3px; border-radius: 50%; border: 1px solid var(--sg-mint); opacity: 0; animation: sg-ping 3.2s var(--sg-ease) infinite; animation-delay: var(--d, 0s); }
@keyframes sg-ping { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(2.8); opacity: 0; } }
.sg-reach-list { list-style: none; margin: var(--s-4) 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s-4); border-top: 1px solid var(--sg-line); }
.sg-reach-list li { padding: var(--s-2) 0; border-bottom: 1px solid var(--sg-line); font-size: 15.5px; display: flex; justify-content: space-between; gap: var(--s-2); }
.sg-reach-list b { font-weight: 600; }
.sg-reach-list span { color: var(--sg-muted); text-align: right; }

/* ---------- Meistä / arvot ---------- */
.sg-about { position: relative; background-attachment: fixed; }
.sg-about::before { content: ""; position: absolute; inset: 0; background: rgba(5,44,57,.9); }
.sg-about > .e-con-inner { position: relative; }
.sg-values { border-top: 1px solid var(--sg-line-inv); }
.sg-value { display: grid; grid-template-columns: 1fr 1.618fr; gap: var(--s-3) var(--s-6); padding: var(--s-5) 0; border-bottom: 1px solid var(--sg-line-inv); }
.sg-value h3 { margin: 0; font-size: var(--t-1); font-weight: 600; color: var(--sg-mint); letter-spacing: -.01em; line-height: 1.3; }
.sg-value p { margin: 0; font-size: clamp(19px, 1.9vw, var(--t-2)); line-height: 1.45; color: #fff; letter-spacing: -.012em; }
.sg-value p .w { opacity: .3; }

/* ---------- Yhtiöt (portfolio) ---------- */
.sg-cos { display: grid; grid-template-columns: 1fr 1.618fr; gap: var(--s-6); align-items: start; }
.sg-cos__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--sg-line-2); }
.sg-cos__list li { margin: 0; }
.sg-cos__tab { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px var(--s-3); width: 100%; padding: var(--s-3) 0 var(--s-3) var(--s-3); background: none !important; border: 0 !important; border-bottom: 1px solid var(--sg-line) !important; color: var(--sg-ink) !important; text-align: left; cursor: pointer; font: inherit; position: relative; transition: padding .4s var(--sg-ease); border-radius: 0 !important; }
.sg-cos__tab::before { content: ""; position: absolute; left: 0; top: var(--s-3); bottom: var(--s-3); width: 2px; background: var(--sg-coral); transform: scaleY(0); transform-origin: top; transition: transform .45s var(--sg-ease); }
.sg-cos__tab b { font-size: var(--t-1); font-weight: 600; letter-spacing: -.015em; line-height: 1.25; transition: color .3s; }
.sg-cos__tab small { grid-column: 1; font-size: 14px; color: var(--sg-muted); line-height: 1.4; }
.sg-cos__tab .sg-cos__n { grid-row: 1 / span 2; grid-column: 2; font-size: 13px; color: var(--sg-muted); font-variant-numeric: tabular-nums; }
.sg-cos__tab:hover b, .sg-cos__tab[aria-selected="true"] b { color: var(--sg-petrol); }
.sg-cos__tab[aria-selected="true"]::before { transform: scaleY(1); }
.sg-cos__tab[aria-selected="true"] { padding-left: var(--s-4); }
.sg-cos__stage { position: sticky; top: 121px; }
.sg-co { display: none; }
.sg-co.is-active { display: block; }
.sg-co.is-switched { animation: sg-fade .6s var(--sg-ease); }
@keyframes sg-fade { from { opacity: 0; transform: translateY(13px); } to { opacity: 1; transform: none; } }
.sg-co__media { position: relative; aspect-ratio: 1.618 / 1; overflow: hidden; border-radius: var(--sg-r); background: var(--sg-deep); }
.sg-co__media img.sg-co__photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.sg-co__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(5,44,57,.88) 0%, rgba(5,44,57,.1) 61.8%); }
.sg-co__logo { position: absolute; left: var(--s-4); bottom: var(--s-4); z-index: 1; line-height: 0; }
.sg-co__logo img { width: var(--w); height: var(--h); object-fit: contain; }
.sg-co__body { display: grid; grid-template-columns: 1.618fr 1fr; gap: var(--s-4); padding-top: var(--s-4); }
.sg-co__body p { margin: 0; font-size: 16.5px; line-height: 1.618; color: var(--sg-ink); }
.sg-co__meta { margin: 0; display: flex; flex-direction: column; gap: var(--s-2); font-size: 15px; }
.sg-co__meta dt { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--sg-muted); }
.sg-co__meta dd { margin: 2px 0 0; font-weight: 500; }
.sg-co__site { display: inline-flex; gap: var(--s-1); align-items: center; margin-top: var(--s-1); font-weight: 600; color: var(--sg-petrol); text-decoration: none; border-bottom: 1px solid var(--sg-coral); align-self: flex-start; padding-bottom: 3px; }
.sg-co__site:hover { color: var(--sg-ink); border-color: var(--sg-ink); }
.sg-co__h { display: none; }

/* ---------- Liity verkostoon ---------- */
.sg-join .sg-h2 .elementor-heading-title { color: #fff; max-width: 13em; }
.sg-join a[href^="tel:"] { text-decoration: underline; text-underline-offset: 3px; }
.sg-co__foot { display: flex; flex-direction: column; gap: var(--s-2); }
.sg-join-facts { list-style: none; margin: 0 0 var(--s-4); padding: 0; border-top: 1px solid var(--sg-line-inv); }
.sg-join-facts li { padding: var(--s-2) 0; border-bottom: 1px solid var(--sg-line-inv); color: rgba(255,255,255,.86); font-size: 16.5px; display: flex; gap: var(--s-2); }
.sg-join-facts li::before { content: ""; flex: none; width: 13px; height: 1px; margin-top: 13px; background: var(--sg-mint); }

/* ---------- Ajankohtaista ---------- */
.sg-posts .elementor-posts-container { gap: var(--s-5) var(--s-4) !important; }
.sg-posts .elementor-post { display: flex; flex-direction: column; background: transparent; }
.sg-posts .elementor-post__thumbnail__link { margin-bottom: var(--s-3) !important; overflow: hidden; display: block; border-radius: var(--sg-r); }
.sg-posts .elementor-post__thumbnail { padding-bottom: 61.8% !important; background: var(--sg-stone); }
.sg-posts .elementor-post__thumbnail img { transition: transform 1.2s var(--sg-ease); }
.sg-posts .elementor-post:hover .elementor-post__thumbnail img { transform: scale(1.04) translate(-50%, -50%) !important; }
.sg-posts .elementor-post__text { display: flex !important; flex-direction: column; }
.sg-posts .elementor-post__meta-data { order: -1; margin: 0 0 var(--s-1) !important; font-size: 13px !important; font-weight: 600; letter-spacing: .06em; color: var(--sg-muted) !important; }
.sg-posts .elementor-post__title { margin: 0 !important; }
.sg-posts .elementor-post__title a { font-size: var(--t-1) !important; font-weight: 600 !important; line-height: 1.3 !important; letter-spacing: -.015em; color: var(--sg-ink) !important; text-decoration: none; }
.sg-posts .elementor-post:hover .elementor-post__title a { color: var(--sg-petrol) !important; }
.sg-posts .elementor-post__excerpt p { font-size: 16px; color: var(--sg-muted) !important; margin: var(--s-2) 0 0; }
.sg-posts .elementor-pagination { margin-top: var(--s-6); font-weight: 600; }
.sg-posts .elementor-pagination .page-numbers { padding: var(--s-1) var(--s-2); }
.sg-posts .elementor-pagination .current { color: var(--sg-coral); }

/* ---------- Yhteystiedot + lomake ---------- */
.sg-contact { display: grid !important; grid-template-columns: 1fr 1.618fr; gap: var(--s-6); align-items: start; }
.sg-contact > * { min-width: 0; width: auto !important; }
.sg-people { display: grid; grid-template-columns: 1fr; margin: var(--s-4) 0; border-top: 1px solid var(--sg-line-2); }
.sg-people > div { padding: var(--s-3) 0; border-bottom: 1px solid var(--sg-line); display: grid; grid-template-columns: 1fr auto; gap: 2px var(--s-3); }
.sg-people b { font-size: 17px; font-weight: 600; }
.sg-people span { grid-column: 1; font-size: 14.5px; color: var(--sg-muted); line-height: 1.4; }
.sg-people .sg-people__c { grid-column: 2; grid-row: 1 / span 2; text-align: right; font-size: 15px; line-height: 1.5; color: var(--sg-ink); }
.sg-people a { text-decoration: none; display: flex; align-items: center; justify-content: flex-end; min-height: 26px; }
.sg-people a:hover { color: var(--sg-petrol); text-decoration: underline; }
.sg-company p { font-size: 15.5px; line-height: 1.55; margin: 0 0 var(--s-2); }
.sg-company details { margin-top: var(--s-2); font-size: 15.5px; border-top: 1px solid var(--sg-line); padding-top: var(--s-2); }
.sg-company summary { cursor: pointer; font-weight: 600; }
.sg-company details p { margin: var(--s-2) 0 0; }
.sg-formcard { background: var(--sg-deep); color: #fff; padding: var(--s-5) !important; border-radius: var(--sg-r); gap: var(--s-3) !important; }
.sg-form .elementor-field-group { margin-bottom: var(--s-3); }
.sg-form .elementor-field-label { color: rgba(255,255,255,.86) !important; font-size: 14.5px; font-weight: 500; margin-bottom: 6px; }
.sg-form .elementor-field { background: rgba(255,255,255,.05) !important; border: 1px solid rgba(255,255,255,.24) !important; border-radius: var(--sg-r) !important; color: #fff !important; font-size: 17px !important; padding: var(--s-2) var(--s-3) !important; min-height: 55px; transition: border-color .25s, background-color .25s; }
.sg-form .elementor-field::placeholder { color: rgba(255,255,255,.45); }
.sg-form .elementor-field:focus { border-color: var(--sg-mint) !important; background: rgba(255,255,255,.08) !important; outline: none; }
.sg-form .elementor-button { background: var(--sg-coral) !important; color: var(--sg-ink) !important; border-radius: var(--sg-r) !important; min-height: 55px; padding: 0 var(--s-5) !important; font-size: 17px !important; font-weight: 600 !important; }
.sg-form .elementor-button:hover { background: #fff !important; }
.sg-form .elementor-field-type-acceptance .elementor-field-subgroup { display: flex; }
.sg-form .elementor-field-type-acceptance .elementor-field-option { display: flex !important; flex-direction: row; gap: var(--s-2); align-items: flex-start; }
.sg-form .elementor-acceptance-field { min-height: 0 !important; padding: 0 !important; width: 18px !important; height: 18px !important; border: 0 !important; background: none !important; }
.sg-form .elementor-field-type-acceptance input { width: 18px; height: 18px; margin-top: 3px; flex: none; accent-color: var(--sg-coral); }
.sg-form .elementor-field-type-acceptance label, .sg-form .elementor-field-type-acceptance a { color: var(--sg-muted-inv); font-size: 14px; }
.sg-form .elementor-message { color: var(--sg-mint); }

/* ---------- Footer ---------- */
.sg-footer { background: var(--sg-night); color: #fff; padding: var(--s-6) var(--sg-gutter) var(--s-4) !important; }
.sg-footer > .e-con-inner { max-width: var(--sg-wrap) !important; }
.sg-f-top { display: grid !important; grid-template-columns: 1fr 1.618fr; gap: var(--s-5) var(--s-6); padding-bottom: var(--s-5); border-bottom: 1px solid var(--sg-line-inv); }
.sg-f-top > * { min-width: 0; width: auto !important; }
.sg-f-claim .elementor-heading-title { font-size: clamp(var(--t-2), 2.8vw, var(--t-3)); font-weight: 700; letter-spacing: -.025em; line-height: 1.12; color: #fff; max-width: 12em; }
.sg-f-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4); }
.sg-f-cols h2 { font-size: 12px; font-weight: 600; color: var(--sg-mint); margin: 0 0 var(--s-2); letter-spacing: .08em; text-transform: uppercase; }
.sg-f-cols ul { list-style: none; margin: 0; padding: 0; }
.sg-f-cols li { margin: 0 0 var(--s-1); }
.sg-f-cols a { color: rgba(255,255,255,.8); text-decoration: none; font-size: 15.5px; }
.sg-f-cols a:hover { color: #fff; }
.sg-footer .sg-logos { padding: var(--s-5) 0; border-bottom: 1px solid var(--sg-line-inv); }
.sg-f-bar { display: flex; justify-content: space-between; gap: var(--s-2); flex-wrap: wrap; padding-top: var(--s-3); font-size: 13.5px; color: rgba(255,255,255,.55); }
.sg-f-bar p { margin: 0; }
.sg-f-bar a { color: rgba(255,255,255,.72); }

/* ---------- Sisäsivut ---------- */
.sg-phero { background: var(--sg-deep); padding: clamp(144px, 15vw, 233px) var(--sg-gutter) var(--s-6) !important; position: relative; overflow: hidden; }
.sg-phero.has-img::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,44,57,.96) 0%, rgba(5,44,57,.86) 61.8%, rgba(7,59,76,.6) 100%); }
.sg-phero > .e-con-inner { position: relative; max-width: var(--sg-wrap) !important; gap: var(--s-4) !important; }
.sg-phero h1.elementor-heading-title { font-size: clamp(var(--t-3), 5vw, var(--t-6)); font-weight: 700; letter-spacing: -.032em; line-height: 1.05; color: #fff; max-width: 15em; }
.sg-phero .sg-lede p { max-width: 38em; }
.sg-crumbs { font-size: 13.5px; color: var(--sg-mint); }
.sg-crumbs a { color: var(--sg-mint); text-decoration: none; }
.sg-crumbs a:hover { text-decoration: underline; }
.sg-crumbs span { color: rgba(255,255,255,.5); margin: 0 var(--s-1); }
.sg-prose { max-width: 40em; }
.sg-prose h2 { font-size: clamp(var(--t-2), 2.6vw, var(--t-3)); font-weight: 700; letter-spacing: -.022em; line-height: 1.15; margin: var(--s-5) 0 var(--s-3); }
.sg-prose h2:first-child { margin-top: 0; }
.sg-prose h3 { font-size: var(--t-1); font-weight: 600; margin: var(--s-4) 0 var(--s-2); }
.sg-prose p, .sg-prose li { font-size: 17.5px; line-height: 1.7; }
.sg-prose ul, .sg-prose ol { padding-left: 1.2em; margin: 0 0 var(--s-3); }
.sg-prose li { margin-bottom: var(--s-1); }
.sg-prose a { color: var(--sg-petrol); text-decoration-color: var(--sg-coral); text-underline-offset: 3px; }
.sg-split { display: grid !important; grid-template-columns: 1.618fr 1fr; gap: var(--s-6); align-items: start; }
.sg-split > * { min-width: 0; width: auto !important; }
.sg-aside { position: sticky !important; top: 121px; gap: var(--s-3) !important; }
.sg-scope { background: var(--sg-paper); border-radius: var(--sg-r); padding: var(--s-4) !important; gap: var(--s-2) !important; }
.sg-scope ul { list-style: none; margin: 0; padding: 0; }
.sg-scope li { padding: var(--s-2) 0; border-bottom: 1px solid var(--sg-line); font-size: 16px; font-weight: 500; display: flex; gap: var(--s-2); }
.sg-scope li::before { content: ""; flex: none; width: 13px; height: 1px; margin-top: 13px; background: var(--sg-coral); }
.sg-scope li:last-child { border-bottom: 0; }
.sg-scope a { color: var(--sg-petrol); }
.sg-cta-band { background: var(--sg-deep); }
.sg-cta-band > .e-con-inner { display: grid !important; grid-template-columns: 1.618fr 1fr; gap: var(--s-4) var(--s-6); align-items: end; }
.sg-cta-band > .e-con-inner > * { width: auto !important; }
.sg-cta-band .sg-h2 .elementor-heading-title { color: #fff; max-width: 14em; }
.sg-cta-band .elementor-widget-button { justify-self: end; }
.sg-more { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--sg-line-2); }
.sg-more a { display: flex; flex-direction: column; justify-content: space-between; gap: var(--s-5); min-height: 178px; padding: var(--s-3) var(--s-3) var(--s-3) 0; border-bottom: 1px solid var(--sg-line-2); text-decoration: none; color: var(--sg-ink); font-size: var(--t-1); font-weight: 600; line-height: 1.25; letter-spacing: -.015em; }
.sg-more a + a { padding-left: var(--s-3); border-left: 1px solid var(--sg-line); }
.sg-more a:hover { color: var(--sg-petrol); }
.sg-more a:hover .sg-arrow { background: var(--sg-petrol); border-color: var(--sg-petrol); color: #fff; }
.sg-more .sg-arrow { width: 44px; height: 44px; }

/* Artikkeli */
.sg-article > .e-con-inner { max-width: 766px !important; }
.sg-phero .sg-post-meta .elementor-icon-list-icon { display: none; }
.sg-phero .sg-post-meta .elementor-icon-list-text { color: var(--sg-mint); font-size: 15px; }
.sg-phero:has(.sg-post-meta) > .e-con-inner { max-width: 766px !important; }
.sg-phero:has(.sg-post-meta) h1.elementor-heading-title { font-size: clamp(var(--t-3), 4.2vw, var(--t-5)); }
.sg-post-img img { border-radius: var(--sg-r); width: 100%; aspect-ratio: 1.618 / 1; object-fit: cover; }
.sg-post-body p { font-size: 18px; line-height: 1.75; }

/* Whistleblowing-askeleet */
.sg-steps { counter-reset: s; list-style: none; padding: 0 !important; border-top: 1px solid var(--sg-line); }
.sg-steps li { counter-increment: s; position: relative; padding: var(--s-2) 0 var(--s-2) var(--s-5) !important; border-bottom: 1px solid var(--sg-line); margin: 0 !important; }
.sg-steps li::before { content: counter(s, decimal-leading-zero); position: absolute; left: 0; top: var(--s-2); font-weight: 700; font-size: 15px; color: var(--sg-petrol); font-variant-numeric: tabular-nums; }

/* Heron sisääntulo: pelkkä CSS-siirtymä (läpinäkyvyys pysyy 1 → LCP piirtyy heti) */
@keyframes sg-rise-in { from { transform: translateY(21px); } to { transform: none; } }
.sg-rise { animation: none; } /* Ei sisääntuloa herossa: animoitu teksti viivästytti LCP:tä ~1 s (mitattu 27.9.) */
.sg-hero__copy > .sg-rise:nth-child(2) { animation-delay: .055s; }
.sg-hero__copy > .sg-rise:nth-child(3) { animation-delay: .11s; }
.sg-hero__copy > .sg-rise:nth-child(4) { animation-delay: .165s; }
.sg-kpi.sg-rise, .sg-rise.sg-kpi { animation-delay: .22s; }

/* ---------- Responsiivisuus ---------- */
@media (max-width: 1024px) {
  .sg-gold, .sg-gold-r, .sg-head, .sg-split, .sg-contact, .sg-cos, .sg-f-top, .sg-cta-band > .e-con-inner, .sg-hero__grid { grid-template-columns: 1fr !important; gap: var(--s-5) !important; }
  .sg-sticky, .sg-aside, .sg-cos__stage { position: static !important; }
  .sg-cta-band .elementor-widget-button { justify-self: start; }
  .sg-more { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sg-more a:nth-child(3) { padding-left: 0; border-left: 0; }
  .sg-about { background-attachment: scroll; }
  /* Yhtiöt: kaikki näkyviin pinona */
  .sg-cos__list { display: none; }
  .sg-co { display: block; margin-bottom: var(--s-5); animation: none !important; }
  .sg-co__h { display: block; margin: 0 0 var(--s-2); font-size: var(--t-1); font-weight: 600; }
  .sg-hero__grid { align-items: start; }
}
@media (max-width: 767px) {
  body { font-size: 16.5px; }
  .sg-header { height: 72px; }
  .sg-logo img { width: 116px; }
  .sg-hero { padding-top: 110px !important; }
  .sg-hero > .e-con-inner { min-height: calc(100svh - 110px); }
  .sg-hero .sg-logos { display: none; }
  .sg-paths { grid-template-columns: 1fr; }
  .sg-path, .sg-path + .sg-path { padding: var(--s-3) 0; border-left: 0; border-bottom: 1px solid var(--sg-line); }
  .sg-value { grid-template-columns: 1fr; gap: var(--s-2); padding: var(--s-4) 0; }
  .sg-svc-row { grid-template-columns: 1fr 44px; padding: var(--s-3) 0; }
  .sg-arrow { width: 44px; height: 44px; }
  .sg-co__body { grid-template-columns: 1fr; }
  .sg-co__logo { left: var(--s-3); bottom: var(--s-3); }
  .sg-reach-list { grid-template-columns: 1fr; }
  .sg-people > div { grid-template-columns: 1fr; }
  .sg-people .sg-people__c { grid-column: 1; grid-row: auto; text-align: left; margin-top: var(--s-1); }
  .sg-people a { justify-content: flex-start; }
  .sg-formcard { padding: var(--s-4) var(--s-3) !important; }
  .sg-f-cols { grid-template-columns: 1fr 1fr; }
  .sg-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); justify-items: start; gap: var(--s-3) var(--s-4); }
  .sg-logos img { width: calc(var(--w) * .72); height: calc(var(--h) * .72); }
  .sg-more { grid-template-columns: 1fr; }
  .sg-more a, .sg-more a + a { padding-left: 0; border-left: 0; min-height: 0; flex-direction: row; align-items: center; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .sg-pin::after, .sg-co.is-active { animation: none; }
  .sg-value p .w { opacity: 1 !important; }
  .sg-rise { animation: none; }
  * { transition-duration: .01ms !important; }
}

/* =========================================================================
   Laitekoot (Elementorin rajat): mobiili ≤767 · iso mobiili 768–880 · tabletti ≤1024
   · tabletti vaaka 1025–1200 · kannettava 1201–1366 · työpöytä 1367–2399 · laajakuva ≥2400
   ========================================================================= */
/* Pieni mobiili (≤380) */
@media (max-width: 380px) {
  :root { --sg-gutter: 18px; }
  .sg-h1 .elementor-heading-title { font-size: 38px; }
  .sg-h2 .elementor-heading-title { font-size: 31px; }
  .sg-kpi__grid { grid-template-columns: 1fr 1fr; }
  .sg-kpi__n { font-size: 24px; }
  .sg-btn .elementor-button, .sg-btn-ghost .elementor-button, .sg-btn-light .elementor-button { padding: 0 var(--s-3); }
}
/* Iso mobiili (768–880): kaksi palstaa polkuihin ja lukuihin */
@media (min-width: 768px) and (max-width: 880px) {
  .sg-paths { grid-template-columns: 1fr; }
  .sg-path, .sg-path + .sg-path { padding: var(--s-3) 0; border-left: 0; border-bottom: 1px solid var(--sg-line); }
  .sg-kpi__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* Tabletti (881–1024) */
@media (min-width: 881px) and (max-width: 1024px) {
  .sg-kpi__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sg-co__body { grid-template-columns: 1.618fr 1fr; }
}
/* Tabletti vaaka (1025–1200): tiiviimpi navigaatio ja välit */
@media (min-width: 1025px) and (max-width: 1200px) {
  :root { --sg-gutter: 34px; }
  .sg-nav .elementor-nav-menu--main .elementor-item { font-size: 14.5px; padding: var(--s-2) 10px; }
  .sg-gold, .sg-gold-r, .sg-head, .sg-split, .sg-contact, .sg-cos, .sg-hero__grid, .sg-f-top { gap: var(--s-5) !important; }
  .sg-kpi__n { font-size: 26px; }
  .sg-cos__tab b { font-size: 19px; }
  .sg-co__body { grid-template-columns: 1fr; gap: var(--s-3); }
  .sg-more { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sg-more a:nth-child(3) { padding-left: 0; border-left: 0; }
}
/* Logorivi kahdelle riville tabletilla */
@media (min-width: 768px) and (max-width: 1200px) {
  .sg-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); justify-items: start; row-gap: var(--s-4); }
}
/* Kannettava (1201–1366) */
@media (min-width: 1201px) and (max-width: 1366px) {
  .sg-gold, .sg-gold-r, .sg-head, .sg-split, .sg-contact, .sg-cos, .sg-hero__grid { gap: 72px !important; }
  .sg-nav .elementor-nav-menu--main .elementor-item { padding: var(--s-2) 11px; }
}
/* Iso työpöytä (≥1920) */
@media (min-width: 1920px) {
  :root { --sg-wrap: 1380px; }
}
/* Laajakuva (≥2400): suurempi mitta ja perusfontti (φ-asteikko skaalautuu mukana) */
@media (min-width: 2400px) {
  :root { --sg-wrap: 1600px; --t-0: 19px; --t-1: 24.2px; --t-2: 30.7px; --t-3: 39.1px; --t-4: 49.7px; --t-5: 63.3px; --t-6: 80.5px; --t-7: 102.4px; --sg-sec: 178px; }
  body { font-size: 19px; }
  .sg-logo img { width: 178px; }
  .sg-header { height: 110px; }
  .sg-nav .elementor-nav-menu--main .elementor-item { font-size: 17px; }
}

/* =========================================================================
   Liike v2 – tunnushetket: signaaliviiva ja verkko. Ajoitukset φ-rytmissä.
   ========================================================================= */
:root { --d-1: .236s; --d-2: .382s; --d-3: .618s; --d-4: 1s; --d-5: 1.618s; --sg-wire: var(--sg-coral); }
.sg-inv { --sg-wire: var(--sg-mint); }

/* Signaaliviiva: piirtyy hiusviivan päälle vasemmalta oikealle vierityksen mukana */
.sg-wire-host { position: relative; }
.sg-wire { position: absolute; left: 0; right: 0; top: -2px; height: 6px; pointer-events: none; z-index: 1; clip-path: inset(0 100% 0 0); }
.sg-wire::before { content: ""; position: absolute; left: 0; right: 0; top: 2px; height: 2px; background: var(--sg-wire); }
.sg-wire::after { content: ""; position: absolute; right: 0; top: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--sg-wire); }

/* Otsikon pieni viiva piirtyy, kun osio tulee näkyviin (vain JS:n kanssa) */
.sg-gsap .sg-eyebrow .elementor-heading-title::before { transform: scaleX(0); transform-origin: left; transition: transform var(--d-3) var(--sg-ease) .1s; }
.sg-gsap .sg-eyebrow.is-in .elementor-heading-title::before { transform: scaleX(1); }

/* Kartan verkko */
.sg-net { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.sg-net path { fill: none; stroke-linecap: round; }
.sg-net__base { stroke: rgba(136, 232, 183, .5); stroke-width: .34; }
.sg-net__flow { stroke: var(--sg-mint); stroke-width: .55; stroke-dashoffset: 1; opacity: 0; }
.sg-net.is-live .sg-net__flow { opacity: .9; animation-name: sg-flow; animation-duration: var(--dur, 4.236s); animation-delay: var(--delay, 0s); animation-timing-function: linear; animation-iteration-count: infinite; }
@keyframes sg-flow { to { stroke-dashoffset: 0; } }
.sg-map .sg-pin { z-index: 1; }

/* Hero: kuvakerros parallaksia varten (JS siirtää taustan tähän kerrokseen vasta latauksen jälkeen) */
.sg-media { position: absolute; inset: -6% 0 -6% 0; z-index: -1; background-size: cover; background-position: inherit; will-change: transform; }
.sg-hero.has-media, .sg-phero.has-media { background-image: none !important; isolation: isolate; }
.sg-hero.has-media::before, .sg-phero.has-media::before { z-index: 0; }

/* Yhtiövälilehdet: GSAP hoitaa vaihdon, CSS-häivytys vain varalla */
.sg-gsap .sg-co.is-switched { animation: none; }
.sg-co__media { will-change: auto; }

/* Mikrointeraktiot φ-rytmissä */
.sg-btn .elementor-button, .sg-btn-ghost .elementor-button, .sg-btn-light .elementor-button, .sg-link .elementor-button { transition-duration: var(--d-2); }
.sg-arrow { transition-duration: var(--d-2); }
.sg-arrow svg, .sg-path__go svg { transition: transform var(--d-2) var(--sg-ease); }
.sg-svc-row:hover .sg-arrow svg, .sg-more a:hover .sg-arrow svg { transform: translateX(4px); }
.sg-header { transition: background-color var(--d-3) var(--sg-ease), height var(--d-3) var(--sg-ease), box-shadow var(--d-3); }
.sg-cos__tab, .sg-cos__tab::before { transition-duration: var(--d-2); }
.sg-logos a { transition: opacity var(--d-2) var(--sg-ease); }
.sg-nav .elementor-nav-menu--main .elementor-item::after { transition-duration: var(--d-2) !important; }

/* Mobiilivalikko: kohdat liukuvat porrastetusti */
@keyframes sg-item-in { from { opacity: 0; transform: translateX(-13px); } to { opacity: 1; transform: none; } }
.sg-nav .elementor-menu-toggle.elementor-active ~ .elementor-nav-menu--dropdown .menu-item { animation: sg-item-in var(--d-2) var(--sg-ease) both; }
.sg-nav .elementor-menu-toggle.elementor-active ~ .elementor-nav-menu--dropdown .menu-item:nth-child(2) { animation-delay: .034s; }
.sg-nav .elementor-menu-toggle.elementor-active ~ .elementor-nav-menu--dropdown .menu-item:nth-child(3) { animation-delay: .055s; }
.sg-nav .elementor-menu-toggle.elementor-active ~ .elementor-nav-menu--dropdown .menu-item:nth-child(4) { animation-delay: .089s; }
.sg-nav .elementor-menu-toggle.elementor-active ~ .elementor-nav-menu--dropdown .menu-item:nth-child(5) { animation-delay: .144s; }
.sg-nav .elementor-menu-toggle.elementor-active ~ .elementor-nav-menu--dropdown .menu-item:nth-child(n+6) { animation-delay: .233s; }

@media (prefers-reduced-motion: reduce) {
  .sg-wire { display: none; }
  .sg-net.is-live .sg-net__flow { animation: none; opacity: 0; }
  .sg-nav .menu-item { animation: none !important; }
}

/* ---------- Ura: avoimet paikat (Jobilla RSS) ---------- */
.sg-jobs__filters { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-bottom: var(--s-4); }
.sg-jobs__filters[hidden], .sg-jobs__field[hidden] { display: none; }
.sg-jobs__field { flex: 1 1 200px; margin: 0; }
.sg-jobs__field--q { flex: 1.618 1 280px; }
.sg-jobs__field input, .sg-jobs__field select { width: 100%; min-height: 55px; padding: 0 var(--s-3); font: inherit; font-size: 16px; color: var(--sg-ink); background: #fff; border: 1px solid var(--sg-line-2); border-radius: var(--sg-r); }
.sg-jobs__field input:focus, .sg-jobs__field select:focus { outline: none; border-color: var(--sg-petrol); box-shadow: 0 0 0 3px rgba(15,76,100,.15); }
.sg-jobs__count { font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--sg-muted); margin: 0 0 var(--s-2); }
.sg-jobs__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--sg-line-2); }
.sg-jobs__list .sg-job { margin: 0; }
.sg-jobs__list .sg-job[hidden] { display: none; }
.sg-job__meta { display: block; margin-bottom: 4px; font-size: 14px; font-weight: 600; color: var(--sg-petrol); }
.sg-job__dl { display: block; margin-top: 6px; font-size: 14px; color: var(--sg-muted); }
.sg-jobs__empty { padding: var(--s-5); background: var(--sg-paper); border-radius: var(--sg-r); max-width: 766px; }
.sg-jobs__empty h3 { margin: 0 0 var(--s-2); font-size: var(--t-2); font-weight: 600; letter-spacing: -.02em; }
.sg-jobs__empty p { margin: 0 0 var(--s-2); color: var(--sg-muted); }
.sg-jobs__empty a { color: var(--sg-petrol); font-weight: 600; text-decoration-color: var(--sg-coral); text-underline-offset: 3px; }
.sg-jobs__list:empty { border-top: 0; }
.sg-jobs .sg-svc-row h3, .sg-svc-row h2, .sg-svc-row h3 { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; }
@media (max-width: 767px) {
  .sg-svc-row { column-gap: var(--s-2); }
  .sg-jobs .sg-svc-row h3, .sg-svc-row h2, .sg-svc-row h3 { overflow-wrap: anywhere; }
}

/* =========================================================================
   Korjaukset 28.9.2026
   ========================================================================= */
/* Ankkurilinkit: osion otsikko laskeutuu 34 px headerin alle (osion yläpadding jää piiloon headerin taakse) */
.sg-sec[id], section[id].sg-sec { scroll-margin-top: calc(72px + 34px - var(--sg-sec)); }
#yhteys { scroll-margin-top: calc(72px + 34px - var(--sg-sec)); }

/* Kartta: paikkakunnan nimi hiiren tai näppäimistön kohdistuksella */
.sg-pin { cursor: default; outline: none; }
.sg-pin::before { content: ""; position: absolute; inset: -10px; } /* isompi osuma-alue */
.sg-pin__name { position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translate(-50%, 6px); padding: 5px 10px; border-radius: var(--sg-r); background: var(--sg-ink); color: #fff; font-size: 13px; font-weight: 600; line-height: 1.2; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity var(--d-2) var(--sg-ease), transform var(--d-2) var(--sg-ease); z-index: 3; }
.sg-pin__name::after { content: ""; position: absolute; left: 50%; top: 100%; margin-left: -5px; border: 5px solid transparent; border-top-color: var(--sg-ink); }
.sg-pin:hover .sg-pin__name, .sg-pin:focus-visible .sg-pin__name { opacity: 1; transform: translate(-50%, 0); }
.sg-pin:hover, .sg-pin:focus-visible { z-index: 3; box-shadow: 0 0 0 5px rgba(136,232,183,.35); }

/* Yhtiölista: selite */
.sg-reach-cap { margin: var(--s-4) 0 0; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--sg-muted); }
.sg-reach-cap + .sg-reach-list { margin-top: var(--s-2); }

/* Konesalit ja datakeskukset */
.sg-dc { background: var(--sg-night); }
.sg-dc .sg-h2 .elementor-heading-title { color: #fff; max-width: 14em; }
.sg-dc__media { position: relative; margin: 0; border-radius: var(--sg-r); overflow: hidden; aspect-ratio: 1 / 1.1; background: var(--sg-deep); }
.sg-dc__media > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sg-dc__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,44,57,.55) 0%, rgba(5,44,57,0) 38.2%, rgba(5,44,57,.2) 61.8%, rgba(5,44,57,.85) 100%); pointer-events: none; }
.sg-dc__logo { position: absolute; left: var(--s-4); top: var(--s-4); z-index: 1; line-height: 0; }
.sg-dc__logo img { width: var(--w); height: var(--h); }
.sg-dc__badge { position: absolute; left: var(--s-4); right: var(--s-4); bottom: var(--s-4); z-index: 1; display: flex; align-items: center; gap: var(--s-3); padding: var(--s-2) var(--s-3); background: #fff; border-radius: var(--sg-r); color: var(--sg-ink); font-size: 14.5px; font-weight: 500; line-height: 1.35; }
.sg-dc__badge img { width: 89px; height: auto; flex: none; }
@media (max-width: 1024px) { .sg-dc__media { aspect-ratio: 1.618 / 1; } }
@media (max-width: 767px) { .sg-dc__media { aspect-ratio: 1 / 1; } .sg-dc__badge { left: var(--s-2); right: var(--s-2); bottom: var(--s-2); font-size: 13.5px; } .sg-dc__badge img { width: 68px; } }

/* Footer: somekuvakkeet alapalkin keskellä */
.sg-f-bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; }
.sg-f-bar > :last-child { justify-self: end; }
.sg-social { display: flex; gap: var(--s-2); justify-content: center; }
.sg-social a { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--sg-line-inv); display: grid; place-items: center; color: #fff; transition: background-color var(--d-2) var(--sg-ease), border-color var(--d-2), color var(--d-2); }
.sg-social a:hover, .sg-social a:focus-visible { background: var(--sg-mint); border-color: var(--sg-mint); color: var(--sg-ink); }
.sg-social svg { width: 18px; height: 18px; fill: currentColor; }
@media (max-width: 767px) { .sg-f-bar { grid-template-columns: 1fr; justify-items: center; text-align: center; row-gap: var(--s-3); } .sg-f-bar > :last-child { justify-self: center; } .sg-social { order: -1; } }

/* Kartan kuvasuhde lukittu: LiteSpeedin laiskan latauksen paikkamerkki (1x1) teki kartasta neliön → ankkurit laskeutuivat väärin */
.sg-map > img { aspect-ratio: 1192 / 2560; height: auto; }
.sg-dc__badge { font-style: normal; }
@media (min-width: 1025px) {
  .sg-dc .sg-gold-r { align-items: stretch; }
  .sg-dc__media { aspect-ratio: auto; height: 100%; min-height: 540px; }
}

/* ── Ura: ilmoituskortit (29.9.) – kuva 38,2 % / teksti 61,8 %, koko kortti klikattava ── */
.sg-jobs__list { display: grid; gap: var(--s-4); border-top: 0; }
.sg-jobcard { position: relative; display: grid; grid-template-columns: minmax(0, 38.2fr) minmax(0, 61.8fr); background: #fff; border: 1px solid var(--sg-line-2); border-radius: var(--sg-r); overflow: hidden; transition: border-color .35s var(--sg-ease), box-shadow .35s var(--sg-ease), transform .35s var(--sg-ease); }
.sg-jobcard--noimg { grid-template-columns: minmax(0, 1fr); }
.sg-jobcard:hover { border-color: var(--sg-petrol); box-shadow: 0 13px 34px rgba(6,47,61,.10); transform: translateY(-2px); }
.sg-jobcard:focus-within { outline: 2px solid var(--sg-petrol); outline-offset: 3px; }
.sg-jobcard__media { margin: 0; position: relative; min-height: 280px; background: var(--sg-paper); overflow: hidden; }
.sg-jobcard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--sg-ease); }
.sg-jobcard:hover .sg-jobcard__media img { transform: scale(1.03); }
.sg-jobcard__body { display: flex; flex-direction: column; gap: var(--s-2); padding: var(--s-5); }
.sg-jobcard__meta { display: flex; flex-wrap: wrap; gap: 4px 13px; margin: 0; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--sg-petrol); }
.sg-jobcard__meta span:not(:last-child)::after { content: ''; display: inline-block; width: 4px; height: 4px; margin: 0 0 2px 13px; border-radius: 50%; background: var(--sg-coral); vertical-align: middle; }
.sg-jobcard__title { margin: 0; font-size: var(--t-3); font-weight: 600; letter-spacing: -.02em; line-height: 1.15; hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; }
.sg-jobcard__title a { color: var(--sg-ink); text-decoration: none; }
.sg-jobcard__title a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.sg-jobcard__title a:focus-visible { outline: none; }
.sg-jobcard__lead { margin: 0; font-size: 19px; font-weight: 500; line-height: 1.4; color: var(--sg-ink); }
.sg-jobcard__text { margin: 0; max-width: 62ch; color: var(--sg-muted); line-height: 1.6; }
.sg-jobcard__cta { display: flex; align-items: center; gap: var(--s-2); margin: auto 0 0; padding-top: var(--s-2); font-weight: 600; color: var(--sg-petrol); }
.sg-jobcard__cta .sg-arrow { width: 44px; height: 44px; }
.sg-jobcard:hover .sg-jobcard__cta .sg-arrow { background: var(--sg-petrol); border-color: var(--sg-petrol); color: #fff; }
.sg-jobcard:hover .sg-jobcard__cta .sg-arrow svg { transform: translateX(3px); }
@media (max-width: 880px) {
  .sg-jobcard { grid-template-columns: minmax(0, 1fr); }
  .sg-jobcard__media { min-height: 0; aspect-ratio: 16 / 9; }
  .sg-jobcard__body { padding: var(--s-4); }
  .sg-jobcard__title { font-size: clamp(24px, 7vw, 32px); }
}
@media (prefers-reduced-motion: reduce) { .sg-jobcard, .sg-jobcard__media img { transition: none; } .sg-jobcard:hover { transform: none; } }

/* ── Lakisivut (29.9.): päiväys ja taulukot ── */
.sg-legal .sg-legal-meta { font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--sg-muted); }
.sg-table-wrap { overflow-x: auto; margin: var(--s-3) 0 var(--s-4); border: 1px solid var(--sg-line-2); border-radius: var(--sg-r); }
.sg-prose table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 15px; line-height: 1.5; }
.sg-prose th, .sg-prose td { padding: 13px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--sg-line-2); }
.sg-prose th { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--sg-petrol); background: var(--sg-paper); }
.sg-prose tr:last-child td { border-bottom: 0; }
.sg-prose td:first-child { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 14px; overflow-wrap: anywhere; }
/* Ura-kortin edut: kaksi saraketta, mintunvihreä valintamerkki */
.sg-jobcard__perks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px var(--s-4); margin: var(--s-1) 0 0; padding: var(--s-3) 0 0; list-style: none; border-top: 1px solid var(--sg-line-2); }
.sg-jobcard__perks li { position: relative; margin: 0; padding-left: 28px; font-size: 15px; line-height: 1.45; color: var(--sg-ink); }
.sg-jobcard__perks li::before { content: ''; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--sg-mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23073B4C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat; }
@media (max-width: 1200px) { .sg-jobcard__perks { grid-template-columns: minmax(0, 1fr); } }

/* ── Analytiikan suostumus (29.9.): kortti vasempaan alakulmaan, ei peitä sisältöä kokonaan ── */
.sg-consent { position: fixed; left: var(--s-3); bottom: var(--s-3); z-index: 9999; width: min(420px, calc(100vw - 2 * var(--s-3))); padding: var(--s-4); background: var(--sg-night); color: #fff; border-radius: var(--sg-r); box-shadow: 0 21px 55px rgba(5,44,57,.35); }
.sg-consent[hidden] { display: none; }
.sg-consent__title { margin: 0 0 8px; font-size: 19px; font-weight: 600; letter-spacing: -.01em; }
.sg-consent__text { margin: 0 0 var(--s-3); font-size: 15px; line-height: 1.55; color: var(--sg-muted-inv); }
.sg-consent__text a { color: #fff; text-decoration: underline; text-underline-offset: .2em; }
.sg-consent__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sg-consent__btn { min-height: 48px; padding: 0 var(--s-3); font: inherit; font-size: 15px; font-weight: 600; color: var(--sg-night); background: #fff; border: 1px solid #fff; border-radius: var(--sg-r); cursor: pointer; transition: background-color .25s, color .25s; }
.sg-consent__btn:hover { background: var(--sg-mint); border-color: var(--sg-mint); }
.sg-consent__btn:focus-visible { outline: 2px solid var(--sg-mint); outline-offset: 2px; }
.sg-f-bar [data-sg-consent-open] { padding: 0; font: inherit; color: inherit; background: none; border: 0; cursor: pointer; text-decoration: inherit; }
.sg-f-bar [data-sg-consent-open]:hover { text-decoration: underline; }
.sg-f-bar [data-sg-consent-open][hidden], .sg-consent-open:has([hidden]) { display: none; }

/* ── Yhtiövälilehdet (29.9.): rauhallisempi vaihto ──
   Paneelit samassa ruudukkosolussa → alue on aina korkeimman paneelin korkuinen (sivu ei hypi) ja vanha häivyttyy
   uuden alle ristiin (ei tyhjää välähdystä). Aktiivinen rivi ei enää siirry sivulle; korostus värillä ja viivalla. */
@media (min-width: 1025px) {
  .sg-cos__stage { display: grid; }
  .sg-co, .sg-co.is-active { display: block; grid-area: 1 / 1; }
  .sg-co { opacity: 0; visibility: hidden; transition: opacity .5s var(--sg-ease), visibility 0s linear .5s; }
  .sg-co.is-active { opacity: 1; visibility: visible; transition: opacity .5s var(--sg-ease), visibility 0s; z-index: 1; }
  .sg-co.is-switched { animation: none; }
  .sg-co .sg-co__photo { transform: scale(1.03); transition: transform 1.2s var(--sg-ease); }
  .sg-co.is-active .sg-co__photo { transform: none; }
  /* Teksti porrastetaan: vanha pois nopeasti, uusi vasta sen jälkeen → tekstit eivät näy päällekkäin */
  .sg-co .sg-co__body { opacity: 0; transform: translateY(8px); transition: opacity .16s linear, transform .6s var(--sg-ease); }
  .sg-co.is-active .sg-co__body { opacity: 1; transform: none; transition: opacity .38s var(--sg-ease) .18s, transform .6s var(--sg-ease) .18s; }
}
.sg-cos__tab, .sg-cos__tab[aria-selected="true"] { padding-left: var(--s-3); transition: background-color .35s var(--sg-ease); }
.sg-cos__tab:hover { background: rgba(15,76,100,.035) !important; }
.sg-cos__tab[aria-selected="true"] { background: linear-gradient(90deg, rgba(15,76,100,.07), rgba(15,76,100,0) 85%) !important; }
.sg-cos__tab[aria-selected="true"] .sg-cos__n { color: var(--sg-coral); }
.sg-cos__tab::before { top: 0; bottom: 0; }
@media (prefers-reduced-motion: reduce) { .sg-co, .sg-co .sg-co__photo, .sg-co .sg-co__body { transition: none !important; } }
/* Konesaliosion toinen kappale (30.9.) */
.sg-dc__text p { margin: 0; font-size: 16.5px; line-height: 1.618; color: var(--sg-muted-inv); max-width: 62ch; }

/* ── Kielivalitsin (30.9.): FI / EN yläpalkissa ── */
.sg-lang-w { width: auto !important; flex: 0 0 auto !important; }
.sg-lang { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 10px; font-size: 14px; font-weight: 600; letter-spacing: .06em; color: currentColor; text-decoration: none; border: 1px solid rgba(255,255,255,.28); border-radius: var(--sg-r); transition: background-color .25s, border-color .25s; }
.sg-lang:hover, .sg-lang:focus-visible { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.6); }
.sg-header .sg-lang { color: #fff; }
@media (max-width: 480px) {
  .sg-header .sg-logo img { width: 118px; height: auto; }
  .sg-header .sg-h-right { gap: 6px !important; }
  .sg-lang { min-width: 40px; padding: 0 6px; }
}
/* Alatunnisteen sarakkeet kapealla näytöllä (30.9.): pitkät sanat eivät levennä sivua */
@media (max-width: 1024px) { .sg-f-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sg-f-cols a { overflow-wrap: anywhere; } }
@media (max-width: 420px) { .sg-f-cols { grid-template-columns: minmax(0, 1fr); } }

/* ── Ura: avoin hakemus (1.10.) ── */
.sg-openapp { margin-top: var(--s-5); padding: var(--s-5); background: var(--sg-paper); border-left: 3px solid var(--sg-coral); border-radius: var(--sg-r); max-width: 860px; }
.sg-openapp h3 { margin: 0 0 var(--s-2); font-size: var(--t-2); font-weight: 600; letter-spacing: -.02em; color: var(--sg-ink); }
.sg-openapp p { margin: 0 0 var(--s-2); font-size: 17px; line-height: 1.618; color: var(--sg-ink); }
.sg-openapp a { color: var(--sg-petrol); font-weight: 600; text-decoration: underline; text-decoration-color: var(--sg-coral); text-underline-offset: 3px; }
.sg-openapp .sg-openapp__note { margin: 0; font-size: 14px; color: var(--sg-muted); }
@media (max-width: 767px) { .sg-openapp { padding: var(--s-4); } }/* End custom CSS */