:root {
  --ks-hero-bg: #367585;
}

:root {
  --ks-teal-bg: hsla(191.14, 43.21%, 31.76%, 1);
}

:root {
  --ks-cream-bg: hsla(55, 100%, 92%, 1);
  --ks-lime: hsla(73, 100%, 59%, 1);
  --ks-panel: hsla(191.14, 43.21%, 27%, 0.92);
  --ks-input: hsla(214, 47%, 63%, 1);
  --ks-sky: #7a9dcc;
  --ks-sky-soft: #edf4fc;
  --ks-sky-border: rgba(122, 157, 204, 0.34);
  --ks-ink: #2f5a75;
}

.header .header-menu {
  pointer-events: none;
}

.header.header--menu-open .header-menu {
  pointer-events: auto;
}

.header .header-menu .header-menu-bg {
  cursor: pointer;
}

.header-burger-btn {
  cursor: pointer;
}

html.ks-page-loading,
body.ks-page-loading {
  cursor: progress;
}

.header-burger-btn .top-bun,
.header-burger-btn .patty,
.header-burger-btn .bottom-bun {
  transition: transform 160ms ease, opacity 160ms ease;
  transform-origin: center;
}

.header-burger-btn[aria-expanded="true"] .top-bun {
  transform: translateY(7px) rotate(45deg);
}

.header-burger-btn[aria-expanded="true"] .patty {
  opacity: 0;
}

.header-burger-btn[aria-expanded="true"] .bottom-bun {
  transform: translateY(-7px) rotate(-45deg);
}

.accordion-item__click-target {
  width: 100%;
  cursor: pointer;
}

.accordion-item__click-target:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

.accordion-item__dropdown[hidden] {
  display: none !important;
}

.accordion-icon-container .plus__vertical-line {
  transition: transform 160ms ease, opacity 160ms ease;
  transform-origin: center;
}

.accordion-icon-container[data-is-open="true"] .plus__vertical-line {
  opacity: 0;
  transform: scaleY(0);
}

.page-section[data-sqsp-section="blog-list"] .content {
  width: min(100%, 1280px);
  margin: 0 auto;
}

.page-section[data-sqsp-section="blog-list"] .blog-basic-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 36px 28px;
  align-items: start;
  visibility: visible !important;
  opacity: 1 !important;
}

.page-section[data-sqsp-section="blog-list"] .blog-basic-grid--container {
  display: grid !important;
  gap: 18px;
  align-content: start;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
}

.page-section[data-sqsp-section="blog-list"] .blog-basic-grid--container .image-wrapper {
  position: relative !important;
  display: block !important;
  height: auto !important;
  aspect-ratio: 3 / 2 !important;
  overflow: hidden !important;
  border-radius: 26px !important;
  background: #edf5f7 !important;
  padding-bottom: 0 !important;
}

.page-section[data-sqsp-section="blog-list"] .blog-basic-grid--container .image-wrapper .image,
.page-section[data-sqsp-section="blog-list"] .blog-basic-grid--container .image-wrapper img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  opacity: 1 !important;
  display: block !important;
}

.page-section[data-sqsp-section="blog-list"] .blog-article-spacer {
  display: none !important;
}

.page-section[data-sqsp-section="blog-list"] .blog-basic-grid--text {
  display: grid;
  gap: 10px;
}

.page-section[data-sqsp-section="blog-list"] .blog-meta-section {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  color: #4f7384;
  font-size: 14px;
  line-height: 1.4;
}

.page-section[data-sqsp-section="blog-list"] .blog-title,
.page-section[data-sqsp-section="blog-list"] .blog-title a {
  margin: 0;
  color: #13343f !important;
  font-size: clamp(24px, 2vw, 34px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  text-decoration: none;
}

.page-section[data-sqsp-section="blog-list"] .blog-excerpt,
.page-section[data-sqsp-section="blog-list"] .blog-excerpt p {
  margin: 0;
  color: #42515a !important;
  font-size: 16px;
  line-height: 1.7;
}

.page-section[data-sqsp-section="blog-list"] .blog-more-link {
  width: fit-content;
  color: #4d82cb !important;
  font-weight: 700;
  text-decoration: none !important;
}

@media (max-width: 1024px) {
  .page-section[data-sqsp-section="blog-list"] .blog-basic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .page-section[data-sqsp-section="blog-list"] .blog-basic-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

.cp-site-entry-shell,
.cp-site-entry-shell * {
  box-sizing: border-box;
}

.cp-site-entry-shell {
  width: min(100%, 1240px);
  margin: 0 auto 40px;
  padding: 0 24px;
}

.cp-site-entry-card {
  display: grid;
  gap: 18px;
  padding: 28px;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(237, 244, 252, 0.92) 100%);
  border: 1px solid var(--ks-sky-border);
  box-shadow: 0 18px 36px rgba(47, 114, 128, 0.08);
}

.cp-site-entry-copy h2 {
  margin: 10px 0 8px;
  color: var(--ks-teal-bg) !important;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 0.96;
}

.cp-site-entry-copy p,
.cp-site-entry-copy .sqsrte-text-color--black {
  margin: 0;
  color: var(--ks-ink) !important;
  line-height: 1.6;
}

.cp-site-entry-eyebrow {
  display: inline-flex;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid var(--ks-sky-border);
  background: rgba(255, 255, 255, 0.82);
  color: var(--ks-ink);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.cp-site-entry-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.cp-site-entry-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 18px;
  border-radius: 999px;
  border: 1px solid var(--ks-sky-border);
  color: var(--ks-ink) !important;
  text-decoration: none !important;
  background: var(--ks-sky-soft);
}

.cp-site-entry-button--primary {
  background: var(--ks-sky);
  color: #ffffff !important;
}

.ks-company-portal-inline,
.ks-company-application-form {
  box-sizing: border-box;
}

.ks-company-portal-inline {
  display: grid;
  gap: 16px;
  margin-bottom: 20px;
  padding: 24px;
  border-radius: 28px;
  border: 1px solid var(--ks-sky-border);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(237, 244, 252, 0.92) 100%);
  box-shadow: 0 18px 38px rgba(47, 114, 128, 0.08);
}

.ks-company-portal-inline__copy {
  display: grid;
  gap: 10px;
}

.ks-company-portal-inline__copy strong {
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.02;
  letter-spacing: -0.03em;
  color: var(--ks-teal-bg);
}

.ks-company-portal-inline__meta {
  margin: 0;
  color: var(--ks-ink);
  line-height: 1.6;
}

.ks-company-portal-inline__eyebrow {
  display: inline-flex;
  width: fit-content;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid var(--ks-sky-border);
  background: rgba(255, 255, 255, 0.8);
  color: var(--ks-ink);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ks-company-portal-inline__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.ks-company-portal-inline__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 18px;
  border-radius: 999px;
  border: 1px solid var(--ks-sky-border);
  color: var(--ks-ink) !important;
  background: var(--ks-sky-soft);
  text-decoration: none !important;
}

.ks-company-portal-inline__button--primary {
  background: var(--ks-teal-bg);
  border-color: var(--ks-teal-bg);
  color: #ffffff !important;
}

.ks-company-application-form {
  display: grid;
  gap: 18px;
  margin-bottom: 44px;
  padding: 24px;
  border-radius: 28px;
  border: 1px solid rgba(47, 114, 128, 0.2);
  background: rgba(255, 255, 255, 0.72);
}

.ks-company-application-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ks-company-application-field {
  display: grid;
  gap: 8px;
}

.ks-company-application-field span {
  font-weight: 600;
  color: var(--ks-teal-bg);
}

.ks-company-application-field input {
  box-sizing: border-box;
  width: 100%;
  min-height: 52px;
  padding: 0 18px;
  border-radius: 999px;
  border: 1px solid var(--ks-sky-border);
  background: #ffffff;
  color: #102630;
}

.ks-company-application-field input:focus-visible,
.ks-company-portal-inline__button:focus-visible,
.ks-company-application-submit:focus-visible {
  outline: 2px solid var(--ks-teal-bg);
  outline-offset: 2px;
}

.ks-company-application-field small {
  min-height: 18px;
  color: #b42318;
}

.ks-company-application-actions {
  display: grid;
  gap: 12px;
  justify-items: start;
}

.ks-company-application-submit {
  min-height: 50px;
  padding: 0 18px;
  border-radius: 999px;
  width: fit-content;
  max-width: 100%;
  border: 1px solid var(--ks-teal-bg);
  background: var(--ks-teal-bg);
  color: #ffffff;
  cursor: pointer;
}

.ks-company-application-submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.ks-company-application-status {
  margin: 0;
  color: var(--ks-ink);
}

.ks-company-form-divider {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 4px 0;
}

.ks-company-form-divider::before,
.ks-company-form-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(47, 114, 128, 0.25);
}

.ks-company-form-divider__text {
  font-size: 0.8rem;
  color: var(--ks-ink);
  opacity: 0.6;
  white-space: nowrap;
  letter-spacing: 0.04em;
}

.ks-company-form-heading {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ks-teal-bg);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 0 4px;
}

.fe-block-1069a716fa68ec61361f,
.fe-block-1069a716fa68ec61361f .sqs-block,
.fe-block-1069a716fa68ec61361f .sqs-block-content,
#block-1069a716fa68ec61361f,
#block-1069a716fa68ec61361f .sqs-block-content,
#block-1069a716fa68ec61361f .sqs-site-style-form,
#block-1069a716fa68ec61361f .form-wrapper {
  height: auto !important;
  min-height: 0 !important;
}

@media (min-width: 768px) {
  .fe-block-1069a716fa68ec61361f {
    grid-area: 3 / 14 / 23 / 24 !important;
  }
}

[data-section-id="67f7589c3e881e1f0e68c8a6"],
[data-section-id="67f7589c3e881e1f0e68c8a6"] .section-border,
[data-section-id="67f7589c3e881e1f0e68c8a6"] .section-background {
  background:
    radial-gradient(circle at top left, rgba(201, 255, 79, 0.18), transparent 24%),
    linear-gradient(135deg, #183946 0%, #295865 100%) !important;
}

[data-section-id="67f7589c3e881e1f0e68c8a6"] .content-wrapper,
[data-section-id="67f7589c3e881e1f0e68c8a6"] .content,
[data-section-id="67f7589c3e881e1f0e68c8a6"] .fluid-engine,
[data-section-id="67f7589c3e881e1f0e68c8a6"] .sqs-block-content,
[data-section-id="67f7589c3e881e1f0e68c8a6"] .sqs-text-block-container,
[data-section-id="67f7589c3e881e1f0e68c8a6"] .sqs-html-content {
  background: transparent !important;
}

[data-section-id="67f7589c3e881e1f0e68c8a6"] .section-background-overlay {
  display: none !important;
}

[data-section-id="67f7589c3e881e1f0e68c8a6"] .sqsrte-text-color--lightAccent {
  color: #fff9dd !important;
}

[data-section-id="67f7589c3e881e1f0e68c8a6"] .sqsrte-text-color--accent {
  color: var(--ks-lime) !important;
}

@media (min-width: 1024px) {
  [data-section-id="67f7589c3e881e1f0e68c8a6"] {
    min-height: 100vh !important;
  }

  [data-section-id="67f7589c3e881e1f0e68c8a6"] .content-wrapper {
    min-height: inherit !important;
    display: flex !important;
    align-items: center !important;
  }
}

[data-section-id="67f75a07d44ef579e84bb3b2"] {
  position: relative !important;
  overflow: hidden !important;
  background:
    linear-gradient(rgba(37, 74, 86, 0.78), rgba(37, 74, 86, 0.78)),
    url("/assets/925c176ef0249720a80f8aec335ad3de6d5f1220.jpg") 50% 50% / cover no-repeat !important;
  padding-bottom: 0 !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"].background-width--inset:not(.content-collection):not(.gallery-section):not(.user-items-list-section) {
  padding-bottom: 0 !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"] .section-border,
[data-section-id="67f75a07d44ef579e84bb3b2"] .content-wrapper,
[data-section-id="67f75a07d44ef579e84bb3b2"] .content,
[data-section-id="67f75a07d44ef579e84bb3b2"] .fluid-engine {
  background: transparent !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"] .section-border {
  display: block !important;
  clip-path: none !important;
  overflow: hidden !important;
  background:
    linear-gradient(rgba(37, 74, 86, 0.78), rgba(37, 74, 86, 0.78)),
    url("/assets/925c176ef0249720a80f8aec335ad3de6d5f1220.jpg") 50% 50% / cover no-repeat !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"] .section-background {
  display: none !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"] .section-background img {
  opacity: 0 !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"] .section-background-overlay {
  display: none !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"] .section-divider-display,
[data-section-id="67f75a07d44ef579e84bb3b2"] .section-divider-block,
[data-section-id="67f75a07d44ef579e84bb3b2"] .section-divider-svg-clip,
[data-section-id="67f75a07d44ef579e84bb3b2"] .section-divider-svg-stroke {
  display: none !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"] .content-wrapper {
  position: relative !important;
  z-index: 1 !important;
  background: transparent !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"] .sqsrte-text-color--white {
  color: #ffffff !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"] .sqsrte-text-color--accent {
  color: var(--ks-lime) !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"] #block-c398740d3a44a3054fde,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-c398740d3a44a3054fde .sqs-block-content,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-c398740d3a44a3054fde .sqs-text-block-container,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-c398740d3a44a3054fde .sqs-html-content {
  background: transparent !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"] #block-f0ffe982fac88843ba2f,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-7259e4bee8493faa79de,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-af53cb3d754e343ff855 {
  background: #ffffff !important;
  border-radius: 40px !important;
  overflow: hidden !important;
  box-shadow: none !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"] #block-f0ffe982fac88843ba2f .sqs-block-content,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-7259e4bee8493faa79de .sqs-block-content,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-af53cb3d754e343ff855 .sqs-block-content,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-f0ffe982fac88843ba2f .sqs-text-block-container,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-7259e4bee8493faa79de .sqs-text-block-container,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-af53cb3d754e343ff855 .sqs-text-block-container,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-f0ffe982fac88843ba2f .sqs-html-content,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-7259e4bee8493faa79de .sqs-html-content,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-af53cb3d754e343ff855 .sqs-html-content {
  background: transparent !important;
}

[data-section-id="67f75a07d44ef579e84bb3b2"] #block-f0ffe982fac88843ba2f p,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-7259e4bee8493faa79de p,
[data-section-id="67f75a07d44ef579e84bb3b2"] #block-af53cb3d754e343ff855 p {
  color: #09090b !important;
}

@media (max-width: 767px) {
  .fe-block-1069a716fa68ec61361f {
    grid-area: 16 / 2 / 38 / 10 !important;
  }

  .ks-company-application-form {
    margin-bottom: 28px;
  }

  .ks-company-application-grid {
    grid-template-columns: 1fr;
  }
}

/* Homepage hero fallback: production shows a teal background here. */
[data-section-id="67c56413116da114cefe2969"] .section-background,
[data-section-id="67c56413116da114cefe2969"] .section-border,
[data-section-id="67c56413116da114cefe2969"] {
  background: var(--ks-hero-bg) !important;
}

[data-section-id="67c56413116da114cefe2969"] .content-wrapper,
[data-section-id="67c56413116da114cefe2969"] .content,
[data-section-id="67c56413116da114cefe2969"] .fluid-engine {
  background: transparent !important;
}

[data-section-id="67c56413116da114cefe2969"] .section-background img,
[data-section-id="67c56413116da114cefe2969"] .section-background-overlay {
  display: none !important;
}

[data-section-id="67c56413116da114cefe2969"] .sqs-html-content h2,
[data-section-id="67c56413116da114cefe2969"] .form-wrapper,
[data-section-id="67c56413116da114cefe2969"] .sqs-site-style-form,
[data-section-id="67c56413116da114cefe2969"] .sqs-block-content {
  background: transparent !important;
}

/* "Näin kilpailutus pelittää" section fallback */
[data-section-id="67c5f7c0a94dde6ee724d90f"],
[data-section-id="67c5f7c0a94dde6ee724d90f"] .section-border,
[data-section-id="67c5f7c0a94dde6ee724d90f"] .section-background,
[data-section-id="67c5f7c0a94dde6ee724d90f"] .content-wrapper,
[data-section-id="67c5f7c0a94dde6ee724d90f"] .content,
[data-section-id="67c5f7c0a94dde6ee724d90f"] .fluid-engine {
  background: var(--ks-teal-bg) !important;
}

[data-section-id="67c5f7c0a94dde6ee724d90f"] .section-background img,
[data-section-id="67c5f7c0a94dde6ee724d90f"] .section-background-overlay {
  display: none !important;
}

[data-section-id="67c5f7c0a94dde6ee724d90f"] .sqs-block-content,
[data-section-id="67c5f7c0a94dde6ee724d90f"] .sqs-text-block-container,
[data-section-id="67c5f7c0a94dde6ee724d90f"] .sqs-html-content,
[data-section-id="67c5f7c0a94dde6ee724d90f"] .sqs-block-button-container {
  background: transparent !important;
}

/* Exact local production background for "Siivouspalvelut edullisesti ja vastuullisesti" */
[data-section-id="67c56413116da114cefe296f"] {
  background: var(--ks-teal-bg) !important;
}

[data-section-id="67c56413116da114cefe296f"] .content-wrapper,
[data-section-id="67c56413116da114cefe296f"] .content,
[data-section-id="67c56413116da114cefe296f"] .fluid-engine,
[data-section-id="67c56413116da114cefe296f"] .sqs-block-content,
[data-section-id="67c56413116da114cefe296f"] .sqs-text-block-container,
[data-section-id="67c56413116da114cefe296f"] .sqs-html-content {
  background: transparent !important;
}

[data-section-id="67c56413116da114cefe296f"] .section-border,
[data-section-id="67c56413116da114cefe296f"] .section-background {
  background-color: var(--ks-teal-bg) !important;
  background-image: url("/assets/925c176ef0249720a80f8aec335ad3de6d5f1220.jpg") !important;
  background-position: 50% 50% !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  overflow: hidden !important;
}

[data-section-id="67c56413116da114cefe296f"] .section-background img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: 50% 50% !important;
  opacity: 1 !important;
}

[data-section-id="67c56413116da114cefe296f"] .section-background-overlay {
  background: var(--ks-teal-bg) !important;
  opacity: 1 !important;
}

[data-section-id="67c56413116da114cefe296f"] #block-5be6ffa814a3ddd56d4c .sqsrte-text-color--white {
  color: white !important;
}

[data-section-id="67c56413116da114cefe296f"] #block-5be6ffa814a3ddd56d4c .sqsrte-text-color--accent {
  color: var(--ks-lime) !important;
}

[data-section-id="67c56413116da114cefe296f"] #block-yui_3_17_2_1_1740989469614_45869,
[data-section-id="67c56413116da114cefe296f"] #block-67bc6788ef4c300dcae3,
[data-section-id="67c56413116da114cefe296f"] #block-c6d1e52b5a45d57e67c1 {
  background: white !important;
  border-radius: 40px !important;
  overflow: hidden !important;
  box-shadow: none !important;
}

[data-section-id="67c56413116da114cefe296f"] #block-yui_3_17_2_1_1740989469614_45869 .sqs-block-content,
[data-section-id="67c56413116da114cefe296f"] #block-67bc6788ef4c300dcae3 .sqs-block-content,
[data-section-id="67c56413116da114cefe296f"] #block-c6d1e52b5a45d57e67c1 .sqs-block-content,
[data-section-id="67c56413116da114cefe296f"] #block-yui_3_17_2_1_1740989469614_45869 .sqs-text-block-container,
[data-section-id="67c56413116da114cefe296f"] #block-67bc6788ef4c300dcae3 .sqs-text-block-container,
[data-section-id="67c56413116da114cefe296f"] #block-c6d1e52b5a45d57e67c1 .sqs-text-block-container,
[data-section-id="67c56413116da114cefe296f"] #block-yui_3_17_2_1_1740989469614_45869 .sqs-html-content,
[data-section-id="67c56413116da114cefe296f"] #block-67bc6788ef4c300dcae3 .sqs-html-content,
[data-section-id="67c56413116da114cefe296f"] #block-c6d1e52b5a45d57e67c1 .sqs-html-content {
  background: transparent !important;
}

[data-section-id="67c56413116da114cefe296f"] #block-yui_3_17_2_1_1740989469614_45869 p,
[data-section-id="67c56413116da114cefe296f"] #block-67bc6788ef4c300dcae3 p,
[data-section-id="67c56413116da114cefe296f"] #block-c6d1e52b5a45d57e67c1 p {
  color: black !important;
}

/* Homepage intro hero fallback */
[data-section-id="67c56413116da114cefe2966"],
[data-section-id="67c56413116da114cefe2966"] .section-border,
[data-section-id="67c56413116da114cefe2966"] .section-background,
[data-section-id="67c56413116da114cefe2966"] .content-wrapper,
[data-section-id="67c56413116da114cefe2966"] .content,
[data-section-id="67c56413116da114cefe2966"] .fluid-engine {
  background: var(--ks-cream-bg) !important;
}

[data-section-id="67c56413116da114cefe2966"] .sqs-block-content,
[data-section-id="67c56413116da114cefe2966"] .sqs-text-block-container,
[data-section-id="67c56413116da114cefe2966"] .sqs-html-content {
  background: transparent !important;
}

/* "Parhaat siivousvinkit" section fallback */
[data-section-id="67c5fadeec0b793e1b1a5ab4"],
[data-section-id="67c5fadeec0b793e1b1a5ab4"] .section-border,
[data-section-id="67c5fadeec0b793e1b1a5ab4"] .section-background,
[data-section-id="67c5fadeec0b793e1b1a5ab4"] .content-wrapper,
[data-section-id="67c5fadeec0b793e1b1a5ab4"] .content,
[data-section-id="67c5fadeec0b793e1b1a5ab4"] .fluid-engine {
  background: var(--ks-cream-bg) !important;
}

[data-section-id="67c5fadeec0b793e1b1a5ab4"] .sqs-block-content,
[data-section-id="67c5fadeec0b793e1b1a5ab4"] .sqs-text-block-container,
[data-section-id="67c5fadeec0b793e1b1a5ab4"] .sqs-html-content {
  background: transparent !important;
}

/* "Paras valinta siivousta etsivälle..." section fallback */
[data-section-id="67f75ea5778ecf2a706122ff"] {
  background: var(--ks-teal-bg) !important;
}

[data-section-id="67f75ea5778ecf2a706122ff"],
[data-section-id="67f75ea5778ecf2a706122ff"] .section-border,
[data-section-id="67f75ea5778ecf2a706122ff"] .section-background,
[data-section-id="67f75ea5778ecf2a706122ff"] .content-wrapper,
[data-section-id="67f75ea5778ecf2a706122ff"] .content,
[data-section-id="67f75ea5778ecf2a706122ff"] .fluid-engine {
  background: var(--ks-teal-bg) !important;
}

[data-section-id="67f75ea5778ecf2a706122ff"] .sqs-block-content,
[data-section-id="67f75ea5778ecf2a706122ff"] .sqs-text-block-container,
[data-section-id="67f75ea5778ecf2a706122ff"] .sqs-html-content {
  background: transparent !important;
}

/* Calendar enhancement */
[data-section-id="67c56413116da114cefe2969"],
[data-section-id="67c56413116da114cefe2969"] .section-border,
[data-section-id="67c56413116da114cefe2969"] .content-wrapper {
  overflow-x: clip !important;
}

#block-3b09d2d464968aa1758c,
#block-3b09d2d464968aa1758c *,
.ks-booking-layout,
.ks-booking-panel,
.ks-booking-panel * {
  box-sizing: border-box;
}

#block-3b09d2d464968aa1758c {
  width: min(100%, 1280px);
  max-width: 1280px !important;
  margin-inline: auto !important;
}

#block-3b09d2d464968aa1758c .sqs-block-content {
  display: flex;
  justify-content: center;
  width: 100%;
}

#block-3b09d2d464968aa1758c .sqs-site-style-form {
  position: relative;
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
}

.ks-booking-layout {
  margin: 84px auto 0;
  width: 100%;
  max-width: 1240px;
  padding-inline: 24px;
}

.ks-booking-panel {
  background: var(--ks-panel);
  border: 1px solid hsla(191.14, 43.21%, 40%, 0.9);
  border-radius: 28px;
  padding: 28px;
  box-shadow: inset 0 0 0 1px hsla(191.14, 43.21%, 36%, 0.5);
  color: white;
  min-width: 0;
  width: 100%;
  max-width: 1240px;
  margin-inline: auto;
  overflow: hidden;
}

.ks-booking-shell {
  display: grid;
  gap: 24px;
}

.ks-booking-header {
  display: grid;
  gap: 12px;
}

.ks-booking-header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.ks-booking-lang-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
}

.ks-booking-lang-button {
  min-width: 52px;
  min-height: 40px;
  padding: 0 12px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(255, 255, 255, 0.9);
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  cursor: pointer;
}

.ks-booking-lang-button[aria-pressed="true"] {
  background: var(--ks-input);
  color: #ffffff;
}

.ks-booking-panel h3 {
  margin: 0;
  color: var(--ks-lime);
  font-size: clamp(28px, 4vw, 46px);
  line-height: 0.96;
}

.ks-booking-common-grid,
.ks-booking-fields {
  display: grid;
  gap: 18px;
  width: 100%;
}

.ks-booking-common-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ks-booking-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.5fr) minmax(0, 0.95fr);
  gap: 18px;
  width: 100%;
  align-items: start;
}

.ks-booking-field-group--name {
  grid-column: auto;
}

.ks-booking-field-group--email {
  grid-column: auto;
}

.ks-booking-field-group--phone {
  grid-column: auto;
}

.ks-booking-business-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  width: 100%;
}

.ks-booking-field-group {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.ks-booking-field-group--compact {
  gap: 8px;
}

.ks-booking-label {
  color: white;
  font-size: 15px;
  font-weight: 600;
}

.ks-booking-input,
.ks-booking-select,
.ks-booking-textarea,
.ks-booking-chip,
.ks-booking-slot,
.ks-booking-day,
.ks-booking-nav {
  border: 0;
  border-radius: 18px;
  font: inherit;
}

.ks-booking-input {
  width: 100%;
  background: #ffffff;
  color: #09090b;
  min-height: 72px;
  padding: 16px 22px;
  font-size: clamp(18px, 1.6vw, 24px);
  border: 1px solid rgba(122, 157, 204, 0.26);
}

.ks-booking-input--compact,
.ks-booking-select {
  min-height: 62px;
  font-size: clamp(16px, 1.2vw, 18px);
}

.ks-booking-input--email {
  font-size: clamp(14px, 0.95vw, 16px);
  letter-spacing: -0.015em;
  padding-inline: 18px;
}

.ks-booking-select,
.ks-booking-textarea {
  width: 100%;
  background: #ffffff;
  color: #09090b;
  padding: 16px 22px;
  font: inherit;
  border: 1px solid rgba(122, 157, 204, 0.26);
}

.ks-booking-textarea {
  min-height: 130px;
  resize: vertical;
}

.ks-booking-input::placeholder,
.ks-booking-textarea::placeholder {
  color: #94a3b8;
}

.ks-booking-chip-grid,
.ks-booking-slot-grid,
.ks-booking-day-grid {
  display: grid;
  gap: 12px;
}

.ks-booking-chip-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ks-booking-chip-grid--stacked {
  grid-template-columns: 1fr;
}

.ks-booking-day-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ks-booking-slot-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ks-booking-result-region {
  display: grid;
}

.ks-booking-card {
  display: grid;
  gap: 18px;
  padding: 24px;
  border-radius: 28px;
  border: 1px solid rgba(122, 157, 204, 0.24);
  background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
  box-shadow: 0 20px 40px rgba(15, 23, 42, 0.08);
}

.ks-booking-card--neutral {
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.ks-booking-card--success {
  background: linear-gradient(180deg, rgba(240, 243, 255, 0.96) 0%, rgba(255, 255, 255, 0.98) 100%);
  border-color: rgba(122, 157, 204, 0.32);
}

.ks-booking-card--success strong {
  color: #16384d;
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 800;
  line-height: 1.1;
}

.ks-booking-helper {
  margin: 0;
  color: #334155;
  line-height: 1.6;
}

.ks-booking-helper--inline {
  margin-top: -6px;
  margin-bottom: 0;
}

.ks-booking-helper--recurring {
  margin-top: 4px;
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.9);
  font-weight: 500;
}

.ks-booking-helper--recurring-card {
  margin-top: -4px;
  margin-bottom: 0;
}

.ks-booking-chip,
.ks-booking-slot,
.ks-booking-day,
.ks-booking-nav {
  background: #ffffff;
  color: var(--ks-teal-bg);
  cursor: pointer;
  padding: 16px 20px;
  text-align: center;
  transition: background-color 120ms ease, color 120ms ease, transform 120ms ease, box-shadow 120ms ease;
  border: 1px solid rgba(122, 157, 204, 0.24);
}

.ks-booking-chip {
  min-height: 72px;
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: 600;
}

.ks-booking-chip__label {
  display: block;
}

.ks-booking-chip__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 24px;
  margin-top: 8px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(122, 157, 204, 0.18);
  color: inherit;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.ks-booking-nav {
  min-height: 56px;
}

.ks-booking-nav:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.ks-booking-chip[aria-pressed="true"],
.ks-booking-slot.is-selected,
.ks-booking-day.is-selected {
  background: var(--ks-input);
  border-color: var(--ks-input);
  color: #ffffff;
  font-weight: 700;
}

.ks-booking-chip[aria-pressed="true"] .ks-booking-chip__badge {
  background: rgba(255, 255, 255, 0.22);
}

.ks-booking-head {
  display: grid;
  grid-template-columns: 72px 1fr 72px;
  align-items: center;
  gap: 16px;
  margin: 0;
}

.ks-booking-week {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 0 20px;
  border-radius: 999px;
  border: 1px solid rgba(122, 157, 204, 0.24);
  background: #ffffff;
  color: var(--ks-teal-bg);
  font-size: 15px;
  font-weight: 700;
  text-align: center;
}

.ks-booking-picked {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 18px;
  border-radius: 999px;
  background: rgba(122, 157, 204, 0.16);
  color: var(--ks-teal-bg);
  font-size: 15px;
  font-weight: 700;
  justify-self: start;
}

.ks-booking-day-list {
  display: grid;
  gap: 20px;
}

.ks-booking-day-section {
  display: grid;
  gap: 12px;
}

.ks-booking-day-title {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 3px solid var(--ks-input);
  color: var(--ks-teal-bg);
}

.ks-booking-day-title strong {
  font-size: 22px;
  font-weight: 700;
  text-transform: uppercase;
}

.ks-booking-day-title span {
  color: #7b8698;
  font-size: 15px;
}

.ks-booking-slot-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.ks-booking-slot {
  min-width: 104px;
  min-height: 72px;
  padding: 14px 18px;
  border-radius: 22px;
  border: 1px solid rgba(122, 157, 204, 0.24);
  background: #ffffff;
  color: var(--ks-teal-bg);
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: 700;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.ks-booking-slot small {
  display: block;
  margin-top: 4px;
  color: #64748b;
  font-size: 13px;
  font-weight: 600;
}

.ks-booking-card .ks-booking-label {
  color: var(--ks-teal-bg);
}

.ks-booking-card .ks-booking-input,
.ks-booking-card .ks-booking-select,
.ks-booking-card .ks-booking-textarea {
  background: #ffffff;
  color: #09090b;
  border: 1px solid rgba(122, 157, 204, 0.24);
}

.ks-booking-card .ks-booking-input::placeholder,
.ks-booking-card .ks-booking-textarea::placeholder {
  color: #94a3b8;
}

.ks-booking-fallback-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}

.ks-booking-actions {
  display: grid;
  gap: 12px;
  align-items: start;
}

.ks-booking-submit {
  min-height: 76px;
  border: 0;
  border-radius: 999px;
  background: var(--ks-input);
  color: #ffffff;
  font: inherit;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 700;
  cursor: pointer;
  transition: transform 120ms ease, opacity 120ms ease, filter 120ms ease;
}

.ks-booking-submit:hover:not(:disabled) {
  transform: translateY(-1px);
  filter: brightness(1.02);
}

.ks-booking-submit:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.ks-booking-reset {
  justify-self: start;
  min-height: 52px;
  padding: 0 22px;
  border: 0;
  border-radius: 999px;
  background: var(--ks-input);
  color: #ffffff;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
}

.ks-booking-status {
  margin: 0;
  min-height: 24px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  text-align: left;
}

.ks-booking-status[data-tone="success"] {
  color: #d9ff40;
}

.ks-booking-status[data-tone="error"] {
  color: #ffd6d6;
}

.ks-booking-field-error {
  min-height: 0;
  margin: 0;
  color: #d14343;
  font-size: 13px;
}

.ks-booking-field-error:empty {
  display: none;
}

.ks-booking-input[aria-invalid="true"],
.ks-booking-select[aria-invalid="true"],
.ks-booking-textarea[aria-invalid="true"] {
  outline: 2px solid hsla(0, 100%, 85%, 0.6);
  outline-offset: 2px;
}

.ks-booking-loading {
  display: grid;
  justify-items: center;
  align-items: center;
  min-height: 92px;
}

.ks-booking-spinner {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 3px solid rgba(122, 157, 204, 0.24);
  border-top-color: var(--ks-input);
  animation: ks-spin 0.9s linear infinite;
}

@keyframes ks-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (min-width: 980px) {
  #block-3b09d2d464968aa1758c {
    width: min(100%, 1280px);
    max-width: 1280px !important;
    margin-inline: auto !important;
  }

  .ks-booking-layout {
    padding-inline: 24px;
  }
}

@media (max-width: 979px) {
  .ks-booking-common-grid,
  .ks-booking-contact-grid,
  .ks-booking-business-grid,
  .ks-booking-fallback-grid {
    grid-template-columns: 1fr;
  }

  .ks-booking-panel {
    padding: 20px;
  }

  .ks-booking-layout {
    margin-top: 64px;
    padding-inline: 16px;
  }
}

@media (max-width: 640px) {
  .ks-booking-layout {
    margin-top: 52px;
  }

  .ks-booking-header-top {
    align-items: stretch;
  }

  .ks-booking-lang-toggle {
    justify-content: center;
  }

  .ks-booking-chip-grid,
  .ks-booking-common-grid,
  .ks-booking-contact-grid,
  .ks-booking-business-grid,
  .ks-booking-fallback-grid {
    grid-template-columns: 1fr;
  }

  .ks-booking-head {
    grid-template-columns: 1fr;
  }

  .ks-booking-picked {
    justify-self: stretch;
  }

  .ks-booking-submit {
    font-size: 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ks-booking-spinner,
  .ks-booking-submit,
  .ks-booking-chip,
  .ks-booking-slot,
  .ks-booking-day,
  .ks-booking-nav {
    animation: none;
    transition: none;
  }
}

/* ===== DARK / BLACK SECTION BACKGROUND FALLBACK =====
   Squarespace's site.css may not always apply the dark palette color when
   backgroundMode is "image" but backgroundImageId is null.
   These rules ensure dark/black sections always show the teal background.
   Section-specific rules below use !important and override these. */

[data-section-theme="dark"],
[data-section-theme="dark"] .section-border,
[data-section-theme="dark"] .section-background {
  background-color: var(--ks-teal-bg);
}

[data-section-theme="dark"] .content-wrapper,
[data-section-theme="dark"] .content,
[data-section-theme="dark"] .fluid-engine {
  background: transparent;
}

[data-section-theme="black"],
[data-section-theme="black"] .section-border,
[data-section-theme="black"] .section-background {
  background-color: #102630;
}

[data-section-theme="black"] .content-wrapper,
[data-section-theme="black"] .content,
[data-section-theme="black"] .fluid-engine {
  background: transparent;
}

[data-section-theme="black-bold"],
[data-section-theme="black-bold"] .section-border,
[data-section-theme="black-bold"] .section-background {
  background-color: #102630;
}

[data-section-theme="black-bold"] .content-wrapper,
[data-section-theme="black-bold"] .content,
[data-section-theme="black-bold"] .fluid-engine {
  background: transparent;
}

[data-section-theme="bright"],
[data-section-theme="bright"] .section-border,
[data-section-theme="bright"] .section-background {
  background-color: hsla(73.82, 95.7%, 63.53%, 1);
}

[data-section-theme="bright"] .content-wrapper,
[data-section-theme="bright"] .content,
[data-section-theme="bright"] .fluid-engine {
  background: transparent;
}

/* ===== SQUARESPACE ANIMATION VISIBILITY FIX =====
   Squarespace's rollup JS is removed by site-runtime.js, so animated elements
   never receive the JS-triggered "revealed" class. Without the rollup CSS for
   blog-collection-list loading (also removed), these elements might remain
   invisible. Force all animation-role elements to be visible. */

[data-animation-role] {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  transition: none !important;
}

/* ===== SQUARESPACE IMAGE LAZY-LOAD FIX =====
   Squarespace's cached template CSS (ab61e76178d13f22...) contains:
     img:not(.loaded) { opacity: 0; }
   The .loaded class is added only by Squarespace's ImageLoader JS, which is
   removed by site-runtime.js. Without JS, all images stay at opacity:0.
   Override this globally so images display without JS. */

img:not(.loaded) {
  opacity: 1 !important;
}

/* ===== BLOG COLLECTION LIST LAYOUT =====
   The squarespace-blog-collection-list rollup CSS is not loaded because the
   rollup loader JS is stripped. These rules replace what that CSS would do
   for any blog-basic-grid layout across the whole site (not just blog-list section). */

.blog-basic-grid.collection-content-wrapper {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 36px 28px;
  align-items: start;
}

.blog-basic-grid--container {
  display: grid !important;
  gap: 18px;
  align-content: start;
}

.blog-basic-grid--container .image-wrapper {
  position: relative !important;
  display: block !important;
  height: auto !important;
  aspect-ratio: 3 / 2 !important;
  overflow: hidden !important;
  border-radius: 20px !important;
  background: #edf5f7 !important;
  padding-bottom: 0 !important;
}

.blog-basic-grid--container .image-wrapper .image,
.blog-basic-grid--container .image-wrapper img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  opacity: 1 !important;
  display: block !important;
}

.blog-basic-grid--text {
  display: grid;
  gap: 10px;
}

.blog-meta-section {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  font-size: 14px;
  line-height: 1.4;
}

.blog-article-spacer {
  display: none !important;
}

@media (max-width: 1024px) {
  .blog-basic-grid.collection-content-wrapper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .blog-basic-grid.collection-content-wrapper {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

/* ── Section divider fix ─────────────────────────────────────────────────────
   Squarespace renders section dividers (waves/slants) via JS that we don't
   load. Without the JS the SVG paths stay empty, leaving a thick stroke line
   and extra bottom padding. Hide the whole divider UI and remove the padding. */
.section-divider-display,
.section-divider-block,
.section-divider-svg-clip,
.section-divider-svg-stroke {
  display: none !important;
}

.has-section-divider {
  padding-bottom: 0 !important;
}

.has-section-divider .background-pause-button {
  bottom: 14px !important;
}

/* ── Language switcher ───────────────────────────────────────────────────────
   Floating pill at top-right that lets users toggle FI / EN.
   Injected by site-interactions.js. */
.ks-lang-switcher {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(47, 114, 128, 0.22);
  border-radius: 999px;
  padding: 4px;
  box-shadow: 0 4px 16px rgba(47, 114, 128, 0.16);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.ks-lang-switcher--floating {
  position: fixed;
  top: 24px;
  left: 24px;
  z-index: 9999;
}

.ks-lang-switcher button {
  all: unset;
  cursor: pointer;
  min-width: 40px;
  height: 34px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #4b6470;
  transition: background 140ms, color 140ms;
  padding: 0 12px;
}

.ks-lang-switcher button[aria-pressed="true"] {
  background: #2f7280;
  color: #ffffff;
}

.header .showOnMobile .ks-lang-switcher,
.header .showOnDesktop .ks-lang-switcher {
  position: static;
  z-index: auto;
  margin: 0;
  vertical-align: middle;
}

.header .showOnMobile .ks-lang-switcher button,
.header .showOnDesktop .ks-lang-switcher button {
  min-width: 38px;
  height: 32px;
  padding: 0 11px;
}

@media (max-width: 767px) {
  .header .showOnMobile .ks-lang-switcher {
    padding: 3px;
  }

  .header .showOnMobile .ks-lang-switcher button {
    min-width: 34px;
    height: 30px;
    font-size: 12px;
    padding: 0 10px;
  }
}


/* ── Header border line fix ──────────────────────────────────────────────────
   .header-border has inline style border-width: 0px 0px 2px 0px !important
   which creates a visible line below the header. Hide it. */
.header-border {
  border: none !important;
  display: none !important;
}

/* ── Image visibility fix ────────────────────────────────────────────────────
   Squarespace sets data-load="false" on lazy images and their JS loader
   normally removes this. Without the loader, Squarespace CSS hides these
   images. Force them visible. */
img[data-load="false"],
img[data-loader="sqs"] {
  opacity: 1 !important;
  visibility: visible !important;
}

/* ── imageFluid height fix ───────────────────────────────────────────────────
   Without Squarespace JS, --image-component-container-height is never set,
   causing the entire height:100% chain to collapse to 0px.
   For content-fit images (logo/graphic, not hero fills), use natural height. */
.image-component-container-fit .fluid-image-container,
.image-component-container-fit .sqs-image-content {
  height: auto !important;
}
.image-component-container-fit .sqs-image {
  height: auto !important;
}
.image-component-container-fit .content-fit img {
  position: static !important;
  height: auto !important;
  width: 100% !important;
}

/* ── City pages: clean layout without map/image gaps ──────────────────────────
   Each city page has a unique section ID. We replace the Squarespace
   fluid-engine CSS Grid (which needs JS for proper row heights) with a
   simple flexbox column, and hide map blocks that render nothing without JS. */

/* All hero + secondary section IDs across 10 city pages */
[data-section-id="680a06673d9f904758cf5cde"],  /* Pori hero */
[data-section-id="680a068295e20943d5a35039"],  /* Pori services */
[data-section-id="680a039e0f02f104ce848dd6"],  /* Tampere hero */
[data-section-id="680a08ed59ee161098690761"],  /* Turku hero */
[data-section-id="680a0922a6a8e557162c70c2"],  /* Turku services */
[data-section-id="680a07cc3b23532f3cddef49"],  /* Helsinki hero */
[data-section-id="680a0809126855210fbc5016"],  /* Helsinki services */
[data-section-id="680a072c95e20943d5a376c5"],  /* Espoo hero */
[data-section-id="680a07677bd0fe668b342a20"],  /* Espoo services */
[data-section-id="680a085d89f9f0688c0d0185"],  /* Vantaa hero */
[data-section-id="680a08cc59ee1610986906fe"],  /* Vantaa services */
[data-section-id="680a0289a34d6e62e1d1fbc4"],  /* Jyväskylä hero */
[data-section-id="680a0316a680925ee75be971"],  /* Jyväskylä services */
[data-section-id="680a0433461b64379c0e4659"],  /* Kuopio hero */
[data-section-id="680a04527e37877d452b51c6"],  /* Kuopio services */
[data-section-id="680a05a74674143f85f0a6e8"],  /* Lahti hero */
[data-section-id="680a04d44674143f85f0956a"],  /* Oulu hero */
[data-section-id="680a04f461d03e5a91c8d775"],  /* Oulu services */
[data-section-id="680a0504224a6e6766ecce3f"] { /* Oulu extra */
  min-height: 0 !important;
  height: auto !important;
}

/* Convert fluid-engine grid → flexbox column */
[data-section-id="680a06673d9f904758cf5cde"] .fluid-engine,
[data-section-id="680a068295e20943d5a35039"] .fluid-engine,
[data-section-id="680a039e0f02f104ce848dd6"] .fluid-engine,
[data-section-id="680a08ed59ee161098690761"] .fluid-engine,
[data-section-id="680a0922a6a8e557162c70c2"] .fluid-engine,
[data-section-id="680a07cc3b23532f3cddef49"] .fluid-engine,
[data-section-id="680a0809126855210fbc5016"] .fluid-engine,
[data-section-id="680a072c95e20943d5a376c5"] .fluid-engine,
[data-section-id="680a07677bd0fe668b342a20"] .fluid-engine,
[data-section-id="680a085d89f9f0688c0d0185"] .fluid-engine,
[data-section-id="680a08cc59ee1610986906fe"] .fluid-engine,
[data-section-id="680a0289a34d6e62e1d1fbc4"] .fluid-engine,
[data-section-id="680a0316a680925ee75be971"] .fluid-engine,
[data-section-id="680a0433461b64379c0e4659"] .fluid-engine,
[data-section-id="680a04527e37877d452b51c6"] .fluid-engine,
[data-section-id="680a05a74674143f85f0a6e8"] .fluid-engine,
[data-section-id="680a04d44674143f85f0956a"] .fluid-engine,
[data-section-id="680a04f461d03e5a91c8d775"] .fluid-engine,
[data-section-id="680a0504224a6e6766ecce3f"] .fluid-engine {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 20px !important;
  padding: 0 max(16px, 4vw) !important;
  max-width: min(960px, 100%) !important;
  margin: 0 auto !important;
  width: 100% !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

/* Blocks take full width, reset grid positioning */
[data-section-id="680a06673d9f904758cf5cde"] .fe-block,
[data-section-id="680a068295e20943d5a35039"] .fe-block,
[data-section-id="680a039e0f02f104ce848dd6"] .fe-block,
[data-section-id="680a08ed59ee161098690761"] .fe-block,
[data-section-id="680a0922a6a8e557162c70c2"] .fe-block,
[data-section-id="680a07cc3b23532f3cddef49"] .fe-block,
[data-section-id="680a0809126855210fbc5016"] .fe-block,
[data-section-id="680a072c95e20943d5a376c5"] .fe-block,
[data-section-id="680a07677bd0fe668b342a20"] .fe-block,
[data-section-id="680a085d89f9f0688c0d0185"] .fe-block,
[data-section-id="680a08cc59ee1610986906fe"] .fe-block,
[data-section-id="680a0289a34d6e62e1d1fbc4"] .fe-block,
[data-section-id="680a0316a680925ee75be971"] .fe-block,
[data-section-id="680a0433461b64379c0e4659"] .fe-block,
[data-section-id="680a04527e37877d452b51c6"] .fe-block,
[data-section-id="680a05a74674143f85f0a6e8"] .fe-block,
[data-section-id="680a04d44674143f85f0956a"] .fe-block,
[data-section-id="680a04f461d03e5a91c8d775"] .fe-block,
[data-section-id="680a0504224a6e6766ecce3f"] .fe-block {
  width: 100% !important;
}

/* Hide map block wrappers - map renders nothing without Squarespace JS */
[data-section-id="680a06673d9f904758cf5cde"] .fe-block:has(.sqs-block-map),
[data-section-id="680a039e0f02f104ce848dd6"] .fe-block:has(.sqs-block-map),
[data-section-id="680a08ed59ee161098690761"] .fe-block:has(.sqs-block-map),
[data-section-id="680a07cc3b23532f3cddef49"] .fe-block:has(.sqs-block-map),
[data-section-id="680a072c95e20943d5a376c5"] .fe-block:has(.sqs-block-map),
[data-section-id="680a085d89f9f0688c0d0185"] .fe-block:has(.sqs-block-map),
[data-section-id="680a0289a34d6e62e1d1fbc4"] .fe-block:has(.sqs-block-map),
[data-section-id="680a0433461b64379c0e4659"] .fe-block:has(.sqs-block-map),
[data-section-id="680a05a74674143f85f0a6e8"] .fe-block:has(.sqs-block-map),
[data-section-id="680a04d44674143f85f0956a"] .fe-block:has(.sqs-block-map) {
  display: none !important;
}

/* City page headings: clamp font size so long Finnish city names
   (e.g. "Siivous Jyväskylä") don't break mid-word */
[data-section-id="680a06673d9f904758cf5cde"] h1,
[data-section-id="680a039e0f02f104ce848dd6"] h1,
[data-section-id="680a08ed59ee161098690761"] h1,
[data-section-id="680a07cc3b23532f3cddef49"] h1,
[data-section-id="680a072c95e20943d5a376c5"] h1,
[data-section-id="680a085d89f9f0688c0d0185"] h1,
[data-section-id="680a0289a34d6e62e1d1fbc4"] h1,
[data-section-id="680a0433461b64379c0e4659"] h1,
[data-section-id="680a05a74674143f85f0a6e8"] h1,
[data-section-id="680a04d44674143f85f0956a"] h1 {
  font-size: clamp(2rem, 4.5vw, 3.5rem) !important;
  line-height: 1.15 !important;
  white-space: normal !important;
  overflow-wrap: break-word;
  text-align: center !important;
}

/* Also center the sqs-block-content wrapper so the heading block itself is centered */
[data-section-id="680a06673d9f904758cf5cde"] .sqs-block-alignment-wrapper,
[data-section-id="680a039e0f02f104ce848dd6"] .sqs-block-alignment-wrapper,
[data-section-id="680a08ed59ee161098690761"] .sqs-block-alignment-wrapper,
[data-section-id="680a07cc3b23532f3cddef49"] .sqs-block-alignment-wrapper,
[data-section-id="680a072c95e20943d5a376c5"] .sqs-block-alignment-wrapper,
[data-section-id="680a085d89f9f0688c0d0185"] .sqs-block-alignment-wrapper,
[data-section-id="680a0289a34d6e62e1d1fbc4"] .sqs-block-alignment-wrapper,
[data-section-id="680a0433461b64379c0e4659"] .sqs-block-alignment-wrapper,
[data-section-id="680a05a74674143f85f0a6e8"] .sqs-block-alignment-wrapper,
[data-section-id="680a04d44674143f85f0956a"] .sqs-block-alignment-wrapper {
  text-align: center !important;
}
